E-Rechnung
/api/v1/e-invoices/generateErzeugt aus Rechnungsdaten eine E-Rechnung: xrechnung_ubl / xrechnung_cii liefern XRechnung 3.0 als XML (application/xml), zugferd liefert ein PDF/A-3 mit eingebetteter factur-x.xml (Profil EN 16931, application/pdf). Ohne invoice.sender werden die Firmenstammdaten des Kontos verwendet. Vor dem Erzeugen wird nach EN 16931 bzw. XRechnung geprüft; bei Fehlern antwortet die API mit 422 einvoice_invalid und dem Prüfbericht in details.
Berechtigung: invoices:read
Body (JSON) · EInvoiceGenerateRequest
format"xrechnung_ubl" | "xrechnung_cii" | "zugferd"PflichtZielformatinvoiceEInvoiceSourcePflichttype"invoice" | "credit_note" | "cancellation"Rechnung, Gutschrift oder StornoStandard: "invoice"numberstringPflichtmax. 60 ZeichenissueDatestring (date)PflichtDatum (YYYY-MM-DD)serviceDatestring (date)Leistungs-/LieferdatumservicePeriodobjectLeistungszeitraumfromstring (date)PflichtDatum (YYYY-MM-DD)tostring (date)PflichtDatum (YYYY-MM-DD)
dueDatestring (date)Datum (YYYY-MM-DD)paymentTermsDaysinteger0–365currency"EUR"Standard: "EUR"priceMode"net" | "gross"Standard: "net"taxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"Steuerbehandlung des BelegsStandard: "regular"taxNoticestring | nullPflichthinweis (Standard aus der Steuerbehandlung)max. 500 Zeichensubjectstringmax. 300 ZeichenintroTextstringmax. 5000 ZeichenclosingTextstringmax. 5000 ZeichenlinesArray<DocumentLine>Pflichtidstringstabile Positions-ID (vom Server vergeben, wenn leer)max. 40 Zeichentype"item" | "text" | "subtotal"Position, reine Textzeile oder ZwischensummeStandard: "item"articleIdstringBezug zum Artikelstammmax. 128 ZeichentitlestringPflichtmax. 300 Zeichendescriptionstringmax. 5000 Zeichenquantitynumber-1000000–1000000 · Standard: 1unitstringEinheit, z. B. Stk, Std, pauschal (UN/ECE Rec 20 für E-Rechnung: Modul)max. 20 ZeichenunitPriceCentsintegerBetrag in Cent-100000000000–100000000000 · Standard: 0discountPercentnumber0–100taxRatenumberSteuersatz in Prozent (19, 7, 0 …)0–100 · Standard: 19totalCentsintegerBetrag in Cent-100000000000–100000000000servicePeriodobjectprojectIdstringmax. 128 ZeichentimeEntryIdsArray<string>max. 128 Zeichen
totalsDocumentTotalsGespeicherte Summen – werden nachgerechnet und müssen übereinstimmennetCentsintegerPflichtBetrag in Cent-100000000000–100000000000taxCentsintegerPflichtBetrag in Cent-100000000000–100000000000grossCentsintegerPflichtBetrag in Cent-100000000000–100000000000groupsArray<object>Pflicht
prepaidCentsintegerBT-113 bereits erhaltene Anzahlungen0–100000000000recipientEInvoiceRecipientPflichtnamestringPflichtFirma oder Namemax. 160 ZeichenadditionstringZusatz, z. B. z. Hd. / Abteilungmax. 160 ZeichenstreetstringPflichtStraße und Hausnummermax. 160 ZeichenzipCodestringPflichtmax. 10 ZeichencitystringPflichtmax. 80 ZeichencountrystringLändercode ISO 3166-1 alpha-2max. 2 Zeichen · Standard: "DE"vatIdstringUSt-IdNr. des Empfängers (Pflicht bei § 13b / ig. Lieferung)max. 20 ZeichenleitwegIdstringLeitweg-ID (öffentliche Auftraggeber)max. 46 Zeichenemailstringmax. 254 ZeichencustomerNumberstringmax. 60 ZeichencontactNamestringmax. 160 Zeichenphonestringmax. 40 Zeichen
senderEInvoiceSenderAbsender-Schnappschuss; ohne Angabe: aktuelle FirmenstammdatencompanyNamestringmax. 160 Zeichen · Standard: ""ownerNamestringmax. 120 ZeichenlegalFormstringmax. 60 ZeichenmanagingDirectorsstringmax. 300 ZeichenaddressobjectPflichtphonestringmax. 40 Zeichenemailstringmax. 254 Zeichenwebsitestringmax. 200 ZeichentaxNumberstringmax. 20 ZeichenvatIdstringmax. 20 ZeichensmallBusinessbooleancommercialRegisterobjectbankobject
relatedInvoiceobjectUrsprüngliche Rechnung (bei Gutschrift/Storno)numberstringPflichtmax. 60 ZeichenissueDatestring (date)Datum (YYYY-MM-DD)
buyerReferencestringBT-10; Standard: Leitweg-ID, sonst Bestell- oder Kundennummermax. 200 ZeichenorderReferencestringmax. 200 ZeichencontractReferencestringmax. 200 ZeichenprojectReferencestringmax. 200 ZeichenpaymentReferencestringVerwendungszweck; Standard: Rechnungsnummermax. 140 Zeichenlanguage"de" | "en"Sprache der erzeugten Freitexte (Zahlungsbedingungen, Steuerbefreiungsgrund, Sichtdarstellung); Standard de
attachPdfbooleanNur XRechnung: PDF-Ansicht als Anhang (BG-24) einbettenStandard: false
Antwort 200
Datei (application/xml).
curl -X POST 'https://www.debt-flow.io/api/v1/e-invoices/generate' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"format": "xrechnung_ubl",
"invoice": {
"type": "invoice",
"number": "string",
"issueDate": "2026-11-01",
"serviceDate": "2026-11-01",
"servicePeriod": {
"from": "2026-11-01",
"to": "2026-11-01"
},
"dueDate": "2026-11-01",
"paymentTermsDays": 0,
"currency": "EUR",
"priceMode": "net",
"taxTreatment": "regular",
"taxNotice": "string",
"subject": "string",
"introText": "string",
"closingText": "string",
"lines": [
{
"id": null,
"type": null,
"articleId": null,
"title": null,
"description": null,
"quantity": null,
"unit": null,
"unitPriceCents": null,
"discountPercent": null,
"taxRate": null,
"totalCents": null,
"servicePeriod": null,
"projectId": null,
"timeEntryIds": null
}
],
"totals": {
"netCents": 0,
"taxCents": 0,
"grossCents": 0,
"groups": [
null
]
},
"prepaidCents": 0,
"recipient": {
"name": "string",
"addition": "string",
"street": "string",
"zipCode": "string",
"city": "string",
"country": "DE",
"vatId": "string",
"leitwegId": "string",
"email": "string",
"customerNumber": "string",
"contactName": "string",
"phone": "string"
},
"sender": {
"companyName": "",
"ownerName": "string",
"legalForm": "string",
"managingDirectors": "string",
"address": {
"street": null,
"zipCode": null,
"city": null,
"countryCode": null
},
"phone": "string",
"email": "string",
"website": "string",
"taxNumber": "string",
"vatId": "string",
"smallBusiness": false,
"commercialRegister": {
"court": null,
"number": null
},
"bank": {
"accountHolder": null,
"iban": null,
"bic": null,
"bankName": null
}
},
"relatedInvoice": {
"number": "string",
"issueDate": "2026-11-01"
},
"buyerReference": "string",
"orderReference": "string",
"contractReference": "string",
"projectReference": "string",
"paymentReference": "string",
"language": "de"
},
"attachPdf": false
}'/api/v1/e-invoices/parseLiest eine XRechnung (UBL oder CII) oder ein ZUGFeRD-/Factur-X-PDF (Feld file, multipart/form-data) und liefert die Rechnungsdaten nach EN 16931, den Prüfbericht und einen Belegvorschlag (receiptDraft). Ein PDF ohne eingebettete XML wird mit 422 einvoice_not_found abgelehnt. Es wird nichts gespeichert.
Berechtigung: receipts:read
Body (multipart/form-data)
filestring (binary)Pflichtapplication/xml, text/xml, application/pdf, max. 15360 KB
Antwort 200 · ParsedEInvoice
container"xml" | "pdf"Pflichtreine XML-Datei oder PDF mit eingebetteter XML (ZUGFeRD/Factur-X)syntax"ubl" | "cii"Pflichtprofile"en16931" | "xrechnung"Pflichtnach BT-24 erkanntes RegelwerkformatLabelstringPflichtz. B. „XRechnung 3.0 (UBL)“embeddedFilenamestring | nullPflichtName der eingebetteten XML bei PDFinvoiceEInvoicePflichtcustomizationIdstringPflichtBT-24 Spezifikationskennungmax. 300 ZeichenprofileIdstringBT-23 Geschäftsprozessmax. 300 ZeichennumberstringPflichtBT-1 Rechnungsnummermax. 200 ZeichenissueDatestringPflichtBT-2 Rechnungsdatum (YYYY-MM-DD)max. 10 ZeichentypeCodestringPflichtBT-3 Rechnungsart (380 Rechnung, 381 Gutschrift, 384 Korrektur …)max. 10 ZeichencurrencystringPflichtBT-5 Währungmax. 3 ZeichentaxPointDatestringBT-7max. 10 ZeichendueDatestringBT-9 Fälligkeitmax. 10 ZeichenbuyerReferencestringBT-10 Käuferreferenz / Leitweg-IDmax. 200 ZeichenprojectReferencestringBT-11max. 200 ZeichencontractReferencestringBT-12max. 200 ZeichenorderReferencestringBT-13 Bestellnummermax. 200 ZeichensalesOrderReferencestringBT-14 Auftragsnummermax. 200 ZeichenaccountingReferencestringBT-19 Buchungsreferenzmax. 200 ZeichennotesArray<object>PflichtBG-1 BemerkungensubjectCodestringmax. 10 ZeichentextstringPflichtmax. 10000 Zeichen
precedingInvoicesArray<object>PflichtBG-3 Bezug auf vorherige RechnungennumberstringPflichtmax. 200 ZeichenissueDatestringmax. 10 Zeichen
sellerEInvoicePartyPflichtBG-4 VerkäufernamestringPflichtBT-27/44 Namemax. 300 ZeichentradingNamestringBT-28/45 Handelsnamemax. 300 ZeichenidentifiersArray<object>PflichtBT-29/46 KennungenlegalRegistrationIdobjectBT-30/47 RegisternummervatIdstringBT-31/48 USt-IdNr.max. 30 ZeichentaxNumberstringBT-32 Steuernummer (nur Verkäufer)max. 30 ZeichenadditionalLegalInfostringBT-33 weitere rechtliche Angaben (nur Verkäufer)max. 1000 ZeichenelectronicAddressobjectBT-34/49 elektronische Adresse (Schema EM = E-Mail, 0204 = Leitweg-ID)addressEInvoiceAddressPflichtcontactobjectBG-6/BG-9 Kontakt
buyerEInvoicePartyPflichtBG-7 KäufernamestringPflichtBT-27/44 Namemax. 300 ZeichentradingNamestringBT-28/45 Handelsnamemax. 300 ZeichenidentifiersArray<object>PflichtBT-29/46 KennungenlegalRegistrationIdobjectBT-30/47 RegisternummervatIdstringBT-31/48 USt-IdNr.max. 30 ZeichentaxNumberstringBT-32 Steuernummer (nur Verkäufer)max. 30 ZeichenadditionalLegalInfostringBT-33 weitere rechtliche Angaben (nur Verkäufer)max. 1000 ZeichenelectronicAddressobjectBT-34/49 elektronische Adresse (Schema EM = E-Mail, 0204 = Leitweg-ID)addressEInvoiceAddressPflichtcontactobjectBG-6/BG-9 Kontakt
payeeNamestringBT-59 Zahlungsempfänger, falls abweichendmax. 300 ZeichendeliveryobjectpartyNamestringBT-70max. 300 ZeichendatestringBT-72 Liefer-/Leistungsdatummax. 10 ZeichenaddressEInvoiceAddressBG-15 Lieferanschrift
invoicingPeriodobjectBG-14 Leistungszeitraumstartstringmax. 10 Zeichenendstringmax. 10 Zeichen
paymentMeansEInvoicePaymentMeansBG-16typeCodestringPflichtBT-81 Zahlungsart (UNTDID 4461, 58 = SEPA-Überweisung)max. 10 ZeichentextstringBT-82max. 300 ZeichenremittanceInfostringBT-83 Verwendungszweckmax. 300 ZeichenaccountsArray<object>PflichtBG-17 ÜberweisungcardobjectBG-18 Kartenzahlung (nur letzte Ziffern)directDebitobjectBG-19 Lastschrift
paymentTermsstringBT-20 Zahlungsbedingungenmax. 2000 ZeichenallowanceChargesArray<EInvoiceAllowanceCharge>PflichtBG-20/BG-21 Ab-/Zuschläge auf BelegebenechargeIndicatorbooleanPflichttrue = Zuschlag, false = AbschlagamountCentsintegerPflichtBT-92/99/136/141 Betrag-9007199254740991–9007199254740991baseAmountCentsintegerBT-93/100/137/142 Grundbetrag-9007199254740991–9007199254740991percentnumberBT-94/101/138/143 ProzentsatzreasonstringBT-97/104/139/144 Grundmax. 500 ZeichenreasonCodestringBT-98/105/140/145 Grund (Code)max. 10 ZeichentaxCategorystringBT-95/102 USt-Kategorie (nur Belegebene)max. 3 ZeichentaxRatenumber | nullBT-96/103 USt-Satz (nur Belegebene)
totalsEInvoiceTotalsPflichtBG-22lineNetCentsintegerPflichtBT-106 Summe Positionen netto-9007199254740991–9007199254740991allowancesCentsintegerPflichtBT-107 Summe Abschläge-9007199254740991–9007199254740991chargesCentsintegerPflichtBT-108 Summe Zuschläge-9007199254740991–9007199254740991taxExclusiveCentsintegerPflichtBT-109 Gesamt netto-9007199254740991–9007199254740991taxCentsintegerPflichtBT-110 Umsatzsteuer gesamt-9007199254740991–9007199254740991taxInclusiveCentsintegerPflichtBT-112 Gesamt brutto-9007199254740991–9007199254740991prepaidCentsintegerPflichtBT-113 bereits gezahlt-9007199254740991–9007199254740991roundingCentsintegerPflichtBT-114 Rundung-9007199254740991–9007199254740991payableCentsintegerPflichtBT-115 Zahlbetrag-9007199254740991–9007199254740991
vatBreakdownArray<EInvoiceVatBreakdown>PflichtBG-23categorystringPflichtBT-118 Kategoriemax. 3 Zeichenratenumber | nullPflichtBT-119 Satz in Prozent (null bei O)taxableCentsintegerPflichtBT-116 Bemessungsgrundlage-9007199254740991–9007199254740991taxCentsintegerPflichtBT-117 Steuerbetrag-9007199254740991–9007199254740991exemptionReasonstringBT-120 Befreiungsgrundmax. 1000 ZeichenexemptionReasonCodestringBT-121 Befreiungsgrund (VATEX-Code)max. 30 Zeichen
linesArray<EInvoiceLine>PflichtBG-25idstringPflichtBT-126 Positionsnummermax. 100 ZeichennotestringBT-127 Positionsnotizmax. 2000 ZeichenquantitynumberPflichtBT-129 MengeunitCodestringPflichtBT-130 Einheit (UN/ECE Rec. 20/21)max. 10 ZeichennetAmountCentsintegerPflichtBT-131 Nettobetrag der Position-9007199254740991–9007199254740991orderLineReferencestringBT-132 Bestellpositionsnummermax. 100 ZeichenperiodobjectBG-26 LeistungszeitraumallowanceChargesArray<EInvoiceAllowanceCharge>PflichtBG-27/BG-28netPriceCentsnumberPflichtBT-146 NettopreisgrossPriceCentsnumberBT-148 Bruttopreis (vor Preisnachlass)priceDiscountCentsnumberBT-147 PreisnachlassbaseQuantitynumberBT-149 BasismengevatobjectPflichtitemobjectPflicht
attachmentsArray<EInvoiceAttachment>PflichtBG-24idstringPflichtBT-122 Kennungmax. 200 ZeichendescriptionstringBT-123max. 1000 ZeichenuristringBT-124 externer Ortmax. 1000 ZeichenfilenamestringBT-125 Dateinamemax. 300 ZeichenmimeCodestringmax. 100 ZeichensizeBytesinteger-9007199254740991–9007199254740991contentBase64stringBT-125 Inhalt (Base64)
language"de" | "en"Sprache der Freitexte und der Sichtdarstellung (intern; EN 16931/XRechnung kennen kein Sprachfeld im Rechnungskopf)
validationEInvoiceValidationReportPflichtprofile"en16931" | "xrechnung"PflichtvalidbooleanPflichtkeine Fehler (Warnungen erlaubt)errorCountintegerPflicht-9007199254740991–9007199254740991warningCountintegerPflicht-9007199254740991–9007199254740991issuesArray<EInvoiceValidationIssue>Pflichtseverity"error" | "warning"PflichtrulestringPflichtRegel-ID, z. B. BR-16, BR-DE-15, BR-S-02fieldsArray<string>Pflichtbetroffene Business Terms, z. B. ["BT-10"]pathstringPfad im Datenmodell, z. B. seller.contact.phonemessagestringPflichtverständliche Meldung (Deutsch)hintstringHinweis zur Behebung (bei eigenen Rechnungen)
scope"structure"PflichtStrukturprüfung (Pflichtfelder, Summen, Steuerregeln). Keine vollständige KoSIT-Schematron-Prüfung.
receiptDraftEInvoiceReceiptDraftPflichtdocumentType"invoice" | "credit_note"PflichtsupplierNamestringPflichtsupplierVatIdstring | nullPflichtsupplierTaxNumberstring | nullPflichtsupplierIbanstring | nullPflichtsupplierEmailstring | nullPflichtdocumentNumberstringPflichtdocumentDatestring | nullPflichtdueDatestring | nullPflichtcurrencystringPflichttotalsobjectPflichtnetCentsintegerPflichtBetrag in Cent-9007199254740991–9007199254740991taxCentsintegerPflichtBetrag in Cent-9007199254740991–9007199254740991grossCentsintegerPflichtBetrag in Cent-9007199254740991–9007199254740991
payableCentsintegerPflichtBetrag in Cent-9007199254740991–9007199254740991taxLinesArray<object>PflichttaxRatenumberPflichtcategorystringPflichtnetCentsintegerPflichtBetrag in Cent-9007199254740991–9007199254740991taxCentsintegerPflichtBetrag in Cent-9007199254740991–9007199254740991
paymentReferencestring | nullPflichtdescriptionstringPflichtKurzbeschreibung aus den ersten Positionen
parserWarningsArray<string>Pflichtnicht auswertbare oder unbekannte Angabenxmlstring | nullPflichtextrahierte XML (nur bei PDF)
curl -X POST 'https://www.debt-flow.io/api/v1/e-invoices/parse' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY" \
-F 'file=@datei'{
"container": "xml",
"syntax": "ubl",
"profile": "en16931",
"formatLabel": "string",
"embeddedFilename": "string",
"invoice": {
"customizationId": "string",
"profileId": "string",
"number": "string",
"issueDate": "string",
"typeCode": "string",
"currency": "string",
"taxPointDate": "string",
"dueDate": "string",
"buyerReference": "string",
"projectReference": "string",
"contractReference": "string",
"orderReference": "string",
"salesOrderReference": "string",
"accountingReference": "string",
"notes": [],
"precedingInvoices": [],
"seller": {
"name": "string",
"tradingName": "string",
"identifiers": [],
"legalRegistrationId": {
"id": null,
"scheme": null
},
"vatId": "string",
"taxNumber": "string",
"additionalLegalInfo": "string",
"electronicAddress": {
"scheme": null,
"value": null
},
"address": null,
"contact": {
"name": null,
"phone": null,
"email": null
}
},
"buyer": {
"name": "string",
"tradingName": "string",
"identifiers": [],
"legalRegistrationId": {
"id": null,
"scheme": null
},
"vatId": "string",
"taxNumber": "string",
"additionalLegalInfo": "string",
"electronicAddress": {
"scheme": null,
"value": null
},
"address": null,
"contact": {
"name": null,
"phone": null,
"email": null
}
},
"payeeName": "string",
"delivery": {
"partyName": "string",
"date": "string",
"address": {
"line1": null,
"line2": null,
"line3": null,
"city": null,
"postCode": null,
"subdivision": null,
"countryCode": null
}
},
"invoicingPeriod": {
"start": "string",
"end": "string"
},
"paymentMeans": {
"typeCode": "string",
"text": "string",
"remittanceInfo": "string",
"accounts": [],
"card": {
"pan": null,
"holder": null
},
"directDebit": {
"mandateId": null,
"creditorId": null,
"debitedAccount": null
}
},
"paymentTerms": "string",
"allowanceCharges": [],
"totals": {
"lineNetCents": 0,
"allowancesCents": 0,
"chargesCents": 0,
"taxExclusiveCents": 0,
"taxCents": 0,
"taxInclusiveCents": 0,
"prepaidCents": 0,
"roundingCents": 0,
"payableCents": 0
},
"vatBreakdown": [
{
"category": null,
"rate": null,
"taxableCents": null,
"taxCents": null,
"exemptionReason": null,
"exemptionReasonCode": null
}
],
"lines": [
{
"id": null,
"note": null,
"quantity": null,
"unitCode": null,
"netAmountCents": null,
"orderLineReference": null,
"period": null,
"allowanceCharges": null,
"netPriceCents": null,
"grossPriceCents": null,
"priceDiscountCents": null,
"baseQuantity": null,
"vat": null,
"item": null
}
],
"attachments": [],
"language": "de"
},
"validation": {
"profile": "en16931",
"valid": false,
"errorCount": 0,
"warningCount": 0,
"issues": [
{
"severity": null,
"rule": null,
"fields": null,
"path": null,
"message": null,
"hint": null
}
],
"scope": "structure"
},
"receiptDraft": {
"documentType": "invoice",
"supplierName": "string",
"supplierVatId": "string",
"supplierTaxNumber": "string",
"supplierIban": "string",
"supplierEmail": "string",
"documentNumber": "string",
"documentDate": "string",
"dueDate": "string",
"currency": "string",
"totals": {
"netCents": 0,
"taxCents": 0,
"grossCents": 0
},
"payableCents": 0,
"taxLines": [
{
"taxRate": 0,
"category": "string",
"netCents": 0,
"taxCents": 0
}
],
"paymentReference": "string",
"description": "string"
},
"parserWarnings": [
"string"
],
"xml": "string"
}/api/v1/e-invoices/readinessPrüft anhand einer Beispielrechnung, ob die Firmenstammdaten (Firma & Rechnung) für ZUGFeRD (EN 16931) und XRechnung ausreichen, und nennt fehlende Angaben (z. B. Telefonnummer, IBAN).
Berechtigung: profile:read
Antwort 200 · EInvoiceReadiness
formatsArray<object>Pflichtformat"xrechnung_ubl" | "xrechnung_cii" | "zugferd"PflichtlabelstringPflichtreadybooleanPflichtissuesArray<EInvoiceValidationIssue>Pflichtseverity"error" | "warning"PflichtrulestringPflichtRegel-ID, z. B. BR-16, BR-DE-15, BR-S-02fieldsArray<string>Pflichtbetroffene Business Terms, z. B. ["BT-10"]pathstringPfad im Datenmodell, z. B. seller.contact.phonemessagestringPflichtverständliche Meldung (Deutsch)hintstringHinweis zur Behebung (bei eigenen Rechnungen)
curl 'https://www.debt-flow.io/api/v1/e-invoices/readiness' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY"{
"formats": [
{
"format": "xrechnung_ubl",
"label": "string",
"ready": false,
"issues": [
{
"severity": null,
"rule": null,
"fields": null,
"path": null,
"message": null,
"hint": null
}
]
}
]
}/api/v1/e-invoices/validateWandelt Rechnungsdaten in das Datenmodell nach EN 16931 um und prüft Pflichtfelder, Summen und Steuerregeln (bei XRechnung zusätzlich BR-DE-*). Erzeugt keine Datei. Jede Meldung nennt die Regel (z. B. BR-DE-15) und die betroffenen Business Terms (z. B. BT-10).
Berechtigung: invoices:read
Body (JSON) · EInvoiceValidateRequest
format"xrechnung_ubl" | "xrechnung_cii" | "zugferd"PflichtZielformat (bestimmt das Regelwerk)invoiceEInvoiceSourcePflichttype"invoice" | "credit_note" | "cancellation"Rechnung, Gutschrift oder StornoStandard: "invoice"numberstringPflichtmax. 60 ZeichenissueDatestring (date)PflichtDatum (YYYY-MM-DD)serviceDatestring (date)Leistungs-/LieferdatumservicePeriodobjectLeistungszeitraumfromstring (date)PflichtDatum (YYYY-MM-DD)tostring (date)PflichtDatum (YYYY-MM-DD)
dueDatestring (date)Datum (YYYY-MM-DD)paymentTermsDaysinteger0–365currency"EUR"Standard: "EUR"priceMode"net" | "gross"Standard: "net"taxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"Steuerbehandlung des BelegsStandard: "regular"taxNoticestring | nullPflichthinweis (Standard aus der Steuerbehandlung)max. 500 Zeichensubjectstringmax. 300 ZeichenintroTextstringmax. 5000 ZeichenclosingTextstringmax. 5000 ZeichenlinesArray<DocumentLine>Pflichtidstringstabile Positions-ID (vom Server vergeben, wenn leer)max. 40 Zeichentype"item" | "text" | "subtotal"Position, reine Textzeile oder ZwischensummeStandard: "item"articleIdstringBezug zum Artikelstammmax. 128 ZeichentitlestringPflichtmax. 300 Zeichendescriptionstringmax. 5000 Zeichenquantitynumber-1000000–1000000 · Standard: 1unitstringEinheit, z. B. Stk, Std, pauschal (UN/ECE Rec 20 für E-Rechnung: Modul)max. 20 ZeichenunitPriceCentsintegerBetrag in Cent-100000000000–100000000000 · Standard: 0discountPercentnumber0–100taxRatenumberSteuersatz in Prozent (19, 7, 0 …)0–100 · Standard: 19totalCentsintegerBetrag in Cent-100000000000–100000000000servicePeriodobjectprojectIdstringmax. 128 ZeichentimeEntryIdsArray<string>max. 128 Zeichen
totalsDocumentTotalsGespeicherte Summen – werden nachgerechnet und müssen übereinstimmennetCentsintegerPflichtBetrag in Cent-100000000000–100000000000taxCentsintegerPflichtBetrag in Cent-100000000000–100000000000grossCentsintegerPflichtBetrag in Cent-100000000000–100000000000groupsArray<object>Pflicht
prepaidCentsintegerBT-113 bereits erhaltene Anzahlungen0–100000000000recipientEInvoiceRecipientPflichtnamestringPflichtFirma oder Namemax. 160 ZeichenadditionstringZusatz, z. B. z. Hd. / Abteilungmax. 160 ZeichenstreetstringPflichtStraße und Hausnummermax. 160 ZeichenzipCodestringPflichtmax. 10 ZeichencitystringPflichtmax. 80 ZeichencountrystringLändercode ISO 3166-1 alpha-2max. 2 Zeichen · Standard: "DE"vatIdstringUSt-IdNr. des Empfängers (Pflicht bei § 13b / ig. Lieferung)max. 20 ZeichenleitwegIdstringLeitweg-ID (öffentliche Auftraggeber)max. 46 Zeichenemailstringmax. 254 ZeichencustomerNumberstringmax. 60 ZeichencontactNamestringmax. 160 Zeichenphonestringmax. 40 Zeichen
senderEInvoiceSenderAbsender-Schnappschuss; ohne Angabe: aktuelle FirmenstammdatencompanyNamestringmax. 160 Zeichen · Standard: ""ownerNamestringmax. 120 ZeichenlegalFormstringmax. 60 ZeichenmanagingDirectorsstringmax. 300 ZeichenaddressobjectPflichtphonestringmax. 40 Zeichenemailstringmax. 254 Zeichenwebsitestringmax. 200 ZeichentaxNumberstringmax. 20 ZeichenvatIdstringmax. 20 ZeichensmallBusinessbooleancommercialRegisterobjectbankobject
relatedInvoiceobjectUrsprüngliche Rechnung (bei Gutschrift/Storno)numberstringPflichtmax. 60 ZeichenissueDatestring (date)Datum (YYYY-MM-DD)
buyerReferencestringBT-10; Standard: Leitweg-ID, sonst Bestell- oder Kundennummermax. 200 ZeichenorderReferencestringmax. 200 ZeichencontractReferencestringmax. 200 ZeichenprojectReferencestringmax. 200 ZeichenpaymentReferencestringVerwendungszweck; Standard: Rechnungsnummermax. 140 Zeichenlanguage"de" | "en"Sprache der erzeugten Freitexte (Zahlungsbedingungen, Steuerbefreiungsgrund, Sichtdarstellung); Standard de
Antwort 200 · EInvoiceValidateResult
format"xrechnung_ubl" | "xrechnung_cii" | "zugferd"PflichtinvoiceEInvoicePflichtcustomizationIdstringPflichtBT-24 Spezifikationskennungmax. 300 ZeichenprofileIdstringBT-23 Geschäftsprozessmax. 300 ZeichennumberstringPflichtBT-1 Rechnungsnummermax. 200 ZeichenissueDatestringPflichtBT-2 Rechnungsdatum (YYYY-MM-DD)max. 10 ZeichentypeCodestringPflichtBT-3 Rechnungsart (380 Rechnung, 381 Gutschrift, 384 Korrektur …)max. 10 ZeichencurrencystringPflichtBT-5 Währungmax. 3 ZeichentaxPointDatestringBT-7max. 10 ZeichendueDatestringBT-9 Fälligkeitmax. 10 ZeichenbuyerReferencestringBT-10 Käuferreferenz / Leitweg-IDmax. 200 ZeichenprojectReferencestringBT-11max. 200 ZeichencontractReferencestringBT-12max. 200 ZeichenorderReferencestringBT-13 Bestellnummermax. 200 ZeichensalesOrderReferencestringBT-14 Auftragsnummermax. 200 ZeichenaccountingReferencestringBT-19 Buchungsreferenzmax. 200 ZeichennotesArray<object>PflichtBG-1 BemerkungensubjectCodestringmax. 10 ZeichentextstringPflichtmax. 10000 Zeichen
precedingInvoicesArray<object>PflichtBG-3 Bezug auf vorherige RechnungennumberstringPflichtmax. 200 ZeichenissueDatestringmax. 10 Zeichen
sellerEInvoicePartyPflichtBG-4 VerkäufernamestringPflichtBT-27/44 Namemax. 300 ZeichentradingNamestringBT-28/45 Handelsnamemax. 300 ZeichenidentifiersArray<object>PflichtBT-29/46 KennungenlegalRegistrationIdobjectBT-30/47 RegisternummervatIdstringBT-31/48 USt-IdNr.max. 30 ZeichentaxNumberstringBT-32 Steuernummer (nur Verkäufer)max. 30 ZeichenadditionalLegalInfostringBT-33 weitere rechtliche Angaben (nur Verkäufer)max. 1000 ZeichenelectronicAddressobjectBT-34/49 elektronische Adresse (Schema EM = E-Mail, 0204 = Leitweg-ID)addressEInvoiceAddressPflichtcontactobjectBG-6/BG-9 Kontakt
buyerEInvoicePartyPflichtBG-7 KäufernamestringPflichtBT-27/44 Namemax. 300 ZeichentradingNamestringBT-28/45 Handelsnamemax. 300 ZeichenidentifiersArray<object>PflichtBT-29/46 KennungenlegalRegistrationIdobjectBT-30/47 RegisternummervatIdstringBT-31/48 USt-IdNr.max. 30 ZeichentaxNumberstringBT-32 Steuernummer (nur Verkäufer)max. 30 ZeichenadditionalLegalInfostringBT-33 weitere rechtliche Angaben (nur Verkäufer)max. 1000 ZeichenelectronicAddressobjectBT-34/49 elektronische Adresse (Schema EM = E-Mail, 0204 = Leitweg-ID)addressEInvoiceAddressPflichtcontactobjectBG-6/BG-9 Kontakt
payeeNamestringBT-59 Zahlungsempfänger, falls abweichendmax. 300 ZeichendeliveryobjectpartyNamestringBT-70max. 300 ZeichendatestringBT-72 Liefer-/Leistungsdatummax. 10 ZeichenaddressEInvoiceAddressBG-15 Lieferanschrift
invoicingPeriodobjectBG-14 Leistungszeitraumstartstringmax. 10 Zeichenendstringmax. 10 Zeichen
paymentMeansEInvoicePaymentMeansBG-16typeCodestringPflichtBT-81 Zahlungsart (UNTDID 4461, 58 = SEPA-Überweisung)max. 10 ZeichentextstringBT-82max. 300 ZeichenremittanceInfostringBT-83 Verwendungszweckmax. 300 ZeichenaccountsArray<object>PflichtBG-17 ÜberweisungcardobjectBG-18 Kartenzahlung (nur letzte Ziffern)directDebitobjectBG-19 Lastschrift
paymentTermsstringBT-20 Zahlungsbedingungenmax. 2000 ZeichenallowanceChargesArray<EInvoiceAllowanceCharge>PflichtBG-20/BG-21 Ab-/Zuschläge auf BelegebenechargeIndicatorbooleanPflichttrue = Zuschlag, false = AbschlagamountCentsintegerPflichtBT-92/99/136/141 Betrag-9007199254740991–9007199254740991baseAmountCentsintegerBT-93/100/137/142 Grundbetrag-9007199254740991–9007199254740991percentnumberBT-94/101/138/143 ProzentsatzreasonstringBT-97/104/139/144 Grundmax. 500 ZeichenreasonCodestringBT-98/105/140/145 Grund (Code)max. 10 ZeichentaxCategorystringBT-95/102 USt-Kategorie (nur Belegebene)max. 3 ZeichentaxRatenumber | nullBT-96/103 USt-Satz (nur Belegebene)
totalsEInvoiceTotalsPflichtBG-22lineNetCentsintegerPflichtBT-106 Summe Positionen netto-9007199254740991–9007199254740991allowancesCentsintegerPflichtBT-107 Summe Abschläge-9007199254740991–9007199254740991chargesCentsintegerPflichtBT-108 Summe Zuschläge-9007199254740991–9007199254740991taxExclusiveCentsintegerPflichtBT-109 Gesamt netto-9007199254740991–9007199254740991taxCentsintegerPflichtBT-110 Umsatzsteuer gesamt-9007199254740991–9007199254740991taxInclusiveCentsintegerPflichtBT-112 Gesamt brutto-9007199254740991–9007199254740991prepaidCentsintegerPflichtBT-113 bereits gezahlt-9007199254740991–9007199254740991roundingCentsintegerPflichtBT-114 Rundung-9007199254740991–9007199254740991payableCentsintegerPflichtBT-115 Zahlbetrag-9007199254740991–9007199254740991
vatBreakdownArray<EInvoiceVatBreakdown>PflichtBG-23categorystringPflichtBT-118 Kategoriemax. 3 Zeichenratenumber | nullPflichtBT-119 Satz in Prozent (null bei O)taxableCentsintegerPflichtBT-116 Bemessungsgrundlage-9007199254740991–9007199254740991taxCentsintegerPflichtBT-117 Steuerbetrag-9007199254740991–9007199254740991exemptionReasonstringBT-120 Befreiungsgrundmax. 1000 ZeichenexemptionReasonCodestringBT-121 Befreiungsgrund (VATEX-Code)max. 30 Zeichen
linesArray<EInvoiceLine>PflichtBG-25idstringPflichtBT-126 Positionsnummermax. 100 ZeichennotestringBT-127 Positionsnotizmax. 2000 ZeichenquantitynumberPflichtBT-129 MengeunitCodestringPflichtBT-130 Einheit (UN/ECE Rec. 20/21)max. 10 ZeichennetAmountCentsintegerPflichtBT-131 Nettobetrag der Position-9007199254740991–9007199254740991orderLineReferencestringBT-132 Bestellpositionsnummermax. 100 ZeichenperiodobjectBG-26 LeistungszeitraumallowanceChargesArray<EInvoiceAllowanceCharge>PflichtBG-27/BG-28netPriceCentsnumberPflichtBT-146 NettopreisgrossPriceCentsnumberBT-148 Bruttopreis (vor Preisnachlass)priceDiscountCentsnumberBT-147 PreisnachlassbaseQuantitynumberBT-149 BasismengevatobjectPflichtitemobjectPflicht
attachmentsArray<EInvoiceAttachment>PflichtBG-24idstringPflichtBT-122 Kennungmax. 200 ZeichendescriptionstringBT-123max. 1000 ZeichenuristringBT-124 externer Ortmax. 1000 ZeichenfilenamestringBT-125 Dateinamemax. 300 ZeichenmimeCodestringmax. 100 ZeichensizeBytesinteger-9007199254740991–9007199254740991contentBase64stringBT-125 Inhalt (Base64)
language"de" | "en"Sprache der Freitexte und der Sichtdarstellung (intern; EN 16931/XRechnung kennen kein Sprachfeld im Rechnungskopf)
validationEInvoiceValidationReportPflichtprofile"en16931" | "xrechnung"PflichtvalidbooleanPflichtkeine Fehler (Warnungen erlaubt)errorCountintegerPflicht-9007199254740991–9007199254740991warningCountintegerPflicht-9007199254740991–9007199254740991issuesArray<EInvoiceValidationIssue>Pflichtseverity"error" | "warning"PflichtrulestringPflichtRegel-ID, z. B. BR-16, BR-DE-15, BR-S-02fieldsArray<string>Pflichtbetroffene Business Terms, z. B. ["BT-10"]pathstringPfad im Datenmodell, z. B. seller.contact.phonemessagestringPflichtverständliche Meldung (Deutsch)hintstringHinweis zur Behebung (bei eigenen Rechnungen)
scope"structure"PflichtStrukturprüfung (Pflichtfelder, Summen, Steuerregeln). Keine vollständige KoSIT-Schematron-Prüfung.
curl -X POST 'https://www.debt-flow.io/api/v1/e-invoices/validate' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"format": "xrechnung_ubl",
"invoice": {
"type": "invoice",
"number": "string",
"issueDate": "2026-11-01",
"serviceDate": "2026-11-01",
"servicePeriod": {
"from": "2026-11-01",
"to": "2026-11-01"
},
"dueDate": "2026-11-01",
"paymentTermsDays": 0,
"currency": "EUR",
"priceMode": "net",
"taxTreatment": "regular",
"taxNotice": "string",
"subject": "string",
"introText": "string",
"closingText": "string",
"lines": [
{
"id": null,
"type": null,
"articleId": null,
"title": null,
"description": null,
"quantity": null,
"unit": null,
"unitPriceCents": null,
"discountPercent": null,
"taxRate": null,
"totalCents": null,
"servicePeriod": null,
"projectId": null,
"timeEntryIds": null
}
],
"totals": {
"netCents": 0,
"taxCents": 0,
"grossCents": 0,
"groups": [
null
]
},
"prepaidCents": 0,
"recipient": {
"name": "string",
"addition": "string",
"street": "string",
"zipCode": "string",
"city": "string",
"country": "DE",
"vatId": "string",
"leitwegId": "string",
"email": "string",
"customerNumber": "string",
"contactName": "string",
"phone": "string"
},
"sender": {
"companyName": "",
"ownerName": "string",
"legalForm": "string",
"managingDirectors": "string",
"address": {
"street": null,
"zipCode": null,
"city": null,
"countryCode": null
},
"phone": "string",
"email": "string",
"website": "string",
"taxNumber": "string",
"vatId": "string",
"smallBusiness": false,
"commercialRegister": {
"court": null,
"number": null
},
"bank": {
"accountHolder": null,
"iban": null,
"bic": null,
"bankName": null
}
},
"relatedInvoice": {
"number": "string",
"issueDate": "2026-11-01"
},
"buyerReference": "string",
"orderReference": "string",
"contractReference": "string",
"projectReference": "string",
"paymentReference": "string",
"language": "de"
}
}'{
"format": "xrechnung_ubl",
"invoice": {
"customizationId": "string",
"profileId": "string",
"number": "string",
"issueDate": "string",
"typeCode": "string",
"currency": "string",
"taxPointDate": "string",
"dueDate": "string",
"buyerReference": "string",
"projectReference": "string",
"contractReference": "string",
"orderReference": "string",
"salesOrderReference": "string",
"accountingReference": "string",
"notes": [],
"precedingInvoices": [],
"seller": {
"name": "string",
"tradingName": "string",
"identifiers": [],
"legalRegistrationId": {
"id": null,
"scheme": null
},
"vatId": "string",
"taxNumber": "string",
"additionalLegalInfo": "string",
"electronicAddress": {
"scheme": null,
"value": null
},
"address": null,
"contact": {
"name": null,
"phone": null,
"email": null
}
},
"buyer": {
"name": "string",
"tradingName": "string",
"identifiers": [],
"legalRegistrationId": {
"id": null,
"scheme": null
},
"vatId": "string",
"taxNumber": "string",
"additionalLegalInfo": "string",
"electronicAddress": {
"scheme": null,
"value": null
},
"address": null,
"contact": {
"name": null,
"phone": null,
"email": null
}
},
"payeeName": "string",
"delivery": {
"partyName": "string",
"date": "string",
"address": {
"line1": null,
"line2": null,
"line3": null,
"city": null,
"postCode": null,
"subdivision": null,
"countryCode": null
}
},
"invoicingPeriod": {
"start": "string",
"end": "string"
},
"paymentMeans": {
"typeCode": "string",
"text": "string",
"remittanceInfo": "string",
"accounts": [],
"card": {
"pan": null,
"holder": null
},
"directDebit": {
"mandateId": null,
"creditorId": null,
"debitedAccount": null
}
},
"paymentTerms": "string",
"allowanceCharges": [],
"totals": {
"lineNetCents": 0,
"allowancesCents": 0,
"chargesCents": 0,
"taxExclusiveCents": 0,
"taxCents": 0,
"taxInclusiveCents": 0,
"prepaidCents": 0,
"roundingCents": 0,
"payableCents": 0
},
"vatBreakdown": [
{
"category": null,
"rate": null,
"taxableCents": null,
"taxCents": null,
"exemptionReason": null,
"exemptionReasonCode": null
}
],
"lines": [
{
"id": null,
"note": null,
"quantity": null,
"unitCode": null,
"netAmountCents": null,
"orderLineReference": null,
"period": null,
"allowanceCharges": null,
"netPriceCents": null,
"grossPriceCents": null,
"priceDiscountCents": null,
"baseQuantity": null,
"vat": null,
"item": null
}
],
"attachments": [],
"language": "de"
},
"validation": {
"profile": "en16931",
"valid": false,
"errorCount": 0,
"warningCount": 0,
"issues": [
{
"severity": null,
"rule": null,
"fields": null,
"path": null,
"message": null,
"hint": null
}
],
"scope": "structure"
}
}/api/v1/e-invoices/visualizeErzeugt aus einer XRechnung oder einem ZUGFeRD-/Factur-X-PDF (Feld file) eine lesbare Darstellung als PDF (DIN 5008). Rechtlich maßgeblich bleiben die strukturierten Daten.
Berechtigung: receipts:read
Body (multipart/form-data)
filestring (binary)Pflichtapplication/xml, text/xml, application/pdf, max. 15360 KB
Antwort 200
Datei (application/pdf).
curl -X POST 'https://www.debt-flow.io/api/v1/e-invoices/visualize' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY" \
-F 'file=@datei'