API Reference › Servicing Plane › Portal contracts › Upload the requested document Upload the requested document POST https://sandbox.api.lendeasy.ai /v1/servicing/borrower-document-uploads/current/documents Implemented Connector callback Connector authority ·Short-lived upload session token from the exchange step
Accepts the one bounded upload the session authorizes as a single multipart part named file — a PDF, JPEG, or PNG up to the configured 10 MB ceiling — and returns a receipt. The content type is detected server-side, and refusals are a flat 200 with a closed borrower-safe reason.
cURL Node Python
Request
curl -X POST https://sandbox.api.lendeasy.ai /v1/servicing/borrower-document-uploads/current/documents \
-H "X-LendEasy-Voice-Task-Token: $DISPATCH_TOKEN" \
-F 'metadata={};type=application/json' \
-F "file=@./document.pdf;type=application/pdf" const form = new FormData();
form.append("metadata" , new Blob([JSON.stringify({})], { type: "application/json" }));
form.append("file" , file);
await fetch(`https://sandbox.api.lendeasy.ai /v1/servicing/borrower-document-uploads/current/documents` , {
method: "POST" ,
headers: { "X-LendEasy-Voice-Task-Token" : dispatchToken },
body: form,
});requests.post(
f"https://sandbox.api.lendeasy.ai /v1/servicing/borrower-document-uploads/current/documents" ,
headers={"X-LendEasy-Voice-Task-Token" : dispatch_token},
files={
"metadata" : (None, r'''{}''' , "application/json" ),
"file" : ("document.pdf" , open("./document.pdf" , "rb" ), "application/pdf" ),
},
)201 400
{
"accepted": true ,
"receiptReference": "LE-UPL-4201",
"receivedAt": "2026-07-25T18: 12 :00Z",
"statusMessage": "Thank you — we have received your document and will look at it. You do not need to do anything else."
}{
"error": "The callback body is invalid."
}Multipart body parameters Field Type Description file required string The document bytes. PDF, JPEG, or PNG up to the configured size ceiling.
cURL Node Python
Request
curl -X POST https://sandbox.api.lendeasy.ai /v1/servicing/borrower-document-uploads/current/documents \
-H "X-LendEasy-Voice-Task-Token: $DISPATCH_TOKEN" \
-F 'metadata={};type=application/json' \
-F "file=@./document.pdf;type=application/pdf" const form = new FormData();
form.append("metadata" , new Blob([JSON.stringify({})], { type: "application/json" }));
form.append("file" , file);
await fetch(`https://sandbox.api.lendeasy.ai /v1/servicing/borrower-document-uploads/current/documents` , {
method: "POST" ,
headers: { "X-LendEasy-Voice-Task-Token" : dispatchToken },
body: form,
});requests.post(
f"https://sandbox.api.lendeasy.ai /v1/servicing/borrower-document-uploads/current/documents" ,
headers={"X-LendEasy-Voice-Task-Token" : dispatch_token},
files={
"metadata" : (None, r'''{}''' , "application/json" ),
"file" : ("document.pdf" , open("./document.pdf" , "rb" ), "application/pdf" ),
},
)201 400
{
"accepted": true ,
"receiptReference": "LE-UPL-4201",
"receivedAt": "2026-07-25T18: 12 :00Z",
"statusMessage": "Thank you — we have received your document and will look at it. You do not need to do anything else."
}{
"error": "The callback body is invalid."
}