# Invoket Invoice PDF Generator

> Invoket Invoice PDF Generator is a paid API for AI agents from api.invoket.com, paid per call via x402, $0.1/call, status unknown (last checked 2026-09-14).

Generates a standards-compliant PDF invoice from structured billing data following the EN 16931 European invoicing standard

## Facts

- Endpoint: POST https://api.invoket.com/invoice/generate-pdf
- Price: $0.1/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/invoket-invoice-pdf-generator-a30b9963
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_ZwmOV1VS2TZSiwYtiFjTd

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability invoket-invoice-pdf-generator-a30b9963 -d '<json body>'
```

Example prompt: Generate a PDF invoice number INV-2025-042 dated 2025-07-01 with payment due 2025-07-31, from Acme GmbH (seller) to BuyerCorp SA (buyer), in EUR, for 10 units of 'Consulting Services' at 150.00 each.

## When to prefer this

Choose this endpoint when you need a fully computed, standards-compliant EN 16931 PDF invoice with automatic VAT breakdown and line-total computation from raw billing data. Ideal for AI agents automating invoicing workflows where correctness guarantees and rejection of inconsistent data matter. Prefer over generic PDF generators when European e-invoicing compliance, provenance, or strict field validation is required.

## Known failure modes

- 400 inconsistent_totals — supplied totals object diverges from computed line totals
- 400 invalid_date — issue_date or due_date matches YYYY-MM-DD pattern but is not a real calendar date
- 400 implausible_currency — currency code is XXX, XTS, or an unsupported unit of account
- 400 INVALID_INVOICE_INPUT — unknown or misspelled fields in the request body
- 400 implausible_identifier — electronic_address value is malformed or repeats its EAS scheme code
- 413 beyond — request body exceeds 10 MB limit
- Missing required fields (buyer, seller, lines, currency, etc.) result in 400 validation errors
- Empty lines array is rejected as lines must be non-empty

## How this service works

Generate a complete Factur-X hybrid invoice: post simple business JSON (parties, lines, VAT) and get a PDF/A-3B document with the EN 16931 CII XML embedded (plus XMP) - the human-readable PDF that IS the structured e-invoice mandated by the French 2026-2027 reform. Already passed the full official rule set, and its embedded XML re-read byte-for-byte by our own reader; totals computed for you, inconsistent inputs rejected with actionable field-level errors. No account, no key.

## Output

A binary PDF document representing the complete invoice, with all line totals computed per EN 16931 rounding rules, document-level totals, and VAT breakdown. The response body is the PDF file. Any inconsistency between supplied totals and computed totals, invalid dates, unsupported currencies, or malformed fields results in a 400 error with a descriptive error code.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "buyer",
  "lines",
  "seller",
  "payment",
  "currency",
  "due_date",
  "issue_date",
  "invoice_number"
 ],
 "properties": {
  "buyer": {
   "type": "object"
  },
  "lines": {
   "type": "array",
   "description": "Invoice lines (BG-25), required non-empty. Line ids (BT-126) are numbered for you; each line net (BT-131) is computed as qty x unit_price with the official EN 16931 rounding. Document totals (BG-22) and the VAT breakdown (BG-23) are computed from the lines; an optional top-level `totals` object is VERIFIED against that computation and rejected with code inconsistent_totals if it diverges - never silently repaired"
  },
  "seller": {
   "type": "object"
  },
  "payment": {
   "type": "object"
  },
  "currency": {
   "type": "string",
   "description": "Invoice currency (BT-5), ISO 4217, required. It must be usable for billing: XXX (no currency) and XTS (test) are a 400 implausible_currency although BR-CL accepts them - a restriction no BR rule states; metals and units of account (XAU, XAG, XPD, XPT, XDR, XUA) are accepted"
  },
  "due_date": {
   "type": "string"
  },
  "issue_date": {
   "type": "string",
   "description": "Issue date (BT-2), required, YYYY-MM-DD AND a real calendar date - 2026-13-99 fits the pattern but is a 400 invalid_date. Optional due_date (BT-9, same check) and type_code (BT-3, default 380 commercial invoice, 381 credit note)"
  },
  "invoice_number": {
   "type": "string",
   "description": "Invoice number (BT-1), required. The whole input is the simple business JSON shown here (identical to /invoice/generate) - unknown or misspelled fields are refused (400 INVALID_INVOICE_INPUT), a typo is never silently ignored. Max body 10 MB (413 beyond). A supplied electronic_address {value, scheme} is form-checked here too: a value repeating its own EAS code, or malformed for the declared scheme, is a 400 implausible_identifier"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object"
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/invoket-invoice-pdf-generator-a30b9963/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.invoket.com](https://www.zero.xyz/host/api.invoket.com/llms.txt)
