Bank against books: what the loaded statements say a cash account held, and what the ledger says
const url = 'https://example.com/v1/entities/example/reconciliation?as_of=example';const options = {method: 'GET'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://example.com/v1/entities/example/reconciliation?as_of=example'Compare statement and ledger balances at any date, not only where the bank printed a balance.
Balances are always cumulative to as_of. from narrows only the coverage answer (“which days of the
period I am looking at have no statement loaded”). A balance is not a period figure, so from never
changes it.
Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”The entity this path is relative to
The entity this path is relative to
Query Parameters
Section titled “Query Parameters”Responses
Section titled “Responses”Successful Response
object
One cash account and commodity at one date, from both sides.
statement_micros is the loaded statements’ own arithmetic: the earliest declared opening plus every line
up to as_of. asserted_micros is a closing balance the bank actually printed for that exact date,
when there is one, reported beside the derived figure rather than instead of it. null anywhere means
“not knowable here”, never zero.
agrees and explained answer different questions. A statement can balance to the penny with every
line unclassified, so the count of unexplained lines is reported beside the difference, not folded into it.
object
Every loaded line through as_of has a live explanation
Days of the period no loaded statement covers
object
object
Example generated
{ "entity_id": "example", "legal_name": "example", "base_currency": "example", "snapshot_seq": 1, "as_of": "example", "start": "example", "agrees": true, "explained": true, "accounts": [ { "account_id": "example", "account_path": "example", "commodity": "example", "as_of": "example", "statement_micros": "example", "ledger_micros": "example", "asserted_micros": "example", "difference_micros": "example", "agrees": true, "statement_ids": [ "example" ], "line_count": 1, "unexplained_lines": 1, "unexplained_micros": "example", "explained": true, "uncovered": [ { "start": "example", "end": "example" } ] } ], "links": { "additionalProperty": "example" }}Bad Request
object
Example generated
{ "error": { "code": "example", "message": "example", "retryable": true, "details": [ {} ], "request_id": "example", "next_action": {} }}Unauthorized
object
Example generated
{ "error": { "code": "example", "message": "example", "retryable": true, "details": [ {} ], "request_id": "example", "next_action": {} }}Forbidden
object
Example generated
{ "error": { "code": "example", "message": "example", "retryable": true, "details": [ {} ], "request_id": "example", "next_action": {} }}Not Found
object
Example generated
{ "error": { "code": "example", "message": "example", "retryable": true, "details": [ {} ], "request_id": "example", "next_action": {} }}Conflict
object
Example generated
{ "error": { "code": "example", "message": "example", "retryable": true, "details": [ {} ], "request_id": "example", "next_action": {} }}Precondition Failed
object
Example generated
{ "error": { "code": "example", "message": "example", "retryable": true, "details": [ {} ], "request_id": "example", "next_action": {} }}Unprocessable Content
object
Example generated
{ "error": { "code": "example", "message": "example", "retryable": true, "details": [ {} ], "request_id": "example", "next_action": {} }}Internal Server Error
object
Example generated
{ "error": { "code": "example", "message": "example", "retryable": true, "details": [ {} ], "request_id": "example", "next_action": {} }}Service Unavailable
object
Example generated
{ "error": { "code": "example", "message": "example", "retryable": true, "details": [ {} ], "request_id": "example", "next_action": {} }}