Zum Inhalt springen

Rechnungen

Rechnungen, Gutschriften und Stornos inkl. E-Rechnung und Versand.
GET/api/v1/invoice-settings

Standardtexte, GiroCode, Gültigkeit von Angeboten, E-Mail-Vorlagen, eigene Steuerhinweise und automatische Übergabe ans Mahnwesen.

Berechtigung: invoices:read

Antwort 200 · InvoiceSettings

  • collectionobjectPflicht
    • enabledbooleanPflicht
      Überfällige Rechnungen automatisch als Forderung ins Mahnwesen übergeben
    • daysAfterDueintegerPflicht
      Tage nach Fälligkeit bis zur Übergabe
      0–365
  • invoiceobjectPflicht
    • introTextstringPflicht
      max. 5000 Zeichen
    • closingTextstringPflicht
      max. 5000 Zeichen
    • showGiroCodebooleanPflicht
    • paymentTermsDaysinteger | nullPflicht
      leer = aus Firma & Rechnung
      0–365
  • offerobjectPflicht
    • introTextstringPflicht
      max. 5000 Zeichen
    • closingTextstringPflicht
      max. 5000 Zeichen
    • validityDaysintegerPflicht
      1–365
  • emailobjectPflicht
    • invoiceSubjectstringPflicht
      max. 200 Zeichen
    • invoiceMessagestringPflicht
      max. 5000 Zeichen
    • offerSubjectstringPflicht
      max. 200 Zeichen
    • offerMessagestringPflicht
      max. 5000 Zeichen
    • copyToSelfbooleanPflicht
  • taxNoticesobjectPflicht
    eigene Pflichthinweise (leer = Standardtext)
    • small_businessstring
      max. 500 Zeichen
    • reverse_chargestring
      max. 500 Zeichen
    • intra_eu_supplystring
      max. 500 Zeichen
    • exportstring
      max. 500 Zeichen
    • non_taxablestring
      max. 500 Zeichen

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

curl 'https://www.debt-flow.io/api/v1/invoice-settings' \
  -H "Authorization: Bearer $DEBTFLOW_API_KEY"
Antwort 200
{
  "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",
    "intra_eu_supply": "string",
    "export": "string",
    "non_taxable": "string"
  }
}
PATCH/api/v1/invoice-settings

Berechtigung: invoices:write

Body (JSON) · InvoiceSettingsUpdate

  • collectionobject
    • enabledboolean
      Überfällige Rechnungen automatisch als Forderung ins Mahnwesen übergeben
    • daysAfterDueinteger
      Tage nach Fälligkeit bis zur Übergabe
      0–365
  • invoiceobject
    • introTextstring
      max. 5000 Zeichen
    • closingTextstring
      max. 5000 Zeichen
    • showGiroCodeboolean
    • paymentTermsDaysinteger | null
      leer = aus Firma & Rechnung
      0–365
  • offerobject
    • introTextstring
      max. 5000 Zeichen
    • closingTextstring
      max. 5000 Zeichen
    • validityDaysinteger
      1–365
  • emailobject
    • invoiceSubjectstring
      max. 200 Zeichen
    • invoiceMessagestring
      max. 5000 Zeichen
    • offerSubjectstring
      max. 200 Zeichen
    • offerMessagestring
      max. 5000 Zeichen
    • copyToSelfboolean
  • taxNoticesobject
    eigene Pflichthinweise (leer = Standardtext)
    • small_businessstring
      max. 500 Zeichen
    • reverse_chargestring
      max. 500 Zeichen
    • intra_eu_supplystring
      max. 500 Zeichen
    • exportstring
      max. 500 Zeichen
    • non_taxablestring
      max. 500 Zeichen

Antwort 200 · InvoiceSettings

  • collectionobjectPflicht
    • enabledbooleanPflicht
      Überfällige Rechnungen automatisch als Forderung ins Mahnwesen übergeben
    • daysAfterDueintegerPflicht
      Tage nach Fälligkeit bis zur Übergabe
      0–365
  • invoiceobjectPflicht
    • introTextstringPflicht
      max. 5000 Zeichen
    • closingTextstringPflicht
      max. 5000 Zeichen
    • showGiroCodebooleanPflicht
    • paymentTermsDaysinteger | nullPflicht
      leer = aus Firma & Rechnung
      0–365
  • offerobjectPflicht
    • introTextstringPflicht
      max. 5000 Zeichen
    • closingTextstringPflicht
      max. 5000 Zeichen
    • validityDaysintegerPflicht
      1–365
  • emailobjectPflicht
    • invoiceSubjectstringPflicht
      max. 200 Zeichen
    • invoiceMessagestringPflicht
      max. 5000 Zeichen
    • offerSubjectstringPflicht
      max. 200 Zeichen
    • offerMessagestringPflicht
      max. 5000 Zeichen
    • copyToSelfbooleanPflicht
  • taxNoticesobjectPflicht
    eigene Pflichthinweise (leer = Standardtext)
    • small_businessstring
      max. 500 Zeichen
    • reverse_chargestring
      max. 500 Zeichen
    • intra_eu_supplystring
      max. 500 Zeichen
    • exportstring
      max. 500 Zeichen
    • non_taxablestring
      max. 500 Zeichen

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

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",
    "intra_eu_supply": "string",
    "export": "string",
    "non_taxable": "string"
  }
}'
Antwort 200
{
  "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",
    "intra_eu_supply": "string",
    "export": "string",
    "non_taxable": "string"
  }
}
GET/api/v1/invoices

Rechnungen, Gutschriften und Stornorechnungen, neueste zuerst. Filter nach Status, Belegart und Kontakt.

Berechtigung: invoices:read

Query-Parameter

  • status"draft" | "open" | "partially_paid" | "paid" | "overdue" | "canceled"
  • type"invoice" | "credit_note" | "cancellation"
  • contactIdstring
    max. 128 Zeichen
  • limitinteger
    Anzahl Einträge (1–100)
    1–100 · Standard: 25
  • cursorstring
    `nextCursor` der vorherigen Seite
    max. 500 Zeichen

Antwort 200

  • object"list"Pflicht
  • dataArray<Invoice>Pflicht
    • idstringPflicht
      max. 128 Zeichen
    • object"invoice"Pflicht
    • type"invoice" | "credit_note" | "cancellation"Pflicht
    • kind"standard" | "advance" | "final"Pflicht
    • status"draft" | "open" | "partially_paid" | "paid" | "overdue" | "canceled"Pflicht
    • numberstring | nullPflicht
      Belegnummer; erst beim Festschreiben vergeben
    • contactIdstring | nullPflicht
      max. 128 Zeichen
    • recipientDocumentRecipientPflicht
      • namestringPflicht
        Firma oder Name
        max. 160 Zeichen
      • additionstring
        Zusatz, z. B. z. Hd. Frau Muster
        max. 160 Zeichen
      • streetstringPflicht
        max. 160 Zeichen · Standard: ""
      • zipCodestringPflicht
        max. 10 Zeichen · Standard: ""
      • citystringPflicht
        max. 80 Zeichen · Standard: ""
      • countrystringPflicht
        Ländercode ISO 3166-1 alpha-2
        max. 2 Zeichen · Standard: "DE"
      • emailstring (email)
        Rechnungsempfänger (E-Mail)
        max. 254 Zeichen
      • vatIdstring
        USt-IdNr. des Empfängers (Pflicht bei Reverse Charge/ig. Lieferung)
      • leitwegIdstring
        Leitweg-ID (XRechnung an Behörden)
        max. 60 Zeichen
      • customerNumberstring
        Kundennummer (beim Festschreiben vergeben)
        max. 40 Zeichen
    • senderSenderSnapshot | nullPflicht
      Absender-Schnappschuss (ab Festschreiben)
      • companyNamestringPflicht
      • ownerNamestring
      • legalFormstring
      • managingDirectorsstring
      • streetstringPflicht
      • zipCodestringPflicht
      • citystringPflicht
      • countryCodestringPflicht
      • phonestring
      • emailstring
      • websitestring
      • taxNumberstring
      • vatIdstring
      • smallBusinessbooleanPflicht
      • commercialRegisterobject
      • bankobject
      • invoiceFooterstring
    • issueDatestring (date) | nullPflicht
      Datum (YYYY-MM-DD)
    • serviceDatestring (date) | nullPflicht
      Datum (YYYY-MM-DD)
    • servicePeriodServicePeriod | nullPflicht
      • fromstring (date)Pflicht
        Datum (YYYY-MM-DD)
      • tostring (date)Pflicht
        Datum (YYYY-MM-DD)
    • dueDatestring (date) | nullPflicht
      Datum (YYYY-MM-DD)
    • paymentTermsDaysintegerPflicht
      -9007199254740991–9007199254740991
    • priceMode"net" | "gross"Pflicht
    • taxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"Pflicht
      Steuerbehandlung des Belegs
    • taxNoticestring | nullPflicht
      Pflichthinweis (§ 19, § 13b, ig. Lieferung …)
    • currency"EUR"Pflicht
    • subjectstringPflicht
    • introTextstringPflicht
    • closingTextstringPflicht
    • referencestringPflicht
    • linesArray<DocumentLine>Pflicht
      • idstring
        stabile Positions-ID (vom Server vergeben, wenn leer)
        max. 40 Zeichen
      • type"item" | "text" | "subtotal"
        Position, reine Textzeile oder Zwischensumme
        Standard: "item"
      • articleIdstring
        Bezug zum Artikelstamm
        max. 128 Zeichen
      • titlestringPflicht
        max. 300 Zeichen
      • descriptionstring
        max. 5000 Zeichen
      • quantitynumber
        -1000000–1000000 · Standard: 1
      • unitstring
        Einheit, z. B. Stk, Std, pauschal (UN/ECE Rec 20 für E-Rechnung: Modul)
        max. 20 Zeichen
      • unitPriceCentsinteger
        Betrag in Cent
        -100000000000–100000000000 · Standard: 0
      • discountPercentnumber
        0–100
      • taxRatenumber
        Steuersatz in Prozent (19, 7, 0 …)
        0–100 · Standard: 19
      • totalCentsinteger
        Betrag in Cent
        -100000000000–100000000000
      • servicePeriodobject
      • projectIdstring
        max. 128 Zeichen
      • timeEntryIdsArray<string>
        max. 128 Zeichen
    • totalsDocumentTotalsPflicht
      • netCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • taxCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • grossCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • groupsArray<object>Pflicht
    • deductionsArray<InvoiceDeduction>Pflicht
      Schlussrechnung: abgezogene Abschlagsrechnungen
      • invoiceIdstringPflicht
        max. 128 Zeichen
      • numberstringPflicht
      • issueDatestring (date)Pflicht
        Datum (YYYY-MM-DD)
      • netCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • taxCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • grossCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • groupsArray<object>Pflicht
    • amountDueCentsintegerPflicht
      Zahlbetrag (Brutto abzüglich Abschläge)
      -100000000000–100000000000
    • paidCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • creditedCentsintegerPflicht
      durch Gutschriften gemindert
      -100000000000–100000000000
    • openCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • relatedInvoiceIdstring | nullPflicht
      max. 128 Zeichen
    • advanceInvoiceIdsArray<string>Pflicht
      max. 128 Zeichen
    • offerIdstring | nullPflicht
      max. 128 Zeichen
    • projectIdstring | nullPflicht
      max. 128 Zeichen
    • recurringInvoiceIdstring | nullPflicht
      max. 128 Zeichen
    • canceledByInvoiceIdstring | nullPflicht
      Stornorechnung zu dieser Rechnung
      max. 128 Zeichen
    • debtIdstring | nullPflicht
      Forderung im Mahnwesen (nach Übergabe)
      max. 128 Zeichen
    • showGiroCodebooleanPflicht
    • einvoiceFormat"none" | "zugferd" | "xrechnung"Pflicht
    • language"de" | "en"Pflicht
      Belegsprache (beim Festschreiben fixiert)
    • dispatchobjectPflicht
      • countintegerPflicht
        -9007199254740991–9007199254740991
      • lastChannel"email" | "post" | nullPflicht
      • lastSentAtstring (date-time) | nullPflicht
        Zeitpunkt (ISO 8601)
    • pdfobject | nullPflicht
      archiviertes PDF (nach Festschreiben)
      • sha256stringPflicht
      • createdAtstring (date-time)Pflicht
        Zeitpunkt (ISO 8601)
    • lockedbooleanPflicht
    • lockedAtstring (date-time) | nullPflicht
      Zeitpunkt (ISO 8601)
    • paidAtstring (date-time) | nullPflicht
      Zeitpunkt (ISO 8601)
    • handedOverAtstring (date-time) | nullPflicht
      Zeitpunkt (ISO 8601)
    • createdAtstring (date-time)Pflicht
      Zeitpunkt (ISO 8601)
    • updatedAtstring (date-time)Pflicht
      Zeitpunkt (ISO 8601)
  • hasMorebooleanPflicht
  • nextCursorstring | nullPflicht

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

curl 'https://www.debt-flow.io/api/v1/invoices' \
  -H "Authorization: Bearer $DEBTFLOW_API_KEY"
Antwort 200
{
  "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",
        "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
      },
      "dueDate": "2026-11-01",
      "paymentTermsDays": 0,
      "priceMode": "net",
      "taxTreatment": "regular",
      "taxNotice": "string",
      "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
        }
      ],
      "amountDueCents": 0,
      "paidCents": 0,
      "creditedCents": 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"
}
POST/api/v1/invoices

Legt einen Entwurf an (ohne Nummer). Empfänger, Zahlungsziel, Steuerbehandlung und Preismodus werden – wenn nicht angegeben – aus dem Kontakt bzw. aus Firma & Rechnung übernommen. Summen berechnet der Server. type: credit_note mit relatedInvoiceId legt eine Gutschrift (Rechnungskorrektur) an; ohne Positionen werden die der Rechnung übernommen.

Berechtigung: invoices:write

Header

  • Idempotency-Keystring
    Eindeutiger Schlüssel (8–255 Zeichen). Wiederholte Anfragen mit gleichem Schlüssel liefern 24 h lang dieselbe Antwort.
    max. 255 Zeichen

Body (JSON) · InvoiceCreate

  • type"invoice" | "credit_note"
    Stornorechnungen entstehen über POST /invoices/{id}/cancel
    Standard: "invoice"
  • kind"standard" | "advance" | "final"
    standard = Rechnung, advance = Abschlagsrechnung, final = Schlussrechnung
  • contactIdstring | null
    Kontakt (Kunde) aus /contacts
    max. 128 Zeichen
  • recipientDocumentRecipient
    Empfänger; ohne Angabe aus dem Kontakt übernommen
    • namestringPflicht
      Firma oder Name
      max. 160 Zeichen
    • additionstring
      Zusatz, z. B. z. Hd. Frau Muster
      max. 160 Zeichen
    • streetstringPflicht
      max. 160 Zeichen · Standard: ""
    • zipCodestringPflicht
      max. 10 Zeichen · Standard: ""
    • citystringPflicht
      max. 80 Zeichen · Standard: ""
    • countrystringPflicht
      Ländercode ISO 3166-1 alpha-2
      max. 2 Zeichen · Standard: "DE"
    • emailstring (email)
      Rechnungsempfänger (E-Mail)
      max. 254 Zeichen
    • vatIdstring
      USt-IdNr. des Empfängers (Pflicht bei Reverse Charge/ig. Lieferung)
    • leitwegIdstring
      Leitweg-ID (XRechnung an Behörden)
      max. 60 Zeichen
    • customerNumberstring
      Kundennummer (beim Festschreiben vergeben)
      max. 40 Zeichen
  • issueDatestring (date) | null
    Rechnungsdatum; leer = Tag des Festschreibens
  • serviceDatestring (date) | null
    Liefer-/Leistungsdatum
  • servicePeriodServicePeriod | null
    Leistungszeitraum (statt Leistungsdatum)
    • fromstring (date)Pflicht
      Datum (YYYY-MM-DD)
    • tostring (date)Pflicht
      Datum (YYYY-MM-DD)
  • dueDatestring (date) | null
    Fälligkeit; leer = Rechnungsdatum + Zahlungsziel
  • paymentTermsDaysinteger
    Zahlungsziel in Tagen
    0–365
  • priceMode"net" | "gross"
    Einzelpreise netto (B2B) oder brutto (B2C)
  • taxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"
    Steuerbehandlung des Belegs
  • subjectstring
    Betreff; leer = „Rechnung <Nummer>“
    max. 200 Zeichen
  • introTextstring
    max. 5000 Zeichen
  • closingTextstring
    max. 5000 Zeichen
  • referencestring
    Bestellnummer/Referenz des Kunden
    max. 100 Zeichen
  • linesArray<DocumentLine>
    • idstring
      stabile Positions-ID (vom Server vergeben, wenn leer)
      max. 40 Zeichen
    • type"item" | "text" | "subtotal"
      Position, reine Textzeile oder Zwischensumme
      Standard: "item"
    • articleIdstring
      Bezug zum Artikelstamm
      max. 128 Zeichen
    • titlestringPflicht
      max. 300 Zeichen
    • descriptionstring
      max. 5000 Zeichen
    • quantitynumber
      -1000000–1000000 · Standard: 1
    • unitstring
      Einheit, z. B. Stk, Std, pauschal (UN/ECE Rec 20 für E-Rechnung: Modul)
      max. 20 Zeichen
    • unitPriceCentsinteger
      Betrag in Cent
      -100000000000–100000000000 · Standard: 0
    • discountPercentnumber
      0–100
    • taxRatenumber
      Steuersatz in Prozent (19, 7, 0 …)
      0–100 · Standard: 19
    • totalCentsinteger
      Betrag in Cent
      -100000000000–100000000000
    • servicePeriodobject
      • fromstring (date)Pflicht
        Datum (YYYY-MM-DD)
      • tostring (date)Pflicht
        Datum (YYYY-MM-DD)
    • projectIdstring
      max. 128 Zeichen
    • timeEntryIdsArray<string>
      max. 128 Zeichen
  • relatedInvoiceIdstring | null
    Gutschrift: korrigierte Rechnung
    max. 128 Zeichen
  • advanceInvoiceIdsArray<string>
    Schlussrechnung: abzuziehende Abschlagsrechnungen
    max. 128 Zeichen
  • offerIdstring | null
    max. 128 Zeichen
  • projectIdstring | null
    max. 128 Zeichen
  • showGiroCodeboolean
    GiroCode (EPC-QR) auf das PDF drucken
  • einvoiceFormat"none" | "zugferd" | "xrechnung"
    E-Rechnungsformat (Erzeugung: Modul E-Rechnung)
  • language"de" | "en" | null
    Belegsprache (PDF, E-Mail, Freitexte der E-Rechnung); leer/null = Sprache des Kontakts. Wird beim Festschreiben fixiert.

