Zum Inhalt springen

Quotes

Quotes and order confirmations.
GET/api/v1/offers

Quotes and order confirmations, newest first.

Permission: offers:read

Query parameters

  • status"draft" | "sent" | "accepted" | "rejected" | "expired" | "converted"
  • type"offer" | "order_confirmation"
  • contactIdstring
    max. 128 characters
  • limitinteger
    Number of entries (1–100)
    1–100 · Default: 25
  • cursorstring
    `nextCursor` of the previous page
    max. 500 characters

Response 200

  • object"list"required
  • dataArray<Offer>required
    • idstringrequired
      max. 128 characters
    • object"offer"required
    • type"offer" | "order_confirmation"required
    • status"draft" | "sent" | "accepted" | "rejected" | "expired" | "converted"required
    • numberstring | nullrequired
    • contactIdstring | nullrequired
      max. 128 characters
    • recipientDocumentRecipientrequired
      • namestringrequired
        Company or name
        max. 160 characters
      • additionstring
        Address supplement, e.g. attn. Ms Muster
        max. 160 characters
      • streetstringrequired
        max. 160 characters · Default: ""
      • zipCodestringrequired
        max. 10 characters · Default: ""
      • citystringrequired
        max. 80 characters · Default: ""
      • countrystringrequired
        Country code ISO 3166-1 alpha-2
        max. 2 characters · Default: "DE"
      • emailstring (email)
        Invoice recipient (email)
        max. 254 characters
      • vatIdstring
        Recipient's VAT ID (required for reverse charge/intra-Community supply)
      • leitwegIdstring
        Leitweg-ID (XRechnung to public authorities)
        max. 60 characters
      • einvoiceRecipientType"business" | "public_authority"
        E-invoice recipient profile (from the contact): public_authority requires a Leitweg-ID (ER-08)
      • customerNumberstring
        Customer number (assigned on finalisation)
        max. 40 characters
    • senderSenderSnapshot | nullrequired
      • companyNamestringrequired
      • ownerNamestring
      • legalFormstring
      • managingDirectorsstring
      • streetstringrequired
      • zipCodestringrequired
      • citystringrequired
      • countryCodestringrequired
      • phonestring
      • emailstring
      • websitestring
      • taxNumberstring
      • vatIdstring
      • smallBusinessbooleanrequired
      • commercialRegisterobject
      • bankobject
      • invoiceFooterstring
    • issueDatestring (date) | nullrequired
      Date (YYYY-MM-DD)
    • validUntilstring (date) | nullrequired
      Date (YYYY-MM-DD)
    • priceMode"net" | "gross"required
    • taxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"required
      Tax treatment of the receipt
    • taxNoticestring | nullrequired
    • currency"EUR"required
    • subjectstringrequired
    • introTextstringrequired
    • closingTextstringrequired
    • referencestringrequired
    • linesArray<DocumentLine>required
      • idstring
        stable line item ID (assigned by the server if empty)
        max. 40 characters
      • type"item" | "text" | "subtotal"
        Line item, plain text line or subtotal
        Default: "item"
      • articleIdstring
        Reference to the article master data
        max. 128 characters
      • titlestringrequired
        max. 300 characters
      • descriptionstring
        max. 5000 characters
      • quantitynumber
        -1000000–1000000 · Default: 1
      • unitstring
        Unit, e.g. Stk, Std, pauschal (piece, hour, flat rate); UN/ECE Rec 20 for e-invoicing: module
        max. 20 characters
      • unitPriceCentsinteger
        Amount in cents
        -100000000000–100000000000 · Default: 0
      • discountPercentnumber
        0–100
      • taxRatenumber
        Tax rate in per cent (19, 7, 0 …)
        0–100 · Default: 19
      • totalCentsinteger
        Amount in cents
        -100000000000–100000000000
      • servicePeriodobject
      • projectIdstring
        max. 128 characters
      • timeEntryIdsArray<string>
        max. 128 characters
    • totalsDocumentTotalsrequired
      • netCentsintegerrequired
        Amount in cents
        -100000000000–100000000000
      • taxCentsintegerrequired
        Amount in cents
        -100000000000–100000000000
      • grossCentsintegerrequired
        Amount in cents
        -100000000000–100000000000
      • groupsArray<object>required
    • relatedOfferIdstring | nullrequired
      Order confirmation: underlying quote
      max. 128 characters
    • orderConfirmationIdstring | nullrequired
      max. 128 characters
    • convertedInvoiceIdsArray<string>required
      invoices generated from it (progress/final/invoice)
      max. 128 characters
    • projectIdstring | nullrequired
      max. 128 characters
    • decisionNotestring | nullrequired
    • acceptedAtstring (date-time) | nullrequired
      Timestamp (ISO 8601)
    • rejectedAtstring (date-time) | nullrequired
      Timestamp (ISO 8601)
    • language"de" | "en"required
      Document language (fixed on finalisation)
    • dispatchobjectrequired
      • countintegerrequired
        -9007199254740991–9007199254740991
      • lastChannel"email" | "post" | nullrequired
      • lastSentAtstring (date-time) | nullrequired
        Timestamp (ISO 8601)
    • lockedbooleanrequired
    • lockedAtstring (date-time) | nullrequired
      Timestamp (ISO 8601)
    • createdAtstring (date-time)required
      Timestamp (ISO 8601)
    • updatedAtstring (date-time)required
      Timestamp (ISO 8601)
  • hasMorebooleanrequired
  • nextCursorstring | nullrequired

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

curl 'https://www.debt-flow.io/api/v1/offers' \
  -H "Authorization: Bearer $DEBTFLOW_API_KEY"
