Turn simple invoice data (JSON) into an XRechnung (UBL or CII) or a ZUGFeRD PDF/A-3 with embedded XML. We calculate the totals and VAT; every invoice must pass the official KoSIT check before you get it.
curl -X POST https://api.bigapi.dev/v1/einvoice/create -H 'Authorization: Bearer $KEY' -H 'Content-Type: application/json' -d '{"format":"zugferd","number":"RE-2026-0042","issue_date":"2026-10-17","seller":{"name":"Muster GmbH","street":"Hafenstrasse 5","zip":"20459","city":"Hamburg","vat_id":"DE136695976","email":"rechnung@muster.example","phone":"+49 40 1234567"},"buyer":{"name":"Kunde AG","street":"Ring 1","zip":"10115","city":"Berlin","email":"eingang@kunde.example"},"payment":{"iban":"DE89370400440532013000"},"lines":[{"name":"Beratung","quantity":2,"unit":"hour","price":95}]}' -o rechnung.pdf
New keys come with 100 free operations, no signup: curl -X POST https://api.bigapi.dev/v1/keys. Failed calls cost nothing.
| Name | Meaning |
|---|---|
number required | Invoice number. |
issue_date required | Invoice date as YYYY-MM-DD. |
seller required | Seller: name, street, zip, city, country (default DE), vat_id or tax_number, email, phone, contact. XRechnung needs email and phone. |
buyer required | Buyer: name, street, zip, city, country, email (electronic address for XRechnung), vat_id for reverse charge. |
lines required | Items: name, quantity (default 1, up to 4 decimals), unit (piece, hour, day, kg, lump sum … or a UN/ECE code), price (net, up to 4 decimals), vat_rate (default 19 for German sellers, otherwise required), vat_category (S, Z, E, AE, K, G, O; default S). Discounts as an extra line with negative quantity. |
format | ubl or cii give an XRechnung 3.0 XML; zugferd gives a PDF/A-3 with factur-x.xml (profile EN 16931). Allowed: ubl, cii, zugferdDefault: ubl |
buyer_reference | Leitweg-ID for public buyers, otherwise e.g. order or customer number. Required for XRechnung (falls back to order_reference). Default: none |
due_date | Payment due date, YYYY-MM-DD. Default: none (then 'payable immediately' for XRechnung) |
delivery_date | Delivery or service date, YYYY-MM-DD. Default: none |
payment | iban, bic, account_name, reference. XRechnung needs an IBAN for bank transfer. Default: none |
small_business | true for German small businesses (§ 19 UStG): all items without VAT, with the legal note. Default: false |
type | credit_note gives a credit note (UBL CreditNote, type 381); add preceding_invoice {number, date}. Allowed: invoice, credit_noteDefault: invoice |
lang | Language of the readable PDF (zugferd only). Allowed: de, enDefault: "de" |
order_reference | Purchase order number. Default: none |
prepaid | Amount already paid; reduces the amount due. Default: 0 |
note | Free text note on the invoice. Default: none |
Returns application/xml | application/pdf. Response headers carry the cost (X-BigAPI-Cost) and notes about your input (X-BigAPI-Warnings).
400 invalid_invoice_data | A field is missing or wrong; the response names it in "field" and says what is needed (e.g. buyer_reference for XRechnung). |
422 invoice_invalid | The invoice was built but does not pass the official KoSIT check; you get the rule codes instead of a file. Nothing is charged. |
Connect BiGapi as an MCP server: https://api.bigapi.dev/mcp (hosted) or npx -y @bigapi/mcp (local). Then ask in plain words; the agent finds einvoice_create on its own.
Create an XRechnung for invoice RE-2026-0042 to the city of Musterhausen, Leitweg-ID 04011000-1234512345-06, two hours of consulting at 95 euros.