Antwort 201 · Invoice

  • idstringPflicht
    max. 128 Zeichen
  • object"invoice"Pflicht
  • type"invoice" | "credit_note" | "cancellation"Pflicht
  • kind"standard" | "advance" | "final"Pflicht
  • status"draft" | "open" | "partially_paid" | "paid" | "overdue" | "canceled"Pflicht
  • numberstring | nullPflicht
    Belegnummer; erst beim Festschreiben vergeben
  • contactIdstring | nullPflicht
    max. 128 Zeichen
  • recipientDocumentRecipientPflicht
    • namestringPflicht
      Firma oder Name
      max. 160 Zeichen
    • additionstring
      Zusatz, z. B. z. Hd. Frau Muster
      max. 160 Zeichen
    • streetstringPflicht
      max. 160 Zeichen · Standard: ""
    • zipCodestringPflicht
      max. 10 Zeichen · Standard: ""
    • citystringPflicht
      max. 80 Zeichen · Standard: ""
    • countrystringPflicht
      Ländercode ISO 3166-1 alpha-2
      max. 2 Zeichen · Standard: "DE"
    • emailstring (email)
      Rechnungsempfänger (E-Mail)
      max. 254 Zeichen
    • vatIdstring
      USt-IdNr. des Empfängers (Pflicht bei Reverse Charge/ig. Lieferung)
    • leitwegIdstring
      Leitweg-ID (XRechnung an Behörden)
      max. 60 Zeichen
    • customerNumberstring
      Kundennummer (beim Festschreiben vergeben)
      max. 40 Zeichen
  • senderSenderSnapshot | nullPflicht
    Absender-Schnappschuss (ab Festschreiben)
    • companyNamestringPflicht
    • ownerNamestring
    • legalFormstring
    • managingDirectorsstring
    • streetstringPflicht
    • zipCodestringPflicht
    • citystringPflicht
    • countryCodestringPflicht
    • phonestring
    • emailstring
    • websitestring
    • taxNumberstring
    • vatIdstring
    • smallBusinessbooleanPflicht
    • commercialRegisterobject
      • courtstring
      • numberstring
    • bankobject
      • accountHolderstring
      • ibanstring
      • bicstring
      • bankNamestring
    • invoiceFooterstring
  • issueDatestring (date) | nullPflicht
    Datum (YYYY-MM-DD)
  • serviceDatestring (date) | nullPflicht
    Datum (YYYY-MM-DD)
  • servicePeriodServicePeriod | nullPflicht
    • fromstring (date)Pflicht
      Datum (YYYY-MM-DD)
    • tostring (date)Pflicht
      Datum (YYYY-MM-DD)
  • dueDatestring (date) | nullPflicht
    Datum (YYYY-MM-DD)
  • paymentTermsDaysintegerPflicht
    -9007199254740991–9007199254740991
  • priceMode"net" | "gross"Pflicht
  • taxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"Pflicht
    Steuerbehandlung des Belegs
  • taxNoticestring | nullPflicht
    Pflichthinweis (§ 19, § 13b, ig. Lieferung …)
  • currency"EUR"Pflicht
  • subjectstringPflicht
  • introTextstringPflicht
  • closingTextstringPflicht
  • referencestringPflicht
  • linesArray<DocumentLine>Pflicht
    • idstring
      stabile Positions-ID (vom Server vergeben, wenn leer)
      max. 40 Zeichen
    • type"item" | "text" | "subtotal"
      Position, reine Textzeile oder Zwischensumme
      Standard: "item"
    • articleIdstring
      Bezug zum Artikelstamm
      max. 128 Zeichen
    • titlestringPflicht
      max. 300 Zeichen
    • descriptionstring
      max. 5000 Zeichen
    • quantitynumber
      -1000000–1000000 · Standard: 1
    • unitstring
      Einheit, z. B. Stk, Std, pauschal (UN/ECE Rec 20 für E-Rechnung: Modul)
      max. 20 Zeichen
    • unitPriceCentsinteger
      Betrag in Cent
      -100000000000–100000000000 · Standard: 0
    • discountPercentnumber
      0–100
    • taxRatenumber
      Steuersatz in Prozent (19, 7, 0 …)
      0–100 · Standard: 19
    • totalCentsinteger
      Betrag in Cent
      -100000000000–100000000000
    • servicePeriodobject
      • fromstring (date)Pflicht
        Datum (YYYY-MM-DD)
      • tostring (date)Pflicht
        Datum (YYYY-MM-DD)
    • projectIdstring
      max. 128 Zeichen
    • timeEntryIdsArray<string>
      max. 128 Zeichen
  • totalsDocumentTotalsPflicht
    • netCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • taxCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • grossCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • groupsArray<object>Pflicht
      • taxRatenumberPflicht
      • categorystringPflicht
      • netCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • taxCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • grossCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
  • deductionsArray<InvoiceDeduction>Pflicht
    Schlussrechnung: abgezogene Abschlagsrechnungen
    • invoiceIdstringPflicht
      max. 128 Zeichen
    • numberstringPflicht
    • issueDatestring (date)Pflicht
      Datum (YYYY-MM-DD)
    • netCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • taxCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • grossCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • groupsArray<object>Pflicht
      • taxRatenumberPflicht
      • netCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • taxCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
  • amountDueCentsintegerPflicht
    Zahlbetrag (Brutto abzüglich Abschläge)
    -100000000000–100000000000
  • paidCentsintegerPflicht
    Betrag in Cent
    -100000000000–100000000000
  • creditedCentsintegerPflicht
    durch Gutschriften gemindert
    -100000000000–100000000000
  • openCentsintegerPflicht
    Betrag in Cent
    -100000000000–100000000000
  • relatedInvoiceIdstring | nullPflicht
    max. 128 Zeichen
  • advanceInvoiceIdsArray<string>Pflicht
    max. 128 Zeichen
  • offerIdstring | nullPflicht
    max. 128 Zeichen
  • projectIdstring | nullPflicht
    max. 128 Zeichen
  • recurringInvoiceIdstring | nullPflicht
    max. 128 Zeichen
  • canceledByInvoiceIdstring | nullPflicht
    Stornorechnung zu dieser Rechnung
    max. 128 Zeichen
  • debtIdstring | nullPflicht
    Forderung im Mahnwesen (nach Übergabe)
    max. 128 Zeichen
  • showGiroCodebooleanPflicht
  • einvoiceFormat"none" | "zugferd" | "xrechnung"Pflicht
  • language"de" | "en"Pflicht
    Belegsprache (beim Festschreiben fixiert)
  • dispatchobjectPflicht
    • countintegerPflicht
      -9007199254740991–9007199254740991
    • lastChannel"email" | "post" | nullPflicht
    • lastSentAtstring (date-time) | nullPflicht
      Zeitpunkt (ISO 8601)
  • pdfobject | nullPflicht
    archiviertes PDF (nach Festschreiben)
    • sha256stringPflicht
    • createdAtstring (date-time)Pflicht
      Zeitpunkt (ISO 8601)
  • lockedbooleanPflicht
  • lockedAtstring (date-time) | nullPflicht
    Zeitpunkt (ISO 8601)
  • paidAtstring (date-time) | nullPflicht
    Zeitpunkt (ISO 8601)
  • handedOverAtstring (date-time) | nullPflicht
    Zeitpunkt (ISO 8601)
  • createdAtstring (date-time)Pflicht
    Zeitpunkt (ISO 8601)
  • updatedAtstring (date-time)Pflicht
    Zeitpunkt (ISO 8601)

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

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",
    "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",
  "language": "de"
}'
Antwort 201
{
  "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",
    "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"
  },
  "dueDate": "2026-11-01",
  "paymentTermsDays": 0,
  "priceMode": "net",
  "taxTreatment": "regular",
  "taxNotice": "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
        }
      ]
    }
  ],
  "amountDueCents": 0,
  "paidCents": 0,
  "creditedCents": 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"
}
GET/api/v1/invoices/{id}

Berechtigung: invoices:read

Pfadparameter

  • idstringPflicht
    ID der Ressource
    max. 128 Zeichen

Antwort 200 · Invoice

  • idstringPflicht
    max. 128 Zeichen
  • object"invoice"Pflicht
  • type"invoice" | "credit_note" | "cancellation"Pflicht
  • kind"standard" | "advance" | "final"Pflicht
  • status"draft" | "open" | "partially_paid" | "paid" | "overdue" | "canceled"Pflicht
  • numberstring | nullPflicht
    Belegnummer; erst beim Festschreiben vergeben
  • contactIdstring | nullPflicht
    max. 128 Zeichen
  • recipientDocumentRecipientPflicht
    • namestringPflicht
      Firma oder Name
      max. 160 Zeichen
    • additionstring
      Zusatz, z. B. z. Hd. Frau Muster
      max. 160 Zeichen
    • streetstringPflicht
      max. 160 Zeichen · Standard: ""
    • zipCodestringPflicht
      max. 10 Zeichen · Standard: ""
    • citystringPflicht
      max. 80 Zeichen · Standard: ""
    • countrystringPflicht
      Ländercode ISO 3166-1 alpha-2
      max. 2 Zeichen · Standard: "DE"
    • emailstring (email)
      Rechnungsempfänger (E-Mail)
      max. 254 Zeichen
    • vatIdstring
      USt-IdNr. des Empfängers (Pflicht bei Reverse Charge/ig. Lieferung)
    • leitwegIdstring
      Leitweg-ID (XRechnung an Behörden)
      max. 60 Zeichen
    • customerNumberstring
      Kundennummer (beim Festschreiben vergeben)
      max. 40 Zeichen
  • senderSenderSnapshot | nullPflicht
    Absender-Schnappschuss (ab Festschreiben)
    • companyNamestringPflicht
    • ownerNamestring
    • legalFormstring
    • managingDirectorsstring
    • streetstringPflicht
    • zipCodestringPflicht
    • citystringPflicht
    • countryCodestringPflicht
    • phonestring
    • emailstring
    • websitestring
    • taxNumberstring
    • vatIdstring
    • smallBusinessbooleanPflicht
    • commercialRegisterobject
      • courtstring
      • numberstring
    • bankobject
      • accountHolderstring
      • ibanstring
      • bicstring
      • bankNamestring
    • invoiceFooterstring
  • issueDatestring (date) | nullPflicht
    Datum (YYYY-MM-DD)
  • serviceDatestring (date) | nullPflicht
    Datum (YYYY-MM-DD)
  • servicePeriodServicePeriod | nullPflicht
    • fromstring (date)Pflicht
      Datum (YYYY-MM-DD)
    • tostring (date)Pflicht
      Datum (YYYY-MM-DD)
  • dueDatestring (date) | nullPflicht
    Datum (YYYY-MM-DD)
  • paymentTermsDaysintegerPflicht
    -9007199254740991–9007199254740991
  • priceMode"net" | "gross"Pflicht
  • taxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"Pflicht
    Steuerbehandlung des Belegs
  • taxNoticestring | nullPflicht
    Pflichthinweis (§ 19, § 13b, ig. Lieferung …)
  • currency"EUR"Pflicht
  • subjectstringPflicht
  • introTextstringPflicht
  • closingTextstringPflicht
  • referencestringPflicht
  • linesArray<DocumentLine>Pflicht
    • idstring
      stabile Positions-ID (vom Server vergeben, wenn leer)
      max. 40 Zeichen
    • type"item" | "text" | "subtotal"
      Position, reine Textzeile oder Zwischensumme
      Standard: "item"
    • articleIdstring
      Bezug zum Artikelstamm
      max. 128 Zeichen
    • titlestringPflicht
      max. 300 Zeichen
    • descriptionstring
      max. 5000 Zeichen
    • quantitynumber
      -1000000–1000000 · Standard: 1
    • unitstring
      Einheit, z. B. Stk, Std, pauschal (UN/ECE Rec 20 für E-Rechnung: Modul)
      max. 20 Zeichen
    • unitPriceCentsinteger
      Betrag in Cent
      -100000000000–100000000000 · Standard: 0
    • discountPercentnumber
      0–100
    • taxRatenumber
      Steuersatz in Prozent (19, 7, 0 …)
      0–100 · Standard: 19
    • totalCentsinteger
      Betrag in Cent
      -100000000000–100000000000
    • servicePeriodobject
      • fromstring (date)Pflicht
        Datum (YYYY-MM-DD)
      • tostring (date)Pflicht
        Datum (YYYY-MM-DD)
    • projectIdstring
      max. 128 Zeichen
    • timeEntryIdsArray<string>
      max. 128 Zeichen
  • totalsDocumentTotalsPflicht
    • netCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • taxCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • grossCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • groupsArray<object>Pflicht
      • taxRatenumberPflicht
      • categorystringPflicht
      • netCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • taxCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • grossCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
  • deductionsArray<InvoiceDeduction>Pflicht
    Schlussrechnung: abgezogene Abschlagsrechnungen
    • invoiceIdstringPflicht
      max. 128 Zeichen
    • numberstringPflicht
    • issueDatestring (date)Pflicht
      Datum (YYYY-MM-DD)
    • netCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • taxCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • grossCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • groupsArray<object>Pflicht
      • taxRatenumberPflicht
      • netCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • taxCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
  • amountDueCentsintegerPflicht
    Zahlbetrag (Brutto abzüglich Abschläge)
    -100000000000–100000000000
  • paidCentsintegerPflicht
    Betrag in Cent
    -100000000000–100000000000
  • creditedCentsintegerPflicht
    durch Gutschriften gemindert
    -100000000000–100000000000
  • openCentsintegerPflicht
    Betrag in Cent
    -100000000000–100000000000
  • relatedInvoiceIdstring | nullPflicht
    max. 128 Zeichen
  • advanceInvoiceIdsArray<string>Pflicht
    max. 128 Zeichen
  • offerIdstring | nullPflicht
    max. 128 Zeichen
  • projectIdstring | nullPflicht
    max. 128 Zeichen
  • recurringInvoiceIdstring | nullPflicht
    max. 128 Zeichen
  • canceledByInvoiceIdstring | nullPflicht
    Stornorechnung zu dieser Rechnung
    max. 128 Zeichen
  • debtIdstring | nullPflicht
    Forderung im Mahnwesen (nach Übergabe)
    max. 128 Zeichen
  • showGiroCodebooleanPflicht
  • einvoiceFormat"none" | "zugferd" | "xrechnung"Pflicht
  • language"de" | "en"Pflicht
    Belegsprache (beim Festschreiben fixiert)
  • dispatchobjectPflicht
    • countintegerPflicht
      -9007199254740991–9007199254740991
    • lastChannel"email" | "post" | nullPflicht
    • lastSentAtstring (date-time) | nullPflicht
      Zeitpunkt (ISO 8601)
  • pdfobject | nullPflicht
    archiviertes PDF (nach Festschreiben)
    • sha256stringPflicht
    • createdAtstring (date-time)Pflicht
      Zeitpunkt (ISO 8601)
  • lockedbooleanPflicht
  • lockedAtstring (date-time) | nullPflicht
    Zeitpunkt (ISO 8601)
  • paidAtstring (date-time) | nullPflicht
    Zeitpunkt (ISO 8601)
  • handedOverAtstring (date-time) | nullPflicht
    Zeitpunkt (ISO 8601)
  • createdAtstring (date-time)Pflicht
    Zeitpunkt (ISO 8601)
  • updatedAtstring (date-time)Pflicht
    Zeitpunkt (ISO 8601)

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

curl 'https://www.debt-flow.io/api/v1/invoices/ID' \
  -H "Authorization: Bearer $DEBTFLOW_API_KEY"
Antwort 200
{
  "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",
    "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"
  },
  "dueDate": "2026-11-01",
  "paymentTermsDays": 0,
  "priceMode": "net",
  "taxTreatment": "regular",
  "taxNotice": "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
        }
      ]
    }
  ],
  "amountDueCents": 0,
  "paidCents": 0,
  "creditedCents": 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"
}
PATCH/api/v1/invoices/{id}

Nur Entwürfe sind änderbar. Festgeschriebene Belege liefern 409 document_locked – Korrekturen per Gutschrift oder Storno. Wird lines übergeben, ersetzt es alle Positionen.

Berechtigung: invoices:write

Pfadparameter

  • idstringPflicht
    ID der Ressource
    max. 128 Zeichen

