Invoices
/api/v1/invoice-settingsDefault texts, GiroCode, validity of quotes, email templates, custom tax notes and automatic handover to dunning.
Permission: invoices:read
Response 200 · InvoiceSettings
collectionobjectrequiredenabledbooleanrequiredAutomatically hand over overdue invoices to dunning as debtsdaysAfterDueintegerrequiredDays after due date until handover0–365
invoiceobjectrequiredintroTextstringrequiredmax. 5000 charactersclosingTextstringrequiredmax. 5000 charactersshowGiroCodebooleanrequiredpaymentTermsDaysinteger | nullrequiredempty = from company & invoice0–365
offerobjectrequiredintroTextstringrequiredmax. 5000 charactersclosingTextstringrequiredmax. 5000 charactersvalidityDaysintegerrequired1–365
emailobjectrequiredinvoiceSubjectstringrequiredmax. 200 charactersinvoiceMessagestringrequiredmax. 5000 charactersofferSubjectstringrequiredmax. 200 charactersofferMessagestringrequiredmax. 5000 characterscopyToSelfbooleanrequired
taxNoticesobjectrequiredcustom mandatory notices per case (empty = default text with legal basis); checked for the mandatory detailssmall_businessstringmax. 500 charactersreverse_chargestringDomestic reverse charge (§ 13b UStG)max. 500 charactersreverse_charge_eustringReverse charge for services to EU businessesmax. 500 charactersintra_eu_supplystringmax. 500 charactersexportstringmax. 500 charactersnon_taxablestringmax. 500 characterstax_exemptstringVAT exemption under § 4 UStGmax. 500 characters
numberingobjectrequiredST-11: a separate range for corrections is recommended but not required by lawcorrections"separate" | "invoice"requiredNumber range for invoice corrections and cancellations: separate = own range (default), invoice = invoice range
curl 'https://www.debt-flow.io/api/v1/invoice-settings' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY"{
"collection": {
"enabled": false,
"daysAfterDue": 0
},
"invoice": {
"introText": "string",
"closingText": "string",
"showGiroCode": false,
"paymentTermsDays": 0
},
"offer": {
"introText": "string",
"closingText": "string",
"validityDays": 1
},
"email": {
"invoiceSubject": "string",
"invoiceMessage": "string",
"offerSubject": "string",
"offerMessage": "string",
"copyToSelf": false
},
"taxNotices": {
"small_business": "string",
"reverse_charge": "string",
"reverse_charge_eu": "string",
"intra_eu_supply": "string",
"export": "string",
"non_taxable": "string",
"tax_exempt": "string"
},
"numbering": {
"corrections": "separate"
}
}/api/v1/invoice-settingsPermission: invoices:write
Body (JSON) · InvoiceSettingsUpdate
collectionobjectenabledbooleanAutomatically hand over overdue invoices to dunning as debtsdaysAfterDueintegerDays after due date until handover0–365
invoiceobjectintroTextstringmax. 5000 charactersclosingTextstringmax. 5000 charactersshowGiroCodebooleanpaymentTermsDaysinteger | nullempty = from company & invoice0–365
offerobjectintroTextstringmax. 5000 charactersclosingTextstringmax. 5000 charactersvalidityDaysinteger1–365
emailobjectinvoiceSubjectstringmax. 200 charactersinvoiceMessagestringmax. 5000 charactersofferSubjectstringmax. 200 charactersofferMessagestringmax. 5000 characterscopyToSelfboolean
taxNoticesobjectcustom mandatory notices per case (empty = default text with legal basis); checked for the mandatory detailssmall_businessstringmax. 500 charactersreverse_chargestringDomestic reverse charge (§ 13b UStG)max. 500 charactersreverse_charge_eustringReverse charge for services to EU businessesmax. 500 charactersintra_eu_supplystringmax. 500 charactersexportstringmax. 500 charactersnon_taxablestringmax. 500 characterstax_exemptstringVAT exemption under § 4 UStGmax. 500 characters
numberingobjectcorrections"separate" | "invoice"Number range for invoice corrections and cancellations: separate = own range (default), invoice = invoice range
Response 200 · InvoiceSettings
collectionobjectrequiredenabledbooleanrequiredAutomatically hand over overdue invoices to dunning as debtsdaysAfterDueintegerrequiredDays after due date until handover0–365
invoiceobjectrequiredintroTextstringrequiredmax. 5000 charactersclosingTextstringrequiredmax. 5000 charactersshowGiroCodebooleanrequiredpaymentTermsDaysinteger | nullrequiredempty = from company & invoice0–365
offerobjectrequiredintroTextstringrequiredmax. 5000 charactersclosingTextstringrequiredmax. 5000 charactersvalidityDaysintegerrequired1–365
emailobjectrequiredinvoiceSubjectstringrequiredmax. 200 charactersinvoiceMessagestringrequiredmax. 5000 charactersofferSubjectstringrequiredmax. 200 charactersofferMessagestringrequiredmax. 5000 characterscopyToSelfbooleanrequired
taxNoticesobjectrequiredcustom mandatory notices per case (empty = default text with legal basis); checked for the mandatory detailssmall_businessstringmax. 500 charactersreverse_chargestringDomestic reverse charge (§ 13b UStG)max. 500 charactersreverse_charge_eustringReverse charge for services to EU businessesmax. 500 charactersintra_eu_supplystringmax. 500 charactersexportstringmax. 500 charactersnon_taxablestringmax. 500 characterstax_exemptstringVAT exemption under § 4 UStGmax. 500 characters
numberingobjectrequiredST-11: a separate range for corrections is recommended but not required by lawcorrections"separate" | "invoice"requiredNumber range for invoice corrections and cancellations: separate = own range (default), invoice = invoice range
curl -X PATCH 'https://www.debt-flow.io/api/v1/invoice-settings' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"collection": {
"enabled": false,
"daysAfterDue": 0
},
"invoice": {
"introText": "string",
"closingText": "string",
"showGiroCode": false,
"paymentTermsDays": 0
},
"offer": {
"introText": "string",
"closingText": "string",
"validityDays": 1
},
"email": {
"invoiceSubject": "string",
"invoiceMessage": "string",
"offerSubject": "string",
"offerMessage": "string",
"copyToSelf": false
},
"taxNotices": {
"small_business": "string",
"reverse_charge": "string",
"reverse_charge_eu": "string",
"intra_eu_supply": "string",
"export": "string",
"non_taxable": "string",
"tax_exempt": "string"
},
"numbering": {
"corrections": "separate"
}
}'{
"collection": {
"enabled": false,
"daysAfterDue": 0
},
"invoice": {
"introText": "string",
"closingText": "string",
"showGiroCode": false,
"paymentTermsDays": 0
},
"offer": {
"introText": "string",
"closingText": "string",
"validityDays": 1
},
"email": {
"invoiceSubject": "string",
"invoiceMessage": "string",
"offerSubject": "string",
"offerMessage": "string",
"copyToSelf": false
},
"taxNotices": {
"small_business": "string",
"reverse_charge": "string",
"reverse_charge_eu": "string",
"intra_eu_supply": "string",
"export": "string",
"non_taxable": "string",
"tax_exempt": "string"
},
"numbering": {
"corrections": "separate"
}
}/api/v1/invoicesInvoices, credit notes and cancellation invoices, newest first. Filter by status, document type and contact.
Permission: invoices:read
Query parameters
status"draft" | "open" | "partially_paid" | "paid" | "overdue" | "canceled"type"invoice" | "credit_note" | "cancellation"contactIdstringmax. 128 characterslimitintegerNumber of entries (1–100)1–100 · Default: 25cursorstring`nextCursor` of the previous pagemax. 500 characters
Response 200
object"list"requireddataArray<Invoice>requiredidstringrequiredmax. 128 charactersobject"invoice"requiredtype"invoice" | "credit_note" | "cancellation"requiredkind"standard" | "advance" | "final"requiredstatus"draft" | "open" | "partially_paid" | "paid" | "overdue" | "canceled"requirednumberstring | nullrequiredDocument number; assigned only on finalisingcontactIdstring | nullrequiredmax. 128 charactersrecipientDocumentRecipientrequirednamestringrequiredCompany or namemax. 160 charactersadditionstringAddress supplement, e.g. attn. Ms Mustermax. 160 charactersstreetstringrequiredmax. 160 characters · Default: ""zipCodestringrequiredmax. 10 characters · Default: ""citystringrequiredmax. 80 characters · Default: ""countrystringrequiredCountry code ISO 3166-1 alpha-2max. 2 characters · Default: "DE"emailstring (email)Invoice recipient (email)max. 254 charactersvatIdstringRecipient's VAT ID (required for reverse charge/intra-Community supply)leitwegIdstringLeitweg-ID (XRechnung to public authorities)max. 60 characterseinvoiceRecipientType"business" | "public_authority"E-invoice recipient profile (from the contact): public_authority requires a Leitweg-ID (ER-08)customerNumberstringCustomer number (assigned on finalisation)max. 40 characters
senderSenderSnapshot | nullrequiredSender snapshot (taken on finalising)companyNamestringrequiredownerNamestringlegalFormstringmanagingDirectorsstringstreetstringrequiredzipCodestringrequiredcitystringrequiredcountryCodestringrequiredphonestringemailstringwebsitestringtaxNumberstringvatIdstringsmallBusinessbooleanrequiredcommercialRegisterobjectbankobjectinvoiceFooterstring
issueDatestring (date) | nullrequiredDate (YYYY-MM-DD)serviceDatestring (date) | nullrequiredDate (YYYY-MM-DD)servicePeriodServicePeriod | nullrequiredfromstring (date)requiredDate (YYYY-MM-DD)tostring (date)requiredDate (YYYY-MM-DD)
serviceDateSource"entered" | "period" | "confirmed_issue_date" | "recurring" | "not_applicable" | nullrequiredSource of the date of supply (ST-13): confirmed_issue_date = confirmed by the userissuanceInvoiceIssuance | nullrequiredEvidence of issue (from finalising, ST-14)finalizedAtstring (date-time)requiredServer time of finalisingserverDatestring (date)requiredCalendar day of finalising (Europe/Berlin)issueDatestring (date)requiredDate (YYYY-MM-DD)issueDateSource"finalize_day" | "entered"requiredfinalize_day = day of finalising, entered = entered in the draftdeviationDaysintegerrequiredIssue date minus finalising day in days (negative = earlier)-9007199254740991–9007199254740991reasonstring | nullrequiredReason for a differing issue datenumberstring | nullrequirednumberRangestringrequiredNumber range
dueDatestring (date) | nullrequiredDate (YYYY-MM-DD)paymentTermsDaysintegerrequired-9007199254740991–9007199254740991priceMode"net" | "gross"requiredtaxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"requiredTax treatment of the receipttaxNoticestring | nullrequiredMandatory notice (§ 19, § 13b, intra-Community supply …)taxCaseInvoiceTaxCase | nullrequiredTax case (tax assistant); saved at the latest when finalisingfactsobjectrequiredtreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"requiredTax treatment of the receiptplaceOfSupplystringrequiredPlace of supply (ISO country)legalBasisstringrequirednoticeVariantenum | nullrequiredCase variant of the mandatory notice (ST-03)Values: small_business, reverse_charge, reverse_charge_eu, intra_eu_supply, export, non_taxable, tax_exemptustvaKzstring | nullrequiredAdvance VAT return form field of the tax base (not for standard taxation)reportingArray<"ustva" | "zm" | "none">requiredconfidence"certain" | "likely" | "review"requiredassumedbooleanrequiredFacts assumed from the invoice data (not entered)reasonsArray<string>requiredwarningsArray<string>required
currency"EUR"requiredsubjectstringrequiredintroTextstringrequiredclosingTextstringrequiredreferencestringrequiredlinesArray<DocumentLine>requiredidstringstable line item ID (assigned by the server if empty)max. 40 characterstype"item" | "text" | "subtotal"Line item, plain text line or subtotalDefault: "item"articleIdstringReference to the article master datamax. 128 characterstitlestringrequiredmax. 300 charactersdescriptionstringmax. 5000 charactersquantitynumber-1000000–1000000 · Default: 1unitstringUnit, e.g. Stk, Std, pauschal (piece, hour, flat rate); UN/ECE Rec 20 for e-invoicing: modulemax. 20 charactersunitPriceCentsintegerAmount in cents-100000000000–100000000000 · Default: 0discountPercentnumber0–100taxRatenumberTax rate in per cent (19, 7, 0 …)0–100 · Default: 19totalCentsintegerAmount in cents-100000000000–100000000000servicePeriodobjectprojectIdstringmax. 128 characterstimeEntryIdsArray<string>max. 128 characters
totalsDocumentTotalsrequirednetCentsintegerrequiredAmount in cents-100000000000–100000000000taxCentsintegerrequiredAmount in cents-100000000000–100000000000grossCentsintegerrequiredAmount in cents-100000000000–100000000000groupsArray<object>required
deductionsArray<InvoiceDeduction>requiredFinal invoice: advance payments actually received and deducted (ST-09)invoiceIdstringrequiredmax. 128 charactersnumberstringrequiredissueDatestring (date)requiredDate (YYYY-MM-DD)netCentsintegerrequiredAmount in cents-100000000000–100000000000taxCentsintegerrequiredAmount in cents-100000000000–100000000000grossCentsintegerrequiredAmount in cents-100000000000–100000000000groupsArray<object>requiredinvoiceGrossCentsintegerInvoice amount of the progress invoice (ST-09)-100000000000–100000000000unpaidCentsintegerUnreceived remainder of the progress invoice – not deducted (ST-09)-100000000000–100000000000
amountDueCentsintegerrequiredAmount payable (gross less progress invoices)-100000000000–100000000000paidCentsintegerrequiredAmount in cents-100000000000–100000000000creditedCentsintegerrequiredreduced by invoice corrections (progress invoice: incl. the remainder settled with the final invoice)-100000000000–100000000000deductedCentsinteger | nullrequiredProgress invoice: amount received and deducted in the final invoice (ST-09)-100000000000–100000000000supersededCentsinteger | nullrequiredProgress invoice: unpaid remainder settled with the final invoice (ST-09)-100000000000–100000000000openCentsintegerrequiredAmount in cents-100000000000–100000000000relatedInvoiceIdstring | nullrequiredmax. 128 charactersadvanceInvoiceIdsArray<string>requiredmax. 128 charactersofferIdstring | nullrequiredmax. 128 charactersprojectIdstring | nullrequiredmax. 128 charactersrecurringInvoiceIdstring | nullrequiredmax. 128 characterscanceledByInvoiceIdstring | nullrequiredCancellation invoice for this invoicemax. 128 charactersdebtIdstring | nullrequiredDebt in dunning (after handover)max. 128 charactersshowGiroCodebooleanrequiredeinvoiceFormat"none" | "zugferd" | "xrechnung"requiredlanguage"de" | "en"requiredDocument language (fixed on finalisation)dispatchobjectrequiredcountintegerrequired-9007199254740991–9007199254740991lastChannel"email" | "post" | nullrequiredlastSentAtstring (date-time) | nullrequiredTimestamp (ISO 8601)
pdfobject | nullrequiredarchived PDF (after finalisation)sha256stringrequiredcreatedAtstring (date-time)requiredTimestamp (ISO 8601)
lockedbooleanrequiredlockedAtstring (date-time) | nullrequiredTimestamp (ISO 8601)paidAtstring (date-time) | nullrequiredTimestamp (ISO 8601)handedOverAtstring (date-time) | nullrequiredTimestamp (ISO 8601)createdAtstring (date-time)requiredTimestamp (ISO 8601)updatedAtstring (date-time)requiredTimestamp (ISO 8601)
hasMorebooleanrequirednextCursorstring | nullrequired
curl 'https://www.debt-flow.io/api/v1/invoices' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY"{
"object": "list",
"data": [
{
"id": "string",
"object": "invoice",
"type": "invoice",
"kind": "standard",
"status": "draft",
"number": "string",
"contactId": "string",
"recipient": {
"name": "string",
"addition": "string",
"street": "",
"zipCode": "",
"city": "",
"country": "DE",
"email": "[email protected]",
"vatId": "string",
"leitwegId": "string",
"einvoiceRecipientType": "business",
"customerNumber": "string"
},
"sender": {
"companyName": null,
"ownerName": null,
"legalForm": null,
"managingDirectors": null,
"street": null,
"zipCode": null,
"city": null,
"countryCode": null,
"phone": null,
"email": null,
"website": null,
"taxNumber": null,
"vatId": null,
"smallBusiness": null,
"commercialRegister": null,
"bank": null,
"invoiceFooter": null
},
"issueDate": "2026-11-01",
"serviceDate": "2026-11-01",
"servicePeriod": {
"from": null,
"to": null
},
"serviceDateSource": "entered",
"issuance": {
"finalizedAt": null,
"serverDate": null,
"issueDate": null,
"issueDateSource": null,
"deviationDays": null,
"reason": null,
"number": null,
"numberRange": null
},
"dueDate": "2026-11-01",
"paymentTermsDays": 0,
"priceMode": "net",
"taxTreatment": "regular",
"taxNotice": "string",
"taxCase": {
"facts": null,
"treatment": null,
"placeOfSupply": null,
"legalBasis": null,
"noticeVariant": null,
"ustvaKz": null,
"reporting": null,
"confidence": null,
"assumed": null,
"reasons": null,
"warnings": null
},
"currency": "EUR",
"subject": "string",
"introText": "string",
"closingText": "string",
"reference": "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
]
},
"deductions": [
{
"invoiceId": null,
"number": null,
"issueDate": null,
"netCents": null,
"taxCents": null,
"grossCents": null,
"groups": null,
"invoiceGrossCents": null,
"unpaidCents": null
}
],
"amountDueCents": 0,
"paidCents": 0,
"creditedCents": 0,
"deductedCents": 0,
"supersededCents": 0,
"openCents": 0,
"relatedInvoiceId": "string",
"advanceInvoiceIds": [
"string"
],
"offerId": "string",
"projectId": "string",
"recurringInvoiceId": "string",
"canceledByInvoiceId": "string",
"debtId": "string",
"showGiroCode": false,
"einvoiceFormat": "none",
"language": "de",
"dispatch": {
"count": 0,
"lastChannel": "email",
"lastSentAt": "2026-11-01T09:30:00.000Z"
},
"pdf": {
"sha256": "string",
"createdAt": "2026-11-01T09:30:00.000Z"
},
"locked": false,
"lockedAt": "2026-11-01T09:30:00.000Z",
"paidAt": "2026-11-01T09:30:00.000Z",
"handedOverAt": "2026-11-01T09:30:00.000Z",
"createdAt": "2026-11-01T09:30:00.000Z",
"updatedAt": "2026-11-01T09:30:00.000Z"
}
],
"hasMore": false,
"nextCursor": "string"
}/api/v1/invoicesCreates a draft (without a number). Recipient, payment terms, tax treatment and pricing mode are – if not specified – taken from the contact or from Company & invoicing respectively. The server calculates the totals. type: credit_note with relatedInvoiceId creates a credit note (invoice correction); if no line items are given, those of the invoice are copied.
Permission: invoices:write
Headers
Idempotency-KeystringUnique key (8–255 characters). Repeated requests with the same key return the same response for 24 h.max. 255 characters
Body (JSON) · InvoiceCreate
type"invoice" | "credit_note"Cancellation invoices are created via POST /invoices/{id}/cancelDefault: "invoice"kind"standard" | "advance" | "final"standard = invoice, advance = progress invoice, final = final invoicecontactIdstring | nullContact (customer) from /contactsmax. 128 charactersrecipientDocumentRecipientRecipient; if omitted, taken from the contactnamestringrequiredCompany or namemax. 160 charactersadditionstringAddress supplement, e.g. attn. Ms Mustermax. 160 charactersstreetstringrequiredmax. 160 characters · Default: ""zipCodestringrequiredmax. 10 characters · Default: ""citystringrequiredmax. 80 characters · Default: ""countrystringrequiredCountry code ISO 3166-1 alpha-2max. 2 characters · Default: "DE"emailstring (email)Invoice recipient (email)max. 254 charactersvatIdstringRecipient's VAT ID (required for reverse charge/intra-Community supply)leitwegIdstringLeitweg-ID (XRechnung to public authorities)max. 60 characterseinvoiceRecipientType"business" | "public_authority"E-invoice recipient profile (from the contact): public_authority requires a Leitweg-ID (ER-08)customerNumberstringCustomer number (assigned on finalisation)max. 40 characters
issueDatestring (date) | nullInvoice date; empty = day of finalisationserviceDatestring (date) | nullDelivery/service dateservicePeriodServicePeriod | nullService period (instead of service date)fromstring (date)requiredDate (YYYY-MM-DD)tostring (date)requiredDate (YYYY-MM-DD)
dueDatestring (date) | nullDue date; empty = invoice date + payment termpaymentTermsDaysintegerPayment term in days0–365priceMode"net" | "gross"Unit prices net (B2B) or gross (B2C)taxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"Tax treatment of the receiptsubjectstringSubject; empty = “Invoice <number>”max. 200 charactersintroTextstringmax. 5000 charactersclosingTextstringmax. 5000 charactersreferencestringCustomer's order number/referencemax. 100 characterslinesArray<DocumentLine>idstringstable line item ID (assigned by the server if empty)max. 40 characterstype"item" | "text" | "subtotal"Line item, plain text line or subtotalDefault: "item"articleIdstringReference to the article master datamax. 128 characterstitlestringrequiredmax. 300 charactersdescriptionstringmax. 5000 charactersquantitynumber-1000000–1000000 · Default: 1unitstringUnit, e.g. Stk, Std, pauschal (piece, hour, flat rate); UN/ECE Rec 20 for e-invoicing: modulemax. 20 charactersunitPriceCentsintegerAmount in cents-100000000000–100000000000 · Default: 0discountPercentnumber0–100taxRatenumberTax rate in per cent (19, 7, 0 …)0–100 · Default: 19totalCentsintegerAmount in cents-100000000000–100000000000servicePeriodobjectfromstring (date)requiredDate (YYYY-MM-DD)tostring (date)requiredDate (YYYY-MM-DD)
projectIdstringmax. 128 characterstimeEntryIdsArray<string>max. 128 characters
relatedInvoiceIdstring | nullCredit note: corrected invoicemax. 128 charactersadvanceInvoiceIdsArray<string>Final invoice: progress invoices to deductmax. 128 charactersofferIdstring | nullmax. 128 charactersprojectIdstring | nullmax. 128 charactersshowGiroCodebooleanPrint GiroCode (EPC QR) on the PDFeinvoiceFormat"none" | "zugferd" | "xrechnung"E-invoice format (generation: E-invoice module)taxFactsSaleTaxFacts | nullFacts for the tax assistant; the server derives the tax case from them (ST-16)kind"goods" | "service" | "construction" | "property_service" | "electronic_service"requiredType of supplysmallBusinessbooleanown small-business status; if omitted, taken from Company & invoicingcustomerCountrystringrequiredCountry of residence of the recipientmax. 2 characterscustomerIsBusinessbooleanrequiredRecipient is a business and receives the supply for its businesscustomerVatIdValidbooleanrequireda valid VAT ID of the recipient is availabledestinationCountrystring | nullSupply of goods: country of destinationmax. 2 characterspropertyCountrystring | nullService related to real estate: location of the propertymax. 2 charactersexemption"§ 4 Nr. 8 UStG" | "§ 4 Nr. 11 UStG" | "§ 4 Nr. 12 UStG" | "§ 4 Nr. 14 UStG" | "§ 4 Nr. 21 UStG" | "other" | nullVAT exemption without input VAT deduction
language"de" | "en" | nullDocument language (PDF, email, free texts of the e-invoice); empty/null = the contact's language. Fixed on finalisation.
Response 201 · Invoice
idstringrequiredmax. 128 charactersobject"invoice"requiredtype"invoice" | "credit_note" | "cancellation"requiredkind"standard" | "advance" | "final"requiredstatus"draft" | "open" | "partially_paid" | "paid" | "overdue" | "canceled"requirednumberstring | nullrequiredDocument number; assigned only on finalisingcontactIdstring | nullrequiredmax. 128 charactersrecipientDocumentRecipientrequirednamestringrequiredCompany or namemax. 160 charactersadditionstringAddress supplement, e.g. attn. Ms Mustermax. 160 charactersstreetstringrequiredmax. 160 characters · Default: ""zipCodestringrequiredmax. 10 characters · Default: ""citystringrequiredmax. 80 characters · Default: ""countrystringrequiredCountry code ISO 3166-1 alpha-2max. 2 characters · Default: "DE"emailstring (email)Invoice recipient (email)max. 254 charactersvatIdstringRecipient's VAT ID (required for reverse charge/intra-Community supply)leitwegIdstringLeitweg-ID (XRechnung to public authorities)max. 60 characterseinvoiceRecipientType"business" | "public_authority"E-invoice recipient profile (from the contact): public_authority requires a Leitweg-ID (ER-08)customerNumberstringCustomer number (assigned on finalisation)max. 40 characters
senderSenderSnapshot | nullrequiredSender snapshot (taken on finalising)companyNamestringrequiredownerNamestringlegalFormstringmanagingDirectorsstringstreetstringrequiredzipCodestringrequiredcitystringrequiredcountryCodestringrequiredphonestringemailstringwebsitestringtaxNumberstringvatIdstringsmallBusinessbooleanrequiredcommercialRegisterobjectcourtstringnumberstring
bankobjectaccountHolderstringibanstringbicstringbankNamestring
invoiceFooterstring
issueDatestring (date) | nullrequiredDate (YYYY-MM-DD)serviceDatestring (date) | nullrequiredDate (YYYY-MM-DD)servicePeriodServicePeriod | nullrequiredfromstring (date)requiredDate (YYYY-MM-DD)tostring (date)requiredDate (YYYY-MM-DD)
serviceDateSource"entered" | "period" | "confirmed_issue_date" | "recurring" | "not_applicable" | nullrequiredSource of the date of supply (ST-13): confirmed_issue_date = confirmed by the userissuanceInvoiceIssuance | nullrequiredEvidence of issue (from finalising, ST-14)finalizedAtstring (date-time)requiredServer time of finalisingserverDatestring (date)requiredCalendar day of finalising (Europe/Berlin)issueDatestring (date)requiredDate (YYYY-MM-DD)issueDateSource"finalize_day" | "entered"requiredfinalize_day = day of finalising, entered = entered in the draftdeviationDaysintegerrequiredIssue date minus finalising day in days (negative = earlier)-9007199254740991–9007199254740991reasonstring | nullrequiredReason for a differing issue datenumberstring | nullrequirednumberRangestringrequiredNumber range
dueDatestring (date) | nullrequiredDate (YYYY-MM-DD)paymentTermsDaysintegerrequired-9007199254740991–9007199254740991priceMode"net" | "gross"requiredtaxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"requiredTax treatment of the receipttaxNoticestring | nullrequiredMandatory notice (§ 19, § 13b, intra-Community supply …)taxCaseInvoiceTaxCase | nullrequiredTax case (tax assistant); saved at the latest when finalisingfactsobjectrequiredkind"goods" | "service" | "construction" | "property_service" | "electronic_service"requiredType of supplysmallBusinessbooleanrequiredcustomerCountrystringrequiredCountry of residence of the recipientmax. 2 characterscustomerIsBusinessbooleanrequiredRecipient is a business and receives the supply for its businesscustomerVatIdValidbooleanrequireda valid VAT ID of the recipient is availabledestinationCountrystring | nullSupply of goods: country of destinationmax. 2 characterspropertyCountrystring | nullService related to real estate: location of the propertymax. 2 charactersexemption"§ 4 Nr. 8 UStG" | "§ 4 Nr. 11 UStG" | "§ 4 Nr. 12 UStG" | "§ 4 Nr. 14 UStG" | "§ 4 Nr. 21 UStG" | "other" | nullVAT exemption without input VAT deduction
treatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"requiredTax treatment of the receiptplaceOfSupplystringrequiredPlace of supply (ISO country)legalBasisstringrequirednoticeVariantenum | nullrequiredCase variant of the mandatory notice (ST-03)Values: small_business, reverse_charge, reverse_charge_eu, intra_eu_supply, export, non_taxable, tax_exemptustvaKzstring | nullrequiredAdvance VAT return form field of the tax base (not for standard taxation)reportingArray<"ustva" | "zm" | "none">requiredconfidence"certain" | "likely" | "review"requiredassumedbooleanrequiredFacts assumed from the invoice data (not entered)reasonsArray<string>requiredwarningsArray<string>required
currency"EUR"requiredsubjectstringrequiredintroTextstringrequiredclosingTextstringrequiredreferencestringrequiredlinesArray<DocumentLine>requiredidstringstable line item ID (assigned by the server if empty)max. 40 characterstype"item" | "text" | "subtotal"Line item, plain text line or subtotalDefault: "item"articleIdstringReference to the article master datamax. 128 characterstitlestringrequiredmax. 300 charactersdescriptionstringmax. 5000 charactersquantitynumber-1000000–1000000 · Default: 1unitstringUnit, e.g. Stk, Std, pauschal (piece, hour, flat rate); UN/ECE Rec 20 for e-invoicing: modulemax. 20 charactersunitPriceCentsintegerAmount in cents-100000000000–100000000000 · Default: 0discountPercentnumber0–100taxRatenumberTax rate in per cent (19, 7, 0 …)0–100 · Default: 19totalCentsintegerAmount in cents-100000000000–100000000000servicePeriodobjectfromstring (date)requiredDate (YYYY-MM-DD)tostring (date)requiredDate (YYYY-MM-DD)
projectIdstringmax. 128 characterstimeEntryIdsArray<string>max. 128 characters
totalsDocumentTotalsrequirednetCentsintegerrequiredAmount in cents-100000000000–100000000000taxCentsintegerrequiredAmount in cents-100000000000–100000000000grossCentsintegerrequiredAmount in cents-100000000000–100000000000groupsArray<object>requiredtaxRatenumberrequiredcategorystringrequirednetCentsintegerrequiredAmount in cents-100000000000–100000000000taxCentsintegerrequiredAmount in cents-100000000000–100000000000grossCentsintegerrequiredAmount in cents-100000000000–100000000000
deductionsArray<InvoiceDeduction>requiredFinal invoice: advance payments actually received and deducted (ST-09)invoiceIdstringrequiredmax. 128 charactersnumberstringrequiredissueDatestring (date)requiredDate (YYYY-MM-DD)netCentsintegerrequiredAmount in cents-100000000000–100000000000taxCentsintegerrequiredAmount in cents-100000000000–100000000000grossCentsintegerrequiredAmount in cents-100000000000–100000000000groupsArray<object>requiredtaxRatenumberrequirednetCentsintegerrequiredAmount in cents-100000000000–100000000000taxCentsintegerrequiredAmount in cents-100000000000–100000000000
invoiceGrossCentsintegerInvoice amount of the progress invoice (ST-09)-100000000000–100000000000unpaidCentsintegerUnreceived remainder of the progress invoice – not deducted (ST-09)-100000000000–100000000000
amountDueCentsintegerrequiredAmount payable (gross less progress invoices)-100000000000–100000000000paidCentsintegerrequiredAmount in cents-100000000000–100000000000creditedCentsintegerrequiredreduced by invoice corrections (progress invoice: incl. the remainder settled with the final invoice)-100000000000–100000000000deductedCentsinteger | nullrequiredProgress invoice: amount received and deducted in the final invoice (ST-09)-100000000000–100000000000supersededCentsinteger | nullrequiredProgress invoice: unpaid remainder settled with the final invoice (ST-09)-100000000000–100000000000openCentsintegerrequiredAmount in cents-100000000000–100000000000relatedInvoiceIdstring | nullrequiredmax. 128 charactersadvanceInvoiceIdsArray<string>requiredmax. 128 charactersofferIdstring | nullrequiredmax. 128 charactersprojectIdstring | nullrequiredmax. 128 charactersrecurringInvoiceIdstring | nullrequiredmax. 128 characterscanceledByInvoiceIdstring | nullrequiredCancellation invoice for this invoicemax. 128 charactersdebtIdstring | nullrequiredDebt in dunning (after handover)max. 128 charactersshowGiroCodebooleanrequiredeinvoiceFormat"none" | "zugferd" | "xrechnung"requiredlanguage"de" | "en"requiredDocument language (fixed on finalisation)dispatchobjectrequiredcountintegerrequired-9007199254740991–9007199254740991lastChannel"email" | "post" | nullrequiredlastSentAtstring (date-time) | nullrequiredTimestamp (ISO 8601)
pdfobject | nullrequiredarchived PDF (after finalisation)sha256stringrequiredcreatedAtstring (date-time)requiredTimestamp (ISO 8601)
lockedbooleanrequiredlockedAtstring (date-time) | nullrequiredTimestamp (ISO 8601)paidAtstring (date-time) | nullrequiredTimestamp (ISO 8601)handedOverAtstring (date-time) | nullrequiredTimestamp (ISO 8601)createdAtstring (date-time)requiredTimestamp (ISO 8601)updatedAtstring (date-time)requiredTimestamp (ISO 8601)
curl -X POST 'https://www.debt-flow.io/api/v1/invoices' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"type": "invoice",
"kind": "standard",
"contactId": "string",
"recipient": {
"name": "string",
"addition": "string",
"street": "",
"zipCode": "",
"city": "",
"country": "DE",
"email": "[email protected]",
"vatId": "string",
"leitwegId": "string",
"einvoiceRecipientType": "business",
"customerNumber": "string"
},
"issueDate": "2026-11-01",
"serviceDate": "2026-11-01",
"servicePeriod": {
"from": "2026-11-01",
"to": "2026-11-01"
},
"dueDate": "2026-11-01",
"paymentTermsDays": 0,
"priceMode": "net",
"taxTreatment": "regular",
"subject": "string",
"introText": "string",
"closingText": "string",
"reference": "string",
"lines": [],
"relatedInvoiceId": "string",
"advanceInvoiceIds": [
"string"
],
"offerId": "string",
"projectId": "string",
"showGiroCode": false,
"einvoiceFormat": "none",
"taxFacts": {
"kind": "goods",
"smallBusiness": false,
"customerCountry": "string",
"customerIsBusiness": false,
"customerVatIdValid": false,
"destinationCountry": "string",
"propertyCountry": "string",
"exemption": "§ 4 Nr. 8 UStG"
},
"language": "de"
}'{
"id": "string",
"object": "invoice",
"type": "invoice",
"kind": "standard",
"status": "draft",
"number": "string",
"contactId": "string",
"recipient": {
"name": "string",
"addition": "string",
"street": "",
"zipCode": "",
"city": "",
"country": "DE",
"email": "[email protected]",
"vatId": "string",
"leitwegId": "string",
"einvoiceRecipientType": "business",
"customerNumber": "string"
},
"sender": {
"companyName": "string",
"ownerName": "string",
"legalForm": "string",
"managingDirectors": "string",
"street": "string",
"zipCode": "string",
"city": "string",
"countryCode": "string",
"phone": "string",
"email": "string",
"website": "string",
"taxNumber": "string",
"vatId": "string",
"smallBusiness": false,
"commercialRegister": {
"court": "string",
"number": "string"
},
"bank": {
"accountHolder": "string",
"iban": "string",
"bic": "string",
"bankName": "string"
},
"invoiceFooter": "string"
},
"issueDate": "2026-11-01",
"serviceDate": "2026-11-01",
"servicePeriod": {
"from": "2026-11-01",
"to": "2026-11-01"
},
"serviceDateSource": "entered",
"issuance": {
"finalizedAt": "2026-11-01T09:30:00.000Z",
"serverDate": "2026-11-01",
"issueDate": "2026-11-01",
"issueDateSource": "finalize_day",
"deviationDays": 0,
"reason": "string",
"number": "string",
"numberRange": "string"
},
"dueDate": "2026-11-01",
"paymentTermsDays": 0,
"priceMode": "net",
"taxTreatment": "regular",
"taxNotice": "string",
"taxCase": {
"facts": {
"kind": "goods",
"smallBusiness": false,
"customerCountry": "string",
"customerIsBusiness": false,
"customerVatIdValid": false,
"destinationCountry": null,
"propertyCountry": null,
"exemption": null
},
"treatment": "regular",
"placeOfSupply": "string",
"legalBasis": "string",
"noticeVariant": "small_business",
"ustvaKz": "string",
"reporting": [
"ustva"
],
"confidence": "certain",
"assumed": false,
"reasons": [
"string"
],
"warnings": [
"string"
]
},
"currency": "EUR",
"subject": "string",
"introText": "string",
"closingText": "string",
"reference": "string",
"lines": [
{
"id": "string",
"type": "item",
"articleId": "string",
"title": "string",
"description": "string",
"quantity": 1,
"unit": "string",
"unitPriceCents": 0,
"discountPercent": 0,
"taxRate": 19,
"totalCents": 0,
"servicePeriod": {
"from": "2026-11-01",
"to": "2026-11-01"
},
"projectId": "string",
"timeEntryIds": [
"string"
]
}
],
"totals": {
"netCents": 0,
"taxCents": 0,
"grossCents": 0,
"groups": [
{
"taxRate": 0,
"category": "string",
"netCents": 0,
"taxCents": 0,
"grossCents": 0
}
]
},
"deductions": [
{
"invoiceId": "string",
"number": "string",
"issueDate": "2026-11-01",
"netCents": 0,
"taxCents": 0,
"grossCents": 0,
"groups": [
{
"taxRate": null,
"netCents": null,
"taxCents": null
}
],
"invoiceGrossCents": 0,
"unpaidCents": 0
}
],
"amountDueCents": 0,
"paidCents": 0,
"creditedCents": 0,
"deductedCents": 0,
"supersededCents": 0,
"openCents": 0,
"relatedInvoiceId": "string",
"advanceInvoiceIds": [
"string"
],
"offerId": "string",
"projectId": "string",
"recurringInvoiceId": "string",
"canceledByInvoiceId": "string",
"debtId": "string",
"showGiroCode": false,
"einvoiceFormat": "none",
"language": "de",
"dispatch": {
"count": 0,
"lastChannel": "email",
"lastSentAt": "2026-11-01T09:30:00.000Z"
},
"pdf": {
"sha256": "string",
"createdAt": "2026-11-01T09:30:00.000Z"
},
"locked": false,
"lockedAt": "2026-11-01T09:30:00.000Z",
"paidAt": "2026-11-01T09:30:00.000Z",
"handedOverAt": "2026-11-01T09:30:00.000Z",
"createdAt": "2026-11-01T09:30:00.000Z",
"updatedAt": "2026-11-01T09:30:00.000Z"
}/api/v1/invoices/{id}Permission: invoices:read
Path parameters
idstringrequiredResource IDmax. 128 characters
Response 200 · Invoice
idstringrequiredmax. 128 charactersobject"invoice"requiredtype"invoice" | "credit_note" | "cancellation"requiredkind"standard" | "advance" | "final"requiredstatus"draft" | "open" | "partially_paid" | "paid" | "overdue" | "canceled"requirednumberstring | nullrequiredDocument number; assigned only on finalisingcontactIdstring | nullrequiredmax. 128 charactersrecipientDocumentRecipientrequirednamestringrequiredCompany or namemax. 160 charactersadditionstringAddress supplement, e.g. attn. Ms Mustermax. 160 charactersstreetstringrequiredmax. 160 characters · Default: ""zipCodestringrequiredmax. 10 characters · Default: ""citystringrequiredmax. 80 characters · Default: ""countrystringrequiredCountry code ISO 3166-1 alpha-2max. 2 characters · Default: "DE"emailstring (email)Invoice recipient (email)max. 254 charactersvatIdstringRecipient's VAT ID (required for reverse charge/intra-Community supply)leitwegIdstringLeitweg-ID (XRechnung to public authorities)max. 60 characterseinvoiceRecipientType"business" | "public_authority"E-invoice recipient profile (from the contact): public_authority requires a Leitweg-ID (ER-08)customerNumberstringCustomer number (assigned on finalisation)max. 40 characters
senderSenderSnapshot | nullrequiredSender snapshot (taken on finalising)companyNamestringrequiredownerNamestringlegalFormstringmanagingDirectorsstringstreetstringrequiredzipCodestringrequiredcitystringrequiredcountryCodestringrequiredphonestringemailstringwebsitestringtaxNumberstringvatIdstringsmallBusinessbooleanrequiredcommercialRegisterobjectcourtstringnumberstring
bankobjectaccountHolderstringibanstringbicstringbankNamestring
invoiceFooterstring
issueDatestring (date) | nullrequiredDate (YYYY-MM-DD)serviceDatestring (date) | nullrequiredDate (YYYY-MM-DD)servicePeriodServicePeriod | nullrequiredfromstring (date)requiredDate (YYYY-MM-DD)tostring (date)requiredDate (YYYY-MM-DD)
serviceDateSource"entered" | "period" | "confirmed_issue_date" | "recurring" | "not_applicable" | nullrequiredSource of the date of supply (ST-13): confirmed_issue_date = confirmed by the userissuanceInvoiceIssuance | nullrequiredEvidence of issue (from finalising, ST-14)finalizedAtstring (date-time)requiredServer time of finalisingserverDatestring (date)requiredCalendar day of finalising (Europe/Berlin)issueDatestring (date)requiredDate (YYYY-MM-DD)issueDateSource"finalize_day" | "entered"requiredfinalize_day = day of finalising, entered = entered in the draftdeviationDaysintegerrequiredIssue date minus finalising day in days (negative = earlier)-9007199254740991–9007199254740991reasonstring | nullrequiredReason for a differing issue datenumberstring | nullrequirednumberRangestringrequiredNumber range
dueDatestring (date) | nullrequiredDate (YYYY-MM-DD)paymentTermsDaysintegerrequired-9007199254740991–9007199254740991priceMode"net" | "gross"requiredtaxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"requiredTax treatment of the receipttaxNoticestring | nullrequiredMandatory notice (§ 19, § 13b, intra-Community supply …)taxCaseInvoiceTaxCase | nullrequiredTax case (tax assistant); saved at the latest when finalisingfactsobjectrequiredkind"goods" | "service" | "construction" | "property_service" | "electronic_service"requiredType of supplysmallBusinessbooleanrequiredcustomerCountrystringrequiredCountry of residence of the recipientmax. 2 characterscustomerIsBusinessbooleanrequiredRecipient is a business and receives the supply for its businesscustomerVatIdValidbooleanrequireda valid VAT ID of the recipient is availabledestinationCountrystring | nullSupply of goods: country of destinationmax. 2 characterspropertyCountrystring | nullService related to real estate: location of the propertymax. 2 charactersexemption"§ 4 Nr. 8 UStG" | "§ 4 Nr. 11 UStG" | "§ 4 Nr. 12 UStG" | "§ 4 Nr. 14 UStG" | "§ 4 Nr. 21 UStG" | "other" | nullVAT exemption without input VAT deduction
treatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"requiredTax treatment of the receiptplaceOfSupplystringrequiredPlace of supply (ISO country)legalBasisstringrequirednoticeVariantenum | nullrequiredCase variant of the mandatory notice (ST-03)Values: small_business, reverse_charge, reverse_charge_eu, intra_eu_supply, export, non_taxable, tax_exemptustvaKzstring | nullrequiredAdvance VAT return form field of the tax base (not for standard taxation)reportingArray<"ustva" | "zm" | "none">requiredconfidence"certain" | "likely" | "review"requiredassumedbooleanrequiredFacts assumed from the invoice data (not entered)reasonsArray<string>requiredwarningsArray<string>required
currency"EUR"requiredsubjectstringrequiredintroTextstringrequiredclosingTextstringrequiredreferencestringrequiredlinesArray<DocumentLine>requiredidstringstable line item ID (assigned by the server if empty)max. 40 characterstype"item" | "text" | "subtotal"Line item, plain text line or subtotalDefault: "item"articleIdstringReference to the article master datamax. 128 characterstitlestringrequiredmax. 300 charactersdescriptionstringmax. 5000 charactersquantitynumber-1000000–1000000 · Default: 1unitstringUnit, e.g. Stk, Std, pauschal (piece, hour, flat rate); UN/ECE Rec 20 for e-invoicing: modulemax. 20 charactersunitPriceCentsintegerAmount in cents-100000000000–100000000000 · Default: 0discountPercentnumber0–100taxRatenumberTax rate in per cent (19, 7, 0 …)0–100 · Default: 19totalCentsintegerAmount in cents-100000000000–100000000000servicePeriodobjectfromstring (date)requiredDate (YYYY-MM-DD)tostring (date)requiredDate (YYYY-MM-DD)
projectIdstringmax. 128 characterstimeEntryIdsArray<string>max. 128 characters
totalsDocumentTotalsrequirednetCentsintegerrequiredAmount in cents-100000000000–100000000000taxCentsintegerrequiredAmount in cents-100000000000–100000000000grossCentsintegerrequiredAmount in cents-100000000000–100000000000groupsArray<object>requiredtaxRatenumberrequiredcategorystringrequirednetCentsintegerrequiredAmount in cents-100000000000–100000000000taxCentsintegerrequiredAmount in cents-100000000000–100000000000grossCentsintegerrequiredAmount in cents-100000000000–100000000000
deductionsArray<InvoiceDeduction>requiredFinal invoice: advance payments actually received and deducted (ST-09)invoiceIdstringrequiredmax. 128 charactersnumberstringrequiredissueDatestring (date)requiredDate (YYYY-MM-DD)netCentsintegerrequiredAmount in cents-100000000000–100000000000taxCentsintegerrequiredAmount in cents-100000000000–100000000000grossCentsintegerrequiredAmount in cents-100000000000–100000000000groupsArray<object>requiredtaxRatenumberrequirednetCentsintegerrequiredAmount in cents-100000000000–100000000000taxCentsintegerrequiredAmount in cents-100000000000–100000000000
invoiceGrossCentsintegerInvoice amount of the progress invoice (ST-09)-100000000000–100000000000unpaidCentsintegerUnreceived remainder of the progress invoice – not deducted (ST-09)-100000000000–100000000000
amountDueCentsintegerrequiredAmount payable (gross less progress invoices)-100000000000–100000000000paidCentsintegerrequiredAmount in cents-100000000000–100000000000creditedCentsintegerrequiredreduced by invoice corrections (progress invoice: incl. the remainder settled with the final invoice)-100000000000–100000000000deductedCentsinteger | nullrequiredProgress invoice: amount received and deducted in the final invoice (ST-09)-100000000000–100000000000supersededCentsinteger | nullrequiredProgress invoice: unpaid remainder settled with the final invoice (ST-09)-100000000000–100000000000openCentsintegerrequiredAmount in cents-100000000000–100000000000relatedInvoiceIdstring | nullrequiredmax. 128 charactersadvanceInvoiceIdsArray<string>requiredmax. 128 charactersofferIdstring | nullrequiredmax. 128 charactersprojectIdstring | nullrequiredmax. 128 charactersrecurringInvoiceIdstring | nullrequiredmax. 128 characterscanceledByInvoiceIdstring | nullrequiredCancellation invoice for this invoicemax. 128 charactersdebtIdstring | nullrequiredDebt in dunning (after handover)max. 128 charactersshowGiroCodebooleanrequiredeinvoiceFormat"none" | "zugferd" | "xrechnung"requiredlanguage"de" | "en"requiredDocument language (fixed on finalisation)dispatchobjectrequiredcountintegerrequired-9007199254740991–9007199254740991lastChannel"email" | "post" | nullrequiredlastSentAtstring (date-time) | nullrequiredTimestamp (ISO 8601)
pdfobject | nullrequiredarchived PDF (after finalisation)sha256stringrequiredcreatedAtstring (date-time)requiredTimestamp (ISO 8601)
lockedbooleanrequiredlockedAtstring (date-time) | nullrequiredTimestamp (ISO 8601)paidAtstring (date-time) | nullrequiredTimestamp (ISO 8601)handedOverAtstring (date-time) | nullrequiredTimestamp (ISO 8601)createdAtstring (date-time)requiredTimestamp (ISO 8601)updatedAtstring (date-time)requiredTimestamp (ISO 8601)
curl 'https://www.debt-flow.io/api/v1/invoices/ID' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY"{
"id": "string",
"object": "invoice",
"type": "invoice",
"kind": "standard",
"status": "draft",
"number": "string",
"contactId": "string",
"recipient": {
"name": "string",
"addition": "string",
"street": "",
"zipCode": "",
"city": "",
"country": "DE",
"email": "[email protected]",
"vatId": "string",
"leitwegId": "string",
"einvoiceRecipientType": "business",
"customerNumber": "string"
},
"sender": {
"companyName": "string",
"ownerName": "string",
"legalForm": "string",
"managingDirectors": "string",
"street": "string",
"zipCode": "string",
"city": "string",
"countryCode": "string",
"phone": "string",
"email": "string",
"website": "string",
"taxNumber": "string",
"vatId": "string",
"smallBusiness": false,
"commercialRegister": {
"court": "string",
"number": "string"
},
"bank": {
"accountHolder": "string",
"iban": "string",
"bic": "string",
"bankName": "string"
},
"invoiceFooter": "string"
},
"issueDate": "2026-11-01",
"serviceDate": "2026-11-01",
"servicePeriod": {
"from": "2026-11-01",
"to": "2026-11-01"
},
"serviceDateSource": "entered",
"issuance": {
"finalizedAt": "2026-11-01T09:30:00.000Z",
"serverDate": "2026-11-01",
"issueDate": "2026-11-01",
"issueDateSource": "finalize_day",
"deviationDays": 0,
"reason": "string",
"number": "string",
"numberRange": "string"
},
"dueDate": "2026-11-01",
"paymentTermsDays": 0,
"priceMode": "net",
"taxTreatment": "regular",
"taxNotice": "string",
"taxCase": {
"facts": {
"kind": "goods",
"smallBusiness": false,
"customerCountry": "string",
"customerIsBusiness": false,
"customerVatIdValid": false,
"destinationCountry": null,
"propertyCountry": null,
"exemption": null
},
"treatment": "regular",
"placeOfSupply": "string",
"legalBasis": "string",
"noticeVariant": "small_business",
"ustvaKz": "string",
"reporting": [
"ustva"
],
"confidence": "certain",
"assumed": false,
"reasons": [
"string"
],
"warnings": [
"string"
]
},
"currency": "EUR",
"subject": "string",
"introText": "string",
"closingText": "string",
"reference": "string",
"lines": [
{
"id": "string",
"type": "item",
"articleId": "string",
"title": "string",
"description": "string",
"quantity": 1,
"unit": "string",
"unitPriceCents": 0,
"discountPercent": 0,
"taxRate": 19,
"totalCents": 0,
"servicePeriod": {
"from": "2026-11-01",
"to": "2026-11-01"
},
"projectId": "string",
"timeEntryIds": [
"string"
]
}
],
"totals": {
"netCents": 0,
"taxCents": 0,
"grossCents": 0,
"groups": [
{
"taxRate": 0,
"category": "string",
"netCents": 0,
"taxCents": 0,
"grossCents": 0
}
]
},
"deductions": [
{
"invoiceId": "string",
"number": "string",
"issueDate": "2026-11-01",
"netCents": 0,
"taxCents": 0,
"grossCents": 0,
"groups": [
{
"taxRate": null,
"netCents": null,
"taxCents": null
}
],
"invoiceGrossCents": 0,
"unpaidCents": 0
}
],
"amountDueCents": 0,
"paidCents": 0,
"creditedCents": 0,
"deductedCents": 0,
"supersededCents": 0,
"openCents": 0,
"relatedInvoiceId": "string",
"advanceInvoiceIds": [
"string"
],
"offerId": "string",
"projectId": "string",
"recurringInvoiceId": "string",
"canceledByInvoiceId": "string",
"debtId": "string",
"showGiroCode": false,
"einvoiceFormat": "none",
"language": "de",
"dispatch": {
"count": 0,
"lastChannel": "email",
"lastSentAt": "2026-11-01T09:30:00.000Z"
},
"pdf": {
"sha256": "string",
"createdAt": "2026-11-01T09:30:00.000Z"
},
"locked": false,
"lockedAt": "2026-11-01T09:30:00.000Z",
"paidAt": "2026-11-01T09:30:00.000Z",
"handedOverAt": "2026-11-01T09:30:00.000Z",
"createdAt": "2026-11-01T09:30:00.000Z",
"updatedAt": "2026-11-01T09:30:00.000Z"
}/api/v1/invoices/{id}Only drafts can be changed. Finalised documents return 409 document_locked – make corrections with a credit note or cancellation. If lines is passed, it replaces all line items.
Permission: invoices:write
Path parameters
idstringrequiredResource IDmax. 128 characters
Body (JSON) · InvoiceUpdate
kind"standard" | "advance" | "final"standard = invoice, advance = progress invoice, final = final invoicecontactIdstring | nullContact (customer) from /contactsmax. 128 charactersrecipientDocumentRecipientRecipient; if omitted, taken from the contactnamestringrequiredCompany or namemax. 160 charactersadditionstringAddress supplement, e.g. attn. Ms Mustermax. 160 charactersstreetstringrequiredmax. 160 characters · Default: ""zipCodestringrequiredmax. 10 characters · Default: ""citystringrequiredmax. 80 characters · Default: ""countrystringrequiredCountry code ISO 3166-1 alpha-2max. 2 characters · Default: "DE"emailstring (email)Invoice recipient (email)max. 254 charactersvatIdstringRecipient's VAT ID (required for reverse charge/intra-Community supply)leitwegIdstringLeitweg-ID (XRechnung to public authorities)max. 60 characterseinvoiceRecipientType"business" | "public_authority"E-invoice recipient profile (from the contact): public_authority requires a Leitweg-ID (ER-08)customerNumberstringCustomer number (assigned on finalisation)max. 40 characters
issueDatestring (date) | nullInvoice date; empty = day of finalisationserviceDatestring (date) | nullDelivery/service dateservicePeriodServicePeriod | nullService period (instead of service date)fromstring (date)requiredDate (YYYY-MM-DD)tostring (date)requiredDate (YYYY-MM-DD)
dueDatestring (date) | nullDue date; empty = invoice date + payment termpaymentTermsDaysintegerPayment term in days0–365priceMode"net" | "gross"Unit prices net (B2B) or gross (B2C)taxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"Tax treatment of the receiptsubjectstringSubject; empty = “Invoice <number>”max. 200 charactersintroTextstringmax. 5000 charactersclosingTextstringmax. 5000 charactersreferencestringCustomer's order number/referencemax. 100 characterslinesArray<DocumentLine>idstringstable line item ID (assigned by the server if empty)max. 40 characterstype"item" | "text" | "subtotal"Line item, plain text line or subtotalDefault: "item"articleIdstringReference to the article master datamax. 128 characterstitlestringrequiredmax. 300 charactersdescriptionstringmax. 5000 charactersquantitynumber-1000000–1000000 · Default: 1unitstringUnit, e.g. Stk, Std, pauschal (piece, hour, flat rate); UN/ECE Rec 20 for e-invoicing: modulemax. 20 charactersunitPriceCentsintegerAmount in cents-100000000000–100000000000 · Default: 0discountPercentnumber0–100taxRatenumberTax rate in per cent (19, 7, 0 …)0–100 · Default: 19totalCentsintegerAmount in cents-100000000000–100000000000servicePeriodobjectfromstring (date)requiredDate (YYYY-MM-DD)tostring (date)requiredDate (YYYY-MM-DD)
projectIdstringmax. 128 characterstimeEntryIdsArray<string>max. 128 characters
relatedInvoiceIdstring | nullCredit note: corrected invoicemax. 128 charactersadvanceInvoiceIdsArray<string>Final invoice: progress invoices to deductmax. 128 charactersofferIdstring | nullmax. 128 charactersprojectIdstring | nullmax. 128 charactersshowGiroCodebooleanPrint GiroCode (EPC QR) on the PDFeinvoiceFormat"none" | "zugferd" | "xrechnung"E-invoice format (generation: E-invoice module)taxFactsSaleTaxFacts | nullFacts for the tax assistant; the server derives the tax case from them (ST-16)kind"goods" | "service" | "construction" | "property_service" | "electronic_service"requiredType of supplysmallBusinessbooleanown small-business status; if omitted, taken from Company & invoicingcustomerCountrystringrequiredCountry of residence of the recipientmax. 2 characterscustomerIsBusinessbooleanrequiredRecipient is a business and receives the supply for its businesscustomerVatIdValidbooleanrequireda valid VAT ID of the recipient is availabledestinationCountrystring | nullSupply of goods: country of destinationmax. 2 characterspropertyCountrystring | nullService related to real estate: location of the propertymax. 2 charactersexemption"§ 4 Nr. 8 UStG" | "§ 4 Nr. 11 UStG" | "§ 4 Nr. 12 UStG" | "§ 4 Nr. 14 UStG" | "§ 4 Nr. 21 UStG" | "other" | nullVAT exemption without input VAT deduction
language"de" | "en" | nullDocument language (PDF, email, free texts of the e-invoice); empty/null = the contact's language. Fixed on finalisation.
Response 200 · Invoice
idstringrequiredmax. 128 charactersobject"invoice"requiredtype"invoice" | "credit_note" | "cancellation"requiredkind"standard" | "advance" | "final"requiredstatus"draft" | "open" | "partially_paid" | "paid" | "overdue" | "canceled"requirednumberstring | nullrequiredDocument number; assigned only on finalisingcontactIdstring | nullrequiredmax. 128 charactersrecipientDocumentRecipientrequirednamestringrequiredCompany or namemax. 160 charactersadditionstringAddress supplement, e.g. attn. Ms Mustermax. 160 charactersstreetstringrequiredmax. 160 characters · Default: ""zipCodestringrequiredmax. 10 characters · Default: ""citystringrequiredmax. 80 characters · Default: ""countrystringrequiredCountry code ISO 3166-1 alpha-2max. 2 characters · Default: "DE"emailstring (email)Invoice recipient (email)max. 254 charactersvatIdstringRecipient's VAT ID (required for reverse charge/intra-Community supply)leitwegIdstringLeitweg-ID (XRechnung to public authorities)max. 60 characterseinvoiceRecipientType"business" | "public_authority"E-invoice recipient profile (from the contact): public_authority requires a Leitweg-ID (ER-08)customerNumberstringCustomer number (assigned on finalisation)max. 40 characters
senderSenderSnapshot | nullrequiredSender snapshot (taken on finalising)companyNamestringrequiredownerNamestringlegalFormstringmanagingDirectorsstringstreetstringrequiredzipCodestringrequiredcitystringrequiredcountryCodestringrequiredphonestringemailstringwebsitestringtaxNumberstringvatIdstringsmallBusinessbooleanrequiredcommercialRegisterobjectcourtstringnumberstring
bankobjectaccountHolderstringibanstringbicstringbankNamestring
invoiceFooterstring
issueDatestring (date) | nullrequiredDate (YYYY-MM-DD)serviceDatestring (date) | nullrequiredDate (YYYY-MM-DD)servicePeriodServicePeriod | nullrequiredfromstring (date)requiredDate (YYYY-MM-DD)tostring (date)requiredDate (YYYY-MM-DD)
serviceDateSource"entered" | "period" | "confirmed_issue_date" | "recurring" | "not_applicable" | nullrequiredSource of the date of supply (ST-13): confirmed_issue_date = confirmed by the userissuanceInvoiceIssuance | nullrequiredEvidence of issue (from finalising, ST-14)finalizedAtstring (date-time)requiredServer time of finalisingserverDatestring (date)requiredCalendar day of finalising (Europe/Berlin)issueDatestring (date)requiredDate (YYYY-MM-DD)issueDateSource"finalize_day" | "entered"requiredfinalize_day = day of finalising, entered = entered in the draftdeviationDaysintegerrequiredIssue date minus finalising day in days (negative = earlier)-9007199254740991–9007199254740991reasonstring | nullrequiredReason for a differing issue datenumberstring | nullrequirednumberRangestringrequiredNumber range
dueDatestring (date) | nullrequiredDate (YYYY-MM-DD)paymentTermsDaysintegerrequired-9007199254740991–9007199254740991priceMode"net" | "gross"requiredtaxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"requiredTax treatment of the receipttaxNoticestring | nullrequiredMandatory notice (§ 19, § 13b, intra-Community supply …)taxCaseInvoiceTaxCase | nullrequiredTax case (tax assistant); saved at the latest when finalisingfactsobjectrequiredkind"goods" | "service" | "construction" | "property_service" | "electronic_service"requiredType of supplysmallBusinessbooleanrequiredcustomerCountrystringrequiredCountry of residence of the recipientmax. 2 characterscustomerIsBusinessbooleanrequiredRecipient is a business and receives the supply for its businesscustomerVatIdValidbooleanrequireda valid VAT ID of the recipient is availabledestinationCountrystring | nullSupply of goods: country of destinationmax. 2 characterspropertyCountrystring | nullService related to real estate: location of the propertymax. 2 charactersexemption"§ 4 Nr. 8 UStG" | "§ 4 Nr. 11 UStG" | "§ 4 Nr. 12 UStG" | "§ 4 Nr. 14 UStG" | "§ 4 Nr. 21 UStG" | "other" | nullVAT exemption without input VAT deduction
treatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"requiredTax treatment of the receiptplaceOfSupplystringrequiredPlace of supply (ISO country)legalBasisstringrequirednoticeVariantenum | nullrequiredCase variant of the mandatory notice (ST-03)Values: small_business, reverse_charge, reverse_charge_eu, intra_eu_supply, export, non_taxable, tax_exemptustvaKzstring | nullrequiredAdvance VAT return form field of the tax base (not for standard taxation)reportingArray<"ustva" | "zm" | "none">requiredconfidence"certain" | "likely" | "review"requiredassumedbooleanrequiredFacts assumed from the invoice data (not entered)reasonsArray<string>requiredwarningsArray<string>required
currency"EUR"requiredsubjectstringrequiredintroTextstringrequiredclosingTextstringrequiredreferencestringrequiredlinesArray<DocumentLine>requiredidstringstable line item ID (assigned by the server if empty)max. 40 characterstype"item" | "text" | "subtotal"Line item, plain text line or subtotalDefault: "item"articleIdstringReference to the article master datamax. 128 characterstitlestringrequiredmax. 300 charactersdescriptionstringmax. 5000 charactersquantitynumber-1000000–1000000 · Default: 1unitstringUnit, e.g. Stk, Std, pauschal (piece, hour, flat rate); UN/ECE Rec 20 for e-invoicing: modulemax. 20 charactersunitPriceCentsintegerAmount in cents-100000000000–100000000000 · Default: 0discountPercentnumber0–100taxRatenumberTax rate in per cent (19, 7, 0 …)0–100 · Default: 19totalCentsintegerAmount in cents-100000000000–100000000000servicePeriodobjectfromstring (date)requiredDate (YYYY-MM-DD)tostring (date)requiredDate (YYYY-MM-DD)
projectIdstringmax. 128 characterstimeEntryIdsArray<string>max. 128 characters
totalsDocumentTotalsrequirednetCentsintegerrequiredAmount in cents-100000000000–100000000000taxCentsintegerrequiredAmount in cents-100000000000–100000000000grossCentsintegerrequiredAmount in cents-100000000000–100000000000groupsArray<object>requiredtaxRatenumberrequiredcategorystringrequirednetCentsintegerrequiredAmount in cents-100000000000–100000000000taxCentsintegerrequiredAmount in cents-100000000000–100000000000grossCentsintegerrequiredAmount in cents-100000000000–100000000000
deductionsArray<InvoiceDeduction>requiredFinal invoice: advance payments actually received and deducted (ST-09)invoiceIdstringrequiredmax. 128 charactersnumberstringrequiredissueDatestring (date)requiredDate (YYYY-MM-DD)netCentsintegerrequiredAmount in cents-100000000000–100000000000taxCentsintegerrequiredAmount in cents-100000000000–100000000000grossCentsintegerrequiredAmount in cents-100000000000–100000000000groupsArray<object>requiredtaxRatenumberrequirednetCentsintegerrequiredAmount in cents-100000000000–100000000000taxCentsintegerrequiredAmount in cents-100000000000–100000000000
invoiceGrossCentsintegerInvoice amount of the progress invoice (ST-09)-100000000000–100000000000unpaidCentsintegerUnreceived remainder of the progress invoice – not deducted (ST-09)-100000000000–100000000000
amountDueCentsintegerrequiredAmount payable (gross less progress invoices)-100000000000–100000000000paidCentsintegerrequiredAmount in cents-100000000000–100000000000creditedCentsintegerrequiredreduced by invoice corrections (progress invoice: incl. the remainder settled with the final invoice)-100000000000–100000000000deductedCentsinteger | nullrequiredProgress invoice: amount received and deducted in the final invoice (ST-09)-100000000000–100000000000supersededCentsinteger | nullrequiredProgress invoice: unpaid remainder settled with the final invoice (ST-09)-100000000000–100000000000openCentsintegerrequiredAmount in cents-100000000000–100000000000relatedInvoiceIdstring | nullrequiredmax. 128 charactersadvanceInvoiceIdsArray<string>requiredmax. 128 charactersofferIdstring | nullrequiredmax. 128 charactersprojectIdstring | nullrequiredmax. 128 charactersrecurringInvoiceIdstring | nullrequiredmax. 128 characterscanceledByInvoiceIdstring | nullrequiredCancellation invoice for this invoicemax. 128 charactersdebtIdstring | nullrequiredDebt in dunning (after handover)max. 128 charactersshowGiroCodebooleanrequiredeinvoiceFormat"none" | "zugferd" | "xrechnung"requiredlanguage"de" | "en"requiredDocument language (fixed on finalisation)dispatchobjectrequiredcountintegerrequired-9007199254740991–9007199254740991lastChannel"email" | "post" | nullrequiredlastSentAtstring (date-time) | nullrequiredTimestamp (ISO 8601)
pdfobject | nullrequiredarchived PDF (after finalisation)sha256stringrequiredcreatedAtstring (date-time)requiredTimestamp (ISO 8601)
lockedbooleanrequiredlockedAtstring (date-time) | nullrequiredTimestamp (ISO 8601)paidAtstring (date-time) | nullrequiredTimestamp (ISO 8601)handedOverAtstring (date-time) | nullrequiredTimestamp (ISO 8601)createdAtstring (date-time)requiredTimestamp (ISO 8601)updatedAtstring (date-time)requiredTimestamp (ISO 8601)
curl -X PATCH 'https://www.debt-flow.io/api/v1/invoices/ID' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"kind": "standard",
"contactId": "string",
"recipient": {
"name": "string",
"addition": "string",
"street": "",
"zipCode": "",
"city": "",
"country": "DE",
"email": "[email protected]",
"vatId": "string",
"leitwegId": "string",
"einvoiceRecipientType": "business",
"customerNumber": "string"
},
"issueDate": "2026-11-01",
"serviceDate": "2026-11-01",
"servicePeriod": {
"from": "2026-11-01",
"to": "2026-11-01"
},
"dueDate": "2026-11-01",
"paymentTermsDays": 0,
"priceMode": "net",
"taxTreatment": "regular",
"subject": "string",
"introText": "string",
"closingText": "string",
"reference": "string",
"lines": [
{
"id": "string",
"type": "item",
"articleId": "string",
"title": "string",
"description": "string",
"quantity": 1,
"unit": "string",
"unitPriceCents": 0,
"discountPercent": 0,
"taxRate": 19,
"totalCents": 0,
"servicePeriod": {
"from": "2026-11-01",
"to": "2026-11-01"
},
"projectId": "string",
"timeEntryIds": [
"string"
]
}
],
"relatedInvoiceId": "string",
"advanceInvoiceIds": [
"string"
],
"offerId": "string",
"projectId": "string",
"showGiroCode": false,
"einvoiceFormat": "none",
"taxFacts": {
"kind": "goods",
"smallBusiness": false,
"customerCountry": "string",
"customerIsBusiness": false,
"customerVatIdValid": false,
"destinationCountry": "string",
"propertyCountry": "string",
"exemption": "§ 4 Nr. 8 UStG"
},
"language": "de"
}'{
"id": "string",
"object": "invoice",
"type": "invoice",
"kind": "standard",
"status": "draft",
"number": "string",
"contactId": "string",
"recipient": {
"name": "string",
"addition": "string",
"street": "",
"zipCode": "",
"city": "",
"country": "DE",
"email": "[email protected]",
"vatId": "string",
"leitwegId": "string",
"einvoiceRecipientType": "business",
"customerNumber": "string"
},
"sender": {
"companyName": "string",
"ownerName": "string",
"legalForm": "string",
"managingDirectors": "string",
"street": "string",
"zipCode": "string",
"city": "string",
"countryCode": "string",
"phone": "string",
"email": "string",
"website": "string",
"taxNumber": "string",
"vatId": "string",
"smallBusiness": false,
"commercialRegister": {
"court": "string",
"number": "string"
},
"bank": {
"accountHolder": "string",
"iban": "string",
"bic": "string",
"bankName": "string"
},
"invoiceFooter": "string"
},
"issueDate": "2026-11-01",
"serviceDate": "2026-11-01",
"servicePeriod": {
"from": "2026-11-01",
"to": "2026-11-01"
},
"serviceDateSource": "entered",
"issuance": {
"finalizedAt": "2026-11-01T09:30:00.000Z",
"serverDate": "2026-11-01",
"issueDate": "2026-11-01",
"issueDateSource": "finalize_day",
"deviationDays": 0,
"reason": "string",
"number": "string",
"numberRange": "string"
},
"dueDate": "2026-11-01",
"paymentTermsDays": 0,
"priceMode": "net",
"taxTreatment": "regular",
"taxNotice": "string",
"taxCase": {
"facts": {
"kind": "goods",
"smallBusiness": false,
"customerCountry": "string",
"customerIsBusiness": false,
"customerVatIdValid": false,
"destinationCountry": null,
"propertyCountry": null,
"exemption": null
},
"treatment": "regular",
"placeOfSupply": "string",
"legalBasis": "string",
"noticeVariant": "small_business",
"ustvaKz": "string",
"reporting": [
"ustva"
],
"confidence": "certain",
"assumed": false,
"reasons": [
"string"
],
"warnings": [
"string"
]
},
"currency": "EUR",
"subject": "string",
"introText": "string",
"closingText": "string",
"reference": "string",
"lines": [
{
"id": "string",
"type": "item",
"articleId": "string",
"title": "string",
"description": "string",
"quantity": 1,
"unit": "string",
"unitPriceCents": 0,
"discountPercent": 0,
"taxRate": 19,
"totalCents": 0,
"servicePeriod": {
"from": "2026-11-01",
"to": "2026-11-01"
},
"projectId": "string",
"timeEntryIds": [
"string"
]
}
],
"totals": {
"netCents": 0,
"taxCents": 0,
"grossCents": 0,
"groups": [
{
"taxRate": 0,
"category": "string",
"netCents": 0,
"taxCents": 0,
"grossCents": 0
}
]
},
"deductions": [
{
"invoiceId": "string",
"number": "string",
"issueDate": "2026-11-01",
"netCents": 0,
"taxCents": 0,
"grossCents": 0,
"groups": [
{
"taxRate": null,
"netCents": null,
"taxCents": null
}
],
"invoiceGrossCents": 0,
"unpaidCents": 0
}
],
"amountDueCents": 0,
"paidCents": 0,
"creditedCents": 0,
"deductedCents": 0,
"supersededCents": 0,
"openCents": 0,
"relatedInvoiceId": "string",
"advanceInvoiceIds": [
"string"
],
"offerId": "string",
"projectId": "string",
"recurringInvoiceId": "string",
"canceledByInvoiceId": "string",
"debtId": "string",
"showGiroCode": false,
"einvoiceFormat": "none",
"language": "de",
"dispatch": {
"count": 0,
"lastChannel": "email",
"lastSentAt": "2026-11-01T09:30:00.000Z"
},
"pdf": {
"sha256": "string",
"createdAt": "2026-11-01T09:30:00.000Z"
},
"locked": false,
"lockedAt": "2026-11-01T09:30:00.000Z",
"paidAt": "2026-11-01T09:30:00.000Z",
"handedOverAt": "2026-11-01T09:30:00.000Z",
"createdAt": "2026-11-01T09:30:00.000Z",
"updatedAt": "2026-11-01T09:30:00.000Z"
}/api/v1/invoices/{id}Drafts only. Finalised documents are retained (GoBD).
Permission: invoices:write
Path parameters
idstringrequiredResource IDmax. 128 characters
Response 204
Success, no content
curl -X DELETE 'https://www.debt-flow.io/api/v1/invoices/ID' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY"/api/v1/invoices/{id}/audit-logAll changes (GoBD) with actor, timestamp, changed fields and hash of the log chain.
Permission: invoices:read
Path parameters
idstringrequiredResource IDmax. 128 characters
Query parameters
limitintegerNumber of entries (1–100)1–100 · Default: 25cursorstring`nextCursor` of the previous pagemax. 500 characters
Response 200
object"list"requireddataArray<AuditEntry>requiredidstringrequiredsequence number in the audit logseqintegerrequired-9007199254740991–9007199254740991atstring (date-time)requiredTimestamp (ISO 8601)actorActorrequiredtype"user" | "api_key" | "oauth" | "system"requiredidstringrequiredlabelstring
actionstringrequiredchangesobjectrequiredmetaobject | nullrequiredhashstringrequired
hasMorebooleanrequirednextCursorstring | nullrequired
curl 'https://www.debt-flow.io/api/v1/invoices/ID/audit-log' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY"{
"object": "list",
"data": [
{
"id": "string",
"seq": 0,
"at": "2026-11-01T09:30:00.000Z",
"actor": {
"type": "user",
"id": "string",
"label": "string"
},
"action": "string",
"changes": {},
"meta": {},
"hash": "string"
}
],
"hasMore": false,
"nextCursor": "string"
}/api/v1/invoices/{id}/cancelCreates and finalises a cancellation invoice for the full amount (number range for credit notes/cancellations) and sets the invoice to canceled. Amounts already paid appear on the cancellation invoice as the amount to be refunded. If credit notes exist: 409.
Permission: invoices:write
Path parameters
idstringrequiredResource IDmax. 128 characters
Headers
Idempotency-KeystringUnique key (8–255 characters). Repeated requests with the same key return the same response for 24 h.max. 255 characters
Body (JSON) · InvoiceCancel
reasonstringReason (shown on the cancellation invoice)max. 500 charactersissueDatestring (date)Date of the cancellation invoice; default todayissueDateReasonstringReason if the cancellation date is not today (ST-14)max. 500 characters
Response 201 · InvoiceCancelResult
invoiceInvoicerequiredidstringrequiredmax. 128 charactersobject"invoice"requiredtype"invoice" | "credit_note" | "cancellation"requiredkind"standard" | "advance" | "final"requiredstatus"draft" | "open" | "partially_paid" | "paid" | "overdue" | "canceled"requirednumberstring | nullrequiredDocument number; assigned only on finalisingcontactIdstring | nullrequiredmax. 128 charactersrecipientDocumentRecipientrequirednamestringrequiredCompany or namemax. 160 charactersadditionstringAddress supplement, e.g. attn. Ms Mustermax. 160 charactersstreetstringrequiredmax. 160 characters · Default: ""zipCodestringrequiredmax. 10 characters · Default: ""citystringrequiredmax. 80 characters · Default: ""countrystringrequiredCountry code ISO 3166-1 alpha-2max. 2 characters · Default: "DE"emailstring (email)Invoice recipient (email)max. 254 charactersvatIdstringRecipient's VAT ID (required for reverse charge/intra-Community supply)leitwegIdstringLeitweg-ID (XRechnung to public authorities)max. 60 characterseinvoiceRecipientType"business" | "public_authority"E-invoice recipient profile (from the contact): public_authority requires a Leitweg-ID (ER-08)customerNumberstringCustomer number (assigned on finalisation)max. 40 characters
senderSenderSnapshot | nullrequiredSender snapshot (taken on finalising)companyNamestringrequiredownerNamestringlegalFormstringmanagingDirectorsstringstreetstringrequiredzipCodestringrequiredcitystringrequiredcountryCodestringrequiredphonestringemailstringwebsitestringtaxNumberstringvatIdstringsmallBusinessbooleanrequiredcommercialRegisterobjectbankobjectinvoiceFooterstring
issueDatestring (date) | nullrequiredDate (YYYY-MM-DD)serviceDatestring (date) | nullrequiredDate (YYYY-MM-DD)servicePeriodServicePeriod | nullrequiredfromstring (date)requiredDate (YYYY-MM-DD)tostring (date)requiredDate (YYYY-MM-DD)
serviceDateSource"entered" | "period" | "confirmed_issue_date" | "recurring" | "not_applicable" | nullrequiredSource of the date of supply (ST-13): confirmed_issue_date = confirmed by the userissuanceInvoiceIssuance | nullrequiredEvidence of issue (from finalising, ST-14)finalizedAtstring (date-time)requiredServer time of finalisingserverDatestring (date)requiredCalendar day of finalising (Europe/Berlin)issueDatestring (date)requiredDate (YYYY-MM-DD)issueDateSource"finalize_day" | "entered"requiredfinalize_day = day of finalising, entered = entered in the draftdeviationDaysintegerrequiredIssue date minus finalising day in days (negative = earlier)-9007199254740991–9007199254740991reasonstring | nullrequiredReason for a differing issue datenumberstring | nullrequirednumberRangestringrequiredNumber range
dueDatestring (date) | nullrequiredDate (YYYY-MM-DD)paymentTermsDaysintegerrequired-9007199254740991–9007199254740991priceMode"net" | "gross"requiredtaxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"requiredTax treatment of the receipttaxNoticestring | nullrequiredMandatory notice (§ 19, § 13b, intra-Community supply …)taxCaseInvoiceTaxCase | nullrequiredTax case (tax assistant); saved at the latest when finalisingfactsobjectrequiredtreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"requiredTax treatment of the receiptplaceOfSupplystringrequiredPlace of supply (ISO country)legalBasisstringrequirednoticeVariantenum | nullrequiredCase variant of the mandatory notice (ST-03)Values: small_business, reverse_charge, reverse_charge_eu, intra_eu_supply, export, non_taxable, tax_exemptustvaKzstring | nullrequiredAdvance VAT return form field of the tax base (not for standard taxation)reportingArray<"ustva" | "zm" | "none">requiredconfidence"certain" | "likely" | "review"requiredassumedbooleanrequiredFacts assumed from the invoice data (not entered)reasonsArray<string>requiredwarningsArray<string>required
currency"EUR"requiredsubjectstringrequiredintroTextstringrequiredclosingTextstringrequiredreferencestringrequiredlinesArray<DocumentLine>requiredidstringstable line item ID (assigned by the server if empty)max. 40 characterstype"item" | "text" | "subtotal"Line item, plain text line or subtotalDefault: "item"articleIdstringReference to the article master datamax. 128 characterstitlestringrequiredmax. 300 charactersdescriptionstringmax. 5000 charactersquantitynumber-1000000–1000000 · Default: 1unitstringUnit, e.g. Stk, Std, pauschal (piece, hour, flat rate); UN/ECE Rec 20 for e-invoicing: modulemax. 20 charactersunitPriceCentsintegerAmount in cents-100000000000–100000000000 · Default: 0discountPercentnumber0–100taxRatenumberTax rate in per cent (19, 7, 0 …)0–100 · Default: 19totalCentsintegerAmount in cents-100000000000–100000000000servicePeriodobjectprojectIdstringmax. 128 characterstimeEntryIdsArray<string>max. 128 characters
totalsDocumentTotalsrequirednetCentsintegerrequiredAmount in cents-100000000000–100000000000taxCentsintegerrequiredAmount in cents-100000000000–100000000000grossCentsintegerrequiredAmount in cents-100000000000–100000000000groupsArray<object>required
deductionsArray<InvoiceDeduction>requiredFinal invoice: advance payments actually received and deducted (ST-09)invoiceIdstringrequiredmax. 128 charactersnumberstringrequiredissueDatestring (date)requiredDate (YYYY-MM-DD)netCentsintegerrequiredAmount in cents-100000000000–100000000000taxCentsintegerrequiredAmount in cents-100000000000–100000000000grossCentsintegerrequiredAmount in cents-100000000000–100000000000groupsArray<object>requiredinvoiceGrossCentsintegerInvoice amount of the progress invoice (ST-09)-100000000000–100000000000unpaidCentsintegerUnreceived remainder of the progress invoice – not deducted (ST-09)-100000000000–100000000000
amountDueCentsintegerrequiredAmount payable (gross less progress invoices)-100000000000–100000000000paidCentsintegerrequiredAmount in cents-100000000000–100000000000creditedCentsintegerrequiredreduced by invoice corrections (progress invoice: incl. the remainder settled with the final invoice)-100000000000–100000000000deductedCentsinteger | nullrequiredProgress invoice: amount received and deducted in the final invoice (ST-09)-100000000000–100000000000supersededCentsinteger | nullrequiredProgress invoice: unpaid remainder settled with the final invoice (ST-09)-100000000000–100000000000openCentsintegerrequiredAmount in cents-100000000000–100000000000relatedInvoiceIdstring | nullrequiredmax. 128 charactersadvanceInvoiceIdsArray<string>requiredmax. 128 charactersofferIdstring | nullrequiredmax. 128 charactersprojectIdstring | nullrequiredmax. 128 charactersrecurringInvoiceIdstring | nullrequiredmax. 128 characterscanceledByInvoiceIdstring | nullrequiredCancellation invoice for this invoicemax. 128 charactersdebtIdstring | nullrequiredDebt in dunning (after handover)max. 128 charactersshowGiroCodebooleanrequiredeinvoiceFormat"none" | "zugferd" | "xrechnung"requiredlanguage"de" | "en"requiredDocument language (fixed on finalisation)dispatchobjectrequiredcountintegerrequired-9007199254740991–9007199254740991lastChannel"email" | "post" | nullrequiredlastSentAtstring (date-time) | nullrequiredTimestamp (ISO 8601)
pdfobject | nullrequiredarchived PDF (after finalisation)sha256stringrequiredcreatedAtstring (date-time)requiredTimestamp (ISO 8601)
lockedbooleanrequiredlockedAtstring (date-time) | nullrequiredTimestamp (ISO 8601)paidAtstring (date-time) | nullrequiredTimestamp (ISO 8601)handedOverAtstring (date-time) | nullrequiredTimestamp (ISO 8601)createdAtstring (date-time)requiredTimestamp (ISO 8601)updatedAtstring (date-time)requiredTimestamp (ISO 8601)
cancellationInvoicerequiredfinalised cancellation invoiceidstringrequiredmax. 128 charactersobject"invoice"requiredtype"invoice" | "credit_note" | "cancellation"requiredkind"standard" | "advance" | "final"requiredstatus"draft" | "open" | "partially_paid" | "paid" | "overdue" | "canceled"requirednumberstring | nullrequiredDocument number; assigned only on finalisingcontactIdstring | nullrequiredmax. 128 charactersrecipientDocumentRecipientrequirednamestringrequiredCompany or namemax. 160 charactersadditionstringAddress supplement, e.g. attn. Ms Mustermax. 160 charactersstreetstringrequiredmax. 160 characters · Default: ""zipCodestringrequiredmax. 10 characters · Default: ""citystringrequiredmax. 80 characters · Default: ""countrystringrequiredCountry code ISO 3166-1 alpha-2max. 2 characters · Default: "DE"emailstring (email)Invoice recipient (email)max. 254 charactersvatIdstringRecipient's VAT ID (required for reverse charge/intra-Community supply)leitwegIdstringLeitweg-ID (XRechnung to public authorities)max. 60 characterseinvoiceRecipientType"business" | "public_authority"E-invoice recipient profile (from the contact): public_authority requires a Leitweg-ID (ER-08)customerNumberstringCustomer number (assigned on finalisation)max. 40 characters
senderSenderSnapshot | nullrequiredSender snapshot (taken on finalising)companyNamestringrequiredownerNamestringlegalFormstringmanagingDirectorsstringstreetstringrequiredzipCodestringrequiredcitystringrequiredcountryCodestringrequiredphonestringemailstringwebsitestringtaxNumberstringvatIdstringsmallBusinessbooleanrequiredcommercialRegisterobjectbankobjectinvoiceFooterstring
issueDatestring (date) | nullrequiredDate (YYYY-MM-DD)serviceDatestring (date) | nullrequiredDate (YYYY-MM-DD)servicePeriodServicePeriod | nullrequiredfromstring (date)requiredDate (YYYY-MM-DD)tostring (date)requiredDate (YYYY-MM-DD)
serviceDateSource"entered" | "period" | "confirmed_issue_date" | "recurring" | "not_applicable" | nullrequiredSource of the date of supply (ST-13): confirmed_issue_date = confirmed by the userissuanceInvoiceIssuance | nullrequiredEvidence of issue (from finalising, ST-14)finalizedAtstring (date-time)requiredServer time of finalisingserverDatestring (date)requiredCalendar day of finalising (Europe/Berlin)issueDatestring (date)requiredDate (YYYY-MM-DD)issueDateSource"finalize_day" | "entered"requiredfinalize_day = day of finalising, entered = entered in the draftdeviationDaysintegerrequiredIssue date minus finalising day in days (negative = earlier)-9007199254740991–9007199254740991reasonstring | nullrequiredReason for a differing issue datenumberstring | nullrequirednumberRangestringrequiredNumber range
dueDatestring (date) | nullrequiredDate (YYYY-MM-DD)paymentTermsDaysintegerrequired-9007199254740991–9007199254740991priceMode"net" | "gross"requiredtaxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"requiredTax treatment of the receipttaxNoticestring | nullrequiredMandatory notice (§ 19, § 13b, intra-Community supply …)taxCaseInvoiceTaxCase | nullrequiredTax case (tax assistant); saved at the latest when finalisingfactsobjectrequiredtreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"requiredTax treatment of the receiptplaceOfSupplystringrequiredPlace of supply (ISO country)legalBasisstringrequirednoticeVariantenum | nullrequiredCase variant of the mandatory notice (ST-03)Values: small_business, reverse_charge, reverse_charge_eu, intra_eu_supply, export, non_taxable, tax_exemptustvaKzstring | nullrequiredAdvance VAT return form field of the tax base (not for standard taxation)reportingArray<"ustva" | "zm" | "none">requiredconfidence"certain" | "likely" | "review"requiredassumedbooleanrequiredFacts assumed from the invoice data (not entered)reasonsArray<string>requiredwarningsArray<string>required
currency"EUR"requiredsubjectstringrequiredintroTextstringrequiredclosingTextstringrequiredreferencestringrequiredlinesArray<DocumentLine>requiredidstringstable line item ID (assigned by the server if empty)max. 40 characterstype"item" | "text" | "subtotal"Line item, plain text line or subtotalDefault: "item"articleIdstringReference to the article master datamax. 128 characterstitlestringrequiredmax. 300 charactersdescriptionstringmax. 5000 charactersquantitynumber-1000000–1000000 · Default: 1unitstringUnit, e.g. Stk, Std, pauschal (piece, hour, flat rate); UN/ECE Rec 20 for e-invoicing: modulemax. 20 charactersunitPriceCentsintegerAmount in cents-100000000000–100000000000 · Default: 0discountPercentnumber0–100taxRatenumberTax rate in per cent (19, 7, 0 …)0–100 · Default: 19totalCentsintegerAmount in cents-100000000000–100000000000servicePeriodobjectprojectIdstringmax. 128 characterstimeEntryIdsArray<string>max. 128 characters
totalsDocumentTotalsrequirednetCentsintegerrequiredAmount in cents-100000000000–100000000000taxCentsintegerrequiredAmount in cents-100000000000–100000000000grossCentsintegerrequiredAmount in cents-100000000000–100000000000groupsArray<object>required
deductionsArray<InvoiceDeduction>requiredFinal invoice: advance payments actually received and deducted (ST-09)invoiceIdstringrequiredmax. 128 charactersnumberstringrequiredissueDatestring (date)requiredDate (YYYY-MM-DD)netCentsintegerrequiredAmount in cents-100000000000–100000000000taxCentsintegerrequiredAmount in cents-100000000000–100000000000grossCentsintegerrequiredAmount in cents-100000000000–100000000000groupsArray<object>requiredinvoiceGrossCentsintegerInvoice amount of the progress invoice (ST-09)-100000000000–100000000000unpaidCentsintegerUnreceived remainder of the progress invoice – not deducted (ST-09)-100000000000–100000000000
amountDueCentsintegerrequiredAmount payable (gross less progress invoices)-100000000000–100000000000paidCentsintegerrequiredAmount in cents-100000000000–100000000000creditedCentsintegerrequiredreduced by invoice corrections (progress invoice: incl. the remainder settled with the final invoice)-100000000000–100000000000deductedCentsinteger | nullrequiredProgress invoice: amount received and deducted in the final invoice (ST-09)-100000000000–100000000000supersededCentsinteger | nullrequiredProgress invoice: unpaid remainder settled with the final invoice (ST-09)-100000000000–100000000000openCentsintegerrequiredAmount in cents-100000000000–100000000000relatedInvoiceIdstring | nullrequiredmax. 128 charactersadvanceInvoiceIdsArray<string>requiredmax. 128 charactersofferIdstring | nullrequiredmax. 128 charactersprojectIdstring | nullrequiredmax. 128 charactersrecurringInvoiceIdstring | nullrequiredmax. 128 characterscanceledByInvoiceIdstring | nullrequiredCancellation invoice for this invoicemax. 128 charactersdebtIdstring | nullrequiredDebt in dunning (after handover)max. 128 charactersshowGiroCodebooleanrequiredeinvoiceFormat"none" | "zugferd" | "xrechnung"requiredlanguage"de" | "en"requiredDocument language (fixed on finalisation)dispatchobjectrequiredcountintegerrequired-9007199254740991–9007199254740991lastChannel"email" | "post" | nullrequiredlastSentAtstring (date-time) | nullrequiredTimestamp (ISO 8601)
pdfobject | nullrequiredarchived PDF (after finalisation)sha256stringrequiredcreatedAtstring (date-time)requiredTimestamp (ISO 8601)
lockedbooleanrequiredlockedAtstring (date-time) | nullrequiredTimestamp (ISO 8601)paidAtstring (date-time) | nullrequiredTimestamp (ISO 8601)handedOverAtstring (date-time) | nullrequiredTimestamp (ISO 8601)createdAtstring (date-time)requiredTimestamp (ISO 8601)updatedAtstring (date-time)requiredTimestamp (ISO 8601)
curl -X POST 'https://www.debt-flow.io/api/v1/invoices/ID/cancel' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"reason": "string",
"issueDate": "2026-11-01",
"issueDateReason": "string"
}'{
"invoice": {
"id": "string",
"object": "invoice",
"type": "invoice",
"kind": "standard",
"status": "draft",
"number": "string",
"contactId": "string",
"recipient": {
"name": "string",
"addition": "string",
"street": "",
"zipCode": "",
"city": "",
"country": "DE",
"email": "[email protected]",
"vatId": "string",
"leitwegId": "string",
"einvoiceRecipientType": "business",
"customerNumber": "string"
},
"sender": {
"companyName": null,
"ownerName": null,
"legalForm": null,
"managingDirectors": null,
"street": null,
"zipCode": null,
"city": null,
"countryCode": null,
"phone": null,
"email": null,
"website": null,
"taxNumber": null,
"vatId": null,
"smallBusiness": null,
"commercialRegister": null,
"bank": null,
"invoiceFooter": null
},
"issueDate": "2026-11-01",
"serviceDate": "2026-11-01",
"servicePeriod": {
"from": null,
"to": null
},
"serviceDateSource": "entered",
"issuance": {
"finalizedAt": null,
"serverDate": null,
"issueDate": null,
"issueDateSource": null,
"deviationDays": null,
"reason": null,
"number": null,
"numberRange": null
},
"dueDate": "2026-11-01",
"paymentTermsDays": 0,
"priceMode": "net",
"taxTreatment": "regular",
"taxNotice": "string",
"taxCase": {
"facts": null,
"treatment": null,
"placeOfSupply": null,
"legalBasis": null,
"noticeVariant": null,
"ustvaKz": null,
"reporting": null,
"confidence": null,
"assumed": null,
"reasons": null,
"warnings": null
},
"currency": "EUR",
"subject": "string",
"introText": "string",
"closingText": "string",
"reference": "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
]
},
"deductions": [
{
"invoiceId": null,
"number": null,
"issueDate": null,
"netCents": null,
"taxCents": null,
"grossCents": null,
"groups": null,
"invoiceGrossCents": null,
"unpaidCents": null
}
],
"amountDueCents": 0,
"paidCents": 0,
"creditedCents": 0,
"deductedCents": 0,
"supersededCents": 0,
"openCents": 0,
"relatedInvoiceId": "string",
"advanceInvoiceIds": [
"string"
],
"offerId": "string",
"projectId": "string",
"recurringInvoiceId": "string",
"canceledByInvoiceId": "string",
"debtId": "string",
"showGiroCode": false,
"einvoiceFormat": "none",
"language": "de",
"dispatch": {
"count": 0,
"lastChannel": "email",
"lastSentAt": "2026-11-01T09:30:00.000Z"
},
"pdf": {
"sha256": "string",
"createdAt": "2026-11-01T09:30:00.000Z"
},
"locked": false,
"lockedAt": "2026-11-01T09:30:00.000Z",
"paidAt": "2026-11-01T09:30:00.000Z",
"handedOverAt": "2026-11-01T09:30:00.000Z",
"createdAt": "2026-11-01T09:30:00.000Z",
"updatedAt": "2026-11-01T09:30:00.000Z"
},
"cancellation": {
"id": "string",
"object": "invoice",
"type": "invoice",
"kind": "standard",
"status": "draft",
"number": "string",
"contactId": "string",
"recipient": {
"name": "string",
"addition": "string",
"street": "",
"zipCode": "",
"city": "",
"country": "DE",
"email": "[email protected]",
"vatId": "string",
"leitwegId": "string",
"einvoiceRecipientType": "business",
"customerNumber": "string"
},
"sender": {
"companyName": null,
"ownerName": null,
"legalForm": null,
"managingDirectors": null,
"street": null,
"zipCode": null,
"city": null,
"countryCode": null,
"phone": null,
"email": null,
"website": null,
"taxNumber": null,
"vatId": null,
"smallBusiness": null,
"commercialRegister": null,
"bank": null,
"invoiceFooter": null
},
"issueDate": "2026-11-01",
"serviceDate": "2026-11-01",
"servicePeriod": {
"from": null,
"to": null
},
"serviceDateSource": "entered",
"issuance": {
"finalizedAt": null,
"serverDate": null,
"issueDate": null,
"issueDateSource": null,
"deviationDays": null,
"reason": null,
"number": null,
"numberRange": null
},
"dueDate": "2026-11-01",
"paymentTermsDays": 0,
"priceMode": "net",
"taxTreatment": "regular",
"taxNotice": "string",
"taxCase": {
"facts": null,
"treatment": null,
"placeOfSupply": null,
"legalBasis": null,
"noticeVariant": null,
"ustvaKz": null,
"reporting": null,
"confidence": null,
"assumed": null,
"reasons": null,
"warnings": null
},
"currency": "EUR",
"subject": "string",
"introText": "string",
"closingText": "string",
"reference": "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
]
},
"deductions": [
{
"invoiceId": null,
"number": null,
"issueDate": null,
"netCents": null,
"taxCents": null,
"grossCents": null,
"groups": null,
"invoiceGrossCents": null,
"unpaidCents": null
}
],
"amountDueCents": 0,
"paidCents": 0,
"creditedCents": 0,
"deductedCents": 0,
"supersededCents": 0,
"openCents": 0,
"relatedInvoiceId": "string",
"advanceInvoiceIds": [
"string"
],
"offerId": "string",
"projectId": "string",
"recurringInvoiceId": "string",
"canceledByInvoiceId": "string",
"debtId": "string",
"showGiroCode": false,
"einvoiceFormat": "none",
"language": "de",
"dispatch": {
"count": 0,
"lastChannel": "email",
"lastSentAt": "2026-11-01T09:30:00.000Z"
},
"pdf": {
"sha256": "string",
"createdAt": "2026-11-01T09:30:00.000Z"
},
"locked": false,
"lockedAt": "2026-11-01T09:30:00.000Z",
"paidAt": "2026-11-01T09:30:00.000Z",
"handedOverAt": "2026-11-01T09:30:00.000Z",
"createdAt": "2026-11-01T09:30:00.000Z",
"updatedAt": "2026-11-01T09:30:00.000Z"
}
}/api/v1/invoices/{id}/dispatchesPermission: invoices:read
Path parameters
idstringrequiredResource IDmax. 128 characters
Query parameters
limitintegerNumber of entries (1–100)1–100 · Default: 25cursorstring`nextCursor` of the previous pagemax. 500 characters
Response 200
object"list"requireddataArray<InvoiceDispatch>requiredidstringrequiredmax. 128 charactersinvoiceIdstringrequiredmax. 128 characterschannel"email" | "post"requiredstatus"sending" | "sent" | "failed"requiredtoArray<string>requiredsubjectstring | nullrequiredregisteredbooleanrequiredletterIdstring | nullrequiredtrackingRefstring | nullrequiredpageCountinteger | nullrequired-9007199254740991–9007199254740991priceEurostring | nullrequireddeliveryStatus"pending" | "delivered" | "failed" | "returned" | nullrequiredPost only: delivery status according to Briefdiener (cron letter-status), otherwise nulldeliveryMessagestring | nullrequiredtrackingUrlstring | nullrequireddeliveryUpdatedAtstring (date-time) | nullrequiredTimestamp (ISO 8601)errorstring | nullrequiredactorActor | nullrequiredtype"user" | "api_key" | "oauth" | "system"requiredidstringrequiredlabelstring
createdAtstring (date-time)requiredTimestamp (ISO 8601)sentAtstring (date-time) | nullrequiredTimestamp (ISO 8601)
hasMorebooleanrequirednextCursorstring | nullrequired
curl 'https://www.debt-flow.io/api/v1/invoices/ID/dispatches' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY"{
"object": "list",
"data": [
{
"id": "string",
"invoiceId": "string",
"channel": "email",
"status": "sending",
"to": [
"string"
],
"subject": "string",
"registered": false,
"letterId": "string",
"trackingRef": "string",
"pageCount": 0,
"priceEuro": "string",
"deliveryStatus": "pending",
"deliveryMessage": "string",
"trackingUrl": "string",
"deliveryUpdatedAt": "2026-11-01T09:30:00.000Z",
"error": "string",
"actor": {
"type": null,
"id": null,
"label": null
},
"createdAt": "2026-11-01T09:30:00.000Z",
"sentAt": "2026-11-01T09:30:00.000Z"
}
],
"hasMore": false,
"nextCursor": "string"
}/api/v1/invoices/{id}/duplicateCopies the customer, texts and line items into a new draft (without number and date).
Permission: invoices:write
Path parameters
idstringrequiredResource IDmax. 128 characters
Headers
Idempotency-KeystringUnique key (8–255 characters). Repeated requests with the same key return the same response for 24 h.max. 255 characters
Response 201 · Invoice
idstringrequiredmax. 128 charactersobject"invoice"requiredtype"invoice" | "credit_note" | "cancellation"requiredkind"standard" | "advance" | "final"requiredstatus"draft" | "open" | "partially_paid" | "paid" | "overdue" | "canceled"requirednumberstring | nullrequiredDocument number; assigned only on finalisingcontactIdstring | nullrequiredmax. 128 charactersrecipientDocumentRecipientrequirednamestringrequiredCompany or namemax. 160 charactersadditionstringAddress supplement, e.g. attn. Ms Mustermax. 160 charactersstreetstringrequiredmax. 160 characters · Default: ""zipCodestringrequiredmax. 10 characters · Default: ""citystringrequiredmax. 80 characters · Default: ""countrystringrequiredCountry code ISO 3166-1 alpha-2max. 2 characters · Default: "DE"emailstring (email)Invoice recipient (email)max. 254 charactersvatIdstringRecipient's VAT ID (required for reverse charge/intra-Community supply)leitwegIdstringLeitweg-ID (XRechnung to public authorities)max. 60 characterseinvoiceRecipientType"business" | "public_authority"E-invoice recipient profile (from the contact): public_authority requires a Leitweg-ID (ER-08)customerNumberstringCustomer number (assigned on finalisation)max. 40 characters
senderSenderSnapshot | nullrequiredSender snapshot (taken on finalising)companyNamestringrequiredownerNamestringlegalFormstringmanagingDirectorsstringstreetstringrequiredzipCodestringrequiredcitystringrequiredcountryCodestringrequiredphonestringemailstringwebsitestringtaxNumberstringvatIdstringsmallBusinessbooleanrequiredcommercialRegisterobjectcourtstringnumberstring
bankobjectaccountHolderstringibanstringbicstringbankNamestring
invoiceFooterstring
issueDatestring (date) | nullrequiredDate (YYYY-MM-DD)serviceDatestring (date) | nullrequiredDate (YYYY-MM-DD)servicePeriodServicePeriod | nullrequiredfromstring (date)requiredDate (YYYY-MM-DD)tostring (date)requiredDate (YYYY-MM-DD)
serviceDateSource"entered" | "period" | "confirmed_issue_date" | "recurring" | "not_applicable" | nullrequiredSource of the date of supply (ST-13): confirmed_issue_date = confirmed by the userissuanceInvoiceIssuance | nullrequiredEvidence of issue (from finalising, ST-14)finalizedAtstring (date-time)requiredServer time of finalisingserverDatestring (date)requiredCalendar day of finalising (Europe/Berlin)issueDatestring (date)requiredDate (YYYY-MM-DD)issueDateSource"finalize_day" | "entered"requiredfinalize_day = day of finalising, entered = entered in the draftdeviationDaysintegerrequiredIssue date minus finalising day in days (negative = earlier)-9007199254740991–9007199254740991reasonstring | nullrequiredReason for a differing issue datenumberstring | nullrequirednumberRangestringrequiredNumber range
dueDatestring (date) | nullrequiredDate (YYYY-MM-DD)paymentTermsDaysintegerrequired-9007199254740991–9007199254740991priceMode"net" | "gross"requiredtaxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"requiredTax treatment of the receipttaxNoticestring | nullrequiredMandatory notice (§ 19, § 13b, intra-Community supply …)taxCaseInvoiceTaxCase | nullrequiredTax case (tax assistant); saved at the latest when finalisingfactsobjectrequiredkind"goods" | "service" | "construction" | "property_service" | "electronic_service"requiredType of supplysmallBusinessbooleanrequiredcustomerCountrystringrequiredCountry of residence of the recipientmax. 2 characterscustomerIsBusinessbooleanrequiredRecipient is a business and receives the supply for its businesscustomerVatIdValidbooleanrequireda valid VAT ID of the recipient is availabledestinationCountrystring | nullSupply of goods: country of destinationmax. 2 characterspropertyCountrystring | nullService related to real estate: location of the propertymax. 2 charactersexemption"§ 4 Nr. 8 UStG" | "§ 4 Nr. 11 UStG" | "§ 4 Nr. 12 UStG" | "§ 4 Nr. 14 UStG" | "§ 4 Nr. 21 UStG" | "other" | nullVAT exemption without input VAT deduction
treatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"requiredTax treatment of the receiptplaceOfSupplystringrequiredPlace of supply (ISO country)legalBasisstringrequirednoticeVariantenum | nullrequiredCase variant of the mandatory notice (ST-03)Values: small_business, reverse_charge, reverse_charge_eu, intra_eu_supply, export, non_taxable, tax_exemptustvaKzstring | nullrequiredAdvance VAT return form field of the tax base (not for standard taxation)reportingArray<"ustva" | "zm" | "none">requiredconfidence"certain" | "likely" | "review"requiredassumedbooleanrequiredFacts assumed from the invoice data (not entered)reasonsArray<string>requiredwarningsArray<string>required
currency"EUR"requiredsubjectstringrequiredintroTextstringrequiredclosingTextstringrequiredreferencestringrequiredlinesArray<DocumentLine>requiredidstringstable line item ID (assigned by the server if empty)max. 40 characterstype"item" | "text" | "subtotal"Line item, plain text line or subtotalDefault: "item"articleIdstringReference to the article master datamax. 128 characterstitlestringrequiredmax. 300 charactersdescriptionstringmax. 5000 charactersquantitynumber-1000000–1000000 · Default: 1unitstringUnit, e.g. Stk, Std, pauschal (piece, hour, flat rate); UN/ECE Rec 20 for e-invoicing: modulemax. 20 charactersunitPriceCentsintegerAmount in cents-100000000000–100000000000 · Default: 0discountPercentnumber0–100taxRatenumberTax rate in per cent (19, 7, 0 …)0–100 · Default: 19totalCentsintegerAmount in cents-100000000000–100000000000servicePeriodobjectfromstring (date)requiredDate (YYYY-MM-DD)tostring (date)requiredDate (YYYY-MM-DD)
projectIdstringmax. 128 characterstimeEntryIdsArray<string>max. 128 characters
totalsDocumentTotalsrequirednetCentsintegerrequiredAmount in cents-100000000000–100000000000taxCentsintegerrequiredAmount in cents-100000000000–100000000000grossCentsintegerrequiredAmount in cents-100000000000–100000000000groupsArray<object>requiredtaxRatenumberrequiredcategorystringrequirednetCentsintegerrequiredAmount in cents-100000000000–100000000000taxCentsintegerrequiredAmount in cents-100000000000–100000000000grossCentsintegerrequiredAmount in cents-100000000000–100000000000
deductionsArray<InvoiceDeduction>requiredFinal invoice: advance payments actually received and deducted (ST-09)invoiceIdstringrequiredmax. 128 charactersnumberstringrequiredissueDatestring (date)requiredDate (YYYY-MM-DD)netCentsintegerrequiredAmount in cents-100000000000–100000000000taxCentsintegerrequiredAmount in cents-100000000000–100000000000grossCentsintegerrequiredAmount in cents-100000000000–100000000000groupsArray<object>requiredtaxRatenumberrequirednetCentsintegerrequiredAmount in cents-100000000000–100000000000taxCentsintegerrequiredAmount in cents-100000000000–100000000000
invoiceGrossCentsintegerInvoice amount of the progress invoice (ST-09)-100000000000–100000000000unpaidCentsintegerUnreceived remainder of the progress invoice – not deducted (ST-09)-100000000000–100000000000
amountDueCentsintegerrequiredAmount payable (gross less progress invoices)-100000000000–100000000000paidCentsintegerrequiredAmount in cents-100000000000–100000000000creditedCentsintegerrequiredreduced by invoice corrections (progress invoice: incl. the remainder settled with the final invoice)-100000000000–100000000000deductedCentsinteger | nullrequiredProgress invoice: amount received and deducted in the final invoice (ST-09)-100000000000–100000000000supersededCentsinteger | nullrequiredProgress invoice: unpaid remainder settled with the final invoice (ST-09)-100000000000–100000000000openCentsintegerrequiredAmount in cents-100000000000–100000000000relatedInvoiceIdstring | nullrequiredmax. 128 charactersadvanceInvoiceIdsArray<string>requiredmax. 128 charactersofferIdstring | nullrequiredmax. 128 charactersprojectIdstring | nullrequiredmax. 128 charactersrecurringInvoiceIdstring | nullrequiredmax. 128 characterscanceledByInvoiceIdstring | nullrequiredCancellation invoice for this invoicemax. 128 charactersdebtIdstring | nullrequiredDebt in dunning (after handover)max. 128 charactersshowGiroCodebooleanrequiredeinvoiceFormat"none" | "zugferd" | "xrechnung"requiredlanguage"de" | "en"requiredDocument language (fixed on finalisation)dispatchobjectrequiredcountintegerrequired-9007199254740991–9007199254740991lastChannel"email" | "post" | nullrequiredlastSentAtstring (date-time) | nullrequiredTimestamp (ISO 8601)
pdfobject | nullrequiredarchived PDF (after finalisation)sha256stringrequiredcreatedAtstring (date-time)requiredTimestamp (ISO 8601)
lockedbooleanrequiredlockedAtstring (date-time) | nullrequiredTimestamp (ISO 8601)paidAtstring (date-time) | nullrequiredTimestamp (ISO 8601)handedOverAtstring (date-time) | nullrequiredTimestamp (ISO 8601)createdAtstring (date-time)requiredTimestamp (ISO 8601)updatedAtstring (date-time)requiredTimestamp (ISO 8601)
curl -X POST 'https://www.debt-flow.io/api/v1/invoices/ID/duplicate' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY"{
"id": "string",
"object": "invoice",
"type": "invoice",
"kind": "standard",
"status": "draft",
"number": "string",
"contactId": "string",
"recipient": {
"name": "string",
"addition": "string",
"street": "",
"zipCode": "",
"city": "",
"country": "DE",
"email": "[email protected]",
"vatId": "string",
"leitwegId": "string",
"einvoiceRecipientType": "business",
"customerNumber": "string"
},
"sender": {
"companyName": "string",
"ownerName": "string",
"legalForm": "string",
"managingDirectors": "string",
"street": "string",
"zipCode": "string",
"city": "string",
"countryCode": "string",
"phone": "string",
"email": "string",
"website": "string",
"taxNumber": "string",
"vatId": "string",
"smallBusiness": false,
"commercialRegister": {
"court": "string",
"number": "string"
},
"bank": {
"accountHolder": "string",
"iban": "string",
"bic": "string",
"bankName": "string"
},
"invoiceFooter": "string"
},
"issueDate": "2026-11-01",
"serviceDate": "2026-11-01",
"servicePeriod": {
"from": "2026-11-01",
"to": "2026-11-01"
},
"serviceDateSource": "entered",
"issuance": {
"finalizedAt": "2026-11-01T09:30:00.000Z",
"serverDate": "2026-11-01",
"issueDate": "2026-11-01",
"issueDateSource": "finalize_day",
"deviationDays": 0,
"reason": "string",
"number": "string",
"numberRange": "string"
},
"dueDate": "2026-11-01",
"paymentTermsDays": 0,
"priceMode": "net",
"taxTreatment": "regular",
"taxNotice": "string",
"taxCase": {
"facts": {
"kind": "goods",
"smallBusiness": false,
"customerCountry": "string",
"customerIsBusiness": false,
"customerVatIdValid": false,
"destinationCountry": null,
"propertyCountry": null,
"exemption": null
},
"treatment": "regular",
"placeOfSupply": "string",
"legalBasis": "string",
"noticeVariant": "small_business",
"ustvaKz": "string",
"reporting": [
"ustva"
],
"confidence": "certain",
"assumed": false,
"reasons": [
"string"
],
"warnings": [
"string"
]
},
"currency": "EUR",
"subject": "string",
"introText": "string",
"closingText": "string",
"reference": "string",
"lines": [
{
"id": "string",
"type": "item",
"articleId": "string",
"title": "string",
"description": "string",
"quantity": 1,
"unit": "string",
"unitPriceCents": 0,
"discountPercent": 0,
"taxRate": 19,
"totalCents": 0,
"servicePeriod": {
"from": "2026-11-01",
"to": "2026-11-01"
},
"projectId": "string",
"timeEntryIds": [
"string"
]
}
],
"totals": {
"netCents": 0,
"taxCents": 0,
"grossCents": 0,
"groups": [
{
"taxRate": 0,
"category": "string",
"netCents": 0,
"taxCents": 0,
"grossCents": 0
}
]
},
"deductions": [
{
"invoiceId": "string",
"number": "string",
"issueDate": "2026-11-01",
"netCents": 0,
"taxCents": 0,
"grossCents": 0,
"groups": [
{
"taxRate": null,
"netCents": null,
"taxCents": null
}
],
"invoiceGrossCents": 0,
"unpaidCents": 0
}
],
"amountDueCents": 0,
"paidCents": 0,
"creditedCents": 0,
"deductedCents": 0,
"supersededCents": 0,
"openCents": 0,
"relatedInvoiceId": "string",
"advanceInvoiceIds": [
"string"
],
"offerId": "string",
"projectId": "string",
"recurringInvoiceId": "string",
"canceledByInvoiceId": "string",
"debtId": "string",
"showGiroCode": false,
"einvoiceFormat": "none",
"language": "de",
"dispatch": {
"count": 0,
"lastChannel": "email",
"lastSentAt": "2026-11-01T09:30:00.000Z"
},
"pdf": {
"sha256": "string",
"createdAt": "2026-11-01T09:30:00.000Z"
},
"locked": false,
"lockedAt": "2026-11-01T09:30:00.000Z",
"paidAt": "2026-11-01T09:30:00.000Z",
"handedOverAt": "2026-11-01T09:30:00.000Z",
"createdAt": "2026-11-01T09:30:00.000Z",
"updatedAt": "2026-11-01T09:30:00.000Z"
}/api/v1/invoices/{id}/e-invoiceformat=xrechnung returns XRechnung 3.0 (UBL, application/xml) – generated on first retrieval and archived unchanged. format=zugferd returns the archived invoice PDF with embedded factur-x.xml (PDF/A-3, profile EN 16931); only for invoices finalised with einvoiceFormat: "zugferd". If not specified: the invoice's format, otherwise XRechnung.
Permission: invoices:read
Path parameters
idstringrequiredResource IDmax. 128 characters
Query parameters
format"xrechnung" | "zugferd"xrechnung (XML) or zugferd (PDF)
Response 200
File (application/xml).
curl 'https://www.debt-flow.io/api/v1/invoices/ID/e-invoice' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY"/api/v1/invoices/{id}/finalizeChecks the mandatory details under § 14 German VAT Act (UStG), assigns the next number from the number range (without gaps), adopts the company master data as sender, sets the invoice, supply and due dates and locks the document (content hash, audit log). Missing details: 422 invoice_incomplete with details.problems.
Permission: invoices:write
Path parameters
idstringrequiredResource IDmax. 128 characters
Headers
Idempotency-KeystringUnique key (8–255 characters). Repeated requests with the same key return the same response for 24 h.max. 255 characters
Body (JSON) · InvoiceFinalize
confirmServiceDatebooleanWithout a date or period of supply: confirms that the supply was made on the invoice date (§ 14 (4) No. 6 UStG)issueDateReasonstringReason if the invoice date differs from the day of finalising (will be logged)max. 500 characters
Response 200 · Invoice
idstringrequiredmax. 128 charactersobject"invoice"requiredtype"invoice" | "credit_note" | "cancellation"requiredkind"standard" | "advance" | "final"requiredstatus"draft" | "open" | "partially_paid" | "paid" | "overdue" | "canceled"requirednumberstring | nullrequiredDocument number; assigned only on finalisingcontactIdstring | nullrequiredmax. 128 charactersrecipientDocumentRecipientrequirednamestringrequiredCompany or namemax. 160 charactersadditionstringAddress supplement, e.g. attn. Ms Mustermax. 160 charactersstreetstringrequiredmax. 160 characters · Default: ""zipCodestringrequiredmax. 10 characters · Default: ""citystringrequiredmax. 80 characters · Default: ""countrystringrequiredCountry code ISO 3166-1 alpha-2max. 2 characters · Default: "DE"emailstring (email)Invoice recipient (email)max. 254 charactersvatIdstringRecipient's VAT ID (required for reverse charge/intra-Community supply)leitwegIdstringLeitweg-ID (XRechnung to public authorities)max. 60 characterseinvoiceRecipientType"business" | "public_authority"E-invoice recipient profile (from the contact): public_authority requires a Leitweg-ID (ER-08)customerNumberstringCustomer number (assigned on finalisation)max. 40 characters
senderSenderSnapshot | nullrequiredSender snapshot (taken on finalising)companyNamestringrequiredownerNamestringlegalFormstringmanagingDirectorsstringstreetstringrequiredzipCodestringrequiredcitystringrequiredcountryCodestringrequiredphonestringemailstringwebsitestringtaxNumberstringvatIdstringsmallBusinessbooleanrequiredcommercialRegisterobjectcourtstringnumberstring
bankobjectaccountHolderstringibanstringbicstringbankNamestring
invoiceFooterstring
issueDatestring (date) | nullrequiredDate (YYYY-MM-DD)serviceDatestring (date) | nullrequiredDate (YYYY-MM-DD)servicePeriodServicePeriod | nullrequiredfromstring (date)requiredDate (YYYY-MM-DD)tostring (date)requiredDate (YYYY-MM-DD)
serviceDateSource"entered" | "period" | "confirmed_issue_date" | "recurring" | "not_applicable" | nullrequiredSource of the date of supply (ST-13): confirmed_issue_date = confirmed by the userissuanceInvoiceIssuance | nullrequiredEvidence of issue (from finalising, ST-14)finalizedAtstring (date-time)requiredServer time of finalisingserverDatestring (date)requiredCalendar day of finalising (Europe/Berlin)issueDatestring (date)requiredDate (YYYY-MM-DD)issueDateSource"finalize_day" | "entered"requiredfinalize_day = day of finalising, entered = entered in the draftdeviationDaysintegerrequiredIssue date minus finalising day in days (negative = earlier)-9007199254740991–9007199254740991reasonstring | nullrequiredReason for a differing issue datenumberstring | nullrequirednumberRangestringrequiredNumber range
dueDatestring (date) | nullrequiredDate (YYYY-MM-DD)paymentTermsDaysintegerrequired-9007199254740991–9007199254740991priceMode"net" | "gross"requiredtaxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"requiredTax treatment of the receipttaxNoticestring | nullrequiredMandatory notice (§ 19, § 13b, intra-Community supply …)taxCaseInvoiceTaxCase | nullrequiredTax case (tax assistant); saved at the latest when finalisingfactsobjectrequiredkind"goods" | "service" | "construction" | "property_service" | "electronic_service"requiredType of supplysmallBusinessbooleanrequiredcustomerCountrystringrequiredCountry of residence of the recipientmax. 2 characterscustomerIsBusinessbooleanrequiredRecipient is a business and receives the supply for its businesscustomerVatIdValidbooleanrequireda valid VAT ID of the recipient is availabledestinationCountrystring | nullSupply of goods: country of destinationmax. 2 characterspropertyCountrystring | nullService related to real estate: location of the propertymax. 2 charactersexemption"§ 4 Nr. 8 UStG" | "§ 4 Nr. 11 UStG" | "§ 4 Nr. 12 UStG" | "§ 4 Nr. 14 UStG" | "§ 4 Nr. 21 UStG" | "other" | nullVAT exemption without input VAT deduction
treatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"requiredTax treatment of the receiptplaceOfSupplystringrequiredPlace of supply (ISO country)legalBasisstringrequirednoticeVariantenum | nullrequiredCase variant of the mandatory notice (ST-03)Values: small_business, reverse_charge, reverse_charge_eu, intra_eu_supply, export, non_taxable, tax_exemptustvaKzstring | nullrequiredAdvance VAT return form field of the tax base (not for standard taxation)reportingArray<"ustva" | "zm" | "none">requiredconfidence"certain" | "likely" | "review"requiredassumedbooleanrequiredFacts assumed from the invoice data (not entered)reasonsArray<string>requiredwarningsArray<string>required
currency"EUR"requiredsubjectstringrequiredintroTextstringrequiredclosingTextstringrequiredreferencestringrequiredlinesArray<DocumentLine>requiredidstringstable line item ID (assigned by the server if empty)max. 40 characterstype"item" | "text" | "subtotal"Line item, plain text line or subtotalDefault: "item"articleIdstringReference to the article master datamax. 128 characterstitlestringrequiredmax. 300 charactersdescriptionstringmax. 5000 charactersquantitynumber-1000000–1000000 · Default: 1unitstringUnit, e.g. Stk, Std, pauschal (piece, hour, flat rate); UN/ECE Rec 20 for e-invoicing: modulemax. 20 charactersunitPriceCentsintegerAmount in cents-100000000000–100000000000 · Default: 0discountPercentnumber0–100taxRatenumberTax rate in per cent (19, 7, 0 …)0–100 · Default: 19totalCentsintegerAmount in cents-100000000000–100000000000servicePeriodobjectfromstring (date)requiredDate (YYYY-MM-DD)tostring (date)requiredDate (YYYY-MM-DD)
projectIdstringmax. 128 characterstimeEntryIdsArray<string>max. 128 characters
totalsDocumentTotalsrequirednetCentsintegerrequiredAmount in cents-100000000000–100000000000taxCentsintegerrequiredAmount in cents-100000000000–100000000000grossCentsintegerrequiredAmount in cents-100000000000–100000000000groupsArray<object>requiredtaxRatenumberrequiredcategorystringrequirednetCentsintegerrequiredAmount in cents-100000000000–100000000000taxCentsintegerrequiredAmount in cents-100000000000–100000000000grossCentsintegerrequiredAmount in cents-100000000000–100000000000
deductionsArray<InvoiceDeduction>requiredFinal invoice: advance payments actually received and deducted (ST-09)invoiceIdstringrequiredmax. 128 charactersnumberstringrequiredissueDatestring (date)requiredDate (YYYY-MM-DD)netCentsintegerrequiredAmount in cents-100000000000–100000000000taxCentsintegerrequiredAmount in cents-100000000000–100000000000grossCentsintegerrequiredAmount in cents-100000000000–100000000000groupsArray<object>requiredtaxRatenumberrequirednetCentsintegerrequiredAmount in cents-100000000000–100000000000taxCentsintegerrequiredAmount in cents-100000000000–100000000000
invoiceGrossCentsintegerInvoice amount of the progress invoice (ST-09)-100000000000–100000000000unpaidCentsintegerUnreceived remainder of the progress invoice – not deducted (ST-09)-100000000000–100000000000
amountDueCentsintegerrequiredAmount payable (gross less progress invoices)-100000000000–100000000000paidCentsintegerrequiredAmount in cents-100000000000–100000000000creditedCentsintegerrequiredreduced by invoice corrections (progress invoice: incl. the remainder settled with the final invoice)-100000000000–100000000000deductedCentsinteger | nullrequiredProgress invoice: amount received and deducted in the final invoice (ST-09)-100000000000–100000000000supersededCentsinteger | nullrequiredProgress invoice: unpaid remainder settled with the final invoice (ST-09)-100000000000–100000000000openCentsintegerrequiredAmount in cents-100000000000–100000000000relatedInvoiceIdstring | nullrequiredmax. 128 charactersadvanceInvoiceIdsArray<string>requiredmax. 128 charactersofferIdstring | nullrequiredmax. 128 charactersprojectIdstring | nullrequiredmax. 128 charactersrecurringInvoiceIdstring | nullrequiredmax. 128 characterscanceledByInvoiceIdstring | nullrequiredCancellation invoice for this invoicemax. 128 charactersdebtIdstring | nullrequiredDebt in dunning (after handover)max. 128 charactersshowGiroCodebooleanrequiredeinvoiceFormat"none" | "zugferd" | "xrechnung"requiredlanguage"de" | "en"requiredDocument language (fixed on finalisation)dispatchobjectrequiredcountintegerrequired-9007199254740991–9007199254740991lastChannel"email" | "post" | nullrequiredlastSentAtstring (date-time) | nullrequiredTimestamp (ISO 8601)
pdfobject | nullrequiredarchived PDF (after finalisation)sha256stringrequiredcreatedAtstring (date-time)requiredTimestamp (ISO 8601)
lockedbooleanrequiredlockedAtstring (date-time) | nullrequiredTimestamp (ISO 8601)paidAtstring (date-time) | nullrequiredTimestamp (ISO 8601)handedOverAtstring (date-time) | nullrequiredTimestamp (ISO 8601)createdAtstring (date-time)requiredTimestamp (ISO 8601)updatedAtstring (date-time)requiredTimestamp (ISO 8601)
curl -X POST 'https://www.debt-flow.io/api/v1/invoices/ID/finalize' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"confirmServiceDate": false,
"issueDateReason": "string"
}'{
"id": "string",
"object": "invoice",
"type": "invoice",
"kind": "standard",
"status": "draft",
"number": "string",
"contactId": "string",
"recipient": {
"name": "string",
"addition": "string",
"street": "",
"zipCode": "",
"city": "",
"country": "DE",
"email": "[email protected]",
"vatId": "string",
"leitwegId": "string",
"einvoiceRecipientType": "business",
"customerNumber": "string"
},
"sender": {
"companyName": "string",
"ownerName": "string",
"legalForm": "string",
"managingDirectors": "string",
"street": "string",
"zipCode": "string",
"city": "string",
"countryCode": "string",
"phone": "string",
"email": "string",
"website": "string",
"taxNumber": "string",
"vatId": "string",
"smallBusiness": false,
"commercialRegister": {
"court": "string",
"number": "string"
},
"bank": {
"accountHolder": "string",
"iban": "string",
"bic": "string",
"bankName": "string"
},
"invoiceFooter": "string"
},
"issueDate": "2026-11-01",
"serviceDate": "2026-11-01",
"servicePeriod": {
"from": "2026-11-01",
"to": "2026-11-01"
},
"serviceDateSource": "entered",
"issuance": {
"finalizedAt": "2026-11-01T09:30:00.000Z",
"serverDate": "2026-11-01",
"issueDate": "2026-11-01",
"issueDateSource": "finalize_day",
"deviationDays": 0,
"reason": "string",
"number": "string",
"numberRange": "string"
},
"dueDate": "2026-11-01",
"paymentTermsDays": 0,
"priceMode": "net",
"taxTreatment": "regular",
"taxNotice": "string",
"taxCase": {
"facts": {
"kind": "goods",
"smallBusiness": false,
"customerCountry": "string",
"customerIsBusiness": false,
"customerVatIdValid": false,
"destinationCountry": null,
"propertyCountry": null,
"exemption": null
},
"treatment": "regular",
"placeOfSupply": "string",
"legalBasis": "string",
"noticeVariant": "small_business",
"ustvaKz": "string",
"reporting": [
"ustva"
],
"confidence": "certain",
"assumed": false,
"reasons": [
"string"
],
"warnings": [
"string"
]
},
"currency": "EUR",
"subject": "string",
"introText": "string",
"closingText": "string",
"reference": "string",
"lines": [
{
"id": "string",
"type": "item",
"articleId": "string",
"title": "string",
"description": "string",
"quantity": 1,
"unit": "string",
"unitPriceCents": 0,
"discountPercent": 0,
"taxRate": 19,
"totalCents": 0,
"servicePeriod": {
"from": "2026-11-01",
"to": "2026-11-01"
},
"projectId": "string",
"timeEntryIds": [
"string"
]
}
],
"totals": {
"netCents": 0,
"taxCents": 0,
"grossCents": 0,
"groups": [
{
"taxRate": 0,
"category": "string",
"netCents": 0,
"taxCents": 0,
"grossCents": 0
}
]
},
"deductions": [
{
"invoiceId": "string",
"number": "string",
"issueDate": "2026-11-01",
"netCents": 0,
"taxCents": 0,
"grossCents": 0,
"groups": [
{
"taxRate": null,
"netCents": null,
"taxCents": null
}
],
"invoiceGrossCents": 0,
"unpaidCents": 0
}
],
"amountDueCents": 0,
"paidCents": 0,
"creditedCents": 0,
"deductedCents": 0,
"supersededCents": 0,
"openCents": 0,
"relatedInvoiceId": "string",
"advanceInvoiceIds": [
"string"
],
"offerId": "string",
"projectId": "string",
"recurringInvoiceId": "string",
"canceledByInvoiceId": "string",
"debtId": "string",
"showGiroCode": false,
"einvoiceFormat": "none",
"language": "de",
"dispatch": {
"count": 0,
"lastChannel": "email",
"lastSentAt": "2026-11-01T09:30:00.000Z"
},
"pdf": {
"sha256": "string",
"createdAt": "2026-11-01T09:30:00.000Z"
},
"locked": false,
"lockedAt": "2026-11-01T09:30:00.000Z",
"paidAt": "2026-11-01T09:30:00.000Z",
"handedOverAt": "2026-11-01T09:30:00.000Z",
"createdAt": "2026-11-01T09:30:00.000Z",
"updatedAt": "2026-11-01T09:30:00.000Z"
}/api/v1/invoices/{id}/hand-overCreates a debt (/debts) for the outstanding amount with a reference to the invoice; from then on the dunning run applies. Prerequisites: finalised, outstanding amount, contact assigned. Automatic via setting (collection.enabled).
Permission: invoices:write, debts:write
Path parameters
idstringrequiredResource IDmax. 128 characters
Headers
Idempotency-KeystringUnique key (8–255 characters). Repeated requests with the same key return the same response for 24 h.max. 255 characters
Response 200 · Invoice
idstringrequiredmax. 128 charactersobject"invoice"requiredtype"invoice" | "credit_note" | "cancellation"requiredkind"standard" | "advance" | "final"requiredstatus"draft" | "open" | "partially_paid" | "paid" | "overdue" | "canceled"requirednumberstring | nullrequiredDocument number; assigned only on finalisingcontactIdstring | nullrequiredmax. 128 charactersrecipientDocumentRecipientrequirednamestringrequiredCompany or namemax. 160 charactersadditionstringAddress supplement, e.g. attn. Ms Mustermax. 160 charactersstreetstringrequiredmax. 160 characters · Default: ""zipCodestringrequiredmax. 10 characters · Default: ""citystringrequiredmax. 80 characters · Default: ""countrystringrequiredCountry code ISO 3166-1 alpha-2max. 2 characters · Default: "DE"emailstring (email)Invoice recipient (email)max. 254 charactersvatIdstringRecipient's VAT ID (required for reverse charge/intra-Community supply)leitwegIdstringLeitweg-ID (XRechnung to public authorities)max. 60 characterseinvoiceRecipientType"business" | "public_authority"E-invoice recipient profile (from the contact): public_authority requires a Leitweg-ID (ER-08)customerNumberstringCustomer number (assigned on finalisation)max. 40 characters
senderSenderSnapshot | nullrequiredSender snapshot (taken on finalising)companyNamestringrequiredownerNamestringlegalFormstringmanagingDirectorsstringstreetstringrequiredzipCodestringrequiredcitystringrequiredcountryCodestringrequiredphonestringemailstringwebsitestringtaxNumberstringvatIdstringsmallBusinessbooleanrequiredcommercialRegisterobjectcourtstringnumberstring
bankobjectaccountHolderstringibanstringbicstringbankNamestring
invoiceFooterstring
issueDatestring (date) | nullrequiredDate (YYYY-MM-DD)serviceDatestring (date) | nullrequiredDate (YYYY-MM-DD)servicePeriodServicePeriod | nullrequiredfromstring (date)requiredDate (YYYY-MM-DD)tostring (date)requiredDate (YYYY-MM-DD)
serviceDateSource"entered" | "period" | "confirmed_issue_date" | "recurring" | "not_applicable" | nullrequiredSource of the date of supply (ST-13): confirmed_issue_date = confirmed by the userissuanceInvoiceIssuance | nullrequiredEvidence of issue (from finalising, ST-14)finalizedAtstring (date-time)requiredServer time of finalisingserverDatestring (date)requiredCalendar day of finalising (Europe/Berlin)issueDatestring (date)requiredDate (YYYY-MM-DD)issueDateSource"finalize_day" | "entered"requiredfinalize_day = day of finalising, entered = entered in the draftdeviationDaysintegerrequiredIssue date minus finalising day in days (negative = earlier)-9007199254740991–9007199254740991reasonstring | nullrequiredReason for a differing issue datenumberstring | nullrequirednumberRangestringrequiredNumber range
dueDatestring (date) | nullrequiredDate (YYYY-MM-DD)paymentTermsDaysintegerrequired-9007199254740991–9007199254740991priceMode"net" | "gross"requiredtaxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"requiredTax treatment of the receipttaxNoticestring | nullrequiredMandatory notice (§ 19, § 13b, intra-Community supply …)taxCaseInvoiceTaxCase | nullrequiredTax case (tax assistant); saved at the latest when finalisingfactsobjectrequiredkind"goods" | "service" | "construction" | "property_service" | "electronic_service"requiredType of supplysmallBusinessbooleanrequiredcustomerCountrystringrequiredCountry of residence of the recipientmax. 2 characterscustomerIsBusinessbooleanrequiredRecipient is a business and receives the supply for its businesscustomerVatIdValidbooleanrequireda valid VAT ID of the recipient is availabledestinationCountrystring | nullSupply of goods: country of destinationmax. 2 characterspropertyCountrystring | nullService related to real estate: location of the propertymax. 2 charactersexemption"§ 4 Nr. 8 UStG" | "§ 4 Nr. 11 UStG" | "§ 4 Nr. 12 UStG" | "§ 4 Nr. 14 UStG" | "§ 4 Nr. 21 UStG" | "other" | nullVAT exemption without input VAT deduction
treatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"requiredTax treatment of the receiptplaceOfSupplystringrequiredPlace of supply (ISO country)legalBasisstringrequirednoticeVariantenum | nullrequiredCase variant of the mandatory notice (ST-03)Values: small_business, reverse_charge, reverse_charge_eu, intra_eu_supply, export, non_taxable, tax_exemptustvaKzstring | nullrequiredAdvance VAT return form field of the tax base (not for standard taxation)reportingArray<"ustva" | "zm" | "none">requiredconfidence"certain" | "likely" | "review"requiredassumedbooleanrequiredFacts assumed from the invoice data (not entered)reasonsArray<string>requiredwarningsArray<string>required
currency"EUR"requiredsubjectstringrequiredintroTextstringrequiredclosingTextstringrequiredreferencestringrequiredlinesArray<DocumentLine>requiredidstringstable line item ID (assigned by the server if empty)max. 40 characterstype"item" | "text" | "subtotal"Line item, plain text line or subtotalDefault: "item"articleIdstringReference to the article master datamax. 128 characterstitlestringrequiredmax. 300 charactersdescriptionstringmax. 5000 charactersquantitynumber-1000000–1000000 · Default: 1unitstringUnit, e.g. Stk, Std, pauschal (piece, hour, flat rate); UN/ECE Rec 20 for e-invoicing: modulemax. 20 charactersunitPriceCentsintegerAmount in cents-100000000000–100000000000 · Default: 0discountPercentnumber0–100taxRatenumberTax rate in per cent (19, 7, 0 …)0–100 · Default: 19totalCentsintegerAmount in cents-100000000000–100000000000servicePeriodobjectfromstring (date)requiredDate (YYYY-MM-DD)tostring (date)requiredDate (YYYY-MM-DD)
projectIdstringmax. 128 characterstimeEntryIdsArray<string>max. 128 characters
totalsDocumentTotalsrequirednetCentsintegerrequiredAmount in cents-100000000000–100000000000taxCentsintegerrequiredAmount in cents-100000000000–100000000000grossCentsintegerrequiredAmount in cents-100000000000–100000000000groupsArray<object>requiredtaxRatenumberrequiredcategorystringrequirednetCentsintegerrequiredAmount in cents-100000000000–100000000000taxCentsintegerrequiredAmount in cents-100000000000–100000000000grossCentsintegerrequiredAmount in cents-100000000000–100000000000
deductionsArray<InvoiceDeduction>requiredFinal invoice: advance payments actually received and deducted (ST-09)invoiceIdstringrequiredmax. 128 charactersnumberstringrequiredissueDatestring (date)requiredDate (YYYY-MM-DD)netCentsintegerrequiredAmount in cents-100000000000–100000000000taxCentsintegerrequiredAmount in cents-100000000000–100000000000grossCentsintegerrequiredAmount in cents-100000000000–100000000000groupsArray<object>requiredtaxRatenumberrequirednetCentsintegerrequiredAmount in cents-100000000000–100000000000taxCentsintegerrequiredAmount in cents-100000000000–100000000000
invoiceGrossCentsintegerInvoice amount of the progress invoice (ST-09)-100000000000–100000000000unpaidCentsintegerUnreceived remainder of the progress invoice – not deducted (ST-09)-100000000000–100000000000
amountDueCentsintegerrequiredAmount payable (gross less progress invoices)-100000000000–100000000000paidCentsintegerrequiredAmount in cents-100000000000–100000000000creditedCentsintegerrequiredreduced by invoice corrections (progress invoice: incl. the remainder settled with the final invoice)-100000000000–100000000000deductedCentsinteger | nullrequiredProgress invoice: amount received and deducted in the final invoice (ST-09)-100000000000–100000000000supersededCentsinteger | nullrequiredProgress invoice: unpaid remainder settled with the final invoice (ST-09)-100000000000–100000000000openCentsintegerrequiredAmount in cents-100000000000–100000000000relatedInvoiceIdstring | nullrequiredmax. 128 charactersadvanceInvoiceIdsArray<string>requiredmax. 128 charactersofferIdstring | nullrequiredmax. 128 charactersprojectIdstring | nullrequiredmax. 128 charactersrecurringInvoiceIdstring | nullrequiredmax. 128 characterscanceledByInvoiceIdstring | nullrequiredCancellation invoice for this invoicemax. 128 charactersdebtIdstring | nullrequiredDebt in dunning (after handover)max. 128 charactersshowGiroCodebooleanrequiredeinvoiceFormat"none" | "zugferd" | "xrechnung"requiredlanguage"de" | "en"requiredDocument language (fixed on finalisation)dispatchobjectrequiredcountintegerrequired-9007199254740991–9007199254740991lastChannel"email" | "post" | nullrequiredlastSentAtstring (date-time) | nullrequiredTimestamp (ISO 8601)
pdfobject | nullrequiredarchived PDF (after finalisation)sha256stringrequiredcreatedAtstring (date-time)requiredTimestamp (ISO 8601)
lockedbooleanrequiredlockedAtstring (date-time) | nullrequiredTimestamp (ISO 8601)paidAtstring (date-time) | nullrequiredTimestamp (ISO 8601)handedOverAtstring (date-time) | nullrequiredTimestamp (ISO 8601)createdAtstring (date-time)requiredTimestamp (ISO 8601)updatedAtstring (date-time)requiredTimestamp (ISO 8601)
curl -X POST 'https://www.debt-flow.io/api/v1/invoices/ID/hand-over' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY"{
"id": "string",
"object": "invoice",
"type": "invoice",
"kind": "standard",
"status": "draft",
"number": "string",
"contactId": "string",
"recipient": {
"name": "string",
"addition": "string",
"street": "",
"zipCode": "",
"city": "",
"country": "DE",
"email": "[email protected]",
"vatId": "string",
"leitwegId": "string",
"einvoiceRecipientType": "business",
"customerNumber": "string"
},
"sender": {
"companyName": "string",
"ownerName": "string",
"legalForm": "string",
"managingDirectors": "string",
"street": "string",
"zipCode": "string",
"city": "string",
"countryCode": "string",
"phone": "string",
"email": "string",
"website": "string",
"taxNumber": "string",
"vatId": "string",
"smallBusiness": false,
"commercialRegister": {
"court": "string",
"number": "string"
},
"bank": {
"accountHolder": "string",
"iban": "string",
"bic": "string",
"bankName": "string"
},
"invoiceFooter": "string"
},
"issueDate": "2026-11-01",
"serviceDate": "2026-11-01",
"servicePeriod": {
"from": "2026-11-01",
"to": "2026-11-01"
},
"serviceDateSource": "entered",
"issuance": {
"finalizedAt": "2026-11-01T09:30:00.000Z",
"serverDate": "2026-11-01",
"issueDate": "2026-11-01",
"issueDateSource": "finalize_day",
"deviationDays": 0,
"reason": "string",
"number": "string",
"numberRange": "string"
},
"dueDate": "2026-11-01",
"paymentTermsDays": 0,
"priceMode": "net",
"taxTreatment": "regular",
"taxNotice": "string",
"taxCase": {
"facts": {
"kind": "goods",
"smallBusiness": false,
"customerCountry": "string",
"customerIsBusiness": false,
"customerVatIdValid": false,
"destinationCountry": null,
"propertyCountry": null,
"exemption": null
},
"treatment": "regular",
"placeOfSupply": "string",
"legalBasis": "string",
"noticeVariant": "small_business",
"ustvaKz": "string",
"reporting": [
"ustva"
],
"confidence": "certain",
"assumed": false,
"reasons": [
"string"
],
"warnings": [
"string"
]
},
"currency": "EUR",
"subject": "string",
"introText": "string",
"closingText": "string",
"reference": "string",
"lines": [
{
"id": "string",
"type": "item",
"articleId": "string",
"title": "string",
"description": "string",
"quantity": 1,
"unit": "string",
"unitPriceCents": 0,
"discountPercent": 0,
"taxRate": 19,
"totalCents": 0,
"servicePeriod": {
"from": "2026-11-01",
"to": "2026-11-01"
},
"projectId": "string",
"timeEntryIds": [
"string"
]
}
],
"totals": {
"netCents": 0,
"taxCents": 0,
"grossCents": 0,
"groups": [
{
"taxRate": 0,
"category": "string",
"netCents": 0,
"taxCents": 0,
"grossCents": 0
}
]
},
"deductions": [
{
"invoiceId": "string",
"number": "string",
"issueDate": "2026-11-01",
"netCents": 0,
"taxCents": 0,
"grossCents": 0,
"groups": [
{
"taxRate": null,
"netCents": null,
"taxCents": null
}
],
"invoiceGrossCents": 0,
"unpaidCents": 0
}
],
"amountDueCents": 0,
"paidCents": 0,
"creditedCents": 0,
"deductedCents": 0,
"supersededCents": 0,
"openCents": 0,
"relatedInvoiceId": "string",
"advanceInvoiceIds": [
"string"
],
"offerId": "string",
"projectId": "string",
"recurringInvoiceId": "string",
"canceledByInvoiceId": "string",
"debtId": "string",
"showGiroCode": false,
"einvoiceFormat": "none",
"language": "de",
"dispatch": {
"count": 0,
"lastChannel": "email",
"lastSentAt": "2026-11-01T09:30:00.000Z"
},
"pdf": {
"sha256": "string",
"createdAt": "2026-11-01T09:30:00.000Z"
},
"locked": false,
"lockedAt": "2026-11-01T09:30:00.000Z",
"paidAt": "2026-11-01T09:30:00.000Z",
"handedOverAt": "2026-11-01T09:30:00.000Z",
"createdAt": "2026-11-01T09:30:00.000Z",
"updatedAt": "2026-11-01T09:30:00.000Z"
}/api/v1/invoices/{id}/original-pdfOnly for imported, finalised legacy invoices (lexoffice, sevDesk, Papierkram, CSV). The PDF is archived unchanged (GoBD, hash chain) and then delivered under /invoices/{id}/pdf. An original that is already stored is not replaced (409 original_pdf_exists).
Permission: invoices:write
Path parameters
idstringrequiredResource IDmax. 128 characters
Body (multipart/form-data)
filestring (binary)requiredapplication/pdf, application/octet-stream, , max. 20480 KB
Response 200 · Invoice
idstringrequiredmax. 128 charactersobject"invoice"requiredtype"invoice" | "credit_note" | "cancellation"requiredkind"standard" | "advance" | "final"requiredstatus"draft" | "open" | "partially_paid" | "paid" | "overdue" | "canceled"requirednumberstring | nullrequiredDocument number; assigned only on finalisingcontactIdstring | nullrequiredmax. 128 charactersrecipientDocumentRecipientrequirednamestringrequiredCompany or namemax. 160 charactersadditionstringAddress supplement, e.g. attn. Ms Mustermax. 160 charactersstreetstringrequiredmax. 160 characters · Default: ""zipCodestringrequiredmax. 10 characters · Default: ""citystringrequiredmax. 80 characters · Default: ""countrystringrequiredCountry code ISO 3166-1 alpha-2max. 2 characters · Default: "DE"emailstring (email)Invoice recipient (email)max. 254 charactersvatIdstringRecipient's VAT ID (required for reverse charge/intra-Community supply)leitwegIdstringLeitweg-ID (XRechnung to public authorities)max. 60 characterseinvoiceRecipientType"business" | "public_authority"E-invoice recipient profile (from the contact): public_authority requires a Leitweg-ID (ER-08)customerNumberstringCustomer number (assigned on finalisation)max. 40 characters
senderSenderSnapshot | nullrequiredSender snapshot (taken on finalising)companyNamestringrequiredownerNamestringlegalFormstringmanagingDirectorsstringstreetstringrequiredzipCodestringrequiredcitystringrequiredcountryCodestringrequiredphonestringemailstringwebsitestringtaxNumberstringvatIdstringsmallBusinessbooleanrequiredcommercialRegisterobjectcourtstringnumberstring
bankobjectaccountHolderstringibanstringbicstringbankNamestring
invoiceFooterstring
issueDatestring (date) | nullrequiredDate (YYYY-MM-DD)serviceDatestring (date) | nullrequiredDate (YYYY-MM-DD)servicePeriodServicePeriod | nullrequiredfromstring (date)requiredDate (YYYY-MM-DD)tostring (date)requiredDate (YYYY-MM-DD)
serviceDateSource"entered" | "period" | "confirmed_issue_date" | "recurring" | "not_applicable" | nullrequiredSource of the date of supply (ST-13): confirmed_issue_date = confirmed by the userissuanceInvoiceIssuance | nullrequiredEvidence of issue (from finalising, ST-14)finalizedAtstring (date-time)requiredServer time of finalisingserverDatestring (date)requiredCalendar day of finalising (Europe/Berlin)issueDatestring (date)requiredDate (YYYY-MM-DD)issueDateSource"finalize_day" | "entered"requiredfinalize_day = day of finalising, entered = entered in the draftdeviationDaysintegerrequiredIssue date minus finalising day in days (negative = earlier)-9007199254740991–9007199254740991reasonstring | nullrequiredReason for a differing issue datenumberstring | nullrequirednumberRangestringrequiredNumber range
dueDatestring (date) | nullrequiredDate (YYYY-MM-DD)paymentTermsDaysintegerrequired-9007199254740991–9007199254740991priceMode"net" | "gross"requiredtaxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"requiredTax treatment of the receipttaxNoticestring | nullrequiredMandatory notice (§ 19, § 13b, intra-Community supply …)taxCaseInvoiceTaxCase | nullrequiredTax case (tax assistant); saved at the latest when finalisingfactsobjectrequiredkind"goods" | "service" | "construction" | "property_service" | "electronic_service"requiredType of supplysmallBusinessbooleanrequiredcustomerCountrystringrequiredCountry of residence of the recipientmax. 2 characterscustomerIsBusinessbooleanrequiredRecipient is a business and receives the supply for its businesscustomerVatIdValidbooleanrequireda valid VAT ID of the recipient is availabledestinationCountrystring | nullSupply of goods: country of destinationmax. 2 characterspropertyCountrystring | nullService related to real estate: location of the propertymax. 2 charactersexemption"§ 4 Nr. 8 UStG" | "§ 4 Nr. 11 UStG" | "§ 4 Nr. 12 UStG" | "§ 4 Nr. 14 UStG" | "§ 4 Nr. 21 UStG" | "other" | nullVAT exemption without input VAT deduction
treatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"requiredTax treatment of the receiptplaceOfSupplystringrequiredPlace of supply (ISO country)legalBasisstringrequirednoticeVariantenum | nullrequiredCase variant of the mandatory notice (ST-03)Values: small_business, reverse_charge, reverse_charge_eu, intra_eu_supply, export, non_taxable, tax_exemptustvaKzstring | nullrequiredAdvance VAT return form field of the tax base (not for standard taxation)reportingArray<"ustva" | "zm" | "none">requiredconfidence"certain" | "likely" | "review"requiredassumedbooleanrequiredFacts assumed from the invoice data (not entered)reasonsArray<string>requiredwarningsArray<string>required
currency"EUR"requiredsubjectstringrequiredintroTextstringrequiredclosingTextstringrequiredreferencestringrequiredlinesArray<DocumentLine>requiredidstringstable line item ID (assigned by the server if empty)max. 40 characterstype"item" | "text" | "subtotal"Line item, plain text line or subtotalDefault: "item"articleIdstringReference to the article master datamax. 128 characterstitlestringrequiredmax. 300 charactersdescriptionstringmax. 5000 charactersquantitynumber-1000000–1000000 · Default: 1unitstringUnit, e.g. Stk, Std, pauschal (piece, hour, flat rate); UN/ECE Rec 20 for e-invoicing: modulemax. 20 charactersunitPriceCentsintegerAmount in cents-100000000000–100000000000 · Default: 0discountPercentnumber0–100taxRatenumberTax rate in per cent (19, 7, 0 …)0–100 · Default: 19totalCentsintegerAmount in cents-100000000000–100000000000servicePeriodobjectfromstring (date)requiredDate (YYYY-MM-DD)tostring (date)requiredDate (YYYY-MM-DD)
projectIdstringmax. 128 characterstimeEntryIdsArray<string>max. 128 characters
totalsDocumentTotalsrequirednetCentsintegerrequiredAmount in cents-100000000000–100000000000taxCentsintegerrequiredAmount in cents-100000000000–100000000000grossCentsintegerrequiredAmount in cents-100000000000–100000000000groupsArray<object>requiredtaxRatenumberrequiredcategorystringrequirednetCentsintegerrequiredAmount in cents-100000000000–100000000000taxCentsintegerrequiredAmount in cents-100000000000–100000000000grossCentsintegerrequiredAmount in cents-100000000000–100000000000
deductionsArray<InvoiceDeduction>requiredFinal invoice: advance payments actually received and deducted (ST-09)invoiceIdstringrequiredmax. 128 charactersnumberstringrequiredissueDatestring (date)requiredDate (YYYY-MM-DD)netCentsintegerrequiredAmount in cents-100000000000–100000000000taxCentsintegerrequiredAmount in cents-100000000000–100000000000grossCentsintegerrequiredAmount in cents-100000000000–100000000000groupsArray<object>requiredtaxRatenumberrequirednetCentsintegerrequiredAmount in cents-100000000000–100000000000taxCentsintegerrequiredAmount in cents-100000000000–100000000000
invoiceGrossCentsintegerInvoice amount of the progress invoice (ST-09)-100000000000–100000000000unpaidCentsintegerUnreceived remainder of the progress invoice – not deducted (ST-09)-100000000000–100000000000
amountDueCentsintegerrequiredAmount payable (gross less progress invoices)-100000000000–100000000000paidCentsintegerrequiredAmount in cents-100000000000–100000000000creditedCentsintegerrequiredreduced by invoice corrections (progress invoice: incl. the remainder settled with the final invoice)-100000000000–100000000000deductedCentsinteger | nullrequiredProgress invoice: amount received and deducted in the final invoice (ST-09)-100000000000–100000000000supersededCentsinteger | nullrequiredProgress invoice: unpaid remainder settled with the final invoice (ST-09)-100000000000–100000000000openCentsintegerrequiredAmount in cents-100000000000–100000000000relatedInvoiceIdstring | nullrequiredmax. 128 charactersadvanceInvoiceIdsArray<string>requiredmax. 128 charactersofferIdstring | nullrequiredmax. 128 charactersprojectIdstring | nullrequiredmax. 128 charactersrecurringInvoiceIdstring | nullrequiredmax. 128 characterscanceledByInvoiceIdstring | nullrequiredCancellation invoice for this invoicemax. 128 charactersdebtIdstring | nullrequiredDebt in dunning (after handover)max. 128 charactersshowGiroCodebooleanrequiredeinvoiceFormat"none" | "zugferd" | "xrechnung"requiredlanguage"de" | "en"requiredDocument language (fixed on finalisation)dispatchobjectrequiredcountintegerrequired-9007199254740991–9007199254740991lastChannel"email" | "post" | nullrequiredlastSentAtstring (date-time) | nullrequiredTimestamp (ISO 8601)
pdfobject | nullrequiredarchived PDF (after finalisation)sha256stringrequiredcreatedAtstring (date-time)requiredTimestamp (ISO 8601)
lockedbooleanrequiredlockedAtstring (date-time) | nullrequiredTimestamp (ISO 8601)paidAtstring (date-time) | nullrequiredTimestamp (ISO 8601)handedOverAtstring (date-time) | nullrequiredTimestamp (ISO 8601)createdAtstring (date-time)requiredTimestamp (ISO 8601)updatedAtstring (date-time)requiredTimestamp (ISO 8601)
Possible errors: 400, 401, 403, 404, 409, 413, 415, 429, 500
curl -X POST 'https://www.debt-flow.io/api/v1/invoices/ID/original-pdf' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY" \
-F 'file=@file'{
"id": "string",
"object": "invoice",
"type": "invoice",
"kind": "standard",
"status": "draft",
"number": "string",
"contactId": "string",
"recipient": {
"name": "string",
"addition": "string",
"street": "",
"zipCode": "",
"city": "",
"country": "DE",
"email": "[email protected]",
"vatId": "string",
"leitwegId": "string",
"einvoiceRecipientType": "business",
"customerNumber": "string"
},
"sender": {
"companyName": "string",
"ownerName": "string",
"legalForm": "string",
"managingDirectors": "string",
"street": "string",
"zipCode": "string",
"city": "string",
"countryCode": "string",
"phone": "string",
"email": "string",
"website": "string",
"taxNumber": "string",
"vatId": "string",
"smallBusiness": false,
"commercialRegister": {
"court": "string",
"number": "string"
},
"bank": {
"accountHolder": "string",
"iban": "string",
"bic": "string",
"bankName": "string"
},
"invoiceFooter": "string"
},
"issueDate": "2026-11-01",
"serviceDate": "2026-11-01",
"servicePeriod": {
"from": "2026-11-01",
"to": "2026-11-01"
},
"serviceDateSource": "entered",
"issuance": {
"finalizedAt": "2026-11-01T09:30:00.000Z",
"serverDate": "2026-11-01",
"issueDate": "2026-11-01",
"issueDateSource": "finalize_day",
"deviationDays": 0,
"reason": "string",
"number": "string",
"numberRange": "string"
},
"dueDate": "2026-11-01",
"paymentTermsDays": 0,
"priceMode": "net",
"taxTreatment": "regular",
"taxNotice": "string",
"taxCase": {
"facts": {
"kind": "goods",
"smallBusiness": false,
"customerCountry": "string",
"customerIsBusiness": false,
"customerVatIdValid": false,
"destinationCountry": null,
"propertyCountry": null,
"exemption": null
},
"treatment": "regular",
"placeOfSupply": "string",
"legalBasis": "string",
"noticeVariant": "small_business",
"ustvaKz": "string",
"reporting": [
"ustva"
],
"confidence": "certain",
"assumed": false,
"reasons": [
"string"
],
"warnings": [
"string"
]
},
"currency": "EUR",
"subject": "string",
"introText": "string",
"closingText": "string",
"reference": "string",
"lines": [
{
"id": "string",
"type": "item",
"articleId": "string",
"title": "string",
"description": "string",
"quantity": 1,
"unit": "string",
"unitPriceCents": 0,
"discountPercent": 0,
"taxRate": 19,
"totalCents": 0,
"servicePeriod": {
"from": "2026-11-01",
"to": "2026-11-01"
},
"projectId": "string",
"timeEntryIds": [
"string"
]
}
],
"totals": {
"netCents": 0,
"taxCents": 0,
"grossCents": 0,
"groups": [
{
"taxRate": 0,
"category": "string",
"netCents": 0,
"taxCents": 0,
"grossCents": 0
}
]
},
"deductions": [
{
"invoiceId": "string",
"number": "string",
"issueDate": "2026-11-01",
"netCents": 0,
"taxCents": 0,
"grossCents": 0,
"groups": [
{
"taxRate": null,
"netCents": null,
"taxCents": null
}
],
"invoiceGrossCents": 0,
"unpaidCents": 0
}
],
"amountDueCents": 0,
"paidCents": 0,
"creditedCents": 0,
"deductedCents": 0,
"supersededCents": 0,
"openCents": 0,
"relatedInvoiceId": "string",
"advanceInvoiceIds": [
"string"
],
"offerId": "string",
"projectId": "string",
"recurringInvoiceId": "string",
"canceledByInvoiceId": "string",
"debtId": "string",
"showGiroCode": false,
"einvoiceFormat": "none",
"language": "de",
"dispatch": {
"count": 0,
"lastChannel": "email",
"lastSentAt": "2026-11-01T09:30:00.000Z"
},
"pdf": {
"sha256": "string",
"createdAt": "2026-11-01T09:30:00.000Z"
},
"locked": false,
"lockedAt": "2026-11-01T09:30:00.000Z",
"paidAt": "2026-11-01T09:30:00.000Z",
"handedOverAt": "2026-11-01T09:30:00.000Z",
"createdAt": "2026-11-01T09:30:00.000Z",
"updatedAt": "2026-11-01T09:30:00.000Z"
}/api/v1/invoices/{id}/paymentsFor credit notes and cancellation invoices: refunds to the customer.
Permission: invoices:read
Path parameters
idstringrequiredResource IDmax. 128 characters
Query parameters
limitintegerNumber of entries (1–100)1–100 · Default: 25cursorstring`nextCursor` of the previous pagemax. 500 characters
Response 200
object"list"requireddataArray<InvoicePayment>requiredidstringrequiredmax. 128 charactersinvoiceIdstringrequiredmax. 128 charactersamountCentsintegerrequiredAmount in cents-100000000000–100000000000datestring (date)requiredDate (YYYY-MM-DD)method"bank" | "cash" | "stripe" | "paypal" | "offset" | "other"requiredbankTransactionIdstring | nullrequiredmax. 128 charactersnotestring | nullrequiredcreatedAtstring (date-time)requiredTimestamp (ISO 8601)
hasMorebooleanrequirednextCursorstring | nullrequired
curl 'https://www.debt-flow.io/api/v1/invoices/ID/payments' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY"{
"object": "list",
"data": [
{
"id": "string",
"invoiceId": "string",
"amountCents": 0,
"date": "2026-11-01",
"method": "bank",
"bankTransactionId": "string",
"note": "string",
"createdAt": "2026-11-01T09:30:00.000Z"
}
],
"hasMore": false,
"nextCursor": "string"
}/api/v1/invoices/{id}/paymentsRecords an incoming payment and recalculates the outstanding amount and status (partially paid/paid). Amounts exceeding the outstanding amount: 422 overpayment. Triggers invoice.partially_paid or invoice.paid respectively.
Permission: invoices:write
Path parameters
idstringrequiredResource IDmax. 128 characters
Headers
Idempotency-KeystringUnique key (8–255 characters). Repeated requests with the same key return the same response for 24 h.max. 255 characters
Body (JSON) · InvoicePaymentCreate
amountCentsintegerrequiredAmount in cents0–100000000000datestring (date)requiredDate (YYYY-MM-DD)method"bank" | "cash" | "stripe" | "paypal" | "offset" | "other"Default: "bank"bankTransactionIdstringmax. 128 charactersnotestringmax. 500 characters
Response 201 · InvoicePaymentResult
paymentInvoicePaymentrequiredidstringrequiredmax. 128 charactersinvoiceIdstringrequiredmax. 128 charactersamountCentsintegerrequiredAmount in cents-100000000000–100000000000datestring (date)requiredDate (YYYY-MM-DD)method"bank" | "cash" | "stripe" | "paypal" | "offset" | "other"requiredbankTransactionIdstring | nullrequiredmax. 128 charactersnotestring | nullrequiredcreatedAtstring (date-time)requiredTimestamp (ISO 8601)
invoiceInvoicerequiredidstringrequiredmax. 128 charactersobject"invoice"requiredtype"invoice" | "credit_note" | "cancellation"requiredkind"standard" | "advance" | "final"requiredstatus"draft" | "open" | "partially_paid" | "paid" | "overdue" | "canceled"requirednumberstring | nullrequiredDocument number; assigned only on finalisingcontactIdstring | nullrequiredmax. 128 charactersrecipientDocumentRecipientrequirednamestringrequiredCompany or namemax. 160 charactersadditionstringAddress supplement, e.g. attn. Ms Mustermax. 160 charactersstreetstringrequiredmax. 160 characters · Default: ""zipCodestringrequiredmax. 10 characters · Default: ""citystringrequiredmax. 80 characters · Default: ""countrystringrequiredCountry code ISO 3166-1 alpha-2max. 2 characters · Default: "DE"emailstring (email)Invoice recipient (email)max. 254 charactersvatIdstringRecipient's VAT ID (required for reverse charge/intra-Community supply)leitwegIdstringLeitweg-ID (XRechnung to public authorities)max. 60 characterseinvoiceRecipientType"business" | "public_authority"E-invoice recipient profile (from the contact): public_authority requires a Leitweg-ID (ER-08)customerNumberstringCustomer number (assigned on finalisation)max. 40 characters
senderSenderSnapshot | nullrequiredSender snapshot (taken on finalising)companyNamestringrequiredownerNamestringlegalFormstringmanagingDirectorsstringstreetstringrequiredzipCodestringrequiredcitystringrequiredcountryCodestringrequiredphonestringemailstringwebsitestringtaxNumberstringvatIdstringsmallBusinessbooleanrequiredcommercialRegisterobjectbankobjectinvoiceFooterstring
issueDatestring (date) | nullrequiredDate (YYYY-MM-DD)serviceDatestring (date) | nullrequiredDate (YYYY-MM-DD)servicePeriodServicePeriod | nullrequiredfromstring (date)requiredDate (YYYY-MM-DD)tostring (date)requiredDate (YYYY-MM-DD)
serviceDateSource"entered" | "period" | "confirmed_issue_date" | "recurring" | "not_applicable" | nullrequiredSource of the date of supply (ST-13): confirmed_issue_date = confirmed by the userissuanceInvoiceIssuance | nullrequiredEvidence of issue (from finalising, ST-14)finalizedAtstring (date-time)requiredServer time of finalisingserverDatestring (date)requiredCalendar day of finalising (Europe/Berlin)issueDatestring (date)requiredDate (YYYY-MM-DD)issueDateSource"finalize_day" | "entered"requiredfinalize_day = day of finalising, entered = entered in the draftdeviationDaysintegerrequiredIssue date minus finalising day in days (negative = earlier)-9007199254740991–9007199254740991reasonstring | nullrequiredReason for a differing issue datenumberstring | nullrequirednumberRangestringrequiredNumber range
dueDatestring (date) | nullrequiredDate (YYYY-MM-DD)paymentTermsDaysintegerrequired-9007199254740991–9007199254740991priceMode"net" | "gross"requiredtaxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"requiredTax treatment of the receipttaxNoticestring | nullrequiredMandatory notice (§ 19, § 13b, intra-Community supply …)taxCaseInvoiceTaxCase | nullrequiredTax case (tax assistant); saved at the latest when finalisingfactsobjectrequiredtreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"requiredTax treatment of the receiptplaceOfSupplystringrequiredPlace of supply (ISO country)legalBasisstringrequirednoticeVariantenum | nullrequiredCase variant of the mandatory notice (ST-03)Values: small_business, reverse_charge, reverse_charge_eu, intra_eu_supply, export, non_taxable, tax_exemptustvaKzstring | nullrequiredAdvance VAT return form field of the tax base (not for standard taxation)reportingArray<"ustva" | "zm" | "none">requiredconfidence"certain" | "likely" | "review"requiredassumedbooleanrequiredFacts assumed from the invoice data (not entered)reasonsArray<string>requiredwarningsArray<string>required
currency"EUR"requiredsubjectstringrequiredintroTextstringrequiredclosingTextstringrequiredreferencestringrequiredlinesArray<DocumentLine>requiredidstringstable line item ID (assigned by the server if empty)max. 40 characterstype"item" | "text" | "subtotal"Line item, plain text line or subtotalDefault: "item"articleIdstringReference to the article master datamax. 128 characterstitlestringrequiredmax. 300 charactersdescriptionstringmax. 5000 charactersquantitynumber-1000000–1000000 · Default: 1unitstringUnit, e.g. Stk, Std, pauschal (piece, hour, flat rate); UN/ECE Rec 20 for e-invoicing: modulemax. 20 charactersunitPriceCentsintegerAmount in cents-100000000000–100000000000 · Default: 0discountPercentnumber0–100taxRatenumberTax rate in per cent (19, 7, 0 …)0–100 · Default: 19totalCentsintegerAmount in cents-100000000000–100000000000servicePeriodobjectprojectIdstringmax. 128 characterstimeEntryIdsArray<string>max. 128 characters
totalsDocumentTotalsrequirednetCentsintegerrequiredAmount in cents-100000000000–100000000000taxCentsintegerrequiredAmount in cents-100000000000–100000000000grossCentsintegerrequiredAmount in cents-100000000000–100000000000groupsArray<object>required
deductionsArray<InvoiceDeduction>requiredFinal invoice: advance payments actually received and deducted (ST-09)invoiceIdstringrequiredmax. 128 charactersnumberstringrequiredissueDatestring (date)requiredDate (YYYY-MM-DD)netCentsintegerrequiredAmount in cents-100000000000–100000000000taxCentsintegerrequiredAmount in cents-100000000000–100000000000grossCentsintegerrequiredAmount in cents-100000000000–100000000000groupsArray<object>requiredinvoiceGrossCentsintegerInvoice amount of the progress invoice (ST-09)-100000000000–100000000000unpaidCentsintegerUnreceived remainder of the progress invoice – not deducted (ST-09)-100000000000–100000000000
amountDueCentsintegerrequiredAmount payable (gross less progress invoices)-100000000000–100000000000paidCentsintegerrequiredAmount in cents-100000000000–100000000000creditedCentsintegerrequiredreduced by invoice corrections (progress invoice: incl. the remainder settled with the final invoice)-100000000000–100000000000deductedCentsinteger | nullrequiredProgress invoice: amount received and deducted in the final invoice (ST-09)-100000000000–100000000000supersededCentsinteger | nullrequiredProgress invoice: unpaid remainder settled with the final invoice (ST-09)-100000000000–100000000000openCentsintegerrequiredAmount in cents-100000000000–100000000000relatedInvoiceIdstring | nullrequiredmax. 128 charactersadvanceInvoiceIdsArray<string>requiredmax. 128 charactersofferIdstring | nullrequiredmax. 128 charactersprojectIdstring | nullrequiredmax. 128 charactersrecurringInvoiceIdstring | nullrequiredmax. 128 characterscanceledByInvoiceIdstring | nullrequiredCancellation invoice for this invoicemax. 128 charactersdebtIdstring | nullrequiredDebt in dunning (after handover)max. 128 charactersshowGiroCodebooleanrequiredeinvoiceFormat"none" | "zugferd" | "xrechnung"requiredlanguage"de" | "en"requiredDocument language (fixed on finalisation)dispatchobjectrequiredcountintegerrequired-9007199254740991–9007199254740991lastChannel"email" | "post" | nullrequiredlastSentAtstring (date-time) | nullrequiredTimestamp (ISO 8601)
pdfobject | nullrequiredarchived PDF (after finalisation)sha256stringrequiredcreatedAtstring (date-time)requiredTimestamp (ISO 8601)
lockedbooleanrequiredlockedAtstring (date-time) | nullrequiredTimestamp (ISO 8601)paidAtstring (date-time) | nullrequiredTimestamp (ISO 8601)handedOverAtstring (date-time) | nullrequiredTimestamp (ISO 8601)createdAtstring (date-time)requiredTimestamp (ISO 8601)updatedAtstring (date-time)requiredTimestamp (ISO 8601)
curl -X POST 'https://www.debt-flow.io/api/v1/invoices/ID/payments' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"amountCents": 0,
"date": "2026-11-01",
"method": "bank",
"bankTransactionId": "string",
"note": "string"
}'{
"payment": {
"id": "string",
"invoiceId": "string",
"amountCents": 0,
"date": "2026-11-01",
"method": "bank",
"bankTransactionId": "string",
"note": "string",
"createdAt": "2026-11-01T09:30:00.000Z"
},
"invoice": {
"id": "string",
"object": "invoice",
"type": "invoice",
"kind": "standard",
"status": "draft",
"number": "string",
"contactId": "string",
"recipient": {
"name": "string",
"addition": "string",
"street": "",
"zipCode": "",
"city": "",
"country": "DE",
"email": "[email protected]",
"vatId": "string",
"leitwegId": "string",
"einvoiceRecipientType": "business",
"customerNumber": "string"
},
"sender": {
"companyName": null,
"ownerName": null,
"legalForm": null,
"managingDirectors": null,
"street": null,
"zipCode": null,
"city": null,
"countryCode": null,
"phone": null,
"email": null,
"website": null,
"taxNumber": null,
"vatId": null,
"smallBusiness": null,
"commercialRegister": null,
"bank": null,
"invoiceFooter": null
},
"issueDate": "2026-11-01",
"serviceDate": "2026-11-01",
"servicePeriod": {
"from": null,
"to": null
},
"serviceDateSource": "entered",
"issuance": {
"finalizedAt": null,
"serverDate": null,
"issueDate": null,
"issueDateSource": null,
"deviationDays": null,
"reason": null,
"number": null,
"numberRange": null
},
"dueDate": "2026-11-01",
"paymentTermsDays": 0,
"priceMode": "net",
"taxTreatment": "regular",
"taxNotice": "string",
"taxCase": {
"facts": null,
"treatment": null,
"placeOfSupply": null,
"legalBasis": null,
"noticeVariant": null,
"ustvaKz": null,
"reporting": null,
"confidence": null,
"assumed": null,
"reasons": null,
"warnings": null
},
"currency": "EUR",
"subject": "string",
"introText": "string",
"closingText": "string",
"reference": "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
]
},
"deductions": [
{
"invoiceId": null,
"number": null,
"issueDate": null,
"netCents": null,
"taxCents": null,
"grossCents": null,
"groups": null,
"invoiceGrossCents": null,
"unpaidCents": null
}
],
"amountDueCents": 0,
"paidCents": 0,
"creditedCents": 0,
"deductedCents": 0,
"supersededCents": 0,
"openCents": 0,
"relatedInvoiceId": "string",
"advanceInvoiceIds": [
"string"
],
"offerId": "string",
"projectId": "string",
"recurringInvoiceId": "string",
"canceledByInvoiceId": "string",
"debtId": "string",
"showGiroCode": false,
"einvoiceFormat": "none",
"language": "de",
"dispatch": {
"count": 0,
"lastChannel": "email",
"lastSentAt": "2026-11-01T09:30:00.000Z"
},
"pdf": {
"sha256": "string",
"createdAt": "2026-11-01T09:30:00.000Z"
},
"locked": false,
"lockedAt": "2026-11-01T09:30:00.000Z",
"paidAt": "2026-11-01T09:30:00.000Z",
"handedOverAt": "2026-11-01T09:30:00.000Z",
"createdAt": "2026-11-01T09:30:00.000Z",
"updatedAt": "2026-11-01T09:30:00.000Z"
}
}/api/v1/invoices/{id}/payments/{paymentId}Removes a payment recorded in error (logged) and returns the invoice with its recalculated status.
Permission: invoices:write
Path parameters
idstringrequiredmax. 128 characterspaymentIdstringrequiredmax. 128 characters
Response 200 · Invoice
idstringrequiredmax. 128 charactersobject"invoice"requiredtype"invoice" | "credit_note" | "cancellation"requiredkind"standard" | "advance" | "final"requiredstatus"draft" | "open" | "partially_paid" | "paid" | "overdue" | "canceled"requirednumberstring | nullrequiredDocument number; assigned only on finalisingcontactIdstring | nullrequiredmax. 128 charactersrecipientDocumentRecipientrequirednamestringrequiredCompany or namemax. 160 charactersadditionstringAddress supplement, e.g. attn. Ms Mustermax. 160 charactersstreetstringrequiredmax. 160 characters · Default: ""zipCodestringrequiredmax. 10 characters · Default: ""citystringrequiredmax. 80 characters · Default: ""countrystringrequiredCountry code ISO 3166-1 alpha-2max. 2 characters · Default: "DE"emailstring (email)Invoice recipient (email)max. 254 charactersvatIdstringRecipient's VAT ID (required for reverse charge/intra-Community supply)leitwegIdstringLeitweg-ID (XRechnung to public authorities)max. 60 characterseinvoiceRecipientType"business" | "public_authority"E-invoice recipient profile (from the contact): public_authority requires a Leitweg-ID (ER-08)customerNumberstringCustomer number (assigned on finalisation)max. 40 characters
senderSenderSnapshot | nullrequiredSender snapshot (taken on finalising)companyNamestringrequiredownerNamestringlegalFormstringmanagingDirectorsstringstreetstringrequiredzipCodestringrequiredcitystringrequiredcountryCodestringrequiredphonestringemailstringwebsitestringtaxNumberstringvatIdstringsmallBusinessbooleanrequiredcommercialRegisterobjectcourtstringnumberstring
bankobjectaccountHolderstringibanstringbicstringbankNamestring
invoiceFooterstring
issueDatestring (date) | nullrequiredDate (YYYY-MM-DD)serviceDatestring (date) | nullrequiredDate (YYYY-MM-DD)servicePeriodServicePeriod | nullrequiredfromstring (date)requiredDate (YYYY-MM-DD)tostring (date)requiredDate (YYYY-MM-DD)
serviceDateSource"entered" | "period" | "confirmed_issue_date" | "recurring" | "not_applicable" | nullrequiredSource of the date of supply (ST-13): confirmed_issue_date = confirmed by the userissuanceInvoiceIssuance | nullrequiredEvidence of issue (from finalising, ST-14)finalizedAtstring (date-time)requiredServer time of finalisingserverDatestring (date)requiredCalendar day of finalising (Europe/Berlin)issueDatestring (date)requiredDate (YYYY-MM-DD)issueDateSource"finalize_day" | "entered"requiredfinalize_day = day of finalising, entered = entered in the draftdeviationDaysintegerrequiredIssue date minus finalising day in days (negative = earlier)-9007199254740991–9007199254740991reasonstring | nullrequiredReason for a differing issue datenumberstring | nullrequirednumberRangestringrequiredNumber range
dueDatestring (date) | nullrequiredDate (YYYY-MM-DD)paymentTermsDaysintegerrequired-9007199254740991–9007199254740991priceMode"net" | "gross"requiredtaxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"requiredTax treatment of the receipttaxNoticestring | nullrequiredMandatory notice (§ 19, § 13b, intra-Community supply …)taxCaseInvoiceTaxCase | nullrequiredTax case (tax assistant); saved at the latest when finalisingfactsobjectrequiredkind"goods" | "service" | "construction" | "property_service" | "electronic_service"requiredType of supplysmallBusinessbooleanrequiredcustomerCountrystringrequiredCountry of residence of the recipientmax. 2 characterscustomerIsBusinessbooleanrequiredRecipient is a business and receives the supply for its businesscustomerVatIdValidbooleanrequireda valid VAT ID of the recipient is availabledestinationCountrystring | nullSupply of goods: country of destinationmax. 2 characterspropertyCountrystring | nullService related to real estate: location of the propertymax. 2 charactersexemption"§ 4 Nr. 8 UStG" | "§ 4 Nr. 11 UStG" | "§ 4 Nr. 12 UStG" | "§ 4 Nr. 14 UStG" | "§ 4 Nr. 21 UStG" | "other" | nullVAT exemption without input VAT deduction
treatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"requiredTax treatment of the receiptplaceOfSupplystringrequiredPlace of supply (ISO country)legalBasisstringrequirednoticeVariantenum | nullrequiredCase variant of the mandatory notice (ST-03)Values: small_business, reverse_charge, reverse_charge_eu, intra_eu_supply, export, non_taxable, tax_exemptustvaKzstring | nullrequiredAdvance VAT return form field of the tax base (not for standard taxation)reportingArray<"ustva" | "zm" | "none">requiredconfidence"certain" | "likely" | "review"requiredassumedbooleanrequiredFacts assumed from the invoice data (not entered)reasonsArray<string>requiredwarningsArray<string>required
currency"EUR"requiredsubjectstringrequiredintroTextstringrequiredclosingTextstringrequiredreferencestringrequiredlinesArray<DocumentLine>requiredidstringstable line item ID (assigned by the server if empty)max. 40 characterstype"item" | "text" | "subtotal"Line item, plain text line or subtotalDefault: "item"articleIdstringReference to the article master datamax. 128 characterstitlestringrequiredmax. 300 charactersdescriptionstringmax. 5000 charactersquantitynumber-1000000–1000000 · Default: 1unitstringUnit, e.g. Stk, Std, pauschal (piece, hour, flat rate); UN/ECE Rec 20 for e-invoicing: modulemax. 20 charactersunitPriceCentsintegerAmount in cents-100000000000–100000000000 · Default: 0discountPercentnumber0–100taxRatenumberTax rate in per cent (19, 7, 0 …)0–100 · Default: 19totalCentsintegerAmount in cents-100000000000–100000000000servicePeriodobjectfromstring (date)requiredDate (YYYY-MM-DD)tostring (date)requiredDate (YYYY-MM-DD)
projectIdstringmax. 128 characterstimeEntryIdsArray<string>max. 128 characters
totalsDocumentTotalsrequirednetCentsintegerrequiredAmount in cents-100000000000–100000000000taxCentsintegerrequiredAmount in cents-100000000000–100000000000grossCentsintegerrequiredAmount in cents-100000000000–100000000000groupsArray<object>requiredtaxRatenumberrequiredcategorystringrequirednetCentsintegerrequiredAmount in cents-100000000000–100000000000taxCentsintegerrequiredAmount in cents-100000000000–100000000000grossCentsintegerrequiredAmount in cents-100000000000–100000000000
deductionsArray<InvoiceDeduction>requiredFinal invoice: advance payments actually received and deducted (ST-09)invoiceIdstringrequiredmax. 128 charactersnumberstringrequiredissueDatestring (date)requiredDate (YYYY-MM-DD)netCentsintegerrequiredAmount in cents-100000000000–100000000000taxCentsintegerrequiredAmount in cents-100000000000–100000000000grossCentsintegerrequiredAmount in cents-100000000000–100000000000groupsArray<object>requiredtaxRatenumberrequirednetCentsintegerrequiredAmount in cents-100000000000–100000000000taxCentsintegerrequiredAmount in cents-100000000000–100000000000
invoiceGrossCentsintegerInvoice amount of the progress invoice (ST-09)-100000000000–100000000000unpaidCentsintegerUnreceived remainder of the progress invoice – not deducted (ST-09)-100000000000–100000000000
amountDueCentsintegerrequiredAmount payable (gross less progress invoices)-100000000000–100000000000paidCentsintegerrequiredAmount in cents-100000000000–100000000000creditedCentsintegerrequiredreduced by invoice corrections (progress invoice: incl. the remainder settled with the final invoice)-100000000000–100000000000deductedCentsinteger | nullrequiredProgress invoice: amount received and deducted in the final invoice (ST-09)-100000000000–100000000000supersededCentsinteger | nullrequiredProgress invoice: unpaid remainder settled with the final invoice (ST-09)-100000000000–100000000000openCentsintegerrequiredAmount in cents-100000000000–100000000000relatedInvoiceIdstring | nullrequiredmax. 128 charactersadvanceInvoiceIdsArray<string>requiredmax. 128 charactersofferIdstring | nullrequiredmax. 128 charactersprojectIdstring | nullrequiredmax. 128 charactersrecurringInvoiceIdstring | nullrequiredmax. 128 characterscanceledByInvoiceIdstring | nullrequiredCancellation invoice for this invoicemax. 128 charactersdebtIdstring | nullrequiredDebt in dunning (after handover)max. 128 charactersshowGiroCodebooleanrequiredeinvoiceFormat"none" | "zugferd" | "xrechnung"requiredlanguage"de" | "en"requiredDocument language (fixed on finalisation)dispatchobjectrequiredcountintegerrequired-9007199254740991–9007199254740991lastChannel"email" | "post" | nullrequiredlastSentAtstring (date-time) | nullrequiredTimestamp (ISO 8601)
pdfobject | nullrequiredarchived PDF (after finalisation)sha256stringrequiredcreatedAtstring (date-time)requiredTimestamp (ISO 8601)
lockedbooleanrequiredlockedAtstring (date-time) | nullrequiredTimestamp (ISO 8601)paidAtstring (date-time) | nullrequiredTimestamp (ISO 8601)handedOverAtstring (date-time) | nullrequiredTimestamp (ISO 8601)createdAtstring (date-time)requiredTimestamp (ISO 8601)updatedAtstring (date-time)requiredTimestamp (ISO 8601)
curl -X DELETE 'https://www.debt-flow.io/api/v1/invoices/ID/payments/PAYMENTID' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY"{
"id": "string",
"object": "invoice",
"type": "invoice",
"kind": "standard",
"status": "draft",
"number": "string",
"contactId": "string",
"recipient": {
"name": "string",
"addition": "string",
"street": "",
"zipCode": "",
"city": "",
"country": "DE",
"email": "[email protected]",
"vatId": "string",
"leitwegId": "string",
"einvoiceRecipientType": "business",
"customerNumber": "string"
},
"sender": {
"companyName": "string",
"ownerName": "string",
"legalForm": "string",
"managingDirectors": "string",
"street": "string",
"zipCode": "string",
"city": "string",
"countryCode": "string",
"phone": "string",
"email": "string",
"website": "string",
"taxNumber": "string",
"vatId": "string",
"smallBusiness": false,
"commercialRegister": {
"court": "string",
"number": "string"
},
"bank": {
"accountHolder": "string",
"iban": "string",
"bic": "string",
"bankName": "string"
},
"invoiceFooter": "string"
},
"issueDate": "2026-11-01",
"serviceDate": "2026-11-01",
"servicePeriod": {
"from": "2026-11-01",
"to": "2026-11-01"
},
"serviceDateSource": "entered",
"issuance": {
"finalizedAt": "2026-11-01T09:30:00.000Z",
"serverDate": "2026-11-01",
"issueDate": "2026-11-01",
"issueDateSource": "finalize_day",
"deviationDays": 0,
"reason": "string",
"number": "string",
"numberRange": "string"
},
"dueDate": "2026-11-01",
"paymentTermsDays": 0,
"priceMode": "net",
"taxTreatment": "regular",
"taxNotice": "string",
"taxCase": {
"facts": {
"kind": "goods",
"smallBusiness": false,
"customerCountry": "string",
"customerIsBusiness": false,
"customerVatIdValid": false,
"destinationCountry": null,
"propertyCountry": null,
"exemption": null
},
"treatment": "regular",
"placeOfSupply": "string",
"legalBasis": "string",
"noticeVariant": "small_business",
"ustvaKz": "string",
"reporting": [
"ustva"
],
"confidence": "certain",
"assumed": false,
"reasons": [
"string"
],
"warnings": [
"string"
]
},
"currency": "EUR",
"subject": "string",
"introText": "string",
"closingText": "string",
"reference": "string",
"lines": [
{
"id": "string",
"type": "item",
"articleId": "string",
"title": "string",
"description": "string",
"quantity": 1,
"unit": "string",
"unitPriceCents": 0,
"discountPercent": 0,
"taxRate": 19,
"totalCents": 0,
"servicePeriod": {
"from": "2026-11-01",
"to": "2026-11-01"
},
"projectId": "string",
"timeEntryIds": [
"string"
]
}
],
"totals": {
"netCents": 0,
"taxCents": 0,
"grossCents": 0,
"groups": [
{
"taxRate": 0,
"category": "string",
"netCents": 0,
"taxCents": 0,
"grossCents": 0
}
]
},
"deductions": [
{
"invoiceId": "string",
"number": "string",
"issueDate": "2026-11-01",
"netCents": 0,
"taxCents": 0,
"grossCents": 0,
"groups": [
{
"taxRate": null,
"netCents": null,
"taxCents": null
}
],
"invoiceGrossCents": 0,
"unpaidCents": 0
}
],
"amountDueCents": 0,
"paidCents": 0,
"creditedCents": 0,
"deductedCents": 0,
"supersededCents": 0,
"openCents": 0,
"relatedInvoiceId": "string",
"advanceInvoiceIds": [
"string"
],
"offerId": "string",
"projectId": "string",
"recurringInvoiceId": "string",
"canceledByInvoiceId": "string",
"debtId": "string",
"showGiroCode": false,
"einvoiceFormat": "none",
"language": "de",
"dispatch": {
"count": 0,
"lastChannel": "email",
"lastSentAt": "2026-11-01T09:30:00.000Z"
},
"pdf": {
"sha256": "string",
"createdAt": "2026-11-01T09:30:00.000Z"
},
"locked": false,
"lockedAt": "2026-11-01T09:30:00.000Z",
"paidAt": "2026-11-01T09:30:00.000Z",
"handedOverAt": "2026-11-01T09:30:00.000Z",
"createdAt": "2026-11-01T09:30:00.000Z",
"updatedAt": "2026-11-01T09:30:00.000Z"
}/api/v1/invoices/{id}/pdfFinalised documents: the unaltered PDF archived on first retrieval (SHA-256 in pdf.sha256). Drafts: preview marked “Draft”.
Permission: invoices:read
Path parameters
idstringrequiredResource IDmax. 128 characters
Response 200
File (application/pdf).
curl 'https://www.debt-flow.io/api/v1/invoices/ID/pdf' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY"/api/v1/invoices/{id}/sendchannel: email sends the PDF as an attachment on behalf of your company (replies go to your invoicing email address). channel: post prints and sends the PDF via Briefdiener (chargeable or from the monthly quota, optionally as registered mail) and additionally requires the scope letters:write. Finalised documents only; with finalize: true, a draft is finalised first.
Permission: invoices:write
Path parameters
idstringrequiredResource IDmax. 128 characters
Headers
Idempotency-KeystringUnique key (8–255 characters). Repeated requests with the same key return the same response for 24 h.max. 255 characters
Body (JSON) · InvoiceSend
channel"email" | "post"requiredtoArray<string (email)>Email: recipient; default is the contact's invoice email addressmax. 254 charactersccArray<string (email)>max. 254 characterscopyToSelfbooleanEmail: copy to your own invoice email addresssubjectstringmax. 200 charactersmessagestringEmail body; placeholders {nummer} {betrag} {faellig} {kunde} {firma}max. 5000 charactersregisteredbooleanPost: as registered mailfinalizebooleanFinalise the draft before sendingconfirmServiceDatebooleanWithout a date or period of supply: confirms that the supply was made on the invoice date (§ 14 (4) No. 6 UStG)issueDateReasonstringReason if the invoice date differs from the day of finalising (will be logged)max. 500 characters
Response 201 · InvoiceDispatch
idstringrequiredmax. 128 charactersinvoiceIdstringrequiredmax. 128 characterschannel"email" | "post"requiredstatus"sending" | "sent" | "failed"requiredtoArray<string>requiredsubjectstring | nullrequiredregisteredbooleanrequiredletterIdstring | nullrequiredtrackingRefstring | nullrequiredpageCountinteger | nullrequired-9007199254740991–9007199254740991priceEurostring | nullrequireddeliveryStatus"pending" | "delivered" | "failed" | "returned" | nullrequiredPost only: delivery status according to Briefdiener (cron letter-status), otherwise nulldeliveryMessagestring | nullrequiredtrackingUrlstring | nullrequireddeliveryUpdatedAtstring (date-time) | nullrequiredTimestamp (ISO 8601)errorstring | nullrequiredactorActor | nullrequiredtype"user" | "api_key" | "oauth" | "system"requiredidstringrequiredlabelstring
createdAtstring (date-time)requiredTimestamp (ISO 8601)sentAtstring (date-time) | nullrequiredTimestamp (ISO 8601)
Possible errors: 400, 401, 402, 403, 404, 409, 422, 429, 500, 502
curl -X POST 'https://www.debt-flow.io/api/v1/invoices/ID/send' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"channel": "email",
"to": [
"[email protected]"
],
"cc": [
"[email protected]"
],
"copyToSelf": false,
"subject": "string",
"message": "string",
"registered": false,
"finalize": false,
"confirmServiceDate": false,
"issueDateReason": "string"
}'{
"id": "string",
"invoiceId": "string",
"channel": "email",
"status": "sending",
"to": [
"string"
],
"subject": "string",
"registered": false,
"letterId": "string",
"trackingRef": "string",
"pageCount": 0,
"priceEuro": "string",
"deliveryStatus": "pending",
"deliveryMessage": "string",
"trackingUrl": "string",
"deliveryUpdatedAt": "2026-11-01T09:30:00.000Z",
"error": "string",
"actor": {
"type": "user",
"id": "string",
"label": "string"
},
"createdAt": "2026-11-01T09:30:00.000Z",
"sentAt": "2026-11-01T09:30:00.000Z"
}/api/v1/invoices/summaryNumber of drafts, plus the number and outstanding amount of open and overdue invoices.
Permission: invoices:read
Response 200 · InvoiceSummary
draftobjectrequiredcountintegerrequired-9007199254740991–9007199254740991
openobjectrequiredcountintegerrequired-9007199254740991–9007199254740991openCentsintegerrequiredAmount in cents-100000000000–100000000000
overdueobjectrequiredcountintegerrequired-9007199254740991–9007199254740991openCentsintegerrequiredAmount in cents-100000000000–100000000000
curl 'https://www.debt-flow.io/api/v1/invoices/summary' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY"{
"draft": {
"count": 0
},
"open": {
"count": 0,
"openCents": 0
},
"overdue": {
"count": 0,
"openCents": 0
}
}/api/v1/recurring-invoicesPermission: invoices:read
Query parameters
limitintegerNumber of entries (1–100)1–100 · Default: 25cursorstring`nextCursor` of the previous pagemax. 500 characters
Response 200
object"list"requireddataArray<RecurringInvoice>requiredidstringrequiredmax. 128 charactersobject"recurring_invoice"requirednamestringrequiredactivebooleanrequiredcontactIdstringrequiredmax. 128 charactersinterval"weekly" | "monthly" | "quarterly" | "half_yearly" | "yearly"requirednextRunDatestring (date)requiredDate (YYYY-MM-DD)endDatestring (date) | nullrequiredDate (YYYY-MM-DD)servicePeriodMode"none" | "current_period" | "previous_period"requiredautoFinalizebooleanrequiredautoSendbooleanrequiredpriceMode"net" | "gross" | nullrequiredtaxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable" | nullrequiredTax treatment of the receiptpaymentTermsDaysinteger | nullrequired-9007199254740991–9007199254740991subjectstringrequiredintroTextstringrequiredclosingTextstringrequiredreferencestringrequiredlinesArray<DocumentLine>requiredidstringstable line item ID (assigned by the server if empty)max. 40 characterstype"item" | "text" | "subtotal"Line item, plain text line or subtotalDefault: "item"articleIdstringReference to the article master datamax. 128 characterstitlestringrequiredmax. 300 charactersdescriptionstringmax. 5000 charactersquantitynumber-1000000–1000000 · Default: 1unitstringUnit, e.g. Stk, Std, pauschal (piece, hour, flat rate); UN/ECE Rec 20 for e-invoicing: modulemax. 20 charactersunitPriceCentsintegerAmount in cents-100000000000–100000000000 · Default: 0discountPercentnumber0–100taxRatenumberTax rate in per cent (19, 7, 0 …)0–100 · Default: 19totalCentsintegerAmount in cents-100000000000–100000000000servicePeriodobjectprojectIdstringmax. 128 characterstimeEntryIdsArray<string>max. 128 characters
totalsDocumentTotalsrequiredPreview with the current line itemsnetCentsintegerrequiredAmount in cents-100000000000–100000000000taxCentsintegerrequiredAmount in cents-100000000000–100000000000grossCentsintegerrequiredAmount in cents-100000000000–100000000000groupsArray<object>required
invoiceCountintegerrequired-9007199254740991–9007199254740991lastRunAtstring (date-time) | nullrequiredTimestamp (ISO 8601)lastInvoiceIdstring | nullrequiredmax. 128 characterslastErrorstring | nullrequiredcreatedAtstring (date-time)requiredTimestamp (ISO 8601)updatedAtstring (date-time)requiredTimestamp (ISO 8601)
hasMorebooleanrequirednextCursorstring | nullrequired
curl 'https://www.debt-flow.io/api/v1/recurring-invoices' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY"{
"object": "list",
"data": [
{
"id": "string",
"object": "recurring_invoice",
"name": "string",
"active": false,
"contactId": "string",
"interval": "weekly",
"nextRunDate": "2026-11-01",
"endDate": "2026-11-01",
"servicePeriodMode": "none",
"autoFinalize": false,
"autoSend": false,
"priceMode": "net",
"taxTreatment": "regular",
"paymentTermsDays": 0,
"subject": "string",
"introText": "string",
"closingText": "string",
"reference": "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
]
},
"invoiceCount": 0,
"lastRunAt": "2026-11-01T09:30:00.000Z",
"lastInvoiceId": "string",
"lastError": "string",
"createdAt": "2026-11-01T09:30:00.000Z",
"updatedAt": "2026-11-01T09:30:00.000Z"
}
],
"hasMore": false,
"nextCursor": "string"
}/api/v1/recurring-invoicesTemplate with customer, line items and interval. The daily run generates an invoice on the scheduled date (draft or finalised, optionally sent by email). Placeholders in subject/introduction/line items: {zeitraum} {monat} {jahr}.
Permission: invoices:write
Headers
Idempotency-KeystringUnique key (8–255 characters). Repeated requests with the same key return the same response for 24 h.max. 255 characters
Body (JSON) · RecurringInvoiceCreate
namestringrequiredmax. 120 charactersactivebooleanDefault: truecontactIdstringrequiredmax. 128 charactersinterval"weekly" | "monthly" | "quarterly" | "half_yearly" | "yearly"requirednextRunDatestring (date)requiredNext invoice dateendDatestring (date) | nulllast possible invoice date (empty = unlimited)servicePeriodMode"none" | "current_period" | "previous_period"Default: "none"autoFinalizebooleanFinalise invoice immediately (otherwise draft for review)Default: falseautoSendbooleansend finalised invoice by emailDefault: falsepriceMode"net" | "gross"taxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"Tax treatment of the receiptpaymentTermsDaysinteger0–365subjectstringPlaceholders {zeitraum} {monat} {jahr}max. 200 charactersintroTextstringmax. 5000 charactersclosingTextstringmax. 5000 charactersreferencestringmax. 100 characterslinesArray<DocumentLine>requiredidstringstable line item ID (assigned by the server if empty)max. 40 characterstype"item" | "text" | "subtotal"Line item, plain text line or subtotalDefault: "item"articleIdstringReference to the article master datamax. 128 characterstitlestringrequiredmax. 300 charactersdescriptionstringmax. 5000 charactersquantitynumber-1000000–1000000 · Default: 1unitstringUnit, e.g. Stk, Std, pauschal (piece, hour, flat rate); UN/ECE Rec 20 for e-invoicing: modulemax. 20 charactersunitPriceCentsintegerAmount in cents-100000000000–100000000000 · Default: 0discountPercentnumber0–100taxRatenumberTax rate in per cent (19, 7, 0 …)0–100 · Default: 19totalCentsintegerAmount in cents-100000000000–100000000000servicePeriodobjectfromstring (date)requiredDate (YYYY-MM-DD)tostring (date)requiredDate (YYYY-MM-DD)
projectIdstringmax. 128 characterstimeEntryIdsArray<string>max. 128 characters
Response 201 · RecurringInvoice
idstringrequiredmax. 128 charactersobject"recurring_invoice"requirednamestringrequiredactivebooleanrequiredcontactIdstringrequiredmax. 128 charactersinterval"weekly" | "monthly" | "quarterly" | "half_yearly" | "yearly"requirednextRunDatestring (date)requiredDate (YYYY-MM-DD)endDatestring (date) | nullrequiredDate (YYYY-MM-DD)servicePeriodMode"none" | "current_period" | "previous_period"requiredautoFinalizebooleanrequiredautoSendbooleanrequiredpriceMode"net" | "gross" | nullrequiredtaxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable" | nullrequiredTax treatment of the receiptpaymentTermsDaysinteger | nullrequired-9007199254740991–9007199254740991subjectstringrequiredintroTextstringrequiredclosingTextstringrequiredreferencestringrequiredlinesArray<DocumentLine>requiredidstringstable line item ID (assigned by the server if empty)max. 40 characterstype"item" | "text" | "subtotal"Line item, plain text line or subtotalDefault: "item"articleIdstringReference to the article master datamax. 128 characterstitlestringrequiredmax. 300 charactersdescriptionstringmax. 5000 charactersquantitynumber-1000000–1000000 · Default: 1unitstringUnit, e.g. Stk, Std, pauschal (piece, hour, flat rate); UN/ECE Rec 20 for e-invoicing: modulemax. 20 charactersunitPriceCentsintegerAmount in cents-100000000000–100000000000 · Default: 0discountPercentnumber0–100taxRatenumberTax rate in per cent (19, 7, 0 …)0–100 · Default: 19totalCentsintegerAmount in cents-100000000000–100000000000servicePeriodobjectfromstring (date)requiredDate (YYYY-MM-DD)tostring (date)requiredDate (YYYY-MM-DD)
projectIdstringmax. 128 characterstimeEntryIdsArray<string>max. 128 characters
totalsDocumentTotalsrequiredPreview with the current line itemsnetCentsintegerrequiredAmount in cents-100000000000–100000000000taxCentsintegerrequiredAmount in cents-100000000000–100000000000grossCentsintegerrequiredAmount in cents-100000000000–100000000000groupsArray<object>requiredtaxRatenumberrequiredcategorystringrequirednetCentsintegerrequiredAmount in cents-100000000000–100000000000taxCentsintegerrequiredAmount in cents-100000000000–100000000000grossCentsintegerrequiredAmount in cents-100000000000–100000000000
invoiceCountintegerrequired-9007199254740991–9007199254740991lastRunAtstring (date-time) | nullrequiredTimestamp (ISO 8601)lastInvoiceIdstring | nullrequiredmax. 128 characterslastErrorstring | nullrequiredcreatedAtstring (date-time)requiredTimestamp (ISO 8601)updatedAtstring (date-time)requiredTimestamp (ISO 8601)
curl -X POST 'https://www.debt-flow.io/api/v1/recurring-invoices' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"name": "string",
"active": true,
"contactId": "string",
"interval": "weekly",
"nextRunDate": "2026-11-01",
"endDate": "2026-11-01",
"servicePeriodMode": "none",
"autoFinalize": false,
"autoSend": false,
"priceMode": "net",
"taxTreatment": "regular",
"paymentTermsDays": 0,
"subject": "string",
"introText": "string",
"closingText": "string",
"reference": "string",
"lines": [
{
"id": "string",
"type": "item",
"articleId": "string",
"title": "string",
"description": "string",
"quantity": 1,
"unit": "string",
"unitPriceCents": 0,
"discountPercent": 0,
"taxRate": 19,
"totalCents": 0,
"servicePeriod": {
"from": "2026-11-01",
"to": "2026-11-01"
},
"projectId": "string",
"timeEntryIds": [
"string"
]
}
]
}'{
"id": "string",
"object": "recurring_invoice",
"name": "string",
"active": false,
"contactId": "string",
"interval": "weekly",
"nextRunDate": "2026-11-01",
"endDate": "2026-11-01",
"servicePeriodMode": "none",
"autoFinalize": false,
"autoSend": false,
"priceMode": "net",
"taxTreatment": "regular",
"paymentTermsDays": 0,
"subject": "string",
"introText": "string",
"closingText": "string",
"reference": "string",
"lines": [
{
"id": "string",
"type": "item",
"articleId": "string",
"title": "string",
"description": "string",
"quantity": 1,
"unit": "string",
"unitPriceCents": 0,
"discountPercent": 0,
"taxRate": 19,
"totalCents": 0,
"servicePeriod": {
"from": "2026-11-01",
"to": "2026-11-01"
},
"projectId": "string",
"timeEntryIds": [
"string"
]
}
],
"totals": {
"netCents": 0,
"taxCents": 0,
"grossCents": 0,
"groups": [
{
"taxRate": 0,
"category": "string",
"netCents": 0,
"taxCents": 0,
"grossCents": 0
}
]
},
"invoiceCount": 0,
"lastRunAt": "2026-11-01T09:30:00.000Z",
"lastInvoiceId": "string",
"lastError": "string",
"createdAt": "2026-11-01T09:30:00.000Z",
"updatedAt": "2026-11-01T09:30:00.000Z"
}/api/v1/recurring-invoices/{id}Permission: invoices:read
Path parameters
idstringrequiredResource IDmax. 128 characters
Response 200 · RecurringInvoice
idstringrequiredmax. 128 charactersobject"recurring_invoice"requirednamestringrequiredactivebooleanrequiredcontactIdstringrequiredmax. 128 charactersinterval"weekly" | "monthly" | "quarterly" | "half_yearly" | "yearly"requirednextRunDatestring (date)requiredDate (YYYY-MM-DD)endDatestring (date) | nullrequiredDate (YYYY-MM-DD)servicePeriodMode"none" | "current_period" | "previous_period"requiredautoFinalizebooleanrequiredautoSendbooleanrequiredpriceMode"net" | "gross" | nullrequiredtaxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable" | nullrequiredTax treatment of the receiptpaymentTermsDaysinteger | nullrequired-9007199254740991–9007199254740991subjectstringrequiredintroTextstringrequiredclosingTextstringrequiredreferencestringrequiredlinesArray<DocumentLine>requiredidstringstable line item ID (assigned by the server if empty)max. 40 characterstype"item" | "text" | "subtotal"Line item, plain text line or subtotalDefault: "item"articleIdstringReference to the article master datamax. 128 characterstitlestringrequiredmax. 300 charactersdescriptionstringmax. 5000 charactersquantitynumber-1000000–1000000 · Default: 1unitstringUnit, e.g. Stk, Std, pauschal (piece, hour, flat rate); UN/ECE Rec 20 for e-invoicing: modulemax. 20 charactersunitPriceCentsintegerAmount in cents-100000000000–100000000000 · Default: 0discountPercentnumber0–100taxRatenumberTax rate in per cent (19, 7, 0 …)0–100 · Default: 19totalCentsintegerAmount in cents-100000000000–100000000000servicePeriodobjectfromstring (date)requiredDate (YYYY-MM-DD)tostring (date)requiredDate (YYYY-MM-DD)
projectIdstringmax. 128 characterstimeEntryIdsArray<string>max. 128 characters
totalsDocumentTotalsrequiredPreview with the current line itemsnetCentsintegerrequiredAmount in cents-100000000000–100000000000taxCentsintegerrequiredAmount in cents-100000000000–100000000000grossCentsintegerrequiredAmount in cents-100000000000–100000000000groupsArray<object>requiredtaxRatenumberrequiredcategorystringrequirednetCentsintegerrequiredAmount in cents-100000000000–100000000000taxCentsintegerrequiredAmount in cents-100000000000–100000000000grossCentsintegerrequiredAmount in cents-100000000000–100000000000
invoiceCountintegerrequired-9007199254740991–9007199254740991lastRunAtstring (date-time) | nullrequiredTimestamp (ISO 8601)lastInvoiceIdstring | nullrequiredmax. 128 characterslastErrorstring | nullrequiredcreatedAtstring (date-time)requiredTimestamp (ISO 8601)updatedAtstring (date-time)requiredTimestamp (ISO 8601)
curl 'https://www.debt-flow.io/api/v1/recurring-invoices/ID' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY"{
"id": "string",
"object": "recurring_invoice",
"name": "string",
"active": false,
"contactId": "string",
"interval": "weekly",
"nextRunDate": "2026-11-01",
"endDate": "2026-11-01",
"servicePeriodMode": "none",
"autoFinalize": false,
"autoSend": false,
"priceMode": "net",
"taxTreatment": "regular",
"paymentTermsDays": 0,
"subject": "string",
"introText": "string",
"closingText": "string",
"reference": "string",
"lines": [
{
"id": "string",
"type": "item",
"articleId": "string",
"title": "string",
"description": "string",
"quantity": 1,
"unit": "string",
"unitPriceCents": 0,
"discountPercent": 0,
"taxRate": 19,
"totalCents": 0,
"servicePeriod": {
"from": "2026-11-01",
"to": "2026-11-01"
},
"projectId": "string",
"timeEntryIds": [
"string"
]
}
],
"totals": {
"netCents": 0,
"taxCents": 0,
"grossCents": 0,
"groups": [
{
"taxRate": 0,
"category": "string",
"netCents": 0,
"taxCents": 0,
"grossCents": 0
}
]
},
"invoiceCount": 0,
"lastRunAt": "2026-11-01T09:30:00.000Z",
"lastInvoiceId": "string",
"lastError": "string",
"createdAt": "2026-11-01T09:30:00.000Z",
"updatedAt": "2026-11-01T09:30:00.000Z"
}/api/v1/recurring-invoices/{id}Changes apply from the next scheduled date. active: false pauses the template.
Permission: invoices:write
Path parameters
idstringrequiredResource IDmax. 128 characters
Body (JSON) · RecurringInvoiceUpdate
namestringmax. 120 charactersactivebooleancontactIdstringmax. 128 charactersinterval"weekly" | "monthly" | "quarterly" | "half_yearly" | "yearly"nextRunDatestring (date)Next invoice dateendDatestring (date) | nulllast possible invoice date (empty = unlimited)servicePeriodMode"none" | "current_period" | "previous_period"autoFinalizebooleanFinalise invoice immediately (otherwise draft for review)autoSendbooleansend finalised invoice by emailpriceMode"net" | "gross"taxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"Tax treatment of the receiptpaymentTermsDaysinteger0–365subjectstringPlaceholders {zeitraum} {monat} {jahr}max. 200 charactersintroTextstringmax. 5000 charactersclosingTextstringmax. 5000 charactersreferencestringmax. 100 characterslinesArray<DocumentLine>idstringstable line item ID (assigned by the server if empty)max. 40 characterstype"item" | "text" | "subtotal"Line item, plain text line or subtotalDefault: "item"articleIdstringReference to the article master datamax. 128 characterstitlestringrequiredmax. 300 charactersdescriptionstringmax. 5000 charactersquantitynumber-1000000–1000000 · Default: 1unitstringUnit, e.g. Stk, Std, pauschal (piece, hour, flat rate); UN/ECE Rec 20 for e-invoicing: modulemax. 20 charactersunitPriceCentsintegerAmount in cents-100000000000–100000000000 · Default: 0discountPercentnumber0–100taxRatenumberTax rate in per cent (19, 7, 0 …)0–100 · Default: 19totalCentsintegerAmount in cents-100000000000–100000000000servicePeriodobjectfromstring (date)requiredDate (YYYY-MM-DD)tostring (date)requiredDate (YYYY-MM-DD)
projectIdstringmax. 128 characterstimeEntryIdsArray<string>max. 128 characters
Response 200 · RecurringInvoice
idstringrequiredmax. 128 charactersobject"recurring_invoice"requirednamestringrequiredactivebooleanrequiredcontactIdstringrequiredmax. 128 charactersinterval"weekly" | "monthly" | "quarterly" | "half_yearly" | "yearly"requirednextRunDatestring (date)requiredDate (YYYY-MM-DD)endDatestring (date) | nullrequiredDate (YYYY-MM-DD)servicePeriodMode"none" | "current_period" | "previous_period"requiredautoFinalizebooleanrequiredautoSendbooleanrequiredpriceMode"net" | "gross" | nullrequiredtaxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable" | nullrequiredTax treatment of the receiptpaymentTermsDaysinteger | nullrequired-9007199254740991–9007199254740991subjectstringrequiredintroTextstringrequiredclosingTextstringrequiredreferencestringrequiredlinesArray<DocumentLine>requiredidstringstable line item ID (assigned by the server if empty)max. 40 characterstype"item" | "text" | "subtotal"Line item, plain text line or subtotalDefault: "item"articleIdstringReference to the article master datamax. 128 characterstitlestringrequiredmax. 300 charactersdescriptionstringmax. 5000 charactersquantitynumber-1000000–1000000 · Default: 1unitstringUnit, e.g. Stk, Std, pauschal (piece, hour, flat rate); UN/ECE Rec 20 for e-invoicing: modulemax. 20 charactersunitPriceCentsintegerAmount in cents-100000000000–100000000000 · Default: 0discountPercentnumber0–100taxRatenumberTax rate in per cent (19, 7, 0 …)0–100 · Default: 19totalCentsintegerAmount in cents-100000000000–100000000000servicePeriodobjectfromstring (date)requiredDate (YYYY-MM-DD)tostring (date)requiredDate (YYYY-MM-DD)
projectIdstringmax. 128 characterstimeEntryIdsArray<string>max. 128 characters
totalsDocumentTotalsrequiredPreview with the current line itemsnetCentsintegerrequiredAmount in cents-100000000000–100000000000taxCentsintegerrequiredAmount in cents-100000000000–100000000000grossCentsintegerrequiredAmount in cents-100000000000–100000000000groupsArray<object>requiredtaxRatenumberrequiredcategorystringrequirednetCentsintegerrequiredAmount in cents-100000000000–100000000000taxCentsintegerrequiredAmount in cents-100000000000–100000000000grossCentsintegerrequiredAmount in cents-100000000000–100000000000
invoiceCountintegerrequired-9007199254740991–9007199254740991lastRunAtstring (date-time) | nullrequiredTimestamp (ISO 8601)lastInvoiceIdstring | nullrequiredmax. 128 characterslastErrorstring | nullrequiredcreatedAtstring (date-time)requiredTimestamp (ISO 8601)updatedAtstring (date-time)requiredTimestamp (ISO 8601)
curl -X PATCH 'https://www.debt-flow.io/api/v1/recurring-invoices/ID' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"name": "string",
"active": false,
"contactId": "string",
"interval": "weekly",
"nextRunDate": "2026-11-01",
"endDate": "2026-11-01",
"servicePeriodMode": "none",
"autoFinalize": false,
"autoSend": false,
"priceMode": "net",
"taxTreatment": "regular",
"paymentTermsDays": 0,
"subject": "string",
"introText": "string",
"closingText": "string",
"reference": "string",
"lines": [
{
"id": "string",
"type": "item",
"articleId": "string",
"title": "string",
"description": "string",
"quantity": 1,
"unit": "string",
"unitPriceCents": 0,
"discountPercent": 0,
"taxRate": 19,
"totalCents": 0,
"servicePeriod": {
"from": "2026-11-01",
"to": "2026-11-01"
},
"projectId": "string",
"timeEntryIds": [
"string"
]
}
]
}'{
"id": "string",
"object": "recurring_invoice",
"name": "string",
"active": false,
"contactId": "string",
"interval": "weekly",
"nextRunDate": "2026-11-01",
"endDate": "2026-11-01",
"servicePeriodMode": "none",
"autoFinalize": false,
"autoSend": false,
"priceMode": "net",
"taxTreatment": "regular",
"paymentTermsDays": 0,
"subject": "string",
"introText": "string",
"closingText": "string",
"reference": "string",
"lines": [
{
"id": "string",
"type": "item",
"articleId": "string",
"title": "string",
"description": "string",
"quantity": 1,
"unit": "string",
"unitPriceCents": 0,
"discountPercent": 0,
"taxRate": 19,
"totalCents": 0,
"servicePeriod": {
"from": "2026-11-01",
"to": "2026-11-01"
},
"projectId": "string",
"timeEntryIds": [
"string"
]
}
],
"totals": {
"netCents": 0,
"taxCents": 0,
"grossCents": 0,
"groups": [
{
"taxRate": 0,
"category": "string",
"netCents": 0,
"taxCents": 0,
"grossCents": 0
}
]
},
"invoiceCount": 0,
"lastRunAt": "2026-11-01T09:30:00.000Z",
"lastInvoiceId": "string",
"lastError": "string",
"createdAt": "2026-11-01T09:30:00.000Z",
"updatedAt": "2026-11-01T09:30:00.000Z"
}/api/v1/recurring-invoices/{id}Invoices that have already been generated are kept.
Permission: invoices:write
Path parameters
idstringrequiredResource IDmax. 128 characters
Response 204
Success, no content
curl -X DELETE 'https://www.debt-flow.io/api/v1/recurring-invoices/ID' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY"/api/v1/recurring-invoices/{id}/runGenerates the invoice for the next scheduled date immediately and advances the template to the following date.
Permission: invoices:write
Path parameters
idstringrequiredResource IDmax. 128 characters
Headers
Idempotency-KeystringUnique key (8–255 characters). Repeated requests with the same key return the same response for 24 h.max. 255 characters
Response 201 · Invoice
idstringrequiredmax. 128 charactersobject"invoice"requiredtype"invoice" | "credit_note" | "cancellation"requiredkind"standard" | "advance" | "final"requiredstatus"draft" | "open" | "partially_paid" | "paid" | "overdue" | "canceled"requirednumberstring | nullrequiredDocument number; assigned only on finalisingcontactIdstring | nullrequiredmax. 128 charactersrecipientDocumentRecipientrequirednamestringrequiredCompany or namemax. 160 charactersadditionstringAddress supplement, e.g. attn. Ms Mustermax. 160 charactersstreetstringrequiredmax. 160 characters · Default: ""zipCodestringrequiredmax. 10 characters · Default: ""citystringrequiredmax. 80 characters · Default: ""countrystringrequiredCountry code ISO 3166-1 alpha-2max. 2 characters · Default: "DE"emailstring (email)Invoice recipient (email)max. 254 charactersvatIdstringRecipient's VAT ID (required for reverse charge/intra-Community supply)leitwegIdstringLeitweg-ID (XRechnung to public authorities)max. 60 characterseinvoiceRecipientType"business" | "public_authority"E-invoice recipient profile (from the contact): public_authority requires a Leitweg-ID (ER-08)customerNumberstringCustomer number (assigned on finalisation)max. 40 characters
senderSenderSnapshot | nullrequiredSender snapshot (taken on finalising)companyNamestringrequiredownerNamestringlegalFormstringmanagingDirectorsstringstreetstringrequiredzipCodestringrequiredcitystringrequiredcountryCodestringrequiredphonestringemailstringwebsitestringtaxNumberstringvatIdstringsmallBusinessbooleanrequiredcommercialRegisterobjectcourtstringnumberstring
bankobjectaccountHolderstringibanstringbicstringbankNamestring
invoiceFooterstring
issueDatestring (date) | nullrequiredDate (YYYY-MM-DD)serviceDatestring (date) | nullrequiredDate (YYYY-MM-DD)servicePeriodServicePeriod | nullrequiredfromstring (date)requiredDate (YYYY-MM-DD)tostring (date)requiredDate (YYYY-MM-DD)
serviceDateSource"entered" | "period" | "confirmed_issue_date" | "recurring" | "not_applicable" | nullrequiredSource of the date of supply (ST-13): confirmed_issue_date = confirmed by the userissuanceInvoiceIssuance | nullrequiredEvidence of issue (from finalising, ST-14)finalizedAtstring (date-time)requiredServer time of finalisingserverDatestring (date)requiredCalendar day of finalising (Europe/Berlin)issueDatestring (date)requiredDate (YYYY-MM-DD)issueDateSource"finalize_day" | "entered"requiredfinalize_day = day of finalising, entered = entered in the draftdeviationDaysintegerrequiredIssue date minus finalising day in days (negative = earlier)-9007199254740991–9007199254740991reasonstring | nullrequiredReason for a differing issue datenumberstring | nullrequirednumberRangestringrequiredNumber range
dueDatestring (date) | nullrequiredDate (YYYY-MM-DD)paymentTermsDaysintegerrequired-9007199254740991–9007199254740991priceMode"net" | "gross"requiredtaxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"requiredTax treatment of the receipttaxNoticestring | nullrequiredMandatory notice (§ 19, § 13b, intra-Community supply …)taxCaseInvoiceTaxCase | nullrequiredTax case (tax assistant); saved at the latest when finalisingfactsobjectrequiredkind"goods" | "service" | "construction" | "property_service" | "electronic_service"requiredType of supplysmallBusinessbooleanrequiredcustomerCountrystringrequiredCountry of residence of the recipientmax. 2 characterscustomerIsBusinessbooleanrequiredRecipient is a business and receives the supply for its businesscustomerVatIdValidbooleanrequireda valid VAT ID of the recipient is availabledestinationCountrystring | nullSupply of goods: country of destinationmax. 2 characterspropertyCountrystring | nullService related to real estate: location of the propertymax. 2 charactersexemption"§ 4 Nr. 8 UStG" | "§ 4 Nr. 11 UStG" | "§ 4 Nr. 12 UStG" | "§ 4 Nr. 14 UStG" | "§ 4 Nr. 21 UStG" | "other" | nullVAT exemption without input VAT deduction
treatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"requiredTax treatment of the receiptplaceOfSupplystringrequiredPlace of supply (ISO country)legalBasisstringrequirednoticeVariantenum | nullrequiredCase variant of the mandatory notice (ST-03)Values: small_business, reverse_charge, reverse_charge_eu, intra_eu_supply, export, non_taxable, tax_exemptustvaKzstring | nullrequiredAdvance VAT return form field of the tax base (not for standard taxation)reportingArray<"ustva" | "zm" | "none">requiredconfidence"certain" | "likely" | "review"requiredassumedbooleanrequiredFacts assumed from the invoice data (not entered)reasonsArray<string>requiredwarningsArray<string>required
currency"EUR"requiredsubjectstringrequiredintroTextstringrequiredclosingTextstringrequiredreferencestringrequiredlinesArray<DocumentLine>requiredidstringstable line item ID (assigned by the server if empty)max. 40 characterstype"item" | "text" | "subtotal"Line item, plain text line or subtotalDefault: "item"articleIdstringReference to the article master datamax. 128 characterstitlestringrequiredmax. 300 charactersdescriptionstringmax. 5000 charactersquantitynumber-1000000–1000000 · Default: 1unitstringUnit, e.g. Stk, Std, pauschal (piece, hour, flat rate); UN/ECE Rec 20 for e-invoicing: modulemax. 20 charactersunitPriceCentsintegerAmount in cents-100000000000–100000000000 · Default: 0discountPercentnumber0–100taxRatenumberTax rate in per cent (19, 7, 0 …)0–100 · Default: 19totalCentsintegerAmount in cents-100000000000–100000000000servicePeriodobjectfromstring (date)requiredDate (YYYY-MM-DD)tostring (date)requiredDate (YYYY-MM-DD)
projectIdstringmax. 128 characterstimeEntryIdsArray<string>max. 128 characters
totalsDocumentTotalsrequirednetCentsintegerrequiredAmount in cents-100000000000–100000000000taxCentsintegerrequiredAmount in cents-100000000000–100000000000grossCentsintegerrequiredAmount in cents-100000000000–100000000000groupsArray<object>requiredtaxRatenumberrequiredcategorystringrequirednetCentsintegerrequiredAmount in cents-100000000000–100000000000taxCentsintegerrequiredAmount in cents-100000000000–100000000000grossCentsintegerrequiredAmount in cents-100000000000–100000000000
deductionsArray<InvoiceDeduction>requiredFinal invoice: advance payments actually received and deducted (ST-09)invoiceIdstringrequiredmax. 128 charactersnumberstringrequiredissueDatestring (date)requiredDate (YYYY-MM-DD)netCentsintegerrequiredAmount in cents-100000000000–100000000000taxCentsintegerrequiredAmount in cents-100000000000–100000000000grossCentsintegerrequiredAmount in cents-100000000000–100000000000groupsArray<object>requiredtaxRatenumberrequirednetCentsintegerrequiredAmount in cents-100000000000–100000000000taxCentsintegerrequiredAmount in cents-100000000000–100000000000
invoiceGrossCentsintegerInvoice amount of the progress invoice (ST-09)-100000000000–100000000000unpaidCentsintegerUnreceived remainder of the progress invoice – not deducted (ST-09)-100000000000–100000000000
amountDueCentsintegerrequiredAmount payable (gross less progress invoices)-100000000000–100000000000paidCentsintegerrequiredAmount in cents-100000000000–100000000000creditedCentsintegerrequiredreduced by invoice corrections (progress invoice: incl. the remainder settled with the final invoice)-100000000000–100000000000deductedCentsinteger | nullrequiredProgress invoice: amount received and deducted in the final invoice (ST-09)-100000000000–100000000000supersededCentsinteger | nullrequiredProgress invoice: unpaid remainder settled with the final invoice (ST-09)-100000000000–100000000000openCentsintegerrequiredAmount in cents-100000000000–100000000000relatedInvoiceIdstring | nullrequiredmax. 128 charactersadvanceInvoiceIdsArray<string>requiredmax. 128 charactersofferIdstring | nullrequiredmax. 128 charactersprojectIdstring | nullrequiredmax. 128 charactersrecurringInvoiceIdstring | nullrequiredmax. 128 characterscanceledByInvoiceIdstring | nullrequiredCancellation invoice for this invoicemax. 128 charactersdebtIdstring | nullrequiredDebt in dunning (after handover)max. 128 charactersshowGiroCodebooleanrequiredeinvoiceFormat"none" | "zugferd" | "xrechnung"requiredlanguage"de" | "en"requiredDocument language (fixed on finalisation)dispatchobjectrequiredcountintegerrequired-9007199254740991–9007199254740991lastChannel"email" | "post" | nullrequiredlastSentAtstring (date-time) | nullrequiredTimestamp (ISO 8601)
pdfobject | nullrequiredarchived PDF (after finalisation)sha256stringrequiredcreatedAtstring (date-time)requiredTimestamp (ISO 8601)
lockedbooleanrequiredlockedAtstring (date-time) | nullrequiredTimestamp (ISO 8601)paidAtstring (date-time) | nullrequiredTimestamp (ISO 8601)handedOverAtstring (date-time) | nullrequiredTimestamp (ISO 8601)createdAtstring (date-time)requiredTimestamp (ISO 8601)updatedAtstring (date-time)requiredTimestamp (ISO 8601)
curl -X POST 'https://www.debt-flow.io/api/v1/recurring-invoices/ID/run' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY"{
"id": "string",
"object": "invoice",
"type": "invoice",
"kind": "standard",
"status": "draft",
"number": "string",
"contactId": "string",
"recipient": {
"name": "string",
"addition": "string",
"street": "",
"zipCode": "",
"city": "",
"country": "DE",
"email": "[email protected]",
"vatId": "string",
"leitwegId": "string",
"einvoiceRecipientType": "business",
"customerNumber": "string"
},
"sender": {
"companyName": "string",
"ownerName": "string",
"legalForm": "string",
"managingDirectors": "string",
"street": "string",
"zipCode": "string",
"city": "string",
"countryCode": "string",
"phone": "string",
"email": "string",
"website": "string",
"taxNumber": "string",
"vatId": "string",
"smallBusiness": false,
"commercialRegister": {
"court": "string",
"number": "string"
},
"bank": {
"accountHolder": "string",
"iban": "string",
"bic": "string",
"bankName": "string"
},
"invoiceFooter": "string"
},
"issueDate": "2026-11-01",
"serviceDate": "2026-11-01",
"servicePeriod": {
"from": "2026-11-01",
"to": "2026-11-01"
},
"serviceDateSource": "entered",
"issuance": {
"finalizedAt": "2026-11-01T09:30:00.000Z",
"serverDate": "2026-11-01",
"issueDate": "2026-11-01",
"issueDateSource": "finalize_day",
"deviationDays": 0,
"reason": "string",
"number": "string",
"numberRange": "string"
},
"dueDate": "2026-11-01",
"paymentTermsDays": 0,
"priceMode": "net",
"taxTreatment": "regular",
"taxNotice": "string",
"taxCase": {
"facts": {
"kind": "goods",
"smallBusiness": false,
"customerCountry": "string",
"customerIsBusiness": false,
"customerVatIdValid": false,
"destinationCountry": null,
"propertyCountry": null,
"exemption": null
},
"treatment": "regular",
"placeOfSupply": "string",
"legalBasis": "string",
"noticeVariant": "small_business",
"ustvaKz": "string",
"reporting": [
"ustva"
],
"confidence": "certain",
"assumed": false,
"reasons": [
"string"
],
"warnings": [
"string"
]
},
"currency": "EUR",
"subject": "string",
"introText": "string",
"closingText": "string",
"reference": "string",
"lines": [
{
"id": "string",
"type": "item",
"articleId": "string",
"title": "string",
"description": "string",
"quantity": 1,
"unit": "string",
"unitPriceCents": 0,
"discountPercent": 0,
"taxRate": 19,
"totalCents": 0,
"servicePeriod": {
"from": "2026-11-01",
"to": "2026-11-01"
},
"projectId": "string",
"timeEntryIds": [
"string"
]
}
],
"totals": {
"netCents": 0,
"taxCents": 0,
"grossCents": 0,
"groups": [
{
"taxRate": 0,
"category": "string",
"netCents": 0,
"taxCents": 0,
"grossCents": 0
}
]
},
"deductions": [
{
"invoiceId": "string",
"number": "string",
"issueDate": "2026-11-01",
"netCents": 0,
"taxCents": 0,
"grossCents": 0,
"groups": [
{
"taxRate": null,
"netCents": null,
"taxCents": null
}
],
"invoiceGrossCents": 0,
"unpaidCents": 0
}
],
"amountDueCents": 0,
"paidCents": 0,
"creditedCents": 0,
"deductedCents": 0,
"supersededCents": 0,
"openCents": 0,
"relatedInvoiceId": "string",
"advanceInvoiceIds": [
"string"
],
"offerId": "string",
"projectId": "string",
"recurringInvoiceId": "string",
"canceledByInvoiceId": "string",
"debtId": "string",
"showGiroCode": false,
"einvoiceFormat": "none",
"language": "de",
"dispatch": {
"count": 0,
"lastChannel": "email",
"lastSentAt": "2026-11-01T09:30:00.000Z"
},
"pdf": {
"sha256": "string",
"createdAt": "2026-11-01T09:30:00.000Z"
},
"locked": false,
"lockedAt": "2026-11-01T09:30:00.000Z",
"paidAt": "2026-11-01T09:30:00.000Z",
"handedOverAt": "2026-11-01T09:30:00.000Z",
"createdAt": "2026-11-01T09:30:00.000Z",
"updatedAt": "2026-11-01T09:30:00.000Z"
}