Zum Inhalt springen

Buchhaltung

Kontenrahmen SKR03/SKR04, Buchungsjournal, manuelle Buchungen und Festschreibung (GoBD).
GET/api/v1/accounting-settings

Kontenrahmen (SKR03/SKR04), Besteuerungsart (Soll/Ist), Voranmeldungszeitraum, DATEV-Berater-/Mandantennummer und Stand der Festschreibung.

Berechtigung: accounting:read

Antwort 200 · AccountingSettings

  • chart"skr03" | "skr04"Pflicht
    Kontenrahmen
  • taxationMethod"soll" | "ist"Pflicht
    Besteuerungsart: soll = Buchung bei Rechnungsdatum, ist = Buchung bei Zahlung
  • vatPeriod"monthly" | "quarterly" | "yearly" | "none"Pflicht
    Voranmeldungszeitraum
  • permanentExtensionbooleanPflicht
    Dauerfristverlängerung
  • specialPrepaymentCentsintegerPflicht
    Festgesetzte Sondervorauszahlung (Kz 39, wird in der letzten Voranmeldung des Jahres abgezogen)
    0–100000000000
  • fiscalYearStartMonthintegerPflicht
    Beginn des Wirtschaftsjahres (Monat)
    1–12
  • personalAccountsbooleanPflicht
    Debitoren/Kreditoren als Personenkonten führen (nur Soll-Versteuerung)
  • datevobjectPflicht
    • consultantNumberstringPflicht
      DATEV-Beraternummer
    • clientNumberstringPflicht
      DATEV-Mandantennummer
  • bankLedgerobjectPflicht
    Sachkonto je Bankkonto (ID → Kontonummer)
  • closedThroughstring (date) | nullPflicht
    Buchungen bis einschließlich dieses Datums sind festgeschrieben
  • smallBusinessbooleanPflicht
    Kleinunternehmer nach § 19 UStG (aus Firma & Rechnung)
  • chartLockedbooleanPflicht
    Kontenrahmen kann nicht mehr gewechselt werden (es gibt gespeicherte Buchungen)
  • updatedAtstring (date-time) | nullPflicht
    Zeitpunkt (ISO 8601)

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

curl 'https://www.debt-flow.io/api/v1/accounting-settings' \
  -H "Authorization: Bearer $DEBTFLOW_API_KEY"
Antwort 200
{
  "chart": "skr03",
  "taxationMethod": "soll",
  "vatPeriod": "monthly",
  "permanentExtension": false,
  "specialPrepaymentCents": 0,
  "fiscalYearStartMonth": 1,
  "personalAccounts": false,
  "datev": {
    "consultantNumber": "string",
    "clientNumber": "string"
  },
  "bankLedger": {},
  "closedThrough": "2026-11-01",
  "smallBusiness": false,
  "chartLocked": false,
  "updatedAt": "2026-11-01T09:30:00.000Z"
}
PATCH/api/v1/accounting-settings

Nur übergebene Felder werden geändert. Der Kontenrahmen ist nach den ersten gespeicherten Buchungen (manuell oder festgeschrieben) nicht mehr änderbar (409 chart_locked). Ein Wechsel der Besteuerungsart wirkt nur auf noch nicht festgeschriebene Zeiträume.

Berechtigung: accounting:write

Body (JSON) · AccountingSettingsUpdate

  • chart"skr03" | "skr04"
  • taxationMethod"soll" | "ist"
  • vatPeriod"monthly" | "quarterly" | "yearly" | "none"
  • permanentExtensionboolean
  • specialPrepaymentCentsinteger
    Betrag in Cent
    0–100000000000
  • fiscalYearStartMonthinteger
    1–12
  • personalAccountsboolean
  • datevobject
    • consultantNumberstring
    • clientNumberstring
  • bankLedgerobject