Body (JSON) · InvoiceUpdate

  • kind"standard" | "advance" | "final"
    standard = Rechnung, advance = Abschlagsrechnung, final = Schlussrechnung
  • contactIdstring | null
    Kontakt (Kunde) aus /contacts
    max. 128 Zeichen
  • recipientDocumentRecipient
    Empfänger; ohne Angabe aus dem Kontakt übernommen
    • namestringPflicht
      Firma oder Name
      max. 160 Zeichen
    • additionstring
      Zusatz, z. B. z. Hd. Frau Muster
      max. 160 Zeichen
    • streetstringPflicht
      max. 160 Zeichen · Standard: ""
    • zipCodestringPflicht
      max. 10 Zeichen · Standard: ""
    • citystringPflicht
      max. 80 Zeichen · Standard: ""
    • countrystringPflicht
      Ländercode ISO 3166-1 alpha-2
      max. 2 Zeichen · Standard: "DE"
    • emailstring (email)
      Rechnungsempfänger (E-Mail)
      max. 254 Zeichen
    • vatIdstring
      USt-IdNr. des Empfängers (Pflicht bei Reverse Charge/ig. Lieferung)
    • leitwegIdstring
      Leitweg-ID (XRechnung an Behörden)
      max. 60 Zeichen
    • customerNumberstring
      Kundennummer (beim Festschreiben vergeben)
      max. 40 Zeichen
  • issueDatestring (date) | null
    Rechnungsdatum; leer = Tag des Festschreibens
  • serviceDatestring (date) | null
    Liefer-/Leistungsdatum
  • servicePeriodServicePeriod | null
    Leistungszeitraum (statt Leistungsdatum)
    • fromstring (date)Pflicht
      Datum (YYYY-MM-DD)
    • tostring (date)Pflicht
      Datum (YYYY-MM-DD)
  • dueDatestring (date) | null
    Fälligkeit; leer = Rechnungsdatum + Zahlungsziel
  • paymentTermsDaysinteger
    Zahlungsziel in Tagen
    0–365
  • priceMode"net" | "gross"
    Einzelpreise netto (B2B) oder brutto (B2C)
  • taxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"
    Steuerbehandlung des Belegs
  • subjectstring
    Betreff; leer = „Rechnung <Nummer>“
    max. 200 Zeichen
  • introTextstring
    max. 5000 Zeichen
  • closingTextstring
    max. 5000 Zeichen
  • referencestring
    Bestellnummer/Referenz des Kunden
    max. 100 Zeichen
  • linesArray<DocumentLine>
    • idstring
      stabile Positions-ID (vom Server vergeben, wenn leer)
      max. 40 Zeichen
    • type"item" | "text" | "subtotal"
      Position, reine Textzeile oder Zwischensumme
      Standard: "item"
    • articleIdstring
      Bezug zum Artikelstamm
      max. 128 Zeichen
    • titlestringPflicht
      max. 300 Zeichen
    • descriptionstring
      max. 5000 Zeichen
    • quantitynumber
      -1000000–1000000 · Standard: 1
    • unitstring
      Einheit, z. B. Stk, Std, pauschal (UN/ECE Rec 20 für E-Rechnung: Modul)
      max. 20 Zeichen
    • unitPriceCentsinteger
      Betrag in Cent
      -100000000000–100000000000 · Standard: 0
    • discountPercentnumber
      0–100
    • taxRatenumber
      Steuersatz in Prozent (19, 7, 0 …)
      0–100 · Standard: 19
    • totalCentsinteger
      Betrag in Cent
      -100000000000–100000000000
    • servicePeriodobject
      • fromstring (date)Pflicht
        Datum (YYYY-MM-DD)
      • tostring (date)Pflicht
        Datum (YYYY-MM-DD)
    • projectIdstring
      max. 128 Zeichen
    • timeEntryIdsArray<string>
      max. 128 Zeichen
  • relatedInvoiceIdstring | null
    Gutschrift: korrigierte Rechnung
    max. 128 Zeichen
  • advanceInvoiceIdsArray<string>
    Schlussrechnung: abzuziehende Abschlagsrechnungen
    max. 128 Zeichen
  • offerIdstring | null
    max. 128 Zeichen
  • projectIdstring | null
    max. 128 Zeichen
  • showGiroCodeboolean
    GiroCode (EPC-QR) auf das PDF drucken
  • einvoiceFormat"none" | "zugferd" | "xrechnung"
    E-Rechnungsformat (Erzeugung: Modul E-Rechnung)
  • language"de" | "en" | null
    Belegsprache (PDF, E-Mail, Freitexte der E-Rechnung); leer/null = Sprache des Kontakts. Wird beim Festschreiben fixiert.

Antwort 200 · Invoice

  • idstringPflicht
    max. 128 Zeichen
  • object"invoice"Pflicht
  • type"invoice" | "credit_note" | "cancellation"Pflicht
  • kind"standard" | "advance" | "final"Pflicht
  • status"draft" | "open" | "partially_paid" | "paid" | "overdue" | "canceled"Pflicht
  • numberstring | nullPflicht
    Belegnummer; erst beim Festschreiben vergeben
  • contactIdstring | nullPflicht
    max. 128 Zeichen
  • recipientDocumentRecipientPflicht
    • namestringPflicht
      Firma oder Name
      max. 160 Zeichen
    • additionstring
      Zusatz, z. B. z. Hd. Frau Muster
      max. 160 Zeichen
    • streetstringPflicht
      max. 160 Zeichen · Standard: ""
    • zipCodestringPflicht
      max. 10 Zeichen · Standard: ""
    • citystringPflicht
      max. 80 Zeichen · Standard: ""
    • countrystringPflicht
      Ländercode ISO 3166-1 alpha-2
      max. 2 Zeichen · Standard: "DE"
    • emailstring (email)
      Rechnungsempfänger (E-Mail)
      max. 254 Zeichen
    • vatIdstring
      USt-IdNr. des Empfängers (Pflicht bei Reverse Charge/ig. Lieferung)
    • leitwegIdstring
      Leitweg-ID (XRechnung an Behörden)
      max. 60 Zeichen
    • customerNumberstring
      Kundennummer (beim Festschreiben vergeben)
      max. 40 Zeichen
  • senderSenderSnapshot | nullPflicht
    Absender-Schnappschuss (ab Festschreiben)
    • companyNamestringPflicht
    • ownerNamestring
    • legalFormstring
    • managingDirectorsstring
    • streetstringPflicht
    • zipCodestringPflicht
    • citystringPflicht
    • countryCodestringPflicht
    • phonestring
    • emailstring
    • websitestring
    • taxNumberstring
    • vatIdstring
    • smallBusinessbooleanPflicht
    • commercialRegisterobject
      • courtstring
      • numberstring
    • bankobject
      • accountHolderstring
      • ibanstring
      • bicstring
      • bankNamestring
    • invoiceFooterstring
  • issueDatestring (date) | nullPflicht
    Datum (YYYY-MM-DD)
  • serviceDatestring (date) | nullPflicht
    Datum (YYYY-MM-DD)
  • servicePeriodServicePeriod | nullPflicht
    • fromstring (date)Pflicht
      Datum (YYYY-MM-DD)
    • tostring (date)Pflicht
      Datum (YYYY-MM-DD)
  • dueDatestring (date) | nullPflicht
    Datum (YYYY-MM-DD)
  • paymentTermsDaysintegerPflicht
    -9007199254740991–9007199254740991
  • priceMode"net" | "gross"Pflicht
  • taxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"Pflicht
    Steuerbehandlung des Belegs
  • taxNoticestring | nullPflicht
    Pflichthinweis (§ 19, § 13b, ig. Lieferung …)
  • currency"EUR"Pflicht
  • subjectstringPflicht
  • introTextstringPflicht
  • closingTextstringPflicht
  • referencestringPflicht
  • linesArray<DocumentLine>Pflicht
    • idstring
      stabile Positions-ID (vom Server vergeben, wenn leer)
      max. 40 Zeichen
    • type"item" | "text" | "subtotal"
      Position, reine Textzeile oder Zwischensumme
      Standard: "item"
    • articleIdstring
      Bezug zum Artikelstamm
      max. 128 Zeichen
    • titlestringPflicht
      max. 300 Zeichen
    • descriptionstring
      max. 5000 Zeichen
    • quantitynumber
      -1000000–1000000 · Standard: 1
    • unitstring
      Einheit, z. B. Stk, Std, pauschal (UN/ECE Rec 20 für E-Rechnung: Modul)
      max. 20 Zeichen
    • unitPriceCentsinteger
      Betrag in Cent
      -100000000000–100000000000 · Standard: 0
    • discountPercentnumber
      0–100
    • taxRatenumber
      Steuersatz in Prozent (19, 7, 0 …)
      0–100 · Standard: 19
    • totalCentsinteger
      Betrag in Cent
      -100000000000–100000000000
    • servicePeriodobject
      • fromstring (date)Pflicht
        Datum (YYYY-MM-DD)
      • tostring (date)Pflicht
        Datum (YYYY-MM-DD)
    • projectIdstring
      max. 128 Zeichen
    • timeEntryIdsArray<string>
      max. 128 Zeichen
  • totalsDocumentTotalsPflicht
    • netCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • taxCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • grossCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • groupsArray<object>Pflicht
      • taxRatenumberPflicht
      • categorystringPflicht
      • netCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • taxCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • grossCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
  • deductionsArray<InvoiceDeduction>Pflicht
    Schlussrechnung: abgezogene Abschlagsrechnungen
    • invoiceIdstringPflicht
      max. 128 Zeichen
    • numberstringPflicht
    • issueDatestring (date)Pflicht
      Datum (YYYY-MM-DD)
    • netCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • taxCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • grossCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • groupsArray<object>Pflicht
      • taxRatenumberPflicht
      • netCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • taxCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
  • amountDueCentsintegerPflicht
    Zahlbetrag (Brutto abzüglich Abschläge)
    -100000000000–100000000000
  • paidCentsintegerPflicht
    Betrag in Cent
    -100000000000–100000000000
  • creditedCentsintegerPflicht
    durch Gutschriften gemindert
    -100000000000–100000000000
  • openCentsintegerPflicht
    Betrag in Cent
    -100000000000–100000000000
  • relatedInvoiceIdstring | nullPflicht
    max. 128 Zeichen
  • advanceInvoiceIdsArray<string>Pflicht
    max. 128 Zeichen
  • offerIdstring | nullPflicht
    max. 128 Zeichen
  • projectIdstring | nullPflicht
    max. 128 Zeichen
  • recurringInvoiceIdstring | nullPflicht
    max. 128 Zeichen
  • canceledByInvoiceIdstring | nullPflicht
    Stornorechnung zu dieser Rechnung
    max. 128 Zeichen
  • debtIdstring | nullPflicht
    Forderung im Mahnwesen (nach Übergabe)
    max. 128 Zeichen
  • showGiroCodebooleanPflicht
  • einvoiceFormat"none" | "zugferd" | "xrechnung"Pflicht
  • language"de" | "en"Pflicht
    Belegsprache (beim Festschreiben fixiert)
  • dispatchobjectPflicht
    • countintegerPflicht
      -9007199254740991–9007199254740991
    • lastChannel"email" | "post" | nullPflicht
    • lastSentAtstring (date-time) | nullPflicht
      Zeitpunkt (ISO 8601)
  • pdfobject | nullPflicht
    archiviertes PDF (nach Festschreiben)
    • sha256stringPflicht
    • createdAtstring (date-time)Pflicht
      Zeitpunkt (ISO 8601)
  • lockedbooleanPflicht
  • lockedAtstring (date-time) | nullPflicht
    Zeitpunkt (ISO 8601)
  • paidAtstring (date-time) | nullPflicht
    Zeitpunkt (ISO 8601)
  • handedOverAtstring (date-time) | nullPflicht
    Zeitpunkt (ISO 8601)
  • createdAtstring (date-time)Pflicht
    Zeitpunkt (ISO 8601)
  • updatedAtstring (date-time)Pflicht
    Zeitpunkt (ISO 8601)

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

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",
    "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",
  "language": "de"
}'
Antwort 200
{
  "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",
    "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"
  },
  "dueDate": "2026-11-01",
  "paymentTermsDays": 0,
  "priceMode": "net",
  "taxTreatment": "regular",
  "taxNotice": "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
        }
      ]
    }
  ],
  "amountDueCents": 0,
  "paidCents": 0,
  "creditedCents": 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"
}
DELETE/api/v1/invoices/{id}

Nur Entwürfe. Festgeschriebene Belege bleiben erhalten (GoBD).

Berechtigung: invoices:write

Pfadparameter

  • idstringPflicht
    ID der Ressource
    max. 128 Zeichen

Antwort 204

Erfolg, keine Antwort

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

curl -X DELETE 'https://www.debt-flow.io/api/v1/invoices/ID' \
  -H "Authorization: Bearer $DEBTFLOW_API_KEY"
GET/api/v1/invoices/{id}/audit-log

Alle Änderungen (GoBD) mit Akteur, Zeitpunkt, geänderten Feldern und Hash der Protokollkette.

Berechtigung: invoices:read

Pfadparameter

  • idstringPflicht
    ID der Ressource
    max. 128 Zeichen

Query-Parameter

  • limitinteger
    Anzahl Einträge (1–100)
    1–100 · Standard: 25
  • cursorstring
    `nextCursor` der vorherigen Seite
    max. 500 Zeichen

Antwort 200

  • object"list"Pflicht
  • dataArray<AuditEntry>Pflicht
    • idstringPflicht
      laufende Nummer im Änderungsprotokoll
    • seqintegerPflicht
      -9007199254740991–9007199254740991
    • atstring (date-time)Pflicht
      Zeitpunkt (ISO 8601)
    • actorActorPflicht
      • type"user" | "api_key" | "oauth" | "system"Pflicht
      • idstringPflicht
      • labelstring
    • actionstringPflicht
    • changesobjectPflicht
    • metaobject | nullPflicht
    • hashstringPflicht
  • hasMorebooleanPflicht
  • nextCursorstring | nullPflicht

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

curl 'https://www.debt-flow.io/api/v1/invoices/ID/audit-log' \
  -H "Authorization: Bearer $DEBTFLOW_API_KEY"
Antwort 200
{
  "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"
}
POST/api/v1/invoices/{id}/cancel

Erzeugt und schreibt eine Stornorechnung über den vollen Betrag fest (Nummernkreis Gutschriften/Stornos) und setzt die Rechnung auf canceled. Bereits gezahlte Beträge stehen als zu erstattender Betrag auf der Stornorechnung. Bei vorhandenen Gutschriften: 409.

Berechtigung: invoices:write

Pfadparameter

  • idstringPflicht
    ID der Ressource
    max. 128 Zeichen

Header

  • Idempotency-Keystring
    Eindeutiger Schlüssel (8–255 Zeichen). Wiederholte Anfragen mit gleichem Schlüssel liefern 24 h lang dieselbe Antwort.
    max. 255 Zeichen

Body (JSON) · InvoiceCancel

  • reasonstring
    Grund (erscheint auf der Stornorechnung)
    max. 500 Zeichen
  • issueDatestring (date)
    Datum der Stornorechnung; Standard heute

