Download OpenAPI specification:Download
Welcome to the Tidely Public API v2. This API enables customers to integrate with Tidely's financial planning and cash flow management platform.
All API requests require authentication using an API key sent in the X-Authorization header.
You can create and manage your API tokens in the Tidely application under Settings > API Keys
(e.g., https://app.sam.tidely.com/settings/openapi for staging environment).
For technical support, integration questions, or to report issues:
Verify your API credentials and check authentication status. All other endpoints require a valid API key in the X-Authorization header.
Get companies
| page | integer >= 0 Default: 0 Page number (0-based) |
| pageSize | integer [ 1 .. 1000 ] Default: 50 Number of balances per page |
{- "success": true,
- "message": "Companies retrieved successfully",
- "number": 0,
- "size": 20,
- "totalElements": 125,
- "totalPages": 8,
- "data": [
- {
- "id": 1,
- "parentId": 3,
- "name": "Test GmbH",
- "currency": "EUR",
- "country": "Germany",
- "industry": "ECOMMERCE"
}, - {
- "id": 2,
- "parentId": 4,
- "name": "Test2 GmbH",
- "currency": "EUR",
- "country": "Germany",
- "industry": "PUBLIC_SECTOR"
}
]
}Get company by id
| id required | integer <int64> The ID of the company |
{- "success": true,
- "message": "string",
- "data": {
- "id": 0,
- "parentId": 0,
- "name": "string",
- "currency": "EUR",
- "country": "string",
- "industry": "ECOMMERCE"
}
}Create, retrieve, update, and delete financial categories for organizing transactions and plans. Categories are hierarchical and classified by type (income/expense, operational/investment/financing).
Creates a new financial category, type is ignored if parentId is specified
| name required | string Name of the category |
| type required | string (CategoryType) Enum: "INCOME_OPERATIONAL" "INCOME_INVESTMENT" "INCOME_FINANCING" "EXPENSE_OPERATIONAL" "EXPENSE_INVESTMENT" "EXPENSE_FINANCING" Type of category indicating income or expense classification |
| parentId | integer or null <int64> ID of the parent category for hierarchical categorization |
{- "name": "E-Commerce Revenue",
- "type": "INCOME_OPERATIONAL",
- "parentId": 100
}{- "id": 123,
- "name": "E-Commerce Revenue",
- "type": "INCOME_OPERATIONAL",
- "parentId": 100,
- "enabledForPlannedTransactions": true
}Retrieves a single category by ID
| id required | integer <int64> The ID of the category |
{- "id": 123,
- "name": "E-Commerce Revenue",
- "type": "INCOME_OPERATIONAL",
- "parentId": 100,
- "enabledForPlannedTransactions": true
}Updates an existing category
| id required | integer <int64> The ID of the category |
| name | string Name of the category |
| type | string (CategoryType) Enum: "INCOME_OPERATIONAL" "INCOME_INVESTMENT" "INCOME_FINANCING" "EXPENSE_OPERATIONAL" "EXPENSE_INVESTMENT" "EXPENSE_FINANCING" Type of category indicating income or expense classification |
{- "name": "E-Commerce Revenue Updated",
- "type": "INCOME_OPERATIONAL"
}{- "id": 123,
- "name": "E-Commerce Revenue Updated",
- "type": "INCOME_OPERATIONAL",
- "parentId": 100,
- "enabledForPlannedTransactions": true
}Create, update, and delete financial plans for cash flow forecasting. Plans can be created for different periods (daily, weekly, monthly) and scenarios. Supports both single and bulk plan creation.
Creates a new financial plan for a specific category and scenario
| categoryId | integer <int64> Unique identifier of the category. If neither categoryId nor categoryName is specified, plan will go to uncategorized expenses for negative amounts and uncategorized income for positive amounts. |
| categoryName | string Category path as a string (e.g., 'Einzahlungen aus Geschäftstätigkeit->E-COMMERCE->Plattform 1'). Used if categoryId is not provided. |
| amount required | number [ -10000000000000000 .. 10000000000000000 ] Amount of the plan (negative for expenses, positive for income) |
| period required | string Enum: "DAILY" "WEEKLY" "MONTHLY" Period for which the plan value applies |
| date required | string <date> The date of the plan in ISO 8601 format (yyyy-MM-dd). For MONTHLY period, use the first day of the month. For WEEKLY period, use the first day of the week. |
| type required | string Value: "ONE_TIME" Type of the plan |
| name required | string [ 1 .. 100 ] characters Name of the plan |
| scenarioId | integer <int64> Identifier of the scenario. If not specified, the plan will be created for the Base scenario. |
| scenarioName | string Name of the scenario. Used if scenarioId is not provided. If neither is specified, the Base scenario is used. |
| replaceCurrentValuesForThePeriod | boolean Default: false If true, replaces existing values for the period. If false, adds to existing values. |
{- "categoryId": 123,
- "amount": 5000,
- "period": "MONTHLY",
- "date": "2024-10-01",
- "type": "ONE_TIME",
- "name": "October Revenue Plan",
- "scenarioId": 1,
- "replaceCurrentValuesForThePeriod": false
}{- "success": true,
- "message": "string",
- "planId": 0
}Deletes all plans for a specific category and scenario combination
| categoryId required | integer <int64> Example: categoryId=123 The ID of the category |
| scenarioId required | integer <int64> Example: scenarioId=1 The ID of the scenario |
{- "success": true,
- "message": "string",
- "deletedCount": 0
}Creates multiple financial plans in a single request
| categoryId | integer <int64> Unique identifier of the category. If neither categoryId nor categoryName is specified, plan will go to uncategorized expenses for negative amounts and uncategorized income for positive amounts. |
| categoryName | string Category path as a string (e.g., 'Einzahlungen aus Geschäftstätigkeit->E-COMMERCE->Plattform 1'). Used if categoryId is not provided. |
| amount required | number [ -10000000000000000 .. 10000000000000000 ] Amount of the plan (negative for expenses, positive for income) |
| period required | string Enum: "DAILY" "WEEKLY" "MONTHLY" Period for which the plan value applies |
| date required | string <date> The date of the plan in ISO 8601 format (yyyy-MM-dd). For MONTHLY period, use the first day of the month. For WEEKLY period, use the first day of the week. |
| type required | string Value: "ONE_TIME" Type of the plan |
| name required | string [ 1 .. 100 ] characters Name of the plan |
| scenarioId | integer <int64> Identifier of the scenario. If not specified, the plan will be created for the Base scenario. |
| scenarioName | string Name of the scenario. Used if scenarioId is not provided. If neither is specified, the Base scenario is used. |
| replaceCurrentValuesForThePeriod | boolean Default: false If true, replaces existing values for the period. If false, adds to existing values. |
[- {
- "categoryId": 123,
- "amount": 5000,
- "period": "MONTHLY",
- "date": "2024-10-01",
- "type": "ONE_TIME",
- "name": "October Revenue Plan"
}, - {
- "categoryId": 124,
- "amount": -2000,
- "period": "MONTHLY",
- "date": "2024-10-01",
- "type": "ONE_TIME",
- "name": "October Expense Plan"
}
]{- "success": true,
- "message": "string",
- "createdCount": 0,
- "planIds": [
- 0
]
}Import invoices from external systems into Tidely. Supports sales invoices, purchase invoices, and credit notes. Automatically categorizes and integrates with cash flow planning.
Get all invoices
| invoiceTypeFilter required | string (InvoiceTypeFilter) Enum: "SALE" "PURCHASE" Type of invoices to retrieve |
| externalId | Array of strings <= 100 items [ items <= 255 characters ] Filter invoices by external identifier. Repeat the parameter to filter by multiple external IDs (e.g. |
| page | integer >= 0 Default: 0 Page number (0-based) |
| pageSize | integer [ 1 .. 1000 ] Default: 50 Number of invoices per page |
{- "success": true,
- "message": "Invoices retrieved successfully",
- "number": 0,
- "size": 50,
- "totalElements": 2,
- "totalPages": 1,
- "data": [
- {
- "id": 1,
- "externalId": "INV-2024-001",
- "invoiceDate": "2024-10-15",
- "dueDate": "2024-11-15",
- "invoiceNumber": "2024-001",
- "contactName": "ACME Corp",
- "invoiceType": "SALES_INVOICE",
- "totalGrossAmount": 11900,
- "openAmount": 11900,
- "invoiceStatus": "OPEN",
- "note": "sale invoice",
- "categoryId": 1
}, - {
- "id": 2,
- "externalId": "INV-2024-002",
- "invoiceDate": "2024-10-20",
- "dueDate": "2024-11-20",
- "invoiceNumber": "2024-002",
- "contactName": "Beta GmbH",
- "invoiceType": "SALES_INVOICE",
- "totalGrossAmount": 5950,
- "openAmount": 5950,
- "invoiceStatus": "OPEN",
- "note": "invoice",
- "categoryId": 1
}
]
}Creates a new invoice
| invoiceDate | string <date> Invoice date in ISO 8601 format |
| dueDate | string <date> Due date of the invoice in ISO 8601 format |
| paidDate | string or null <date> Invoice payment date and time in ISO 8601 format |
| invoiceNumber required | string non-empty Invoice number |
| contactName required | string non-empty Recipient name of the invoice |
| totalGrossAmount required | number [ -10000000000000000 .. 10000000000000000 ] Total gross amount including tax |
| invoiceStatus | string Enum: "DRAFT" "OPEN" "PAID" "PARTIALLY_PAID" "CANCELED" "WITHHELD" Status of the invoice |
| openAmount | number or null [ -10000000000000000 .. 10000000000000000 ] Open (unpaid) amount of the invoice |
| note | string or null Description or notes for the invoice |
| categoryId | integer or null <int64> Unique identifier of the category |
| externalId | string External identifier of the invoice, used for integration with external systems |
| invoiceType required | string (InvoiceTypeEnum) Enum: "SALES_INVOICE" "SALES_CREDIT_NOTE" "PURCHASE_INVOICE" "PURCHASE_CREDIT_NOTE" Type of invoice |
{- "externalId": "INV-2024-001",
- "invoiceDate": "2024-10-15",
- "dueDate": "2024-11-15",
- "invoiceNumber": "2024-001",
- "contactName": "ACME Corp",
- "invoiceType": "SALES_INVOICE",
- "totalGrossAmount": 11900,
- "openAmount": 11900,
- "invoiceStatus": "OPEN"
}{- "success": true,
- "message": "string",
- "data": {
- "invoiceDate": "2019-08-24",
- "dueDate": "2019-08-24",
- "paidDate": "2019-08-24",
- "invoiceNumber": "string",
- "contactName": "string",
- "totalGrossAmount": -10000000000000000,
- "invoiceStatus": "DRAFT",
- "openAmount": -10000000000000000,
- "note": "string",
- "categoryId": 0,
- "externalId": "string",
- "invoiceType": "SALES_INVOICE",
- "id": 0
}
}Creates multiple invoices in a single request. A maximum of 1000 invoices per request is allowed. Requests exceeding this limit will be rejected with a 400 Bad Request response.
required | Array of objects (InvoiceCreateRequest) [ 1 .. 1000 ] items | ||||||||||||||||||||||||
Array ([ 1 .. 1000 ] items)
| |||||||||||||||||||||||||
{- "invoices": [
- {
- "invoiceNumber": "2024-001",
- "externalId": "1",
- "invoiceDate": "2024-10-15",
- "dueDate": "2024-11-15",
- "contactName": "ACME Corp",
- "invoiceType": "SALES_INVOICE",
- "totalGrossAmount": 11900,
- "openAmount": 11900,
- "invoiceStatus": "OPEN",
- "note": "simple note",
- "categoryId": null
}, - {
- "invoiceNumber": "2024-002",
- "externalId": "1",
- "invoiceDate": "2024-10-20",
- "dueDate": "2024-11-20",
- "contactName": "Beta GmbH",
- "invoiceType": "PURCHASE_INVOICE",
- "totalGrossAmount": 5950,
- "openAmount": 5950,
- "invoiceStatus": "OPEN",
- "note": "simple note",
- "categoryId": 1
}
]
}{- "success": true,
- "message": "string",
- "createdCount": 0,
- "invoiceIds": [
- 0
], - "failedCount": 0,
- "errors": [
- {
- "index": 0,
- "reason": "string"
}
]
}Get invoice by id
| id required | integer <int64> The ID of the invoice |
| invoiceTypeFilter required | string (InvoiceTypeFilter) Enum: "SALE" "PURCHASE" Type of invoices to retrieve |
{- "success": true,
- "message": "string",
- "data": {
- "invoiceDate": "2019-08-24",
- "dueDate": "2019-08-24",
- "paidDate": "2019-08-24",
- "invoiceNumber": "string",
- "contactName": "string",
- "totalGrossAmount": -10000000000000000,
- "invoiceStatus": "DRAFT",
- "openAmount": -10000000000000000,
- "note": "string",
- "categoryId": 0,
- "externalId": "string",
- "invoiceType": "SALES_INVOICE",
- "id": 0
}
}Updates an invoice. Invoices that originate from an ERP integration are read-only — update and delete operations are not allowed.
| id required | integer <int64> The ID of the invoice |
| invoiceTypeFilter required | string (InvoiceTypeFilter) Enum: "SALE" "PURCHASE" Type of invoices to retrieve |
| invoiceDate | string <date> Invoice date in ISO 8601 format |
| dueDate | string <date> Due date of the invoice in ISO 8601 format |
| paidDate | string or null <date> Invoice payment date and time in ISO 8601 format |
| invoiceNumber | string non-empty Invoice number |
| contactName | string non-empty Recipient name of the invoice |
| totalGrossAmount | number [ -10000000000000000 .. 10000000000000000 ] Total gross amount including tax |
| invoiceStatus | string Enum: "DRAFT" "OPEN" "PAID" "PARTIALLY_PAID" "CANCELED" "WITHHELD" Status of the invoice |
| openAmount | number or null [ -10000000000000000 .. 10000000000000000 ] Open (unpaid) amount of the invoice |
| note | string or null Description or notes for the invoice |
| categoryId | integer or null <int64> Unique identifier of the category |
{- "invoiceDate": "2024-10-15",
- "dueDate": "2024-11-15",
- "invoiceNumber": "2024-001",
- "contactName": "ACME Corp",
- "totalGrossAmount": 11900,
- "openAmount": 11900,
- "invoiceStatus": "PAID",
- "currency": "EUR",
- "paidDate": "2024-11-10"
}{- "success": true,
- "message": "string",
- "data": {
- "invoiceDate": "2019-08-24",
- "dueDate": "2019-08-24",
- "paidDate": "2019-08-24",
- "invoiceNumber": "string",
- "contactName": "string",
- "totalGrossAmount": -10000000000000000,
- "invoiceStatus": "DRAFT",
- "openAmount": -10000000000000000,
- "note": "string",
- "categoryId": 0,
- "externalId": "string",
- "invoiceType": "SALES_INVOICE",
- "id": 0
}
}Deletes an invoice by id. Invoices that originate from an ERP integration are read-only — update and delete operations are not allowed.
| id required | integer <int64> The ID of the invoice |
| invoiceTypeFilter required | string (InvoiceTypeFilter) Enum: "SALE" "PURCHASE" Type of invoices to retrieve |
{- "success": true,
- "message": "string",
- "id": 0
}Access financial planning scenarios for what-if analysis. Each account has a base scenario and can create additional scenarios for comparison.
{- "success": true,
- "message": "Bank accounts retrieved successfully",
- "data": [
- {
- "id": 1,
- "externalId": "123",
- "iban": "DE89370400440532113000",
- "accountNumber": "1234567891",
- "accountCurrency": "EUR",
- "accountName": "First Bank Account",
- "bankName": "Deutsche Bank",
- "accountType": "CHECKING",
- "provider": "ONLINE",
- "balanceReference": 2400,
- "balanceDate": "2025-03-10"
}, - {
- "id": 2,
- "externalId": "124",
- "iban": "DE89370400440532214000",
- "accountNumber": "1234567892",
- "accountCurrency": "EUR",
- "accountName": "Second Bank Account",
- "bankName": "Deutsche Bank",
- "accountType": "CHECKING",
- "provider": "OFFLINE",
- "balanceReference": 2500,
- "balanceDate": "2025-03-10"
}
]
}Creates a new bank account
| companyId | integer <int64> ID of the company the bank account belongs to |
| iban | string International Bank Account Number |
| accountNumber | string Local account number |
| accountCurrency required | string (Currency) Default: "EUR" Enum: "AED" "AFN" "ALL" "AMD" "ANG" "AOA" "ARS" "AUD" "AWG" "AZN" "BAM" "BBD" "BDT" "BGN" "BHD" "BIF" "BMD" "BND" "BOB" "BOV" "BRL" "BSD" "BTC" "BTN" "BWP" "BYR" "BYN" "BZD" "CAD" "CDF" "CHE" "CHF" "CHN" "CHW" "CLF" "CLP" "CNY" "COP" "COU" "CRC" "CUC" "CUP" "CVE" "CZK" "DJF" "DKK" "DOP" "DZD" "EGP" "ERN" "ETB" "EUR" "FJD" "FKP" "GBP" "GEL" "GGP" "GHS" "GIP" "GMD" "GNF" "GTQ" "GYD" "HKD" "HNL" "HRK" "HTG" "HUF" "IDR" "ILS" "IMP" "INR" "IQD" "IRR" "ISK" "JEP" "JMD" "JOD" "JPY" "KES" "KGS" "KHR" "KID" "KMF" "KPW" "KRW" "KWD" "KYD" "KZT" "LAK" "LBP" "LKR" "LRD" "LSL" "LTL" "LVL" "LYD" "MAD" "MDL" "MGA" "MKD" "MMK" "MNT" "MOP" "MRO" "MRU" "MUR" "MVR" "MWK" "MXN" "MXV" "MYR" "MZN" "NAD" "NGN" "NIO" "NIS" "NOK" "NPR" "NTD" "NZD" "OMR" "PAB" "PEN" "PGK" "PHP" "PKR" "PLN" "PRB" "PYG" "QAR" "RMB" "RON" "RSD" "RUB" "RWF" "SAR" "SBD" "SCR" "SDG" "SEK" "SGD" "SHP" "SLL" "SLS" "SOS" "SRD" "SSP" "STD" "STN" "SVC" "SYP" "SZL" "THB" "TJS" "TMT" "TND" "TOP" "TRY" "TTD" "TVD" "TWD" "TZS" "UAH" "UGX" "USD" "USN" "UYI" "UYU" "UYW" "UZS" "VEF" "VES" "VND" "VUV" "WST" "XAF" "XAG" "XAU" "XBA" "XBB" "XBC" "XBD" "XCD" "XDR" "XOF" "XPD" "XPF" "XPT" "XSU" "XTS" "XUA" "XXX" "YER" "ZAR" "ZMK" "ZMW" "ZWB" "ZWL" ISO 4217 currency codes |
| accountName required | string Name of the account |
| bankName required | string <= 255 characters Bank of the account |
| balanceReference | number [ -1000000000000 .. 1000000000000 ] Start-of-day balance of the bank account on the date specified in balanceDate. This balance will be used as a reference for calculating past and future balances based on the bank account's transactions. |
| balanceDate | string <date> The date of the balance specified in balanceReference in ISO 8601 format (yyyy-MM-dd). |
| accountType required | string (AccountType) Enum: "CHECKING" "SAVINGS" "CREDITCARD" "SECURITY" "LOAN" "POCKET" "MEMBERSHIP" "BAUSPAREN" Type of account |
| externalId | string External identifier for the bank account, used for integration with external systems |
{- "externalId": "123",
- "iban": "DE89370400440532013000",
- "accountNumber": "1234567890",
- "accountCurrency": "EUR",
- "accountName": "Main Business Account",
- "bankName": "Deutsche Bank",
- "companyId": 1,
- "accountType": "CHECKING",
- "balanceReference": 2100,
- "balanceDate": "2025-03-10"
}{- "success": true,
- "message": "string",
- "data": {
- "companyId": 0,
- "iban": "string",
- "accountNumber": "string",
- "accountCurrency": "AED",
- "accountName": "string",
- "bankName": "string",
- "balanceReference": -1000000000000,
- "balanceDate": "2019-08-24",
- "accountType": "CHECKING",
- "externalId": "string",
- "id": 0,
- "provider": "OFFLINE"
}
}Get bank account by id
| id required | integer <int64> The ID of the bank account |
{- "success": true,
- "message": "string",
- "data": {
- "companyId": 0,
- "iban": "string",
- "accountNumber": "string",
- "accountCurrency": "AED",
- "accountName": "string",
- "bankName": "string",
- "balanceReference": -1000000000000,
- "balanceDate": "2019-08-24",
- "accountType": "CHECKING",
- "externalId": "string",
- "id": 0,
- "provider": "OFFLINE"
}
}Updates a bank account
| id required | integer <int64> The ID of the bank account |
| companyId | integer <int64> ID of the company the bank account belongs to |
| iban | string International Bank Account Number |
| accountNumber | string Local account number |
| accountCurrency | string (Currency) Default: "EUR" Enum: "AED" "AFN" "ALL" "AMD" "ANG" "AOA" "ARS" "AUD" "AWG" "AZN" "BAM" "BBD" "BDT" "BGN" "BHD" "BIF" "BMD" "BND" "BOB" "BOV" "BRL" "BSD" "BTC" "BTN" "BWP" "BYR" "BYN" "BZD" "CAD" "CDF" "CHE" "CHF" "CHN" "CHW" "CLF" "CLP" "CNY" "COP" "COU" "CRC" "CUC" "CUP" "CVE" "CZK" "DJF" "DKK" "DOP" "DZD" "EGP" "ERN" "ETB" "EUR" "FJD" "FKP" "GBP" "GEL" "GGP" "GHS" "GIP" "GMD" "GNF" "GTQ" "GYD" "HKD" "HNL" "HRK" "HTG" "HUF" "IDR" "ILS" "IMP" "INR" "IQD" "IRR" "ISK" "JEP" "JMD" "JOD" "JPY" "KES" "KGS" "KHR" "KID" "KMF" "KPW" "KRW" "KWD" "KYD" "KZT" "LAK" "LBP" "LKR" "LRD" "LSL" "LTL" "LVL" "LYD" "MAD" "MDL" "MGA" "MKD" "MMK" "MNT" "MOP" "MRO" "MRU" "MUR" "MVR" "MWK" "MXN" "MXV" "MYR" "MZN" "NAD" "NGN" "NIO" "NIS" "NOK" "NPR" "NTD" "NZD" "OMR" "PAB" "PEN" "PGK" "PHP" "PKR" "PLN" "PRB" "PYG" "QAR" "RMB" "RON" "RSD" "RUB" "RWF" "SAR" "SBD" "SCR" "SDG" "SEK" "SGD" "SHP" "SLL" "SLS" "SOS" "SRD" "SSP" "STD" "STN" "SVC" "SYP" "SZL" "THB" "TJS" "TMT" "TND" "TOP" "TRY" "TTD" "TVD" "TWD" "TZS" "UAH" "UGX" "USD" "USN" "UYI" "UYU" "UYW" "UZS" "VEF" "VES" "VND" "VUV" "WST" "XAF" "XAG" "XAU" "XBA" "XBB" "XBC" "XBD" "XCD" "XDR" "XOF" "XPD" "XPF" "XPT" "XSU" "XTS" "XUA" "XXX" "YER" "ZAR" "ZMK" "ZMW" "ZWB" "ZWL" ISO 4217 currency codes |
| accountName | string Name of the account |
| bankName | string <= 255 characters Bank of the account |
| balanceReference | number [ -1000000000000 .. 1000000000000 ] Start-of-day balance of the bank account on the date specified in balanceDate. This balance will be used as a reference for calculating past and future balances based on the bank account's transactions. |
| balanceDate | string <date> The date of the balance specified in balanceReference in ISO 8601 format (yyyy-MM-dd). |
| accountType | string (AccountType) Enum: "CHECKING" "SAVINGS" "CREDITCARD" "SECURITY" "LOAN" "POCKET" "MEMBERSHIP" "BAUSPAREN" Type of account |
| externalId | string External identifier for the bank account, used for integration with external systems |
{- "externalId": "123",
- "iban": "DE89370400440532213000",
- "accountNumber": "1234567890",
- "accountCurrency": "EUR",
- "accountName": "Test bank account",
- "bankName": "Deutsche Bank",
- "accountType": "CHECKING",
- "balanceDate": "2026-03-11",
- "companyId": 1,
- "balanceReference": 2400
}{- "success": true,
- "message": "string",
- "data": {
- "companyId": 0,
- "iban": "string",
- "accountNumber": "string",
- "accountCurrency": "AED",
- "accountName": "string",
- "bankName": "string",
- "balanceReference": -1000000000000,
- "balanceDate": "2019-08-24",
- "accountType": "CHECKING",
- "externalId": "string",
- "id": 0,
- "provider": "OFFLINE"
}
}Get all balances for a bank account
| id required | integer <int64> ID of the bank account |
| page | integer >= 0 Default: 0 Page number (0-based) |
| pageSize | integer [ 1 .. 1000 ] Default: 50 Number of balances per page |
{- "success": true,
- "message": "Bank account balances retrieved successfully",
- "number": 0,
- "size": 20,
- "totalElements": 125,
- "totalPages": 8,
- "data": [
- {
- "date": "2024-10-15",
- "amount": 2500
}, - {
- "date": "2024-10-16",
- "amount": 2700
}
]
}Get all bank account transactions
| bankAccountId required | integer <int64> ID of the bank account to filter transactions |
| page | integer >= 0 Default: 0 Page number (0-based) |
| pageSize | integer [ 1 .. 1000 ] Default: 50 Number of transactions per page |
{- "success": true,
- "message": "Transactions retrieved successfully",
- "number": 0,
- "size": 20,
- "totalElements": 125,
- "totalPages": 8,
- "data": [
- {
- "id": 1001,
- "externalId": "1234",
- "bankAccountId": 10,
- "categoryId": 5,
- "bookingDate": "2024-10-15",
- "amount": -120.5,
- "counterpartName": "Amazon EU",
- "counterpartAccountNumber": "9876543210",
- "counterpartIban": "DE44500105175407324931",
- "purpose": "Office supplies purchase",
- "counterpartCustomerReference": "reference"
}, - {
- "id": 1002,
- "externalId": "1235",
- "bankAccountId": 10,
- "categoryId": 2,
- "bookingDate": "2024-10-16",
- "amount": 2500,
- "counterpartName": "Client ABC GmbH",
- "counterpartAccountNumber": "1231231230",
- "counterpartIban": "DE89370400440532013000",
- "purpose": "Invoice payment INV-2024-10",
- "counterpartCustomerReference": "reference"
}
]
}Creates a new bank account transaction
| bankAccountId required | integer <int64> |
required | object Bank account transaction base model |
{- "bankAccountId": 10,
- "transaction": {
- "externalId": "1234",
- "categoryId": 5,
- "bookingDate": "2024-10-15",
- "amount": -120.5,
- "counterpartName": "Amazon EU",
- "counterpartAccountNumber": "9876543210",
- "counterpartIban": "DE44500105175407324931",
- "purpose": "Office supplies purchase",
- "counterpartCustomerReference": "reference"
}
}{- "success": true,
- "message": "string",
- "data": {
- "categoryId": 0,
- "bookingDate": "2019-08-24",
- "amount": -10000000000000000,
- "counterpartName": "string",
- "counterpartAccountNumber": "string",
- "counterpartIban": "string",
- "purpose": "string",
- "counterpartCustomerReference": "string",
- "externalId": "string",
- "id": 0,
- "bankAccountId": 0
}
}Creates multiple bank account transactions in a single request. A maximum of 1000 transactions per bank account entry is allowed per request. Requests exceeding this limit will be rejected with a 400 Bad Request response.
| bankAccountId required | integer <int64> |
required | Array of objects [ 1 .. 1000 ] items |
{- "bankAccountId": 10,
- "transactions": [
- {
- "categoryId": 5,
- "externalId": "1234",
- "bookingDate": "2024-10-15",
- "amount": -120.5,
- "counterpartName": "Amazon EU",
- "counterpartAccountNumber": "9876543210",
- "counterpartIban": "DE44500105175407324931",
- "purpose": "Office supplies purchase",
- "counterpartCustomerReference": "REF-001"
}, - {
- "categoryId": 2,
- "externalId": "1235",
- "bookingDate": "2024-10-16",
- "amount": 2500,
- "counterpartName": "Client ABC GmbH",
- "counterpartAccountNumber": "1231231230",
- "counterpartIban": "DE89370400440532013000",
- "purpose": "Invoice payment INV-2024-10",
- "counterpartCustomerReference": "REF-002"
}, - {
- "categoryId": 5,
- "externalId": "1236",
- "bookingDate": "2024-10-17",
- "amount": -85,
- "counterpartName": "Office Depot",
- "counterpartAccountNumber": "5555555555",
- "counterpartIban": "DE12500105170648489890",
- "purpose": "Stationery supplies",
- "counterpartCustomerReference": "REF-003"
}
]
}{- "success": true,
- "message": "string",
- "createdCount": 0,
- "transactionIds": [
- 0
], - "failedCount": 0,
- "errors": [
- {
- "index": 0,
- "reason": "string"
}
], - "skippedCount": 0,
- "skipped": [
- {
- "index": 0,
- "externalId": "string"
}
]
}Checks whether transactions with the given external IDs already exist for a bank account. Useful for deduplication checks before a bulk create, or for inline reconciliation after a resend. A maximum of 1000 external IDs per request is allowed.
| bankAccountId required | integer <int64> ID of the bank account to check against |
| externalIds required | Array of strings [ 1 .. 1000 ] items External IDs to check |
{- "bankAccountId": 10,
- "externalIds": [
- "1234",
- "1235",
- "1236"
]
}{- "success": true,
- "data": [
- {
- "externalId": "1234",
- "exists": true
}, - {
- "externalId": "1235",
- "exists": false
}, - {
- "externalId": "1236",
- "exists": true
}
]
}Get bank account transaction by id
| id required | integer <int64> The ID of the bank account transaction |
{- "success": true,
- "message": "string",
- "data": {
- "categoryId": 0,
- "bookingDate": "2019-08-24",
- "amount": -10000000000000000,
- "counterpartName": "string",
- "counterpartAccountNumber": "string",
- "counterpartIban": "string",
- "purpose": "string",
- "counterpartCustomerReference": "string",
- "externalId": "string",
- "id": 0,
- "bankAccountId": 0
}
}Updates a bank account transaction
| id required | integer <int64> The ID of the bank account transaction |
| categoryId | integer <int64> ID of the category |
| bookingDate | string <date> Booking date in ISO 8601 format |
| amount | number [ -10000000000000000 .. 10000000000000000 ] Transaction amount in bank account currency |
| counterpartName | string Counterpart of the transaction |
| counterpartAccountNumber | string Counterpart account number of the transaction |
| counterpartIban | string Counterpart iban of the transaction |
| purpose | string Description of the transaction |
| counterpartCustomerReference | string Counterpart customer reference |
| externalId | string <= 255 characters External identifier for the transaction, used for integration with external systems |
{- "categoryId": 5,
- "externalId": "1234",
- "bookingDate": "2024-10-15",
- "amount": -120.5,
- "counterpartName": "Amazon EU",
- "counterpartAccountNumber": "9876543210",
- "counterpartIban": "DE44500105175407324931",
- "purpose": "Office supplies purchase",
- "counterpartCustomerReference": "reference"
}{- "success": true,
- "message": "string",
- "data": {
- "categoryId": 0,
- "bookingDate": "2019-08-24",
- "amount": -10000000000000000,
- "counterpartName": "string",
- "counterpartAccountNumber": "string",
- "counterpartIban": "string",
- "purpose": "string",
- "counterpartCustomerReference": "string",
- "externalId": "string",
- "id": 0,
- "bankAccountId": 0
}
}Retrieve the aggregated cashflow per period (month, week or day) for a scenario, including opening and closing balances, sales and purchases totals, amounts per category, and per-period overdraft and liquidity information.
Retrieves the cashflow of the authenticated company aggregated per period.
Each period bucket contains the opening and closing balances (actual, prognosed, total
and plan), the sales and purchases totals, the amounts per category, the aggregated
income and expense details, and any non-financial KPIs. Per-period overdraft and
liquidity figures are returned alongside, keyed by the same period start dates.
All amounts are returned with two decimals. Only periods within the resolved
from/to range are returned.
When scenarioId is omitted, the base forecast scenario is used.
When from/to are omitted, the range defaults to 6 periods in the past and 18 periods
in the future. The range between from and to must not exceed 36 periods.
| scenarioId | integer <int64> Example: scenarioId=1 ID of the scenario to calculate the cashflow for. Defaults to the base forecast scenario. |
| period | string (CashflowPeriod) Default: "MONTH" Enum: "MONTH" "WEEK" "DAY" Aggregation period of the cashflow buckets. |
| from | string <date> Example: from=2025-01-01 Start of the range in ISO 8601 format (yyyy-MM-dd). Must be the first day of the
requested period (first day of the month for MONTH, Monday for WEEK).
When omitted it defaults to 6 periods before |
| to | string <date> Example: to=2025-12-31 End of the range in ISO 8601 format (yyyy-MM-dd). Must be the last day of the
requested period (last day of the month for MONTH, Sunday for WEEK) and not before |
{- "cashflow": {
- "data": {
- "2025-06-01": {
- "totalSales": 0,
- "totalPurchases": 0,
- "startBalance": 0,
- "planStartBalance": 0,
- "amountPerCategory": {
- "1163025": {
- "sumOfBankTransactions": -7455.9,
- "sumOfInvoices": 0,
- "sumOfPlannedValues": 0,
- "amount": -7455.9,
- "remainingAmount": 0,
- "planDeviation": -7455.9
}
}, - "incomeDetails": {
- "sumOfBankTransactions": 211941.3,
- "sumOfInvoices": 0,
- "sumOfPlannedValues": 72850,
- "prognosed": 211941.3,
- "remainingAmount": 0,
- "planDeviation": 139091.3,
- "planAchievementPct": 291
}, - "expenseDetails": {
- "sumOfBankTransactions": -83574.9,
- "sumOfInvoices": 0,
- "sumOfPlannedValues": -32575.5,
- "prognosed": -113427.9,
- "remainingAmount": -29853,
- "planDeviation": -50999.4,
- "planAchievementPct": 257
}, - "actualEndBalance": 128366,
- "prognosedEndBalance": 98513,
- "totalEndBalance": 128366,
- "planEndBalance": 40275,
- "nfKpis": { },
- "categoriesWithNotes": { }
}
}, - "overdraftData": {
- "2025-06-01": {
- "overdraftLimit": 100000,
- "totalLiquidity": 228366.4,
- "totalPlannedLiquidity": 198513.4
}
}
}
}