Required for B2B in Germany: from 1 Jan 2027 above €800,000 turnover, from 1 Jan 2028 for almost all
JSON in, checked e-invoice out. Layout from your Google Docs template, EN 16931 checks included. For SaaS, marketplaces and your own apps.
Works with Lovable, Bolt, Cursor and any backend.
Create an automation with your invoice template, switch on e-invoices and pick ZUGFeRD or XRechnung.
Send customer, invoice number, date and line items as JSON to /createDocument, with your API key as the Bearer token.
The response points to the checked ZUGFeRD PDF or XRechnung XML. In async mode you get a job ID and, if you want, a webhook.
E-invoices need a DocsAutomator subscription. You can set everything up and test it for free, and only pay once you go live. See pricing
The field names in data are the placeholders of your template. Line items go in as a list, such as line_items_1.
curl -X POST https://api.docsautomator.co/createDocument \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"docId": "YOUR_AUTOMATION_ID",
"data": {
"invoice_number": "RE-2026-0142",
"invoice_date": "2026-10-12",
"customer_name": "Muster Gartenbau GmbH",
"customer_vat_id": "DE123456789",
"line_items_1": [
{ "description": "Beratung", "quantity": 3, "unit_price": 120, "tax_rate": 19 },
{ "description": "Konzept", "quantity": 1, "unit_price": 540, "tax_rate": 19 }
]
}
}'A ZUGFeRD invoice: the PDF from your template, with the invoice data inside as XML under EN 16931.
Beispiel Studio GmbH · Hauptstraße 12 · 10115 Berlin
VAT ID DE123456789 · IBAN DE00 0000 0000 0000 0000 00
<rsm:CrossIndustryInvoice>
<rsm:ExchangedDocumentContext>
<ram:GuidelineSpecifiedDocumentContextParameter>
<ram:ID>urn:cen.eu:en16931:2017</ram:ID>
</ram:GuidelineSpecifiedDocumentContextParameter>
</rsm:ExchangedDocumentContext>
<rsm:ExchangedDocument>
<ram:ID>RE-2026-0142</ram:ID>
<ram:TypeCode>380</ram:TypeCode>
<ram:IssueDateTime>
<udt:DateTimeString format="102">20261012</udt:DateTimeString>
</ram:IssueDateTime>
</rsm:ExchangedDocument>
…
<ram:SpecifiedTradeSettlementHeaderMonetarySummation>
<ram:TaxBasisTotalAmount>900.00</ram:TaxBasisTotalAmount>
<ram:TaxTotalAmount currencyID="EUR">171.00</ram:TaxTotalAmount>
<ram:GrandTotalAmount>1071.00</ram:GrandTotalAmount>
</ram:SpecifiedTradeSettlementHeaderMonetarySummation>
</rsm:CrossIndustryInvoice>

Design the invoice the way you are used to. DocsAutomator fills your template with the data and turns it into the e-invoice.
Your invoices are made today in your app, a spreadsheet or a workflow. That is where they become e-invoices too. Nobody learns a new process.
Customers, orders and line items stay where they are. Each request carries the data, so you do not build a second customer database.
A separate tool just to send invoices means keeping data in two places in sync. With DocsAutomator, the step you already have returns the e-invoice.
Set up your e-invoices and test them for as long as you like. You only pay once you send real invoices without a watermark.
$0
from$19a month
Billed yearly, or $29 billed monthly. Cancel anytime.
Get an API key, or let our team set it up for you.
Deadlines, formats and every data source: E-invoicing for Germany with DocsAutomator