Zum Inhalt springen

E-Rechnung

XRechnung und ZUGFeRD erzeugen, eingehende E-Rechnungen prüfen und auslesen.
POST/api/v1/e-invoices/generate

Erzeugt 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"Pflicht
    Zielformat
  • invoiceEInvoiceSourcePflicht
    • type"invoice" | "credit_note" | "cancellation"
      Rechnung, Gutschrift oder Storno
      Standard: "invoice"
    • numberstringPflicht
      max. 60 Zeichen
    • issueDatestring (date)Pflicht
      Datum (YYYY-MM-DD)
    • serviceDatestring (date)
      Leistungs-/Lieferdatum
    • servicePeriodobject
      Leistungszeitraum
      • fromstring (date)Pflicht
        Datum (YYYY-MM-DD)
      • tostring (date)Pflicht
        Datum (YYYY-MM-DD)
    • dueDatestring (date)
      Datum (YYYY-MM-DD)
    • paymentTermsDaysinteger
      0–365
    • currency"EUR"
      Standard: "EUR"
    • priceMode"net" | "gross"
      Standard: "net"
    • taxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"
      Steuerbehandlung des Belegs
      Standard: "regular"
    • taxNoticestring | null
      Pflichthinweis (Standard aus der Steuerbehandlung)
      max. 500 Zeichen
    • subjectstring
      max. 300 Zeichen
    • introTextstring
      max. 5000 Zeichen
    • closingTextstring
      max. 5000 Zeichen
    • linesArray<DocumentLine>Pflicht
      • idstring
        stabile Positions-ID (vom Server vergeben, wenn leer)
        max. 40 Zeichen
      • type"item" | "text" | "subtotal"
        Position, reine Textzeile oder Zwischensumme
        Standard: "item"
      • articleIdstring
        Bezug zum Artikelstamm
        max. 128 Zeichen
      • titlestringPflicht
        max. 300 Zeichen
      • descriptionstring
        max. 5000 Zeichen
      • quantitynumber
        -1000000–1000000 · Standard: 1
      • unitstring
        Einheit, z. B. Stk, Std, pauschal (UN/ECE Rec 20 für E-Rechnung: Modul)
        max. 20 Zeichen
      • unitPriceCentsinteger
        Betrag in Cent
        -100000000000–100000000000 · Standard: 0
      • discountPercentnumber
        0–100
      • taxRatenumber
        Steuersatz in Prozent (19, 7, 0 …)
        0–100 · Standard: 19
      • totalCentsinteger
        Betrag in Cent
        -100000000000–100000000000
      • servicePeriodobject
      • projectIdstring
        max. 128 Zeichen
      • timeEntryIdsArray<string>
        max. 128 Zeichen
    • totalsDocumentTotals
      Gespeicherte Summen – werden nachgerechnet und müssen übereinstimmen
      • netCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • taxCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • grossCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • groupsArray<object>Pflicht
    • prepaidCentsinteger
      BT-113 bereits erhaltene Anzahlungen
      0–100000000000
    • recipientEInvoiceRecipientPflicht
      • namestringPflicht
        Firma oder Name
        max. 160 Zeichen
      • additionstring
        Zusatz, z. B. z. Hd. / Abteilung
        max. 160 Zeichen
      • streetstringPflicht
        Straße und Hausnummer
        max. 160 Zeichen
      • zipCodestringPflicht
        max. 10 Zeichen
      • citystringPflicht
        max. 80 Zeichen
      • countrystring
        Ländercode ISO 3166-1 alpha-2
        max. 2 Zeichen · Standard: "DE"
      • vatIdstring
        USt-IdNr. des Empfängers (Pflicht bei § 13b / ig. Lieferung)
        max. 20 Zeichen
      • leitwegIdstring
        Leitweg-ID (öffentliche Auftraggeber)
        max. 46 Zeichen
      • emailstring
        max. 254 Zeichen
      • customerNumberstring
        max. 60 Zeichen
      • contactNamestring
        max. 160 Zeichen
      • phonestring
        max. 40 Zeichen
    • senderEInvoiceSender
      Absender-Schnappschuss; ohne Angabe: aktuelle Firmenstammdaten
      • companyNamestring
        max. 160 Zeichen · Standard: ""
      • ownerNamestring
        max. 120 Zeichen
      • legalFormstring
        max. 60 Zeichen
      • managingDirectorsstring
        max. 300 Zeichen
      • addressobjectPflicht
      • phonestring
        max. 40 Zeichen
      • emailstring
        max. 254 Zeichen
      • websitestring
        max. 200 Zeichen
      • taxNumberstring
        max. 20 Zeichen
      • vatIdstring
        max. 20 Zeichen
      • smallBusinessboolean
      • commercialRegisterobject
      • bankobject
    • relatedInvoiceobject
      Ursprüngliche Rechnung (bei Gutschrift/Storno)
      • numberstringPflicht
        max. 60 Zeichen
      • issueDatestring (date)
        Datum (YYYY-MM-DD)
    • buyerReferencestring
      BT-10; Standard: Leitweg-ID, sonst Bestell- oder Kundennummer
      max. 200 Zeichen
    • orderReferencestring
      max. 200 Zeichen
    • contractReferencestring
      max. 200 Zeichen
    • projectReferencestring
      max. 200 Zeichen
    • paymentReferencestring
      Verwendungszweck; Standard: Rechnungsnummer
      max. 140 Zeichen
    • language"de" | "en"
      Sprache der erzeugten Freitexte (Zahlungsbedingungen, Steuerbefreiungsgrund, Sichtdarstellung); Standard de
  • attachPdfboolean
    Nur XRechnung: PDF-Ansicht als Anhang (BG-24) einbetten
    Standard: false

