Ký văn bản tài liệu

Bao gồm danh sách các hàm

1. Ký văn bản chứng từ

Ký không có giao diện

Phương thức POST

Hàm này dùng để truyền văn bản tài liệu dưới dạng base64 lên ký và trả về luôn trên API

Địa chỉ sử dụng

https://api.econtract.cmcts.vn/pdf/signdoc?APIKey={apikey}&AccessCode={accesscode}

Json đầu vào


{
"Id": "Id tự truyền lên bất kỳ",
"DigitalSignType": "hsm",//hsm nếu ký bằng cts của người ký. Để trắng nếu ký cts của c-contract
"SignerSignatureId":"Id hoặc code chữ ký của người ký",
"SignTemplateItemId":"Id hoặc code chi của chi tiết mẫu tham gia ký",//không bắt buộc
"CheckKeyword":1,
"ImageBase64":"Ảnh chữ ký dưới dạng base64",
"PageSizeWidth":0,// dùng khi ký bằng vị trí
"PageSizeHeight":0,// dùng khi ký bằng vị trí
"SignPage":0,// dùng khi ký bằng vị trí
"SignX":0,// dùng khi ký bằng vị trí
"SignY":0,// dùng khi ký bằng vị trí
"SignatureWidth":4.2, // độ rộng ô chữ ký
"SignatureHeight":2.1,// độ cao ô chữ ký
"SignInfos":
[
{
"Id":"1",
"FileName":"File 1",
"SearchTerm":"Trưởng bộ phận", // dùng khi ký bằng từ khóa
"PdfBase64":"", //nội dung file cần ký dưới dạng base64
"bottomPos":-3.1,
"FileType":"pdf", //kiểu file base64 là file word hay pdf. Nếu word thì là doc còn pdf thì là pdf
}
]
}

Giải thích các tham số mảng đầu vào

Id: Id duy nhất truyền lên

DigitalSignType: hsm hoặc để trống. hsm sẽ ký bằng cts của đơn vị.

SignerSignatureId: SignerSignatureId chữ ký của người ký (trong trường hợp ký bằng chữ ký có sẵn). Xem tại đây

SignTemplateItemId: Id hoặc code mẫu chi tiết ký dùng để lấy vị trí ký cũng như từ khóa trong trường hợp sử dụng mẫu. Không cần truyền nếu tự truyền vị trí và từ khóa lên ở chi tiết file

CheckKeyword: 1 nếu muốn kiếm tra từ khóa ký có trong tài liệu không

SignatureWidth: Độ rộng của chữ ký tính bằng cm

SignatureHeight: Độ cao của chữ ký tính bằng cm

PasswordCts: Mật khẩu dùng để ký trong trường hợp DigitalSignType là hsm

SignInfos: Mảng chứng từ cần ký

Id: Id của chứng từ

FileName: Tên file chứng từ

SearchTerm: Từ khóa dò vị trí ký

bottomPos: Vị trí ký lùi lên xuống tính bằng cm

FileType: Kiểu của file truyền lên pdf hoặc doc


Kết quả trả về JSON

{

Message:"", //Nội dung thông báo kết quả ký

Code:0, //0: Thành công

PdfSigned: //Mảng kết quả đã ký bao gồm Id và SignedBase64 chứa nội dung file ký

Id:"", //ID: Của giao dịch ký

}

3. Ký văn bản có giao diện

Phương thức POST

Hàm này dùng để truyền văn bản tài liệu dưới dạng base64 lên hệ thống sẽ trả về link dùng để mở ra ký

Địa chỉ sử dụng

https://api.econtract.cmcts.vn/pdf/signdocgui?APIKey={apikey}&AccessCode={accesscode}

Json đầu vào


{
"Id": "Id tự truyền lên bất kỳ",
"DigitalSignType": "hsm",//hsm nếu ký bằng cts của người ký. Để trắng nếu ký cts của c-contract
"SignerSignatureId":"Id hoặc code chữ ký của người ký",
"SignTemplateItemId":"Id hoặc code chi của chi tiết mẫu tham gia ký",//không bắt buộc
"CheckKeyword":1,
"SignatureWidth":4.2,
"SignatureHeight":2.1,
"CallBackUrl":"https://",
"CallBackGuiUrl":"https://",
"SignInfos":
[
{
"Id":"1",
"FileName":"File 1",
"SearchTerm":"Trưởng bộ phận",
"PdfBase64":"",
"bottomPos":"-3",
"FileType":"pdf",
}
]
}

Giải thích các tham số mảng đầu vào

Id: Id duy nhất truyền lên

DigitalSignType: hsm hoặc để trống. hsm sẽ ký bằng cts của đơn vị.

SignerSignatureId: SignerSignatureId chữ ký của người ký (trong trường hợp ký bằng chữ ký có sẵn). Xem tại đây

SignTemplateItemId: Id hoặc code mẫu chi tiết ký dùng để lấy vị trí ký cũng như từ khóa trong trường hợp sử dụng mẫu. Không cần truyền nếu tự truyền vị trí và từ khóa lên ở chi tiết file

CheckKeyword: 1 nếu muốn kiếm tra từ khóa ký có trong tài liệu không

SignatureWidth: Độ rộng của chữ ký tính bằng cm

SignatureHeight: Độ cao của chữ ký tính bằng cm

CallBackUrl: Địa chỉ callback

CallBackGuiUrl: Địa chỉ callback GUI. Sẽ tự động chuyển đến url này sau khi ký

PasswordCts: Mật khẩu dùng để ký trong trường hợp DigitalSignType là hsm

SignInfos: Mảng chứng từ cần ký

Id: Id của chứng từ

FileName: Tên file chứng từ

SearchTerm: Từ khóa dò vị trí ký

