Zum Inhalt springen

E-invoicing

Create XRechnung and ZUGFeRD files, validate and read incoming e-invoices.
POST/api/v1/e-invoices/generate

Generates an e-invoice from invoice data: xrechnung_ubl / xrechnung_cii return XRechnung 3.0 as XML (application/xml), zugferd returns a PDF/A-3 with embedded factur-x.xml (profile EN 16931, application/pdf). Without invoice.sender, the account's company master data is used. Before generation, the data is validated against EN 16931 or XRechnung respectively; if there are errors, the API responds with 422 einvoice_invalid and the validation report in details.

Permission: invoices:read

Body (JSON) · EInvoiceGenerateRequest

  • format"xrechnung_ubl" | "xrechnung_cii" | "zugferd"required
    Target format
  • invoiceEInvoiceSourcerequired
    • type"invoice" | "credit_note" | "cancellation"
      Invoice, credit note or cancellation invoice
      Default: "invoice"
    • numberstringrequired
      max. 60 characters
    • issueDatestring (date)required
      Date (YYYY-MM-DD)
    • serviceDatestring (date)
      Service/delivery date
    • servicePeriodobject
      Service period
      • fromstring (date)required
        Date (YYYY-MM-DD)
      • tostring (date)required
        Date (YYYY-MM-DD)
    • dueDatestring (date)
      Date (YYYY-MM-DD)
    • paymentTermsDaysinteger
      0–365
    • currency"EUR"
      Default: "EUR"
    • priceMode"net" | "gross"
      Default: "net"
    • taxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"
      Tax treatment of the receipt
      Default: "regular"
    • taxNoticestring | null
      Mandatory notice (default from the tax treatment)
      max. 500 characters
    • taxExemptboolean
      VAT exemption under § 4 No. 8 et seq. UStG (tax case “tax_exempt”, ST-16): category E instead of O, exemption reason from the notice text
    • subjectstring
      max. 300 characters
    • introTextstring
      max. 5000 characters
    • closingTextstring
      max. 5000 characters
    • linesArray<DocumentLine>required
      • idstring
        stable line item ID (assigned by the server if empty)
        max. 40 characters
      • type"item" | "text" | "subtotal"
        Line item, plain text line or subtotal
        Default: "item"
      • articleIdstring
        Reference to the article master data
        max. 128 characters
      • titlestringrequired
        max. 300 characters
      • descriptionstring
        max. 5000 characters
      • quantitynumber
        -1000000–1000000 · Default: 1
      • unitstring
        Unit, e.g. Stk, Std, pauschal (piece, hour, flat rate); UN/ECE Rec 20 for e-invoicing: module
        max. 20 characters
      • unitPriceCentsinteger
        Amount in cents
        -100000000000–100000000000 · Default: 0
      • discountPercentnumber
        0–100
      • taxRatenumber
        Tax rate in per cent (19, 7, 0 …)
        0–100 · Default: 19
      • totalCentsinteger
        Amount in cents
        -100000000000–100000000000
      • servicePeriodobject
      • projectIdstring
        max. 128 characters
      • timeEntryIdsArray<string>
        max. 128 characters
    • totalsDocumentTotals
      Stored totals – recalculated and must match
      • netCentsintegerrequired
        Amount in cents
        -100000000000–100000000000
      • taxCentsintegerrequired
        Amount in cents
        -100000000000–100000000000
      • grossCentsintegerrequired
        Amount in cents
        -100000000000–100000000000
      • groupsArray<object>required
    • prepaidCentsinteger
      BT-113 Advance payments already received
      0–100000000000
    • recipientEInvoiceRecipientrequired
      • namestringrequired
        Company or name
        max. 160 characters
      • additionstring
        Address supplement, e.g. attn. / department
        max. 160 characters
      • streetstringrequired
        Street and house number
        max. 160 characters
      • zipCodestringrequired
        max. 10 characters
      • citystringrequired
        max. 80 characters
      • countrystring
        Country code ISO 3166-1 alpha-2
        max. 2 characters · Default: "DE"
      • vatIdstring
        Recipient's VAT ID (required for § 13b / intra-Community supply)
        max. 20 characters
      • leitwegIdstring
        Leitweg-ID (public contracting authorities)
        max. 46 characters
      • recipientType"business" | "public_authority"
        Recipient profile: public_authority requires a Leitweg-ID, business does not (ER-08)
      • emailstring
        max. 254 characters
      • customerNumberstring
        max. 60 characters
      • contactNamestring
        max. 160 characters
      • phonestring
        max. 40 characters
    • senderEInvoiceSender
      Sender snapshot; if omitted: current company master data
      • companyNamestring
        max. 160 characters · Default: ""
      • ownerNamestring
        max. 120 characters
      • legalFormstring
        max. 60 characters
      • managingDirectorsstring
        max. 300 characters
      • addressobjectrequired
      • phonestring
        max. 40 characters
      • emailstring
        max. 254 characters
      • websitestring
        max. 200 characters
      • taxNumberstring
        max. 20 characters
      • vatIdstring
        max. 20 characters
      • smallBusinessboolean
      • commercialRegisterobject
      • bankobject
    • relatedInvoiceobject
      Original invoice (for credit note/cancellation)
      • numberstringrequired
        max. 60 characters
      • issueDatestring (date)
        Date (YYYY-MM-DD)
    • buyerReferencestring
      BT-10; default: Leitweg-ID, otherwise order or customer number
      max. 200 characters
    • orderReferencestring
      max. 200 characters
    • contractReferencestring
      max. 200 characters
    • projectReferencestring
      max. 200 characters
    • paymentReferencestring
      Payment reference; default: invoice number
      max. 140 characters
    • language"de" | "en"
      Language of the generated free texts (payment terms, tax exemption reason, human-readable rendering); default de
  • attachPdfboolean
    XRechnung only: embed PDF view as attachment (BG-24)
    Default: false