Response 200
{
  "object": "list",
  "data": [
    {
      "id": "string",
      "object": "offer",
      "type": "offer",
      "status": "draft",
      "number": "string",
      "contactId": "string",
      "recipient": {
        "name": "string",
        "addition": "string",
        "street": "",
        "zipCode": "",
        "city": "",
        "country": "DE",
        "email": "[email protected]",
        "vatId": "string",
        "leitwegId": "string",
        "einvoiceRecipientType": "business",
        "customerNumber": "string"
      },
      "sender": {
        "companyName": null,
        "ownerName": null,
        "legalForm": null,
        "managingDirectors": null,
        "street": null,
        "zipCode": null,
        "city": null,
        "countryCode": null,
        "phone": null,
        "email": null,
        "website": null,
        "taxNumber": null,
        "vatId": null,
        "smallBusiness": null,
        "commercialRegister": null,
        "bank": null,
        "invoiceFooter": null
      },
      "issueDate": "2026-11-01",
      "validUntil": "2026-11-01",
      "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
        ]
      },
      "relatedOfferId": "string",
      "orderConfirmationId": "string",
      "convertedInvoiceIds": [
        "string"
      ],
      "projectId": "string",
      "decisionNote": "string",
      "acceptedAt": "2026-11-01T09:30:00.000Z",
      "rejectedAt": "2026-11-01T09:30:00.000Z",
      "language": "de",
      "dispatch": {
        "count": 0,
        "lastChannel": "email",
        "lastSentAt": "2026-11-01T09:30:00.000Z"
      },
      "locked": false,
      "lockedAt": "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/offers

If not specified, the recipient, tax treatment and pricing mode are taken from the contact or from the Company & invoice settings respectively.

Permission: offers:write

Headers

  • Idempotency-Keystring
    Unique key (8–255 characters). Repeated requests with the same key return the same response for 24 h.
    max. 255 characters

Body (JSON) · OfferCreate

  • type"offer" | "order_confirmation"
    Default: "offer"
  • contactIdstring | null
    max. 128 characters
  • recipientDocumentRecipient
    • namestringrequired
      Company or name
      max. 160 characters
    • additionstring
      Address supplement, e.g. attn. Ms Muster
      max. 160 characters
    • streetstringrequired
      max. 160 characters · Default: ""
    • zipCodestringrequired
      max. 10 characters · Default: ""
    • citystringrequired
      max. 80 characters · Default: ""
    • countrystringrequired
      Country code ISO 3166-1 alpha-2
      max. 2 characters · Default: "DE"
    • emailstring (email)
      Invoice recipient (email)
      max. 254 characters
    • vatIdstring
      Recipient's VAT ID (required for reverse charge/intra-Community supply)
    • leitwegIdstring
      Leitweg-ID (XRechnung to public authorities)
      max. 60 characters
    • einvoiceRecipientType"business" | "public_authority"
      E-invoice recipient profile (from the contact): public_authority requires a Leitweg-ID (ER-08)
    • customerNumberstring
      Customer number (assigned on finalisation)
      max. 40 characters
  • issueDatestring (date) | null
    Quote date; empty = day of finalising
  • validUntilstring (date) | null
    valid until; empty = date + validity from the settings
  • priceMode"net" | "gross"
  • taxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"
    Tax treatment of the receipt
  • subjectstring
    max. 200 characters
  • introTextstring
    max. 5000 characters
  • closingTextstring
    max. 5000 characters
  • referencestring
    max. 100 characters
  • linesArray<DocumentLine>
    • idstring
      stable line item ID (assigned by the server if empty)
      max. 40 characters
    • type"item" | "text" | "subtotal"
      Line item, plain text line or subtotal
      Default: "item"
    • articleIdstring
      Reference to the article master data
      max. 128 characters
    • titlestringrequired
      max. 300 characters
    • descriptionstring
      max. 5000 characters
    • quantitynumber
      -1000000–1000000 · Default: 1
    • unitstring
      Unit, e.g. Stk, Std, pauschal (piece, hour, flat rate); UN/ECE Rec 20 for e-invoicing: module
      max. 20 characters
    • unitPriceCentsinteger
      Amount in cents
      -100000000000–100000000000 · Default: 0
    • discountPercentnumber
      0–100
    • taxRatenumber
      Tax rate in per cent (19, 7, 0 …)
      0–100 · Default: 19
    • totalCentsinteger
      Amount in cents
      -100000000000–100000000000
    • servicePeriodobject
      • fromstring (date)required
        Date (YYYY-MM-DD)
      • tostring (date)required
        Date (YYYY-MM-DD)
    • projectIdstring
      max. 128 characters
    • timeEntryIdsArray<string>
      max. 128 characters
  • projectIdstring | null
    max. 128 characters
  • language"de" | "en" | null
    Document language (PDF, email); empty/null = the contact's language. Fixed on finalisation.

Response 201 · Offer

  • idstringrequired
    max. 128 characters
  • object"offer"required
  • type"offer" | "order_confirmation"required
  • status"draft" | "sent" | "accepted" | "rejected" | "expired" | "converted"required
  • numberstring | nullrequired
  • contactIdstring | nullrequired
    max. 128 characters
  • recipientDocumentRecipientrequired
    • namestringrequired
      Company or name
      max. 160 characters
    • additionstring
      Address supplement, e.g. attn. Ms Muster
      max. 160 characters
    • streetstringrequired
      max. 160 characters · Default: ""
    • zipCodestringrequired
      max. 10 characters · Default: ""
    • citystringrequired
      max. 80 characters · Default: ""
    • countrystringrequired
      Country code ISO 3166-1 alpha-2
      max. 2 characters · Default: "DE"
    • emailstring (email)
      Invoice recipient (email)
      max. 254 characters
    • vatIdstring
      Recipient's VAT ID (required for reverse charge/intra-Community supply)
    • leitwegIdstring
      Leitweg-ID (XRechnung to public authorities)
      max. 60 characters
    • einvoiceRecipientType"business" | "public_authority"
      E-invoice recipient profile (from the contact): public_authority requires a Leitweg-ID (ER-08)
    • customerNumberstring
      Customer number (assigned on finalisation)
      max. 40 characters
  • senderSenderSnapshot | nullrequired
    • companyNamestringrequired
    • ownerNamestring
    • legalFormstring
    • managingDirectorsstring
    • streetstringrequired
    • zipCodestringrequired
    • citystringrequired
    • countryCodestringrequired
    • phonestring
    • emailstring
    • websitestring
    • taxNumberstring
    • vatIdstring
    • smallBusinessbooleanrequired
    • commercialRegisterobject
      • courtstring
      • numberstring
    • bankobject
      • accountHolderstring
      • ibanstring
      • bicstring
      • bankNamestring
    • invoiceFooterstring
  • issueDatestring (date) | nullrequired
    Date (YYYY-MM-DD)
  • validUntilstring (date) | nullrequired
    Date (YYYY-MM-DD)
  • priceMode"net" | "gross"required
  • taxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"required
    Tax treatment of the receipt
  • taxNoticestring | nullrequired
  • currency"EUR"required
  • subjectstringrequired
  • introTextstringrequired
  • closingTextstringrequired
  • referencestringrequired
  • linesArray<DocumentLine>required
    • idstring
      stable line item ID (assigned by the server if empty)
      max. 40 characters
    • type"item" | "text" | "subtotal"
      Line item, plain text line or subtotal
      Default: "item"
    • articleIdstring
      Reference to the article master data
      max. 128 characters
    • titlestringrequired
      max. 300 characters
    • descriptionstring
      max. 5000 characters
    • quantitynumber
      -1000000–1000000 · Default: 1
    • unitstring
      Unit, e.g. Stk, Std, pauschal (piece, hour, flat rate); UN/ECE Rec 20 for e-invoicing: module
      max. 20 characters
    • unitPriceCentsinteger
      Amount in cents
      -100000000000–100000000000 · Default: 0
    • discountPercentnumber
      0–100
    • taxRatenumber
      Tax rate in per cent (19, 7, 0 …)
      0–100 · Default: 19
    • totalCentsinteger
      Amount in cents
      -100000000000–100000000000
    • servicePeriodobject
      • fromstring (date)required
        Date (YYYY-MM-DD)
      • tostring (date)required
        Date (YYYY-MM-DD)
    • projectIdstring
      max. 128 characters
    • timeEntryIdsArray<string>
      max. 128 characters
  • totalsDocumentTotalsrequired
    • netCentsintegerrequired
      Amount in cents
      -100000000000–100000000000
    • taxCentsintegerrequired
      Amount in cents
      -100000000000–100000000000
    • grossCentsintegerrequired
      Amount in cents
      -100000000000–100000000000
    • groupsArray<object>required
      • taxRatenumberrequired
      • categorystringrequired
      • netCentsintegerrequired
        Amount in cents
        -100000000000–100000000000
      • taxCentsintegerrequired
        Amount in cents
        -100000000000–100000000000
      • grossCentsintegerrequired
        Amount in cents
        -100000000000–100000000000
  • relatedOfferIdstring | nullrequired
    Order confirmation: underlying quote
    max. 128 characters
  • orderConfirmationIdstring | nullrequired
    max. 128 characters
  • convertedInvoiceIdsArray<string>required
    invoices generated from it (progress/final/invoice)
    max. 128 characters
  • projectIdstring | nullrequired
    max. 128 characters
  • decisionNotestring | nullrequired
  • acceptedAtstring (date-time) | nullrequired
    Timestamp (ISO 8601)
  • rejectedAtstring (date-time) | nullrequired
    Timestamp (ISO 8601)
  • language"de" | "en"required
    Document language (fixed on finalisation)
  • dispatchobjectrequired
    • countintegerrequired
      -9007199254740991–9007199254740991
    • lastChannel"email" | "post" | nullrequired
    • lastSentAtstring (date-time) | nullrequired
      Timestamp (ISO 8601)
  • lockedbooleanrequired
  • lockedAtstring (date-time) | nullrequired
    Timestamp (ISO 8601)
  • createdAtstring (date-time)required
    Timestamp (ISO 8601)
  • updatedAtstring (date-time)required
    Timestamp (ISO 8601)

Possible errors: 400, 401, 403, 404, 409, 422, 429, 500

curl -X POST 'https://www.debt-flow.io/api/v1/offers' \
  -H "Authorization: Bearer $DEBTFLOW_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
  "type": "offer",
  "contactId": "string",
  "recipient": {
    "name": "string",
    "addition": "string",
    "street": "",
    "zipCode": "",
    "city": "",
    "country": "DE",
    "email": "[email protected]",
    "vatId": "string",
    "leitwegId": "string",
    "einvoiceRecipientType": "business",
    "customerNumber": "string"
  },
  "issueDate": "2026-11-01",
  "validUntil": "2026-11-01",
  "priceMode": "net",
  "taxTreatment": "regular",
  "subject": "string",
  "introText": "string",
  "closingText": "string",
  "reference": "string",
  "lines": [],
  "projectId": "string",
  "language": "de"
}'
Response 201
{
  "id": "string",
  "object": "offer",
  "type": "offer",
  "status": "draft",
  "number": "string",
  "contactId": "string",
  "recipient": {
    "name": "string",
    "addition": "string",
    "street": "",
    "zipCode": "",
    "city": "",
    "country": "DE",
    "email": "[email protected]",
    "vatId": "string",
    "leitwegId": "string",
    "einvoiceRecipientType": "business",
    "customerNumber": "string"
  },
  "sender": {
    "companyName": "string",
    "ownerName": "string",
    "legalForm": "string",
    "managingDirectors": "string",
    "street": "string",
    "zipCode": "string",
    "city": "string",
    "countryCode": "string",
    "phone": "string",
    "email": "string",
    "website": "string",
    "taxNumber": "string",
    "vatId": "string",
    "smallBusiness": false,
    "commercialRegister": {
      "court": "string",
      "number": "string"
    },
    "bank": {
      "accountHolder": "string",
      "iban": "string",
      "bic": "string",
      "bankName": "string"
    },
    "invoiceFooter": "string"
  },
  "issueDate": "2026-11-01",
  "validUntil": "2026-11-01",
  "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
      }
    ]
  },
  "relatedOfferId": "string",
  "orderConfirmationId": "string",
  "convertedInvoiceIds": [
    "string"
  ],
  "projectId": "string",
  "decisionNote": "string",
  "acceptedAt": "2026-11-01T09:30:00.000Z",
  "rejectedAt": "2026-11-01T09:30:00.000Z",
  "language": "de",
  "dispatch": {
    "count": 0,
    "lastChannel": "email",
    "lastSentAt": "2026-11-01T09:30:00.000Z"
  },
  "locked": false,
  "lockedAt": "2026-11-01T09:30:00.000Z",
  "createdAt": "2026-11-01T09:30:00.000Z",
  "updatedAt": "2026-11-01T09:30:00.000Z"
}
GET/api/v1/offers/{id}

Permission: offers:read

Path parameters

  • idstringrequired
    Resource ID
    max. 128 characters