Antwort 200

Datei (application/xml).

Mögliche Fehler: 400, 401, 403, 422, 429, 500

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
}'
POST/api/v1/e-invoices/parse

Liest 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)Pflicht
    application/xml, text/xml, application/pdf, max. 15360 KB

Antwort 200 · ParsedEInvoice

  • container"xml" | "pdf"Pflicht
    reine XML-Datei oder PDF mit eingebetteter XML (ZUGFeRD/Factur-X)
  • syntax"ubl" | "cii"Pflicht
  • profile"en16931" | "xrechnung"Pflicht
    nach BT-24 erkanntes Regelwerk
  • formatLabelstringPflicht
    z. B. „XRechnung 3.0 (UBL)“
  • embeddedFilenamestring | nullPflicht
    Name der eingebetteten XML bei PDF
  • invoiceEInvoicePflicht
    • customizationIdstringPflicht
      BT-24 Spezifikationskennung
      max. 300 Zeichen
    • profileIdstring
      BT-23 Geschäftsprozess
      max. 300 Zeichen
    • numberstringPflicht
      BT-1 Rechnungsnummer
      max. 200 Zeichen
    • issueDatestringPflicht
      BT-2 Rechnungsdatum (YYYY-MM-DD)
      max. 10 Zeichen
    • typeCodestringPflicht
      BT-3 Rechnungsart (380 Rechnung, 381 Gutschrift, 384 Korrektur …)
      max. 10 Zeichen
    • currencystringPflicht
      BT-5 Währung
      max. 3 Zeichen
    • taxPointDatestring
      BT-7
      max. 10 Zeichen
    • dueDatestring
      BT-9 Fälligkeit
      max. 10 Zeichen
    • buyerReferencestring
      BT-10 Käuferreferenz / Leitweg-ID
      max. 200 Zeichen
    • projectReferencestring
      BT-11
      max. 200 Zeichen
    • contractReferencestring
      BT-12
      max. 200 Zeichen
    • orderReferencestring
      BT-13 Bestellnummer
      max. 200 Zeichen
    • salesOrderReferencestring
      BT-14 Auftragsnummer
      max. 200 Zeichen
    • accountingReferencestring
      BT-19 Buchungsreferenz
      max. 200 Zeichen
    • notesArray<object>Pflicht
      BG-1 Bemerkungen
      • subjectCodestring
        max. 10 Zeichen
      • textstringPflicht
        max. 10000 Zeichen
    • precedingInvoicesArray<object>Pflicht
      BG-3 Bezug auf vorherige Rechnungen
      • numberstringPflicht
        max. 200 Zeichen
      • issueDatestring
        max. 10 Zeichen
    • sellerEInvoicePartyPflicht
      BG-4 Verkäufer
      • namestringPflicht
        BT-27/44 Name
        max. 300 Zeichen
      • tradingNamestring
        BT-28/45 Handelsname
        max. 300 Zeichen
      • identifiersArray<object>Pflicht
        BT-29/46 Kennungen
      • legalRegistrationIdobject
        BT-30/47 Registernummer
      • vatIdstring
        BT-31/48 USt-IdNr.
        max. 30 Zeichen
      • taxNumberstring
        BT-32 Steuernummer (nur Verkäufer)
        max. 30 Zeichen
      • additionalLegalInfostring
        BT-33 weitere rechtliche Angaben (nur Verkäufer)
        max. 1000 Zeichen
      • electronicAddressobject
        BT-34/49 elektronische Adresse (Schema EM = E-Mail, 0204 = Leitweg-ID)
      • addressEInvoiceAddressPflicht
      • contactobject
        BG-6/BG-9 Kontakt
    • buyerEInvoicePartyPflicht
      BG-7 Käufer
      • namestringPflicht
        BT-27/44 Name
        max. 300 Zeichen
      • tradingNamestring
        BT-28/45 Handelsname
        max. 300 Zeichen
      • identifiersArray<object>Pflicht
        BT-29/46 Kennungen
      • legalRegistrationIdobject
        BT-30/47 Registernummer
      • vatIdstring
        BT-31/48 USt-IdNr.
        max. 30 Zeichen
      • taxNumberstring
        BT-32 Steuernummer (nur Verkäufer)
        max. 30 Zeichen
      • additionalLegalInfostring
        BT-33 weitere rechtliche Angaben (nur Verkäufer)
        max. 1000 Zeichen
      • electronicAddressobject
        BT-34/49 elektronische Adresse (Schema EM = E-Mail, 0204 = Leitweg-ID)
      • addressEInvoiceAddressPflicht
      • contactobject
        BG-6/BG-9 Kontakt
    • payeeNamestring
      BT-59 Zahlungsempfänger, falls abweichend
      max. 300 Zeichen
    • deliveryobject
      • partyNamestring
        BT-70
        max. 300 Zeichen
      • datestring
        BT-72 Liefer-/Leistungsdatum
        max. 10 Zeichen
      • addressEInvoiceAddress
        BG-15 Lieferanschrift
    • invoicingPeriodobject
      BG-14 Leistungszeitraum
      • startstring
        max. 10 Zeichen
      • endstring
        max. 10 Zeichen
    • paymentMeansEInvoicePaymentMeans
      BG-16
      • typeCodestringPflicht
        BT-81 Zahlungsart (UNTDID 4461, 58 = SEPA-Überweisung)
        max. 10 Zeichen
      • textstring
        BT-82
        max. 300 Zeichen
      • remittanceInfostring
        BT-83 Verwendungszweck
        max. 300 Zeichen
      • accountsArray<object>Pflicht
        BG-17 Überweisung
      • cardobject
        BG-18 Kartenzahlung (nur letzte Ziffern)
      • directDebitobject
        BG-19 Lastschrift
    • paymentTermsstring
      BT-20 Zahlungsbedingungen
      max. 2000 Zeichen
    • allowanceChargesArray<EInvoiceAllowanceCharge>Pflicht
      BG-20/BG-21 Ab-/Zuschläge auf Belegebene
      • chargeIndicatorbooleanPflicht
        true = Zuschlag, false = Abschlag
      • amountCentsintegerPflicht
        BT-92/99/136/141 Betrag
        -9007199254740991–9007199254740991
      • baseAmountCentsinteger
        BT-93/100/137/142 Grundbetrag
        -9007199254740991–9007199254740991
      • percentnumber
        BT-94/101/138/143 Prozentsatz
      • reasonstring
        BT-97/104/139/144 Grund
        max. 500 Zeichen
      • reasonCodestring
        BT-98/105/140/145 Grund (Code)
        max. 10 Zeichen
      • taxCategorystring
        BT-95/102 USt-Kategorie (nur Belegebene)
        max. 3 Zeichen
      • taxRatenumber | null
        BT-96/103 USt-Satz (nur Belegebene)
    • totalsEInvoiceTotalsPflicht
      BG-22
      • lineNetCentsintegerPflicht
        BT-106 Summe Positionen netto
        -9007199254740991–9007199254740991
      • allowancesCentsintegerPflicht
        BT-107 Summe Abschläge
        -9007199254740991–9007199254740991
      • chargesCentsintegerPflicht
        BT-108 Summe Zuschläge
        -9007199254740991–9007199254740991
      • taxExclusiveCentsintegerPflicht
        BT-109 Gesamt netto
        -9007199254740991–9007199254740991
      • taxCentsintegerPflicht
        BT-110 Umsatzsteuer gesamt
        -9007199254740991–9007199254740991
      • taxInclusiveCentsintegerPflicht
        BT-112 Gesamt brutto
        -9007199254740991–9007199254740991
      • prepaidCentsintegerPflicht
        BT-113 bereits gezahlt
        -9007199254740991–9007199254740991
      • roundingCentsintegerPflicht
        BT-114 Rundung
        -9007199254740991–9007199254740991
      • payableCentsintegerPflicht
        BT-115 Zahlbetrag
        -9007199254740991–9007199254740991
    • vatBreakdownArray<EInvoiceVatBreakdown>Pflicht
      BG-23
      • categorystringPflicht
        BT-118 Kategorie
        max. 3 Zeichen
      • ratenumber | nullPflicht
        BT-119 Satz in Prozent (null bei O)
      • taxableCentsintegerPflicht
        BT-116 Bemessungsgrundlage
        -9007199254740991–9007199254740991
      • taxCentsintegerPflicht
        BT-117 Steuerbetrag
        -9007199254740991–9007199254740991
      • exemptionReasonstring
        BT-120 Befreiungsgrund
        max. 1000 Zeichen
      • exemptionReasonCodestring
        BT-121 Befreiungsgrund (VATEX-Code)
        max. 30 Zeichen
    • linesArray<EInvoiceLine>Pflicht
      BG-25
      • idstringPflicht
        BT-126 Positionsnummer
        max. 100 Zeichen
      • notestring
        BT-127 Positionsnotiz
        max. 2000 Zeichen
      • quantitynumberPflicht
        BT-129 Menge
      • unitCodestringPflicht
        BT-130 Einheit (UN/ECE Rec. 20/21)
        max. 10 Zeichen
      • netAmountCentsintegerPflicht
        BT-131 Nettobetrag der Position
        -9007199254740991–9007199254740991
      • orderLineReferencestring
        BT-132 Bestellpositionsnummer
        max. 100 Zeichen
      • periodobject
        BG-26 Leistungszeitraum
      • allowanceChargesArray<EInvoiceAllowanceCharge>Pflicht
        BG-27/BG-28
      • netPriceCentsnumberPflicht
        BT-146 Nettopreis
      • grossPriceCentsnumber
        BT-148 Bruttopreis (vor Preisnachlass)
      • priceDiscountCentsnumber
        BT-147 Preisnachlass
      • baseQuantitynumber
        BT-149 Basismenge
      • vatobjectPflicht
      • itemobjectPflicht
    • attachmentsArray<EInvoiceAttachment>Pflicht
      BG-24
      • idstringPflicht
        BT-122 Kennung
        max. 200 Zeichen
      • descriptionstring
        BT-123
        max. 1000 Zeichen
      • uristring
        BT-124 externer Ort
        max. 1000 Zeichen
      • filenamestring
        BT-125 Dateiname
        max. 300 Zeichen
      • mimeCodestring
        max. 100 Zeichen
      • sizeBytesinteger
        -9007199254740991–9007199254740991
      • contentBase64string
        BT-125 Inhalt (Base64)
    • language"de" | "en"
      Sprache der Freitexte und der Sichtdarstellung (intern; EN 16931/XRechnung kennen kein Sprachfeld im Rechnungskopf)
  • validationEInvoiceValidationReportPflicht
    • profile"en16931" | "xrechnung"Pflicht
    • validbooleanPflicht
      keine Fehler (Warnungen erlaubt)
    • errorCountintegerPflicht
      -9007199254740991–9007199254740991
    • warningCountintegerPflicht
      -9007199254740991–9007199254740991
    • issuesArray<EInvoiceValidationIssue>Pflicht
      • severity"error" | "warning"Pflicht
      • rulestringPflicht
        Regel-ID, z. B. BR-16, BR-DE-15, BR-S-02
      • fieldsArray<string>Pflicht
        betroffene Business Terms, z. B. ["BT-10"]
      • pathstring
        Pfad im Datenmodell, z. B. seller.contact.phone
      • messagestringPflicht
        verständliche Meldung (Deutsch)
      • hintstring
        Hinweis zur Behebung (bei eigenen Rechnungen)
    • scope"structure"Pflicht
      Strukturprüfung (Pflichtfelder, Summen, Steuerregeln). Keine vollständige KoSIT-Schematron-Prüfung.
  • receiptDraftEInvoiceReceiptDraftPflicht
    • documentType"invoice" | "credit_note"Pflicht
    • supplierNamestringPflicht
    • supplierVatIdstring | nullPflicht
    • supplierTaxNumberstring | nullPflicht
    • supplierIbanstring | nullPflicht
    • supplierEmailstring | nullPflicht
    • documentNumberstringPflicht
    • documentDatestring | nullPflicht
    • dueDatestring | nullPflicht
    • currencystringPflicht
    • totalsobjectPflicht
      • netCentsintegerPflicht
        Betrag in Cent
        -9007199254740991–9007199254740991
      • taxCentsintegerPflicht
        Betrag in Cent
        -9007199254740991–9007199254740991
      • grossCentsintegerPflicht
        Betrag in Cent
        -9007199254740991–9007199254740991
    • payableCentsintegerPflicht
      Betrag in Cent
      -9007199254740991–9007199254740991
    • taxLinesArray<object>Pflicht
      • taxRatenumberPflicht
      • categorystringPflicht
      • netCentsintegerPflicht
        Betrag in Cent
        -9007199254740991–9007199254740991
      • taxCentsintegerPflicht
        Betrag in Cent
        -9007199254740991–9007199254740991
    • paymentReferencestring | nullPflicht
    • descriptionstringPflicht
      Kurzbeschreibung aus den ersten Positionen
  • parserWarningsArray<string>Pflicht
    nicht auswertbare oder unbekannte Angaben
  • xmlstring | nullPflicht
    extrahierte XML (nur bei PDF)