Response 200

File (application/xml).

Possible errors: 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",
    "taxExempt": false,
    "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",
      "recipientType": "business",
      "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

Reads an XRechnung (UBL or CII) or a ZUGFeRD/Factur-X PDF (field file, multipart/form-data) and returns the invoice data according to EN 16931, the validation report and a suggested receipt (receiptDraft). A PDF without embedded XML is rejected with 422 einvoice_not_found. Nothing is saved.

Permission: receipts:read

Body (multipart/form-data)

  • filestring (binary)required
    application/xml, text/xml, application/pdf, max. 15360 KB

Response 200 · ParsedEInvoice

  • container"xml" | "pdf"required
    plain XML file or PDF with embedded XML (ZUGFeRD/Factur-X)
  • syntax"ubl" | "cii"required
  • profile"en16931" | "xrechnung"required
    rule set detected from BT-24
  • formatLabelstringrequired
    e.g. “XRechnung 3.0 (UBL)”
  • embeddedFilenamestring | nullrequired
    Name of the embedded XML for PDF
  • invoiceEInvoicerequired
    • customizationIdstringrequired
      BT-24 Specification identifier
      max. 300 characters
    • profileIdstring
      BT-23 Business process
      max. 300 characters
    • numberstringrequired
      BT-1 Invoice number
      max. 200 characters
    • issueDatestringrequired
      BT-2 Invoice date (YYYY-MM-DD)
      max. 10 characters
    • typeCodestringrequired
      BT-3 Invoice type (380 invoice, 381 credit note, 384 corrected invoice …)
      max. 10 characters
    • currencystringrequired
      BT-5 Currency
      max. 3 characters
    • taxPointDatestring
      BT-7
      max. 10 characters
    • dueDatestring
      BT-9 Due date
      max. 10 characters
    • buyerReferencestring
      BT-10 Buyer reference / Leitweg-ID
      max. 200 characters
    • projectReferencestring
      BT-11
      max. 200 characters
    • contractReferencestring
      BT-12
      max. 200 characters
    • orderReferencestring
      BT-13 Purchase order number
      max. 200 characters
    • salesOrderReferencestring
      BT-14 Sales order number
      max. 200 characters
    • accountingReferencestring
      BT-19 Accounting reference
      max. 200 characters
    • notesArray<object>required
      BG-1 Notes
      • subjectCodestring
        max. 10 characters
      • textstringrequired
        max. 10000 characters
    • precedingInvoicesArray<object>required
      BG-3 Reference to preceding invoices
      • numberstringrequired
        max. 200 characters
      • issueDatestring
        max. 10 characters
    • sellerEInvoicePartyrequired
      BG-4 Seller
      • namestringrequired
        BT-27/44 Name
        max. 300 characters
      • tradingNamestring
        BT-28/45 Trading name
        max. 300 characters
      • identifiersArray<object>required
        BT-29/46 Identifiers
      • legalRegistrationIdobject
        BT-30/47 Registration number
      • vatIdstring
        BT-31/48 VAT ID
        max. 30 characters
      • taxNumberstring
        BT-32 Tax number (seller only)
        max. 30 characters
      • additionalLegalInfostring
        BT-33 Additional legal information (seller only)
        max. 1000 characters
      • electronicAddressobject
        BT-34/49 Electronic address (scheme EM = email, 0204 = Leitweg-ID)
      • addressEInvoiceAddressrequired
      • contactobject
        BG-6/BG-9 Contact
    • buyerEInvoicePartyrequired
      BG-7 Buyer
      • namestringrequired
        BT-27/44 Name
        max. 300 characters
      • tradingNamestring
        BT-28/45 Trading name
        max. 300 characters
      • identifiersArray<object>required
        BT-29/46 Identifiers
      • legalRegistrationIdobject
        BT-30/47 Registration number
      • vatIdstring
        BT-31/48 VAT ID
        max. 30 characters
      • taxNumberstring
        BT-32 Tax number (seller only)
        max. 30 characters
      • additionalLegalInfostring
        BT-33 Additional legal information (seller only)
        max. 1000 characters
      • electronicAddressobject
        BT-34/49 Electronic address (scheme EM = email, 0204 = Leitweg-ID)
      • addressEInvoiceAddressrequired
      • contactobject
        BG-6/BG-9 Contact
    • payeeNamestring
      BT-59 Payee, if different
      max. 300 characters
    • deliveryobject
      • partyNamestring
        BT-70
        max. 300 characters
      • datestring
        BT-72 Delivery/service date
        max. 10 characters
      • addressEInvoiceAddress
        BG-15 Delivery address
    • invoicingPeriodobject
      BG-14 Invoicing period
      • startstring
        max. 10 characters
      • endstring
        max. 10 characters
    • paymentMeansEInvoicePaymentMeans
      BG-16
      • typeCodestringrequired
        BT-81 Payment means (UNTDID 4461, 58 = SEPA credit transfer)
        max. 10 characters
      • textstring
        BT-82
        max. 300 characters
      • remittanceInfostring
        BT-83 Payment reference
        max. 300 characters
      • accountsArray<object>required
        BG-17 Credit transfer
      • cardobject
        BG-18 Card payment (last digits only)
      • directDebitobject
        BG-19 Direct debit
    • paymentTermsstring
      BT-20 Payment terms
      max. 2000 characters
    • allowanceChargesArray<EInvoiceAllowanceCharge>required
      BG-20/BG-21 Document-level allowances/charges
      • chargeIndicatorbooleanrequired
        true = surcharge, false = discount
      • amountCentsintegerrequired
        BT-92/99/136/141 Amount
        -9007199254740991–9007199254740991
      • baseAmountCentsinteger
        BT-93/100/137/142 Base amount
        -9007199254740991–9007199254740991
      • percentnumber
        BT-94/101/138/143 Percentage
      • reasonstring
        BT-97/104/139/144 Reason
        max. 500 characters
      • reasonCodestring
        BT-98/105/140/145 Reason (code)
        max. 10 characters
      • taxCategorystring
        BT-95/102 VAT category (document level only)
        max. 3 characters
      • taxRatenumber | null
        BT-96/103 VAT rate (document level only)
    • totalsEInvoiceTotalsrequired
      BG-22
      • lineNetCentsintegerrequired
        BT-106 Sum of line net amounts
        -9007199254740991–9007199254740991
      • allowancesCentsintegerrequired
        BT-107 Sum of allowances
        -9007199254740991–9007199254740991
      • chargesCentsintegerrequired
        BT-108 Sum of charges
        -9007199254740991–9007199254740991
      • taxExclusiveCentsintegerrequired
        BT-109 Total net amount
        -9007199254740991–9007199254740991
      • taxCentsintegerrequired
        BT-110 Total VAT
        -9007199254740991–9007199254740991
      • taxInclusiveCentsintegerrequired
        BT-112 Total gross amount
        -9007199254740991–9007199254740991
      • prepaidCentsintegerrequired
        BT-113 Already paid
        -9007199254740991–9007199254740991
      • roundingCentsintegerrequired
        BT-114 Rounding
        -9007199254740991–9007199254740991
      • payableCentsintegerrequired
        BT-115 Amount due
        -9007199254740991–9007199254740991
    • vatBreakdownArray<EInvoiceVatBreakdown>required
      BG-23
      • categorystringrequired
        BT-118 Category
        max. 3 characters
      • ratenumber | nullrequired
        BT-119 Rate in percent (null for O)
      • taxableCentsintegerrequired
        BT-116 Taxable amount
        -9007199254740991–9007199254740991
      • taxCentsintegerrequired
        BT-117 Tax amount
        -9007199254740991–9007199254740991
      • exemptionReasonstring
        BT-120 Exemption reason
        max. 1000 characters
      • exemptionReasonCodestring
        BT-121 Exemption reason (VATEX code)
        max. 30 characters
    • linesArray<EInvoiceLine>required
      BG-25
      • idstringrequired
        BT-126 Line number
        max. 100 characters
      • parentLineIdstring
        parent line (CII ParentLineID, incoming only)
        max. 100 characters
      • statusReasonCodestring
        CII LineStatusReasonCode (DETAIL, GROUP, INFORMATION; incoming only)
        max. 20 characters
      • notestring
        BT-127 Line note
        max. 2000 characters
      • quantitynumberrequired
        BT-129 Quantity
      • unitCodestringrequired
        BT-130 Unit (UN/ECE Rec. 20/21)
        max. 10 characters
      • netAmountCentsintegerrequired
        BT-131 Line net amount
        -9007199254740991–9007199254740991
      • orderLineReferencestring
        BT-132 Purchase order line number
        max. 100 characters
      • periodobject
        BG-26 Invoice line period
      • allowanceChargesArray<EInvoiceAllowanceCharge>required
        BG-27/BG-28
      • netPriceCentsnumberrequired
        BT-146 Net price
      • grossPriceCentsnumber
        BT-148 Gross price (before price discount)
      • priceDiscountCentsnumber
        BT-147 Price discount
      • baseQuantitynumber
        BT-149 Base quantity
      • vatobjectrequired
      • itemobjectrequired
    • attachmentsArray<EInvoiceAttachment>required
      BG-24
      • idstringrequired
        BT-122 Identifier
        max. 200 characters
      • descriptionstring
        BT-123
        max. 1000 characters
      • uristring
        BT-124 External location
        max. 1000 characters
      • filenamestring
        BT-125 File name
        max. 300 characters
      • mimeCodestring
        max. 100 characters
      • sizeBytesinteger
        -9007199254740991–9007199254740991
      • contentBase64string
        BT-125 Content (Base64)
    • extensionEInvoiceExtensionData
      XRechnung extension: sub-lines, third-party payments (incoming only)
      • subLinesArray<EInvoiceSubLine>required
      • thirdPartyPaymentsArray<EInvoiceThirdPartyPayment>required
    • language"de" | "en"
      Language of the free texts and the human-readable rendering (internal; EN 16931/XRechnung have no language field in the invoice header)
  • validationEInvoiceValidationReportrequired
    • profile"en16931" | "xrechnung"required
    • validbooleanrequired
      no errors (warnings allowed)
    • errorCountintegerrequired
      -9007199254740991–9007199254740991
    • warningCountintegerrequired
      -9007199254740991–9007199254740991
    • issuesArray<EInvoiceValidationIssue>required
      • severity"error" | "warning"required
      • rulestringrequired
        Rule ID, e.g. BR-16, BR-DE-15, BR-S-02
      • fieldsArray<string>required
        affected business terms, e.g. ["BT-10"]
      • pathstring
        Path in the data model, e.g. seller.contact.phone
      • messagestringrequired
        human-readable message (German)
      • hintstring
        How to fix it (for your own invoices)
    • scope"structure"required
      Structural check (mandatory fields, totals, tax rules). The full KoSIT check is returned in `external`.
  • receiptDraftEInvoiceReceiptDraftrequired
    • documentType"invoice" | "credit_note"required
    • supplierNamestringrequired
    • supplierVatIdstring | nullrequired
    • supplierTaxNumberstring | nullrequired
    • supplierIbanstring | nullrequired
    • supplierEmailstring | nullrequired
    • documentNumberstringrequired
    • documentDatestring | nullrequired
    • dueDatestring | nullrequired
    • currencystringrequired
    • totalsobjectrequired
      • netCentsintegerrequired
        Amount in cents
        -9007199254740991–9007199254740991
      • taxCentsintegerrequired
        Amount in cents
        -9007199254740991–9007199254740991
      • grossCentsintegerrequired
        Amount in cents
        -9007199254740991–9007199254740991
    • payableCentsintegerrequired
      Amount in cents
      -9007199254740991–9007199254740991
    • taxLinesArray<object>required
      • taxRatenumberrequired
      • categorystringrequired
      • netCentsintegerrequired
        Amount in cents
        -9007199254740991–9007199254740991
      • taxCentsintegerrequired
        Amount in cents
        -9007199254740991–9007199254740991
    • paymentReferencestring | nullrequired
    • descriptionstringrequired
      Short description from the first line items
  • parserWarningsArray<string>required
    unparseable or unknown details
  • xmlstring | nullrequired
    extracted XML (PDF only)
  • externalEInvoiceExternalValidationReport | null
    Result of the official KoSIT validator (only if requested and the service is configured)
    • status"passed" | "failed" | "unavailable" | "skipped"required
    • mode"required" | "optional" | "off"required
    • documentKind"xml" | "zugferd_pdf"required
    • sha256stringrequired
      SHA-256 of the validated document
    • checkedAtstringrequired
      Time of validation (ISO 8601)
    • baselinestringrequired
      Validation basis (versions, ER-09)
    • resultsArray<EInvoiceExternalValidatorResult>required
      • validator"kosit" | "verapdf" | "mustang"required
      • versionstring | nullrequired
        version reported by the service or configured
      • status"passed" | "failed" | "unavailable" | "skipped"required
      • scenariostring | nullrequired
        KoSIT scenario, veraPDF profile or ZUGFeRD profile
      • errorCountintegerrequired
        -9007199254740991–9007199254740991
      • warningCountintegerrequired
        -9007199254740991–9007199254740991
      • messagesArray<EInvoiceExternalValidationMessage>required
        at most 200 messages
      • durationMsinteger | nullrequired
        -9007199254740991–9007199254740991
      • errorstring | nullrequired
        technical error (only for unavailable)