Antwort 201 · InvoiceCancelResult

  • invoiceInvoicePflicht
    • idstringPflicht
      max. 128 Zeichen
    • object"invoice"Pflicht
    • type"invoice" | "credit_note" | "cancellation"Pflicht
    • kind"standard" | "advance" | "final"Pflicht
    • status"draft" | "open" | "partially_paid" | "paid" | "overdue" | "canceled"Pflicht
    • numberstring | nullPflicht
      Belegnummer; erst beim Festschreiben vergeben
    • contactIdstring | nullPflicht
      max. 128 Zeichen
    • recipientDocumentRecipientPflicht
      • namestringPflicht
        Firma oder Name
        max. 160 Zeichen
      • additionstring
        Zusatz, z. B. z. Hd. Frau Muster
        max. 160 Zeichen
      • streetstringPflicht
        max. 160 Zeichen · Standard: ""
      • zipCodestringPflicht
        max. 10 Zeichen · Standard: ""
      • citystringPflicht
        max. 80 Zeichen · Standard: ""
      • countrystringPflicht
        Ländercode ISO 3166-1 alpha-2
        max. 2 Zeichen · Standard: "DE"
      • emailstring (email)
        Rechnungsempfänger (E-Mail)
        max. 254 Zeichen
      • vatIdstring
        USt-IdNr. des Empfängers (Pflicht bei Reverse Charge/ig. Lieferung)
      • leitwegIdstring
        Leitweg-ID (XRechnung an Behörden)
        max. 60 Zeichen
      • customerNumberstring
        Kundennummer (beim Festschreiben vergeben)
        max. 40 Zeichen
    • senderSenderSnapshot | nullPflicht
      Absender-Schnappschuss (ab Festschreiben)
      • companyNamestringPflicht
      • ownerNamestring
      • legalFormstring
      • managingDirectorsstring
      • streetstringPflicht
      • zipCodestringPflicht
      • citystringPflicht
      • countryCodestringPflicht
      • phonestring
      • emailstring
      • websitestring
      • taxNumberstring
      • vatIdstring
      • smallBusinessbooleanPflicht
      • commercialRegisterobject
      • bankobject
      • invoiceFooterstring
    • issueDatestring (date) | nullPflicht
      Datum (YYYY-MM-DD)
    • serviceDatestring (date) | nullPflicht
      Datum (YYYY-MM-DD)
    • servicePeriodServicePeriod | nullPflicht
      • fromstring (date)Pflicht
        Datum (YYYY-MM-DD)
      • tostring (date)Pflicht
        Datum (YYYY-MM-DD)
    • dueDatestring (date) | nullPflicht
      Datum (YYYY-MM-DD)
    • paymentTermsDaysintegerPflicht
      -9007199254740991–9007199254740991
    • priceMode"net" | "gross"Pflicht
    • taxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"Pflicht
      Steuerbehandlung des Belegs
    • taxNoticestring | nullPflicht
      Pflichthinweis (§ 19, § 13b, ig. Lieferung …)
    • currency"EUR"Pflicht
    • subjectstringPflicht
    • introTextstringPflicht
    • closingTextstringPflicht
    • referencestringPflicht
    • linesArray<DocumentLine>Pflicht
      • idstring
        stabile Positions-ID (vom Server vergeben, wenn leer)
        max. 40 Zeichen
      • type"item" | "text" | "subtotal"
        Position, reine Textzeile oder Zwischensumme
        Standard: "item"
      • articleIdstring
        Bezug zum Artikelstamm
        max. 128 Zeichen
      • titlestringPflicht
        max. 300 Zeichen
      • descriptionstring
        max. 5000 Zeichen
      • quantitynumber
        -1000000–1000000 · Standard: 1
      • unitstring
        Einheit, z. B. Stk, Std, pauschal (UN/ECE Rec 20 für E-Rechnung: Modul)
        max. 20 Zeichen
      • unitPriceCentsinteger
        Betrag in Cent
        -100000000000–100000000000 · Standard: 0
      • discountPercentnumber
        0–100
      • taxRatenumber
        Steuersatz in Prozent (19, 7, 0 …)
        0–100 · Standard: 19
      • totalCentsinteger
        Betrag in Cent
        -100000000000–100000000000
      • servicePeriodobject
      • projectIdstring
        max. 128 Zeichen
      • timeEntryIdsArray<string>
        max. 128 Zeichen
    • totalsDocumentTotalsPflicht
      • netCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • taxCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • grossCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • groupsArray<object>Pflicht
    • deductionsArray<InvoiceDeduction>Pflicht
      Schlussrechnung: abgezogene Abschlagsrechnungen
      • invoiceIdstringPflicht
        max. 128 Zeichen
      • numberstringPflicht
      • issueDatestring (date)Pflicht
        Datum (YYYY-MM-DD)
      • netCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • taxCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • grossCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • groupsArray<object>Pflicht
    • amountDueCentsintegerPflicht
      Zahlbetrag (Brutto abzüglich Abschläge)
      -100000000000–100000000000
    • paidCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • creditedCentsintegerPflicht
      durch Gutschriften gemindert
      -100000000000–100000000000
    • openCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • relatedInvoiceIdstring | nullPflicht
      max. 128 Zeichen
    • advanceInvoiceIdsArray<string>Pflicht
      max. 128 Zeichen
    • offerIdstring | nullPflicht
      max. 128 Zeichen
    • projectIdstring | nullPflicht
      max. 128 Zeichen
    • recurringInvoiceIdstring | nullPflicht
      max. 128 Zeichen
    • canceledByInvoiceIdstring | nullPflicht
      Stornorechnung zu dieser Rechnung
      max. 128 Zeichen
    • debtIdstring | nullPflicht
      Forderung im Mahnwesen (nach Übergabe)
      max. 128 Zeichen
    • showGiroCodebooleanPflicht
    • einvoiceFormat"none" | "zugferd" | "xrechnung"Pflicht
    • language"de" | "en"Pflicht
      Belegsprache (beim Festschreiben fixiert)
    • dispatchobjectPflicht
      • countintegerPflicht
        -9007199254740991–9007199254740991
      • lastChannel"email" | "post" | nullPflicht
      • lastSentAtstring (date-time) | nullPflicht
        Zeitpunkt (ISO 8601)
    • pdfobject | nullPflicht
      archiviertes PDF (nach Festschreiben)
      • sha256stringPflicht
      • createdAtstring (date-time)Pflicht
        Zeitpunkt (ISO 8601)
    • lockedbooleanPflicht
    • lockedAtstring (date-time) | nullPflicht
      Zeitpunkt (ISO 8601)
    • paidAtstring (date-time) | nullPflicht
      Zeitpunkt (ISO 8601)
    • handedOverAtstring (date-time) | nullPflicht
      Zeitpunkt (ISO 8601)
    • createdAtstring (date-time)Pflicht
      Zeitpunkt (ISO 8601)
    • updatedAtstring (date-time)Pflicht
      Zeitpunkt (ISO 8601)
  • cancellationInvoicePflicht
    festgeschriebene Stornorechnung
    • idstringPflicht
      max. 128 Zeichen
    • object"invoice"Pflicht
    • type"invoice" | "credit_note" | "cancellation"Pflicht
    • kind"standard" | "advance" | "final"Pflicht
    • status"draft" | "open" | "partially_paid" | "paid" | "overdue" | "canceled"Pflicht
    • numberstring | nullPflicht
      Belegnummer; erst beim Festschreiben vergeben
    • contactIdstring | nullPflicht
      max. 128 Zeichen
    • recipientDocumentRecipientPflicht
      • namestringPflicht
        Firma oder Name
        max. 160 Zeichen
      • additionstring
        Zusatz, z. B. z. Hd. Frau Muster
        max. 160 Zeichen
      • streetstringPflicht
        max. 160 Zeichen · Standard: ""
      • zipCodestringPflicht
        max. 10 Zeichen · Standard: ""
      • citystringPflicht
        max. 80 Zeichen · Standard: ""
      • countrystringPflicht
        Ländercode ISO 3166-1 alpha-2
        max. 2 Zeichen · Standard: "DE"
      • emailstring (email)
        Rechnungsempfänger (E-Mail)
        max. 254 Zeichen
      • vatIdstring
        USt-IdNr. des Empfängers (Pflicht bei Reverse Charge/ig. Lieferung)
      • leitwegIdstring
        Leitweg-ID (XRechnung an Behörden)
        max. 60 Zeichen
      • customerNumberstring
        Kundennummer (beim Festschreiben vergeben)
        max. 40 Zeichen
    • senderSenderSnapshot | nullPflicht
      Absender-Schnappschuss (ab Festschreiben)
      • companyNamestringPflicht
      • ownerNamestring
      • legalFormstring
      • managingDirectorsstring
      • streetstringPflicht
      • zipCodestringPflicht
      • citystringPflicht
      • countryCodestringPflicht
      • phonestring
      • emailstring
      • websitestring
      • taxNumberstring
      • vatIdstring
      • smallBusinessbooleanPflicht
      • commercialRegisterobject
      • bankobject
      • invoiceFooterstring
    • issueDatestring (date) | nullPflicht
      Datum (YYYY-MM-DD)
    • serviceDatestring (date) | nullPflicht
      Datum (YYYY-MM-DD)
    • servicePeriodServicePeriod | nullPflicht
      • fromstring (date)Pflicht
        Datum (YYYY-MM-DD)
      • tostring (date)Pflicht
        Datum (YYYY-MM-DD)
    • dueDatestring (date) | nullPflicht
      Datum (YYYY-MM-DD)
    • paymentTermsDaysintegerPflicht
      -9007199254740991–9007199254740991
    • priceMode"net" | "gross"Pflicht
    • taxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"Pflicht
      Steuerbehandlung des Belegs
    • taxNoticestring | nullPflicht
      Pflichthinweis (§ 19, § 13b, ig. Lieferung …)
    • currency"EUR"Pflicht
    • subjectstringPflicht
    • introTextstringPflicht
    • closingTextstringPflicht
    • referencestringPflicht
    • linesArray<DocumentLine>Pflicht
      • idstring
        stabile Positions-ID (vom Server vergeben, wenn leer)
        max. 40 Zeichen
      • type"item" | "text" | "subtotal"
        Position, reine Textzeile oder Zwischensumme
        Standard: "item"
      • articleIdstring
        Bezug zum Artikelstamm
        max. 128 Zeichen
      • titlestringPflicht
        max. 300 Zeichen
      • descriptionstring
        max. 5000 Zeichen
      • quantitynumber
        -1000000–1000000 · Standard: 1
      • unitstring
        Einheit, z. B. Stk, Std, pauschal (UN/ECE Rec 20 für E-Rechnung: Modul)
        max. 20 Zeichen
      • unitPriceCentsinteger
        Betrag in Cent
        -100000000000–100000000000 · Standard: 0
      • discountPercentnumber
        0–100
      • taxRatenumber
        Steuersatz in Prozent (19, 7, 0 …)
        0–100 · Standard: 19
      • totalCentsinteger
        Betrag in Cent
        -100000000000–100000000000
      • servicePeriodobject
      • projectIdstring
        max. 128 Zeichen
      • timeEntryIdsArray<string>
        max. 128 Zeichen
    • totalsDocumentTotalsPflicht
      • netCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • taxCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • grossCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • groupsArray<object>Pflicht
    • deductionsArray<InvoiceDeduction>Pflicht
      Schlussrechnung: abgezogene Abschlagsrechnungen
      • invoiceIdstringPflicht
        max. 128 Zeichen
      • numberstringPflicht
      • issueDatestring (date)Pflicht
        Datum (YYYY-MM-DD)
      • netCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • taxCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • grossCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • groupsArray<object>Pflicht
    • amountDueCentsintegerPflicht
      Zahlbetrag (Brutto abzüglich Abschläge)
      -100000000000–100000000000
    • paidCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • creditedCentsintegerPflicht
      durch Gutschriften gemindert
      -100000000000–100000000000
    • openCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • relatedInvoiceIdstring | nullPflicht
      max. 128 Zeichen
    • advanceInvoiceIdsArray<string>Pflicht
      max. 128 Zeichen
    • offerIdstring | nullPflicht
      max. 128 Zeichen
    • projectIdstring | nullPflicht
      max. 128 Zeichen
    • recurringInvoiceIdstring | nullPflicht
      max. 128 Zeichen
    • canceledByInvoiceIdstring | nullPflicht
      Stornorechnung zu dieser Rechnung
      max. 128 Zeichen
    • debtIdstring | nullPflicht
      Forderung im Mahnwesen (nach Übergabe)
      max. 128 Zeichen
    • showGiroCodebooleanPflicht
    • einvoiceFormat"none" | "zugferd" | "xrechnung"Pflicht
    • language"de" | "en"Pflicht
      Belegsprache (beim Festschreiben fixiert)
    • dispatchobjectPflicht
      • countintegerPflicht
        -9007199254740991–9007199254740991
      • lastChannel"email" | "post" | nullPflicht
      • lastSentAtstring (date-time) | nullPflicht
        Zeitpunkt (ISO 8601)
    • pdfobject | nullPflicht
      archiviertes PDF (nach Festschreiben)
      • sha256stringPflicht
      • createdAtstring (date-time)Pflicht
        Zeitpunkt (ISO 8601)
    • lockedbooleanPflicht
    • lockedAtstring (date-time) | nullPflicht
      Zeitpunkt (ISO 8601)
    • paidAtstring (date-time) | nullPflicht
      Zeitpunkt (ISO 8601)
    • handedOverAtstring (date-time) | nullPflicht
      Zeitpunkt (ISO 8601)
    • createdAtstring (date-time)Pflicht
      Zeitpunkt (ISO 8601)
    • updatedAtstring (date-time)Pflicht
      Zeitpunkt (ISO 8601)

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

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"
}'
Antwort 201
{
  "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",
      "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
    },
    "dueDate": "2026-11-01",
    "paymentTermsDays": 0,
    "priceMode": "net",
    "taxTreatment": "regular",
    "taxNotice": "string",
    "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
      }
    ],
    "amountDueCents": 0,
    "paidCents": 0,
    "creditedCents": 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",
      "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
    },
    "dueDate": "2026-11-01",
    "paymentTermsDays": 0,
    "priceMode": "net",
    "taxTreatment": "regular",
    "taxNotice": "string",
    "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
      }
    ],
    "amountDueCents": 0,
    "paidCents": 0,
    "creditedCents": 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"
  }
}
GET/api/v1/invoices/{id}/dispatches

Berechtigung: invoices:read

Pfadparameter

  • idstringPflicht
    ID der Ressource
    max. 128 Zeichen

Query-Parameter

  • limitinteger
    Anzahl Einträge (1–100)
    1–100 · Standard: 25
  • cursorstring
    `nextCursor` der vorherigen Seite
    max. 500 Zeichen

Antwort 200

  • object"list"Pflicht
  • dataArray<InvoiceDispatch>Pflicht
    • idstringPflicht
      max. 128 Zeichen
    • invoiceIdstringPflicht
      max. 128 Zeichen
    • channel"email" | "post"Pflicht
    • status"sending" | "sent" | "failed"Pflicht
    • toArray<string>Pflicht
    • subjectstring | nullPflicht
    • registeredbooleanPflicht
    • letterIdstring | nullPflicht
    • trackingRefstring | nullPflicht
    • pageCountinteger | nullPflicht
      -9007199254740991–9007199254740991
    • priceEurostring | nullPflicht
    • errorstring | nullPflicht
    • actorActor | nullPflicht
      • type"user" | "api_key" | "oauth" | "system"Pflicht
      • idstringPflicht
      • labelstring
    • createdAtstring (date-time)Pflicht
      Zeitpunkt (ISO 8601)
    • sentAtstring (date-time) | nullPflicht
      Zeitpunkt (ISO 8601)
  • hasMorebooleanPflicht
  • nextCursorstring | nullPflicht

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

curl 'https://www.debt-flow.io/api/v1/invoices/ID/dispatches' \
  -H "Authorization: Bearer $DEBTFLOW_API_KEY"
Antwort 200
{
  "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",
      "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"
}
POST/api/v1/invoices/{id}/duplicate

Übernimmt Kunde, Texte und Positionen in einen neuen Entwurf (ohne Nummer und Datum).

Berechtigung: invoices:write

Pfadparameter

  • idstringPflicht
    ID der Ressource
    max. 128 Zeichen

Header

  • Idempotency-Keystring
    Eindeutiger Schlüssel (8–255 Zeichen). Wiederholte Anfragen mit gleichem Schlüssel liefern 24 h lang dieselbe Antwort.
    max. 255 Zeichen

Antwort 201 · Invoice

  • idstringPflicht
    max. 128 Zeichen
  • object"invoice"Pflicht
  • type"invoice" | "credit_note" | "cancellation"Pflicht
  • kind"standard" | "advance" | "final"Pflicht
  • status"draft" | "open" | "partially_paid" | "paid" | "overdue" | "canceled"Pflicht
  • numberstring | nullPflicht
    Belegnummer; erst beim Festschreiben vergeben
  • contactIdstring | nullPflicht
    max. 128 Zeichen
  • recipientDocumentRecipientPflicht
    • namestringPflicht
      Firma oder Name
      max. 160 Zeichen
    • additionstring
      Zusatz, z. B. z. Hd. Frau Muster
      max. 160 Zeichen
    • streetstringPflicht
      max. 160 Zeichen · Standard: ""
    • zipCodestringPflicht
      max. 10 Zeichen · Standard: ""
    • citystringPflicht
      max. 80 Zeichen · Standard: ""
    • countrystringPflicht
      Ländercode ISO 3166-1 alpha-2
      max. 2 Zeichen · Standard: "DE"
    • emailstring (email)
      Rechnungsempfänger (E-Mail)
      max. 254 Zeichen
    • vatIdstring
      USt-IdNr. des Empfängers (Pflicht bei Reverse Charge/ig. Lieferung)
    • leitwegIdstring
      Leitweg-ID (XRechnung an Behörden)
      max. 60 Zeichen
    • customerNumberstring
      Kundennummer (beim Festschreiben vergeben)
      max. 40 Zeichen
  • senderSenderSnapshot | nullPflicht
    Absender-Schnappschuss (ab Festschreiben)
    • companyNamestringPflicht
    • ownerNamestring
    • legalFormstring
    • managingDirectorsstring
    • streetstringPflicht
    • zipCodestringPflicht
    • citystringPflicht
    • countryCodestringPflicht
    • phonestring
    • emailstring
    • websitestring
    • taxNumberstring
    • vatIdstring
    • smallBusinessbooleanPflicht
    • commercialRegisterobject
      • courtstring
      • numberstring
    • bankobject
      • accountHolderstring
      • ibanstring
      • bicstring
      • bankNamestring
    • invoiceFooterstring
  • issueDatestring (date) | nullPflicht
    Datum (YYYY-MM-DD)
  • serviceDatestring (date) | nullPflicht
    Datum (YYYY-MM-DD)
  • servicePeriodServicePeriod | nullPflicht
    • fromstring (date)Pflicht
      Datum (YYYY-MM-DD)
    • tostring (date)Pflicht
      Datum (YYYY-MM-DD)
  • dueDatestring (date) | nullPflicht
    Datum (YYYY-MM-DD)
  • paymentTermsDaysintegerPflicht
    -9007199254740991–9007199254740991
  • priceMode"net" | "gross"Pflicht
  • taxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"Pflicht
    Steuerbehandlung des Belegs
  • taxNoticestring | nullPflicht
    Pflichthinweis (§ 19, § 13b, ig. Lieferung …)
  • currency"EUR"Pflicht
  • subjectstringPflicht
  • introTextstringPflicht
  • closingTextstringPflicht
  • referencestringPflicht
  • linesArray<DocumentLine>Pflicht
    • idstring
      stabile Positions-ID (vom Server vergeben, wenn leer)
      max. 40 Zeichen
    • type"item" | "text" | "subtotal"
      Position, reine Textzeile oder Zwischensumme
      Standard: "item"
    • articleIdstring
      Bezug zum Artikelstamm
      max. 128 Zeichen
    • titlestringPflicht
      max. 300 Zeichen
    • descriptionstring
      max. 5000 Zeichen
    • quantitynumber
      -1000000–1000000 · Standard: 1
    • unitstring
      Einheit, z. B. Stk, Std, pauschal (UN/ECE Rec 20 für E-Rechnung: Modul)
      max. 20 Zeichen
    • unitPriceCentsinteger
      Betrag in Cent
      -100000000000–100000000000 · Standard: 0
    • discountPercentnumber
      0–100
    • taxRatenumber
      Steuersatz in Prozent (19, 7, 0 …)
      0–100 · Standard: 19
    • totalCentsinteger
      Betrag in Cent
      -100000000000–100000000000
    • servicePeriodobject
      • fromstring (date)Pflicht
        Datum (YYYY-MM-DD)
      • tostring (date)Pflicht
        Datum (YYYY-MM-DD)
    • projectIdstring
      max. 128 Zeichen
    • timeEntryIdsArray<string>
      max. 128 Zeichen
  • totalsDocumentTotalsPflicht
    • netCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • taxCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • grossCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • groupsArray<object>Pflicht
      • taxRatenumberPflicht
      • categorystringPflicht
      • netCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • taxCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • grossCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
  • deductionsArray<InvoiceDeduction>Pflicht
    Schlussrechnung: abgezogene Abschlagsrechnungen
    • invoiceIdstringPflicht
      max. 128 Zeichen
    • numberstringPflicht
    • issueDatestring (date)Pflicht
      Datum (YYYY-MM-DD)
    • netCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • taxCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • grossCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • groupsArray<object>Pflicht
      • taxRatenumberPflicht
      • netCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • taxCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
  • amountDueCentsintegerPflicht
    Zahlbetrag (Brutto abzüglich Abschläge)
    -100000000000–100000000000
  • paidCentsintegerPflicht
    Betrag in Cent
    -100000000000–100000000000
  • creditedCentsintegerPflicht
    durch Gutschriften gemindert
    -100000000000–100000000000
  • openCentsintegerPflicht
    Betrag in Cent
    -100000000000–100000000000
  • relatedInvoiceIdstring | nullPflicht
    max. 128 Zeichen
  • advanceInvoiceIdsArray<string>Pflicht
    max. 128 Zeichen
  • offerIdstring | nullPflicht
    max. 128 Zeichen
  • projectIdstring | nullPflicht
    max. 128 Zeichen
  • recurringInvoiceIdstring | nullPflicht
    max. 128 Zeichen
  • canceledByInvoiceIdstring | nullPflicht
    Stornorechnung zu dieser Rechnung
    max. 128 Zeichen
  • debtIdstring | nullPflicht
    Forderung im Mahnwesen (nach Übergabe)
    max. 128 Zeichen
  • showGiroCodebooleanPflicht
  • einvoiceFormat"none" | "zugferd" | "xrechnung"Pflicht
  • language"de" | "en"Pflicht
    Belegsprache (beim Festschreiben fixiert)
  • dispatchobjectPflicht
    • countintegerPflicht
      -9007199254740991–9007199254740991
    • lastChannel"email" | "post" | nullPflicht
    • lastSentAtstring (date-time) | nullPflicht
      Zeitpunkt (ISO 8601)
  • pdfobject | nullPflicht
    archiviertes PDF (nach Festschreiben)
    • sha256stringPflicht
    • createdAtstring (date-time)Pflicht
      Zeitpunkt (ISO 8601)
  • lockedbooleanPflicht
  • lockedAtstring (date-time) | nullPflicht
    Zeitpunkt (ISO 8601)
  • paidAtstring (date-time) | nullPflicht
    Zeitpunkt (ISO 8601)
  • handedOverAtstring (date-time) | nullPflicht
    Zeitpunkt (ISO 8601)
  • createdAtstring (date-time)Pflicht
    Zeitpunkt (ISO 8601)
  • updatedAtstring (date-time)Pflicht
    Zeitpunkt (ISO 8601)

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

