Hiệu chỉnh quy trình xử lý chứng từ
Ngày cập nhật: 17 tháng 07, 2026
Người cập nhật: VNPT eContract's team
Mục đích
API cho phép hiệu chỉnh quy trình xử lý của chứng từ sau khi chứng từ đã được gửi xử lý.
Khi chứng từ đã được gửi đến các bên tham gia trong quy trình, các bên thực hiện xử lý chứng từ theo thứ tự/quy trình đã thiết lập. Trong quá trình xử lý, người tạo chứng từ được phép hiệu chỉnh phần quy trình chưa thực hiện xử lý.
- Request URL:
/api/documents/adjust-process - HTTP method:
POST - HTTP content-type:
application/json - Authorize:
Bearer token - Parameter:
| Key | Type | Bắt buộc | Mô tả |
|---|---|---|---|
id | string | Có | ID chứng từ cần hiệu chỉnh quy trình. |
fixedPosition | boolean | Không | Cấu hình cố định vị trí ký: true là cố định vị trí ký, false là không cố định vị trí ký. |
processes | Array[object] | Có | Mảng thông tin người tham gia và xử lý chứng từ cần cập nhật hoặc thêm vào phần quy trình chưa xử lý. |
processes.processId | string | Không | ID của process hiện có. Có giá trị: hiệu chỉnh process hiện có. Không truyền hoặc null: thêm process mới. |
processes.orderNo | int | Có | Số thứ tự xử lý trong quy trình. |
processes.processedByUserCode | string | Có | Mã của người xử lý trong quy trình. |
processes.accessPermissionCode | string | Có | Mã quyền xử lý chứng từ trong quy trình. |
processes.position | string | Không | Vị trí / tọa độ ký Rectagle = llx, lly, urx, ury - llx, lly = tọa độ góc dưới cùng bên trái của chữ ký - urx = llx + width - ury = lly + height Gốc tọa độ là điểm dưới cùng bên trái của tài liệu |
processes.pageSign | int | Không | Trang đặt khung chữ ký. Cần truyền khi dùng vị trí ký cố định cho quyền ký. |
mẹo
accessPermissionCode là các quyền truy cập xử lý chứng từ:
- V là chỉ xem
- D là ký số
- E là ký điện tử
- EKYC là ký eKYC
- DR là ký nháy
- A là phê duyệt
- F là điền dữ liệu
- C là điều phối
cẩn thận
- API này dùng sau khi chứng từ đã được gửi xử lý. Nếu cần cấu hình quy trình trước khi gửi, sử dụng Cập nhật quy trình chứng từ.
- Chỉ được hiệu chỉnh các bước quy trình chưa được xử lý.
processIdphải thuộc chứng từ cần hiệu chỉnh. Nếu không, API sẽ trả về lỗi.- F luôn nên được xếp trước D, E, EKYC và DR trong quy trình xử lý tuần tự nếu người ký cần dữ liệu đã điền trước khi ký.
Mẫu request
Hiệu chỉnh các bước chưa xử lý bằng cách thay thế/thêm người xử lý:
{
"id": "b5b6a4e8-4a95-483b-bcc9-a0cf1038c5c1",
"processes": [
{
"orderNo": 1,
"processedByUserCode": "NVANH",
"accessPermissionCode": "D"
},
{
"orderNo": 2,
"processedByUserCode": "NVBAS",
"accessPermissionCode": "E"
}
]
}
Hiệu chỉnh process hiện có và thêm process mới:
{
"id": "b5b6a4e8-4a95-483b-bcc9-a0cf1038c5c1",
"fixedPosition": true,
"processes": [
{
"processId": "8629d95b-aa15-4dd2-a7e4-08dee3d99e84",
"orderNo": 2,
"processedByUserCode": "USER_B",
"accessPermissionCode": "D",
"position": "440,750,570,820",
"pageSign": 2
},
{
"orderNo": 3,
"processedByUserCode": "USER_C",
"accessPermissionCode": "A"
}
]
}
Mẫu response body
{
"data": {
"id": "b5b6a4e8-4a95-483b-bcc9-a0cf1038c5c1",
"createdDate": "2024-07-18T13:41:21.4627228",
"lastModifiedDate": "2026-07-17T15:09:41.6939414+07:00",
"no": "VAT.CKDS2",
"subject": "Chứng từ quyết toán thuế 2026",
"status": {
"value": 5,
"description": "Correcting"
},
"createdByUserId": 6,
"processRecipientCount": 2,
"waitingProcesses": [],
"processInOrder": true,
"isWaitToSignDraw": false,
"isWaitToSignDigital": false,
"isWaitToApprove": false,
"isWaitToFillData": false,
"isWaitToCoordinate": false,
"isWaitToESign": false,
"isWaitToEkyc": false,
"processes": [
{
"id": "8629d95b-aa15-4dd2-a7e4-08dee3d99e84",
"createdDate": "2026-07-17T15:09:41.6939379+07:00",
"comId": 164,
"isOrder": true,
"orderNo": 2,
"accessPermission": {
"value": 4,
"description": "Sign digital"
},
"status": {
"value": 1,
"description": "Waiting"
},
"processedByUserId": 6,
"documentId": "b5b6a4e8-4a95-483b-bcc9-a0cf1038c5c1",
"fillingItems": [],
"attachments": []
},
{
"id": "eba513b5-eb51-4314-a7e5-08dee3d99e84",
"createdDate": "2026-07-17T15:09:41.6939402+07:00",
"comId": 164,
"isOrder": true,
"orderNo": 2,
"accessPermission": {
"value": 7,
"description": "E-Sign"
},
"status": {
"value": 1,
"description": "Waiting"
},
"processedByUserId": 2341,
"documentId": "b5b6a4e8-4a95-483b-bcc9-a0cf1038c5c1",
"fillingItems": [],
"attachments": []
}
],
"messages": [],
"file": {
"name": "vat2026.pdf",
"size": 777261
},
"downloadUrl": "{HOST}/Api/Download?token=F42Mxflf",
"downloadOriginalUrl": "{HOST}/Api/Download?token=yDmW286I",
"downloadWatermarkMetadataUrl": "{HOST}/Api/Download?token=tmvuA",
"fixedPosition": false
},
"success": true,
"code": 0,
"messages": [
"Update document success"
]
}
Mẫu response lỗi
Process ID không thuộc chứng từ:
{
"success": false,
"code": 0,
"messages": [
"Process with Id '3a60b176-0f71-41af-4f2b-08ded1c2cf74, 64db826c-5ddf-4c02-4f2c-08ded1c2cf74' not found in the document"
]
}
Mã người xử lý không tồn tại:
{
"success": false,
"code": 0,
"messages": [
"User code 'USER_B3' not found"
]
}
Bảng mô tả lỗi
| Mẫu thông báo lỗi | Nguyên nhân | Cách xử lý |
|---|---|---|
Process with Id '{ids}' not found in the document | Một hoặc nhiều processId không thuộc chứng từ cần hiệu chỉnh. | Kiểm tra lại processes[].id hiện tại của chứng từ trước khi hiệu chỉnh. |
User code '{code}' not found | processedByUserCode không tồn tại hoặc không khả dụng trong công ty. | Kiểm tra lại mã người xử lý và trạng thái người dùng. |