Skip to content

Commit an approved boarding to the core

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

Phase two: posts the approved record to the core adapter. On success the loan becomes boarded and the core reference is stored; on failure the provider’s answer is recorded verbatim on the record (state failed, attempt count) and this same call retries it; the adapter never double-boards. Requires a signed-in admin or boarding_checker. 404 when nothing has been staged or the field map used for staging no longer exists, 409 when the record is still staged (not approved), committing or already committed.

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"
}