Zum Inhalt springen

Online-Zahlung

Eigenes Stripe-Konto verbinden (Stripe Connect) und Zahlungslinks für Rechnungen und Forderungen.
POST/api/v1/payment-links

Erstellt den dauerhaften Zahlungslink zu einer festgeschriebenen, offenen Rechnung oder zu einer offenen Forderung – oder liefert den bereits aktiven Link. Bezahlt wird jeweils der beim Aufruf offene Betrag. Setzt ein aktives Stripe-Konto voraus (409 stripe_not_connected).

Berechtigung: payments:write

Header

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

Body (JSON) · PaymentLinkCreate

  • invoiceIdstring
    Rechnung (festgeschrieben, offen)
    max. 128 Zeichen
  • debtIdstring
    Forderung (offen)
    max. 128 Zeichen

Antwort 201 · PaymentLink

  • idstringPflicht
  • object"payment_link"Pflicht
  • urlstring (uri)Pflicht
    Öffentlicher Link für den Zahler (ohne Anmeldung)
  • status"active" | "paid" | "deactivated"Pflicht
  • targetType"invoice" | "debt"Pflicht
  • invoiceIdstring | nullPflicht
  • debtIdstring | nullPflicht
  • contactIdstring | nullPflicht
  • referencestringPflicht
    Rechnungsnummer bzw. Forderungsreferenz
  • descriptionstringPflicht
  • amountDueCentsinteger | nullPflicht
    Aktuell offener Betrag (nur beim Einzelabruf, sonst null)
    0–100000000000
  • paidCentsintegerPflicht
    Über diesen Link bezahlt
    0–100000000000
  • processingobject | nullPflicht
    Zahlung angestoßen, Gutschrift steht noch aus (z. B. SEPA-Lastschrift)
    • amountCentsintegerPflicht
      Betrag in Cent
      0–100000000000
    • sincestring (date-time)Pflicht
      Zeitpunkt (ISO 8601)
  • paymentsArray<OnlinePayment>Pflicht
    • idstringPflicht
      ID der gebuchten Zahlung (stripe_<Checkout-Session-ID>)
    • object"payment"Pflicht
    • targetType"invoice" | "debt"Pflicht
    • invoiceIdstring | nullPflicht
    • debtIdstring | nullPflicht
    • amountCentsintegerPflicht
      Betrag in Cent
      0–100000000000
    • currency"EUR"Pflicht
    • datestring (date)Pflicht
      Zahlungsdatum (Europe/Berlin)
    • method"stripe"Pflicht
    • paymentLinkIdstringPflicht
    • stripeobjectPflicht
      • accountIdstringPflicht
      • checkoutSessionIdstringPflicht
      • paymentIntentIdstring | nullPflicht
    • createdAtstring (date-time)Pflicht
      Zeitpunkt (ISO 8601)
  • lastCheckoutAtstring (date-time) | nullPflicht
    Zeitpunkt (ISO 8601)
  • paidAtstring (date-time) | nullPflicht
    Zeitpunkt (ISO 8601)
  • deactivatedAtstring (date-time) | nullPflicht
    Zeitpunkt (ISO 8601)
  • createdAtstring (date-time)Pflicht
    Zeitpunkt (ISO 8601)
  • updatedAtstring (date-time)Pflicht
    Zeitpunkt (ISO 8601)

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

curl -X POST 'https://www.debt-flow.io/api/v1/payment-links' \
  -H "Authorization: Bearer $DEBTFLOW_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
  "invoiceId": "string",
  "debtId": "string"
}'
Antwort 201
{
  "id": "pl_7hQ2mK9xR4tB1nC8vD3eF6gH",
  "object": "payment_link",
  "url": "https://example.com",
  "status": "active",
  "targetType": "invoice",
  "invoiceId": "string",
  "debtId": "string",
  "contactId": "string",
  "reference": "string",
  "description": "string",
  "amountDueCents": 0,
  "paidCents": 0,
  "processing": {
    "amountCents": 0,
    "since": "2026-11-01T09:30:00.000Z"
  },
  "payments": [
    {
      "id": "string",
      "object": "payment",
      "targetType": "invoice",
      "invoiceId": "string",
      "debtId": "string",
      "amountCents": 0,
      "currency": "EUR",
      "date": "2026-11-01",
      "method": "stripe",
      "paymentLinkId": "string",
      "stripe": {
        "accountId": "string",
        "checkoutSessionId": "string",
        "paymentIntentId": "string"
      },
      "createdAt": "2026-11-01T09:30:00.000Z"
    }
  ],
  "lastCheckoutAt": "2026-11-01T09:30:00.000Z",
  "paidAt": "2026-11-01T09:30:00.000Z",
  "deactivatedAt": "2026-11-01T09:30:00.000Z",
  "createdAt": "2026-11-01T09:30:00.000Z",
  "updatedAt": "2026-11-01T09:30:00.000Z"
}
POST/api/v1/payment-links/{id}/checkout

