Download OpenAPI specification:Download
Welcome to the Tidely Partner API v2. This API enables white-label partners to integrate with Tidely's financial planning and cash flow management platform on behalf of their customers.
The Partner API uses OAuth 2.0 for authentication. Two flows are supported:
Contact partnerships@tidely.com to obtain your client credentials.
All Partner API requests require the X-Account-Id header to specify which customer account
the request applies to. This allows partners to operate on behalf of multiple customers using
a single set of credentials.
For technical support, integration questions, or to report issues:
Endpoints supporting the Embedded Integration: Obtain short-lived init tokens that
log a Tidely user into the embedded Tidely frontend without showing them a login
screen. See the Embedded Integration guide for the
full flow, including the postMessage protocol between the parent page and the
iframe.
Obtains a short-lived, single-use init token that the partner's frontend hands to
the embedded Tidely iframe via postMessage. The Tidely frontend then exchanges
the init token on Tidely's backend for a regular access + refresh token pair,
logging the user in.
The init token is bound to the Tidely user identified by userId and to the
account given via the X-Account-Id header. It expires after 30–60 seconds and
cannot be reused once it has been exchanged.
See the Partner SSO guide for the full end-to-end flow.
POST /users.Errors carry a stable, machine-readable code in the error field of the
ExceptionDetails body so partners can react programmatically; message is a
human-readable description (do not match on it):
| HTTP | error |
Meaning |
|---|---|---|
| 400 | INVALID_REQUEST |
Body malformed or userId missing/non-numeric. |
| 400 | MISSING_ACCOUNT_HEADER |
X-Account-Id header is missing. |
| 401 | INVALID_CREDENTIALS |
Partner access token missing, expired, or invalid. |
| 403 | SSO_NOT_ENABLED |
The partner does not have the embedded SSO feature enabled. |
| 404 | USER_NOT_FOUND |
The userId does not exist, or the account/user is not accessible to the partner. |
| 409 | USER_INACTIVE |
The user exists but is disabled, deleted, or otherwise blocked from login. |
| 500 | INTERNAL_ERROR |
Unexpected server error. |
| X-Account-Id required | integer <int64> Example: 12345 The unique identifier of the customer account to operate on. Required for all partner API requests. |
| userId required | integer <int64> ID of the Tidely user to log in. |
{- "userId": 67890
}{- "initToken": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI2Nzg5MCIsImFjY291bnRJZCI6MTIzNDUsImlzcyI6Imh0dHBzOi8vYXV0aC50aWRlbHkuY29tIiwiYXVkIjoidGlkZWx5LWZyb250ZW5kIiwiaWF0IjoxNzMwOTk5OTk5LCJleHAiOjE3MzEwMDAwNTksImp0aSI6IjAxOTI4ZTUwLTAwMDAtNzAwMC04MDAwLWFiY2RlZjAxMjM0NSJ9.signature",
- "expiresIn": 60,
- "expiresAt": "2026-05-08T12:34:56Z"
}Manage customer accounts accessible by the partner. Accounts represent the end customers that the partner serves.
Creates a new account with a default company and an initial admin user.
| HTTP | error |
Meaning |
|---|---|---|
| 400 | INVALID_REQUEST |
Request body is malformed or fails validation. |
| 401 | INVALID_CREDENTIALS |
Partner access token missing, expired, or invalid. |
| 403 | INSUFFICIENT_SCOPE |
Access token lacks the required account/write scope. |
| 409 | ACCOUNT_EXTERNAL_ID_ALREADY_EXISTS |
An account with the given externalId already exists for this partner. |
| 409 | USER_EMAIL_ALREADY_EXISTS |
The initial user's email address is already in use. |
| 500 | INTERNAL_ERROR |
Unexpected server error. |
| externalId required | string External identifier specified by the partner |
| companyName required | string Name of the main company to be created for this account |
required | object (InitialUserCreateRequest) Initial admin user created alongside a new account. Account/company are created implicitly and the role is ADMIN. |
{- "externalId": "partner-newclient-003",
- "companyName": "New Client GmbH",
- "user": {
- "externalId": "user-john-001",
- "email": "john.doe@newclient.com",
- "firstName": "John",
- "lastName": "Doe"
}
}{- "success": true,
- "message": "Account created successfully",
- "account": {
- "id": 12347,
- "externalId": "partner-newclient-003",
- "createdAt": "2024-04-10T08:52:00Z",
- "updatedAt": "2024-04-10T08:52:00Z",
- "status": "IN_TRIAL",
- "plan": "PROFESSIONAL"
}, - "user": {
- "id": 56789,
- "accountId": 12347,
- "companyId": 12348,
- "role": "ADMIN",
- "externalId": "user-john-001",
- "email": "john.doe@newclient.com",
- "firstName": "John",
- "lastName": "Doe",
- "createdAt": "2024-04-10T08:52:00Z",
- "status": "ACTIVE"
}, - "company": {
- "id": 12348,
- "accountId": 12345,
- "name": "New Client Inc.",
- "createdAt": "2024-04-10T08:52:00Z",
- "updatedAt": "2024-04-10T08:52:00Z"
}
}Get all accounts accessible by the partner.
| HTTP | error |
Meaning |
|---|---|---|
| 400 | INVALID_REQUEST |
A query parameter is invalid. |
| 401 | INVALID_CREDENTIALS |
Partner access token missing, expired, or invalid. |
| 403 | INSUFFICIENT_SCOPE |
Access token lacks the required account/read scope. |
| 500 | INTERNAL_ERROR |
Unexpected server error. |
| page | integer >= 0 Default: 0 Page number (0-based) |
| pageSize | integer [ 1 .. 1000 ] Default: 50 Number of accounts per page |
| status | string Enum: "ACTIVE" "IN_TRIAL" "CANCELLED" "NON_RENEWING" Filter accounts by status |
{- "success": true,
- "message": "Accounts retrieved successfully",
- "number": 0,
- "size": 20,
- "totalElements": 125,
- "totalPages": 8,
- "data": [
- {
- "id": 12345,
- "externalId": "partner-acme-001",
- "createdAt": "2024-01-15T10:30:00Z",
- "updatedAt": "2024-03-20T15:22:00Z",
- "status": "ACTIVE",
- "plan": "PROFESSIONAL"
}, - {
- "id": 12346,
- "externalId": "partner-tech-002",
- "createdAt": "2024-02-20T14:45:00Z",
- "updatedAt": "2024-02-20T14:45:00Z",
- "status": "IN_TRIAL",
- "plan": "trial"
}
]
}Get account by id. Requires the X-Account-Id header.
| HTTP | error |
Meaning |
|---|---|---|
| 400 | MISSING_ACCOUNT_HEADER |
X-Account-Id header is missing. |
| 401 | INVALID_CREDENTIALS |
Partner access token missing, expired, or invalid. |
| 403 | INSUFFICIENT_SCOPE |
Access token lacks the required account/read scope. |
| 404 | ACCOUNT_NOT_FOUND |
No account exists with the given id, or it is not accessible to the partner. |
| 500 | INTERNAL_ERROR |
Unexpected server error. |
| id required | integer <int64> The ID of the account |
{- "success": true,
- "message": "Account retrieved successfully",
- "data": {
- "id": 12345,
- "externalId": "partner-acme-001",
- "createdAt": "2024-01-15T10:30:00Z",
- "updatedAt": "2024-03-20T15:22:00Z",
- "status": "ACTIVE",
- "plan": "PROFESSIONAL"
}
}Partially updates an account. Only the company name is currently partner-mutable.
Requires the X-Account-Id header.
| HTTP | error |
Meaning |
|---|---|---|
| 400 | INVALID_REQUEST |
Request body is malformed or fails validation. |
| 400 | MISSING_ACCOUNT_HEADER |
X-Account-Id header is missing. |
| 401 | INVALID_CREDENTIALS |
Partner access token missing, expired, or invalid. |
| 403 | INSUFFICIENT_SCOPE |
Access token lacks the required account/write scope. |
| 404 | ACCOUNT_NOT_FOUND |
No account exists with the given id, or it is not accessible to the partner. |
| 500 | INTERNAL_ERROR |
Unexpected server error. |
| id required | integer <int64> The ID of the account |
| companyName | string New name for the account's main company |
{- "companyName": "string"
}{- "success": true,
- "message": "Account updated successfully",
- "data": {
- "id": 12345,
- "externalId": "partner-acme-001",
- "createdAt": "2024-01-15T10:30:00Z",
- "updatedAt": "2024-04-10T12:00:00Z",
- "status": "ACTIVE",
- "plan": "PROFESSIONAL"
}
}Deletes account by id. Requires the X-Account-Id header.
| HTTP | error |
Meaning |
|---|---|---|
| 400 | MISSING_ACCOUNT_HEADER |
X-Account-Id header is missing. |
| 401 | INVALID_CREDENTIALS |
Partner access token missing, expired, or invalid. |
| 403 | INSUFFICIENT_SCOPE |
Access token lacks the required account/write scope. |
| 404 | ACCOUNT_NOT_FOUND |
No account exists with the given id, or it is not accessible to the partner. |
| 500 | INTERNAL_ERROR |
Unexpected server error. |
| id required | integer <int64> The ID of the account |
{- "success": true,
- "message": "Account deleted successfully",
- "id": 12345
}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"
}
}Creates a user in the specified account and company with the given role.
Requires the X-Account-Id header.
| HTTP | error |
Meaning |
|---|---|---|
| 400 | INVALID_REQUEST |
Request body is malformed or fails validation. |
| 400 | MISSING_ACCOUNT_HEADER |
X-Account-Id header is missing. |
| 400 | MAX_USERS_REACHED |
The account has reached the user limit for its current plan. |
| 401 | INVALID_CREDENTIALS |
Partner access token missing, expired, or invalid. |
| 403 | INSUFFICIENT_SCOPE |
Access token lacks the required user/write scope. |
| 404 | ACCOUNT_NOT_FOUND |
No account exists for the X-Account-Id header. |
| 404 | COMPANY_NOT_FOUND |
No company with the given companyId exists in the account. |
| 409 | USER_EXTERNAL_ID_ALREADY_EXISTS |
A user with the given externalId already exists in the account. |
| 409 | USER_EMAIL_ALREADY_EXISTS |
A user with the given email address already exists. |
| 500 | INTERNAL_ERROR |
Unexpected server error. |
| X-Account-Id required | integer <int64> Example: 12345 The unique identifier of the customer account to operate on. Required for all partner API requests. |
| companyId required | integer <int64> ID of the company within the account the user is placed in |
| role required | string (UserRole) Enum: "ADMIN" "USER" "CONTRIBUTOR" "INVESTOR" Role granted to the user within the account/company |
| externalId required | string External identifier for the user specified by the partner |
| email required | string <email> Email address of the user |
| firstName required | string First name of the user |
| lastName required | string Last name of the user |
| language | string (UserLanguage) Enum: "en-US" "de-DE" Preferred UI language of the user. |
{- "companyId": 67890,
- "role": "USER",
- "externalId": "user-jane-002",
- "email": "jane.smith@newclient.com",
- "firstName": "Jane",
- "lastName": "Smith"
}{- "success": true,
- "message": "User created successfully",
- "data": {
- "id": 56790,
- "accountId": 12345,
- "companyId": 67890,
- "role": "USER",
- "externalId": "user-jane-002",
- "email": "jane.smith@newclient.com",
- "firstName": "Jane",
- "lastName": "Smith",
- "createdAt": "2024-04-10T09:15:00Z",
- "status": "ACTIVE"
}
}Lists users belonging to the specified account. Requires the X-Account-Id header.
| HTTP | error |
Meaning |
|---|---|---|
| 400 | INVALID_REQUEST |
A query parameter is invalid. |
| 400 | MISSING_ACCOUNT_HEADER |
X-Account-Id header is missing. |
| 401 | INVALID_CREDENTIALS |
Partner access token missing, expired, or invalid. |
| 403 | INSUFFICIENT_SCOPE |
Access token lacks the required user/read scope. |
| 404 | ACCOUNT_NOT_FOUND |
No account exists for the X-Account-Id header, or it is not accessible to the partner. |
| 500 | INTERNAL_ERROR |
Unexpected server error. |
| page | integer >= 0 Default: 0 Page number (0-based) |
| pageSize | integer [ 1 .. 1000 ] Default: 50 Number of users per page |
| X-Account-Id required | integer <int64> Example: 12345 The unique identifier of the customer account to operate on. Required for all partner API requests. |
{- "success": true,
- "message": "Users retrieved successfully",
- "number": 0,
- "size": 50,
- "totalElements": 2,
- "totalPages": 1,
- "data": [
- {
- "id": 56789,
- "accountId": 12345,
- "companyId": 67890,
- "role": "ADMIN",
- "externalId": "user-john-001",
- "email": "john.doe@newclient.com",
- "firstName": "John",
- "lastName": "Doe",
- "createdAt": "2024-04-10T08:52:00Z",
- "status": "ACTIVE"
}, - {
- "id": 56790,
- "accountId": 12345,
- "companyId": 67890,
- "role": "USER",
- "externalId": "user-jane-002",
- "email": "jane.smith@newclient.com",
- "firstName": "Jane",
- "lastName": "Smith",
- "createdAt": "2024-04-10T09:15:00Z",
- "status": "ACTIVE"
}
]
}Retrieve a specific user by id. Requires the X-Account-Id header.
| HTTP | error |
Meaning |
|---|---|---|
| 400 | MISSING_ACCOUNT_HEADER |
X-Account-Id header is missing. |
| 401 | INVALID_CREDENTIALS |
Partner access token missing, expired, or invalid. |
| 403 | INSUFFICIENT_SCOPE |
Access token lacks the required user/read scope. |
| 404 | ACCOUNT_NOT_FOUND |
The account does not exist or is not accessible to the partner. |
| 404 | USER_NOT_FOUND |
No user exists with the given id in this account. |
| 500 | INTERNAL_ERROR |
Unexpected server error. |
| userId required | integer <int64> The ID of the user |
| X-Account-Id required | integer <int64> Example: 12345 The unique identifier of the customer account to operate on. Required for all partner API requests. |
{- "success": true,
- "message": "User retrieved successfully",
- "data": {
- "id": 56789,
- "accountId": 12345,
- "companyId": 67890,
- "role": "ADMIN",
- "externalId": "user-john-001",
- "email": "john.doe@newclient.com",
- "firstName": "John",
- "lastName": "Doe",
- "createdAt": "2024-04-10T08:52:00Z",
- "status": "ACTIVE"
}
}Partially updates a user. Only firstName and lastName are currently partner-mutable.
Requires the X-Account-Id header.
| HTTP | error |
Meaning |
|---|---|---|
| 400 | INVALID_REQUEST |
Request body is malformed or fails validation. |
| 400 | MISSING_ACCOUNT_HEADER |
X-Account-Id header is missing. |
| 401 | INVALID_CREDENTIALS |
Partner access token missing, expired, or invalid. |
| 403 | INSUFFICIENT_SCOPE |
Access token lacks the required user/write scope. |
| 404 | ACCOUNT_NOT_FOUND |
The account does not exist or is not accessible to the partner. |
| 404 | USER_NOT_FOUND |
No user exists with the given id in this account. |
| 500 | INTERNAL_ERROR |
Unexpected server error. |
| userId required | integer <int64> The ID of the user |
| X-Account-Id required | integer <int64> Example: 12345 The unique identifier of the customer account to operate on. Required for all partner API requests. |
| firstName | string First name of the user |
| lastName | string Last name of the user |
{- "firstName": "string",
- "lastName": "string"
}{- "success": true,
- "message": "User updated successfully",
- "data": {
- "id": 56789,
- "accountId": 12345,
- "companyId": 67890,
- "role": "ADMIN",
- "externalId": "user-john-001",
- "email": "john.doe@newclient.com",
- "firstName": "Jonathan",
- "lastName": "Doe",
- "createdAt": "2024-04-10T08:52:00Z",
- "status": "ACTIVE"
}
}Deletes a user. Requires the X-Account-Id header.
| HTTP | error |
Meaning |
|---|---|---|
| 400 | MISSING_ACCOUNT_HEADER |
X-Account-Id header is missing. |
| 401 | INVALID_CREDENTIALS |
Partner access token missing, expired, or invalid. |
| 403 | INSUFFICIENT_SCOPE |
Access token lacks the required user/write scope. |
| 404 | ACCOUNT_NOT_FOUND |
The account does not exist or is not accessible to the partner. |
| 404 | USER_NOT_FOUND |
No user exists with the given id in this account. |
| 409 | USER_CANNOT_BE_DELETED |
The user is the only remaining user in the account. |
| 409 | LAST_ADMIN_CANNOT_BE_DELETED |
The user is the only remaining admin in the account. |
| 500 | INTERNAL_ERROR |
Unexpected server error. |
| userId required | integer <int64> The ID of the user |
| X-Account-Id required | integer <int64> Example: 12345 The unique identifier of the customer account to operate on. Required for all partner API requests. |
{- "success": true,
- "message": "User deleted successfully",
- "id": 56789
}Retrieve 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
}
}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
}
}
}
}