Hàm đăng nhập bằng mã xử lý
Ngày cập nhật: 07 tháng 08, 2026 Người cập nhật: VNPT eContract's team
Mục đích
Thực hiện đăng nhập hệ thống thông qua mã xử lý được gửi thông qua email hoặc sms của người dùng. Người dùng sau khi đăng nhập bằng mã này có thể thực hiện xử lý chứng từ.
- Request URL:
/auth/process-code-login - HTTP method:
POST - HTTP content-type:
application/json - Parameter:
| Key | Type | Description |
|---|---|---|
processCode | string | [Bắt buộc] Mã xử lý |
Mẫu request
{
"processCode": "220023"
}
Mẫu response body
{
"success": true,
"data": {
"token": {
"accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9……"
},
"document": {
"id": "14b197ff-09ec-452b-8975-590d2330f1a9",
"createdDate": "2022-11-28T14:20:42.0606135",
"lastModifiedDate": "2022-11-28T14:20:57.5850304",
"no": "CKDS.20221128.73J3",
"subject": "Chứng từ CKDS.20221128.73J3",
"hasVerified": false,
"status": {
"value": 3,
"description": "Processing document"
},
"department": {
"id": 28,
"name": "VNPT eContract",
"code": "DHB",
"users": []
},
"createdByUserId": 2341,
"processRecipientCount": 1,
"waitingProcess": {
"id": "c4c08c13-1226-4c48-4e58-08dad11115ac",
"createdDate": "2022-11-28T14:20:55.6559845",
"comId": 164,
"isOrder": true,
"orderNo": 1,
"pageSign": 1,
"position": "13,688,193,778",
"displayType": {
"value": 0,
"description": "0"
},
"accessPermission": {
"value": 2,
"description": "Sign draw"
},
"status": {
"value": 1,
"description": "Waiting"
},
"processedByUserId": 2341,
},
"processInOrder": true,
"isWaitToSignDraw": false,
"isWaitToSignDigital": false,
"isWaitToApprove": false,
"isWaitToFillData": false,
"isWaitToCoordinate": false,
"isWaitToESign": false,
"isWaitToEkyc": false,
"isFillable": false,
"type": {
"id": 46,
"code": "CKDS",
"name": "Chiết khấu doanh số",
"description": "Chứng từ chiết khấu doanh số",
"documentCount": 1
},
"processes": [
{
"id": "c4c08c13-1226-4c48-4e58-08dad11115ac",
"createdDate": "2022-11-28T14:20:55.6559845",
"comId": 164,
"isOrder": true,
"orderNo": 1,
"pageSign": 1,
"position": "13,688,193,778",
"displayType": {
"value": 0,
"description": "0"
},
"accessPermission": {
"value": 2,
"description": "Sign draw"
},
"status": {
"value": 1,
"description": "Waiting"
},
"processedByUserId": 2341,
"documentId": "14b197ff-09ec-452b-8975-590d2330f1a9"
}
],
"histories": [
{
"createdDate": "2022-11-28T14:20:55.6559845",
"requestType": {
"value": 0,
"description": "Web"
},
"ipAddress": "::1",
"user": {
"id": 2341,
"code": "SYSADMIN",
"name": "Quản trị hệ thống",
"email": "admin@dochub.vn",
"comId": 164,
"username": "admin@dochub.vn",
"isSelected": false
},
"activity": {
"value": 1,
"description": "Create document"
}
}
]
"attachments": [],
"relatedDocuments": [],
"messages": [],
"file": {
"name": "TEST.pdf",
"size": 260936
},
"downloadUrl": "{HOST}/Api/Download?token=..."
}
}
}
Mô tả Response Body
| Key | Type | Description |
|---|---|---|
success | boolean | Trạng thái phản hồi của yêu cầu (true: Thành công, false: Thất bại) |
messages | array | Danh sách thông báo hoặc lỗi trả về (Ví dụ: ["Invalid process code"]) |
data | object | Đối tượng chứa thông tin xác thực và chứng từ chi tiết (xem chi tiết bên dưới) |
Chi tiết dữ liệu trong data:
| Key | Type | Description |
|---|---|---|
token | object | Chứa thông tin mã xác thực JWT:{ "accessToken": Chuỗi Token dùng cho các yêu cầu API tiếp theo } |
document | object | Thông tin chi tiết của chứng từ cần xử lý (xem chi tiết bên dưới) |
Chi tiết đối tượng document:
| Key | Type | Description |
|---|---|---|
id | string | ID chứng từ |
createdDate | string | Thời gian tạo chứng từ (định dạng ISO 8601) |
lastModifiedDate | string | Thời gian cập nhật chứng từ gần nhất (định dạng ISO 8601) |
no | string | Mã chứng từ |
subject | string | Tiêu đề chứng từ |
hasVerified | boolean | Trạng thái xác minh của chứng từ |
status | object | Trạng thái của chứng từ: {"value": int, "description": string}-4: Đã hết hạn -3: Đã hủy -2: Đã xóa -1: Đã bị từ chối 1: Chứng từ mới 2: Sẵn sàng 3: Đang xử lý 4: Đã hoàn tất 5: Đang hiệu chỉnh 6: Đang trong hàng chờ 7: Đang xử lý ký tự động |
department | object | Thông tin phòng ban/đơn vị quản lý chứng từ: {
"id": "ID phòng ban",
"name": "Tên phòng ban",
"code": "Mã phòng ban",
"users": "Danh sách người dùng"
} |
createdByUserId | int | ID người dùng tạo chứng từ |
processRecipientCount | int | Số lượng người nhận xử lý chứng từ |
waitingProcess | object | Thông tin chi tiết lượt xử lý đang chờ (xem chi tiết bên dưới) |
processInOrder | boolean | Cấu hình xử lý tuần tự (true: Theo thứ tự, false: Song song) |
isWaitToSignDraw | boolean | Trạng thái đang chờ ký nháy (true/false) |
isWaitToSignDigital | boolean | Trạng thái đang chờ ký số (true/false) |
isWaitToApprove | boolean | Trạng thái đang chờ phê duyệt (true/false) |
isWaitToFillData | boolean | Trạng thái đang chờ điền thông tin (true/false) |
isWaitToCoordinate | boolean | Trạng thái đang chờ điều phối (true/false) |
isWaitToESign | boolean | Trạng thái đang chờ ký điện tử (E-Sign) (true/false) |
isWaitToEkyc | boolean | Trạng thái đang chờ ký xác thực eKYC (true/false) |
isFillable | boolean | Cho phép điền dữ liệu vào form chứng từ (true/false) |
type | object | Thông tin loại chứng từ: {
"id": "ID loại chứng từ",
"code": "Mã loại",
"name": "Tên loại chứng từ",
"description": "Mô tả",
"documentCount": "Số lượng chứng từ liên quan"
} |
processes | array | Danh sách các lượt xử lý trong quy trình (Array[object]) (xem chi tiết bên dưới) |
histories | array | Danh sách lịch sử thao tác trên chứng từ (Array[object]) (xem chi tiết bên dưới) |
attachments | array | Danh sách các tệp tin đính kèm |
relatedDocuments | array | Danh sách các chứng từ liên quan |
messages | array | Danh sách các tin nhắn/ghi chú trong chứng từ |
file | object | Thông tin tệp tin chính: { "name": Tên file, "size": Dung lượng file (bytes) } |
downloadUrl | string | Đường dẫn tải tệp tin chứng từ |
Chi tiết danh sách processes:
Danh sách chứa các đối tượng lượt xử lý trong quy trình chứng từ với các thuộc tính của 1 phần tử:
| Key | Type | Description |
|---|---|---|
id | string | ID định danh của lượt xử lý |
createdDate | string | Thời gian tạo lượt xử lý |
comId | int | ID công ty/đơn vị xử lý |
isOrder | boolean | Xác định có thứ tự xử lý hay không |
orderNo | int | Thứ tự xử lý trong quy trình |
pageSign | int | Trang đặt khung chữ ký |
position | string | Tọa độ vị trí đặt khung chữ ký |
displayType | object | Kiểu hiển thị chữ ký: { "value": int, "description": string } |
accessPermission | object | Quyền xử lý chứng từ: {"value": int, "description": string}1: Chỉ xem 2: Ký nháy 3: Phê duyệt 4: Ký số 5: Điền thông tin 6: Điều phối 7: Ký điện tử 8: Ký xác thực eKYC |
status | object | Trạng thái của lượt xử lý: { "value": int, "description": string }-1: Đã từ chối 1: Chờ xử lý 2: Đã xem 3: Đã ký 4: Đã phê duyệt 5: Đã điền thông tin 7: Đã điều phối 8: Đang trong hàng chờ |
processedByUserId | int | ID của người dùng thực hiện xử lý |
documentId | string | ID chứng từ liên quan |
Chi tiết danh sách histories:
Danh sách chứa các bản ghi lịch sử thao tác với các thuộc tính của 1 phần tử:
| Key | Type | Description |
|---|---|---|
createdDate | string | Thời gian thực hiện thao tác |
requestType | object | Nguồn thực hiện yêu cầu: { "value": int, "description": string} -1: Unspecified (Không xác định) 0: Web 1: Api 3: Service (Dịch vụ hệ thống) 4: Mobile (Ứng dụng di động) |
ipAddress | string | Địa chỉ IP của người thực hiện |
user | object | Thông tin người thực hiện: {
"id": "ID người dùng",
"code": "Mã người dùng",
"name": "Tên người dùng",
"email": "Email",
"comId": "ID công ty",
"username": "Tên đăng nhập"
} |
activity | object | Thao tác thực hiện: {"value": int, "description": string}-3: Hủy chứng từ -2: Xóa chứng từ -1: Từ chối chứng từ 1: Tạo chứng từ 2: Cập nhật chứng từ 3: Mời người nhận 4: Xem chứng từ 5: Ký chứng từ 6: Tải chứng từ |