Ohne Anmeldung: erzeugt eine Stripe-Checkout-Session auf dem Stripe-Konto des Zahlungsempfängers über den aktuell offenen Betrag und liefert die Adresse, zu der der Browser weitergeleitet wird. Eine noch gültige Session mit gleichem Betrag wird wiederverwendet.

Ohne Anmeldung.

Pfadparameter

  • idstringPflicht
    ID der Ressource
    max. 128 Zeichen

Antwort 200 · CheckoutRedirect

  • urlstring (uri)Pflicht
    Stripe-Checkout-Seite (Weiterleitung im Browser)
  • expiresAtstring (date-time)Pflicht
    Zeitpunkt (ISO 8601)
  • amountCentsintegerPflicht
    Betrag in Cent
    0–100000000000

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

curl -X POST 'https://www.debt-flow.io/api/v1/payment-links/ID/checkout'
Antwort 200
{
  "url": "https://example.com",
  "expiresAt": "2026-11-01T09:30:00.000Z",
  "amountCents": 0
}
POST/api/v1/payment-links/{id}/deactivate

Der Link nimmt keine Zahlungen mehr an. Für dieselbe Rechnung/Forderung kann danach ein neuer Link erstellt werden.

Berechtigung: payments:write

Pfadparameter

  • idstringPflicht
    ID der Ressource
    max. 128 Zeichen

Header

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

Antwort 200 · PaymentLink

  • idstringPflicht
  • object"payment_link"Pflicht
  • urlstring (uri)Pflicht
    Öffentlicher Link für den Zahler (ohne Anmeldung)
  • status"active" | "paid" | "deactivated"Pflicht
  • targetType"invoice" | "debt"Pflicht
  • invoiceIdstring | nullPflicht
  • debtIdstring | nullPflicht
  • contactIdstring | nullPflicht
  • referencestringPflicht
    Rechnungsnummer bzw. Forderungsreferenz
  • descriptionstringPflicht
  • amountDueCentsinteger | nullPflicht
    Aktuell offener Betrag (nur beim Einzelabruf, sonst null)
    0–100000000000
  • paidCentsintegerPflicht
    Über diesen Link bezahlt
    0–100000000000
  • processingobject | nullPflicht
    Zahlung angestoßen, Gutschrift steht noch aus (z. B. SEPA-Lastschrift)
    • amountCentsintegerPflicht
      Betrag in Cent
      0–100000000000
    • sincestring (date-time)Pflicht
      Zeitpunkt (ISO 8601)
  • paymentsArray<OnlinePayment>Pflicht
    • idstringPflicht
      ID der gebuchten Zahlung (stripe_<Checkout-Session-ID>)
    • object"payment"Pflicht
    • targetType"invoice" | "debt"Pflicht
    • invoiceIdstring | nullPflicht
    • debtIdstring | nullPflicht
    • amountCentsintegerPflicht
      Betrag in Cent
      0–100000000000
    • currency"EUR"Pflicht
    • datestring (date)Pflicht
      Zahlungsdatum (Europe/Berlin)
    • method"stripe"Pflicht
    • paymentLinkIdstringPflicht
    • stripeobjectPflicht
      • accountIdstringPflicht
      • checkoutSessionIdstringPflicht
      • paymentIntentIdstring | nullPflicht
    • createdAtstring (date-time)Pflicht
      Zeitpunkt (ISO 8601)
  • lastCheckoutAtstring (date-time) | nullPflicht
    Zeitpunkt (ISO 8601)
  • paidAtstring (date-time) | nullPflicht
    Zeitpunkt (ISO 8601)
  • deactivatedAtstring (date-time) | nullPflicht
    Zeitpunkt (ISO 8601)
  • createdAtstring (date-time)Pflicht
    Zeitpunkt (ISO 8601)
  • updatedAtstring (date-time)Pflicht
    Zeitpunkt (ISO 8601)

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

curl -X POST 'https://www.debt-flow.io/api/v1/payment-links/ID/deactivate' \
  -H "Authorization: Bearer $DEBTFLOW_API_KEY"