Response 200 · Offer

  • idstringrequired
    max. 128 characters
  • object"offer"required
  • type"offer" | "order_confirmation"required
  • status"draft" | "sent" | "accepted" | "rejected" | "expired" | "converted"required
  • numberstring | nullrequired
  • contactIdstring | nullrequired
    max. 128 characters
  • recipientDocumentRecipientrequired
    • namestringrequired
      Company or name
      max. 160 characters
    • additionstring
      Address supplement, e.g. attn. Ms Muster
      max. 160 characters
    • streetstringrequired
      max. 160 characters · Default: ""
    • zipCodestringrequired
      max. 10 characters · Default: ""
    • citystringrequired
      max. 80 characters · Default: ""
    • countrystringrequired
      Country code ISO 3166-1 alpha-2
      max. 2 characters · Default: "DE"
    • emailstring (email)
      Invoice recipient (email)
      max. 254 characters
    • vatIdstring
      Recipient's VAT ID (required for reverse charge/intra-Community supply)
    • leitwegIdstring
      Leitweg-ID (XRechnung to public authorities)
      max. 60 characters
    • einvoiceRecipientType"business" | "public_authority"
      E-invoice recipient profile (from the contact): public_authority requires a Leitweg-ID (ER-08)
    • customerNumberstring
      Customer number (assigned on finalisation)
      max. 40 characters
  • senderSenderSnapshot | nullrequired
    • companyNamestringrequired
    • ownerNamestring
    • legalFormstring
    • managingDirectorsstring
    • streetstringrequired
    • zipCodestringrequired
    • citystringrequired
    • countryCodestringrequired
    • phonestring
    • emailstring
    • websitestring
    • taxNumberstring
    • vatIdstring
    • smallBusinessbooleanrequired
    • commercialRegisterobject
      • courtstring
      • numberstring
    • bankobject
      • accountHolderstring
      • ibanstring
      • bicstring
      • bankNamestring
    • invoiceFooterstring
  • issueDatestring (date) | nullrequired
    Date (YYYY-MM-DD)
  • validUntilstring (date) | nullrequired
    Date (YYYY-MM-DD)
  • priceMode"net" | "gross"required
  • taxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"required
    Tax treatment of the receipt
  • taxNoticestring | nullrequired
  • currency"EUR"required
  • subjectstringrequired
  • introTextstringrequired
  • closingTextstringrequired
  • referencestringrequired
  • linesArray<DocumentLine>required
    • idstring
      stable line item ID (assigned by the server if empty)
      max. 40 characters
    • type"item" | "text" | "subtotal"
      Line item, plain text line or subtotal
      Default: "item"
    • articleIdstring
      Reference to the article master data
      max. 128 characters
    • titlestringrequired
      max. 300 characters
    • descriptionstring
      max. 5000 characters
    • quantitynumber
      -1000000–1000000 · Default: 1
    • unitstring
      Unit, e.g. Stk, Std, pauschal (piece, hour, flat rate); UN/ECE Rec 20 for e-invoicing: module
      max. 20 characters
    • unitPriceCentsinteger
      Amount in cents
      -100000000000–100000000000 · Default: 0
    • discountPercentnumber
      0–100
    • taxRatenumber
      Tax rate in per cent (19, 7, 0 …)
      0–100 · Default: 19
    • totalCentsinteger
      Amount in cents
      -100000000000–100000000000
    • servicePeriodobject
      • fromstring (date)required
        Date (YYYY-MM-DD)
      • tostring (date)required
        Date (YYYY-MM-DD)
    • projectIdstring
      max. 128 characters
    • timeEntryIdsArray<string>
      max. 128 characters
  • totalsDocumentTotalsrequired
    • netCentsintegerrequired
      Amount in cents
      -100000000000–100000000000
    • taxCentsintegerrequired
      Amount in cents
      -100000000000–100000000000
    • grossCentsintegerrequired
      Amount in cents
      -100000000000–100000000000
    • groupsArray<object>required
      • taxRatenumberrequired
      • categorystringrequired
      • netCentsintegerrequired
        Amount in cents
        -100000000000–100000000000
      • taxCentsintegerrequired
        Amount in cents
        -100000000000–100000000000
      • grossCentsintegerrequired
        Amount in cents
        -100000000000–100000000000
  • relatedOfferIdstring | nullrequired
    Order confirmation: underlying quote
    max. 128 characters
  • orderConfirmationIdstring | nullrequired
    max. 128 characters
  • convertedInvoiceIdsArray<string>required
    invoices generated from it (progress/final/invoice)
    max. 128 characters
  • projectIdstring | nullrequired
    max. 128 characters
  • decisionNotestring | nullrequired
  • acceptedAtstring (date-time) | nullrequired
    Timestamp (ISO 8601)
  • rejectedAtstring (date-time) | nullrequired
    Timestamp (ISO 8601)
  • language"de" | "en"required
    Document language (fixed on finalisation)
  • dispatchobjectrequired
    • countintegerrequired
      -9007199254740991–9007199254740991
    • lastChannel"email" | "post" | nullrequired
    • lastSentAtstring (date-time) | nullrequired
      Timestamp (ISO 8601)
  • lockedbooleanrequired
  • lockedAtstring (date-time) | nullrequired
    Timestamp (ISO 8601)
  • createdAtstring (date-time)required
    Timestamp (ISO 8601)
  • updatedAtstring (date-time)required
    Timestamp (ISO 8601)

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

curl 'https://www.debt-flow.io/api/v1/offers/ID' \
  -H "Authorization: Bearer $DEBTFLOW_API_KEY"
Response 200
{
  "id": "string",
  "object": "offer",
  "type": "offer",
  "status": "draft",
  "number": "string",
  "contactId": "string",
  "recipient": {
    "name": "string",
    "addition": "string",
    "street": "",
    "zipCode": "",
    "city": "",
    "country": "DE",
    "email": "[email protected]",
    "vatId": "string",
    "leitwegId": "string",
    "einvoiceRecipientType": "business",
    "customerNumber": "string"
  },
  "sender": {
    "companyName": "string",
    "ownerName": "string",
    "legalForm": "string",
    "managingDirectors": "string",
    "street": "string",
    "zipCode": "string",
    "city": "string",
    "countryCode": "string",
    "phone": "string",
    "email": "string",
    "website": "string",
    "taxNumber": "string",
    "vatId": "string",
    "smallBusiness": false,
    "commercialRegister": {
      "court": "string",
      "number": "string"
    },
    "bank": {
      "accountHolder": "string",
      "iban": "string",
      "bic": "string",
      "bankName": "string"
    },
    "invoiceFooter": "string"
  },
  "issueDate": "2026-11-01",
  "validUntil": "2026-11-01",
  "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
      }
    ]
  },
  "relatedOfferId": "string",
  "orderConfirmationId": "string",
  "convertedInvoiceIds": [
    "string"
  ],
  "projectId": "string",
  "decisionNote": "string",
  "acceptedAt": "2026-11-01T09:30:00.000Z",
  "rejectedAt": "2026-11-01T09:30:00.000Z",
  "language": "de",
  "dispatch": {
    "count": 0,
    "lastChannel": "email",
    "lastSentAt": "2026-11-01T09:30:00.000Z"
  },
  "locked": false,
  "lockedAt": "2026-11-01T09:30:00.000Z",
  "createdAt": "2026-11-01T09:30:00.000Z",
  "updatedAt": "2026-11-01T09:30:00.000Z"
}
PATCH/api/v1/offers/{id}

Drafts only. Finalised quotes: 409 document_locked – please copy and reissue.

Permission: offers:write

Path parameters

  • idstringrequired
    Resource ID
    max. 128 characters

Body (JSON) · OfferUpdate

  • contactIdstring | null
    max. 128 characters
  • recipientDocumentRecipient
    • namestringrequired
      Company or name
      max. 160 characters
    • additionstring
      Address supplement, e.g. attn. Ms Muster
      max. 160 characters
    • streetstringrequired
      max. 160 characters · Default: ""
    • zipCodestringrequired
      max. 10 characters · Default: ""
    • citystringrequired
      max. 80 characters · Default: ""
    • countrystringrequired
      Country code ISO 3166-1 alpha-2
      max. 2 characters · Default: "DE"
    • emailstring (email)
      Invoice recipient (email)
      max. 254 characters
    • vatIdstring
      Recipient's VAT ID (required for reverse charge/intra-Community supply)
    • leitwegIdstring
      Leitweg-ID (XRechnung to public authorities)
      max. 60 characters
    • einvoiceRecipientType"business" | "public_authority"
      E-invoice recipient profile (from the contact): public_authority requires a Leitweg-ID (ER-08)
    • customerNumberstring
      Customer number (assigned on finalisation)
      max. 40 characters
  • issueDatestring (date) | null
    Quote date; empty = day of finalising
  • validUntilstring (date) | null
    valid until; empty = date + validity from the settings
  • priceMode"net" | "gross"
  • taxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"
    Tax treatment of the receipt
  • subjectstring
    max. 200 characters
  • introTextstring
    max. 5000 characters
  • closingTextstring
    max. 5000 characters
  • referencestring
    max. 100 characters
  • linesArray<DocumentLine>
    • idstring
      stable line item ID (assigned by the server if empty)
      max. 40 characters
    • type"item" | "text" | "subtotal"
      Line item, plain text line or subtotal
      Default: "item"
    • articleIdstring
      Reference to the article master data
      max. 128 characters
    • titlestringrequired
      max. 300 characters
    • descriptionstring
      max. 5000 characters
    • quantitynumber
      -1000000–1000000 · Default: 1
    • unitstring
      Unit, e.g. Stk, Std, pauschal (piece, hour, flat rate); UN/ECE Rec 20 for e-invoicing: module
      max. 20 characters
    • unitPriceCentsinteger
      Amount in cents
      -100000000000–100000000000 · Default: 0
    • discountPercentnumber
      0–100
    • taxRatenumber
      Tax rate in per cent (19, 7, 0 …)
      0–100 · Default: 19
    • totalCentsinteger
      Amount in cents
      -100000000000–100000000000
    • servicePeriodobject
      • fromstring (date)required
        Date (YYYY-MM-DD)
      • tostring (date)required
        Date (YYYY-MM-DD)
    • projectIdstring
      max. 128 characters
    • timeEntryIdsArray<string>
      max. 128 characters
  • projectIdstring | null
    max. 128 characters
  • language"de" | "en" | null
    Document language (PDF, email); empty/null = the contact's language. Fixed on finalisation.