Possible errors: 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=@file'
Response 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,
        "parentLineId": null,
        "statusReasonCode": 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": [],
    "extension": {
      "subLines": [],
      "thirdPartyPayments": []
    },
    "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",
  "external": {
    "status": "passed",
    "mode": "required",
    "documentKind": "xml",
    "sha256": "string",
    "checkedAt": "string",
    "baseline": "string",
    "results": [
      null
    ]
  }
}
GET/api/v1/e-invoices/readiness

Uses a sample invoice to check whether the company master data (Company & invoicing) is sufficient for ZUGFeRD (EN 16931) and XRechnung, and lists missing details (e.g. phone number, IBAN).

Permission: profile:read

Response 200 · EInvoiceReadiness

  • formatsArray<object>required
    • format"xrechnung_ubl" | "xrechnung_cii" | "zugferd"required
    • labelstringrequired
    • readybooleanrequired
    • issuesArray<EInvoiceValidationIssue>required
      • severity"error" | "warning"required
      • rulestringrequired
        Rule ID, e.g. BR-16, BR-DE-15, BR-S-02
      • fieldsArray<string>required
        affected business terms, e.g. ["BT-10"]
      • pathstring
        Path in the data model, e.g. seller.contact.phone
      • messagestringrequired
        human-readable message (German)
      • hintstring
        How to fix it (for your own invoices)

