Overview
Accounts are the rows in an organization’s chart of accounts. Each account has anumber (the code your customer’s financial system uses, e.g. 5010) and a name (the human-readable label, e.g. Travel expenses). The chart-of-accounts lifecycle is:
- Provision the accounts — POST one per ledger code your customer uses.
- Map accounts to expense categories — done in the Findity admin UI or via the categories endpoints. The mapping decides which account number ends up on the debit, credit, or VAT row of a voucher.
- Keep them in sync — list, update, or delete accounts as the customer’s chart of accounts evolves.
Prerequisites
- Complete Authentication and obtain an admin-scoped bearer token.
- Provision the organization first — see Admin API — Getting started. The chart-of-accounts endpoints require the organization’s internal
id(32-character hex), which you can read from the response ofGET /organizations/externalid/{externalId}/.
Key concepts
API endpoints
All endpoints live on the v1 admin API. Examples in this guide use the stage host — switch to the production host (api.findity.com) only when you’re ready to go live.
cURL
Required headers
Step 1 — List accounts
Retrieve every account in an organization’s chart of accounts. The response is wrapped in a{meta, data} envelope.
GET /organizations/{organizationId}/accounts
cURL
200 OK)
JSON
meta.total is the total number of accounts; meta.count is the number of items returned in this response.
Step 2 — Create an account
Add a new account to the chart of accounts. Returns201 Created with the new account’s id.
POST /organizations/{organizationId}/accounts
Request body fields
cURL
201 Created)
JSON
meta is null on a freshly created account and may be populated by Findity later with auxiliary attributes (currently abbreviation and capabilities).
Step 3 — Get a single account
Retrieve one account by its internalid.
GET /organizations/{organizationId}/accounts/{accountId}
cURL
200 OK)
JSON
Step 4 — Update an account
Modify an existing account. The request body must include the account’sid, and it must match the accountId in the URL — otherwise the call returns 400 INVALID_ID.
PUT /organizations/{organizationId}/accounts/{accountId}
Request body fields
cURL
200 OK)
JSON
Step 5 — Delete an account
Remove an account from the chart of accounts. Returns204 No Content with an empty response body on success.
DELETE /organizations/{organizationId}/accounts/{accountId}
Deleting an account that is currently mapped to one or more expense categories will break the accounting flow for
those categories — voucher generation will fail until the categories are remapped. Verify no active categories
reference the account before deleting.
cURL
204 No Content)
The response body is empty.
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 decides which account number appears in the debit, credit, or VAT row of the voucher output. Administrators can configure these mappings through:- Admin web client — Settings → Expense management → Expense categories, select the account for each category.
- Admin API — Use the categories endpoints to update account mappings programmatically (see the Expense API guide).
- A debit account — the accounting account the expense is recorded against.
- A salary type — for payroll integration, if applicable.
If the organization uses an accounting recipient connected through the API, account mappings on expense categories can be synced from the external system automatically. 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 like:
For details on how vouchers are structured and grouped, see Voucher structure.
Common integration patterns
Sync from an ERP or accounting system. Keep the chart of accounts in sync with your ERP on a schedule (e.g. nightly):- Export the current account list from your financial system.
- Call
GET /organizations/{organizationId}/accountsto retrieve existing accounts in Findity. - Diff the two lists and call
POSTfor new accounts,PUTfor changed accounts, andDELETEfor removed accounts.
- Create the organization. If you use a template org with pre-configured accounts, accounts are inherited and you can skip the next step.
- Otherwise, call
POST /organizations/{organizationId}/accountsfor each account in the customer’s chart of accounts. - Map accounts to expense categories through the admin UI or the categories API.
- Configure salary types if the organization integrates with a payroll system.
- Set up the accounting recipient to enable voucher export.
GET /organizations/{organizationId}/accountsto list all current accounts.POSTto create the new accounts.- Update 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 confirming the new account numbers appear in the voucher rows.
Error handling
Errors return a JSON envelope:JSON
requestId value is useful to include when reporting a problem to Findity support.