Antwort 200
{
  "id": "pl_7hQ2mK9xR4tB1nC8vD3eF6gH",
  "object": "payment_link",
  "url": "https://example.com",
  "status": "active",
  "targetType": "invoice",
  "invoiceId": "string",
  "debtId": "string",
  "contactId": "string",
  "reference": "string",
  "description": "string",
  "amountDueCents": 0,
  "paidCents": 0,
  "processing": {
    "amountCents": 0,
    "since": "2026-11-01T09:30:00.000Z"
  },
  "payments": [
    {
      "id": "string",
      "object": "payment",
      "targetType": "invoice",
      "invoiceId": "string",
      "debtId": "string",
      "amountCents": 0,
      "currency": "EUR",
      "date": "2026-11-01",
      "method": "stripe",
      "paymentLinkId": "string",
      "stripe": {
        "accountId": "string",
        "checkoutSessionId": "string",
        "paymentIntentId": "string"
      },
      "createdAt": "2026-11-01T09:30:00.000Z"
    }
  ],
  "lastCheckoutAt": "2026-11-01T09:30:00.000Z",
  "paidAt": "2026-11-01T09:30:00.000Z",
  "deactivatedAt": "2026-11-01T09:30:00.000Z",
  "createdAt": "2026-11-01T09:30:00.000Z",
  "updatedAt": "2026-11-01T09:30:00.000Z"
}
GET/api/v1/stripe-account

Status der Stripe-Connect-Verbindung (Standard-Konto des Nutzers) und Einstellungen für Zahlungslinks. Zahlungen gehen direkt auf das Stripe-Konto des Nutzers; DebtFlow erhebt keine Gebühr.

Berechtigung: payments:read

Antwort 200 · StripeAccount

  • object"stripe_account"Pflicht
  • status"unavailable" | "not_connected" | "onboarding" | "restricted" | "active" | "disconnected"Pflicht
    `unavailable` = auf diesem Server nicht eingerichtet, `onboarding` = Angaben bei Stripe fehlen, `restricted` = Stripe hat Zahlungen eingeschränkt, `active` = Zahlungen möglich
  • oauthAvailablebooleanPflicht
    Bestehendes Stripe-Konto kann per OAuth verbunden werden
  • accountIdstring | nullPflicht
    Stripe-Konto-ID (acct_…)
  • connectedVia"oauth" | "onboarding" | nullPflicht
  • chargesEnabledbooleanPflicht
  • payoutsEnabledbooleanPflicht
  • detailsSubmittedbooleanPflicht
  • requirementsDueArray<string>Pflicht
    Bei Stripe noch fehlende Angaben (Stripe-Feldnamen)
  • businessNamestring | nullPflicht
  • countrystring | nullPflicht
  • defaultCurrencystring | nullPflicht
  • livemodeboolean | nullPflicht
    false = Testmodus
  • settingsPaymentLinkSettingsPflicht
    • includeInInvoicesbooleanPflicht
      Zahlungslink + QR-Code in Rechnungs-PDF und Rechnungs-E-Mail einfügen
    • includeInDunningbooleanPflicht
      Zahlungslink in Mahnungen (E-Mail und Brief) einfügen
  • connectedAtstring (date-time) | nullPflicht
    Zeitpunkt (ISO 8601)
  • updatedAtstring (date-time) | nullPflicht
    Zeitpunkt (ISO 8601)

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

curl 'https://www.debt-flow.io/api/v1/stripe-account' \
  -H "Authorization: Bearer $DEBTFLOW_API_KEY"
Antwort 200
{
  "object": "stripe_account",
  "status": "unavailable",
  "oauthAvailable": false,
  "accountId": "string",
  "connectedVia": "oauth",
  "chargesEnabled": false,
  "payoutsEnabled": false,
  "detailsSubmitted": false,
  "requirementsDue": [
    "string"
  ],
  "businessName": "string",
  "country": "string",
  "defaultCurrency": "string",
  "livemode": false,
  "settings": {
    "includeInInvoices": false,
    "includeInDunning": false
  },
  "connectedAt": "2026-11-01T09:30:00.000Z",
  "updatedAt": "2026-11-01T09:30:00.000Z"
}
PATCH/api/v1/stripe-account

Legt fest, ob der Zahlungslink automatisch in Rechnungen (PDF und E-Mail) und in Mahnungen eingefügt wird.

Berechtigung: payments:write

Body (JSON) · StripeAccountPatch

  • settingsobjectPflicht
    • includeInInvoicesboolean
      Zahlungslink + QR-Code in Rechnungs-PDF und Rechnungs-E-Mail einfügen
    • includeInDunningboolean
      Zahlungslink in Mahnungen (E-Mail und Brief) einfügen