Response 200 · Offer

  • idstringrequired
    max. 128 characters
  • object"offer"required
  • type"offer" | "order_confirmation"required
  • status"draft" | "sent" | "accepted" | "rejected" | "expired" | "converted"required
  • numberstring | nullrequired
  • contactIdstring | nullrequired
    max. 128 characters
  • recipientDocumentRecipientrequired
    • namestringrequired
      Company or name
      max. 160 characters
    • additionstring
      Address supplement, e.g. attn. Ms Muster
      max. 160 characters
    • streetstringrequired
      max. 160 characters · Default: ""
    • zipCodestringrequired
      max. 10 characters · Default: ""
    • citystringrequired
      max. 80 characters · Default: ""
    • countrystringrequired
      Country code ISO 3166-1 alpha-2
      max. 2 characters · Default: "DE"
    • emailstring (email)
      Invoice recipient (email)
      max. 254 characters
    • vatIdstring
      Recipient's VAT ID (required for reverse charge/intra-Community supply)
    • leitwegIdstring
      Leitweg-ID (XRechnung to public authorities)
      max. 60 characters
    • einvoiceRecipientType"business" | "public_authority"
      E-invoice recipient profile (from the contact): public_authority requires a Leitweg-ID (ER-08)
    • customerNumberstring
      Customer number (assigned on finalisation)
      max. 40 characters
  • senderSenderSnapshot | nullrequired
    • companyNamestringrequired
    • ownerNamestring
    • legalFormstring
    • managingDirectorsstring
    • streetstringrequired
    • zipCodestringrequired
    • citystringrequired
    • countryCodestringrequired
    • phonestring
    • emailstring
    • websitestring
    • taxNumberstring
    • vatIdstring
    • smallBusinessbooleanrequired
    • commercialRegisterobject
      • courtstring
      • numberstring
    • bankobject
      • accountHolderstring
      • ibanstring
      • bicstring
      • bankNamestring
    • invoiceFooterstring
  • issueDatestring (date) | nullrequired
    Date (YYYY-MM-DD)
  • validUntilstring (date) | nullrequired
    Date (YYYY-MM-DD)
  • priceMode"net" | "gross"required
  • taxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"required
    Tax treatment of the receipt
  • taxNoticestring | nullrequired
  • currency"EUR"required
  • subjectstringrequired
  • introTextstringrequired
  • closingTextstringrequired
  • referencestringrequired
  • linesArray<DocumentLine>required
    • idstring
      stable line item ID (assigned by the server if empty)
      max. 40 characters
    • type"item" | "text" | "subtotal"
      Line item, plain text line or subtotal
      Default: "item"
    • articleIdstring
      Reference to the article master data
      max. 128 characters
    • titlestringrequired
      max. 300 characters
    • descriptionstring
      max. 5000 characters
    • quantitynumber
      -1000000–1000000 · Default: 1
    • unitstring
      Unit, e.g. Stk, Std, pauschal (piece, hour, flat rate); UN/ECE Rec 20 for e-invoicing: module
      max. 20 characters
    • unitPriceCentsinteger
      Amount in cents
      -100000000000–100000000000 · Default: 0
    • discountPercentnumber
      0–100
    • taxRatenumber
      Tax rate in per cent (19, 7, 0 …)
      0–100 · Default: 19
    • totalCentsinteger
      Amount in cents
      -100000000000–100000000000
    • servicePeriodobject
      • fromstring (date)required
        Date (YYYY-MM-DD)
      • tostring (date)required
        Date (YYYY-MM-DD)
    • projectIdstring
      max. 128 characters
    • timeEntryIdsArray<string>
      max. 128 characters
  • totalsDocumentTotalsrequired
    • netCentsintegerrequired
      Amount in cents
      -100000000000–100000000000
    • taxCentsintegerrequired
      Amount in cents
      -100000000000–100000000000
    • grossCentsintegerrequired
      Amount in cents
      -100000000000–100000000000
    • groupsArray<object>required
      • taxRatenumberrequired
      • categorystringrequired
      • netCentsintegerrequired
        Amount in cents
        -100000000000–100000000000
      • taxCentsintegerrequired
        Amount in cents
        -100000000000–100000000000
      • grossCentsintegerrequired
        Amount in cents
        -100000000000–100000000000
  • relatedOfferIdstring | nullrequired
    Order confirmation: underlying quote
    max. 128 characters
  • orderConfirmationIdstring | nullrequired
    max. 128 characters
  • convertedInvoiceIdsArray<string>required
    invoices generated from it (progress/final/invoice)
    max. 128 characters
  • projectIdstring | nullrequired
    max. 128 characters
  • decisionNotestring | nullrequired
  • acceptedAtstring (date-time) | nullrequired
    Timestamp (ISO 8601)
  • rejectedAtstring (date-time) | nullrequired
    Timestamp (ISO 8601)
  • language"de" | "en"required
    Document language (fixed on finalisation)
  • dispatchobjectrequired
    • countintegerrequired
      -9007199254740991–9007199254740991
    • lastChannel"email" | "post" | nullrequired
    • lastSentAtstring (date-time) | nullrequired
      Timestamp (ISO 8601)
  • lockedbooleanrequired
  • lockedAtstring (date-time) | nullrequired
    Timestamp (ISO 8601)
  • createdAtstring (date-time)required
    Timestamp (ISO 8601)
  • updatedAtstring (date-time)required
    Timestamp (ISO 8601)

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

curl -X PATCH 'https://www.debt-flow.io/api/v1/offers/ID' \
  -H "Authorization: Bearer $DEBTFLOW_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
  "contactId": "string",
  "recipient": {
    "name": "string",
    "addition": "string",
    "street": "",
    "zipCode": "",
    "city": "",
    "country": "DE",
    "email": "[email protected]",
    "vatId": "string",
    "leitwegId": "string",
    "einvoiceRecipientType": "business",
    "customerNumber": "string"
  },
  "issueDate": "2026-11-01",
  "validUntil": "2026-11-01",
  "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"
      ]
    }
  ],
  "projectId": "string",
  "language": "de"
}'
Response 200
{
  "id": "string",
  "object": "offer",
  "type": "offer",
  "status": "draft",
  "number": "string",
  "contactId": "string",
  "recipient": {
    "name": "string",
    "addition": "string",
    "street": "",
    "zipCode": "",
    "city": "",
    "country": "DE",
    "email": "[email protected]",
    "vatId": "string",
    "leitwegId": "string",
    "einvoiceRecipientType": "business",
    "customerNumber": "string"
  },
  "sender": {
    "companyName": "string",
    "ownerName": "string",
    "legalForm": "string",
    "managingDirectors": "string",
    "street": "string",
    "zipCode": "string",
    "city": "string",
    "countryCode": "string",
    "phone": "string",
    "email": "string",
    "website": "string",
    "taxNumber": "string",
    "vatId": "string",
    "smallBusiness": false,
    "commercialRegister": {
      "court": "string",
      "number": "string"
    },
    "bank": {
      "accountHolder": "string",
      "iban": "string",
      "bic": "string",
      "bankName": "string"
    },
    "invoiceFooter": "string"
  },
  "issueDate": "2026-11-01",
  "validUntil": "2026-11-01",
  "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
      }
    ]
  },
  "relatedOfferId": "string",
  "orderConfirmationId": "string",
  "convertedInvoiceIds": [
    "string"
  ],
  "projectId": "string",
  "decisionNote": "string",
  "acceptedAt": "2026-11-01T09:30:00.000Z",
  "rejectedAt": "2026-11-01T09:30:00.000Z",
  "language": "de",
  "dispatch": {
    "count": 0,
    "lastChannel": "email",
    "lastSentAt": "2026-11-01T09:30:00.000Z"
  },
  "locked": false,
  "lockedAt": "2026-11-01T09:30:00.000Z",
  "createdAt": "2026-11-01T09:30:00.000Z",
  "updatedAt": "2026-11-01T09:30:00.000Z"
}
DELETE/api/v1/offers/{id}

Permission: offers:write

Path parameters

  • idstringrequired
    Resource ID
    max. 128 characters

Response 204

Success, no content

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

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

Permission: offers:write

Path parameters

  • idstringrequired
    Resource ID
    max. 128 characters

Headers

  • Idempotency-Keystring
    Unique key (8–255 characters). Repeated requests with the same key return the same response for 24 h.
    max. 255 characters

Body (JSON) · OfferDecision

  • notestring
    Note, e.g. reason for rejection
    max. 1000 characters

Response 200 · Offer

  • idstringrequired
    max. 128 characters
  • object"offer"required
  • type"offer" | "order_confirmation"required
  • status"draft" | "sent" | "accepted" | "rejected" | "expired" | "converted"required
  • numberstring | nullrequired
  • contactIdstring | nullrequired
    max. 128 characters
  • recipientDocumentRecipientrequired
    • namestringrequired
      Company or name
      max. 160 characters
    • additionstring
      Address supplement, e.g. attn. Ms Muster
      max. 160 characters
    • streetstringrequired
      max. 160 characters · Default: ""
    • zipCodestringrequired
      max. 10 characters · Default: ""
    • citystringrequired
      max. 80 characters · Default: ""
    • countrystringrequired
      Country code ISO 3166-1 alpha-2
      max. 2 characters · Default: "DE"
    • emailstring (email)
      Invoice recipient (email)
      max. 254 characters
    • vatIdstring
      Recipient's VAT ID (required for reverse charge/intra-Community supply)
    • leitwegIdstring
      Leitweg-ID (XRechnung to public authorities)
      max. 60 characters
    • einvoiceRecipientType"business" | "public_authority"
      E-invoice recipient profile (from the contact): public_authority requires a Leitweg-ID (ER-08)
    • customerNumberstring
      Customer number (assigned on finalisation)
      max. 40 characters
  • senderSenderSnapshot | nullrequired
    • companyNamestringrequired
    • ownerNamestring
    • legalFormstring
    • managingDirectorsstring
    • streetstringrequired
    • zipCodestringrequired
    • citystringrequired
    • countryCodestringrequired
    • phonestring
    • emailstring
    • websitestring
    • taxNumberstring
    • vatIdstring
    • smallBusinessbooleanrequired
    • commercialRegisterobject
      • courtstring
      • numberstring
    • bankobject
      • accountHolderstring
      • ibanstring
      • bicstring
      • bankNamestring
    • invoiceFooterstring
  • issueDatestring (date) | nullrequired
    Date (YYYY-MM-DD)
  • validUntilstring (date) | nullrequired
    Date (YYYY-MM-DD)
  • priceMode"net" | "gross"required
  • taxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"required
    Tax treatment of the receipt
  • taxNoticestring | nullrequired
  • currency"EUR"required
  • subjectstringrequired
  • introTextstringrequired
  • closingTextstringrequired
  • referencestringrequired
  • linesArray<DocumentLine>required
    • idstring
      stable line item ID (assigned by the server if empty)
      max. 40 characters
    • type"item" | "text" | "subtotal"
      Line item, plain text line or subtotal
      Default: "item"
    • articleIdstring
      Reference to the article master data
      max. 128 characters
    • titlestringrequired
      max. 300 characters
    • descriptionstring
      max. 5000 characters
    • quantitynumber
      -1000000–1000000 · Default: 1
    • unitstring
      Unit, e.g. Stk, Std, pauschal (piece, hour, flat rate); UN/ECE Rec 20 for e-invoicing: module
      max. 20 characters
    • unitPriceCentsinteger
      Amount in cents
      -100000000000–100000000000 · Default: 0
    • discountPercentnumber
      0–100
    • taxRatenumber
      Tax rate in per cent (19, 7, 0 …)
      0–100 · Default: 19
    • totalCentsinteger
      Amount in cents
      -100000000000–100000000000
    • servicePeriodobject
      • fromstring (date)required
        Date (YYYY-MM-DD)
      • tostring (date)required
        Date (YYYY-MM-DD)
    • projectIdstring
      max. 128 characters
    • timeEntryIdsArray<string>
      max. 128 characters
  • totalsDocumentTotalsrequired
    • netCentsintegerrequired
      Amount in cents
      -100000000000–100000000000
    • taxCentsintegerrequired
      Amount in cents
      -100000000000–100000000000
    • grossCentsintegerrequired
      Amount in cents
      -100000000000–100000000000
    • groupsArray<object>required
      • taxRatenumberrequired
      • categorystringrequired
      • netCentsintegerrequired
        Amount in cents
        -100000000000–100000000000
      • taxCentsintegerrequired
        Amount in cents
        -100000000000–100000000000
      • grossCentsintegerrequired
        Amount in cents
        -100000000000–100000000000
  • relatedOfferIdstring | nullrequired
    Order confirmation: underlying quote
    max. 128 characters
  • orderConfirmationIdstring | nullrequired
    max. 128 characters
  • convertedInvoiceIdsArray<string>required
    invoices generated from it (progress/final/invoice)
    max. 128 characters
  • projectIdstring | nullrequired
    max. 128 characters
  • decisionNotestring | nullrequired
  • acceptedAtstring (date-time) | nullrequired
    Timestamp (ISO 8601)
  • rejectedAtstring (date-time) | nullrequired
    Timestamp (ISO 8601)
  • language"de" | "en"required
    Document language (fixed on finalisation)
  • dispatchobjectrequired
    • countintegerrequired
      -9007199254740991–9007199254740991
    • lastChannel"email" | "post" | nullrequired
    • lastSentAtstring (date-time) | nullrequired
      Timestamp (ISO 8601)
  • lockedbooleanrequired
  • lockedAtstring (date-time) | nullrequired
    Timestamp (ISO 8601)
  • createdAtstring (date-time)required
    Timestamp (ISO 8601)
  • updatedAtstring (date-time)required
    Timestamp (ISO 8601)

