Skip to content

Approve the package

POST
/v1/loans/{ref}/approve
curl --request POST \
--url http://localhost:8080/v1/loans/example/approve \
--header 'Content-Type: application/json' \
--data '{ "note": "example" }'

Moves the loan from review to approved, recording who, when, the finding checklist and the mandatory note in evidence. Requires a signed-in admin, manager or specialist. 404 for an unknown reference, 400 for an empty note, 422 listing the blockers while the loan is not in review, any exception finding is unresolved, or an exception has not been reviewed by a person.

ref
required
string
Media typeapplication/json

Body of POST /v1/loans/{ref}/approve|reject (: the free-text note is part of the record).

object
note
string
Examplegenerated
{
"note": "example"
}

OK

Media typeapplication/json
object
id
required
string format: uuid
externalRef
required
string
packageVersion
required
integer | string format: int32
/^-?(?:0|[1-9]\d*)$/
borrowerName
required
string
expectedPrincipal
required
null | string
state
required
string
hasExceptions
required
boolean
assigneeId
required
null | string format: uuid
createdBy
required
null | string format: uuid
createdAt
required
string format: date-time
updatedAt
required
string format: date-time
Examplegenerated
{
"id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"externalRef": "example",
"packageVersion": 1,
"borrowerName": "example",
"expectedPrincipal": "example",
"state": "example",
"hasExceptions": true,
"assigneeId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"createdBy": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"createdAt": "2026-04-15T12:00:00Z",
"updatedAt": "2026-04-15T12:00:00Z"
}