curl -X POST 'https://www.debt-flow.io/api/v1/invoices/ID/duplicate' \
  -H "Authorization: Bearer $DEBTFLOW_API_KEY"
Antwort 201
{
  "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",
    "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"
  },
  "dueDate": "2026-11-01",
  "paymentTermsDays": 0,
  "priceMode": "net",
  "taxTreatment": "regular",
  "taxNotice": "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
        }
      ]
    }
  ],
  "amountDueCents": 0,
  "paidCents": 0,
  "creditedCents": 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"
}
GET/api/v1/invoices/{id}/e-invoice

format=xrechnung liefert XRechnung 3.0 (UBL, application/xml) – beim ersten Abruf erzeugt und unverändert archiviert. format=zugferd liefert das archivierte Rechnungs-PDF mit eingebetteter factur-x.xml (PDF/A-3, Profil EN 16931); nur für Rechnungen, die mit einvoiceFormat: "zugferd" festgeschrieben wurden. Ohne Angabe: Format der Rechnung, sonst XRechnung.

Berechtigung: invoices:read

Pfadparameter

  • idstringPflicht
    ID der Ressource
    max. 128 Zeichen

Query-Parameter

  • format"xrechnung" | "zugferd"
    xrechnung (XML) oder zugferd (PDF)

Antwort 200

Datei (application/xml).

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

curl 'https://www.debt-flow.io/api/v1/invoices/ID/e-invoice' \
  -H "Authorization: Bearer $DEBTFLOW_API_KEY"
POST/api/v1/invoices/{id}/finalize

Prüft die Pflichtangaben nach § 14 UStG, vergibt die nächste Nummer aus dem Nummernkreis (lückenlos), übernimmt die Firmenstammdaten als Absender, setzt Rechnungs-, Leistungs- und Fälligkeitsdatum und sperrt den Beleg (Inhalts-Hash, Änderungsprotokoll). Fehlende Angaben: 422 invoice_incomplete mit details.problems.

Berechtigung: invoices:write

Pfadparameter

  • idstringPflicht
    ID der Ressource
    max. 128 Zeichen

Header

  • Idempotency-Keystring
    Eindeutiger Schlüssel (8–255 Zeichen). Wiederholte Anfragen mit gleichem Schlüssel liefern 24 h lang dieselbe Antwort.
    max. 255 Zeichen

Antwort 200 · Invoice

  • idstringPflicht
    max. 128 Zeichen
  • object"invoice"Pflicht
  • type"invoice" | "credit_note" | "cancellation"Pflicht
  • kind"standard" | "advance" | "final"Pflicht
  • status"draft" | "open" | "partially_paid" | "paid" | "overdue" | "canceled"Pflicht
  • numberstring | nullPflicht
    Belegnummer; erst beim Festschreiben vergeben
  • contactIdstring | nullPflicht
    max. 128 Zeichen
  • recipientDocumentRecipientPflicht
    • namestringPflicht
      Firma oder Name
      max. 160 Zeichen
    • additionstring
      Zusatz, z. B. z. Hd. Frau Muster
      max. 160 Zeichen
    • streetstringPflicht
      max. 160 Zeichen · Standard: ""
    • zipCodestringPflicht
      max. 10 Zeichen · Standard: ""
    • citystringPflicht
      max. 80 Zeichen · Standard: ""
    • countrystringPflicht
      Ländercode ISO 3166-1 alpha-2
      max. 2 Zeichen · Standard: "DE"
    • emailstring (email)
      Rechnungsempfänger (E-Mail)
      max. 254 Zeichen
    • vatIdstring
      USt-IdNr. des Empfängers (Pflicht bei Reverse Charge/ig. Lieferung)
    • leitwegIdstring
      Leitweg-ID (XRechnung an Behörden)
      max. 60 Zeichen
    • customerNumberstring
      Kundennummer (beim Festschreiben vergeben)
      max. 40 Zeichen
  • senderSenderSnapshot | nullPflicht
    Absender-Schnappschuss (ab Festschreiben)
    • companyNamestringPflicht
    • ownerNamestring
    • legalFormstring
    • managingDirectorsstring
    • streetstringPflicht
    • zipCodestringPflicht
    • citystringPflicht
    • countryCodestringPflicht
    • phonestring
    • emailstring
    • websitestring
    • taxNumberstring
    • vatIdstring
    • smallBusinessbooleanPflicht
    • commercialRegisterobject
      • courtstring
      • numberstring
    • bankobject
      • accountHolderstring
      • ibanstring
      • bicstring
      • bankNamestring
    • invoiceFooterstring
  • issueDatestring (date) | nullPflicht
    Datum (YYYY-MM-DD)
  • serviceDatestring (date) | nullPflicht
    Datum (YYYY-MM-DD)
  • servicePeriodServicePeriod | nullPflicht
    • fromstring (date)Pflicht
      Datum (YYYY-MM-DD)
    • tostring (date)Pflicht
      Datum (YYYY-MM-DD)
  • dueDatestring (date) | nullPflicht
    Datum (YYYY-MM-DD)
  • paymentTermsDaysintegerPflicht
    -9007199254740991–9007199254740991
  • priceMode"net" | "gross"Pflicht
  • taxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"Pflicht
    Steuerbehandlung des Belegs
  • taxNoticestring | nullPflicht
    Pflichthinweis (§ 19, § 13b, ig. Lieferung …)
  • currency"EUR"Pflicht
  • subjectstringPflicht
  • introTextstringPflicht
  • closingTextstringPflicht
  • referencestringPflicht
  • linesArray<DocumentLine>Pflicht
    • idstring
      stabile Positions-ID (vom Server vergeben, wenn leer)
      max. 40 Zeichen
    • type"item" | "text" | "subtotal"
      Position, reine Textzeile oder Zwischensumme
      Standard: "item"
    • articleIdstring
      Bezug zum Artikelstamm
      max. 128 Zeichen
    • titlestringPflicht
      max. 300 Zeichen
    • descriptionstring
      max. 5000 Zeichen
    • quantitynumber
      -1000000–1000000 · Standard: 1
    • unitstring
      Einheit, z. B. Stk, Std, pauschal (UN/ECE Rec 20 für E-Rechnung: Modul)
      max. 20 Zeichen
    • unitPriceCentsinteger
      Betrag in Cent
      -100000000000–100000000000 · Standard: 0
    • discountPercentnumber
      0–100
    • taxRatenumber
      Steuersatz in Prozent (19, 7, 0 …)
      0–100 · Standard: 19
    • totalCentsinteger
      Betrag in Cent
      -100000000000–100000000000
    • servicePeriodobject
      • fromstring (date)Pflicht
        Datum (YYYY-MM-DD)
      • tostring (date)Pflicht
        Datum (YYYY-MM-DD)
    • projectIdstring
      max. 128 Zeichen
    • timeEntryIdsArray<string>
      max. 128 Zeichen
  • totalsDocumentTotalsPflicht
    • netCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • taxCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • grossCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • groupsArray<object>Pflicht
      • taxRatenumberPflicht
      • categorystringPflicht
      • netCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • taxCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • grossCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
  • deductionsArray<InvoiceDeduction>Pflicht
    Schlussrechnung: abgezogene Abschlagsrechnungen
    • invoiceIdstringPflicht
      max. 128 Zeichen
    • numberstringPflicht
    • issueDatestring (date)Pflicht
      Datum (YYYY-MM-DD)
    • netCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • taxCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • grossCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • groupsArray<object>Pflicht
      • taxRatenumberPflicht
      • netCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • taxCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
  • amountDueCentsintegerPflicht
    Zahlbetrag (Brutto abzüglich Abschläge)
    -100000000000–100000000000
  • paidCentsintegerPflicht
    Betrag in Cent
    -100000000000–100000000000
  • creditedCentsintegerPflicht
    durch Gutschriften gemindert
    -100000000000–100000000000
  • openCentsintegerPflicht
    Betrag in Cent
    -100000000000–100000000000
  • relatedInvoiceIdstring | nullPflicht
    max. 128 Zeichen
  • advanceInvoiceIdsArray<string>Pflicht
    max. 128 Zeichen
  • offerIdstring | nullPflicht
    max. 128 Zeichen
  • projectIdstring | nullPflicht
    max. 128 Zeichen
  • recurringInvoiceIdstring | nullPflicht
    max. 128 Zeichen
  • canceledByInvoiceIdstring | nullPflicht
    Stornorechnung zu dieser Rechnung
    max. 128 Zeichen
  • debtIdstring | nullPflicht
    Forderung im Mahnwesen (nach Übergabe)
    max. 128 Zeichen
  • showGiroCodebooleanPflicht
  • einvoiceFormat"none" | "zugferd" | "xrechnung"Pflicht
  • language"de" | "en"Pflicht
    Belegsprache (beim Festschreiben fixiert)
  • dispatchobjectPflicht
    • countintegerPflicht
      -9007199254740991–9007199254740991
    • lastChannel"email" | "post" | nullPflicht
    • lastSentAtstring (date-time) | nullPflicht
      Zeitpunkt (ISO 8601)
  • pdfobject | nullPflicht
    archiviertes PDF (nach Festschreiben)
    • sha256stringPflicht
    • createdAtstring (date-time)Pflicht
      Zeitpunkt (ISO 8601)
  • lockedbooleanPflicht
  • lockedAtstring (date-time) | nullPflicht
    Zeitpunkt (ISO 8601)
  • paidAtstring (date-time) | nullPflicht
    Zeitpunkt (ISO 8601)
  • handedOverAtstring (date-time) | nullPflicht
    Zeitpunkt (ISO 8601)
  • createdAtstring (date-time)Pflicht
    Zeitpunkt (ISO 8601)
  • updatedAtstring (date-time)Pflicht
    Zeitpunkt (ISO 8601)

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

curl -X POST 'https://www.debt-flow.io/api/v1/invoices/ID/finalize' \
  -H "Authorization: Bearer $DEBTFLOW_API_KEY"
Antwort 200
{
  "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",
    "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"
  },
  "dueDate": "2026-11-01",
  "paymentTermsDays": 0,
  "priceMode": "net",
  "taxTreatment": "regular",
  "taxNotice": "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
        }
      ]
    }
  ],
  "amountDueCents": 0,
  "paidCents": 0,
  "creditedCents": 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"
}
POST/api/v1/invoices/{id}/hand-over

Legt eine Forderung (/debts) über den offenen Betrag mit Verweis auf die Rechnung an; ab dann greift der Mahnlauf. Voraussetzung: festgeschrieben, offener Betrag, Kontakt zugeordnet. Automatisch per Einstellung (collection.enabled).

Berechtigung: invoices:write, debts:write

Pfadparameter

  • idstringPflicht
    ID der Ressource
    max. 128 Zeichen

Header

  • Idempotency-Keystring
    Eindeutiger Schlüssel (8–255 Zeichen). Wiederholte Anfragen mit gleichem Schlüssel liefern 24 h lang dieselbe Antwort.
    max. 255 Zeichen

Antwort 200 · Invoice

  • idstringPflicht
    max. 128 Zeichen
  • object"invoice"Pflicht
  • type"invoice" | "credit_note" | "cancellation"Pflicht
  • kind"standard" | "advance" | "final"Pflicht
  • status"draft" | "open" | "partially_paid" | "paid" | "overdue" | "canceled"Pflicht
  • numberstring | nullPflicht
    Belegnummer; erst beim Festschreiben vergeben
  • contactIdstring | nullPflicht
    max. 128 Zeichen
  • recipientDocumentRecipientPflicht
    • namestringPflicht
      Firma oder Name
      max. 160 Zeichen
    • additionstring
      Zusatz, z. B. z. Hd. Frau Muster
      max. 160 Zeichen
    • streetstringPflicht
      max. 160 Zeichen · Standard: ""
    • zipCodestringPflicht
      max. 10 Zeichen · Standard: ""
    • citystringPflicht
      max. 80 Zeichen · Standard: ""
    • countrystringPflicht
      Ländercode ISO 3166-1 alpha-2
      max. 2 Zeichen · Standard: "DE"
    • emailstring (email)
      Rechnungsempfänger (E-Mail)
      max. 254 Zeichen
    • vatIdstring
      USt-IdNr. des Empfängers (Pflicht bei Reverse Charge/ig. Lieferung)
    • leitwegIdstring
      Leitweg-ID (XRechnung an Behörden)
      max. 60 Zeichen
    • customerNumberstring
      Kundennummer (beim Festschreiben vergeben)
      max. 40 Zeichen
  • senderSenderSnapshot | nullPflicht
    Absender-Schnappschuss (ab Festschreiben)
    • companyNamestringPflicht
    • ownerNamestring
    • legalFormstring
    • managingDirectorsstring
    • streetstringPflicht
    • zipCodestringPflicht
    • citystringPflicht
    • countryCodestringPflicht
    • phonestring
    • emailstring
    • websitestring
    • taxNumberstring
    • vatIdstring
    • smallBusinessbooleanPflicht
    • commercialRegisterobject
      • courtstring
      • numberstring
    • bankobject
      • accountHolderstring
      • ibanstring
      • bicstring
      • bankNamestring
    • invoiceFooterstring
  • issueDatestring (date) | nullPflicht
    Datum (YYYY-MM-DD)
  • serviceDatestring (date) | nullPflicht
    Datum (YYYY-MM-DD)
  • servicePeriodServicePeriod | nullPflicht
    • fromstring (date)Pflicht
      Datum (YYYY-MM-DD)
    • tostring (date)Pflicht
      Datum (YYYY-MM-DD)
  • dueDatestring (date) | nullPflicht
    Datum (YYYY-MM-DD)
  • paymentTermsDaysintegerPflicht
    -9007199254740991–9007199254740991
  • priceMode"net" | "gross"Pflicht
  • taxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"Pflicht
    Steuerbehandlung des Belegs
  • taxNoticestring | nullPflicht
    Pflichthinweis (§ 19, § 13b, ig. Lieferung …)
  • currency"EUR"Pflicht
  • subjectstringPflicht
  • introTextstringPflicht
  • closingTextstringPflicht
  • referencestringPflicht
  • linesArray<DocumentLine>Pflicht
    • idstring
      stabile Positions-ID (vom Server vergeben, wenn leer)
      max. 40 Zeichen
    • type"item" | "text" | "subtotal"
      Position, reine Textzeile oder Zwischensumme
      Standard: "item"
    • articleIdstring
      Bezug zum Artikelstamm
      max. 128 Zeichen
    • titlestringPflicht
      max. 300 Zeichen
    • descriptionstring
      max. 5000 Zeichen
    • quantitynumber
      -1000000–1000000 · Standard: 1
    • unitstring
      Einheit, z. B. Stk, Std, pauschal (UN/ECE Rec 20 für E-Rechnung: Modul)
      max. 20 Zeichen
    • unitPriceCentsinteger
      Betrag in Cent
      -100000000000–100000000000 · Standard: 0
    • discountPercentnumber
      0–100
    • taxRatenumber
      Steuersatz in Prozent (19, 7, 0 …)
      0–100 · Standard: 19
    • totalCentsinteger
      Betrag in Cent
      -100000000000–100000000000
    • servicePeriodobject
      • fromstring (date)Pflicht
        Datum (YYYY-MM-DD)
      • tostring (date)Pflicht
        Datum (YYYY-MM-DD)
    • projectIdstring
      max. 128 Zeichen
    • timeEntryIdsArray<string>
      max. 128 Zeichen
  • totalsDocumentTotalsPflicht
    • netCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • taxCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • grossCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • groupsArray<object>Pflicht
      • taxRatenumberPflicht
      • categorystringPflicht
      • netCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • taxCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • grossCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
  • deductionsArray<InvoiceDeduction>Pflicht
    Schlussrechnung: abgezogene Abschlagsrechnungen
    • invoiceIdstringPflicht
      max. 128 Zeichen
    • numberstringPflicht
    • issueDatestring (date)Pflicht
      Datum (YYYY-MM-DD)
    • netCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • taxCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • grossCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • groupsArray<object>Pflicht
      • taxRatenumberPflicht
      • netCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • taxCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
  • amountDueCentsintegerPflicht
    Zahlbetrag (Brutto abzüglich Abschläge)
    -100000000000–100000000000
  • paidCentsintegerPflicht
    Betrag in Cent
    -100000000000–100000000000
  • creditedCentsintegerPflicht
    durch Gutschriften gemindert
    -100000000000–100000000000
  • openCentsintegerPflicht
    Betrag in Cent
    -100000000000–100000000000
  • relatedInvoiceIdstring | nullPflicht
    max. 128 Zeichen
  • advanceInvoiceIdsArray<string>Pflicht
    max. 128 Zeichen
  • offerIdstring | nullPflicht
    max. 128 Zeichen
  • projectIdstring | nullPflicht
    max. 128 Zeichen
  • recurringInvoiceIdstring | nullPflicht
    max. 128 Zeichen
  • canceledByInvoiceIdstring | nullPflicht
    Stornorechnung zu dieser Rechnung
    max. 128 Zeichen
  • debtIdstring | nullPflicht
    Forderung im Mahnwesen (nach Übergabe)
    max. 128 Zeichen
  • showGiroCodebooleanPflicht
  • einvoiceFormat"none" | "zugferd" | "xrechnung"Pflicht
  • language"de" | "en"Pflicht
    Belegsprache (beim Festschreiben fixiert)
  • dispatchobjectPflicht
    • countintegerPflicht
      -9007199254740991–9007199254740991
    • lastChannel"email" | "post" | nullPflicht
    • lastSentAtstring (date-time) | nullPflicht
      Zeitpunkt (ISO 8601)
  • pdfobject | nullPflicht
    archiviertes PDF (nach Festschreiben)
    • sha256stringPflicht
    • createdAtstring (date-time)Pflicht
      Zeitpunkt (ISO 8601)
  • lockedbooleanPflicht
  • lockedAtstring (date-time) | nullPflicht
    Zeitpunkt (ISO 8601)
  • paidAtstring (date-time) | nullPflicht
    Zeitpunkt (ISO 8601)
  • handedOverAtstring (date-time) | nullPflicht
    Zeitpunkt (ISO 8601)
  • createdAtstring (date-time)Pflicht
    Zeitpunkt (ISO 8601)
  • updatedAtstring (date-time)Pflicht
    Zeitpunkt (ISO 8601)

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