Possible errors: 400, 401, 403, 404, 409, 422, 429, 500

curl -X POST 'https://www.debt-flow.io/api/v1/offers/ID/accept' \
  -H "Authorization: Bearer $DEBTFLOW_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
  "note": "string"
}'
Response 200
{
  "id": "string",
  "object": "offer",
  "type": "offer",
  "status": "draft",
  "number": "string",
  "contactId": "string",
  "recipient": {
    "name": "string",
    "addition": "string",
    "street": "",
    "zipCode": "",
    "city": "",
    "country": "DE",
    "email": "[email protected]",
    "vatId": "string",
    "leitwegId": "string",
    "einvoiceRecipientType": "business",
    "customerNumber": "string"
  },
  "sender": {
    "companyName": "string",
    "ownerName": "string",
    "legalForm": "string",
    "managingDirectors": "string",
    "street": "string",
    "zipCode": "string",
    "city": "string",
    "countryCode": "string",
    "phone": "string",
    "email": "string",
    "website": "string",
    "taxNumber": "string",
    "vatId": "string",
    "smallBusiness": false,
    "commercialRegister": {
      "court": "string",
      "number": "string"
    },
    "bank": {
      "accountHolder": "string",
      "iban": "string",
      "bic": "string",
      "bankName": "string"
    },
    "invoiceFooter": "string"
  },
  "issueDate": "2026-11-01",
  "validUntil": "2026-11-01",
  "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
      }
    ]
  },
  "relatedOfferId": "string",
  "orderConfirmationId": "string",
  "convertedInvoiceIds": [
    "string"
  ],
  "projectId": "string",
  "decisionNote": "string",
  "acceptedAt": "2026-11-01T09:30:00.000Z",
  "rejectedAt": "2026-11-01T09:30:00.000Z",
  "language": "de",
  "dispatch": {
    "count": 0,
    "lastChannel": "email",
    "lastSentAt": "2026-11-01T09:30:00.000Z"
  },
  "locked": false,
  "lockedAt": "2026-11-01T09:30:00.000Z",
  "createdAt": "2026-11-01T09:30:00.000Z",
  "updatedAt": "2026-11-01T09:30:00.000Z"
}
GET/api/v1/offers/{id}/audit-log

Permission: offers:read

Path parameters

  • idstringrequired
    Resource ID
    max. 128 characters

Query parameters

  • limitinteger
    Number of entries (1–100)
    1–100 · Default: 25
  • cursorstring
    `nextCursor` of the previous page
    max. 500 characters

Response 200

  • object"list"required
  • dataArray<AuditEntry>required
    • idstringrequired
      sequence number in the audit log
    • seqintegerrequired
      -9007199254740991–9007199254740991
    • atstring (date-time)required
      Timestamp (ISO 8601)
    • actorActorrequired
      • type"user" | "api_key" | "oauth" | "system"required
      • idstringrequired
      • labelstring
    • actionstringrequired
    • changesobjectrequired
    • metaobject | nullrequired
    • hashstringrequired
  • hasMorebooleanrequired
  • nextCursorstring | nullrequired

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

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

invoice: draft invoice with all line items. advance_invoice + percent: progress invoice (one line item per tax rate). final_invoice: final invoice that deducts all finalised progress invoices for this quote. order_confirmation: order confirmation as a draft. The quote is then considered accepted or invoiced respectively.

Permission: offers:write, invoices:write

Path parameters

  • idstringrequired
    Resource ID
    max. 128 characters

Headers

  • Idempotency-Keystring
    Unique key (8–255 characters). Repeated requests with the same key return the same response for 24 h.
    max. 255 characters

Body (JSON) · OfferConvert

  • target"invoice" | "advance_invoice" | "final_invoice" | "order_confirmation"required
    invoice = invoice for everything, advance_invoice = progress invoice, final_invoice = final invoice less progress invoices
  • percentnumber
    Progress invoice percentage (advance_invoice only)
    0.01–100

Response 201 · OfferConvertResult

  • offerOfferrequired
    • idstringrequired
      max. 128 characters
    • object"offer"required
    • type"offer" | "order_confirmation"required
    • status"draft" | "sent" | "accepted" | "rejected" | "expired" | "converted"required
    • numberstring | nullrequired
    • contactIdstring | nullrequired
      max. 128 characters
    • recipientDocumentRecipientrequired
      • namestringrequired
        Company or name
        max. 160 characters
      • additionstring
        Address supplement, e.g. attn. Ms Muster
        max. 160 characters
      • streetstringrequired
        max. 160 characters · Default: ""
      • zipCodestringrequired
        max. 10 characters · Default: ""
      • citystringrequired
        max. 80 characters · Default: ""
      • countrystringrequired
        Country code ISO 3166-1 alpha-2
        max. 2 characters · Default: "DE"
      • emailstring (email)
        Invoice recipient (email)
        max. 254 characters
      • vatIdstring
        Recipient's VAT ID (required for reverse charge/intra-Community supply)
      • leitwegIdstring
        Leitweg-ID (XRechnung to public authorities)
        max. 60 characters
      • einvoiceRecipientType"business" | "public_authority"
        E-invoice recipient profile (from the contact): public_authority requires a Leitweg-ID (ER-08)
      • customerNumberstring
        Customer number (assigned on finalisation)
        max. 40 characters
    • senderSenderSnapshot | nullrequired
      • companyNamestringrequired
      • ownerNamestring
      • legalFormstring
      • managingDirectorsstring
      • streetstringrequired
      • zipCodestringrequired
      • citystringrequired
      • countryCodestringrequired
      • phonestring
      • emailstring
      • websitestring
      • taxNumberstring
      • vatIdstring
      • smallBusinessbooleanrequired
      • commercialRegisterobject
      • bankobject
      • invoiceFooterstring
    • issueDatestring (date) | nullrequired
      Date (YYYY-MM-DD)
    • validUntilstring (date) | nullrequired
      Date (YYYY-MM-DD)
    • priceMode"net" | "gross"required
    • taxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"required
      Tax treatment of the receipt
    • taxNoticestring | nullrequired
    • currency"EUR"required
    • subjectstringrequired
    • introTextstringrequired
    • closingTextstringrequired
    • referencestringrequired
    • linesArray<DocumentLine>required
      • idstring
        stable line item ID (assigned by the server if empty)
        max. 40 characters
      • type"item" | "text" | "subtotal"
        Line item, plain text line or subtotal
        Default: "item"
      • articleIdstring
        Reference to the article master data
        max. 128 characters
      • titlestringrequired
        max. 300 characters
      • descriptionstring
        max. 5000 characters
      • quantitynumber
        -1000000–1000000 · Default: 1
      • unitstring
        Unit, e.g. Stk, Std, pauschal (piece, hour, flat rate); UN/ECE Rec 20 for e-invoicing: module
        max. 20 characters
      • unitPriceCentsinteger
        Amount in cents
        -100000000000–100000000000 · Default: 0
      • discountPercentnumber
        0–100
      • taxRatenumber
        Tax rate in per cent (19, 7, 0 …)
        0–100 · Default: 19
      • totalCentsinteger
        Amount in cents
        -100000000000–100000000000
      • servicePeriodobject
      • projectIdstring
        max. 128 characters
      • timeEntryIdsArray<string>
        max. 128 characters
    • totalsDocumentTotalsrequired
      • netCentsintegerrequired
        Amount in cents
        -100000000000–100000000000
      • taxCentsintegerrequired
        Amount in cents
        -100000000000–100000000000
      • grossCentsintegerrequired
        Amount in cents
        -100000000000–100000000000
      • groupsArray<object>required
    • relatedOfferIdstring | nullrequired
      Order confirmation: underlying quote
      max. 128 characters
    • orderConfirmationIdstring | nullrequired
      max. 128 characters
    • convertedInvoiceIdsArray<string>required
      invoices generated from it (progress/final/invoice)
      max. 128 characters
    • projectIdstring | nullrequired
      max. 128 characters
    • decisionNotestring | nullrequired
    • acceptedAtstring (date-time) | nullrequired
      Timestamp (ISO 8601)
    • rejectedAtstring (date-time) | nullrequired
      Timestamp (ISO 8601)
    • language"de" | "en"required
      Document language (fixed on finalisation)
    • dispatchobjectrequired
      • countintegerrequired
        -9007199254740991–9007199254740991
      • lastChannel"email" | "post" | nullrequired
      • lastSentAtstring (date-time) | nullrequired
        Timestamp (ISO 8601)
    • lockedbooleanrequired
    • lockedAtstring (date-time) | nullrequired
      Timestamp (ISO 8601)
    • createdAtstring (date-time)required
      Timestamp (ISO 8601)
    • updatedAtstring (date-time)required
      Timestamp (ISO 8601)
  • createdIdstringrequired
    ID of the generated invoice or order confirmation
    max. 128 characters
  • createdObject"invoice" | "offer"required

Possible errors: 400, 401, 403, 404, 409, 422, 429, 500