Antwort 200 · AccountingSettings

  • chart"skr03" | "skr04"Pflicht
    Kontenrahmen
  • taxationMethod"soll" | "ist"Pflicht
    Besteuerungsart: soll = Buchung bei Rechnungsdatum, ist = Buchung bei Zahlung
  • vatPeriod"monthly" | "quarterly" | "yearly" | "none"Pflicht
    Voranmeldungszeitraum
  • permanentExtensionbooleanPflicht
    Dauerfristverlängerung
  • specialPrepaymentCentsintegerPflicht
    Festgesetzte Sondervorauszahlung (Kz 39, wird in der letzten Voranmeldung des Jahres abgezogen)
    0–100000000000
  • fiscalYearStartMonthintegerPflicht
    Beginn des Wirtschaftsjahres (Monat)
    1–12
  • personalAccountsbooleanPflicht
    Debitoren/Kreditoren als Personenkonten führen (nur Soll-Versteuerung)
  • datevobjectPflicht
    • consultantNumberstringPflicht
      DATEV-Beraternummer
    • clientNumberstringPflicht
      DATEV-Mandantennummer
  • bankLedgerobjectPflicht
    Sachkonto je Bankkonto (ID → Kontonummer)
  • closedThroughstring (date) | nullPflicht
    Buchungen bis einschließlich dieses Datums sind festgeschrieben
  • smallBusinessbooleanPflicht
    Kleinunternehmer nach § 19 UStG (aus Firma & Rechnung)
  • chartLockedbooleanPflicht
    Kontenrahmen kann nicht mehr gewechselt werden (es gibt gespeicherte Buchungen)
  • updatedAtstring (date-time) | nullPflicht
    Zeitpunkt (ISO 8601)

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

curl -X PATCH 'https://www.debt-flow.io/api/v1/accounting-settings' \
  -H "Authorization: Bearer $DEBTFLOW_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
  "chart": "skr03",
  "taxationMethod": "soll",
  "vatPeriod": "monthly",
  "permanentExtension": false,
  "specialPrepaymentCents": 0,
  "fiscalYearStartMonth": 1,
  "personalAccounts": false,
  "datev": {
    "consultantNumber": "string",
    "clientNumber": "string"
  },
  "bankLedger": {}
}'
Antwort 200
{
  "chart": "skr03",
  "taxationMethod": "soll",
  "vatPeriod": "monthly",
  "permanentExtension": false,
  "specialPrepaymentCents": 0,
  "fiscalYearStartMonth": 1,
  "personalAccounts": false,
  "datev": {
    "consultantNumber": "string",
    "clientNumber": "string"
  },
  "bankLedger": {},
  "closedThrough": "2026-11-01",
  "smallBusiness": false,
  "chartLocked": false,
  "updatedAt": "2026-11-01T09:30:00.000Z"
}
GET/api/v1/accounts

Sachkonten des eingestellten Kontenrahmens (SKR03 oder SKR04) mit EÜR- und USt-VA-Zuordnung. key ist kontenrahmenunabhängig und kann bei Belegen als Kategorie verwendet werden. Personenkonten (Debitoren 10000–69999, Kreditoren 70000–99999) vergibt DebtFlow automatisch.

Berechtigung: accounting:read

Query-Parameter

  • typeenum
    Werte: asset, liability, equity, private, revenue, expense, tax
  • category"true" | "false"
    nur Kategorien (true)
  • limitinteger
    Anzahl Einträge (1–100)
    1–100 · Standard: 25
  • cursorstring
    `nextCursor` der vorherigen Seite
    max. 500 Zeichen

Antwort 200

  • object"list"Pflicht
  • dataArray<LedgerAccount>Pflicht
    • numberstringPflicht
    • keystringPflicht
      Stabiler Schlüssel, unabhängig vom Kontenrahmen
    • namestringPflicht
    • typeenumPflicht
      Werte: asset, liability, equity, private, revenue, expense, tax
    • groupenumPflicht
      Werte: money, receivables, private, revenue, goods, staff, rooms, insurance, vehicle, travel, office, advice, depreciation, finance, tax
    • groupLabelstringPflicht
    • autoTaxobject | nullPflicht
      DATEV-Automatikkonto mit dieser Steuer
      • taxKey"output" | "input" | "rc_eu" | "rc_de" | "ige"Pflicht
      • ratenumberPflicht
    • defaultTaxobject | nullPflicht
      Vorschlag für die Steuer bei Buchungen auf dieses Konto
      • taxKey"output" | "input" | "rc_eu" | "rc_de" | "ige"Pflicht
      • ratenumberPflicht
    • euerstring | nullPflicht
      EÜR-Kennzahl (bei Steuerkonten Soll/Haben getrennt, z. B. "186/141")
    • ustvastring | nullPflicht
      USt-VA-Kennzahl ohne Steuerschlüssel
    • categorybooleanPflicht
      als Kategorie für Belege und Kontierung vorgesehen
  • hasMorebooleanPflicht
  • nextCursorstring | nullPflicht

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

