Accounting
/api/v1/account-mappingsVersioned account mapping (individual chart of accounts based on SKR03/SKR04): per version, different account numbers for standard accounts and custom accounts. Journal entries use the version in force on the booking date.
Permission: accounting:read
Query parameters
limitintegerNumber of entries (1–100)1–100 · Default: 25cursorstring`nextCursor` of the previous pagemax. 500 characters
Response 200
object"list"requireddataArray<AccountMappingVersion>requiredidstringrequiredv<version>versionintegerrequired-9007199254740991–9007199254740991chart"skr03" | "skr04"requiredvalidFromstring (date)requiredapplies to journal entries from this dateassignmentsobjectrequiredstandard key → different account numbercustomAccountsArray<object>requirednumberstringrequirednamestringrequiredmax. 60 characterstypeenumrequiredValues: asset, liability, equity, private, revenue, expense, taxbasedOnstring | nullstandard account (key) whose automatic behaviour and form fields are adoptedeuerstring | nullEÜR form field (overrides the template)ustvastring | nulladvance VAT return form field (overrides the template)
notestring | null
hasMorebooleanrequirednextCursorstring | nullrequired
curl 'https://www.debt-flow.io/api/v1/account-mappings' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY"{
"object": "list",
"data": [
{
"id": "string",
"version": 0,
"chart": "skr03",
"validFrom": "2026-11-01",
"assignments": {},
"customAccounts": [
{
"number": "string",
"name": "string",
"type": "asset",
"basedOn": "string",
"euer": "string",
"ustva": "string"
}
],
"note": "string"
}
],
"hasMore": false,
"nextCursor": "string"
}/api/v1/account-mappingsAppends a new version (versions are never changed). validFrom must be after the locked period and after the last version. General ledger accounts have 4 digits (account length 4 in the DATEV export); personal accounts (10000–99999) are excluded. Error: 409 account_mapping_invalid.
Permission: accounting:write
Headers
Idempotency-KeystringUnique key (8–255 characters). Repeated requests with the same key return the same response for 24 h.max. 255 characters
Body (JSON) · AccountMappingVersionCreate
validFromstring (date)requiredfirst booking day the mapping applies to (after the locked period)assignmentsobjectDefault: {}customAccountsArray<object>numberstringrequirednamestringrequiredmax. 60 characterstypeenumrequiredValues: asset, liability, equity, private, revenue, expense, taxbasedOnstring | nullstandard account (key) whose automatic behaviour and form fields are adoptedeuerstring | nullEÜR form field (overrides the template)ustvastring | nulladvance VAT return form field (overrides the template)
notestring | nullmax. 500 characters
Response 201 · AccountMappingVersion
idstringrequiredv<version>versionintegerrequired-9007199254740991–9007199254740991chart"skr03" | "skr04"requiredvalidFromstring (date)requiredapplies to journal entries from this dateassignmentsobjectrequiredstandard key → different account numbercustomAccountsArray<object>requirednumberstringrequirednamestringrequiredmax. 60 characterstypeenumrequiredValues: asset, liability, equity, private, revenue, expense, taxbasedOnstring | nullstandard account (key) whose automatic behaviour and form fields are adoptedeuerstring | nullEÜR form field (overrides the template)ustvastring | nulladvance VAT return form field (overrides the template)
notestring | null
curl -X POST 'https://www.debt-flow.io/api/v1/account-mappings' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"validFrom": "2026-11-01",
"assignments": {},
"customAccounts": [],
"note": "string"
}'{
"id": "string",
"version": 0,
"chart": "skr03",
"validFrom": "2026-11-01",
"assignments": {},
"customAccounts": [
{
"number": "string",
"name": "string",
"type": "asset",
"basedOn": "string",
"euer": "string",
"ustva": "string"
}
],
"note": "string"
}/api/v1/accounting-settingsChart of accounts (SKR03/SKR04), VAT accounting method (accrual/cash, Soll-/Ist-Versteuerung), advance VAT return period, DATEV consultant/client number and period lock status.
Permission: accounting:read
Response 200 · AccountingSettings
chart"skr03" | "skr04"requiredChart of accountstaxationMethod"soll" | "ist"requiredVAT accounting method currently in force: soll = VAT at the time of supply, ist = VAT on payment (§ 20 UStG)taxRegimeArray<object>requiredHistory of the VAT accounting method with effective date (validFrom 0000-01-01 = initial method)method"soll" | "ist"requiredvalidFromstringrequiredpermitRefstring | nullrequired
vatPeriod"monthly" | "quarterly" | "yearly" | "none"requiredAdvance return periodpermanentExtensionbooleanrequiredPermanent filing extension (Dauerfristverlängerung)specialPrepaymentCentsintegerrequiredAssessed special advance payment (Sondervorauszahlung, box 39; deducted in the last advance VAT return of the year)0–100000000000fiscalYearStartMonthintegerrequiredStart of the financial year (month)1–12personalAccountsbooleanrequiredKeep debtors/creditors as personal accounts (accrual VAT accounting only)datevobjectrequiredconsultantNumberstringrequiredDATEV consultant numberclientNumberstringrequiredDATEV client number
bankLedgerobjectrequiredGeneral ledger account per bank account (ID → account number)vehiclesArray<VehicleUse>requiredPrivate use of company cars (1% rule), booked monthly as a withdrawalidstringrequirednamestringrequiredName, e.g. licence platemax. 80 charactersmethod"one_percent"requiredFlat-rate method (1% rule); please book a logbook manuallylistPriceCentsintegerrequiredDomestic gross list price at first registration incl. optional extras0–100000000000drive"combustion" | "hybrid" | "electric"requiredcombustion = combustion engine, hybrid = plug-in hybrid, electric = fully electric vehiclefactorPercent1 | 0.5 | 0.25requiredPercentage per month (electric/hybrid: 0.5 or 0.25 under § 6 (1) No. 4 sentence 2 EStG)acquisitionDatestring (date)requiredAcquisition or provisionfromstring (date)requiredStart of private use (month)tostring (date) | nullrequiredEnd of private use (month, inclusive)vatOnPrivateUsebooleanrequiredInput VAT deducted for the vehicle → VAT on private use (80% of the 1% value)
closedThroughstring (date) | nullrequiredJournal entries up to and including this date are lockedsmallBusinessbooleanrequiredSmall business under § 19 UStG (from Company & Invoice settings)chartLockedbooleanrequiredChart of accounts can no longer be changed (journal entries exist)updatedAtstring (date-time) | nullrequiredTimestamp (ISO 8601)
curl 'https://www.debt-flow.io/api/v1/accounting-settings' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY"{
"chart": "skr03",
"taxationMethod": "soll",
"taxRegime": [
{
"method": "soll",
"validFrom": "string",
"permitRef": "string"
}
],
"vatPeriod": "monthly",
"permanentExtension": false,
"specialPrepaymentCents": 0,
"fiscalYearStartMonth": 1,
"personalAccounts": false,
"datev": {
"consultantNumber": "string",
"clientNumber": "string"
},
"bankLedger": {},
"vehicles": [
{
"id": "string",
"name": "string",
"method": "one_percent",
"listPriceCents": 0,
"drive": "combustion",
"factorPercent": 1,
"acquisitionDate": "2026-11-01",
"from": "2026-11-01",
"to": "2026-11-01",
"vatOnPrivateUse": false
}
],
"closedThrough": "2026-11-01",
"smallBusiness": false,
"chartLocked": false,
"updatedAt": "2026-11-01T09:30:00.000Z"
}/api/v1/accounting-settingsOnly the fields you pass are changed. The chart of accounts can no longer be changed once the first journal entries (manual or finalised) have been saved (409 chart_locked). A change of VAT accounting method only affects periods that have not yet been locked.
Permission: accounting:write
Body (JSON) · AccountingSettingsUpdate
chart"skr03" | "skr04"taxationMethod"soll" | "ist"Only during initial setup (no saved journal entries yet); otherwise taxationMethodChangetaxationMethodChangeobjectChange of VAT accounting method with effective date (ST-18)method"soll" | "ist"requiredvalidFromstring (date)requiredFirst day of an advance VAT return period, not retroactivepermitRefstring | nullPermission from the tax office (required for cash accounting, § 20 UStG)max. 200 characters
vatPeriod"monthly" | "quarterly" | "yearly" | "none"permanentExtensionbooleanspecialPrepaymentCentsintegerAmount in cents0–100000000000fiscalYearStartMonthinteger1–12personalAccountsbooleandatevobjectconsultantNumberstringclientNumberstring
bankLedgerobjectvehiclesArray<VehicleUse>Complete list; locked months must not change (409 period_closed)idstringrequirednamestringrequiredName, e.g. licence platemax. 80 charactersmethod"one_percent"requiredFlat-rate method (1% rule); please book a logbook manuallylistPriceCentsintegerrequiredDomestic gross list price at first registration incl. optional extras0–100000000000drive"combustion" | "hybrid" | "electric"requiredcombustion = combustion engine, hybrid = plug-in hybrid, electric = fully electric vehiclefactorPercent1 | 0.5 | 0.25requiredPercentage per month (electric/hybrid: 0.5 or 0.25 under § 6 (1) No. 4 sentence 2 EStG)acquisitionDatestring (date)requiredAcquisition or provisionfromstring (date)requiredStart of private use (month)tostring (date) | nullrequiredEnd of private use (month, inclusive)vatOnPrivateUsebooleanrequiredInput VAT deducted for the vehicle → VAT on private use (80% of the 1% value)
Response 200 · AccountingSettings
chart"skr03" | "skr04"requiredChart of accountstaxationMethod"soll" | "ist"requiredVAT accounting method currently in force: soll = VAT at the time of supply, ist = VAT on payment (§ 20 UStG)taxRegimeArray<object>requiredHistory of the VAT accounting method with effective date (validFrom 0000-01-01 = initial method)method"soll" | "ist"requiredvalidFromstringrequiredpermitRefstring | nullrequired
vatPeriod"monthly" | "quarterly" | "yearly" | "none"requiredAdvance return periodpermanentExtensionbooleanrequiredPermanent filing extension (Dauerfristverlängerung)specialPrepaymentCentsintegerrequiredAssessed special advance payment (Sondervorauszahlung, box 39; deducted in the last advance VAT return of the year)0–100000000000fiscalYearStartMonthintegerrequiredStart of the financial year (month)1–12personalAccountsbooleanrequiredKeep debtors/creditors as personal accounts (accrual VAT accounting only)datevobjectrequiredconsultantNumberstringrequiredDATEV consultant numberclientNumberstringrequiredDATEV client number
bankLedgerobjectrequiredGeneral ledger account per bank account (ID → account number)vehiclesArray<VehicleUse>requiredPrivate use of company cars (1% rule), booked monthly as a withdrawalidstringrequirednamestringrequiredName, e.g. licence platemax. 80 charactersmethod"one_percent"requiredFlat-rate method (1% rule); please book a logbook manuallylistPriceCentsintegerrequiredDomestic gross list price at first registration incl. optional extras0–100000000000drive"combustion" | "hybrid" | "electric"requiredcombustion = combustion engine, hybrid = plug-in hybrid, electric = fully electric vehiclefactorPercent1 | 0.5 | 0.25requiredPercentage per month (electric/hybrid: 0.5 or 0.25 under § 6 (1) No. 4 sentence 2 EStG)acquisitionDatestring (date)requiredAcquisition or provisionfromstring (date)requiredStart of private use (month)tostring (date) | nullrequiredEnd of private use (month, inclusive)vatOnPrivateUsebooleanrequiredInput VAT deducted for the vehicle → VAT on private use (80% of the 1% value)
closedThroughstring (date) | nullrequiredJournal entries up to and including this date are lockedsmallBusinessbooleanrequiredSmall business under § 19 UStG (from Company & Invoice settings)chartLockedbooleanrequiredChart of accounts can no longer be changed (journal entries exist)updatedAtstring (date-time) | nullrequiredTimestamp (ISO 8601)
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",
"taxationMethodChange": {
"method": "soll",
"validFrom": "2026-11-01",
"permitRef": "string"
},
"vatPeriod": "monthly",
"permanentExtension": false,
"specialPrepaymentCents": 0,
"fiscalYearStartMonth": 1,
"personalAccounts": false,
"datev": {
"consultantNumber": "string",
"clientNumber": "string"
},
"bankLedger": {},
"vehicles": [
{
"id": "string",
"name": "string",
"method": "one_percent",
"listPriceCents": 0,
"drive": "combustion",
"factorPercent": 1,
"acquisitionDate": "2026-11-01",
"from": "2026-11-01",
"to": "2026-11-01",
"vatOnPrivateUse": false
}
]
}'{
"chart": "skr03",
"taxationMethod": "soll",
"taxRegime": [
{
"method": "soll",
"validFrom": "string",
"permitRef": "string"
}
],
"vatPeriod": "monthly",
"permanentExtension": false,
"specialPrepaymentCents": 0,
"fiscalYearStartMonth": 1,
"personalAccounts": false,
"datev": {
"consultantNumber": "string",
"clientNumber": "string"
},
"bankLedger": {},
"vehicles": [
{
"id": "string",
"name": "string",
"method": "one_percent",
"listPriceCents": 0,
"drive": "combustion",
"factorPercent": 1,
"acquisitionDate": "2026-11-01",
"from": "2026-11-01",
"to": "2026-11-01",
"vatOnPrivateUse": false
}
],
"closedThrough": "2026-11-01",
"smallBusiness": false,
"chartLocked": false,
"updatedAt": "2026-11-01T09:30:00.000Z"
}/api/v1/accountsGeneral ledger accounts of the configured chart of accounts (SKR03 or SKR04) with their cash-basis income statement (EÜR) and advance VAT return mapping. key is independent of the chart of accounts and can be used as a category on receipts. Personal accounts (debtor accounts 10000–69999, creditor accounts 70000–99999) are assigned automatically by DebtFlow.
Permission: accounting:read
Query parameters
typeenumValues: asset, liability, equity, private, revenue, expense, taxcategory"true" | "false"categories only (true)limitintegerNumber of entries (1–100)1–100 · Default: 25cursorstring`nextCursor` of the previous pagemax. 500 characters
Response 200
object"list"requireddataArray<LedgerAccount>requirednumberstringrequiredkeystringrequiredStable key, independent of the chart of accountsnamestringrequiredtypeenumrequiredValues: asset, liability, equity, private, revenue, expense, taxgroupenumrequiredValues: assets, money, receivables, private, revenue, goods, staff, rooms, insurance, vehicle, travel, office, advice, depreciation, finance, taxgroupLabelstringrequiredautoTaxobject | nullrequiredDATEV automatic account (Automatikkonto) with this taxtaxKey"output" | "input" | "rc_eu" | "rc_de" | "ige"requiredratenumberrequired
defaultTaxobject | nullrequiredSuggested tax for entries posted to this accounttaxKey"output" | "input" | "rc_eu" | "rc_de" | "ige"requiredratenumberrequired
euerstring | nullrequiredEÜR line (Kennzahl) (tax accounts: debit/credit separately, e.g. "186/141")ustvastring | nullrequiredAdvance VAT return box without tax codecategorybooleanrequiredintended as a category for receipts and account assignment
hasMorebooleanrequirednextCursorstring | nullrequired
curl 'https://www.debt-flow.io/api/v1/accounts' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY"{
"object": "list",
"data": [
{
"number": "string",
"key": "string",
"name": "string",
"type": "asset",
"group": "assets",
"groupLabel": "string",
"autoTax": {
"taxKey": "output",
"rate": 0
},
"defaultTax": {
"taxKey": "output",
"rate": 0
},
"euer": "string",
"ustva": "string",
"category": false
}
],
"hasMore": false,
"nextCursor": "string"
}/api/v1/fixed-assetsFixed assets with depreciation schedule, book value and accounts. Straight-line depreciation, pool items, low-value assets and immediate expensing; the depreciation appears as derived journal entries (source.type = fixed_asset) in the journal, the EÜR and the DATEV export.
Permission: accounting:read
Query parameters
limitintegerNumber of entries (1–100)1–100 · Default: 25cursorstring`nextCursor` of the previous pagemax. 500 characters
Response 200
object"list"requireddataArray<FixedAsset>requiredidstringrequirednamestringrequiredinventoryNumberstring | nullrequiredassetClass"software" | "vehicle" | "office" | "equipment"requiredmethod"linear" | "pool" | "gwg" | "immediate"requiredacquisitionDatestring (date)requiredDate (YYYY-MM-DD)costCentsintegerrequiredAcquisition cost without deductible input VAT (small businesses: gross)-100000000000–100000000000usefulLifeMonthsinteger | nullrequired-9007199254740991–9007199254740991receiptIdstring | nullrequiredPurchase receipt – booked to the asset accountdisposalDatestring (date) | nullrequiredDate (YYYY-MM-DD)notestring | nullrequiredaccountsobjectrequiredAsset account and depreciation expense accountassetstringrequireddepreciationstringrequired
bookValueCentsintegerrequiredBook value at the end of the current year-100000000000–100000000000scheduleArray<object>requiredyearintegerrequired-9007199254740991–9007199254740991openingCentsintegerrequiredAmount in cents-100000000000–100000000000additionCentsintegerrequiredAmount in cents-100000000000–100000000000depreciationCentsintegerrequiredAmount in cents-100000000000–100000000000disposalCentsintegerrequiredAmount in cents-100000000000–100000000000closingCentsintegerrequiredAmount in cents-100000000000–100000000000monthsinteger | nullrequired-9007199254740991–9007199254740991
createdAtstring (date-time) | nullrequiredTimestamp (ISO 8601)updatedAtstring (date-time) | nullrequiredTimestamp (ISO 8601)
hasMorebooleanrequirednextCursorstring | nullrequired
curl 'https://www.debt-flow.io/api/v1/fixed-assets' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY"{
"object": "list",
"data": [
{
"id": "string",
"name": "string",
"inventoryNumber": "string",
"assetClass": "software",
"method": "linear",
"acquisitionDate": "2026-11-01",
"costCents": 0,
"usefulLifeMonths": 0,
"receiptId": "string",
"disposalDate": "2026-11-01",
"note": "string",
"accounts": {
"asset": "string",
"depreciation": "string"
},
"bookValueCents": 0,
"schedule": [
{
"year": 0,
"openingCents": 0,
"additionCents": 0,
"depreciationCents": 0,
"disposalCents": 0,
"closingCents": 0,
"months": null
}
],
"createdAt": "2026-11-01T09:30:00.000Z",
"updatedAt": "2026-11-01T09:30:00.000Z"
}
],
"hasMore": false,
"nextCursor": "string"
}/api/v1/fixed-assetsRecords a fixed asset. Without method, DebtFlow suggests the method based on the acquisition cost (up to €250 immediate expense, up to €800 low-value asset, above that straight-line); without a useful life, a suggestion per class applies. With receiptId, the purchase receipt is booked to the asset account. Acquisitions in the locked period are rejected (409 fixed_asset_invalid).
Permission: accounting:write
Headers
Idempotency-KeystringUnique key (8–255 characters). Repeated requests with the same key return the same response for 24 h.max. 255 characters
Body (JSON) · FixedAssetCreate
namestringrequiredmax. 120 charactersinventoryNumberstring | nullmax. 40 charactersassetClass"software" | "vehicle" | "office" | "equipment"requiredmethod"linear" | "pool" | "gwg" | "immediate"empty = suggestion based on acquisition cost (low-value asset/pool/straight-line)acquisitionDatestring (date)requiredDate (YYYY-MM-DD)costCentsintegerrequiredAmount in cents0–100000000000usefulLifeMonthsinteger | nullempty = suggestion per asset class (please check)1–600receiptIdstring | nullmax. 128 charactersdisposalDatestring (date) | nullDate (YYYY-MM-DD)notestring | nullmax. 500 characters
Response 201 · FixedAsset
idstringrequirednamestringrequiredinventoryNumberstring | nullrequiredassetClass"software" | "vehicle" | "office" | "equipment"requiredmethod"linear" | "pool" | "gwg" | "immediate"requiredacquisitionDatestring (date)requiredDate (YYYY-MM-DD)costCentsintegerrequiredAcquisition cost without deductible input VAT (small businesses: gross)-100000000000–100000000000usefulLifeMonthsinteger | nullrequired-9007199254740991–9007199254740991receiptIdstring | nullrequiredPurchase receipt – booked to the asset accountdisposalDatestring (date) | nullrequiredDate (YYYY-MM-DD)notestring | nullrequiredaccountsobjectrequiredAsset account and depreciation expense accountassetstringrequireddepreciationstringrequired
bookValueCentsintegerrequiredBook value at the end of the current year-100000000000–100000000000scheduleArray<object>requiredyearintegerrequired-9007199254740991–9007199254740991openingCentsintegerrequiredAmount in cents-100000000000–100000000000additionCentsintegerrequiredAmount in cents-100000000000–100000000000depreciationCentsintegerrequiredAmount in cents-100000000000–100000000000disposalCentsintegerrequiredAmount in cents-100000000000–100000000000closingCentsintegerrequiredAmount in cents-100000000000–100000000000monthsinteger | nullrequired-9007199254740991–9007199254740991
createdAtstring (date-time) | nullrequiredTimestamp (ISO 8601)updatedAtstring (date-time) | nullrequiredTimestamp (ISO 8601)
curl -X POST 'https://www.debt-flow.io/api/v1/fixed-assets' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"name": "string",
"inventoryNumber": "string",
"assetClass": "software",
"method": "linear",
"acquisitionDate": "2026-11-01",
"costCents": 0,
"usefulLifeMonths": 1,
"receiptId": "string",
"disposalDate": "2026-11-01",
"note": "string"
}'{
"id": "string",
"name": "string",
"inventoryNumber": "string",
"assetClass": "software",
"method": "linear",
"acquisitionDate": "2026-11-01",
"costCents": 0,
"usefulLifeMonths": 0,
"receiptId": "string",
"disposalDate": "2026-11-01",
"note": "string",
"accounts": {
"asset": "string",
"depreciation": "string"
},
"bookValueCents": 0,
"schedule": [
{
"year": 0,
"openingCents": 0,
"additionCents": 0,
"depreciationCents": 0,
"disposalCents": 0,
"closingCents": 0,
"months": 0
}
],
"createdAt": "2026-11-01T09:30:00.000Z",
"updatedAt": "2026-11-01T09:30:00.000Z"
}/api/v1/fixed-assets/{id}Permission: accounting:read
Path parameters
idstringrequiredResource IDmax. 128 characters
Response 200 · FixedAsset
idstringrequirednamestringrequiredinventoryNumberstring | nullrequiredassetClass"software" | "vehicle" | "office" | "equipment"requiredmethod"linear" | "pool" | "gwg" | "immediate"requiredacquisitionDatestring (date)requiredDate (YYYY-MM-DD)costCentsintegerrequiredAcquisition cost without deductible input VAT (small businesses: gross)-100000000000–100000000000usefulLifeMonthsinteger | nullrequired-9007199254740991–9007199254740991receiptIdstring | nullrequiredPurchase receipt – booked to the asset accountdisposalDatestring (date) | nullrequiredDate (YYYY-MM-DD)notestring | nullrequiredaccountsobjectrequiredAsset account and depreciation expense accountassetstringrequireddepreciationstringrequired
bookValueCentsintegerrequiredBook value at the end of the current year-100000000000–100000000000scheduleArray<object>requiredyearintegerrequired-9007199254740991–9007199254740991openingCentsintegerrequiredAmount in cents-100000000000–100000000000additionCentsintegerrequiredAmount in cents-100000000000–100000000000depreciationCentsintegerrequiredAmount in cents-100000000000–100000000000disposalCentsintegerrequiredAmount in cents-100000000000–100000000000closingCentsintegerrequiredAmount in cents-100000000000–100000000000monthsinteger | nullrequired-9007199254740991–9007199254740991
createdAtstring (date-time) | nullrequiredTimestamp (ISO 8601)updatedAtstring (date-time) | nullrequiredTimestamp (ISO 8601)
curl 'https://www.debt-flow.io/api/v1/fixed-assets/ID' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY"{
"id": "string",
"name": "string",
"inventoryNumber": "string",
"assetClass": "software",
"method": "linear",
"acquisitionDate": "2026-11-01",
"costCents": 0,
"usefulLifeMonths": 0,
"receiptId": "string",
"disposalDate": "2026-11-01",
"note": "string",
"accounts": {
"asset": "string",
"depreciation": "string"
},
"bookValueCents": 0,
"schedule": [
{
"year": 0,
"openingCents": 0,
"additionCents": 0,
"depreciationCents": 0,
"disposalCents": 0,
"closingCents": 0,
"months": 0
}
],
"createdAt": "2026-11-01T09:30:00.000Z",
"updatedAt": "2026-11-01T09:30:00.000Z"
}/api/v1/fixed-assets/{id}Changes a fixed asset. Acquisition data and depreciation are locked as soon as the acquisition falls in the locked period; a disposal (disposalDate) is possible in the open period and books the remaining book value (Anlage EÜR field 135).
Permission: accounting:write
Path parameters
idstringrequiredResource IDmax. 128 characters
Body (JSON) · FixedAssetUpdate
namestringmax. 120 charactersinventoryNumberstring | nullmax. 40 charactersassetClass"software" | "vehicle" | "office" | "equipment"method"linear" | "pool" | "gwg" | "immediate"empty = suggestion based on acquisition cost (low-value asset/pool/straight-line)acquisitionDatestring (date)Date (YYYY-MM-DD)costCentsintegerAmount in cents0–100000000000usefulLifeMonthsinteger | nullempty = suggestion per asset class (please check)1–600receiptIdstring | nullmax. 128 charactersdisposalDatestring (date) | nullDate (YYYY-MM-DD)notestring | nullmax. 500 characters
Response 200 · FixedAsset
idstringrequirednamestringrequiredinventoryNumberstring | nullrequiredassetClass"software" | "vehicle" | "office" | "equipment"requiredmethod"linear" | "pool" | "gwg" | "immediate"requiredacquisitionDatestring (date)requiredDate (YYYY-MM-DD)costCentsintegerrequiredAcquisition cost without deductible input VAT (small businesses: gross)-100000000000–100000000000usefulLifeMonthsinteger | nullrequired-9007199254740991–9007199254740991receiptIdstring | nullrequiredPurchase receipt – booked to the asset accountdisposalDatestring (date) | nullrequiredDate (YYYY-MM-DD)notestring | nullrequiredaccountsobjectrequiredAsset account and depreciation expense accountassetstringrequireddepreciationstringrequired
bookValueCentsintegerrequiredBook value at the end of the current year-100000000000–100000000000scheduleArray<object>requiredyearintegerrequired-9007199254740991–9007199254740991openingCentsintegerrequiredAmount in cents-100000000000–100000000000additionCentsintegerrequiredAmount in cents-100000000000–100000000000depreciationCentsintegerrequiredAmount in cents-100000000000–100000000000disposalCentsintegerrequiredAmount in cents-100000000000–100000000000closingCentsintegerrequiredAmount in cents-100000000000–100000000000monthsinteger | nullrequired-9007199254740991–9007199254740991
createdAtstring (date-time) | nullrequiredTimestamp (ISO 8601)updatedAtstring (date-time) | nullrequiredTimestamp (ISO 8601)
curl -X PATCH 'https://www.debt-flow.io/api/v1/fixed-assets/ID' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"name": "string",
"inventoryNumber": "string",
"assetClass": "software",
"method": "linear",
"acquisitionDate": "2026-11-01",
"costCents": 0,
"usefulLifeMonths": 1,
"receiptId": "string",
"disposalDate": "2026-11-01",
"note": "string"
}'{
"id": "string",
"name": "string",
"inventoryNumber": "string",
"assetClass": "software",
"method": "linear",
"acquisitionDate": "2026-11-01",
"costCents": 0,
"usefulLifeMonths": 0,
"receiptId": "string",
"disposalDate": "2026-11-01",
"note": "string",
"accounts": {
"asset": "string",
"depreciation": "string"
},
"bookValueCents": 0,
"schedule": [
{
"year": 0,
"openingCents": 0,
"additionCents": 0,
"depreciationCents": 0,
"disposalCents": 0,
"closingCents": 0,
"months": 0
}
],
"createdAt": "2026-11-01T09:30:00.000Z",
"updatedAt": "2026-11-01T09:30:00.000Z"
}/api/v1/fixed-assets/{id}Only while the acquisition is not in the locked period; otherwise record a disposal.
Permission: accounting:write
Path parameters
idstringrequiredResource IDmax. 128 characters
Response 204
Success, no content
curl -X DELETE 'https://www.debt-flow.io/api/v1/fixed-assets/ID' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY"/api/v1/journal-entriesAll journal entries for a period (default: current year), newest first. Includes entries derived automatically from invoices, payments, receipts and bank transactions (depending on the VAT accounting method), manual entries and finalised entries with a sequential number.
Permission: accounting:read
Query parameters
fromstring (date)Date (YYYY-MM-DD)tostring (date)Date (YYYY-MM-DD)sourceenumValues: invoice, invoice_payment, receipt, receipt_payment, bank_transaction, client_funds, manual, fixed_asset, private_useaccountstringonly entries on this accountlimitintegerNumber of entries (1–100)1–100 · Default: 25cursorstring`nextCursor` of the previous pagemax. 500 characters
Response 200
object"list"requireddataArray<JournalEntry>requiredidstringrequirednumberinteger | nullrequiredSequential journal entry number (assigned on finalisation)-9007199254740991–9007199254740991datestring (date)requiredDate (YYYY-MM-DD)descriptionstringrequireddocumentNumberstringrequiredsourceobjectrequiredtypeenumrequiredValues: invoice, invoice_payment, receipt, receipt_payment, bank_transaction, client_funds, manual, fixed_asset, private_useidstringrequired
contactobject | nullrequirednamestringrequiredaccountstring | nullrequired
postingsArray<Posting>requireddebitstringrequiredDebit accountcreditstringrequiredCredit accountamountCentsintegerrequiredGross amount in cents (> 0)-100000000000–100000000000taxKey"output" | "input" | "rc_eu" | "rc_de" | "ige" | nullrequiredTax typetaxRatenumber | nullrequiredtaxCentsintegerrequiredTax amount in cents-100000000000–100000000000taxSide"debit" | "credit" | nullrequiredAccount from which the tax is split off (revenue/expense account)debitLabelstringcreditLabelstring
generatedbooleanrequiredderived automatically from invoices, payments, receiptslockedbooleanrequiredfinalised (GoBD)lockedAtstring (date-time) | nullrequiredTimestamp (ISO 8601)hasAttachmentbooleanrequiredcreatedAtstring (date-time) | nullrequiredTimestamp (ISO 8601)updatedAtstring (date-time) | nullrequiredTimestamp (ISO 8601)
hasMorebooleanrequirednextCursorstring | nullrequired
curl 'https://www.debt-flow.io/api/v1/journal-entries' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY"{
"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"
}/api/v1/journal-entriesPosts a journal entry (e.g. private withdrawal, depreciation, reclassification) or assigns accounts to a bank transaction (bankTransactionId). Amounts are gross; with a tax code, the tax is calculated from the gross amount and the rate if taxCents is missing. Only in periods that are not locked.
Permission: accounting:write
Headers
Idempotency-KeystringUnique key (8–255 characters). Repeated requests with the same key return the same response for 24 h.max. 255 characters
Body (JSON) · JournalEntryCreate
datestring (date)requiredDate (YYYY-MM-DD)descriptionstringrequiredmax. 60 charactersdocumentNumberstringmax. 36 characters · Default: ""postingsArray<object>requireddebitstringrequiredcreditstringrequiredamountCentsintegerrequiredGross amount in cents1–100000000000taxKey"output" | "input" | "rc_eu" | "rc_de" | "ige" | nulltaxRatenumber | null0–100taxSide"debit" | "credit" | nulltaxCentsintegerempty = calculated from gross amount and tax rate0–9007199254740991
bankTransactionIdstringAccount assignment of a bank transactionmax. 128 characters
Response 201 · JournalEntry
idstringrequirednumberinteger | nullrequiredSequential journal entry number (assigned on finalisation)-9007199254740991–9007199254740991datestring (date)requiredDate (YYYY-MM-DD)descriptionstringrequireddocumentNumberstringrequiredsourceobjectrequiredtypeenumrequiredValues: invoice, invoice_payment, receipt, receipt_payment, bank_transaction, client_funds, manual, fixed_asset, private_useidstringrequired
contactobject | nullrequirednamestringrequiredaccountstring | nullrequired
postingsArray<Posting>requireddebitstringrequiredDebit accountcreditstringrequiredCredit accountamountCentsintegerrequiredGross amount in cents (> 0)-100000000000–100000000000taxKey"output" | "input" | "rc_eu" | "rc_de" | "ige" | nullrequiredTax typetaxRatenumber | nullrequiredtaxCentsintegerrequiredTax amount in cents-100000000000–100000000000taxSide"debit" | "credit" | nullrequiredAccount from which the tax is split off (revenue/expense account)debitLabelstringcreditLabelstring
generatedbooleanrequiredderived automatically from invoices, payments, receiptslockedbooleanrequiredfinalised (GoBD)lockedAtstring (date-time) | nullrequiredTimestamp (ISO 8601)hasAttachmentbooleanrequiredcreatedAtstring (date-time) | nullrequiredTimestamp (ISO 8601)updatedAtstring (date-time) | nullrequiredTimestamp (ISO 8601)
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"
}'{
"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"
}/api/v1/journal-entries/{id}Permission: accounting:read
Path parameters
idstringrequiredResource IDmax. 128 characters
Response 200 · JournalEntry
idstringrequirednumberinteger | nullrequiredSequential journal entry number (assigned on finalisation)-9007199254740991–9007199254740991datestring (date)requiredDate (YYYY-MM-DD)descriptionstringrequireddocumentNumberstringrequiredsourceobjectrequiredtypeenumrequiredValues: invoice, invoice_payment, receipt, receipt_payment, bank_transaction, client_funds, manual, fixed_asset, private_useidstringrequired
contactobject | nullrequirednamestringrequiredaccountstring | nullrequired
postingsArray<Posting>requireddebitstringrequiredDebit accountcreditstringrequiredCredit accountamountCentsintegerrequiredGross amount in cents (> 0)-100000000000–100000000000taxKey"output" | "input" | "rc_eu" | "rc_de" | "ige" | nullrequiredTax typetaxRatenumber | nullrequiredtaxCentsintegerrequiredTax amount in cents-100000000000–100000000000taxSide"debit" | "credit" | nullrequiredAccount from which the tax is split off (revenue/expense account)debitLabelstringcreditLabelstring
generatedbooleanrequiredderived automatically from invoices, payments, receiptslockedbooleanrequiredfinalised (GoBD)lockedAtstring (date-time) | nullrequiredTimestamp (ISO 8601)hasAttachmentbooleanrequiredcreatedAtstring (date-time) | nullrequiredTimestamp (ISO 8601)updatedAtstring (date-time) | nullrequiredTimestamp (ISO 8601)
curl 'https://www.debt-flow.io/api/v1/journal-entries/ID' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY"{
"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"
}/api/v1/journal-entries/{id}Only manual journal entries that are not finalised. Derived entries change via their source (invoice, receipt, payment).
Permission: accounting:write
Path parameters
idstringrequiredResource IDmax. 128 characters
Body (JSON) · JournalEntryUpdate
datestring (date)Date (YYYY-MM-DD)descriptionstringmax. 60 charactersdocumentNumberstringmax. 36 characterspostingsArray<object>debitstringrequiredcreditstringrequiredamountCentsintegerrequiredGross amount in cents1–100000000000taxKey"output" | "input" | "rc_eu" | "rc_de" | "ige" | nulltaxRatenumber | null0–100taxSide"debit" | "credit" | nulltaxCentsintegerempty = calculated from gross amount and tax rate0–9007199254740991
Response 200 · JournalEntry
idstringrequirednumberinteger | nullrequiredSequential journal entry number (assigned on finalisation)-9007199254740991–9007199254740991datestring (date)requiredDate (YYYY-MM-DD)descriptionstringrequireddocumentNumberstringrequiredsourceobjectrequiredtypeenumrequiredValues: invoice, invoice_payment, receipt, receipt_payment, bank_transaction, client_funds, manual, fixed_asset, private_useidstringrequired
contactobject | nullrequirednamestringrequiredaccountstring | nullrequired
postingsArray<Posting>requireddebitstringrequiredDebit accountcreditstringrequiredCredit accountamountCentsintegerrequiredGross amount in cents (> 0)-100000000000–100000000000taxKey"output" | "input" | "rc_eu" | "rc_de" | "ige" | nullrequiredTax typetaxRatenumber | nullrequiredtaxCentsintegerrequiredTax amount in cents-100000000000–100000000000taxSide"debit" | "credit" | nullrequiredAccount from which the tax is split off (revenue/expense account)debitLabelstringcreditLabelstring
generatedbooleanrequiredderived automatically from invoices, payments, receiptslockedbooleanrequiredfinalised (GoBD)lockedAtstring (date-time) | nullrequiredTimestamp (ISO 8601)hasAttachmentbooleanrequiredcreatedAtstring (date-time) | nullrequiredTimestamp (ISO 8601)updatedAtstring (date-time) | nullrequiredTimestamp (ISO 8601)
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
}
]
}'{
"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"
}/api/v1/journal-entries/{id}Only manual journal entries that are not finalised. Finalised entries are corrected with a reversing entry.
Permission: accounting:write
Path parameters
idstringrequiredResource IDmax. 128 characters
Response 204
Success, no content
curl -X DELETE 'https://www.debt-flow.io/api/v1/journal-entries/ID' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY"/api/v1/journal-entries/pendingUnmatched bank transactions, receipts not yet posted, payments without an invoice and discrepancies after the period lock within the period (default: current year).
Permission: accounting:read
Query parameters
fromstring (date)Date (YYYY-MM-DD)tostring (date)Date (YYYY-MM-DD)
Response 200 · JournalPending
fromstring (date)requiredDate (YYYY-MM-DD)tostring (date)requiredDate (YYYY-MM-DD)issuesArray<JournalIssue>requiredtypeenumrequiredValues: unbooked_receipt, unassigned_bank_transaction, unknown_category, payment_without_invoice, unsupported_tax, changed_after_closing, missing_after_closing, assumed_service_date, tax_missing_after_closing, tax_changed_after_closing, small_business_reporting, small_business_tax_payment, asset_not_registered, review_requiredsourceIdstringrequireddatestring (date)requiredDate (YYYY-MM-DD)messagestringrequiredamountCentsintegerAmount in cents-100000000000–100000000000
curl 'https://www.debt-flow.io/api/v1/journal-entries/pending' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY"{
"from": "2026-11-01",
"to": "2026-11-01",
"issues": [
{
"type": "unbooked_receipt",
"sourceId": "string",
"date": "2026-11-01",
"message": "string",
"amountCents": 0
}
]
}/api/v1/journal-entries/transit-transfersAssigns a bank transaction as a payout from Stripe/PayPal: bank to money in transit (reversed for a chargeback). Payments run gross through money in transit, fees as incidental costs of payment transactions against money in transit – so only the amount not yet paid out remains on money in transit (DA-07).
Permission: accounting:write
Headers
Idempotency-KeystringUnique key (8–255 characters). Repeated requests with the same key return the same response for 24 h.max. 255 characters
Body (JSON) · TransitTransferCreate
bankTransactionIdstringrequiredBank transaction of the payout (or chargeback) by the payment service providermax. 128 charactersproviderstringmax. 40 characters · Default: "Stripe"documentNumberstringe.g. Stripe payout IDmax. 36 characters
Response 201 · JournalEntry
idstringrequirednumberinteger | nullrequiredSequential journal entry number (assigned on finalisation)-9007199254740991–9007199254740991datestring (date)requiredDate (YYYY-MM-DD)descriptionstringrequireddocumentNumberstringrequiredsourceobjectrequiredtypeenumrequiredValues: invoice, invoice_payment, receipt, receipt_payment, bank_transaction, client_funds, manual, fixed_asset, private_useidstringrequired
contactobject | nullrequirednamestringrequiredaccountstring | nullrequired
postingsArray<Posting>requireddebitstringrequiredDebit accountcreditstringrequiredCredit accountamountCentsintegerrequiredGross amount in cents (> 0)-100000000000–100000000000taxKey"output" | "input" | "rc_eu" | "rc_de" | "ige" | nullrequiredTax typetaxRatenumber | nullrequiredtaxCentsintegerrequiredTax amount in cents-100000000000–100000000000taxSide"debit" | "credit" | nullrequiredAccount from which the tax is split off (revenue/expense account)debitLabelstringcreditLabelstring
generatedbooleanrequiredderived automatically from invoices, payments, receiptslockedbooleanrequiredfinalised (GoBD)lockedAtstring (date-time) | nullrequiredTimestamp (ISO 8601)hasAttachmentbooleanrequiredcreatedAtstring (date-time) | nullrequiredTimestamp (ISO 8601)updatedAtstring (date-time) | nullrequiredTimestamp (ISO 8601)
curl -X POST 'https://www.debt-flow.io/api/v1/journal-entries/transit-transfers' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"bankTransactionId": "string",
"provider": "Stripe",
"documentNumber": "string"
}'{
"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"
}/api/v1/period-closingsPermission: accounting:read
Query parameters
limitintegerNumber of entries (1–100)1–100 · Default: 25cursorstring`nextCursor` of the previous pagemax. 500 characters
Response 200
object"list"requireddataArray<PeriodClosing>requiredidstringrequiredfromstring (date) | nullrequiredDate (YYYY-MM-DD)throughstring (date)requiredDate (YYYY-MM-DD)entryCountintegerrequired-9007199254740991–9007199254740991firstNumberinteger | nullrequired-9007199254740991–9007199254740991lastNumberinteger | nullrequired-9007199254740991–9007199254740991totalCentsintegerrequiredSum of all entry amounts-100000000000–100000000000hashstringrequiredSHA-256 over the content hashes of the finalised journal entriesclosedByActorrequiredtype"user" | "api_key" | "oauth" | "system"requiredidstringrequiredlabelstring
closedAtstring (date-time)requiredTimestamp (ISO 8601)
hasMorebooleanrequirednextCursorstring | nullrequired
curl 'https://www.debt-flow.io/api/v1/period-closings' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY"{
"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"
}/api/v1/period-closingsFinalises all journal entries up to and including through (end of month) in accordance with GoBD (German bookkeeping rules): entries are saved, numbered sequentially, locked with a content hash and recorded in the audit log. Irreversible. If there are open issues (409 open_issues), confirm with acknowledgeIssues: true.
Permission: accounting:write
Headers
Idempotency-KeystringUnique key (8–255 characters). Repeated requests with the same key return the same response for 24 h.max. 255 characters
Body (JSON) · PeriodClosingCreate
throughstring (date)requiredlast day of the period to lock (end of month)acknowledgeIssuesbooleanlock despite open issues (e.g. unmatched bank transactions)Default: false
Response 201 · PeriodClosing
idstringrequiredfromstring (date) | nullrequiredDate (YYYY-MM-DD)throughstring (date)requiredDate (YYYY-MM-DD)entryCountintegerrequired-9007199254740991–9007199254740991firstNumberinteger | nullrequired-9007199254740991–9007199254740991lastNumberinteger | nullrequired-9007199254740991–9007199254740991totalCentsintegerrequiredSum of all entry amounts-100000000000–100000000000hashstringrequiredSHA-256 over the content hashes of the finalised journal entriesclosedByActorrequiredtype"user" | "api_key" | "oauth" | "system"requiredidstringrequiredlabelstring
closedAtstring (date-time)requiredTimestamp (ISO 8601)
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
}'{
"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"
}/api/v1/period-closings/previewShows how many journal entries up to through would be finalised and which open issues exist.
Permission: accounting:read
Query parameters
throughstring (date)requiredDate (YYYY-MM-DD)
Response 200 · PeriodClosingPreview
fromstring (date) | nullrequiredDate (YYYY-MM-DD)throughstring (date)requiredDate (YYYY-MM-DD)entryCountintegerrequired-9007199254740991–9007199254740991generatedCountintegerrequired-9007199254740991–9007199254740991manualCountintegerrequired-9007199254740991–9007199254740991totalCentsintegerrequiredAmount in cents-100000000000–100000000000issuesArray<JournalIssue>requiredtypeenumrequiredValues: unbooked_receipt, unassigned_bank_transaction, unknown_category, payment_without_invoice, unsupported_tax, changed_after_closing, missing_after_closing, assumed_service_date, tax_missing_after_closing, tax_changed_after_closing, small_business_reporting, small_business_tax_payment, asset_not_registered, review_requiredsourceIdstringrequireddatestring (date)requiredDate (YYYY-MM-DD)messagestringrequiredamountCentsintegerAmount in cents-100000000000–100000000000
canClosebooleanrequiredreasonstring | nullrequired
curl 'https://www.debt-flow.io/api/v1/period-closings/preview?through=2026-11-01' \
-H "Authorization: Bearer $DEBTFLOW_API_KEY"{
"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"
}