curl -X POST 'https://www.debt-flow.io/api/v1/offers/ID/convert' \
  -H "Authorization: Bearer $DEBTFLOW_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
  "target": "invoice",
  "percent": 0.01
}'
Response 201
{
  "offer": {
    "id": "string",
    "object": "offer",
    "type": "offer",
    "status": "draft",
    "number": "string",
    "contactId": "string",
    "recipient": {
      "name": "string",
      "addition": "string",
      "street": "",
      "zipCode": "",
      "city": "",
      "country": "DE",
      "email": "[email protected]",
      "vatId": "string",
      "leitwegId": "string",
      "einvoiceRecipientType": "business",
      "customerNumber": "string"
    },
    "sender": {
      "companyName": null,
      "ownerName": null,
      "legalForm": null,
      "managingDirectors": null,
      "street": null,
      "zipCode": null,
      "city": null,
      "countryCode": null,
      "phone": null,
      "email": null,
      "website": null,
      "taxNumber": null,
      "vatId": null,
      "smallBusiness": null,
      "commercialRegister": null,
      "bank": null,
      "invoiceFooter": null
    },
    "issueDate": "2026-11-01",
    "validUntil": "2026-11-01",
    "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
      ]
    },
    "relatedOfferId": "string",
    "orderConfirmationId": "string",
    "convertedInvoiceIds": [
      "string"
    ],
    "projectId": "string",
    "decisionNote": "string",
    "acceptedAt": "2026-11-01T09:30:00.000Z",
    "rejectedAt": "2026-11-01T09:30:00.000Z",
    "language": "de",
    "dispatch": {
      "count": 0,
      "lastChannel": "email",
      "lastSentAt": "2026-11-01T09:30:00.000Z"
    },
    "locked": false,
    "lockedAt": "2026-11-01T09:30:00.000Z",
    "createdAt": "2026-11-01T09:30:00.000Z",
    "updatedAt": "2026-11-01T09:30:00.000Z"
  },
  "createdId": "string",
  "createdObject": "invoice"
}
GET/api/v1/offers/{id}/dispatches

Permission: offers:read

Path parameters

  • idstringrequired
    Resource ID
    max. 128 characters

Query parameters

  • limitinteger
    Number of entries (1–100)
    1–100 · Default: 25
  • cursorstring
    `nextCursor` of the previous page
    max. 500 characters

Response 200

  • object"list"required
  • dataArray<InvoiceDispatch>required
    • idstringrequired
      max. 128 characters
    • invoiceIdstringrequired
      max. 128 characters
    • channel"email" | "post"required
    • status"sending" | "sent" | "failed"required
    • toArray<string>required
    • subjectstring | nullrequired
    • registeredbooleanrequired
    • letterIdstring | nullrequired
    • trackingRefstring | nullrequired
    • pageCountinteger | nullrequired
      -9007199254740991–9007199254740991
    • priceEurostring | nullrequired
    • deliveryStatus"pending" | "delivered" | "failed" | "returned" | nullrequired
      Post only: delivery status according to Briefdiener (cron letter-status), otherwise null
    • deliveryMessagestring | nullrequired
    • trackingUrlstring | nullrequired
    • deliveryUpdatedAtstring (date-time) | nullrequired
      Timestamp (ISO 8601)
    • errorstring | nullrequired
    • actorActor | nullrequired
      • type"user" | "api_key" | "oauth" | "system"required
      • idstringrequired
      • labelstring
    • createdAtstring (date-time)required
      Timestamp (ISO 8601)
    • sentAtstring (date-time) | nullrequired
      Timestamp (ISO 8601)
  • hasMorebooleanrequired
  • nextCursorstring | nullrequired

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

curl 'https://www.debt-flow.io/api/v1/offers/ID/dispatches' \
  -H "Authorization: Bearer $DEBTFLOW_API_KEY"
Response 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",
      "deliveryStatus": "pending",
      "deliveryMessage": "string",
      "trackingUrl": "string",
      "deliveryUpdatedAt": "2026-11-01T09:30:00.000Z",
      "error": "string",
      "actor": {
        "type": null,
        "id": null,
        "label": null
      },
      "createdAt": "2026-11-01T09:30:00.000Z",
      "sentAt": "2026-11-01T09:30:00.000Z"
    }
  ],
  "hasMore": false,
  "nextCursor": "string"
}
POST/api/v1/offers/{id}/duplicate

Permission: offers:write

Path parameters

  • idstringrequired
    Resource ID
    max. 128 characters

Headers

  • Idempotency-Keystring
    Unique key (8–255 characters). Repeated requests with the same key return the same response for 24 h.
    max. 255 characters

Response 201 · Offer

  • idstringrequired
    max. 128 characters
  • object"offer"required
  • type"offer" | "order_confirmation"required
  • status"draft" | "sent" | "accepted" | "rejected" | "expired" | "converted"required
  • numberstring | nullrequired
  • contactIdstring | nullrequired
    max. 128 characters
  • recipientDocumentRecipientrequired
    • namestringrequired
      Company or name
      max. 160 characters
    • additionstring
      Address supplement, e.g. attn. Ms Muster
      max. 160 characters
    • streetstringrequired
      max. 160 characters · Default: ""
    • zipCodestringrequired
      max. 10 characters · Default: ""
    • citystringrequired
      max. 80 characters · Default: ""
    • countrystringrequired
      Country code ISO 3166-1 alpha-2
      max. 2 characters · Default: "DE"
    • emailstring (email)
      Invoice recipient (email)
      max. 254 characters
    • vatIdstring
      Recipient's VAT ID (required for reverse charge/intra-Community supply)
    • leitwegIdstring
      Leitweg-ID (XRechnung to public authorities)
      max. 60 characters
    • einvoiceRecipientType"business" | "public_authority"
      E-invoice recipient profile (from the contact): public_authority requires a Leitweg-ID (ER-08)
    • customerNumberstring
      Customer number (assigned on finalisation)
      max. 40 characters
  • senderSenderSnapshot | nullrequired
    • companyNamestringrequired
    • ownerNamestring
    • legalFormstring
    • managingDirectorsstring
    • streetstringrequired
    • zipCodestringrequired
    • citystringrequired
    • countryCodestringrequired
    • phonestring
    • emailstring
    • websitestring
    • taxNumberstring
    • vatIdstring
    • smallBusinessbooleanrequired
    • commercialRegisterobject
      • courtstring
      • numberstring
    • bankobject
      • accountHolderstring
      • ibanstring
      • bicstring
      • bankNamestring
    • invoiceFooterstring
  • issueDatestring (date) | nullrequired
    Date (YYYY-MM-DD)
  • validUntilstring (date) | nullrequired
    Date (YYYY-MM-DD)
  • priceMode"net" | "gross"required
  • taxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"required
    Tax treatment of the receipt
  • taxNoticestring | nullrequired
  • currency"EUR"required
  • subjectstringrequired
  • introTextstringrequired
  • closingTextstringrequired
  • referencestringrequired
  • linesArray<DocumentLine>required
    • idstring
      stable line item ID (assigned by the server if empty)
      max. 40 characters
    • type"item" | "text" | "subtotal"
      Line item, plain text line or subtotal
      Default: "item"
    • articleIdstring
      Reference to the article master data
      max. 128 characters
    • titlestringrequired
      max. 300 characters
    • descriptionstring
      max. 5000 characters
    • quantitynumber
      -1000000–1000000 · Default: 1
    • unitstring
      Unit, e.g. Stk, Std, pauschal (piece, hour, flat rate); UN/ECE Rec 20 for e-invoicing: module
      max. 20 characters
    • unitPriceCentsinteger
      Amount in cents
      -100000000000–100000000000 · Default: 0
    • discountPercentnumber
      0–100
    • taxRatenumber
      Tax rate in per cent (19, 7, 0 …)
      0–100 · Default: 19
    • totalCentsinteger
      Amount in cents
      -100000000000–100000000000
    • servicePeriodobject
      • fromstring (date)required
        Date (YYYY-MM-DD)
      • tostring (date)required
        Date (YYYY-MM-DD)
    • projectIdstring
      max. 128 characters
    • timeEntryIdsArray<string>
      max. 128 characters
  • totalsDocumentTotalsrequired
    • netCentsintegerrequired
      Amount in cents
      -100000000000–100000000000
    • taxCentsintegerrequired
      Amount in cents
      -100000000000–100000000000
    • grossCentsintegerrequired
      Amount in cents
      -100000000000–100000000000
    • groupsArray<object>required
      • taxRatenumberrequired
      • categorystringrequired
      • netCentsintegerrequired
        Amount in cents
        -100000000000–100000000000
      • taxCentsintegerrequired
        Amount in cents
        -100000000000–100000000000
      • grossCentsintegerrequired
        Amount in cents
        -100000000000–100000000000
  • relatedOfferIdstring | nullrequired
    Order confirmation: underlying quote
    max. 128 characters
  • orderConfirmationIdstring | nullrequired
    max. 128 characters
  • convertedInvoiceIdsArray<string>required
    invoices generated from it (progress/final/invoice)
    max. 128 characters
  • projectIdstring | nullrequired
    max. 128 characters
  • decisionNotestring | nullrequired
  • acceptedAtstring (date-time) | nullrequired
    Timestamp (ISO 8601)
  • rejectedAtstring (date-time) | nullrequired
    Timestamp (ISO 8601)
  • language"de" | "en"required
    Document language (fixed on finalisation)
  • dispatchobjectrequired
    • countintegerrequired
      -9007199254740991–9007199254740991
    • lastChannel"email" | "post" | nullrequired
    • lastSentAtstring (date-time) | nullrequired
      Timestamp (ISO 8601)
  • lockedbooleanrequired
  • lockedAtstring (date-time) | nullrequired
    Timestamp (ISO 8601)
  • createdAtstring (date-time)required
    Timestamp (ISO 8601)
  • updatedAtstring (date-time)required
    Timestamp (ISO 8601)

Possible errors: 400, 401, 403, 404, 409, 422, 429, 500

curl -X POST 'https://www.debt-flow.io/api/v1/offers/ID/duplicate' \
  -H "Authorization: Bearer $DEBTFLOW_API_KEY"