Mögliche Fehler: 400, 401, 403, 413, 415, 422, 429, 500

curl
curl -X POST 'https://www.debt-flow.io/api/v1/e-invoices/parse' \
  -H "Authorization: Bearer $DEBTFLOW_API_KEY" \
  -F 'file=@datei'
Antwort 200
{
  "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"
}
GET/api/v1/e-invoices/readiness

Prü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>Pflicht
    • format"xrechnung_ubl" | "xrechnung_cii" | "zugferd"Pflicht
    • labelstringPflicht
    • readybooleanPflicht
    • issuesArray<EInvoiceValidationIssue>Pflicht
      • severity"error" | "warning"Pflicht
      • rulestringPflicht
        Regel-ID, z. B. BR-16, BR-DE-15, BR-S-02
      • fieldsArray<string>Pflicht
        betroffene Business Terms, z. B. ["BT-10"]
      • pathstring
        Pfad im Datenmodell, z. B. seller.contact.phone
      • messagestringPflicht
        verständliche Meldung (Deutsch)
      • hintstring
        Hinweis zur Behebung (bei eigenen Rechnungen)

Mögliche Fehler: 400, 401, 403, 429, 500

curl 'https://www.debt-flow.io/api/v1/e-invoices/readiness' \
  -H "Authorization: Bearer $DEBTFLOW_API_KEY"