curl -X POST 'https://www.debt-flow.io/api/v1/invoices/ID/hand-over' \
  -H "Authorization: Bearer $DEBTFLOW_API_KEY"
Antwort 200
{
  "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",
    "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"
  },
  "dueDate": "2026-11-01",
  "paymentTermsDays": 0,
  "priceMode": "net",
  "taxTreatment": "regular",
  "taxNotice": "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
        }
      ]
    }
  ],
  "amountDueCents": 0,
  "paidCents": 0,
  "creditedCents": 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"
}
GET/api/v1/invoices/{id}/payments

Bei Gutschriften und Stornorechnungen: Erstattungen an den Kunden.

Berechtigung: invoices:read

Pfadparameter

  • idstringPflicht
    ID der Ressource
    max. 128 Zeichen

Query-Parameter

  • limitinteger
    Anzahl Einträge (1–100)
    1–100 · Standard: 25
  • cursorstring
    `nextCursor` der vorherigen Seite
    max. 500 Zeichen

Antwort 200

  • object"list"Pflicht
  • dataArray<InvoicePayment>Pflicht
    • idstringPflicht
      max. 128 Zeichen
    • invoiceIdstringPflicht
      max. 128 Zeichen
    • amountCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • datestring (date)Pflicht
      Datum (YYYY-MM-DD)
    • method"bank" | "cash" | "stripe" | "paypal" | "offset" | "other"Pflicht
    • bankTransactionIdstring | nullPflicht
      max. 128 Zeichen
    • notestring | nullPflicht
    • createdAtstring (date-time)Pflicht
      Zeitpunkt (ISO 8601)
  • hasMorebooleanPflicht
  • nextCursorstring | nullPflicht

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

curl 'https://www.debt-flow.io/api/v1/invoices/ID/payments' \
  -H "Authorization: Bearer $DEBTFLOW_API_KEY"
Antwort 200
{
  "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"
}
POST/api/v1/invoices/{id}/payments

Erfasst einen Zahlungseingang und berechnet offenen Betrag und Status neu (teilbezahlt/bezahlt). Beträge über dem offenen Betrag: 422 overpayment. Löst invoice.partially_paid bzw. invoice.paid aus.

Berechtigung: invoices:write

Pfadparameter

  • idstringPflicht
    ID der Ressource
    max. 128 Zeichen

Header

  • Idempotency-Keystring
    Eindeutiger Schlüssel (8–255 Zeichen). Wiederholte Anfragen mit gleichem Schlüssel liefern 24 h lang dieselbe Antwort.
    max. 255 Zeichen

Body (JSON) · InvoicePaymentCreate

  • amountCentsintegerPflicht
    Betrag in Cent
    0–100000000000
  • datestring (date)Pflicht
    Datum (YYYY-MM-DD)
  • method"bank" | "cash" | "stripe" | "paypal" | "offset" | "other"
    Standard: "bank"
  • bankTransactionIdstring
    max. 128 Zeichen
  • notestring
    max. 500 Zeichen

Antwort 201 · InvoicePaymentResult

  • paymentInvoicePaymentPflicht
    • idstringPflicht
      max. 128 Zeichen
    • invoiceIdstringPflicht
      max. 128 Zeichen
    • amountCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • datestring (date)Pflicht
      Datum (YYYY-MM-DD)
    • method"bank" | "cash" | "stripe" | "paypal" | "offset" | "other"Pflicht
    • bankTransactionIdstring | nullPflicht
      max. 128 Zeichen
    • notestring | nullPflicht
    • createdAtstring (date-time)Pflicht
      Zeitpunkt (ISO 8601)
  • invoiceInvoicePflicht
    • idstringPflicht
      max. 128 Zeichen
    • object"invoice"Pflicht
    • type"invoice" | "credit_note" | "cancellation"Pflicht
    • kind"standard" | "advance" | "final"Pflicht
    • status"draft" | "open" | "partially_paid" | "paid" | "overdue" | "canceled"Pflicht
    • numberstring | nullPflicht
      Belegnummer; erst beim Festschreiben vergeben
    • contactIdstring | nullPflicht
      max. 128 Zeichen
    • recipientDocumentRecipientPflicht
      • namestringPflicht
        Firma oder Name
        max. 160 Zeichen
      • additionstring
        Zusatz, z. B. z. Hd. Frau Muster
        max. 160 Zeichen
      • streetstringPflicht
        max. 160 Zeichen · Standard: ""
      • zipCodestringPflicht
        max. 10 Zeichen · Standard: ""
      • citystringPflicht
        max. 80 Zeichen · Standard: ""
      • countrystringPflicht
        Ländercode ISO 3166-1 alpha-2
        max. 2 Zeichen · Standard: "DE"
      • emailstring (email)
        Rechnungsempfänger (E-Mail)
        max. 254 Zeichen
      • vatIdstring
        USt-IdNr. des Empfängers (Pflicht bei Reverse Charge/ig. Lieferung)
      • leitwegIdstring
        Leitweg-ID (XRechnung an Behörden)
        max. 60 Zeichen
      • customerNumberstring
        Kundennummer (beim Festschreiben vergeben)
        max. 40 Zeichen
    • senderSenderSnapshot | nullPflicht
      Absender-Schnappschuss (ab Festschreiben)
      • companyNamestringPflicht
      • ownerNamestring
      • legalFormstring
      • managingDirectorsstring
      • streetstringPflicht
      • zipCodestringPflicht
      • citystringPflicht
      • countryCodestringPflicht
      • phonestring
      • emailstring
      • websitestring
      • taxNumberstring
      • vatIdstring
      • smallBusinessbooleanPflicht
      • commercialRegisterobject
      • bankobject
      • invoiceFooterstring
    • issueDatestring (date) | nullPflicht
      Datum (YYYY-MM-DD)
    • serviceDatestring (date) | nullPflicht
      Datum (YYYY-MM-DD)
    • servicePeriodServicePeriod | nullPflicht
      • fromstring (date)Pflicht
        Datum (YYYY-MM-DD)
      • tostring (date)Pflicht
        Datum (YYYY-MM-DD)
    • dueDatestring (date) | nullPflicht
      Datum (YYYY-MM-DD)
    • paymentTermsDaysintegerPflicht
      -9007199254740991–9007199254740991
    • priceMode"net" | "gross"Pflicht
    • taxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"Pflicht
      Steuerbehandlung des Belegs
    • taxNoticestring | nullPflicht
      Pflichthinweis (§ 19, § 13b, ig. Lieferung …)
    • currency"EUR"Pflicht
    • subjectstringPflicht
    • introTextstringPflicht
    • closingTextstringPflicht
    • referencestringPflicht
    • linesArray<DocumentLine>Pflicht
      • idstring
        stabile Positions-ID (vom Server vergeben, wenn leer)
        max. 40 Zeichen
      • type"item" | "text" | "subtotal"
        Position, reine Textzeile oder Zwischensumme
        Standard: "item"
      • articleIdstring
        Bezug zum Artikelstamm
        max. 128 Zeichen
      • titlestringPflicht
        max. 300 Zeichen
      • descriptionstring
        max. 5000 Zeichen
      • quantitynumber
        -1000000–1000000 · Standard: 1
      • unitstring
        Einheit, z. B. Stk, Std, pauschal (UN/ECE Rec 20 für E-Rechnung: Modul)
        max. 20 Zeichen
      • unitPriceCentsinteger
        Betrag in Cent
        -100000000000–100000000000 · Standard: 0
      • discountPercentnumber
        0–100
      • taxRatenumber
        Steuersatz in Prozent (19, 7, 0 …)
        0–100 · Standard: 19
      • totalCentsinteger
        Betrag in Cent
        -100000000000–100000000000
      • servicePeriodobject
      • projectIdstring
        max. 128 Zeichen
      • timeEntryIdsArray<string>
        max. 128 Zeichen
    • totalsDocumentTotalsPflicht
      • netCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • taxCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • grossCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • groupsArray<object>Pflicht
    • deductionsArray<InvoiceDeduction>Pflicht
      Schlussrechnung: abgezogene Abschlagsrechnungen
      • invoiceIdstringPflicht
        max. 128 Zeichen
      • numberstringPflicht
      • issueDatestring (date)Pflicht
        Datum (YYYY-MM-DD)
      • netCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • taxCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • grossCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • groupsArray<object>Pflicht
    • amountDueCentsintegerPflicht
      Zahlbetrag (Brutto abzüglich Abschläge)
      -100000000000–100000000000
    • paidCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • creditedCentsintegerPflicht
      durch Gutschriften gemindert
      -100000000000–100000000000
    • openCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • relatedInvoiceIdstring | nullPflicht
      max. 128 Zeichen
    • advanceInvoiceIdsArray<string>Pflicht
      max. 128 Zeichen
    • offerIdstring | nullPflicht
      max. 128 Zeichen
    • projectIdstring | nullPflicht
      max. 128 Zeichen
    • recurringInvoiceIdstring | nullPflicht
      max. 128 Zeichen
    • canceledByInvoiceIdstring | nullPflicht
      Stornorechnung zu dieser Rechnung
      max. 128 Zeichen
    • debtIdstring | nullPflicht
      Forderung im Mahnwesen (nach Übergabe)
      max. 128 Zeichen
    • showGiroCodebooleanPflicht
    • einvoiceFormat"none" | "zugferd" | "xrechnung"Pflicht
    • language"de" | "en"Pflicht
      Belegsprache (beim Festschreiben fixiert)
    • dispatchobjectPflicht
      • countintegerPflicht
        -9007199254740991–9007199254740991
      • lastChannel"email" | "post" | nullPflicht
      • lastSentAtstring (date-time) | nullPflicht
        Zeitpunkt (ISO 8601)
    • pdfobject | nullPflicht
      archiviertes PDF (nach Festschreiben)
      • sha256stringPflicht
      • createdAtstring (date-time)Pflicht
        Zeitpunkt (ISO 8601)
    • lockedbooleanPflicht
    • lockedAtstring (date-time) | nullPflicht
      Zeitpunkt (ISO 8601)
    • paidAtstring (date-time) | nullPflicht
      Zeitpunkt (ISO 8601)
    • handedOverAtstring (date-time) | nullPflicht
      Zeitpunkt (ISO 8601)
    • createdAtstring (date-time)Pflicht
      Zeitpunkt (ISO 8601)
    • updatedAtstring (date-time)Pflicht
      Zeitpunkt (ISO 8601)

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

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"
}'
Antwort 201
{
  "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",
      "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
    },
    "dueDate": "2026-11-01",
    "paymentTermsDays": 0,
    "priceMode": "net",
    "taxTreatment": "regular",
    "taxNotice": "string",
    "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
      }
    ],
    "amountDueCents": 0,
    "paidCents": 0,
    "creditedCents": 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"
  }
}
DELETE/api/v1/invoices/{id}/payments/{paymentId}

Entfernt eine irrtümlich erfasste Zahlung (protokolliert) und liefert die Rechnung mit neu berechnetem Status.

Berechtigung: invoices:write

Pfadparameter

  • idstringPflicht
    max. 128 Zeichen
  • paymentIdstringPflicht
    max. 128 Zeichen

Antwort 200 · Invoice

  • idstringPflicht
    max. 128 Zeichen
  • object"invoice"Pflicht
  • type"invoice" | "credit_note" | "cancellation"Pflicht
  • kind"standard" | "advance" | "final"Pflicht
  • status"draft" | "open" | "partially_paid" | "paid" | "overdue" | "canceled"Pflicht
  • numberstring | nullPflicht
    Belegnummer; erst beim Festschreiben vergeben
  • contactIdstring | nullPflicht
    max. 128 Zeichen
  • recipientDocumentRecipientPflicht
    • namestringPflicht
      Firma oder Name
      max. 160 Zeichen
    • additionstring
      Zusatz, z. B. z. Hd. Frau Muster
      max. 160 Zeichen
    • streetstringPflicht
      max. 160 Zeichen · Standard: ""
    • zipCodestringPflicht
      max. 10 Zeichen · Standard: ""
    • citystringPflicht
      max. 80 Zeichen · Standard: ""
    • countrystringPflicht
      Ländercode ISO 3166-1 alpha-2
      max. 2 Zeichen · Standard: "DE"
    • emailstring (email)
      Rechnungsempfänger (E-Mail)
      max. 254 Zeichen
    • vatIdstring
      USt-IdNr. des Empfängers (Pflicht bei Reverse Charge/ig. Lieferung)
    • leitwegIdstring
      Leitweg-ID (XRechnung an Behörden)
      max. 60 Zeichen
    • customerNumberstring
      Kundennummer (beim Festschreiben vergeben)
      max. 40 Zeichen
  • senderSenderSnapshot | nullPflicht
    Absender-Schnappschuss (ab Festschreiben)
    • companyNamestringPflicht
    • ownerNamestring
    • legalFormstring
    • managingDirectorsstring
    • streetstringPflicht
    • zipCodestringPflicht
    • citystringPflicht
    • countryCodestringPflicht
    • phonestring
    • emailstring
    • websitestring
    • taxNumberstring
    • vatIdstring
    • smallBusinessbooleanPflicht
    • commercialRegisterobject
      • courtstring
      • numberstring
    • bankobject
      • accountHolderstring
      • ibanstring
      • bicstring
      • bankNamestring
    • invoiceFooterstring
  • issueDatestring (date) | nullPflicht
    Datum (YYYY-MM-DD)
  • serviceDatestring (date) | nullPflicht
    Datum (YYYY-MM-DD)
  • servicePeriodServicePeriod | nullPflicht
    • fromstring (date)Pflicht
      Datum (YYYY-MM-DD)
    • tostring (date)Pflicht
      Datum (YYYY-MM-DD)
  • dueDatestring (date) | nullPflicht
    Datum (YYYY-MM-DD)
  • paymentTermsDaysintegerPflicht
    -9007199254740991–9007199254740991
  • priceMode"net" | "gross"Pflicht
  • taxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"Pflicht
    Steuerbehandlung des Belegs
  • taxNoticestring | nullPflicht
    Pflichthinweis (§ 19, § 13b, ig. Lieferung …)
  • currency"EUR"Pflicht
  • subjectstringPflicht
  • introTextstringPflicht
  • closingTextstringPflicht
  • referencestringPflicht
  • linesArray<DocumentLine>Pflicht
    • idstring
      stabile Positions-ID (vom Server vergeben, wenn leer)
      max. 40 Zeichen
    • type"item" | "text" | "subtotal"
      Position, reine Textzeile oder Zwischensumme
      Standard: "item"
    • articleIdstring
      Bezug zum Artikelstamm
      max. 128 Zeichen
    • titlestringPflicht
      max. 300 Zeichen
    • descriptionstring
      max. 5000 Zeichen
    • quantitynumber
      -1000000–1000000 · Standard: 1
    • unitstring
      Einheit, z. B. Stk, Std, pauschal (UN/ECE Rec 20 für E-Rechnung: Modul)
      max. 20 Zeichen
    • unitPriceCentsinteger
      Betrag in Cent
      -100000000000–100000000000 · Standard: 0
    • discountPercentnumber
      0–100
    • taxRatenumber
      Steuersatz in Prozent (19, 7, 0 …)
      0–100 · Standard: 19
    • totalCentsinteger
      Betrag in Cent
      -100000000000–100000000000
    • servicePeriodobject
      • fromstring (date)Pflicht
        Datum (YYYY-MM-DD)
      • tostring (date)Pflicht
        Datum (YYYY-MM-DD)
    • projectIdstring
      max. 128 Zeichen
    • timeEntryIdsArray<string>
      max. 128 Zeichen
  • totalsDocumentTotalsPflicht
    • netCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • taxCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • grossCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • groupsArray<object>Pflicht
      • taxRatenumberPflicht
      • categorystringPflicht
      • netCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • taxCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • grossCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
  • deductionsArray<InvoiceDeduction>Pflicht
    Schlussrechnung: abgezogene Abschlagsrechnungen
    • invoiceIdstringPflicht
      max. 128 Zeichen
    • numberstringPflicht
    • issueDatestring (date)Pflicht
      Datum (YYYY-MM-DD)
    • netCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • taxCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • grossCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • groupsArray<object>Pflicht
      • taxRatenumberPflicht
      • netCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • taxCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
  • amountDueCentsintegerPflicht
    Zahlbetrag (Brutto abzüglich Abschläge)
    -100000000000–100000000000
  • paidCentsintegerPflicht
    Betrag in Cent
    -100000000000–100000000000
  • creditedCentsintegerPflicht
    durch Gutschriften gemindert
    -100000000000–100000000000
  • openCentsintegerPflicht
    Betrag in Cent
    -100000000000–100000000000
  • relatedInvoiceIdstring | nullPflicht
    max. 128 Zeichen
  • advanceInvoiceIdsArray<string>Pflicht
    max. 128 Zeichen
  • offerIdstring | nullPflicht
    max. 128 Zeichen
  • projectIdstring | nullPflicht
    max. 128 Zeichen
  • recurringInvoiceIdstring | nullPflicht
    max. 128 Zeichen
  • canceledByInvoiceIdstring | nullPflicht
    Stornorechnung zu dieser Rechnung
    max. 128 Zeichen
  • debtIdstring | nullPflicht
    Forderung im Mahnwesen (nach Übergabe)
    max. 128 Zeichen
  • showGiroCodebooleanPflicht
  • einvoiceFormat"none" | "zugferd" | "xrechnung"Pflicht
  • language"de" | "en"Pflicht
    Belegsprache (beim Festschreiben fixiert)
  • dispatchobjectPflicht
    • countintegerPflicht
      -9007199254740991–9007199254740991
    • lastChannel"email" | "post" | nullPflicht
    • lastSentAtstring (date-time) | nullPflicht
      Zeitpunkt (ISO 8601)
  • pdfobject | nullPflicht
    archiviertes PDF (nach Festschreiben)
    • sha256stringPflicht
    • createdAtstring (date-time)Pflicht
      Zeitpunkt (ISO 8601)
  • lockedbooleanPflicht
  • lockedAtstring (date-time) | nullPflicht
    Zeitpunkt (ISO 8601)
  • paidAtstring (date-time) | nullPflicht
    Zeitpunkt (ISO 8601)
  • handedOverAtstring (date-time) | nullPflicht
    Zeitpunkt (ISO 8601)
  • createdAtstring (date-time)Pflicht
    Zeitpunkt (ISO 8601)
  • updatedAtstring (date-time)Pflicht
    Zeitpunkt (ISO 8601)

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

