Skip to content

Preview Reconciliation Endpoint

POST
/api/v1/budget/reconciliations/preview
curl --request POST \
--url https://example.com/api/v1/budget/reconciliations/preview \
--header 'Content-Type: application/json' \
--data '{ "account_id": 1, "statement_date": "2026-04-15", "statement_balance": 1, "opening_balance": 1, "write_snapshot": true, "replace_snapshot": false }'

Report the statement difference without writing anything.

A POST only because it takes a body.

Media typeapplication/json
ReconcileRequest

What the bank statement says. statement_balance is signed: a statement may close overdrawn (such a reconcile locks its rows but writes no snapshot).

object
account_id
required
Account Id
integer
statement_date
required
Statement Date
string format: date
statement_balance
required
Any of:
number
opening_balance
Any of:
number
write_snapshot
Write Snapshot
boolean
default: true
replace_snapshot
Replace Snapshot
boolean

Successful Response

Media typeapplication/json
ReconcilePreviewOut

The difference a reconcile would report. With anchor_kind == "none" the balance fields are null and the client asks for an opening balance.

object
account_id
required
Account Id
integer
currency
required
Currency
string
statement_date
required
Statement Date
string format: date
statement_balance
required
Statement Balance
string
anchor_kind
required
Anchor Kind
string
Allowed values: reconcile snapshot opening none
anchor_date
Any of:
string format: date
anchor_balance
Any of:
string
included_count
Any of:
integer
included_sum
Any of:
string
pending_count
Any of:
integer
stale_count
Any of:
integer
ledger_balance
Any of:
string
difference
Any of:
string
existing_snapshot_balance
Any of:
string

Example

{
"anchor_kind": "reconcile"
}

Validation Error

Media typeapplication/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationError
object
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
input
Input
ctx
Context
object

Example generated

{
"detail": [
{
"loc": [
"example"
],
"msg": "example",
"type": "example",
"input": "example",
"ctx": {}
}
]
}