curl 'https://www.debt-flow.io/api/v1/accounts' \
  -H "Authorization: Bearer $DEBTFLOW_API_KEY"
Antwort 200
{
  "object": "list",
  "data": [
    {
      "number": "string",
      "key": "string",
      "name": "string",
      "type": "asset",
      "group": "money",
      "groupLabel": "string",
      "autoTax": {
        "taxKey": "output",
        "rate": 0
      },
      "defaultTax": {
        "taxKey": "output",
        "rate": 0
      },
      "euer": "string",
      "ustva": "string",
      "category": false
    }
  ],
  "hasMore": false,
  "nextCursor": "string"
}
GET/api/v1/journal-entries

Alle Buchungssätze eines Zeitraums (Standard: laufendes Jahr), neueste zuerst. Enthält automatisch abgeleitete Buchungen aus Rechnungen, Zahlungen, Belegen und Bankumsätzen (je nach Besteuerungsart), manuelle Buchungen und festgeschriebene Buchungen mit laufender Nummer.

Berechtigung: accounting:read

Query-Parameter

  • fromstring (date)
    Datum (YYYY-MM-DD)
  • tostring (date)
    Datum (YYYY-MM-DD)
  • source"invoice" | "invoice_payment" | "receipt" | "receipt_payment" | "bank_transaction" | "manual"
  • accountstring
    nur Buchungen auf diesem Konto
  • limitinteger
    Anzahl Einträge (1–100)
    1–100 · Standard: 25
  • cursorstring
    `nextCursor` der vorherigen Seite
    max. 500 Zeichen

Antwort 200

  • object"list"Pflicht
  • dataArray<JournalEntry>Pflicht
    • idstringPflicht
    • numberinteger | nullPflicht
      Laufende Buchungsnummer (wird beim Festschreiben vergeben)
      -9007199254740991–9007199254740991
    • datestring (date)Pflicht
      Datum (YYYY-MM-DD)
    • descriptionstringPflicht
    • documentNumberstringPflicht
    • sourceobjectPflicht
      • type"invoice" | "invoice_payment" | "receipt" | "receipt_payment" | "bank_transaction" | "manual"Pflicht
      • idstringPflicht
    • contactobject | nullPflicht
      • namestringPflicht
      • accountstring | nullPflicht
    • postingsArray<Posting>Pflicht
      • debitstringPflicht
        Soll-Konto
      • creditstringPflicht
        Haben-Konto
      • amountCentsintegerPflicht
        Bruttobetrag in Cent (> 0)
        -100000000000–100000000000
      • taxKey"output" | "input" | "rc_eu" | "rc_de" | "ige" | nullPflicht
        Steuerart
      • taxRatenumber | nullPflicht
      • taxCentsintegerPflicht
        Steuerbetrag in Cent
        -100000000000–100000000000
      • taxSide"debit" | "credit" | nullPflicht
        Konto, von dem die Steuer abgespalten wird (Erlös-/Aufwandskonto)
      • debitLabelstring
      • creditLabelstring
    • generatedbooleanPflicht
      automatisch aus Rechnungen, Zahlungen, Belegen abgeleitet
    • lockedbooleanPflicht
      festgeschrieben (GoBD)
    • lockedAtstring (date-time) | nullPflicht
      Zeitpunkt (ISO 8601)
    • hasAttachmentbooleanPflicht
    • createdAtstring (date-time) | nullPflicht
      Zeitpunkt (ISO 8601)
    • updatedAtstring (date-time) | nullPflicht
      Zeitpunkt (ISO 8601)
  • hasMorebooleanPflicht
  • nextCursorstring | nullPflicht

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

curl 'https://www.debt-flow.io/api/v1/journal-entries' \
  -H "Authorization: Bearer $DEBTFLOW_API_KEY"