curl -X DELETE 'https://www.debt-flow.io/api/v1/invoices/ID/payments/PAYMENTID' \
  -H "Authorization: Bearer $DEBTFLOW_API_KEY"
Antwort 200
{
  "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",
    "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"
  },
  "dueDate": "2026-11-01",
  "paymentTermsDays": 0,
  "priceMode": "net",
  "taxTreatment": "regular",
  "taxNotice": "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
        }
      ]
    }
  ],
  "amountDueCents": 0,
  "paidCents": 0,
  "creditedCents": 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"
}
GET/api/v1/invoices/{id}/pdf

Festgeschriebene Belege: das beim ersten Abruf archivierte, unveränderte PDF (SHA-256 in pdf.sha256). Entwürfe: Vorschau mit Kennzeichnung „Entwurf“.

Berechtigung: invoices:read

Pfadparameter

  • idstringPflicht
    ID der Ressource
    max. 128 Zeichen

Antwort 200

Datei (application/pdf).

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

curl 'https://www.debt-flow.io/api/v1/invoices/ID/pdf' \
  -H "Authorization: Bearer $DEBTFLOW_API_KEY"
POST/api/v1/invoices/{id}/send

channel: email sendet das PDF als Anhang im Namen Ihrer Firma (Antworten an Ihre Rechnungs-E-Mail). channel: post druckt und versendet das PDF über Briefdiener (kostenpflichtig bzw. Monatskontingent, optional als Einschreiben) und verlangt zusätzlich den Scope letters:write. Nur festgeschriebene Belege; mit finalize: true wird ein Entwurf vorher festgeschrieben.

Berechtigung: invoices:write

Pfadparameter

  • idstringPflicht
    ID der Ressource
    max. 128 Zeichen

Header

  • Idempotency-Keystring
    Eindeutiger Schlüssel (8–255 Zeichen). Wiederholte Anfragen mit gleichem Schlüssel liefern 24 h lang dieselbe Antwort.
    max. 255 Zeichen

Body (JSON) · InvoiceSend

  • channel"email" | "post"Pflicht
  • toArray<string (email)>
    E-Mail: Empfänger; Standard Rechnungs-E-Mail des Kontakts
    max. 254 Zeichen
  • ccArray<string (email)>
    max. 254 Zeichen
  • copyToSelfboolean
    E-Mail: Kopie an die eigene Rechnungs-E-Mail
  • subjectstring
    max. 200 Zeichen
  • messagestring
    E-Mail-Text; Platzhalter {nummer} {betrag} {faellig} {kunde} {firma}
    max. 5000 Zeichen
  • registeredboolean
    Post: als Einschreiben
  • finalizeboolean
    Entwurf vor dem Versand festschreiben

Antwort 201 · InvoiceDispatch

  • idstringPflicht
    max. 128 Zeichen
  • invoiceIdstringPflicht
    max. 128 Zeichen
  • channel"email" | "post"Pflicht
  • status"sending" | "sent" | "failed"Pflicht
  • toArray<string>Pflicht
  • subjectstring | nullPflicht
  • registeredbooleanPflicht
  • letterIdstring | nullPflicht
  • trackingRefstring | nullPflicht
  • pageCountinteger | nullPflicht
    -9007199254740991–9007199254740991
  • priceEurostring | nullPflicht
  • errorstring | nullPflicht
  • actorActor | nullPflicht
    • type"user" | "api_key" | "oauth" | "system"Pflicht
    • idstringPflicht
    • labelstring
  • createdAtstring (date-time)Pflicht
    Zeitpunkt (ISO 8601)
  • sentAtstring (date-time) | nullPflicht
    Zeitpunkt (ISO 8601)

Mögliche Fehler: 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
}'
Antwort 201
{
  "id": "string",
  "invoiceId": "string",
  "channel": "email",
  "status": "sending",
  "to": [
    "string"
  ],
  "subject": "string",
  "registered": false,
  "letterId": "string",
  "trackingRef": "string",
  "pageCount": 0,
  "priceEuro": "string",
  "error": "string",
  "actor": {
    "type": "user",
    "id": "string",
    "label": "string"
  },
  "createdAt": "2026-11-01T09:30:00.000Z",
  "sentAt": "2026-11-01T09:30:00.000Z"
}
GET/api/v1/invoices/summary

Anzahl der Entwürfe sowie Anzahl und offener Betrag der offenen und überfälligen Rechnungen.

Berechtigung: invoices:read

Antwort 200 · InvoiceSummary

  • draftobjectPflicht
    • countintegerPflicht
      -9007199254740991–9007199254740991
  • openobjectPflicht
    • countintegerPflicht
      -9007199254740991–9007199254740991
    • openCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
  • overdueobjectPflicht
    • countintegerPflicht
      -9007199254740991–9007199254740991
    • openCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000

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

curl 'https://www.debt-flow.io/api/v1/invoices/summary' \
  -H "Authorization: Bearer $DEBTFLOW_API_KEY"
Antwort 200
{
  "draft": {
    "count": 0
  },
  "open": {
    "count": 0,
    "openCents": 0
  },
  "overdue": {
    "count": 0,
    "openCents": 0
  }
}
GET/api/v1/recurring-invoices

Berechtigung: invoices:read

Query-Parameter

  • limitinteger
    Anzahl Einträge (1–100)
    1–100 · Standard: 25
  • cursorstring
    `nextCursor` der vorherigen Seite
    max. 500 Zeichen

Antwort 200

  • object"list"Pflicht
  • dataArray<RecurringInvoice>Pflicht
    • idstringPflicht
      max. 128 Zeichen
    • object"recurring_invoice"Pflicht
    • namestringPflicht
    • activebooleanPflicht
    • contactIdstringPflicht
      max. 128 Zeichen
    • interval"weekly" | "monthly" | "quarterly" | "half_yearly" | "yearly"Pflicht
    • nextRunDatestring (date)Pflicht
      Datum (YYYY-MM-DD)
    • endDatestring (date) | nullPflicht
      Datum (YYYY-MM-DD)
    • servicePeriodMode"none" | "current_period" | "previous_period"Pflicht
    • autoFinalizebooleanPflicht
    • autoSendbooleanPflicht
    • priceMode"net" | "gross" | nullPflicht
    • taxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable" | nullPflicht
      Steuerbehandlung des Belegs
    • paymentTermsDaysinteger | nullPflicht
      -9007199254740991–9007199254740991
    • subjectstringPflicht
    • introTextstringPflicht
    • closingTextstringPflicht
    • referencestringPflicht
    • linesArray<DocumentLine>Pflicht
      • idstring
        stabile Positions-ID (vom Server vergeben, wenn leer)
        max. 40 Zeichen
      • type"item" | "text" | "subtotal"
        Position, reine Textzeile oder Zwischensumme
        Standard: "item"
      • articleIdstring
        Bezug zum Artikelstamm
        max. 128 Zeichen
      • titlestringPflicht
        max. 300 Zeichen
      • descriptionstring
        max. 5000 Zeichen
      • quantitynumber
        -1000000–1000000 · Standard: 1
      • unitstring
        Einheit, z. B. Stk, Std, pauschal (UN/ECE Rec 20 für E-Rechnung: Modul)
        max. 20 Zeichen
      • unitPriceCentsinteger
        Betrag in Cent
        -100000000000–100000000000 · Standard: 0
      • discountPercentnumber
        0–100
      • taxRatenumber
        Steuersatz in Prozent (19, 7, 0 …)
        0–100 · Standard: 19
      • totalCentsinteger
        Betrag in Cent
        -100000000000–100000000000
      • servicePeriodobject
      • projectIdstring
        max. 128 Zeichen
      • timeEntryIdsArray<string>
        max. 128 Zeichen
    • totalsDocumentTotalsPflicht
      Vorschau mit den aktuellen Positionen
      • netCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • taxCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • grossCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • groupsArray<object>Pflicht
    • invoiceCountintegerPflicht
      -9007199254740991–9007199254740991
    • lastRunAtstring (date-time) | nullPflicht
      Zeitpunkt (ISO 8601)
    • lastInvoiceIdstring | nullPflicht
      max. 128 Zeichen
    • lastErrorstring | nullPflicht
    • createdAtstring (date-time)Pflicht
      Zeitpunkt (ISO 8601)
    • updatedAtstring (date-time)Pflicht
      Zeitpunkt (ISO 8601)
  • hasMorebooleanPflicht
  • nextCursorstring | nullPflicht

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

curl 'https://www.debt-flow.io/api/v1/recurring-invoices' \
  -H "Authorization: Bearer $DEBTFLOW_API_KEY"
Antwort 200
{
  "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"
}
POST/api/v1/recurring-invoices

Vorlage mit Kunde, Positionen und Intervall. Der tägliche Lauf erzeugt am Termin eine Rechnung (Entwurf oder festgeschrieben, optional per E-Mail versendet). Platzhalter in Betreff/Einleitung/Positionen: {zeitraum} {monat} {jahr}.

Berechtigung: invoices:write

Header

  • Idempotency-Keystring
    Eindeutiger Schlüssel (8–255 Zeichen). Wiederholte Anfragen mit gleichem Schlüssel liefern 24 h lang dieselbe Antwort.
    max. 255 Zeichen

Body (JSON) · RecurringInvoiceCreate

  • namestringPflicht
    max. 120 Zeichen
  • activeboolean
    Standard: true
  • contactIdstringPflicht
    max. 128 Zeichen
  • interval"weekly" | "monthly" | "quarterly" | "half_yearly" | "yearly"Pflicht
  • nextRunDatestring (date)Pflicht
    Nächstes Rechnungsdatum
  • endDatestring (date) | null
    letztes mögliches Rechnungsdatum (leer = unbegrenzt)
  • servicePeriodMode"none" | "current_period" | "previous_period"
    Standard: "none"
  • autoFinalizeboolean
    Rechnung sofort festschreiben (sonst Entwurf zur Prüfung)
    Standard: false
  • autoSendboolean
    festgeschriebene Rechnung per E-Mail senden
    Standard: false
  • priceMode"net" | "gross"
  • taxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"
    Steuerbehandlung des Belegs
  • paymentTermsDaysinteger
    0–365
  • subjectstring
    Platzhalter {zeitraum} {monat} {jahr}
    max. 200 Zeichen
  • introTextstring
    max. 5000 Zeichen
  • closingTextstring
    max. 5000 Zeichen
  • referencestring
    max. 100 Zeichen
  • linesArray<DocumentLine>Pflicht
    • idstring
      stabile Positions-ID (vom Server vergeben, wenn leer)
      max. 40 Zeichen
    • type"item" | "text" | "subtotal"
      Position, reine Textzeile oder Zwischensumme
      Standard: "item"
    • articleIdstring
      Bezug zum Artikelstamm
      max. 128 Zeichen
    • titlestringPflicht
      max. 300 Zeichen
    • descriptionstring
      max. 5000 Zeichen
    • quantitynumber
      -1000000–1000000 · Standard: 1
    • unitstring
      Einheit, z. B. Stk, Std, pauschal (UN/ECE Rec 20 für E-Rechnung: Modul)
      max. 20 Zeichen
    • unitPriceCentsinteger
      Betrag in Cent
      -100000000000–100000000000 · Standard: 0
    • discountPercentnumber
      0–100
    • taxRatenumber
      Steuersatz in Prozent (19, 7, 0 …)
      0–100 · Standard: 19
    • totalCentsinteger
      Betrag in Cent
      -100000000000–100000000000
    • servicePeriodobject
      • fromstring (date)Pflicht
        Datum (YYYY-MM-DD)
      • tostring (date)Pflicht
        Datum (YYYY-MM-DD)
    • projectIdstring
      max. 128 Zeichen
    • timeEntryIdsArray<string>
      max. 128 Zeichen

Antwort 201 · RecurringInvoice

  • idstringPflicht
    max. 128 Zeichen
  • object"recurring_invoice"Pflicht
  • namestringPflicht
  • activebooleanPflicht
  • contactIdstringPflicht
    max. 128 Zeichen
  • interval"weekly" | "monthly" | "quarterly" | "half_yearly" | "yearly"Pflicht
  • nextRunDatestring (date)Pflicht
    Datum (YYYY-MM-DD)
  • endDatestring (date) | nullPflicht
    Datum (YYYY-MM-DD)
  • servicePeriodMode"none" | "current_period" | "previous_period"Pflicht
  • autoFinalizebooleanPflicht
  • autoSendbooleanPflicht
  • priceMode"net" | "gross" | nullPflicht
  • taxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable" | nullPflicht
    Steuerbehandlung des Belegs
  • paymentTermsDaysinteger | nullPflicht
    -9007199254740991–9007199254740991
  • subjectstringPflicht
  • introTextstringPflicht
  • closingTextstringPflicht
  • referencestringPflicht
  • linesArray<DocumentLine>Pflicht
    • idstring
      stabile Positions-ID (vom Server vergeben, wenn leer)
      max. 40 Zeichen
    • type"item" | "text" | "subtotal"
      Position, reine Textzeile oder Zwischensumme
      Standard: "item"
    • articleIdstring
      Bezug zum Artikelstamm
      max. 128 Zeichen
    • titlestringPflicht
      max. 300 Zeichen
    • descriptionstring
      max. 5000 Zeichen
    • quantitynumber
      -1000000–1000000 · Standard: 1
    • unitstring
      Einheit, z. B. Stk, Std, pauschal (UN/ECE Rec 20 für E-Rechnung: Modul)
      max. 20 Zeichen
    • unitPriceCentsinteger
      Betrag in Cent
      -100000000000–100000000000 · Standard: 0
    • discountPercentnumber
      0–100
    • taxRatenumber
      Steuersatz in Prozent (19, 7, 0 …)
      0–100 · Standard: 19
    • totalCentsinteger
      Betrag in Cent
      -100000000000–100000000000
    • servicePeriodobject
      • fromstring (date)Pflicht
        Datum (YYYY-MM-DD)
      • tostring (date)Pflicht
        Datum (YYYY-MM-DD)
    • projectIdstring
      max. 128 Zeichen
    • timeEntryIdsArray<string>
      max. 128 Zeichen
  • totalsDocumentTotalsPflicht
    Vorschau mit den aktuellen Positionen
    • netCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • taxCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • grossCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • groupsArray<object>Pflicht
      • taxRatenumberPflicht
      • categorystringPflicht
      • netCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • taxCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • grossCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
  • invoiceCountintegerPflicht
    -9007199254740991–9007199254740991
  • lastRunAtstring (date-time) | nullPflicht
    Zeitpunkt (ISO 8601)
  • lastInvoiceIdstring | nullPflicht
    max. 128 Zeichen
  • lastErrorstring | nullPflicht
  • createdAtstring (date-time)Pflicht
    Zeitpunkt (ISO 8601)
  • updatedAtstring (date-time)Pflicht
    Zeitpunkt (ISO 8601)

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

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"
      ]
    }
  ]
}'
Antwort 201
{
  "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"
}
GET/api/v1/recurring-invoices/{id}

Berechtigung: invoices:read

Pfadparameter

  • idstringPflicht
    ID der Ressource
    max. 128 Zeichen

