Charts of accounts
Manage accounting accounts for an organization through the Findity Admin API — used for expense categorization, bookkeeping, and payroll.
Manage the chart of accounts for an organization through the Findity Admin API — defining the accounting accounts used for expense categorization, bookkeeping, and payroll.
Key Concepts
A chart of accounts is the set of accounting accounts that an organization uses to map expenses to the correct debit, credit, and VAT entries in their financial system. Findity automatically assigns expenses an accounting account or salary type based on the expense category, but the accounts themselves must be configured first.
Each account has the following key properties:
| Property | Description |
|---|---|
id | Unique internal identifier for the account |
accountNumber | The account number used in the organization's financial system (e.g., 5010, 2640) |
accountName | Display name of the account (e.g., "Travel expenses", "Input VAT") |
type | Whether the account is used for debit (expense), credit (payment), or VAT entries |
active | Whether the account is currently available for use |
locked | Whether the account is locked from editing (locked accounts can be unlocked via a dedicated endpoint) |
How Accounts Are Used
Accounts serve two main purposes:
- Expense categories — Each expense category (e.g., "Travel", "Meals", "Office supplies") is mapped to a debit account that determines where the expense is recorded in the general ledger
- Payment methods — Credit accounts are used for the payment side of the entry (e.g., corporate card, employee reimbursement)
When an expense report is exported as a voucher through the Connect API, Findity generates voucher rows containing the mapped account numbers. A typical expense produces at least one debit row, one credit row, and one VAT row.
The chart of accounts must be configured before expense categories can be properly mapped. If your organization uses an accounting recipient connected through the API, these accounts can be synced automatically from the external system.
API Endpoints
All endpoints are available under the Admin API base URL:
https://expense.findity.com/api/v1/admin
The following operations are available:
| Operation | Method | Endpoint |
|---|---|---|
| List accounts | GET | /organizations/{id}/accounts |
| Get a single account | GET | /organizations/{id}/accounts/{accountId} |
| Create an account | POST | /organizations/{id}/accounts |
| Update an account | PUT | /organizations/{id}/accounts/{accountId} |
| Unlock a locked account | PUT | /organizations/{id}/accounts/{accountId}/unlock |
| Delete an account | DELETE | /organizations/{id}/accounts/{accountId} |
Required Headers
Include these headers with every request:
| Header | Value |
|---|---|
Content-Type | application/json |
Authorization | Bearer {access_token} |
Step 1 — List Accounts
Retrieve all accounts in an organization's chart of accounts.
GET /organizations/{id}/accountsThis returns an array of account objects. Use this to discover existing accounts before creating new ones, or to verify that the chart of accounts matches your financial system.
Step 2 — Create an Account
Add a new account to the organization's chart of accounts.
POST /organizations/{id}/accountsRequest Body Properties
| Property | Type | Required | Description |
|---|---|---|---|
accountNumber | string | Yes | The account number in your financial system |
accountName | string | Yes | Display name for the account |
type | string | No | Account type (debit, credit, or VAT) |
active | boolean | No | Whether the account is available for use (default: true) |
Example: Create Accounts
{
"accountNumber": "5010",
"accountName": "Travel expenses",
"active": true
}{
"accountNumber": "2640",
"accountName": "Input VAT",
"active": true
}Step 3 — Update an Account
Modify an existing account's properties.
PUT /organizations/{id}/accounts/{accountId}Example: Update an Account Name
{
"accountNumber": "5010",
"accountName": "Travel and accommodation expenses",
"active": true
}Step 4 — Get a Single Account
Retrieve a specific account by its ID.
GET /organizations/{id}/accounts/{accountId}Step 5 — Delete an Account
Remove an account from the chart of accounts.
DELETE /organizations/{id}/accounts/{accountId}Deleting an account that is currently mapped to expense categories or payment methods will break the accounting flow for those categories. Verify that no active categories reference the account before deleting it.
Unlocking a Locked Account
Accounts can become locked to prevent accidental modifications. To unlock a locked account, use the dedicated unlock endpoint:
PUT /organizations/{id}/accounts/{accountId}/unlockThis sets the locked flag to false, allowing the account to be edited or deleted again.
Mapping Accounts to Expense Categories
After creating accounts, map them to expense categories so Findity can generate the correct voucher rows on export. The mapping determines which account number appears in the debit, credit, and VAT rows of the voucher output.
Administrators can configure these mappings through:
- Admin web client — Under Settings > Expense management > Expense categories, select the account for each category
- Admin API — Use the categories endpoints to update account mappings programmatically
Each expense category can be linked to:
- A debit account (the accounting account the expense is recorded to)
- A salary type (for payroll integration, if applicable)
If your report recipient is an accounting system connected through the API, account mappings on expense categories can be updated automatically by the external system. For manual recipients, administrators manage these mappings through the admin interface.
Relationship to Vouchers
When expense reports are exported through the Connect API, Findity uses the chart of accounts to generate structured voucher data. Each expense produces voucher rows containing:
| Voucher Row | Account Source | Description |
|---|---|---|
| Debit row | Expense category's mapped account | Records the expense in the general ledger |
| Credit row | Payment method's mapped account | Records the payment source (e.g., corporate card, reimbursement) |
| VAT row | VAT account | Records the tax amount separately (when vatType is SEPARATELY) |
For more details on how vouchers are structured and grouped, see the Voucher structure documentation.
Common Integration Patterns
Syncing from an ERP or Accounting System
To keep the chart of accounts in sync with your ERP or accounting system:
- Export the current account list from your financial system
- Call
GET /organizations/{id}/accountsto retrieve existing accounts in Findity - Compare the two lists and call
POST /organizations/{id}/accountsfor new accounts,PUT /organizations/{id}/accounts/{accountId}for changed accounts, andDELETE /organizations/{id}/accounts/{accountId}for removed accounts - Run this sync on a schedule (e.g., nightly) to keep both systems aligned
Initial Organization Setup
When onboarding a new organization that requires accounting:
- Create the organization with a
templateOrganizationIdif a template with pre-configured accounts exists - If no template is available, call
POST /organizations/{id}/accountsfor each account in the organization's chart of accounts - Map accounts to expense categories through the admin interface or API
- Configure salary types if the organization integrates with a payroll system
- Set up the accounting recipient to enable voucher export
Migrating Account Numbers
When an organization changes its accounting system or restructures its chart of accounts:
- Call
GET /organizations/{id}/accountsto list all current accounts - Call
POST /organizations/{id}/accountsto create the new accounts - Update the expense category mappings to point to the new account numbers
- Deactivate or delete the old accounts once all active expense reports have been exported
- Verify the migration by exporting a test voucher and checking that the new account numbers appear in the voucher rows
Updated about 7 hours ago