Antwort 200
{
  "object": "list",
  "data": [
    {
      "id": "string",
      "number": 0,
      "date": "2026-11-01",
      "description": "string",
      "documentNumber": "string",
      "source": {
        "type": "invoice",
        "id": "string"
      },
      "contact": {
        "name": "string",
        "account": "string"
      },
      "postings": [
        {
          "debit": null,
          "credit": null,
          "amountCents": null,
          "taxKey": null,
          "taxRate": null,
          "taxCents": null,
          "taxSide": null,
          "debitLabel": null,
          "creditLabel": null
        }
      ],
      "generated": false,
      "locked": false,
      "lockedAt": "2026-11-01T09:30:00.000Z",
      "hasAttachment": false,
      "createdAt": "2026-11-01T09:30:00.000Z",
      "updatedAt": "2026-11-01T09:30:00.000Z"
    }
  ],
  "hasMore": false,
  "nextCursor": "string"
}
POST/api/v1/journal-entries

Bucht einen Buchungssatz (z. B. Privatentnahme, Abschreibung, Umbuchung) oder kontiert einen Bankumsatz (bankTransactionId). Beträge brutto; bei Steuerschlüssel wird die Steuer aus Brutto und Satz berechnet, wenn taxCents fehlt. Nur in nicht festgeschriebenen Zeiträumen.

Berechtigung: accounting: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) · JournalEntryCreate

  • datestring (date)Pflicht
    Datum (YYYY-MM-DD)
  • descriptionstringPflicht
    max. 60 Zeichen
  • documentNumberstring
    max. 36 Zeichen · Standard: ""
  • postingsArray<object>Pflicht
    • debitstringPflicht
    • creditstringPflicht
    • amountCentsintegerPflicht
      Bruttobetrag in Cent
      1–100000000000
    • taxKey"output" | "input" | "rc_eu" | "rc_de" | "ige" | null
    • taxRatenumber | null
      0–100
    • taxSide"debit" | "credit" | null
    • taxCentsinteger
      leer = aus Bruttobetrag und Steuersatz berechnet
      0–9007199254740991
  • bankTransactionIdstring
    Kontierung eines Bankumsatzes
    max. 128 Zeichen

Antwort 201 · JournalEntry

  • idstringPflicht
  • numberinteger | nullPflicht
    Laufende Buchungsnummer (wird beim Festschreiben vergeben)
    -9007199254740991–9007199254740991
  • datestring (date)Pflicht
    Datum (YYYY-MM-DD)
  • descriptionstringPflicht
  • documentNumberstringPflicht
  • sourceobjectPflicht
    • type"invoice" | "invoice_payment" | "receipt" | "receipt_payment" | "bank_transaction" | "manual"Pflicht
    • idstringPflicht
  • contactobject | nullPflicht
    • namestringPflicht
    • accountstring | nullPflicht
  • postingsArray<Posting>Pflicht
    • debitstringPflicht
      Soll-Konto
    • creditstringPflicht
      Haben-Konto
    • amountCentsintegerPflicht
      Bruttobetrag in Cent (> 0)
      -100000000000–100000000000
    • taxKey"output" | "input" | "rc_eu" | "rc_de" | "ige" | nullPflicht
      Steuerart
    • taxRatenumber | nullPflicht
    • taxCentsintegerPflicht
      Steuerbetrag in Cent
      -100000000000–100000000000
    • taxSide"debit" | "credit" | nullPflicht
      Konto, von dem die Steuer abgespalten wird (Erlös-/Aufwandskonto)
    • debitLabelstring
    • creditLabelstring
  • generatedbooleanPflicht
    automatisch aus Rechnungen, Zahlungen, Belegen abgeleitet
  • lockedbooleanPflicht
    festgeschrieben (GoBD)
  • lockedAtstring (date-time) | nullPflicht
    Zeitpunkt (ISO 8601)
  • hasAttachmentbooleanPflicht
  • createdAtstring (date-time) | nullPflicht
    Zeitpunkt (ISO 8601)
  • updatedAtstring (date-time) | nullPflicht
    Zeitpunkt (ISO 8601)

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

