Budgets & spend
Budgets, transactions, costs, tax and bank accounts — track spend and reconcile automatically.
Budget
Endpoints
| GET | /budgets | Retrieves the collection of Budget resources. |
| POST | /budgets | Creates a Budget resource. |
| GET | /budgets/{id} | Retrieves a Budget resource. |
| PATCH | /budgets/{id} | Updates the Budget resource. |
| DELETE | /budgets/{id} | Removes the Budget resource. |
| POST | /budgets/{id}/copy-plan-from-year | Creates a Budget resource. |
| GET | /budgets/{id}/employee-pnl | Retrieves a Budget resource. |
| PUT | /budgets/{id}/plan | Replaces the Budget resource. |
| GET | /budgets/{id}/pnl-by-tags | Retrieves a Budget resource. |
| GET | /budgets/{id}/pnl-by-tags-drilldown | Retrieves a Budget resource. |
Schema fields
| Field | Type | Description |
|---|---|---|
| name* | string | |
| type* | string | |
| granularity | string | |
| budgetGroup | string,null (iri-reference) | |
| attributeSet | string,null (iri-reference) | |
| dateFrom | string,null (date-time) | |
| dateTo | string,null (date-time) | |
| displayPricePerSqm | boolean | Opt-in flag for the P&L-by-tags preview's price-per-sqm column. When true, the costsByProject section is expected to surface a surface-aware price view in addition to absolute amounts. The actual surface lookup (Project -> assigned Property/Asset -> surface AttributeValue) lands after the post-Horizon-2026-04-30 co-design pass; this flag is the persistent toggle so the option exists today. |
| outgoingTags | array | Tag-mode filter (outgoing/income side). OR semantics — an invoice matches if it carries at least one of these tags. Replaces the legacy single $outgoingTag ManyToOne (kept as a virtual property for backwards-compat during the FE rollout window). |
| incomingTags | array | |
| amountStrategy* | string | |
| actualMode | string | |
| planningMode | stringnull | |
| viewMode | stringnull | Explicit planning-vs-observation intent, decoupled from planningMode (the scope). Null on legacy budgets: BudgetNormalizer::resolveViewMode() falls back to inferring the mode from plan artifacts when this is unset, so existing budgets are unchanged. Write-only groups — the read value is emitted by BudgetNormalizer, which honours this field first. |
| planSource | string | |
| config | array | |
| includePeopleCosts | booleannull | |
| includeEmployeeCosts | booleannull | |
| includePeopleIncome | booleannull | |
| outgoingTag | string,null (iri-reference) | Legacy single-tag alias — read returns the first element of $outgoingTags (or null). Write REPLACES the collection with a single-element array (or empty when null). Exists only to keep the still-deployed old frontend working through PR 3's rollout. |
| incomingTag | string,null (iri-reference) |
Budget Transaction
Endpoints
| GET | /budget-transactions | Retrieves the collection of BudgetTransaction resources. |
| POST | /budget-transactions | Creates a BudgetTransaction resource. |
| GET | /budget-transactions/{id} | Retrieves a BudgetTransaction resource. |
| PATCH | /budget-transactions/{id} | Updates the BudgetTransaction resource. |
| DELETE | /budget-transactions/{id} | Removes the BudgetTransaction resource. |
Schema fields
| Field | Type | Description |
|---|---|---|
| budget* | string (iri-reference) | |
| transaction* | string (iri-reference) | |
| employee | string,null (iri-reference) | |
| amount | numbernull |
Budget Group
Endpoints
| GET | /budget-groups | Retrieves the collection of BudgetGroup resources. |
| POST | /budget-groups | Creates a BudgetGroup resource. |
| GET | /budget-groups/{id} | Retrieves a BudgetGroup resource. |
| PATCH | /budget-groups/{id} | Updates the BudgetGroup resource. |
| DELETE | /budget-groups/{id} | Removes the BudgetGroup resource. |
Schema fields
| Field | Type | Description |
|---|---|---|
| name* | string |
Cost
Endpoints
| GET | /contractors | Retrieves the collection of Cost resources. |
| POST | /contractors | Creates a Cost resource. |
| GET | /contractors/{id} | Retrieves a Cost resource. |
| PATCH | /contractors/{id} | Updates the Cost resource. |
| DELETE | /contractors/{id} | Removes the Cost resource. |
| POST | /contractors/nip-validation | Creates a Cost resource. |
| GET | /contractors/search | Retrieves the collection of Cost resources. |
| GET | /costs | Retrieves the collection of Cost resources. |
| POST | /costs | Creates a Cost resource. |
| GET | /costs/{id} | Retrieves a Cost resource. |
| PATCH | /costs/{id} | Updates the Cost resource. |
| GET | /costs/{id}/documents | Retrieves a Cost resource. |
| GET | /costs/payment-due/{date} | Get by path parameters |
| GET | /suppliers | Retrieves the collection of Cost resources. |
| POST | /suppliers | Creates a Cost resource. |
| GET | /suppliers/{id} | Retrieves a Cost resource. |
| PATCH | /suppliers/{id} | Updates the Cost resource. |
| DELETE | /suppliers/{id} | Removes the Cost resource. |
| POST | /suppliers/nip-validation | Creates a Cost resource. |
| GET | /suppliers/search | Retrieves the collection of Cost resources. |
Schema fields
| Field | Type | Description |
|---|---|---|
| costGroup* | string (iri-reference) | |
| allowDuplicate | booleannull | Not persisted (no ORM\Column): an escape hatch for POST /contractors only, mirroring Client::$allowDuplicate. When true, ContractorCreateProcessor:: refuseIfDuplicate() skips the duplicate-party guard so a genuinely distinct same-name contractor can be created on purpose. |
| ownerEmployee | string,null (iri-reference) | |
| tinType* | string | |
| tin | stringnull | |
| tinCountry | string,null (iri-reference) | |
| cyclic | boolean | |
| paymentDeadline | integernull | |
| name* | string | |
| description | stringnull | |
| matchRegex | stringnull | |
| requireAttachment | booleannull | |
| taxAmount | stringnull | |
| notIncludeInChart | boolean | |
| eInvoicingReferenceNumber | stringnull | |
| eInvoicingSourceXmlUrl | stringnull | |
| eInvoicingVisualUrl | stringnull | |
| contractorGroup | string,null (iri-reference) |
Transaction
Endpoints
| GET | /transactions | Retrieves the collection of Transaction resources. |
| POST | /transactions | Creates a Transaction resource. |
| GET | /transactions/{id} | Retrieves a Transaction resource. |
| PATCH | /transactions/{id} | Updates the Transaction resource. |
| DELETE | /transactions/{id} | Removes the Transaction resource. |
| GET | /transactions/{id}/suggestions | Retrieves the collection of Transaction resources. |
| POST | /transactions/{id}/suggestions/{suggestionId}/apply | Creates a Transaction resource. |
| POST | /transactions/import | Creates a Transaction resource. |
| GET | /transactions/search | Retrieves the collection of Transaction resources. |
| GET | /transactions/unassigned | Retrieves the collection of Transaction resources. |
| GET | /transactions/with-problems | Retrieves the collection of Transaction resources. |
Schema fields
| Field | Type | Description |
|---|---|---|
| id | string | |
| bankAccount | string (iri-reference) | |
| employeeOwner | string,null (iri-reference) | |
| hash | string | |
| source | stringnull | Where this row came from. Written at creation by whichever importer or creator made it — NEVER inferred from the row's shape. |
| type | string | |
| cost | string,null (iri-reference) | |
| counterparty | string,null (iri-reference) | |
| counterpartyRole | stringnull | |
| statementNumber | integer | |
| operationNumber | stringnull | |
| description | string | |
| currency | string | |
| amount | number | |
| endingBalance | number | |
| orderDate | string (date-time) | |
| execDate | string (date-time) | |
| relatedDate | string,null (date-time) | |
| ignored* | integer | |
| note | stringnull | |
| hasDetectedProblems | booleannull | |
| transactionAttachments | array | |
| additionalAttachments | array | Inverse of TransactionAttachment.additionalTransactions: invoice documents this transaction is linked to as an ADDITIONAL payment (one invoice paid across several payments). Lets the transaction recognize the link for completeness, same as a primary attachment. |
| invoiceTransactions | array | |
| properties | array | |
| budgetTransactions | array | |
| projectTransactions | array | |
| employeeTransactions | array | |
| createdAt | string (date-time) | |
| updatedAt | string (date-time) | |
| contractor | string,null (iri-reference) | |
| connectedMonth | string (date-time) | |
| relatedEmployee | string,null (iri-reference) |
Bank Account
Endpoints
| GET | /bank-accounts | Retrieves the collection of BankAccount resources. |
| POST | /bank-accounts | Creates a BankAccount resource. |
| GET | /bank-accounts/{id} | Retrieves a BankAccount resource. |
| PATCH | /bank-accounts/{id} | Updates the BankAccount resource. |
Schema fields
| Field | Type | Description |
|---|---|---|
| bank | string,null (iri-reference) | |
| type* | string | |
| default | boolean | |
| hidden | boolean | |
| name* | string | |
| number | stringnull | |
| prefix | stringnull | |
| currency* | string,null (iri-reference) | |
| defaultImportFormat* | string |
Tax Group
Endpoints
| GET | /tax-groups | Retrieves the collection of TaxGroup resources. |
| POST | /tax-groups | Creates a TaxGroup resource. |
| GET | /tax-groups/{id} | Retrieves a TaxGroup resource. |
| PATCH | /tax-groups/{id} | Updates the TaxGroup resource. |
Schema fields
| Field | Type | Description |
|---|---|---|
| name* | string | |
| isDefault | boolean |
Currency
Endpoints
| GET | /currencies | Retrieves the collection of Currency resources. |
| GET | /currencies/{!sourceCurrency}/rates/{!targetCurrency}/{date} | Retrieves the collection of Currency resources. |
| GET | /currencies/{id} | Retrieves a Currency resource. |
Schema fields
| Field | Type | Description |
|---|---|---|
| id* | string |
Initial Budget
Endpoints
| GET | /initial-budgets | Retrieves the collection of InitialBudget resources. |
| POST | /initial-budgets | Creates a InitialBudget resource. |
| GET | /initial-budgets/{id} | Retrieves a InitialBudget resource. |
| PATCH | /initial-budgets/{id} | Updates the InitialBudget resource. |
| DELETE | /initial-budgets/{id} | Removes the InitialBudget resource. |
| GET | /initial-budgets/{id}/contract-comparison | Retrieves a InitialBudget resource. |
| GET | /initial-budgets/{id}/contract-comparison/{tagDefinitionId}/breakdown | Retrieves a InitialBudget resource. |
Schema fields
| Field | Type | Description |
|---|---|---|
| project | string (iri-reference) | |
| name | string | |
| notes | stringnull |
Initial Budget Item
Endpoints
| GET | /initial-budget-items | Retrieves the collection of InitialBudgetItem resources. |
| POST | /initial-budget-items | Creates a InitialBudgetItem resource. |
| GET | /initial-budget-items/{id} | Retrieves a InitialBudgetItem resource. |
| PATCH | /initial-budget-items/{id} | Updates the InitialBudgetItem resource. |
| DELETE | /initial-budget-items/{id} | Removes the InitialBudgetItem resource. |
Schema fields
| Field | Type | Description |
|---|---|---|
| id | string | |
| name | string | |
| plannedAmount | stringnull | |
| tagDefinition | string,null (iri-reference) | |
| unit | stringnull | |
| quantity | stringnull | |
| sortOrder | integer |
Budget Period
Endpoints
| GET | /budget-periods | Retrieves the collection of BudgetPeriod resources. |
| POST | /budget-periods | Creates a BudgetPeriod resource. |
| GET | /budget-periods/{id} | Retrieves a BudgetPeriod resource. |
| PATCH | /budget-periods/{id} | Updates the BudgetPeriod resource. |
| DELETE | /budget-periods/{id} | Removes the BudgetPeriod resource. |
Schema fields
| Field | Type | Description |
|---|---|---|
| id | string | |
| periodKey | string | |
| baseAmount | stringnull | |
| linearGrowth | stringnull | |
| exponentialGrowthBps | integernull | |
| unitGrowth | stringnull | |
| plannedIncome | stringnull |
Budget Employee
Endpoints
| GET | /budget-employees | Retrieves the collection of BudgetEmployee resources. |
| POST | /budget-employees | Creates a BudgetEmployee resource. |
| GET | /budget-employees/{id} | Retrieves a BudgetEmployee resource. |
| PATCH | /budget-employees/{id} | Updates the BudgetEmployee resource. |
| DELETE | /budget-employees/{id} | Removes the BudgetEmployee resource. |
Schema fields
| Field | Type | Description |
|---|---|---|
| id | string | |
| budget* | object | |
| employee* | string (iri-reference) | |
| position | string | |
| positionName | string |
Budget Contract
Endpoints
| GET | /budget-contracts | Retrieves the collection of BudgetContract resources. |
| POST | /budget-contracts | Creates a BudgetContract resource. |
| GET | /budget-contracts/{id} | Retrieves a BudgetContract resource. |
| DELETE | /budget-contracts/{id} | Removes the BudgetContract resource. |
Schema fields
| Field | Type | Description |
|---|---|---|
| id | string | |
| contract | string (iri-reference) |
Budget Contractor
Endpoints
| GET | /budget-contractors | Retrieves the collection of BudgetContractor resources. |
| POST | /budget-contractors | Creates a BudgetContractor resource. |
| GET | /budget-contractors/{id} | Retrieves a BudgetContractor resource. |
| DELETE | /budget-contractors/{id} | Removes the BudgetContractor resource. |
Schema fields
| Field | Type | Description |
|---|---|---|
| budget* | string (iri-reference) | |
| contractor* | string (iri-reference) |
Budget Invoice
Endpoints
| GET | /budget-invoices | Retrieves the collection of BudgetInvoice resources. |
| POST | /budget-invoices | Creates a BudgetInvoice resource. |
| GET | /budget-invoices/{id} | Retrieves a BudgetInvoice resource. |
| DELETE | /budget-invoices/{id} | Removes the BudgetInvoice resource. |
Schema fields
| Field | Type | Description |
|---|---|---|
| budget* | string (iri-reference) | |
| invoice* | string (iri-reference) | |
| amountNet | stringnull |
Budget Project
Endpoints
| GET | /budget-projects | Retrieves the collection of BudgetProject resources. |
| POST | /budget-projects | Creates a BudgetProject resource. |
| GET | /budget-projects/{id} | Retrieves a BudgetProject resource. |
| DELETE | /budget-projects/{id} | Removes the BudgetProject resource. |
Schema fields
| Field | Type | Description |
|---|---|---|
| id | string | |
| budget* | object | |
| project* | string (iri-reference) | |
| createdAt | string (date-time) |
Budget Activity Item
Endpoints
| GET | /budget-activity | Retrieves the collection of BudgetActivityItem resources. |
Schema fields
| Field | Type | Description |
|---|---|---|
| type | string | |
| state | string | |
| direction | string | |
| label | string | |
| amount | number | |
| date | stringnull |
Budget Alert Item
Endpoints
| GET | /budget-alerts | Retrieves the collection of BudgetAlertItem resources. |
Schema fields
| Field | Type | Description |
|---|---|---|
| key | string | |
| type | string | |
| severity | string | |
| title | string | |
| description | string | |
| period | stringnull | |
| dismissed | boolean |
Cost Group
Endpoints
| GET | /cost-groups | Retrieves the collection of CostGroup resources. |
| POST | /cost-groups | Creates a CostGroup resource. |
| GET | /cost-groups/{id} | Get cost group chart |
| PATCH | /cost-groups/{id} | Updates the CostGroup resource. |
| GET | /cost-groups/{id}/chart | Get cost group chart |
| POST | /cost-groups/{id}/merge | Merge cost groups |
| POST | /cost-groups/assign-icons-ai | Assign cost group icons via AI |
| GET | /cost-groups/chart | Get cost groups chart |
Schema fields
| Field | Type | Description |
|---|---|---|
| id | integer | |
| type* | string | |
| name* | string | |
| description | stringnull | |
| icon | stringnull | |
| accoutancy_reference | stringnull | |
| costs | array | |
| createdAt | string (date-time) | |
| updatedAt | string (date-time) | |
| possibleTypes | string |
Tax Rule
Endpoints
| GET | /tax-rules | Retrieves the collection of TaxRule resources. |
| POST | /tax-rules | Creates a TaxRule resource. |
| GET | /tax-rules/{id} | Retrieves a TaxRule resource. |
| PATCH | /tax-rules/{id} | Updates the TaxRule resource. |
| DELETE | /tax-rules/{id} | Removes the TaxRule resource. |
Schema fields
| Field | Type | Description |
|---|---|---|
| id | string | |
| country* | string (iri-reference) | |
| taxAmount* | string |
Bank
Endpoints
| GET | /banks | Retrieves the collection of Bank resources. |
| POST | /banks | Creates a Bank resource. |
| GET | /banks/{id} | Retrieves a Bank resource. |
| PATCH | /banks/{id} | Updates the Bank resource. |
Schema fields
| Field | Type | Description |
|---|---|---|
| name | string | |
| swift* | string |
Transaction Attachment
Endpoints
| GET | /transaction-attachments | Retrieves the collection of TransactionAttachment resources. |
| POST | /transaction-attachments | Creates a TransactionAttachment resource. |
| GET | /transaction-attachments/{id} | Retrieves a TransactionAttachment resource. |
| PATCH | /transaction-attachments/{id} | Updates the TransactionAttachment resource. |
| DELETE | /transaction-attachments/{id} | Removes the TransactionAttachment resource. |
| POST | /transaction-attachments/{id}/apply-suggestion | Creates a TransactionAttachment resource. |
| POST | /transaction-attachments/{id}/apply-supplier-suggestion | Creates a TransactionAttachment resource. |
| POST | /transaction-attachments/{id}/approve | Creates a TransactionAttachment resource. |
| POST | /transaction-attachments/{id}/cascade-preview | Creates a TransactionAttachment resource. |
| POST | /transaction-attachments/{id}/detach | Creates a TransactionAttachment resource. |
| GET | /transaction-attachments/{id}/documents | Retrieves a TransactionAttachment resource. |
| POST | /transaction-attachments/{id}/manual-match | Creates a TransactionAttachment resource. |
| POST | /transaction-attachments/{id}/mark-manual-paid | Creates a TransactionAttachment resource. |
| GET | /transaction-attachments/{id}/match-candidates | Retrieves the collection of TransactionAttachment resources. |
| POST | /transaction-attachments/{id}/prefill-project-allocations | Creates a TransactionAttachment resource. |
| POST | /transaction-attachments/{id}/prefill-project-allocations-by-cascade | Creates a TransactionAttachment resource. |
| POST | /transaction-attachments/{id}/prefill-project-allocations-by-meter | Creates a TransactionAttachment resource. |
| POST | /transaction-attachments/{id}/reject | Creates a TransactionAttachment resource. |
| POST | /transaction-attachments/{id}/replace-project-allocations | Creates a TransactionAttachment resource. |
| POST | /transaction-attachments/{id}/settle-without-transaction | Creates a TransactionAttachment resource. |
| POST | /transaction-attachments/{id}/submit-for-approval | Creates a TransactionAttachment resource. |
| GET | /transaction-attachments/{id}/suggestions | Retrieves the collection of TransactionAttachment resources. |
| GET | /transaction-attachments/{id}/suggestions-debug | Retrieves a TransactionAttachment resource. |
| POST | /transaction-attachments/{id}/suggestions/{suggestionId}/apply | Creates a TransactionAttachment resource. |
| POST | /transaction-attachments/{id}/suggestions/accept-all | Creates a TransactionAttachment resource. |
| POST | /transaction-attachments/{id}/unlink-transaction | Creates a TransactionAttachment resource. |
| POST | /transaction-attachments/{id}/unmark-manual-paid | Creates a TransactionAttachment resource. |
| POST | /transaction-attachments/{id}/unsettle-without-transaction | Creates a TransactionAttachment resource. |
| POST | /transaction-attachments/{id}/withdraw-approval | Creates a TransactionAttachment resource. |
| POST | /transaction-attachments/create | Creates a TransactionAttachment resource. |
| POST | /transaction-attachments/create-base64 | Creates a TransactionAttachment resource. |
| GET | /transaction-attachments/pending-approval | Retrieves the collection of TransactionAttachment resources. |
| GET | /transaction-attachments/search | Retrieves the collection of TransactionAttachment resources. |
Schema fields
| Field | Type | Description |
|---|---|---|
| id | integer | |
| amount | integernull | |
| name | string | The DISPLAY name — the filename the user uploaded (#3381). |
| invoiceNumber | stringnull | The purchase document number, when one is known (#3381). |
| receivedAt | string (date-time) | |
| status | string |
Transaction Attachment Invoice Line
Endpoints
| POST | /transaction-attachment-invoice-lines | Creates a TransactionAttachmentInvoiceLine resource. |
| PATCH | /transaction-attachment-invoice-lines/{id} | Updates the TransactionAttachmentInvoiceLine resource. |
| DELETE | /transaction-attachment-invoice-lines/{id} | Removes the TransactionAttachmentInvoiceLine resource. |
Schema fields
| Field | Type | Description |
|---|---|---|
| id | integer | |
| transactionAttachment | string (iri-reference) | |
| position | integer | |
| description | stringnull | |
| quantity | stringnull | |
| unitPrice | stringnull | |
| amount | stringnull | |
| taxRate | stringnull | |
| currency | stringnull | |
| project | string,null (iri-reference) | |
| createdAt | string (date-time) | |
| updatedAt | string (date-time) |