bottomPos: Vị trí ký lùi lên xuống tính bằng cm

FileType: Kiểu của file truyền lên pdf hoặc doc


Kết quả trả về JSON

{

Message:"", //Nội dung thông báo kết quả ký

Code:0, //0: Thành công

SignUrl: //URL dùng để mở giao diện ký

Id:"" //ID: Của giao dịch ký

}

4. Lấy tài liệu đã ký về

Phương thức GET

Địa chỉ sử dụng

https://api.econtract.cmcts.vn/pdf/signdocgui/get?APIKey={apikey}&AccessCode={accesscode}&Id=abc


Kết quả trả về JSON

Thành công code = 0 và trả về nội dung đã trả về

"ImageBase64":"Chữ ký"

"Signed":1

//1: Nếu đã ký; 0: chưa ký

"SignedResultItems":"Mảng chứa các file đã ký"

5. Hàm đặt chữ ký

Phương thức POST

Địa chỉ sử dụng

https://api.econtract.cmcts.vn/contract/signature/add?APIKey=xxx&AccessCode=yyy

{

"FileType":"doc" //loại file truyền doc hoặc pdf,

"ContentBase64":""//nội dung dưới dạng base64

}


Kết quả trả về JSON

Id: Id của chứng từ

Url: Chứa url để mở ra đặt chữ ký

6. Hàm lấy thông tin vị trí đã đặt

Phương thức POST

Địa chỉ sử dụng

https://api.econtract.cmcts.vn/contract/signature/get?APIKey=xxx&AccessCode=yyy&id=zzz

id: id trả về từ hàm 5. Hàm đặt chữ ký


Kết quả trả về JSON thông tin vị trí đặt dùng để truyền vào hàm ký số 1. Ký văn bản chứng từ

{

"Code": 0,

"Found": true,

"Message": "success",

"PageSizeHeight": 1122.67, //độ rộng trang đặt chữ ký

"PageSizeWidth": 793.80, //độ cao trang đặt chữ ký

"SignPage": 3, //Trang đặt chữ ký

"SignX": 287.00, // Tọa độ X đặt chữ ký

"SignY": 711.00, // Tọa độ Y đặt chữ ký

"SignatureHeight": 3.44, // Độ rộng ô chữ ký

"SignatureWidth": 6.80 // độ cao ô chữ ký

}

7. Hàm lấy mẫu tích hợp

Phương thức POST

Địa chỉ sử dụng

https://api.econtract.cmcts.vn/IntegrateTemplate/list?accesscode=xxx&apikey=yyy


Kết quả trả về danh sách mẫu tích hợp

{

"items": [

{

"IntegrateTemplateId": "3231d014-2ad5-473e-9b89-1eb977bf9dfc",

"AppName": "HRM",

"RptCode": "MA",

"RptName": "Ký với đối tác Mer",

"WorkflowDefId": "ba15bf71-a748-4e91-bd39-f0e40f68bf00",

"WorkflowDefCode": "BA15BF71",

"WorkflowDefName": "Đơn vị ký trước",

"SignTemplateId": "a15b9535-4bb9-4792-a85a-adc93395a1f1",

"SignTemplateName": "Đơn vị đối tác ký",

"IdentifierType": "",

"Identifier": "",

"LastUpdated": "16/03/2023 10:27",

"SignItems": [],

"PartnerSignType": "",

"Roles": [

{

"Role": "make",

"Subject": "Đơn vị ký chính"

},

{

"Role": "partner",

"Subject": "Đối tác"

},

{

"Role": "other",

"Subject": "Đơn vị ký tham gia"

}

],

"ContractTemplates": [],

"Active": 1

}

],

"Code": 0,

"Found": false,

"Message": "ok"

}

8. Hàm ký qua mẫu tích hợp

Phương thức POST

Địa chỉ sử dụng

https://api.econtract.cmcts.vn/pdf/integrate/simple/sign?accesscode=xxx&apikey=yyy

Json body đầu vào

{

Id:"xxx", //id chung tu can ky

IntegrateTemplateId:"xxx", //id mẫu tích hợp lấy ở hàm 7

CallBackUrl:"https://", //Địa chỉ nhận callback

AdUserId:"admin", //user khới tạo hợp đồng

AdCompanyId:"xxx", //id công ty (nếu có)

AdDepartmentId:"xxx", //id phòng ban (nếu có)

PartnerSignType:"token", //Kiểu ký đối tác 1 trong 4 kiểu image, token, esign, ekyc

ContractNo:"xxx", //Số hợp đồng (nếu có)

RefContractId:"", //Id của hợp đồng gốc (nếu có)

"Fields":

[

{

"FieldName":"CONTRACT-NO",

"FieldValue":"1234"

},

{

"FieldName":"PARTNER-EMAIL",//* Bắt buộc có

"FieldValue":"Email đối tác"

}

{

"FieldName":"PARTNER-MOBILE",

"FieldValue":"Mobile đối tác"

}

{

"FieldName":"PARTNER-NAME",//* Bắt buộc có

"FieldValue":"Tên đối tác"

}

]

},

"AttachFiles"://Nếu sử dụng mẫu template không cần truyền

[

{

"AttachFileName":"Tên file",

"AttachContentBase64":"Nội dung base64"

"AttachFileType":"pdf" //kiểu file là pdf hay doc,

"Main":"1"//file chính đặt là 1

},

{

"AttachFileName":"Tên file",

"AttachContentBase64":"Nội dung base64"

"AttachFileType":"doc" //kiểu file là pdf hay doc,

"Main":"0"//file liên quan đặt là 0 ví dụ phụ lục

},

}

]


Kết quả trả về JSON

{

Message:"", //Nội dung thông báo kết quả ký

Code:0, //0: Thành công

Id:"", //ID: Của giao dịch ký

}