Antwort 200
{
  "formats": [
    {
      "format": "xrechnung_ubl",
      "label": "string",
      "ready": false,
      "issues": [
        {
          "severity": null,
          "rule": null,
          "fields": null,
          "path": null,
          "message": null,
          "hint": null
        }
      ]
    }
  ]
}
POST/api/v1/e-invoices/validate

Wandelt 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"Pflicht
    Zielformat (bestimmt das Regelwerk)
  • invoiceEInvoiceSourcePflicht
    • type"invoice" | "credit_note" | "cancellation"
      Rechnung, Gutschrift oder Storno
      Standard: "invoice"
    • numberstringPflicht
      max. 60 Zeichen
    • issueDatestring (date)Pflicht
      Datum (YYYY-MM-DD)
    • serviceDatestring (date)
      Leistungs-/Lieferdatum
    • servicePeriodobject
      Leistungszeitraum
      • fromstring (date)Pflicht
        Datum (YYYY-MM-DD)
      • tostring (date)Pflicht
        Datum (YYYY-MM-DD)
    • dueDatestring (date)
      Datum (YYYY-MM-DD)
    • paymentTermsDaysinteger
      0–365
    • currency"EUR"
      Standard: "EUR"
    • priceMode"net" | "gross"
      Standard: "net"
    • taxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"
      Steuerbehandlung des Belegs
      Standard: "regular"
    • taxNoticestring | null
      Pflichthinweis (Standard aus der Steuerbehandlung)
      max. 500 Zeichen
    • subjectstring
      max. 300 Zeichen
    • introTextstring
      max. 5000 Zeichen
    • closingTextstring
      max. 5000 Zeichen
    • linesArray<DocumentLine>Pflicht
      • idstring
        stabile Positions-ID (vom Server vergeben, wenn leer)
        max. 40 Zeichen
      • type"item" | "text" | "subtotal"
        Position, reine Textzeile oder Zwischensumme
        Standard: "item"
      • articleIdstring
        Bezug zum Artikelstamm
        max. 128 Zeichen
      • titlestringPflicht
        max. 300 Zeichen
      • descriptionstring
        max. 5000 Zeichen
      • quantitynumber
        -1000000–1000000 · Standard: 1
      • unitstring
        Einheit, z. B. Stk, Std, pauschal (UN/ECE Rec 20 für E-Rechnung: Modul)
        max. 20 Zeichen
      • unitPriceCentsinteger
        Betrag in Cent
        -100000000000–100000000000 · Standard: 0
      • discountPercentnumber
        0–100
      • taxRatenumber
        Steuersatz in Prozent (19, 7, 0 …)
        0–100 · Standard: 19
      • totalCentsinteger
        Betrag in Cent
        -100000000000–100000000000
      • servicePeriodobject
      • projectIdstring
        max. 128 Zeichen
      • timeEntryIdsArray<string>
        max. 128 Zeichen
    • totalsDocumentTotals
      Gespeicherte Summen – werden nachgerechnet und müssen übereinstimmen
      • netCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • taxCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • grossCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • groupsArray<object>Pflicht
    • prepaidCentsinteger
      BT-113 bereits erhaltene Anzahlungen
      0–100000000000
    • recipientEInvoiceRecipientPflicht
      • namestringPflicht
        Firma oder Name
        max. 160 Zeichen
      • additionstring
        Zusatz, z. B. z. Hd. / Abteilung
        max. 160 Zeichen
      • streetstringPflicht
        Straße und Hausnummer
        max. 160 Zeichen
      • zipCodestringPflicht
        max. 10 Zeichen
      • citystringPflicht
        max. 80 Zeichen
      • countrystring
        Ländercode ISO 3166-1 alpha-2
        max. 2 Zeichen · Standard: "DE"
      • vatIdstring
        USt-IdNr. des Empfängers (Pflicht bei § 13b / ig. Lieferung)
        max. 20 Zeichen
      • leitwegIdstring
        Leitweg-ID (öffentliche Auftraggeber)
        max. 46 Zeichen
      • emailstring
        max. 254 Zeichen
      • customerNumberstring
        max. 60 Zeichen
      • contactNamestring
        max. 160 Zeichen
      • phonestring
        max. 40 Zeichen
    • senderEInvoiceSender
      Absender-Schnappschuss; ohne Angabe: aktuelle Firmenstammdaten
      • companyNamestring
        max. 160 Zeichen · Standard: ""
      • ownerNamestring
        max. 120 Zeichen
      • legalFormstring
        max. 60 Zeichen
      • managingDirectorsstring
        max. 300 Zeichen
      • addressobjectPflicht
      • phonestring
        max. 40 Zeichen
      • emailstring
        max. 254 Zeichen
      • websitestring
        max. 200 Zeichen
      • taxNumberstring
        max. 20 Zeichen
      • vatIdstring
        max. 20 Zeichen
      • smallBusinessboolean
      • commercialRegisterobject
      • bankobject
    • relatedInvoiceobject
      Ursprüngliche Rechnung (bei Gutschrift/Storno)
      • numberstringPflicht
        max. 60 Zeichen
      • issueDatestring (date)
        Datum (YYYY-MM-DD)
    • buyerReferencestring
      BT-10; Standard: Leitweg-ID, sonst Bestell- oder Kundennummer
      max. 200 Zeichen
    • orderReferencestring
      max. 200 Zeichen
    • contractReferencestring
      max. 200 Zeichen
    • projectReferencestring
      max. 200 Zeichen
    • paymentReferencestring
      Verwendungszweck; Standard: Rechnungsnummer
      max. 140 Zeichen
    • language"de" | "en"
      Sprache der erzeugten Freitexte (Zahlungsbedingungen, Steuerbefreiungsgrund, Sichtdarstellung); Standard de