Possible errors: 400, 401, 403, 429, 500

curl 'https://www.debt-flow.io/api/v1/e-invoices/readiness' \
  -H "Authorization: Bearer $DEBTFLOW_API_KEY"
Response 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

Converts invoice data into the EN 16931 data model and checks required fields, totals and tax rules (for XRechnung, also BR-DE-*). Does not generate a file. Each message names the rule (e.g. BR-DE-15) and the business terms concerned (e.g. BT-10).

Permission: invoices:read

Body (JSON) · EInvoiceValidateRequest

  • format"xrechnung_ubl" | "xrechnung_cii" | "zugferd"required
    Target format (determines the rule set)
  • invoiceEInvoiceSourcerequired
    • type"invoice" | "credit_note" | "cancellation"
      Invoice, credit note or cancellation invoice
      Default: "invoice"
    • numberstringrequired
      max. 60 characters
    • issueDatestring (date)required
      Date (YYYY-MM-DD)
    • serviceDatestring (date)
      Service/delivery date
    • servicePeriodobject
      Service period
      • fromstring (date)required
        Date (YYYY-MM-DD)
      • tostring (date)required
        Date (YYYY-MM-DD)
    • dueDatestring (date)
      Date (YYYY-MM-DD)
    • paymentTermsDaysinteger
      0–365
    • currency"EUR"
      Default: "EUR"
    • priceMode"net" | "gross"
      Default: "net"
    • taxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"
      Tax treatment of the receipt
      Default: "regular"
    • taxNoticestring | null
      Mandatory notice (default from the tax treatment)
      max. 500 characters
    • taxExemptboolean
      VAT exemption under § 4 No. 8 et seq. UStG (tax case “tax_exempt”, ST-16): category E instead of O, exemption reason from the notice text
    • subjectstring
      max. 300 characters
    • introTextstring
      max. 5000 characters
    • closingTextstring
      max. 5000 characters
    • linesArray<DocumentLine>required
      • idstring
        stable line item ID (assigned by the server if empty)
        max. 40 characters
      • type"item" | "text" | "subtotal"
        Line item, plain text line or subtotal
        Default: "item"
      • articleIdstring
        Reference to the article master data
        max. 128 characters
      • titlestringrequired
        max. 300 characters
      • descriptionstring
        max. 5000 characters
      • quantitynumber
        -1000000–1000000 · Default: 1
      • unitstring
        Unit, e.g. Stk, Std, pauschal (piece, hour, flat rate); UN/ECE Rec 20 for e-invoicing: module
        max. 20 characters
      • unitPriceCentsinteger
        Amount in cents
        -100000000000–100000000000 · Default: 0
      • discountPercentnumber
        0–100
      • taxRatenumber
        Tax rate in per cent (19, 7, 0 …)
        0–100 · Default: 19
      • totalCentsinteger
        Amount in cents
        -100000000000–100000000000
      • servicePeriodobject
      • projectIdstring
        max. 128 characters
      • timeEntryIdsArray<string>
        max. 128 characters
    • totalsDocumentTotals
      Stored totals – recalculated and must match
      • netCentsintegerrequired
        Amount in cents
        -100000000000–100000000000
      • taxCentsintegerrequired
        Amount in cents
        -100000000000–100000000000
      • grossCentsintegerrequired
        Amount in cents
        -100000000000–100000000000
      • groupsArray<object>required
    • prepaidCentsinteger
      BT-113 Advance payments already received
      0–100000000000
    • recipientEInvoiceRecipientrequired
      • namestringrequired
        Company or name
        max. 160 characters
      • additionstring
        Address supplement, e.g. attn. / department
        max. 160 characters
      • streetstringrequired
        Street and house number
        max. 160 characters
      • zipCodestringrequired
        max. 10 characters
      • citystringrequired
        max. 80 characters
      • countrystring
        Country code ISO 3166-1 alpha-2
        max. 2 characters · Default: "DE"
      • vatIdstring
        Recipient's VAT ID (required for § 13b / intra-Community supply)
        max. 20 characters
      • leitwegIdstring
        Leitweg-ID (public contracting authorities)
        max. 46 characters
      • recipientType"business" | "public_authority"
        Recipient profile: public_authority requires a Leitweg-ID, business does not (ER-08)
      • emailstring
        max. 254 characters
      • customerNumberstring
        max. 60 characters
      • contactNamestring
        max. 160 characters
      • phonestring
        max. 40 characters
    • senderEInvoiceSender
      Sender snapshot; if omitted: current company master data
      • companyNamestring
        max. 160 characters · Default: ""
      • ownerNamestring
        max. 120 characters
      • legalFormstring
        max. 60 characters
      • managingDirectorsstring
        max. 300 characters
      • addressobjectrequired
      • phonestring
        max. 40 characters
      • emailstring
        max. 254 characters
      • websitestring
        max. 200 characters
      • taxNumberstring
        max. 20 characters
      • vatIdstring
        max. 20 characters
      • smallBusinessboolean
      • commercialRegisterobject
      • bankobject
    • relatedInvoiceobject
      Original invoice (for credit note/cancellation)
      • numberstringrequired
        max. 60 characters
      • issueDatestring (date)
        Date (YYYY-MM-DD)
    • buyerReferencestring
      BT-10; default: Leitweg-ID, otherwise order or customer number
      max. 200 characters
    • orderReferencestring
      max. 200 characters
    • contractReferencestring
      max. 200 characters
    • projectReferencestring
      max. 200 characters
    • paymentReferencestring
      Payment reference; default: invoice number
      max. 140 characters
    • language"de" | "en"
      Language of the generated free texts (payment terms, tax exemption reason, human-readable rendering); default de
  • externalboolean
    Also validate with the official KoSIT validator (for ZUGFeRD also veraPDF and Mustang)
    Default: false

