Verifications
A verification is a booked accounting transaction: a header plus at least two entry lines whose debits and credits balance.
Scopes: accounting:read to read, verifications:write to modify.
Read
GET /user-companies/{company_id}/fiscal-years/{fiscal_year}/verifications
GET /user-companies/{company_id}/fiscal-years/{fiscal_year}/verifications/{verification_id}
Query parameters on the list endpoint:
Parameter |
Description |
|---|---|
|
|
|
|
|
Maximum number of verifications. |
|
Offset into the result set. |
A single verification is also reachable at company level:
GET /user-companies/{company_id}/verifications/{verification_id}
Warning
Listing verifications without a fiscal year — GET
/user-companies/{company_id}/verifications — is deprecated. Use the
fiscal-year scoped endpoint.
Create
POST /user-companies/{company_id}/verifications
Required fields
Field |
Type |
Description |
|---|---|---|
|
string |
Verification description. |
|
string |
Verification series code, uppercase alphanumeric, e.g. |
|
string |
|
|
array |
At least two entry objects. Total debit must equal total credit. |
Optional fields
Field |
Type |
Description |
|---|---|---|
|
bool |
Default |
|
bool |
Default |
Entry object
Field |
Type |
Description |
|---|---|---|
|
string |
Account code, 4 characters. Required. |
|
number |
Debit amount. Provide either |
|
number |
Credit amount. Provide either |
|
string |
Optional descriptive name for the account. |
|
string |
Optional transaction text for this line. |
|
bool |
Optional. Marks the line as struck, for changed booked verifications. |
|
bool |
Optional. Marks the line as added, for changed booked verifications. |
Example
{
"description": "Office supplies",
"series_code": "A",
"date": "2026-03-15",
"booked": false,
"entries": [
{ "account": "1930", "debit": 500.00, "account_name": "Bank" },
{ "account": "6110", "credit": 500.00, "account_name": "Office expenses" }
]
}
Responses
201 on success, with verification_id, series_code,
series_number, result and message. 400 on validation errors,
500 on server errors.
Update
PUT /user-companies/{company_id}/verifications/{verification_id}
Same JSON schema as POST. Modifying a booked verification is restricted; set
changed: true and mark individual lines with deleted or added.
Delete
DELETE /user-companies/{company_id}/verifications/{verification_id}
Deletes the verification if allowed — that is, if it is not booked, or if it is the last one in its series.
Practical notes
Balance is enforced. Total debit must equal total credit exactly. Round before you send; do not rely on the server to absorb a fractional difference.
The account must exist in the chart of accounts for the fiscal year the date falls in. Fetch the chart first if you are mapping from an external system. See Accounting.
The series must exist for the company and fiscal year. A series code that is not configured is rejected.
Prefer correcting over editing. Swedish bookkeeping law expects a booked
verification to stay as it is, with errors corrected by a new, offsetting
verification. Build your integration that way rather than around PUT.
Write limits are tight — 120 write requests per hour per key. An integration that posts one verification per transaction will hit that. Batch on your side.