Antwort 200 · RecurringInvoice

  • idstringPflicht
    max. 128 Zeichen
  • object"recurring_invoice"Pflicht
  • namestringPflicht
  • activebooleanPflicht
  • contactIdstringPflicht
    max. 128 Zeichen
  • interval"weekly" | "monthly" | "quarterly" | "half_yearly" | "yearly"Pflicht
  • nextRunDatestring (date)Pflicht
    Datum (YYYY-MM-DD)
  • endDatestring (date) | nullPflicht
    Datum (YYYY-MM-DD)
  • servicePeriodMode"none" | "current_period" | "previous_period"Pflicht
  • autoFinalizebooleanPflicht
  • autoSendbooleanPflicht
  • priceMode"net" | "gross" | nullPflicht
  • taxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable" | nullPflicht
    Steuerbehandlung des Belegs
  • paymentTermsDaysinteger | nullPflicht
    -9007199254740991–9007199254740991
  • subjectstringPflicht
  • introTextstringPflicht
  • closingTextstringPflicht
  • referencestringPflicht
  • linesArray<DocumentLine>Pflicht
    • idstring
      stabile Positions-ID (vom Server vergeben, wenn leer)
      max. 40 Zeichen
    • type"item" | "text" | "subtotal"
      Position, reine Textzeile oder Zwischensumme
      Standard: "item"
    • articleIdstring
      Bezug zum Artikelstamm
      max. 128 Zeichen
    • titlestringPflicht
      max. 300 Zeichen
    • descriptionstring
      max. 5000 Zeichen
    • quantitynumber
      -1000000–1000000 · Standard: 1
    • unitstring
      Einheit, z. B. Stk, Std, pauschal (UN/ECE Rec 20 für E-Rechnung: Modul)
      max. 20 Zeichen
    • unitPriceCentsinteger
      Betrag in Cent
      -100000000000–100000000000 · Standard: 0
    • discountPercentnumber
      0–100
    • taxRatenumber
      Steuersatz in Prozent (19, 7, 0 …)
      0–100 · Standard: 19
    • totalCentsinteger
      Betrag in Cent
      -100000000000–100000000000
    • servicePeriodobject
      • fromstring (date)Pflicht
        Datum (YYYY-MM-DD)
      • tostring (date)Pflicht
        Datum (YYYY-MM-DD)
    • projectIdstring
      max. 128 Zeichen
    • timeEntryIdsArray<string>
      max. 128 Zeichen
  • totalsDocumentTotalsPflicht
    Vorschau mit den aktuellen Positionen
    • netCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • taxCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • grossCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • groupsArray<object>Pflicht
      • taxRatenumberPflicht
      • categorystringPflicht
      • netCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • taxCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • grossCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
  • invoiceCountintegerPflicht
    -9007199254740991–9007199254740991
  • lastRunAtstring (date-time) | nullPflicht
    Zeitpunkt (ISO 8601)
  • lastInvoiceIdstring | nullPflicht
    max. 128 Zeichen
  • lastErrorstring | nullPflicht
  • createdAtstring (date-time)Pflicht
    Zeitpunkt (ISO 8601)
  • updatedAtstring (date-time)Pflicht
    Zeitpunkt (ISO 8601)

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

curl 'https://www.debt-flow.io/api/v1/recurring-invoices/ID' \
  -H "Authorization: Bearer $DEBTFLOW_API_KEY"
Antwort 200
{
  "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"
}
PATCH/api/v1/recurring-invoices/{id}

Änderungen gelten ab dem nächsten Termin. active: false pausiert die Vorlage.

Berechtigung: invoices:write

Pfadparameter

  • idstringPflicht
    ID der Ressource
    max. 128 Zeichen

Body (JSON) · RecurringInvoiceUpdate

  • namestring
    max. 120 Zeichen
  • activeboolean
  • contactIdstring
    max. 128 Zeichen
  • interval"weekly" | "monthly" | "quarterly" | "half_yearly" | "yearly"
  • nextRunDatestring (date)
    Nächstes Rechnungsdatum
  • endDatestring (date) | null
    letztes mögliches Rechnungsdatum (leer = unbegrenzt)
  • servicePeriodMode"none" | "current_period" | "previous_period"
  • autoFinalizeboolean
    Rechnung sofort festschreiben (sonst Entwurf zur Prüfung)
  • autoSendboolean
    festgeschriebene Rechnung per E-Mail senden
  • priceMode"net" | "gross"
  • taxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"
    Steuerbehandlung des Belegs
  • paymentTermsDaysinteger
    0–365
  • subjectstring
    Platzhalter {zeitraum} {monat} {jahr}
    max. 200 Zeichen
  • introTextstring
    max. 5000 Zeichen
  • closingTextstring
    max. 5000 Zeichen
  • referencestring
    max. 100 Zeichen
  • linesArray<DocumentLine>
    • idstring
      stabile Positions-ID (vom Server vergeben, wenn leer)
      max. 40 Zeichen
    • type"item" | "text" | "subtotal"
      Position, reine Textzeile oder Zwischensumme
      Standard: "item"
    • articleIdstring
      Bezug zum Artikelstamm
      max. 128 Zeichen
    • titlestringPflicht
      max. 300 Zeichen
    • descriptionstring
      max. 5000 Zeichen
    • quantitynumber
      -1000000–1000000 · Standard: 1
    • unitstring
      Einheit, z. B. Stk, Std, pauschal (UN/ECE Rec 20 für E-Rechnung: Modul)
      max. 20 Zeichen
    • unitPriceCentsinteger
      Betrag in Cent
      -100000000000–100000000000 · Standard: 0
    • discountPercentnumber
      0–100
    • taxRatenumber
      Steuersatz in Prozent (19, 7, 0 …)
      0–100 · Standard: 19
    • totalCentsinteger
      Betrag in Cent
      -100000000000–100000000000
    • servicePeriodobject
      • fromstring (date)Pflicht
        Datum (YYYY-MM-DD)
      • tostring (date)Pflicht
        Datum (YYYY-MM-DD)
    • projectIdstring
      max. 128 Zeichen
    • timeEntryIdsArray<string>
      max. 128 Zeichen

Antwort 200 · RecurringInvoice

  • idstringPflicht
    max. 128 Zeichen
  • object"recurring_invoice"Pflicht
  • namestringPflicht
  • activebooleanPflicht
  • contactIdstringPflicht
    max. 128 Zeichen
  • interval"weekly" | "monthly" | "quarterly" | "half_yearly" | "yearly"Pflicht
  • nextRunDatestring (date)Pflicht
    Datum (YYYY-MM-DD)
  • endDatestring (date) | nullPflicht
    Datum (YYYY-MM-DD)
  • servicePeriodMode"none" | "current_period" | "previous_period"Pflicht
  • autoFinalizebooleanPflicht
  • autoSendbooleanPflicht
  • priceMode"net" | "gross" | nullPflicht
  • taxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable" | nullPflicht
    Steuerbehandlung des Belegs
  • paymentTermsDaysinteger | nullPflicht
    -9007199254740991–9007199254740991
  • subjectstringPflicht
  • introTextstringPflicht
  • closingTextstringPflicht
  • referencestringPflicht
  • linesArray<DocumentLine>Pflicht
    • idstring
      stabile Positions-ID (vom Server vergeben, wenn leer)
      max. 40 Zeichen
    • type"item" | "text" | "subtotal"
      Position, reine Textzeile oder Zwischensumme
      Standard: "item"
    • articleIdstring
      Bezug zum Artikelstamm
      max. 128 Zeichen
    • titlestringPflicht
      max. 300 Zeichen
    • descriptionstring
      max. 5000 Zeichen
    • quantitynumber
      -1000000–1000000 · Standard: 1
    • unitstring
      Einheit, z. B. Stk, Std, pauschal (UN/ECE Rec 20 für E-Rechnung: Modul)
      max. 20 Zeichen
    • unitPriceCentsinteger
      Betrag in Cent
      -100000000000–100000000000 · Standard: 0
    • discountPercentnumber
      0–100
    • taxRatenumber
      Steuersatz in Prozent (19, 7, 0 …)
      0–100 · Standard: 19
    • totalCentsinteger
      Betrag in Cent
      -100000000000–100000000000
    • servicePeriodobject
      • fromstring (date)Pflicht
        Datum (YYYY-MM-DD)
      • tostring (date)Pflicht
        Datum (YYYY-MM-DD)
    • projectIdstring
      max. 128 Zeichen
    • timeEntryIdsArray<string>
      max. 128 Zeichen
  • totalsDocumentTotalsPflicht
    Vorschau mit den aktuellen Positionen
    • netCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • taxCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • grossCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • groupsArray<object>Pflicht
      • taxRatenumberPflicht
      • categorystringPflicht
      • netCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • taxCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • grossCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
  • invoiceCountintegerPflicht
    -9007199254740991–9007199254740991
  • lastRunAtstring (date-time) | nullPflicht
    Zeitpunkt (ISO 8601)
  • lastInvoiceIdstring | nullPflicht
    max. 128 Zeichen
  • lastErrorstring | nullPflicht
  • createdAtstring (date-time)Pflicht
    Zeitpunkt (ISO 8601)
  • updatedAtstring (date-time)Pflicht
    Zeitpunkt (ISO 8601)

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

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"
      ]
    }
  ]
}'
Antwort 200
{
  "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"
}
DELETE/api/v1/recurring-invoices/{id}

Bereits erzeugte Rechnungen bleiben erhalten.

Berechtigung: invoices:write

Pfadparameter

  • idstringPflicht
    ID der Ressource
    max. 128 Zeichen

Antwort 204

Erfolg, keine Antwort

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

curl -X DELETE 'https://www.debt-flow.io/api/v1/recurring-invoices/ID' \
  -H "Authorization: Bearer $DEBTFLOW_API_KEY"
POST/api/v1/recurring-invoices/{id}/run

Erzeugt die Rechnung für den nächsten Termin sofort und schaltet die Vorlage auf den folgenden Termin weiter.

Berechtigung: invoices:write

Pfadparameter

  • idstringPflicht
    ID der Ressource
    max. 128 Zeichen

Header

  • Idempotency-Keystring
    Eindeutiger Schlüssel (8–255 Zeichen). Wiederholte Anfragen mit gleichem Schlüssel liefern 24 h lang dieselbe Antwort.
    max. 255 Zeichen

Antwort 201 · Invoice

  • idstringPflicht
    max. 128 Zeichen
  • object"invoice"Pflicht
  • type"invoice" | "credit_note" | "cancellation"Pflicht
  • kind"standard" | "advance" | "final"Pflicht
  • status"draft" | "open" | "partially_paid" | "paid" | "overdue" | "canceled"Pflicht
  • numberstring | nullPflicht
    Belegnummer; erst beim Festschreiben vergeben
  • contactIdstring | nullPflicht
    max. 128 Zeichen
  • recipientDocumentRecipientPflicht
    • namestringPflicht
      Firma oder Name
      max. 160 Zeichen
    • additionstring
      Zusatz, z. B. z. Hd. Frau Muster
      max. 160 Zeichen
    • streetstringPflicht
      max. 160 Zeichen · Standard: ""
    • zipCodestringPflicht
      max. 10 Zeichen · Standard: ""
    • citystringPflicht
      max. 80 Zeichen · Standard: ""
    • countrystringPflicht
      Ländercode ISO 3166-1 alpha-2
      max. 2 Zeichen · Standard: "DE"
    • emailstring (email)
      Rechnungsempfänger (E-Mail)
      max. 254 Zeichen
    • vatIdstring
      USt-IdNr. des Empfängers (Pflicht bei Reverse Charge/ig. Lieferung)
    • leitwegIdstring
      Leitweg-ID (XRechnung an Behörden)
      max. 60 Zeichen
    • customerNumberstring
      Kundennummer (beim Festschreiben vergeben)
      max. 40 Zeichen
  • senderSenderSnapshot | nullPflicht
    Absender-Schnappschuss (ab Festschreiben)
    • companyNamestringPflicht
    • ownerNamestring
    • legalFormstring
    • managingDirectorsstring
    • streetstringPflicht
    • zipCodestringPflicht
    • citystringPflicht
    • countryCodestringPflicht
    • phonestring
    • emailstring
    • websitestring
    • taxNumberstring
    • vatIdstring
    • smallBusinessbooleanPflicht
    • commercialRegisterobject
      • courtstring
      • numberstring
    • bankobject
      • accountHolderstring
      • ibanstring
      • bicstring
      • bankNamestring
    • invoiceFooterstring
  • issueDatestring (date) | nullPflicht
    Datum (YYYY-MM-DD)
  • serviceDatestring (date) | nullPflicht
    Datum (YYYY-MM-DD)
  • servicePeriodServicePeriod | nullPflicht
    • fromstring (date)Pflicht
      Datum (YYYY-MM-DD)
    • tostring (date)Pflicht
      Datum (YYYY-MM-DD)
  • dueDatestring (date) | nullPflicht
    Datum (YYYY-MM-DD)
  • paymentTermsDaysintegerPflicht
    -9007199254740991–9007199254740991
  • priceMode"net" | "gross"Pflicht
  • taxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"Pflicht
    Steuerbehandlung des Belegs
  • taxNoticestring | nullPflicht
    Pflichthinweis (§ 19, § 13b, ig. Lieferung …)
  • currency"EUR"Pflicht
  • subjectstringPflicht
  • introTextstringPflicht
  • closingTextstringPflicht
  • referencestringPflicht
  • linesArray<DocumentLine>Pflicht
    • idstring
      stabile Positions-ID (vom Server vergeben, wenn leer)
      max. 40 Zeichen
    • type"item" | "text" | "subtotal"
      Position, reine Textzeile oder Zwischensumme
      Standard: "item"
    • articleIdstring
      Bezug zum Artikelstamm
      max. 128 Zeichen
    • titlestringPflicht
      max. 300 Zeichen
    • descriptionstring
      max. 5000 Zeichen
    • quantitynumber
      -1000000–1000000 · Standard: 1
    • unitstring
      Einheit, z. B. Stk, Std, pauschal (UN/ECE Rec 20 für E-Rechnung: Modul)
      max. 20 Zeichen
    • unitPriceCentsinteger
      Betrag in Cent
      -100000000000–100000000000 · Standard: 0
    • discountPercentnumber
      0–100
    • taxRatenumber
      Steuersatz in Prozent (19, 7, 0 …)
      0–100 · Standard: 19
    • totalCentsinteger
      Betrag in Cent
      -100000000000–100000000000
    • servicePeriodobject
      • fromstring (date)Pflicht
        Datum (YYYY-MM-DD)
      • tostring (date)Pflicht
        Datum (YYYY-MM-DD)
    • projectIdstring
      max. 128 Zeichen
    • timeEntryIdsArray<string>
      max. 128 Zeichen
  • totalsDocumentTotalsPflicht
    • netCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • taxCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • grossCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • groupsArray<object>Pflicht
      • taxRatenumberPflicht
      • categorystringPflicht
      • netCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • taxCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • grossCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
  • deductionsArray<InvoiceDeduction>Pflicht
    Schlussrechnung: abgezogene Abschlagsrechnungen
    • invoiceIdstringPflicht
      max. 128 Zeichen
    • numberstringPflicht
    • issueDatestring (date)Pflicht
      Datum (YYYY-MM-DD)
    • netCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • taxCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • grossCentsintegerPflicht
      Betrag in Cent
      -100000000000–100000000000
    • groupsArray<object>Pflicht
      • taxRatenumberPflicht
      • netCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
      • taxCentsintegerPflicht
        Betrag in Cent
        -100000000000–100000000000
  • amountDueCentsintegerPflicht
    Zahlbetrag (Brutto abzüglich Abschläge)
    -100000000000–100000000000
  • paidCentsintegerPflicht
    Betrag in Cent
    -100000000000–100000000000
  • creditedCentsintegerPflicht
    durch Gutschriften gemindert
    -100000000000–100000000000
  • openCentsintegerPflicht
    Betrag in Cent
    -100000000000–100000000000
  • relatedInvoiceIdstring | nullPflicht
    max. 128 Zeichen
  • advanceInvoiceIdsArray<string>Pflicht
    max. 128 Zeichen
  • offerIdstring | nullPflicht
    max. 128 Zeichen
  • projectIdstring | nullPflicht
    max. 128 Zeichen
  • recurringInvoiceIdstring | nullPflicht
    max. 128 Zeichen
  • canceledByInvoiceIdstring | nullPflicht
    Stornorechnung zu dieser Rechnung
    max. 128 Zeichen
  • debtIdstring | nullPflicht
    Forderung im Mahnwesen (nach Übergabe)
    max. 128 Zeichen
  • showGiroCodebooleanPflicht
  • einvoiceFormat"none" | "zugferd" | "xrechnung"Pflicht
  • language"de" | "en"Pflicht
    Belegsprache (beim Festschreiben fixiert)
  • dispatchobjectPflicht
    • countintegerPflicht
      -9007199254740991–9007199254740991
    • lastChannel"email" | "post" | nullPflicht
    • lastSentAtstring (date-time) | nullPflicht
      Zeitpunkt (ISO 8601)
  • pdfobject | nullPflicht
    archiviertes PDF (nach Festschreiben)
    • sha256stringPflicht
    • createdAtstring (date-time)Pflicht
      Zeitpunkt (ISO 8601)
  • lockedbooleanPflicht
  • lockedAtstring (date-time) | nullPflicht
    Zeitpunkt (ISO 8601)
  • paidAtstring (date-time) | nullPflicht
    Zeitpunkt (ISO 8601)
  • handedOverAtstring (date-time) | nullPflicht
    Zeitpunkt (ISO 8601)
  • createdAtstring (date-time)Pflicht
    Zeitpunkt (ISO 8601)
  • updatedAtstring (date-time)Pflicht
    Zeitpunkt (ISO 8601)

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

curl -X POST 'https://www.debt-flow.io/api/v1/recurring-invoices/ID/run' \
  -H "Authorization: Bearer $DEBTFLOW_API_KEY"
Antwort 201
{
  "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",
    "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"
  },
  "dueDate": "2026-11-01",
  "paymentTermsDays": 0,
  "priceMode": "net",
  "taxTreatment": "regular",
  "taxNotice": "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
        }
      ]
    }
  ],
  "amountDueCents": 0,
  "paidCents": 0,
  "creditedCents": 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"
}