Skip to content

Upload package documents

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

multipart/form-data with one or more files. PDFs become package documents; a file named lar.json|csv|xml|pdf|docx; or any file when the form field asLar is true; is ingested as the LAR. Each file is stored content-addressed (re-uploading identical bytes is idempotent) and recorded in evidence; new documents start the extraction pipeline and move the loan to processing. The request is capped at 512 MB. Admin, manager or specialist, or an API key with intake:write. 404 for an unknown reference, 409 unless the loan is in intake, processing or review, 400 for a non-PDF package file or no files, 422 when the package would exceed documents.max_package_mb or the license has expired.

ref
required
string

OK

Media typeapplication/json
Array<object>
object
id
required
string format: uuid
loanId
required
string format: uuid
docType
required
string
originalName
required
string
sha256
required
string
byteSize
required
integer | string format: int64
/^-?(?:0|[1-9]\d*)$/
pageCount
required
null | integer | string format: int32
/^-?(?:0|[1-9]\d*)$/
isScanned
required
null | boolean
isLar
required
boolean
larProfileId
required
null | string format: uuid
uploadedAt
required
string format: date-time
Examplegenerated
[
{
"id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"loanId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"docType": "example",
"originalName": "example",
"sha256": "example",
"byteSize": 1,
"pageCount": 1,
"isScanned": true,
"isLar": true,
"larProfileId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"uploadedAt": "2026-04-15T12:00:00Z"
}
]