curl -X POST 'https://www.debt-flow.io/api/v1/journal-entries' \
  -H "Authorization: Bearer $DEBTFLOW_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
  "date": "2026-11-01",
  "description": "string",
  "documentNumber": "",
  "postings": [
    {
      "debit": "string",
      "credit": "string",
      "amountCents": 1,
      "taxKey": null,
      "taxRate": null,
      "taxSide": null,
      "taxCents": 0
    }
  ],
  "bankTransactionId": "string"
}'
Antwort 201
{
  "id": "string",
  "number": 0,
  "date": "2026-11-01",
  "description": "string",
  "documentNumber": "string",
  "source": {
    "type": "invoice",
    "id": "string"
  },
  "contact": {
    "name": "string",
    "account": "string"
  },
  "postings": [
    {
      "debit": "string",
      "credit": "string",
      "amountCents": 0,
      "taxKey": "output",
      "taxRate": 0,
      "taxCents": 0,
      "taxSide": "debit",
      "debitLabel": "string",
      "creditLabel": "string"
    }
  ],
  "generated": false,
  "locked": false,
  "lockedAt": "2026-11-01T09:30:00.000Z",
  "hasAttachment": false,
  "createdAt": "2026-11-01T09:30:00.000Z",
  "updatedAt": "2026-11-01T09:30:00.000Z"
}
GET/api/v1/journal-entries/{id}

Berechtigung: accounting:read

Pfadparameter

  • idstringPflicht
    ID der Ressource
    max. 128 Zeichen

Antwort 200 · JournalEntry

  • idstringPflicht
  • numberinteger | nullPflicht
    Laufende Buchungsnummer (wird beim Festschreiben vergeben)
    -9007199254740991–9007199254740991
  • datestring (date)Pflicht
    Datum (YYYY-MM-DD)
  • descriptionstringPflicht
  • documentNumberstringPflicht
  • sourceobjectPflicht
    • type"invoice" | "invoice_payment" | "receipt" | "receipt_payment" | "bank_transaction" | "manual"Pflicht
    • idstringPflicht
  • contactobject | nullPflicht
    • namestringPflicht
    • accountstring | nullPflicht
  • postingsArray<Posting>Pflicht
    • debitstringPflicht
      Soll-Konto
    • creditstringPflicht
      Haben-Konto
    • amountCentsintegerPflicht
      Bruttobetrag in Cent (> 0)
      -100000000000–100000000000
    • taxKey"output" | "input" | "rc_eu" | "rc_de" | "ige" | nullPflicht
      Steuerart
    • taxRatenumber | nullPflicht
    • taxCentsintegerPflicht
      Steuerbetrag in Cent
      -100000000000–100000000000
    • taxSide"debit" | "credit" | nullPflicht
      Konto, von dem die Steuer abgespalten wird (Erlös-/Aufwandskonto)
    • debitLabelstring
    • creditLabelstring
  • generatedbooleanPflicht
    automatisch aus Rechnungen, Zahlungen, Belegen abgeleitet
  • lockedbooleanPflicht
    festgeschrieben (GoBD)
  • lockedAtstring (date-time) | nullPflicht
    Zeitpunkt (ISO 8601)
  • hasAttachmentbooleanPflicht
  • createdAtstring (date-time) | nullPflicht
    Zeitpunkt (ISO 8601)
  • updatedAtstring (date-time) | nullPflicht
    Zeitpunkt (ISO 8601)

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

curl 'https://www.debt-flow.io/api/v1/journal-entries/ID' \
  -H "Authorization: Bearer $DEBTFLOW_API_KEY"
Antwort 200
{
  "id": "string",
  "number": 0,
  "date": "2026-11-01",
  "description": "string",
  "documentNumber": "string",
  "source": {
    "type": "invoice",
    "id": "string"
  },
  "contact": {
    "name": "string",
    "account": "string"
  },
  "postings": [
    {
      "debit": "string",
      "credit": "string",
      "amountCents": 0,
      "taxKey": "output",
      "taxRate": 0,
      "taxCents": 0,
      "taxSide": "debit",
      "debitLabel": "string",
      "creditLabel": "string"
    }
  ],
  "generated": false,
  "locked": false,
  "lockedAt": "2026-11-01T09:30:00.000Z",
  "hasAttachment": false,
  "createdAt": "2026-11-01T09:30:00.000Z",
  "updatedAt": "2026-11-01T09:30:00.000Z"
}
PATCH/api/v1/journal-entries/{id}

