R-2026-1001.pdf
ZUGFeRD
PDF/A-3U with embedded CII XML. People see a document, systems read the data.
PDF/A-3U · CII XMLB2B e-invoicing: next deadline 1 January 2027
From 1 January 2027, German businesses with more than €800,000 in prior-year turnover must issue structured B2B invoices; from 1 January 2028, all of them must. invoiceapi.io builds those invoices from your data — validated, archived and independently verifiable.
For developers who issue invoices from their own application and would rather not build format conformance, retention and traceability themselves.
One POST per invoice. The template fixes the layout and the seller profile; your payload carries the invoice itself.
POST /v1/templates/{id}/invoicesAuthorization: Bearer sk_test_…Idempotency-Key422 application/problem+jsonYou create an invoice profile and a template once, in the dashboard. After that every invoice is a single call. Test mode is the same path with an sk_test_ key.
curl -X POST https://invoiceapi.io/v1/templates/$TEMPLATE_ID/invoices \
-H "Authorization: Bearer $INVOICEAPI_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d @rechnung.json
{
"buyer": {
"name": "Kunde AG",
"vatId": "DE987654321",
"electronicAddress": "rechnung@kunde.example",
"address": {
"line1": "Kundenweg 1",
"city": "München",
"postCode": "80331",
"countryCode": "DE"
}
},
"invoice": {
"number": "R-2026-1001",
"issueDate": "2026-07-01",
"dueDate": "2026-07-31",
"currency": "EUR",
"buyerReference": "KND-2026-77"
},
"items": [
{
"name": "Beratung",
"quantity": "8",
"unit": "HUR",
"unitPrice": "120.00",
"vatRate": "19"
}
],
"payment": {
"reference": "R-2026-1001"
}
}When validation fails you get the rule id back — in German and English for the 77 catalogued rules, with its BT code and payload path where the rule maps to one; for anything else, the raw, untranslated KoSIT text. Nothing is returned and nothing is archived.
You send the invoice data once. Both formats are generated from it, validated, and archived.
rechnung.json
Buyer, lines and payment terms as JSON; seller and bank details come from the profile.
R-2026-1001.pdf
PDF/A-3U with embedded CII XML. People see a document, systems read the data.
PDF/A-3U · CII XMLR-2026-1001.xml
Plain XML to EN 16931 — for public-sector buyers and anyone else who expects XML.
XML · EN 16931Every document is stored and never re-rendered on read. You get back the same bytes that were validated.
SHA-256Every claim on this page, stated so that you can check it yourself.
€0 per month
50 Live documents per month
1 Invoice profile
€19 per month (net)
500 Live documents per month
1 Invoice profile
€49 per month (net)
2,500 Live documents per month
5 Invoice profiles
€149 per month (net)
10,000 Live documents per month
Unlimited invoice profiles
Test mode does not count against the document allowance. Test invoices carry a TESTRECHNUNG watermark. All amounts are net. We charge no VAT; the reverse charge applies to businesses in the EU.
Test mode is free
Sign in with your email address, set up an invoice profile and a template, and call the API with an sk_test_ key. Test invoices go through the same validation as live ones and carry a TESTRECHNUNG watermark; only live invoices refuse the sample data.
Sign in
A sign-in code to your inbox. No password to create.
Profile and template
Seller details and layout, set up once in the dashboard.
One API call
Send your invoice data, get the validated documents back.
POST /v1/templates/{id}/invoices