Skip to content

Approve a staged boarding

POST
/v1/loans/{ref}/boarding/approve
curl --request POST \
--url http://localhost:8080/v1/loans/example/boarding/approve

Checker step of the maker-checker pair. Requires a signed-in admin or boarding_checker who is not the person who staged the record: the stager gets 403 (segregation of duties). 404 when the loan is unknown or nothing has been staged, 409 when the record is not in the staged state.

ref
required
string

OK

Media typeapplication/json

The staged record with every core field and its provenance.

object
boardingId
required
string format: uuid
loanId
required
string format: uuid
loanRef
required
string
provider
required
string
fieldMapId
required
string format: uuid
fieldMapVersion
required
integer | string format: int32
/^-?(?:0|[1-9]\d*)$/
state
required
string
preview
required
Array<object>

One core field ready to post: code, wire value and where it came from. string? CoreFieldValue.Value is null when the map found no source.

object
coreField
required
string
canonical
required
string
transform
required
string
value
required
null | string
source
required
One of:
null
requiredApprovalRole
required
string
stagedBy
required
string format: uuid
stagedAt
required
string format: date-time
approvedBy
required
null | string format: uuid
approvedAt
required
null | string format: date-time
committedAt
required
null | string format: date-time
coreReference
required
null | string
error
required
One of:
null
idempotencyKey
required
null | string
Examplegenerated
{
"boardingId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"loanId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"loanRef": "example",
"provider": "example",
"fieldMapId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"fieldMapVersion": 1,
"state": "example",
"preview": [
{
"coreField": "example",
"canonical": "example",
"transform": "example",
"value": "example",
"source": {
"documentId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"documentName": "example",
"docType": "example",
"canonical": "example",
"pageNo": 1,
"x": 1,
"y": 1,
"w": 1,
"h": 1
}
}
],
"requiredApprovalRole": "example",
"stagedBy": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"stagedAt": "2026-04-15T12:00:00Z",
"approvedBy": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"approvedAt": "2026-04-15T12:00:00Z",
"committedAt": "2026-04-15T12:00:00Z",
"coreReference": "example",
"error": {
"status": "example",
"detail": "example",
"rawResponse": "example",
"at": "2026-04-15T12:00:00Z",
"attempt": 1
},
"idempotencyKey": "example"
}