Antwort 200 · EInvoiceValidateResult

  • format"xrechnung_ubl" | "xrechnung_cii" | "zugferd"Pflicht
  • invoiceEInvoicePflicht
    • customizationIdstringPflicht
      BT-24 Spezifikationskennung
      max. 300 Zeichen
    • profileIdstring
      BT-23 Geschäftsprozess
      max. 300 Zeichen
    • numberstringPflicht
      BT-1 Rechnungsnummer
      max. 200 Zeichen
    • issueDatestringPflicht
      BT-2 Rechnungsdatum (YYYY-MM-DD)
      max. 10 Zeichen
    • typeCodestringPflicht
      BT-3 Rechnungsart (380 Rechnung, 381 Gutschrift, 384 Korrektur …)
      max. 10 Zeichen
    • currencystringPflicht
      BT-5 Währung
      max. 3 Zeichen
    • taxPointDatestring
      BT-7
      max. 10 Zeichen
    • dueDatestring
      BT-9 Fälligkeit
      max. 10 Zeichen
    • buyerReferencestring
      BT-10 Käuferreferenz / Leitweg-ID
      max. 200 Zeichen
    • projectReferencestring
      BT-11
      max. 200 Zeichen
    • contractReferencestring
      BT-12
      max. 200 Zeichen
    • orderReferencestring
      BT-13 Bestellnummer
      max. 200 Zeichen
    • salesOrderReferencestring
      BT-14 Auftragsnummer
      max. 200 Zeichen
    • accountingReferencestring
      BT-19 Buchungsreferenz
      max. 200 Zeichen
    • notesArray<object>Pflicht
      BG-1 Bemerkungen
      • subjectCodestring
        max. 10 Zeichen
      • textstringPflicht
        max. 10000 Zeichen
    • precedingInvoicesArray<object>Pflicht
      BG-3 Bezug auf vorherige Rechnungen
      • numberstringPflicht
        max. 200 Zeichen
      • issueDatestring
        max. 10 Zeichen
    • sellerEInvoicePartyPflicht
      BG-4 Verkäufer
      • namestringPflicht
        BT-27/44 Name
        max. 300 Zeichen
      • tradingNamestring
        BT-28/45 Handelsname
        max. 300 Zeichen
      • identifiersArray<object>Pflicht
        BT-29/46 Kennungen
      • legalRegistrationIdobject
        BT-30/47 Registernummer
      • vatIdstring
        BT-31/48 USt-IdNr.
        max. 30 Zeichen
      • taxNumberstring
        BT-32 Steuernummer (nur Verkäufer)
        max. 30 Zeichen
      • additionalLegalInfostring
        BT-33 weitere rechtliche Angaben (nur Verkäufer)
        max. 1000 Zeichen
      • electronicAddressobject
        BT-34/49 elektronische Adresse (Schema EM = E-Mail, 0204 = Leitweg-ID)
      • addressEInvoiceAddressPflicht
      • contactobject
        BG-6/BG-9 Kontakt
    • buyerEInvoicePartyPflicht
      BG-7 Käufer
      • namestringPflicht
        BT-27/44 Name
        max. 300 Zeichen
      • tradingNamestring
        BT-28/45 Handelsname
        max. 300 Zeichen
      • identifiersArray<object>Pflicht
        BT-29/46 Kennungen
      • legalRegistrationIdobject
        BT-30/47 Registernummer
      • vatIdstring
        BT-31/48 USt-IdNr.
        max. 30 Zeichen
      • taxNumberstring
        BT-32 Steuernummer (nur Verkäufer)
        max. 30 Zeichen
      • additionalLegalInfostring
        BT-33 weitere rechtliche Angaben (nur Verkäufer)
        max. 1000 Zeichen
      • electronicAddressobject
        BT-34/49 elektronische Adresse (Schema EM = E-Mail, 0204 = Leitweg-ID)
      • addressEInvoiceAddressPflicht
      • contactobject
        BG-6/BG-9 Kontakt
    • payeeNamestring
      BT-59 Zahlungsempfänger, falls abweichend
      max. 300 Zeichen
    • deliveryobject
      • partyNamestring
        BT-70
        max. 300 Zeichen
      • datestring
        BT-72 Liefer-/Leistungsdatum
        max. 10 Zeichen
      • addressEInvoiceAddress
        BG-15 Lieferanschrift
    • invoicingPeriodobject
      BG-14 Leistungszeitraum
      • startstring
        max. 10 Zeichen
      • endstring
        max. 10 Zeichen
    • paymentMeansEInvoicePaymentMeans
      BG-16
      • typeCodestringPflicht
        BT-81 Zahlungsart (UNTDID 4461, 58 = SEPA-Überweisung)
        max. 10 Zeichen
      • textstring
        BT-82
        max. 300 Zeichen
      • remittanceInfostring
        BT-83 Verwendungszweck
        max. 300 Zeichen
      • accountsArray<object>Pflicht
        BG-17 Überweisung
      • cardobject
        BG-18 Kartenzahlung (nur letzte Ziffern)
      • directDebitobject
        BG-19 Lastschrift
    • paymentTermsstring
      BT-20 Zahlungsbedingungen
      max. 2000 Zeichen
    • allowanceChargesArray<EInvoiceAllowanceCharge>Pflicht
      BG-20/BG-21 Ab-/Zuschläge auf Belegebene
      • chargeIndicatorbooleanPflicht
        true = Zuschlag, false = Abschlag
      • amountCentsintegerPflicht
        BT-92/99/136/141 Betrag
        -9007199254740991–9007199254740991
      • baseAmountCentsinteger
        BT-93/100/137/142 Grundbetrag
        -9007199254740991–9007199254740991
      • percentnumber
        BT-94/101/138/143 Prozentsatz
      • reasonstring
        BT-97/104/139/144 Grund
        max. 500 Zeichen
      • reasonCodestring
        BT-98/105/140/145 Grund (Code)
        max. 10 Zeichen
      • taxCategorystring
        BT-95/102 USt-Kategorie (nur Belegebene)
        max. 3 Zeichen
      • taxRatenumber | null
        BT-96/103 USt-Satz (nur Belegebene)
    • totalsEInvoiceTotalsPflicht
      BG-22
      • lineNetCentsintegerPflicht
        BT-106 Summe Positionen netto
        -9007199254740991–9007199254740991
      • allowancesCentsintegerPflicht
        BT-107 Summe Abschläge
        -9007199254740991–9007199254740991
      • chargesCentsintegerPflicht
        BT-108 Summe Zuschläge
        -9007199254740991–9007199254740991
      • taxExclusiveCentsintegerPflicht
        BT-109 Gesamt netto
        -9007199254740991–9007199254740991
      • taxCentsintegerPflicht
        BT-110 Umsatzsteuer gesamt
        -9007199254740991–9007199254740991
      • taxInclusiveCentsintegerPflicht
        BT-112 Gesamt brutto
        -9007199254740991–9007199254740991
      • prepaidCentsintegerPflicht
        BT-113 bereits gezahlt
        -9007199254740991–9007199254740991
      • roundingCentsintegerPflicht
        BT-114 Rundung
        -9007199254740991–9007199254740991
      • payableCentsintegerPflicht
        BT-115 Zahlbetrag
        -9007199254740991–9007199254740991
    • vatBreakdownArray<EInvoiceVatBreakdown>Pflicht
      BG-23
      • categorystringPflicht
        BT-118 Kategorie
        max. 3 Zeichen
      • ratenumber | nullPflicht
        BT-119 Satz in Prozent (null bei O)
      • taxableCentsintegerPflicht
        BT-116 Bemessungsgrundlage
        -9007199254740991–9007199254740991
      • taxCentsintegerPflicht
        BT-117 Steuerbetrag
        -9007199254740991–9007199254740991
      • exemptionReasonstring
        BT-120 Befreiungsgrund
        max. 1000 Zeichen
      • exemptionReasonCodestring
        BT-121 Befreiungsgrund (VATEX-Code)
        max. 30 Zeichen
    • linesArray<EInvoiceLine>Pflicht
      BG-25
      • idstringPflicht
        BT-126 Positionsnummer
        max. 100 Zeichen
      • notestring
        BT-127 Positionsnotiz
        max. 2000 Zeichen
      • quantitynumberPflicht
        BT-129 Menge
      • unitCodestringPflicht
        BT-130 Einheit (UN/ECE Rec. 20/21)
        max. 10 Zeichen
      • netAmountCentsintegerPflicht
        BT-131 Nettobetrag der Position
        -9007199254740991–9007199254740991
      • orderLineReferencestring
        BT-132 Bestellpositionsnummer
        max. 100 Zeichen
      • periodobject
        BG-26 Leistungszeitraum
      • allowanceChargesArray<EInvoiceAllowanceCharge>Pflicht
        BG-27/BG-28
      • netPriceCentsnumberPflicht
        BT-146 Nettopreis
      • grossPriceCentsnumber
        BT-148 Bruttopreis (vor Preisnachlass)
      • priceDiscountCentsnumber
        BT-147 Preisnachlass
      • baseQuantitynumber
        BT-149 Basismenge
      • vatobjectPflicht
      • itemobjectPflicht
    • attachmentsArray<EInvoiceAttachment>Pflicht
      BG-24
      • idstringPflicht
        BT-122 Kennung
        max. 200 Zeichen
      • descriptionstring
        BT-123
        max. 1000 Zeichen
      • uristring
        BT-124 externer Ort
        max. 1000 Zeichen
      • filenamestring
        BT-125 Dateiname
        max. 300 Zeichen
      • mimeCodestring
        max. 100 Zeichen
      • sizeBytesinteger
        -9007199254740991–9007199254740991
      • contentBase64string
        BT-125 Inhalt (Base64)
    • language"de" | "en"
      Sprache der Freitexte und der Sichtdarstellung (intern; EN 16931/XRechnung kennen kein Sprachfeld im Rechnungskopf)
  • validationEInvoiceValidationReportPflicht
    • profile"en16931" | "xrechnung"Pflicht
    • validbooleanPflicht
      keine Fehler (Warnungen erlaubt)
    • errorCountintegerPflicht
      -9007199254740991–9007199254740991
    • warningCountintegerPflicht
      -9007199254740991–9007199254740991
    • issuesArray<EInvoiceValidationIssue>Pflicht
      • severity"error" | "warning"Pflicht
      • rulestringPflicht
        Regel-ID, z. B. BR-16, BR-DE-15, BR-S-02
      • fieldsArray<string>Pflicht
        betroffene Business Terms, z. B. ["BT-10"]
      • pathstring
        Pfad im Datenmodell, z. B. seller.contact.phone
      • messagestringPflicht
        verständliche Meldung (Deutsch)
      • hintstring
        Hinweis zur Behebung (bei eigenen Rechnungen)
    • scope"structure"Pflicht
      Strukturprüfung (Pflichtfelder, Summen, Steuerregeln). Keine vollständige KoSIT-Schematron-Prüfung.

Mögliche Fehler: 400, 401, 403, 429, 500

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"
  }
}'
Antwort 200
{
  "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"
  }
}
POST/api/v1/e-invoices/visualize

Erzeugt 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)Pflicht
    application/xml, text/xml, application/pdf, max. 15360 KB

Antwort 200

Datei (application/pdf).

Mögliche Fehler: 400, 401, 403, 413, 415, 422, 429, 500

curl
curl -X POST 'https://www.debt-flow.io/api/v1/e-invoices/visualize' \
  -H "Authorization: Bearer $DEBTFLOW_API_KEY" \
  -F 'file=@datei'