Response 201
{
  "id": "string",
  "object": "offer",
  "type": "offer",
  "status": "draft",
  "number": "string",
  "contactId": "string",
  "recipient": {
    "name": "string",
    "addition": "string",
    "street": "",
    "zipCode": "",
    "city": "",
    "country": "DE",
    "email": "[email protected]",
    "vatId": "string",
    "leitwegId": "string",
    "einvoiceRecipientType": "business",
    "customerNumber": "string"
  },
  "sender": {
    "companyName": "string",
    "ownerName": "string",
    "legalForm": "string",
    "managingDirectors": "string",
    "street": "string",
    "zipCode": "string",
    "city": "string",
    "countryCode": "string",
    "phone": "string",
    "email": "string",
    "website": "string",
    "taxNumber": "string",
    "vatId": "string",
    "smallBusiness": false,
    "commercialRegister": {
      "court": "string",
      "number": "string"
    },
    "bank": {
      "accountHolder": "string",
      "iban": "string",
      "bic": "string",
      "bankName": "string"
    },
    "invoiceFooter": "string"
  },
  "issueDate": "2026-11-01",
  "validUntil": "2026-11-01",
  "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
      }
    ]
  },
  "relatedOfferId": "string",
  "orderConfirmationId": "string",
  "convertedInvoiceIds": [
    "string"
  ],
  "projectId": "string",
  "decisionNote": "string",
  "acceptedAt": "2026-11-01T09:30:00.000Z",
  "rejectedAt": "2026-11-01T09:30:00.000Z",
  "language": "de",
  "dispatch": {
    "count": 0,
    "lastChannel": "email",
    "lastSentAt": "2026-11-01T09:30:00.000Z"
  },
  "locked": false,
  "lockedAt": "2026-11-01T09:30:00.000Z",
  "createdAt": "2026-11-01T09:30:00.000Z",
  "updatedAt": "2026-11-01T09:30:00.000Z"
}
POST/api/v1/offers/{id}/finalize

Assigns the quote or order number, sets the date and “valid until” and locks the content. The status is then sent (issued).

Permission: offers:write

Path parameters

  • idstringrequired
    Resource ID
    max. 128 characters

Headers

  • Idempotency-Keystring
    Unique key (8–255 characters). Repeated requests with the same key return the same response for 24 h.
    max. 255 characters

Response 200 · Offer

  • idstringrequired
    max. 128 characters
  • object"offer"required
  • type"offer" | "order_confirmation"required
  • status"draft" | "sent" | "accepted" | "rejected" | "expired" | "converted"required
  • numberstring | nullrequired
  • contactIdstring | nullrequired
    max. 128 characters
  • recipientDocumentRecipientrequired
    • namestringrequired
      Company or name
      max. 160 characters
    • additionstring
      Address supplement, e.g. attn. Ms Muster
      max. 160 characters
    • streetstringrequired
      max. 160 characters · Default: ""
    • zipCodestringrequired
      max. 10 characters · Default: ""
    • citystringrequired
      max. 80 characters · Default: ""
    • countrystringrequired
      Country code ISO 3166-1 alpha-2
      max. 2 characters · Default: "DE"
    • emailstring (email)
      Invoice recipient (email)
      max. 254 characters
    • vatIdstring
      Recipient's VAT ID (required for reverse charge/intra-Community supply)
    • leitwegIdstring
      Leitweg-ID (XRechnung to public authorities)
      max. 60 characters
    • einvoiceRecipientType"business" | "public_authority"
      E-invoice recipient profile (from the contact): public_authority requires a Leitweg-ID (ER-08)
    • customerNumberstring
      Customer number (assigned on finalisation)
      max. 40 characters
  • senderSenderSnapshot | nullrequired
    • companyNamestringrequired
    • ownerNamestring
    • legalFormstring
    • managingDirectorsstring
    • streetstringrequired
    • zipCodestringrequired
    • citystringrequired
    • countryCodestringrequired
    • phonestring
    • emailstring
    • websitestring
    • taxNumberstring
    • vatIdstring
    • smallBusinessbooleanrequired
    • commercialRegisterobject
      • courtstring
      • numberstring
    • bankobject
      • accountHolderstring
      • ibanstring
      • bicstring
      • bankNamestring
    • invoiceFooterstring
  • issueDatestring (date) | nullrequired
    Date (YYYY-MM-DD)
  • validUntilstring (date) | nullrequired
    Date (YYYY-MM-DD)
  • priceMode"net" | "gross"required
  • taxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"required
    Tax treatment of the receipt
  • taxNoticestring | nullrequired
  • currency"EUR"required
  • subjectstringrequired
  • introTextstringrequired
  • closingTextstringrequired
  • referencestringrequired
  • linesArray<DocumentLine>required
    • idstring
      stable line item ID (assigned by the server if empty)
      max. 40 characters
    • type"item" | "text" | "subtotal"
      Line item, plain text line or subtotal
      Default: "item"
    • articleIdstring
      Reference to the article master data
      max. 128 characters
    • titlestringrequired
      max. 300 characters
    • descriptionstring
      max. 5000 characters
    • quantitynumber
      -1000000–1000000 · Default: 1
    • unitstring
      Unit, e.g. Stk, Std, pauschal (piece, hour, flat rate); UN/ECE Rec 20 for e-invoicing: module
      max. 20 characters
    • unitPriceCentsinteger
      Amount in cents
      -100000000000–100000000000 · Default: 0
    • discountPercentnumber
      0–100
    • taxRatenumber
      Tax rate in per cent (19, 7, 0 …)
      0–100 · Default: 19
    • totalCentsinteger
      Amount in cents
      -100000000000–100000000000
    • servicePeriodobject
      • fromstring (date)required
        Date (YYYY-MM-DD)
      • tostring (date)required
        Date (YYYY-MM-DD)
    • projectIdstring
      max. 128 characters
    • timeEntryIdsArray<string>
      max. 128 characters
  • totalsDocumentTotalsrequired
    • netCentsintegerrequired
      Amount in cents
      -100000000000–100000000000
    • taxCentsintegerrequired
      Amount in cents
      -100000000000–100000000000
    • grossCentsintegerrequired
      Amount in cents
      -100000000000–100000000000
    • groupsArray<object>required
      • taxRatenumberrequired
      • categorystringrequired
      • netCentsintegerrequired
        Amount in cents
        -100000000000–100000000000
      • taxCentsintegerrequired
        Amount in cents
        -100000000000–100000000000
      • grossCentsintegerrequired
        Amount in cents
        -100000000000–100000000000
  • relatedOfferIdstring | nullrequired
    Order confirmation: underlying quote
    max. 128 characters
  • orderConfirmationIdstring | nullrequired
    max. 128 characters
  • convertedInvoiceIdsArray<string>required
    invoices generated from it (progress/final/invoice)
    max. 128 characters
  • projectIdstring | nullrequired
    max. 128 characters
  • decisionNotestring | nullrequired
  • acceptedAtstring (date-time) | nullrequired
    Timestamp (ISO 8601)
  • rejectedAtstring (date-time) | nullrequired
    Timestamp (ISO 8601)
  • language"de" | "en"required
    Document language (fixed on finalisation)
  • dispatchobjectrequired
    • countintegerrequired
      -9007199254740991–9007199254740991
    • lastChannel"email" | "post" | nullrequired
    • lastSentAtstring (date-time) | nullrequired
      Timestamp (ISO 8601)
  • lockedbooleanrequired
  • lockedAtstring (date-time) | nullrequired
    Timestamp (ISO 8601)
  • createdAtstring (date-time)required
    Timestamp (ISO 8601)
  • updatedAtstring (date-time)required
    Timestamp (ISO 8601)

Possible errors: 400, 401, 403, 404, 409, 422, 429, 500

curl -X POST 'https://www.debt-flow.io/api/v1/offers/ID/finalize' \
  -H "Authorization: Bearer $DEBTFLOW_API_KEY"
Response 200
{
  "id": "string",
  "object": "offer",
  "type": "offer",
  "status": "draft",
  "number": "string",
  "contactId": "string",
  "recipient": {
    "name": "string",
    "addition": "string",
    "street": "",
    "zipCode": "",
    "city": "",
    "country": "DE",
    "email": "[email protected]",
    "vatId": "string",
    "leitwegId": "string",
    "einvoiceRecipientType": "business",
    "customerNumber": "string"
  },
  "sender": {
    "companyName": "string",
    "ownerName": "string",
    "legalForm": "string",
    "managingDirectors": "string",
    "street": "string",
    "zipCode": "string",
    "city": "string",
    "countryCode": "string",
    "phone": "string",
    "email": "string",
    "website": "string",
    "taxNumber": "string",
    "vatId": "string",
    "smallBusiness": false,
    "commercialRegister": {
      "court": "string",
      "number": "string"
    },
    "bank": {
      "accountHolder": "string",
      "iban": "string",
      "bic": "string",
      "bankName": "string"
    },
    "invoiceFooter": "string"
  },
  "issueDate": "2026-11-01",
  "validUntil": "2026-11-01",
  "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
      }
    ]
  },
  "relatedOfferId": "string",
  "orderConfirmationId": "string",
  "convertedInvoiceIds": [
    "string"
  ],
  "projectId": "string",
  "decisionNote": "string",
  "acceptedAt": "2026-11-01T09:30:00.000Z",
  "rejectedAt": "2026-11-01T09:30:00.000Z",
  "language": "de",
  "dispatch": {
    "count": 0,
    "lastChannel": "email",
    "lastSentAt": "2026-11-01T09:30:00.000Z"
  },
  "locked": false,
  "lockedAt": "2026-11-01T09:30:00.000Z",
  "createdAt": "2026-11-01T09:30:00.000Z",
  "updatedAt": "2026-11-01T09:30:00.000Z"
}
GET/api/v1/offers/{id}/pdf

Permission: offers:read

Path parameters

  • idstringrequired
    Resource ID
    max. 128 characters

Response 200

File (application/pdf).

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

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

Permission: offers:write

Path parameters

  • idstringrequired
    Resource ID
    max. 128 characters

Headers

  • Idempotency-Keystring
    Unique key (8–255 characters). Repeated requests with the same key return the same response for 24 h.
    max. 255 characters

Body (JSON) · OfferDecision

  • notestring
    Note, e.g. reason for rejection
    max. 1000 characters