Antwort 200 · StripeAccount

  • object"stripe_account"Pflicht
  • status"unavailable" | "not_connected" | "onboarding" | "restricted" | "active" | "disconnected"Pflicht
    `unavailable` = auf diesem Server nicht eingerichtet, `onboarding` = Angaben bei Stripe fehlen, `restricted` = Stripe hat Zahlungen eingeschränkt, `active` = Zahlungen möglich
  • oauthAvailablebooleanPflicht
    Bestehendes Stripe-Konto kann per OAuth verbunden werden
  • accountIdstring | nullPflicht
    Stripe-Konto-ID (acct_…)
  • connectedVia"oauth" | "onboarding" | nullPflicht
  • chargesEnabledbooleanPflicht
  • payoutsEnabledbooleanPflicht
  • detailsSubmittedbooleanPflicht
  • requirementsDueArray<string>Pflicht
    Bei Stripe noch fehlende Angaben (Stripe-Feldnamen)
  • businessNamestring | nullPflicht
  • countrystring | nullPflicht
  • defaultCurrencystring | nullPflicht
  • livemodeboolean | nullPflicht
    false = Testmodus
  • settingsPaymentLinkSettingsPflicht
    • includeInInvoicesbooleanPflicht
      Zahlungslink + QR-Code in Rechnungs-PDF und Rechnungs-E-Mail einfügen
    • includeInDunningbooleanPflicht
      Zahlungslink in Mahnungen (E-Mail und Brief) einfügen
  • connectedAtstring (date-time) | nullPflicht
    Zeitpunkt (ISO 8601)
  • updatedAtstring (date-time) | nullPflicht
    Zeitpunkt (ISO 8601)

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

curl -X PATCH 'https://www.debt-flow.io/api/v1/stripe-account' \
  -H "Authorization: Bearer $DEBTFLOW_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
  "settings": {
    "includeInInvoices": false,
    "includeInDunning": false
  }
}'
Antwort 200
{
  "object": "stripe_account",
  "status": "unavailable",
  "oauthAvailable": false,
  "accountId": "string",
  "connectedVia": "oauth",
  "chargesEnabled": false,
  "payoutsEnabled": false,
  "detailsSubmitted": false,
  "requirementsDue": [
    "string"
  ],
  "businessName": "string",
  "country": "string",
  "defaultCurrency": "string",
  "livemode": false,
  "settings": {
    "includeInInvoices": false,
    "includeInDunning": false
  },
  "connectedAt": "2026-11-01T09:30:00.000Z",
  "updatedAt": "2026-11-01T09:30:00.000Z"
}
POST/api/v1/stripe-account/refresh

Fragt den aktuellen Stand (Zahlungen/Auszahlungen freigeschaltet, fehlende Angaben) direkt bei Stripe ab, z. B. nach der Rückkehr aus der Einrichtung.

Berechtigung: payments:read

Antwort 200 · StripeAccount

  • object"stripe_account"Pflicht
  • status"unavailable" | "not_connected" | "onboarding" | "restricted" | "active" | "disconnected"Pflicht
    `unavailable` = auf diesem Server nicht eingerichtet, `onboarding` = Angaben bei Stripe fehlen, `restricted` = Stripe hat Zahlungen eingeschränkt, `active` = Zahlungen möglich
  • oauthAvailablebooleanPflicht
    Bestehendes Stripe-Konto kann per OAuth verbunden werden
  • accountIdstring | nullPflicht
    Stripe-Konto-ID (acct_…)
  • connectedVia"oauth" | "onboarding" | nullPflicht
  • chargesEnabledbooleanPflicht
  • payoutsEnabledbooleanPflicht
  • detailsSubmittedbooleanPflicht
  • requirementsDueArray<string>Pflicht
    Bei Stripe noch fehlende Angaben (Stripe-Feldnamen)
  • businessNamestring | nullPflicht
  • countrystring | nullPflicht
  • defaultCurrencystring | nullPflicht
  • livemodeboolean | nullPflicht
    false = Testmodus
  • settingsPaymentLinkSettingsPflicht
    • includeInInvoicesbooleanPflicht
      Zahlungslink + QR-Code in Rechnungs-PDF und Rechnungs-E-Mail einfügen
    • includeInDunningbooleanPflicht
      Zahlungslink in Mahnungen (E-Mail und Brief) einfügen
  • connectedAtstring (date-time) | nullPflicht
    Zeitpunkt (ISO 8601)
  • updatedAtstring (date-time) | nullPflicht
    Zeitpunkt (ISO 8601)

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

curl -X POST 'https://www.debt-flow.io/api/v1/stripe-account/refresh' \
  -H "Authorization: Bearer $DEBTFLOW_API_KEY"
Antwort 200
{
  "object": "stripe_account",
  "status": "unavailable",
  "oauthAvailable": false,
  "accountId": "string",
  "connectedVia": "oauth",
  "chargesEnabled": false,
  "payoutsEnabled": false,
  "detailsSubmitted": false,
  "requirementsDue": [
    "string"
  ],
  "businessName": "string",
  "country": "string",
  "defaultCurrency": "string",
  "livemode": false,
  "settings": {
    "includeInInvoices": false,
    "includeInDunning": false
  },
  "connectedAt": "2026-11-01T09:30:00.000Z",
  "updatedAt": "2026-11-01T09:30:00.000Z"
}