Nhảy tới nội dung
Phiên bản: 2.3.0

Xử lý chứng từ nhiều file

Ngày cập nhật: 29 tháng 09, 2026 Người cập nhật: VNPT eContract's team


Mục đích​

Xử lý lượt quy trình gốc của chứng từ nhiều file. API xác định file thành phần cần ký bằng fileInfoId và hỗ trợ xử lý thêm các lượt quy trình liền kề.

  • Request URL: /v2/documents/process
  • HTTP method: POST
  • HTTP content-type: application/json
  • Authorize: Bearer token

Tham số​

KeyTypeBắt buộcMô tả
processIdstring (GUID)CóID lượt xử lý gốc. Lấy từ waitingProcess.id hoặc processes[].id.
reasonstringKhôngLý do xử lý, ký, phê duyệt hoặc từ chối.
rejectbooleanKhôngtrue là từ chối chứng từ; false là xử lý bình thường.
signatureDisplayModeintKhôngChế độ hiển thị: 1 chỉ văn bản, 2 văn bản và hình ảnh, 3 chỉ hình ảnh.
signatureImagestringKhôngHình ảnh chữ ký dạng Base64/Data URI.
signingPageintKhôngTrang đặt chữ ký.
signingPositionstringKhôngTọa độ ký dạng llx,lly,urx,ury.
fileInfoIdstring (GUID)KhôngID file thành phần cần ký. Lấy từ API Lấy thông tin chứng từ, ví dụ downloadFileUrls[].id.
signatureTextstringKhôngNội dung hiển thị chữ ký.
fontSizeintKhôngCỡ chữ ký.
processAllAdjacentProcessesbooleanKhôngXử lý toàn bộ lượt quy trình liền kề bằng giá trị đã cấu hình.
adjacentProcessesArray[object]KhôngDanh sách lượt quy trình liền kề cần xử lý cùng lượt gốc.

Object adjacentProcesses​

KeyTypeBắt buộcMô tả
processIdstring (GUID)CóID lượt xử lý liền kề.
signingPageintKhôngTrang ký. Nếu không truyền, hệ thống dùng giá trị đã cấu hình.
signingPositionstringKhôngTọa độ ký. Nếu không truyền, hệ thống dùng giá trị đã cấu hình.
fileInfoIdstring (GUID)KhôngID file thành phần cần ký cho lượt xử lý liền kề này.
signatureDisplayModeintKhôngChế độ hiển thị chữ ký cho Ký nháy/Ký điện tử.
reasonstringKhôngLý do xử lý/ký.
signatureImagestringKhôngHình ảnh chữ ký dạng Base64/Data URI.
signatureTextstringKhôngNội dung hiển thị chữ ký.
fontSizeintKhôngCỡ chữ ký.
cẩn thận
  • Với chứng từ có nhiều file, cần truyền đúng fileInfoId cho từng lượt có đặt chữ ký. Nếu không, hệ thống không xác định rõ file đích cần ký.
  • Không nên đồng thời truyền processAllAdjacentProcesses: true và adjacentProcesses nếu chưa xác nhận hành vi của phiên bản đang triển khai. Tài liệu nguồn chưa định nghĩa độ ưu tiên.
  • Các trường chữ ký bắt buộc có điều kiện tùy quyền xử lý, phương thức ký, chính sách OTP và vị trí ký đã cấu hình.

Quy tắc xử lý lượt liền kề​

Cấu hìnhHành vi
processAllAdjacentProcesses: false, không có adjacentProcessesChỉ xử lý lượt gốc.
processAllAdjacentProcesses: false, có adjacentProcessesXử lý lượt gốc và các lượt liền kề được liệt kê.
processAllAdjacentProcesses: true, không có adjacentProcessesXử lý lượt gốc và toàn bộ lượt liền kề bằng giá trị đã cấu hình.

Mẫu request​

{
"processId": "a5af6828-6470-4282-8e42-08df1d03012f",
"reason": "Đồng ý",
"reject": false,
"signatureDisplayMode": 2,
"signatureImage": "data:image/png;base64,...",
"signingPage": 1,
"signingPosition": "10,100,200,150",
"fileInfoId": "c85895bd-3b1c-428e-bc72-b285ff7e5286",
"signatureText": "Xác nhận nội dung chứng từ",
"fontSize": 12,
"processAllAdjacentProcesses": false,
"adjacentProcesses": [
{
"processId": "d70fdf67-3fc2-4ca0-8e41-08df1d03012f",
"reason": "Đồng ý",
"signatureDisplayMode": 2,
"signatureImage": "data:image/png;base64,...",
"signingPage": 2,
"signingPosition": "10,100,200,150",
"fileInfoId": "64b60a44-706c-4449-a866-bc880b755599",
"signatureText": "Xác nhận nội dung chứng từ",
"fontSize": 12
}
]
}

Mẫu response body​

Response trả về thông tin chứng từ, quy trình và file thành phần sau xử lý. Mẫu dưới đây đã được rút gọn nhưng vẫn là JSON hợp lệ.

{
"data": {
"id": "926cbf31-644b-43e1-a6f6-a4f222ecc1d0",
"createdDate": "2026-09-28T14:24:31.1791577",
"lastModifiedDate": "2026-09-28T15:15:49.1999547+07:00",
"completedDate": "2026-09-28T15:15:49.2000205+07:00",
"no": "26.TEST.SELN.N3XP",
"subject": "Chứng từ 26.TEST.SELN.N3XP",
"status": {
"value": 4,
"description": "Completed"
},
"processInOrder": true,
"processes": [
{
"id": "6972d59f-7826-4346-1035-08df1d2f16e6",
"orderNo": 1,
"reason": "Đồng ý",
"pageSign": 1,
"position": "325,654,505,744",
"accessPermission": {
"value": 2,
"description": "Sign draw"
},
"status": {
"value": 3,
"description": "Signed"
},
"documentId": "926cbf31-644b-43e1-a6f6-a4f222ecc1d0",
"fileInfoId": "297b8d9a-4b24-42af-a5bb-d3531f6bcd7c"
}
],
"downloadFileUrls": [
{
"id": "297b8d9a-4b24-42af-a5bb-d3531f6bcd7c",
"fileName": "Sample1.pdf",
"downloadUrl": "{HOST}/Api/Download?token=...",
"orderNo": 1,
"size": 345882
},
{
"id": "64b60a44-706c-4449-a866-bc880b755599",
"fileName": "Sample2.pdf",
"downloadUrl": "{HOST}/Api/Download?token=...",
"orderNo": 2,
"size": 192524
}
],
"zipDownloadUrl": "{HOST}/Api/Download/MergeFilesZipDocument?token=...",
"fixedPosition": false
},
"success": true,
"code": 0,
"messages": [
"Sign document success"
]
}

Lưu ý response​

KeyMô tả
data.processes[].fileInfoIdFile thành phần được xử lý bởi lượt quy trình tương ứng.
data.downloadFileUrlsThông tin tải xuống của từng file thành phần.
data.zipDownloadUrlURL tải toàn bộ file thành phần dưới dạng ZIP.
data.statusTrạng thái chứng từ sau khi xử lý.