Response 200 · Offer

  • idstringrequired
    max. 128 characters
  • object"offer"required
  • type"offer" | "order_confirmation"required
  • status"draft" | "sent" | "accepted" | "rejected" | "expired" | "converted"required
  • numberstring | nullrequired
  • contactIdstring | nullrequired
    max. 128 characters
  • recipientDocumentRecipientrequired
    • namestringrequired
      Company or name
      max. 160 characters
    • additionstring
      Address supplement, e.g. attn. Ms Muster
      max. 160 characters
    • streetstringrequired
      max. 160 characters · Default: ""
    • zipCodestringrequired
      max. 10 characters · Default: ""
    • citystringrequired
      max. 80 characters · Default: ""
    • countrystringrequired
      Country code ISO 3166-1 alpha-2
      max. 2 characters · Default: "DE"
    • emailstring (email)
      Invoice recipient (email)
      max. 254 characters
    • vatIdstring
      Recipient's VAT ID (required for reverse charge/intra-Community supply)
    • leitwegIdstring
      Leitweg-ID (XRechnung to public authorities)
      max. 60 characters
    • einvoiceRecipientType"business" | "public_authority"
      E-invoice recipient profile (from the contact): public_authority requires a Leitweg-ID (ER-08)
    • customerNumberstring
      Customer number (assigned on finalisation)
      max. 40 characters
  • senderSenderSnapshot | nullrequired
    • companyNamestringrequired
    • ownerNamestring
    • legalFormstring
    • managingDirectorsstring
    • streetstringrequired
    • zipCodestringrequired
    • citystringrequired
    • countryCodestringrequired
    • phonestring
    • emailstring
    • websitestring
    • taxNumberstring
    • vatIdstring
    • smallBusinessbooleanrequired
    • commercialRegisterobject
      • courtstring
      • numberstring
    • bankobject
      • accountHolderstring
      • ibanstring
      • bicstring
      • bankNamestring
    • invoiceFooterstring
  • issueDatestring (date) | nullrequired
    Date (YYYY-MM-DD)
  • validUntilstring (date) | nullrequired
    Date (YYYY-MM-DD)
  • priceMode"net" | "gross"required
  • taxTreatment"regular" | "small_business" | "reverse_charge" | "intra_eu_supply" | "export" | "non_taxable"required
    Tax treatment of the receipt
  • taxNoticestring | nullrequired
  • currency"EUR"required
  • subjectstringrequired
  • introTextstringrequired
  • closingTextstringrequired
  • referencestringrequired
  • linesArray<DocumentLine>required
    • idstring
      stable line item ID (assigned by the server if empty)
      max. 40 characters
    • type"item" | "text" | "subtotal"
      Line item, plain text line or subtotal
      Default: "item"
    • articleIdstring
      Reference to the article master data
      max. 128 characters
    • titlestringrequired
      max. 300 characters
    • descriptionstring
      max. 5000 characters
    • quantitynumber
      -1000000–1000000 · Default: 1
    • unitstring
      Unit, e.g. Stk, Std, pauschal (piece, hour, flat rate); UN/ECE Rec 20 for e-invoicing: module
      max. 20 characters
    • unitPriceCentsinteger
      Amount in cents
      -100000000000–100000000000 · Default: 0
    • discountPercentnumber
      0–100
    • taxRatenumber
      Tax rate in per cent (19, 7, 0 …)
      0–100 · Default: 19
    • totalCentsinteger
      Amount in cents
      -100000000000–100000000000
    • servicePeriodobject
      • fromstring (date)required
        Date (YYYY-MM-DD)
      • tostring (date)required
        Date (YYYY-MM-DD)
    • projectIdstring
      max. 128 characters
    • timeEntryIdsArray<string>
      max. 128 characters
  • totalsDocumentTotalsrequired
    • netCentsintegerrequired
      Amount in cents
      -100000000000–100000000000
    • taxCentsintegerrequired
      Amount in cents
      -100000000000–100000000000
    • grossCentsintegerrequired
      Amount in cents
      -100000000000–100000000000
    • groupsArray<object>required
      • taxRatenumberrequired
      • categorystringrequired
      • netCentsintegerrequired
        Amount in cents
        -100000000000–100000000000
      • taxCentsintegerrequired
        Amount in cents
        -100000000000–100000000000
      • grossCentsintegerrequired
        Amount in cents
        -100000000000–100000000000
  • relatedOfferIdstring | nullrequired
    Order confirmation: underlying quote
    max. 128 characters
  • orderConfirmationIdstring | nullrequired
    max. 128 characters
  • convertedInvoiceIdsArray<string>required
    invoices generated from it (progress/final/invoice)
    max. 128 characters
  • projectIdstring | nullrequired
    max. 128 characters
  • decisionNotestring | nullrequired
  • acceptedAtstring (date-time) | nullrequired
    Timestamp (ISO 8601)
  • rejectedAtstring (date-time) | nullrequired
    Timestamp (ISO 8601)
  • language"de" | "en"required
    Document language (fixed on finalisation)
  • dispatchobjectrequired
    • countintegerrequired
      -9007199254740991–9007199254740991
    • lastChannel"email" | "post" | nullrequired
    • lastSentAtstring (date-time) | nullrequired
      Timestamp (ISO 8601)
  • lockedbooleanrequired
  • lockedAtstring (date-time) | nullrequired
    Timestamp (ISO 8601)
  • createdAtstring (date-time)required
    Timestamp (ISO 8601)
  • updatedAtstring (date-time)required
    Timestamp (ISO 8601)

Possible errors: 400, 401, 403, 404, 409, 422, 429, 500

curl -X POST 'https://www.debt-flow.io/api/v1/offers/ID/reject' \
  -H "Authorization: Bearer $DEBTFLOW_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
  "note": "string"
}'
Response 200
{
  "id": "string",
  "object": "offer",
  "type": "offer",
  "status": "draft",
  "number": "string",
  "contactId": "string",
  "recipient": {
    "name": "string",
    "addition": "string",
    "street": "",
    "zipCode": "",
    "city": "",
    "country": "DE",
    "email": "[email protected]",
    "vatId": "string",
    "leitwegId": "string",
    "einvoiceRecipientType": "business",
    "customerNumber": "string"
  },
  "sender": {
    "companyName": "string",
    "ownerName": "string",
    "legalForm": "string",
    "managingDirectors": "string",
    "street": "string",
    "zipCode": "string",
    "city": "string",
    "countryCode": "string",
    "phone": "string",
    "email": "string",
    "website": "string",
    "taxNumber": "string",
    "vatId": "string",
    "smallBusiness": false,
    "commercialRegister": {
      "court": "string",
      "number": "string"
    },
    "bank": {
      "accountHolder": "string",
      "iban": "string",
      "bic": "string",
      "bankName": "string"
    },
    "invoiceFooter": "string"
  },
  "issueDate": "2026-11-01",
  "validUntil": "2026-11-01",
  "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
      }
    ]
  },
  "relatedOfferId": "string",
  "orderConfirmationId": "string",
  "convertedInvoiceIds": [
    "string"
  ],
  "projectId": "string",
  "decisionNote": "string",
  "acceptedAt": "2026-11-01T09:30:00.000Z",
  "rejectedAt": "2026-11-01T09:30:00.000Z",
  "language": "de",
  "dispatch": {
    "count": 0,
    "lastChannel": "email",
    "lastSentAt": "2026-11-01T09:30:00.000Z"
  },
  "locked": false,
  "lockedAt": "2026-11-01T09:30:00.000Z",
  "createdAt": "2026-11-01T09:30:00.000Z",
  "updatedAt": "2026-11-01T09:30:00.000Z"
}
POST/api/v1/offers/{id}/send

Like /invoices/{id}/send. Additional placeholder in the email text: {gueltig}.

Permission: offers:write

Path parameters

  • idstringrequired
    Resource ID
    max. 128 characters

Headers

  • Idempotency-Keystring
    Unique key (8–255 characters). Repeated requests with the same key return the same response for 24 h.
    max. 255 characters

Body (JSON) · InvoiceSend

  • channel"email" | "post"required
  • toArray<string (email)>
    Email: recipient; default is the contact's invoice email address
    max. 254 characters
  • ccArray<string (email)>
    max. 254 characters
  • copyToSelfboolean
    Email: copy to your own invoice email address
  • subjectstring
    max. 200 characters
  • messagestring
    Email body; placeholders {nummer} {betrag} {faellig} {kunde} {firma}
    max. 5000 characters
  • registeredboolean
    Post: as registered mail
  • finalizeboolean
    Finalise the draft before sending
  • confirmServiceDateboolean
    Without a date or period of supply: confirms that the supply was made on the invoice date (§ 14 (4) No. 6 UStG)
  • issueDateReasonstring
    Reason if the invoice date differs from the day of finalising (will be logged)
    max. 500 characters

Response 201 · InvoiceDispatch

  • idstringrequired
    max. 128 characters
  • invoiceIdstringrequired
    max. 128 characters
  • channel"email" | "post"required
  • status"sending" | "sent" | "failed"required
  • toArray<string>required
  • subjectstring | nullrequired
  • registeredbooleanrequired
  • letterIdstring | nullrequired
  • trackingRefstring | nullrequired
  • pageCountinteger | nullrequired
    -9007199254740991–9007199254740991
  • priceEurostring | nullrequired
  • deliveryStatus"pending" | "delivered" | "failed" | "returned" | nullrequired
    Post only: delivery status according to Briefdiener (cron letter-status), otherwise null
  • deliveryMessagestring | nullrequired
  • trackingUrlstring | nullrequired
  • deliveryUpdatedAtstring (date-time) | nullrequired
    Timestamp (ISO 8601)
  • errorstring | nullrequired
  • actorActor | nullrequired
    • type"user" | "api_key" | "oauth" | "system"required
    • idstringrequired
    • labelstring
  • createdAtstring (date-time)required
    Timestamp (ISO 8601)
  • sentAtstring (date-time) | nullrequired
    Timestamp (ISO 8601)

Possible errors: 400, 401, 402, 403, 404, 409, 422, 429, 500, 502

curl -X POST 'https://www.debt-flow.io/api/v1/offers/ID/send' \
  -H "Authorization: Bearer $DEBTFLOW_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
  "channel": "email",
  "to": [
    "[email protected]"
  ],
  "cc": [
    "[email protected]"
  ],
  "copyToSelf": false,
  "subject": "string",
  "message": "string",
  "registered": false,
  "finalize": false,
  "confirmServiceDate": false,
  "issueDateReason": "string"
}'
Response 201
{
  "id": "string",
  "invoiceId": "string",
  "channel": "email",
  "status": "sending",
  "to": [
    "string"
  ],
  "subject": "string",
  "registered": false,
  "letterId": "string",
  "trackingRef": "string",
  "pageCount": 0,
  "priceEuro": "string",
  "deliveryStatus": "pending",
  "deliveryMessage": "string",
  "trackingUrl": "string",
  "deliveryUpdatedAt": "2026-11-01T09:30:00.000Z",
  "error": "string",
  "actor": {
    "type": "user",
    "id": "string",
    "label": "string"
  },
  "createdAt": "2026-11-01T09:30:00.000Z",
  "sentAt": "2026-11-01T09:30:00.000Z"
}