Approve a staged boarding
POST
/v1/loans/{ref}/boarding/approve
const url = 'http://localhost:8080/v1/loans/example/boarding/approve';const options = {method: 'POST'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url http://localhost:8080/v1/loans/example/boarding/approveChecker 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.
Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”ref
required
string
Responses
Section titled “Responses”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
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
Where a boarded value came from ( “every core field + source provenance”).
object
documentId
required
string format: uuid
documentName
required
string
docType
required
string
canonical
required
string
pageNo
required
null | integer | string format: int32
x
required
null | number | string format: double
y
required
null | number | string format: double
w
required
null | number | string format: double
h
required
null | number | string format: double
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
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"}