Response 200 · EInvoiceValidateResult

  • format"xrechnung_ubl" | "xrechnung_cii" | "zugferd"required
  • invoiceEInvoicerequired
    • customizationIdstringrequired
      BT-24 Specification identifier
      max. 300 characters
    • profileIdstring
      BT-23 Business process
      max. 300 characters
    • numberstringrequired
      BT-1 Invoice number
      max. 200 characters
    • issueDatestringrequired
      BT-2 Invoice date (YYYY-MM-DD)
      max. 10 characters
    • typeCodestringrequired
      BT-3 Invoice type (380 invoice, 381 credit note, 384 corrected invoice …)
      max. 10 characters
    • currencystringrequired
      BT-5 Currency
      max. 3 characters
    • taxPointDatestring
      BT-7
      max. 10 characters
    • dueDatestring
      BT-9 Due date
      max. 10 characters
    • buyerReferencestring
      BT-10 Buyer reference / Leitweg-ID
      max. 200 characters
    • projectReferencestring
      BT-11
      max. 200 characters
    • contractReferencestring
      BT-12
      max. 200 characters
    • orderReferencestring
      BT-13 Purchase order number
      max. 200 characters
    • salesOrderReferencestring
      BT-14 Sales order number
      max. 200 characters
    • accountingReferencestring
      BT-19 Accounting reference
      max. 200 characters
    • notesArray<object>required
      BG-1 Notes
      • subjectCodestring
        max. 10 characters
      • textstringrequired
        max. 10000 characters
    • precedingInvoicesArray<object>required
      BG-3 Reference to preceding invoices
      • numberstringrequired
        max. 200 characters
      • issueDatestring
        max. 10 characters
    • sellerEInvoicePartyrequired
      BG-4 Seller
      • namestringrequired
        BT-27/44 Name
        max. 300 characters
      • tradingNamestring
        BT-28/45 Trading name
        max. 300 characters
      • identifiersArray<object>required
        BT-29/46 Identifiers
      • legalRegistrationIdobject
        BT-30/47 Registration number
      • vatIdstring
        BT-31/48 VAT ID
        max. 30 characters
      • taxNumberstring
        BT-32 Tax number (seller only)
        max. 30 characters
      • additionalLegalInfostring
        BT-33 Additional legal information (seller only)
        max. 1000 characters
      • electronicAddressobject
        BT-34/49 Electronic address (scheme EM = email, 0204 = Leitweg-ID)
      • addressEInvoiceAddressrequired
      • contactobject
        BG-6/BG-9 Contact
    • buyerEInvoicePartyrequired
      BG-7 Buyer
      • namestringrequired
        BT-27/44 Name
        max. 300 characters
      • tradingNamestring
        BT-28/45 Trading name
        max. 300 characters
      • identifiersArray<object>required
        BT-29/46 Identifiers
      • legalRegistrationIdobject
        BT-30/47 Registration number
      • vatIdstring
        BT-31/48 VAT ID
        max. 30 characters
      • taxNumberstring
        BT-32 Tax number (seller only)
        max. 30 characters
      • additionalLegalInfostring
        BT-33 Additional legal information (seller only)
        max. 1000 characters
      • electronicAddressobject
        BT-34/49 Electronic address (scheme EM = email, 0204 = Leitweg-ID)
      • addressEInvoiceAddressrequired
      • contactobject
        BG-6/BG-9 Contact
    • payeeNamestring
      BT-59 Payee, if different
      max. 300 characters
    • deliveryobject
      • partyNamestring
        BT-70
        max. 300 characters
      • datestring
        BT-72 Delivery/service date
        max. 10 characters
      • addressEInvoiceAddress
        BG-15 Delivery address
    • invoicingPeriodobject
      BG-14 Invoicing period
      • startstring
        max. 10 characters
      • endstring
        max. 10 characters
    • paymentMeansEInvoicePaymentMeans
      BG-16
      • typeCodestringrequired
        BT-81 Payment means (UNTDID 4461, 58 = SEPA credit transfer)
        max. 10 characters
      • textstring
        BT-82
        max. 300 characters
      • remittanceInfostring
        BT-83 Payment reference
        max. 300 characters
      • accountsArray<object>required
        BG-17 Credit transfer
      • cardobject
        BG-18 Card payment (last digits only)
      • directDebitobject
        BG-19 Direct debit
    • paymentTermsstring
      BT-20 Payment terms
      max. 2000 characters
    • allowanceChargesArray<EInvoiceAllowanceCharge>required
      BG-20/BG-21 Document-level allowances/charges
      • chargeIndicatorbooleanrequired
        true = surcharge, false = discount
      • amountCentsintegerrequired
        BT-92/99/136/141 Amount
        -9007199254740991–9007199254740991
      • baseAmountCentsinteger
        BT-93/100/137/142 Base amount
        -9007199254740991–9007199254740991
      • percentnumber
        BT-94/101/138/143 Percentage
      • reasonstring
        BT-97/104/139/144 Reason
        max. 500 characters
      • reasonCodestring
        BT-98/105/140/145 Reason (code)
        max. 10 characters
      • taxCategorystring
        BT-95/102 VAT category (document level only)
        max. 3 characters
      • taxRatenumber | null
        BT-96/103 VAT rate (document level only)
    • totalsEInvoiceTotalsrequired
      BG-22
      • lineNetCentsintegerrequired
        BT-106 Sum of line net amounts
        -9007199254740991–9007199254740991
      • allowancesCentsintegerrequired
        BT-107 Sum of allowances
        -9007199254740991–9007199254740991
      • chargesCentsintegerrequired
        BT-108 Sum of charges
        -9007199254740991–9007199254740991
      • taxExclusiveCentsintegerrequired
        BT-109 Total net amount
        -9007199254740991–9007199254740991
      • taxCentsintegerrequired
        BT-110 Total VAT
        -9007199254740991–9007199254740991
      • taxInclusiveCentsintegerrequired
        BT-112 Total gross amount
        -9007199254740991–9007199254740991
      • prepaidCentsintegerrequired
        BT-113 Already paid
        -9007199254740991–9007199254740991
      • roundingCentsintegerrequired
        BT-114 Rounding
        -9007199254740991–9007199254740991
      • payableCentsintegerrequired
        BT-115 Amount due
        -9007199254740991–9007199254740991
    • vatBreakdownArray<EInvoiceVatBreakdown>required
      BG-23
      • categorystringrequired
        BT-118 Category
        max. 3 characters
      • ratenumber | nullrequired
        BT-119 Rate in percent (null for O)
      • taxableCentsintegerrequired
        BT-116 Taxable amount
        -9007199254740991–9007199254740991
      • taxCentsintegerrequired
        BT-117 Tax amount
        -9007199254740991–9007199254740991
      • exemptionReasonstring
        BT-120 Exemption reason
        max. 1000 characters
      • exemptionReasonCodestring
        BT-121 Exemption reason (VATEX code)
        max. 30 characters
    • linesArray<EInvoiceLine>required
      BG-25
      • idstringrequired
        BT-126 Line number
        max. 100 characters
      • parentLineIdstring
        parent line (CII ParentLineID, incoming only)
        max. 100 characters
      • statusReasonCodestring
        CII LineStatusReasonCode (DETAIL, GROUP, INFORMATION; incoming only)
        max. 20 characters
      • notestring
        BT-127 Line note
        max. 2000 characters
      • quantitynumberrequired
        BT-129 Quantity
      • unitCodestringrequired
        BT-130 Unit (UN/ECE Rec. 20/21)
        max. 10 characters
      • netAmountCentsintegerrequired
        BT-131 Line net amount
        -9007199254740991–9007199254740991
      • orderLineReferencestring
        BT-132 Purchase order line number
        max. 100 characters
      • periodobject
        BG-26 Invoice line period
      • allowanceChargesArray<EInvoiceAllowanceCharge>required
        BG-27/BG-28
      • netPriceCentsnumberrequired
        BT-146 Net price
      • grossPriceCentsnumber
        BT-148 Gross price (before price discount)
      • priceDiscountCentsnumber
        BT-147 Price discount
      • baseQuantitynumber
        BT-149 Base quantity
      • vatobjectrequired
      • itemobjectrequired
    • attachmentsArray<EInvoiceAttachment>required
      BG-24
      • idstringrequired
        BT-122 Identifier
        max. 200 characters
      • descriptionstring
        BT-123
        max. 1000 characters
      • uristring
        BT-124 External location
        max. 1000 characters
      • filenamestring
        BT-125 File name
        max. 300 characters
      • mimeCodestring
        max. 100 characters
      • sizeBytesinteger
        -9007199254740991–9007199254740991
      • contentBase64string
        BT-125 Content (Base64)
    • extensionEInvoiceExtensionData
      XRechnung extension: sub-lines, third-party payments (incoming only)
      • subLinesArray<EInvoiceSubLine>required
      • thirdPartyPaymentsArray<EInvoiceThirdPartyPayment>required
    • language"de" | "en"
      Language of the free texts and the human-readable rendering (internal; EN 16931/XRechnung have no language field in the invoice header)
  • validationEInvoiceValidationReportrequired
    • profile"en16931" | "xrechnung"required
    • validbooleanrequired
      no errors (warnings allowed)
    • errorCountintegerrequired
      -9007199254740991–9007199254740991
    • warningCountintegerrequired
      -9007199254740991–9007199254740991
    • issuesArray<EInvoiceValidationIssue>required
      • severity"error" | "warning"required
      • rulestringrequired
        Rule ID, e.g. BR-16, BR-DE-15, BR-S-02
      • fieldsArray<string>required
        affected business terms, e.g. ["BT-10"]
      • pathstring
        Path in the data model, e.g. seller.contact.phone
      • messagestringrequired
        human-readable message (German)
      • hintstring
        How to fix it (for your own invoices)
    • scope"structure"required
      Structural check (mandatory fields, totals, tax rules). The full KoSIT check is returned in `external`.
  • externalEInvoiceExternalValidationReport | null
    Result of the external validation (only with `external: true`)
    • status"passed" | "failed" | "unavailable" | "skipped"required
    • mode"required" | "optional" | "off"required
    • documentKind"xml" | "zugferd_pdf"required
    • sha256stringrequired
      SHA-256 of the validated document
    • checkedAtstringrequired
      Time of validation (ISO 8601)
    • baselinestringrequired
      Validation basis (versions, ER-09)
    • resultsArray<EInvoiceExternalValidatorResult>required
      • validator"kosit" | "verapdf" | "mustang"required
      • versionstring | nullrequired
        version reported by the service or configured
      • status"passed" | "failed" | "unavailable" | "skipped"required
      • scenariostring | nullrequired
        KoSIT scenario, veraPDF profile or ZUGFeRD profile
      • errorCountintegerrequired
        -9007199254740991–9007199254740991
      • warningCountintegerrequired
        -9007199254740991–9007199254740991
      • messagesArray<EInvoiceExternalValidationMessage>required
        at most 200 messages
      • durationMsinteger | nullrequired
        -9007199254740991–9007199254740991
      • errorstring | nullrequired
        technical error (only for unavailable)

Possible errors: 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",
    "taxExempt": false,
    "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",
      "recipientType": "business",
      "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"
  },
  "external": false
}'
Response 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,
        "parentLineId": null,
        "statusReasonCode": 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": [],
    "extension": {
      "subLines": [],
      "thirdPartyPayments": []
    },
    "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"
  },
  "external": {
    "status": "passed",
    "mode": "required",
    "documentKind": "xml",
    "sha256": "string",
    "checkedAt": "string",
    "baseline": "string",
    "results": [
      null
    ]
  }
}
POST/api/v1/e-invoices/visualize

Generates a human-readable PDF rendering (DIN 5008) of an XRechnung or a ZUGFeRD/Factur-X PDF (field file). The structured data remains legally authoritative.

Permission: receipts:read

Body (multipart/form-data)

  • filestring (binary)required
    application/xml, text/xml, application/pdf, max. 15360 KB

Response 200

File (application/pdf).

Possible errors: 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=@file'