Send Document Process
Last updated: September 16, 2026
Updated by: VNPT eContract's team
Purpose
Trigger the sending of the signing/approval workflow configured in section 4.3 for the document, moving the document to a ready-to-process status and notifying the first processor in the workflow.
- Request URL:
/v2/documents/send-process/{documentId} - HTTP method:
POST - Authorize:
Bearer token - Parameter:
| Key | Location | Type | Required | Description |
|---|---|---|---|---|
documentId | Path param | GUID | Yes | Id of the document for which the process is to be sent (e.g.: /v2/documents/send-process/c7cd1930-...) |
Sample request
POST /v2/documents/send-process/f5b0c112-d357-44ce-b8a8-7cb77d3d0b9e
Sample response body
{
"data": {
"id": "f5b0c112-d357-44ce-b8a8-7cb77d3d0b9e",
"createdDate": "2026-08-13T17:55:40.8560899",
"lastModifiedDate": "2026-08-13T17:58:46.1287882+07:00",
"no": "DOCUMENT-MF-001",
"subject": "Multi-file document DOCUMENT-MF-001 - Updated",
"hasVerified": false,
"hasVerify": false,
"hasSeal": false,
"requireVerifiedUserSigning": false,
"status": {
"value": 2,
"description": "Ready"
},
"contractStatus": {
"value": 0,
"description": "Undefined"
},
"description": "Example of updating document DOCUMENT-MF-001",
"createdByUser": {
"id": 27938,
"code": "user002",
"name": "User 002",
"email": "user002@yopmail.com",
"phone": "0123456789",
"comId": 7354,
"username": "user002@yopmail.com",
"isSelected": false
},
"createdByUserId": 27938,
"processRecipientCount": 2,
"waitingProcess": {
"id": "bba867ee-09f9-41f6-6ddb-08def929c6d3",
"createdDate": "2026-08-13T17:58:15.7798094",
"comId": 7354,
"isOrder": true,
"orderNo": 1,
"pageSign": 1,
"position": "234,514,374,574",
"displayType": {
"value": 0,
"description": "0"
},
"accessPermission": {
"value": 4,
"description": "Sign digital"
},
"status": {
"value": 1,
"description": "Waiting"
},
"processedByUserId": 59407,
"processedByUser": {
"id": 59407,
"code": "user001",
"name": "User 001",
"email": "user001@yopmail.com",
"comId": 7354,
"username": "user001@yopmail.com",
"isSelected": false
},
"documentId": "f5b0c112-d357-44ce-b8a8-7cb77d3d0b9e",
"fillingItems": [
],
"fileInfoId": "6865273c-90f5-49cd-403b-08defc11a479",
"attachments": [
]
},
"waitingProcesses": [
{
"id": "bba867ee-09f9-41f6-6ddb-08def929c6d3",
"createdDate": "2026-08-13T17:58:15.7798094",
"comId": 7354,
"isOrder": true,
"orderNo": 1,
"pageSign": 1,
"position": "234,514,374,574",
"displayType": {
"value": 0,
"description": "0"
},
"accessPermission": {
"value": 4,
"description": "Sign digital"
},
"status": {
"value": 1,
"description": "Waiting"
},
"processedByUserId": 59407,
"processedByUser": {
"id": 59407,
"code": "user001",
"name": "User 001",
"email": "user001@yopmail.com",
"comId": 7354,
"username": "user001@yopmail.com",
"isSelected": false
},
"documentId": "f5b0c112-d357-44ce-b8a8-7cb77d3d0b9e",
"fillingItems": [
],
"fileInfoId": "6865273c-90f5-49cd-403b-08defc11a479",
"attachments": [
]
}
],
"processInOrder": true,
"isWaitToSignDraw": false,
"isWaitToSignDigital": false,
"isWaitToApprove": false,
"isWaitToFillData": false,
"isWaitToCoordinate": false,
"isWaitToESign": false,
"isWaitToEkyc": false,
"isFillable": false,
"type": {
"id": 8950,
"code": "DOCID",
"name": "Test document",
"documentCount": 1,
"enableVnptSeal": false,
"requireVerifiedUserSigning": false,
"children": [
]
},
"processes": [
{
"id": "bba867ee-09f9-41f6-6ddb-08def929c6d3",
"createdDate": "2026-08-13T17:58:15.7798094",
"comId": 7354,
"isOrder": true,
"orderNo": 1,
"pageSign": 1,
"position": "234,514,374,574",
"displayType": {
"value": 0,
"description": "0"
},
"accessPermission": {
"value": 4,
"description": "Sign digital"
},
"status": {
"value": 1,
"description": "Waiting"
},
"processedByUserId": 59407,
"processedByUser": {
"id": 59407,
"code": "user001",
"name": "User 001",
"email": "user001@yopmail.com",
"comId": 7354,
"username": "user001@yopmail.com",
"isSelected": false
},
"documentId": "f5b0c112-d357-44ce-b8a8-7cb77d3d0b9e",
"fillingItems": [
],
"fileInfoId": "6865273c-90f5-49cd-403b-08defc11a479",
"attachments": [
]
},
{
"id": "129da2f9-85d4-4390-6ddc-08def929c6d3",
"createdDate": "2026-08-13T17:58:15.7799953",
"comId": 7354,
"isOrder": true,
"orderNo": 2,
"pageSign": 1,
"position": "334,614,474,674",
"displayType": {
"value": 0,
"description": "0"
},
"accessPermission": {
"value": 4,
"description": "Sign digital"
},
"status": {
"value": 1,
"description": "Waiting"
},
"processedByUserId": 27938,
"processedByUser": {
"id": 27938,
"code": "user002",
"name": "User 002",
"email": "user002@yopmail.com",
"phone": "0123456789",
"comId": 7354,
"username": "user002@yopmail.com",
"isSelected": false
},
"documentId": "f5b0c112-d357-44ce-b8a8-7cb77d3d0b9e",
"fillingItems": [
],
"fileInfoId": "a940f960-213c-4a89-403c-08defc11a479",
"attachments": [
]
}
],
"accessibleViewProcesses": [
],
"histories": [
{
"createdDate": "2026-08-13T17:58:46.1260242+07:00",
"requestType": {
"value": 0,
"description": "Web"
},
"ipAddress": "10.70.39.34",
"user": {
"id": 27938,
"code": "creator",
"name": "Clerk",
"email": "creator@yopmail.com",
"phone": "0919380915",
"comId": 7354,
"username": "creator@yopmail.com",
"isSelected": false
},
"activity": {
"value": 3,
"description": "Invite recipient"
}
}
],
"attachments": [],
"relatedDocuments": [],
"linkedDocuments": [],
"messages": [],
"fillingItems": [],
"sharedUsers": [],
"isMarkStar": false,
"downloadFileUrls": [
{
"id": "6865273c-90f5-49cd-403b-08defc11a479",
"fileName": "Tai-lieu-chinh-01.pdf",
"downloadUrl": "{HOST}/api/Download?token=...",
"downloadWatermarkMetadataUrl": "{HOST}/api/Download?token=...",
"orderNo": 1,
"size": 358043,
"fileType": {
"value": 0,
"description": "General"
},
"hasSeal": false
},
{
"id": "a940f960-213c-4a89-403c-08defc11a479",
"fileName": "Phu-luc-02.pdf",
"downloadUrl": "{HOST}/api/Download?token=...",
"downloadWatermarkMetadataUrl": "{HOST}/api/Download?token=...",
"orderNo": 2,
"size": 262757,
"fileType": {
"value": 0,
"description": "General"
},
"hasSeal": false
}
],
"zipDownloadUrl": "{HOST}/api/Download/MergeFilesZipDocument?token=...",
"zipDownloadOriginalUrl": "{HOST}/api/Download/MergeFilesZipDocument?token=...",
"zipDownloadWatermarkMetadataUrl": "{HOST}/api/Download/MergeFilesZipDocument?token=...",
"requiresSealSendConfirmation": false,
"fixedPosition": false,
"isLaborContractDocument": false
},
"success": true,
"code": 0,
"messages": [
"Send to recipient success"
]
}
Response Body Description
| Key | Type | Description |
|---|---|---|
success | boolean | Response status of the request (true: Success, false: Failure) |
code | int | Response code from the system |
messages | array | List of messages or errors returned from the system (Example: ["Send to recipient success"]) |
data | object | Object containing details of the document after the process is sent (see details below) |
Details of data:
The fields id, createdDate, lastModifiedDate, no, subject, description, contractStatus, type, downloadFileUrls, zipDownloadUrl, zipDownloadOriginalUrl, zipDownloadWatermarkMetadataUrl, processInOrder, processRecipientCount... have the same meaning as in the Create Multi-file Document API (section 4.1). The table below only describes the fields whose values change or that are newly generated after the process is sent.
| Key | Type | Description |
|---|---|---|
status | object | Document status — changes to value = 2 ("Ready") after the process is sent |
createdByUser | object | Information of the document creator (see below) |
waitingProcess | object | The person currently pending processing at the current step of the signing workflow (see below) |
waitingProcesses | array | Same content as waitingProcess above (the sample data only contains the current pending step again), for the structure of each element see waitingProcess |
processes | array | All processing steps of the signing workflow (not just the pending step) — the structure of each element is the same as waitingProcess |
Details of the createdByUser object:
| Key | Type | Description |
|---|---|---|
id | int | Id of the creator |
code | string | User code |
name | string | Full name of the creator |
email | string | Email of the creator |
username | string | Login username (usually the same as the email) |
Details of the waitingProcess object:
| Key | Type | Description |
|---|---|---|
id | GUID | Id of the processing step |
createdDate | datetime | Time the processing step was created |
comId | int | Company Id of the processor |
isOrder | boolean | Whether the processing step belongs to a sequential workflow |
orderNo | int | Processing order |
pageSign | int | Page number to be signed within the file |
position | string | Coordinates of the signature position on the file, format "x1,y1,x2,y2" |
displayType | object | Signature display type (see the Enum catalog in the Appendix) |
accessPermission | object | Processing permission granted: {"value": int, "description": string}1: View only 2: Sign draw 3: Approve 4: Sign digital 5: Fill data 6: Coordinate 7: E-Sign 8: eKYC sign |
status | object | Status of the processing step (e.g.: Waiting — Pending processing) |
processedByUserId | int | Id of the user assigned to process this step |
processedByUser | object | Information of the user assigned to process this step |
documentId | string (GUID) | Id of the document containing this processing step |
fillingItems | array | List of data fields to be filled in at this step (if any) |
fileInfoId | string (GUID) | ID of the component file to be processed at this step |
attachments | array | Attachments generated at this processing step (if any) |
After sending, the document status changes to "Ready", and data.waitingProcess shows the person currently pending processing at the first step of the workflow (processedByUser), along with the processing permission (accessPermission) and the signing position (fileInfoId, position, pageSign).