Skip to content

List a loan's reconciliation runs

GET
/v1/loans/{ref}/reconciliation
curl --request GET \
--url http://localhost:8080/v1/loans/example/reconciliation

Returns every reconciliation run for the loan with its ruleset version, the thresholds in force and the summary counts. Runs are never edited: a re-run after documents change is a new run. Any staff role or an API key with status:read. 404 for an unknown loan.

ref
required
string

OK

Media typeapplication/json
Array<object>
object
id
required
string format: uuid
loanId
required
string format: uuid
rulesetVersion
required
string
thresholds
required

Bank policy thresholds recorded on every run (defaults).

object
moneyToleranceCents
required
integer | string format: int32
/^-?(?:0|[1-9]\d*)$/
rateTolerance
required
number | string format: double
/^-?(?:0|[1-9]\d*)(?:\.\d+)?$/
dateToleranceDays
required
integer | string format: int32
/^-?(?:0|[1-9]\d*)$/
nameNormalization
required

Bank policy for party-name comparison (settings rules.name_normalization).

integer
startedAt
required
string format: date-time
completedAt
required
null | string format: date-time
summary
required
One of:
null
Examplegenerated
[
{
"id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"loanId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"rulesetVersion": "example",
"thresholds": {
"moneyToleranceCents": 1,
"rateTolerance": 1,
"dateToleranceDays": 1,
"nameNormalization": 1
},
"startedAt": "2026-04-15T12:00:00Z",
"completedAt": "2026-04-15T12:00:00Z",
"summary": {
"exceptions": 1,
"warnings": 1,
"infos": 1,
"fieldsEvaluated": 1,
"zonesEvaluated": 1,
"rulesEvaluated": [
"example"
],
"rulesDisabled": [
"example"
]
}
}
]