Nur manuelle, nicht festgeschriebene Buchungen. Abgeleitete Buchungen ändern sich über ihre Quelle (Rechnung, Beleg, Zahlung).

Berechtigung: accounting:write

Pfadparameter

  • idstringPflicht
    ID der Ressource
    max. 128 Zeichen

Body (JSON) · JournalEntryUpdate

  • datestring (date)
    Datum (YYYY-MM-DD)
  • descriptionstring
    max. 60 Zeichen
  • documentNumberstring
    max. 36 Zeichen
  • postingsArray<object>
    • debitstringPflicht
    • creditstringPflicht
    • amountCentsintegerPflicht
      Bruttobetrag in Cent
      1–100000000000
    • taxKey"output" | "input" | "rc_eu" | "rc_de" | "ige" | null
    • taxRatenumber | null
      0–100
    • taxSide"debit" | "credit" | null
    • taxCentsinteger
      leer = aus Bruttobetrag und Steuersatz berechnet
      0–9007199254740991

Antwort 200 · JournalEntry

  • idstringPflicht
  • numberinteger | nullPflicht
    Laufende Buchungsnummer (wird beim Festschreiben vergeben)
    -9007199254740991–9007199254740991
  • datestring (date)Pflicht
    Datum (YYYY-MM-DD)
  • descriptionstringPflicht
  • documentNumberstringPflicht
  • sourceobjectPflicht
    • type"invoice" | "invoice_payment" | "receipt" | "receipt_payment" | "bank_transaction" | "manual"Pflicht
    • idstringPflicht
  • contactobject | nullPflicht
    • namestringPflicht
    • accountstring | nullPflicht
  • postingsArray<Posting>Pflicht
    • debitstringPflicht
      Soll-Konto
    • creditstringPflicht
      Haben-Konto
    • amountCentsintegerPflicht
      Bruttobetrag in Cent (> 0)
      -100000000000–100000000000
    • taxKey"output" | "input" | "rc_eu" | "rc_de" | "ige" | nullPflicht
      Steuerart
    • taxRatenumber | nullPflicht
    • taxCentsintegerPflicht
      Steuerbetrag in Cent
      -100000000000–100000000000
    • taxSide"debit" | "credit" | nullPflicht
      Konto, von dem die Steuer abgespalten wird (Erlös-/Aufwandskonto)
    • debitLabelstring
    • creditLabelstring
  • generatedbooleanPflicht
    automatisch aus Rechnungen, Zahlungen, Belegen abgeleitet
  • lockedbooleanPflicht
    festgeschrieben (GoBD)
  • lockedAtstring (date-time) | nullPflicht
    Zeitpunkt (ISO 8601)
  • hasAttachmentbooleanPflicht
  • createdAtstring (date-time) | nullPflicht
    Zeitpunkt (ISO 8601)
  • updatedAtstring (date-time) | nullPflicht
    Zeitpunkt (ISO 8601)

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

curl -X PATCH 'https://www.debt-flow.io/api/v1/journal-entries/ID' \
  -H "Authorization: Bearer $DEBTFLOW_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
  "date": "2026-11-01",
  "description": "string",
  "documentNumber": "string",
  "postings": [
    {
      "debit": "string",
      "credit": "string",
      "amountCents": 1,
      "taxKey": null,
      "taxRate": null,
      "taxSide": null,
      "taxCents": 0
    }
  ]
}'
Antwort 200
{
  "id": "string",
  "number": 0,
  "date": "2026-11-01",
  "description": "string",
  "documentNumber": "string",
  "source": {
    "type": "invoice",
    "id": "string"
  },
  "contact": {
    "name": "string",
    "account": "string"
  },
  "postings": [
    {
      "debit": "string",
      "credit": "string",
      "amountCents": 0,
      "taxKey": "output",
      "taxRate": 0,
      "taxCents": 0,
      "taxSide": "debit",
      "debitLabel": "string",
      "creditLabel": "string"
    }
  ],
  "generated": false,
  "locked": false,
  "lockedAt": "2026-11-01T09:30:00.000Z",
  "hasAttachment": false,
  "createdAt": "2026-11-01T09:30:00.000Z",
  "updatedAt": "2026-11-01T09:30:00.000Z"
}
DELETE/api/v1/journal-entries/{id}

Nur manuelle, nicht festgeschriebene Buchungen. Festgeschriebene Buchungen werden per Gegenbuchung korrigiert.

Berechtigung: accounting:write

Pfadparameter

  • idstringPflicht
    ID der Ressource
    max. 128 Zeichen

Antwort 204

Erfolg, keine Antwort

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

curl -X DELETE 'https://www.debt-flow.io/api/v1/journal-entries/ID' \
  -H "Authorization: Bearer $DEBTFLOW_API_KEY"
GET/api/v1/journal-entries/pending

Nicht zugeordnete Bankumsätze, noch nicht gebuchte Belege, Zahlungen ohne Rechnung und Abweichungen nach Festschreibung im Zeitraum (Standard: laufendes Jahr).

Berechtigung: accounting:read

Query-Parameter

  • fromstring (date)
    Datum (YYYY-MM-DD)
  • tostring (date)
    Datum (YYYY-MM-DD)

Antwort 200 · JournalPending

  • fromstring (date)Pflicht
    Datum (YYYY-MM-DD)
  • tostring (date)Pflicht
    Datum (YYYY-MM-DD)
  • issuesArray<JournalIssue>Pflicht
    • typeenumPflicht
      Werte: unbooked_receipt, unassigned_bank_transaction, unknown_category, payment_without_invoice, unsupported_tax, changed_after_closing, missing_after_closing
    • sourceIdstringPflicht
    • datestring (date)Pflicht
      Datum (YYYY-MM-DD)
    • messagestringPflicht
    • amountCentsinteger
      Betrag in Cent
      -100000000000–100000000000

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

curl 'https://www.debt-flow.io/api/v1/journal-entries/pending' \
  -H "Authorization: Bearer $DEBTFLOW_API_KEY"
Antwort 200
{
  "from": "2026-11-01",
  "to": "2026-11-01",
  "issues": [
    {
      "type": "unbooked_receipt",
      "sourceId": "string",
      "date": "2026-11-01",
      "message": "string",
      "amountCents": 0
    }
  ]
}
GET/api/v1/period-closings

Berechtigung: accounting:read

Query-Parameter

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

Antwort 200

  • object"list"Pflicht
  • dataArray<PeriodClosing>Pflicht
    • idstringPflicht
    • fromstring (date) | nullPflicht
      Datum (YYYY-MM-DD)
    • throughstring (date)Pflicht
      Datum (YYYY-MM-DD)
    • entryCountintegerPflicht
      -9007199254740991–9007199254740991
    • firstNumberinteger | nullPflicht
      -9007199254740991–9007199254740991
    • lastNumberinteger | nullPflicht
      -9007199254740991–9007199254740991
    • totalCentsintegerPflicht
      Summe aller Buchungsbeträge
      -100000000000–100000000000
    • hashstringPflicht
      SHA-256 über die Inhalts-Hashes der festgeschriebenen Buchungen
    • closedByActorPflicht
      • type"user" | "api_key" | "oauth" | "system"Pflicht
      • idstringPflicht
      • labelstring
    • closedAtstring (date-time)Pflicht
      Zeitpunkt (ISO 8601)
  • hasMorebooleanPflicht
  • nextCursorstring | nullPflicht

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

curl 'https://www.debt-flow.io/api/v1/period-closings' \
  -H "Authorization: Bearer $DEBTFLOW_API_KEY"
Antwort 200
{
  "object": "list",
  "data": [
    {
      "id": "string",
      "from": "2026-11-01",
      "through": "2026-11-01",
      "entryCount": 0,
      "firstNumber": 0,
      "lastNumber": 0,
      "totalCents": 0,
      "hash": "string",
      "closedBy": {
        "type": "user",
        "id": "string",
        "label": "string"
      },
      "closedAt": "2026-11-01T09:30:00.000Z"
    }
  ],
  "hasMore": false,
  "nextCursor": "string"
}
POST/api/v1/period-closings

Schreibt alle Buchungen bis einschließlich through (Monatsende) fest (GoBD): Buchungen werden gespeichert, fortlaufend nummeriert, mit Inhalts-Hash gesperrt und im Änderungsprotokoll vermerkt. Nicht umkehrbar. Bei offenen Punkten (409 open_issues) mit acknowledgeIssues: true bestätigen.

Berechtigung: accounting: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) · PeriodClosingCreate

  • throughstring (date)Pflicht
    letzter Tag des festzuschreibenden Zeitraums (Monatsende)
  • acknowledgeIssuesboolean
    trotz offener Punkte (z. B. nicht zugeordnete Bankumsätze) festschreiben
    Standard: false

Antwort 201 · PeriodClosing

  • idstringPflicht
  • fromstring (date) | nullPflicht
    Datum (YYYY-MM-DD)
  • throughstring (date)Pflicht
    Datum (YYYY-MM-DD)
  • entryCountintegerPflicht
    -9007199254740991–9007199254740991
  • firstNumberinteger | nullPflicht
    -9007199254740991–9007199254740991
  • lastNumberinteger | nullPflicht
    -9007199254740991–9007199254740991
  • totalCentsintegerPflicht
    Summe aller Buchungsbeträge
    -100000000000–100000000000
  • hashstringPflicht
    SHA-256 über die Inhalts-Hashes der festgeschriebenen Buchungen
  • closedByActorPflicht
    • type"user" | "api_key" | "oauth" | "system"Pflicht
    • idstringPflicht
    • labelstring
  • closedAtstring (date-time)Pflicht
    Zeitpunkt (ISO 8601)

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

curl -X POST 'https://www.debt-flow.io/api/v1/period-closings' \
  -H "Authorization: Bearer $DEBTFLOW_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
  "through": "2026-11-01",
  "acknowledgeIssues": false
}'
Antwort 201
{
  "id": "string",
  "from": "2026-11-01",
  "through": "2026-11-01",
  "entryCount": 0,
  "firstNumber": 0,
  "lastNumber": 0,
  "totalCents": 0,
  "hash": "string",
  "closedBy": {
    "type": "user",
    "id": "string",
    "label": "string"
  },
  "closedAt": "2026-11-01T09:30:00.000Z"
}
GET/api/v1/period-closings/preview

Zeigt, wie viele Buchungen bis through festgeschrieben würden und welche offenen Punkte es gibt.

Berechtigung: accounting:read

Query-Parameter

  • throughstring (date)Pflicht
    Datum (YYYY-MM-DD)

Antwort 200 · PeriodClosingPreview

  • fromstring (date) | nullPflicht
    Datum (YYYY-MM-DD)
  • throughstring (date)Pflicht
    Datum (YYYY-MM-DD)
  • entryCountintegerPflicht
    -9007199254740991–9007199254740991
  • generatedCountintegerPflicht
    -9007199254740991–9007199254740991
  • manualCountintegerPflicht
    -9007199254740991–9007199254740991
  • totalCentsintegerPflicht
    Betrag in Cent
    -100000000000–100000000000
  • issuesArray<JournalIssue>Pflicht
    • typeenumPflicht
      Werte: unbooked_receipt, unassigned_bank_transaction, unknown_category, payment_without_invoice, unsupported_tax, changed_after_closing, missing_after_closing
    • sourceIdstringPflicht
    • datestring (date)Pflicht
      Datum (YYYY-MM-DD)
    • messagestringPflicht
    • amountCentsinteger
      Betrag in Cent
      -100000000000–100000000000
  • canClosebooleanPflicht
  • reasonstring | nullPflicht

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

curl 'https://www.debt-flow.io/api/v1/period-closings/preview?through=2026-11-01' \
  -H "Authorization: Bearer $DEBTFLOW_API_KEY"
Antwort 200
{
  "from": "2026-11-01",
  "through": "2026-11-01",
  "entryCount": 0,
  "generatedCount": 0,
  "manualCount": 0,
  "totalCents": 0,
  "issues": [
    {
      "type": "unbooked_receipt",
      "sourceId": "string",
      "date": "2026-11-01",
      "message": "string",
      "amountCents": 0
    }
  ],
  "canClose": false,
  "reason": "string"
}