Cách tích hợp API vào hợp đồng điện tử VContract Viettel

Cách tích hợp API vào hợp đồng điện tử VContract Viettel

Xem nhanh

Tích hợp API vContract Viettel là giải pháp giúp doanh nghiệp kết nối trực tiếp hệ thống nội bộ như ERP, CRM, HRM, phần mềm bán hàng, hệ thống chăm sóc khách hàng hoặc cổng dịch vụ trực tuyến với nền tảng hợp đồng điện tử vContract. Thay vì nhân sự phải tạo từng hợp đồng thủ công, tải file, nhập thông tin khách hàng, gán vị trí ký và theo dõi trạng thái trên nhiều màn hình khác nhau, hệ thống của doanh nghiệp có thể tự động gọi API để tạo hợp đồng, khởi chạy luồng ký, nhận kết quả xử lý và đồng bộ trạng thái về phần mềm nội bộ.

TẢI VỀ BẢN MÔ TẢ CHI TIẾT VÀ HƯỚNG DẪN TÍCH HỢP API TỪ VIETTEL

Cách tích hợp API vào hợp đồng điện tử VContract Viettel
Cách tích hợp API vào hợp đồng điện tử VContract Viettel

Bài viết này được biên soạn lại theo hướng dễ hiểu cho đội ngũ kinh doanh, quản trị dự án và kỹ thuật triển khai. Nội dung tập trung vào mô hình kết nối, nhóm API, luồng nghiệp vụ, dữ liệu cần chuẩn bị, bảng lỗi thường gặp và các lưu ý khi triển khai thực tế. Các thông tin nhạy cảm như tài khoản mẫu, mật khẩu mẫu, token mẫu, domain triển khai riêng hoặc dữ liệu thật không được đưa vào bài để bảo đảm an toàn thông tin.

Mục lục nhanh

  1. API vContract là gì?
  2. Doanh nghiệp nào nên tích hợp API vContract?
  3. Mô hình kết nối tổng quan
  4. Các luồng nghiệp vụ chính
  5. Nhóm API đối tác gọi sang vContract
  6. Nhóm callback vContract gọi về hệ thống đối tác
  7. Dữ liệu cần chuẩn bị trước khi tích hợp
  8. Lưu ý bảo mật, kiểm thử và vận hành

1. API vContract là gì?

API vContract là bộ giao diện lập trình ứng dụng cho phép hệ thống của doanh nghiệp trao đổi dữ liệu với nền tảng hợp đồng điện tử vContract. API giúp hệ thống bên ngoài thực hiện các thao tác nghiệp vụ như đăng nhập lấy token, upload file hợp đồng, tạo hợp đồng, tìm kiếm người dùng, lấy danh mục địa bàn, thực hiện luồng ký, tải file hợp đồng, tra cứu trạng thái xử lý và nhận callback kết quả.

Trong kiến trúc tích hợp, vContract không chỉ là nơi ký hợp đồng mà còn là một hệ thống trung gian xử lý toàn bộ vòng đời hợp đồng điện tử. Hệ thống nội bộ của doanh nghiệp giữ vai trò phát sinh dữ liệu nghiệp vụ, còn vContract tiếp nhận hồ sơ, kiểm tra dữ liệu, tạo hợp đồng, vận hành luồng ký, ghi nhận kết quả và trả thông báo về hệ thống đã tích hợp.

Nhờ API, doanh nghiệp có thể biến quy trình hợp đồng từ dạng thủ công sang tự động hóa. Ví dụ, khi một khách hàng đăng ký dịch vụ trên hệ thống bán hàng, phần mềm có thể tự sinh hợp đồng, đẩy sang vContract, gán người ký, gửi thông báo cho khách hàng và cập nhật lại trạng thái hợp đồng sau khi ký xong.

2. Vì sao doanh nghiệp nên tích hợp API vContract?

Không phải doanh nghiệp nào cũng cần tích hợp API ngay từ đầu. Nếu mỗi tháng chỉ xử lý vài hợp đồng, thao tác trực tiếp trên giao diện web có thể đã đáp ứng nhu cầu. Tuy nhiên, khi số lượng hợp đồng tăng, có nhiều chi nhánh, nhiều kênh bán hàng hoặc nhiều luồng nghiệp vụ khác nhau, tích hợp API sẽ giúp tiết kiệm rất nhiều thời gian.

Nhu cầu của doanh nghiệp Lợi ích khi tích hợp API vContract
Tạo hợp đồng số lượng lớn Hệ thống tự động đẩy dữ liệu và tạo hợp đồng theo lô hoặc theo từng giao dịch phát sinh.
Đồng bộ với ERP/CRM Trạng thái hợp đồng được cập nhật ngược về hệ thống quản trị, hạn chế nhập liệu hai lần.
Giảm và xử lý sai sót hợp đồng Dữ liệu được lấy từ hệ thống nguồn đã chuẩn hóa, hạn chế lỗi do gõ tay.
Rút ngắn thời gian ký Hợp đồng có thể được tạo và gửi ký ngay sau khi phát sinh nghiệp vụ.
Kiểm soát quy trình Doanh nghiệp theo dõi được từng trạng thái: nháp, đang ký, từ chối, hoàn tất, xóa, lỗi.
Mở rộng quy mô Phù hợp với doanh nghiệp nhiều phòng ban, nhiều điểm bán, nhiều hệ thống vệ tinh.

Điểm quan trọng nhất của tích hợp API là tạo ra một luồng hợp đồng khép kín. Dữ liệu phát sinh ở đâu thì hợp đồng được tạo từ đó, trạng thái ký quay lại chính nơi phát sinh, giúp nhân sự không phải kiểm tra thủ công trên nhiều hệ thống.

3. Mô hình kết nối tổng quan giữa hệ thống đối tác và vContract

Mô hình tích hợp vContract thường có hai chiều trao đổi dữ liệu chính. Chiều thứ nhất là hệ thống đối tác gọi API sang vContract. Chiều thứ hai là vContract gọi callback về hệ thống đối tác để thông báo kết quả. Đây là điểm rất quan trọng, vì nếu chỉ gọi API một chiều thì hệ thống đối tác khó cập nhật trạng thái kịp thời khi người dùng ký, từ chối ký hoặc khi hợp đồng hoàn tất.

Thành phần Vai trò trong tích hợp
User ERP Người dùng của hệ thống đối tác, có nhu cầu tạo hoặc xử lý hợp đồng từ hệ thống nghiệp vụ.
ERP/Hệ thống đối tác Hệ thống khởi tạo dữ liệu hợp đồng, gọi API sang vContract và nhận callback kết quả.
vContract Nền tảng hợp đồng điện tử tiếp nhận, xử lý, vận hành luồng ký và trả kết quả.
User trên vContract Người ký, người duyệt hoặc người thao tác hợp đồng trên hệ thống vContract.

Trong triển khai thực tế, hệ thống đối tác cần chuẩn bị địa chỉ callback công khai hoặc địa chỉ callback trong mạng được cấu hình cho phép, đồng thời cần có cơ chế xác thực, ghi log, kiểm soát lỗi và bảo đảm an toàn dữ liệu khi nhận thông báo từ vContract.

4. Luồng tìm kiếm người dùng phục vụ gán người xử lý hợp đồng

Luồng tìm kiếm người dùng được sử dụng khi hệ thống đối tác cần tìm người dùng phù hợp để đưa vào luồng ký hoặc luồng duyệt. Khi tạo hợp đồng điện tử, không chỉ có khách hàng bên ngoài mà còn có thể có người ký nội bộ, người duyệt, người kiểm soát hồ sơ hoặc người xử lý theo từng bước.

Quy trình tổng quát như sau:

  1. Người dùng trên hệ thống ERP thực hiện thao tác tìm kiếm người xử lý hoặc người ký.
  2. ERP kiểm tra token. Nếu token chưa hợp lệ hoặc hết hạn, hệ thống gọi API đăng nhập để lấy token mới.
  3. ERP gọi API tìm kiếm người dùng sang vContract.
  4. vContract trả về danh sách người dùng phù hợp.
  5. ERP hiển thị hoặc sử dụng kết quả để gán vào luồng hợp đồng.

Điểm cần lưu ý là tất cả các API nghiệp vụ gọi sang vContract đều cần token hợp lệ. Vì vậy, phần quản lý token nên được thiết kế riêng, có cơ chế kiểm tra hết hạn, refresh hoặc đăng nhập lại khi cần.

5. Luồng đồng bộ tỉnh, huyện, xã để chuẩn hóa dữ liệu địa chỉ

Trong hợp đồng điện tử, thông tin địa chỉ của khách hàng, tổ chức, cá nhân hoặc đại diện thường cần mã tỉnh/thành phố, quận/huyện, phường/xã đúng theo danh mục của vContract. Nếu hệ thống đối tác gửi sai mã địa bàn, yêu cầu tạo hợp đồng có thể bị lỗi hoặc callback trả về lỗi dữ liệu địa chỉ.

Vì vậy, trước khi tích hợp tạo hợp đồng, doanh nghiệp nên thực hiện đồng bộ danh mục địa bàn từ vContract về hệ thống nội bộ. Nhóm API danh mục thường gồm:

  • API lấy danh sách tỉnh/thành phố.
  • API lấy danh sách quận/huyện theo tỉnh/thành phố.
  • API lấy danh sách phường/xã theo quận/huyện.

Không nên tự nhập mã địa bàn bằng tay nếu hệ thống cần vận hành lâu dài. Cách làm tốt hơn là định kỳ đồng bộ danh mục, lưu lại mã, tên, trạng thái hoạt động và quan hệ cha con giữa tỉnh, huyện, xã. Khi người dùng chọn địa chỉ trên ERP/CRM, hệ thống sẽ lấy đúng mã đã đồng bộ để gửi sang vContract.

6. Luồng tạo hợp đồng qua API vContract

Luồng ký hợp đồng là phần quan trọng nhất trong tích hợp API vContract. Đây là quá trình hệ thống đối tác đẩy hồ sơ hợp đồng sang vContract để tạo hợp đồng điện tử và chuẩn bị cho luồng ký. Theo mô hình kỹ thuật, bước tạo hợp đồng không chỉ gồm một API duy nhất mà thường gồm hai giai đoạn: upload file và gửi dữ liệu tạo hợp đồng.

6.1. Bước 1: Upload file hợp đồng

Trước khi tạo hợp đồng, hệ thống đối tác cần upload file hợp đồng lên vContract. File thường là PDF, đại diện cho nội dung hợp đồng cần ký hoặc tài liệu đính kèm. Sau khi upload thành công, vContract trả về thông tin file để hệ thống đối tác ánh xạ vào dữ liệu tạo hợp đồng.

Lưu ý triển khai: nên kiểm tra định dạng file, dung lượng file, tên file, số lượng file và mã hợp đồng trước khi gọi API upload. Không nên để người dùng upload file tùy ý rồi mới phát hiện lỗi ở bước tạo hợp đồng.

6.2. Bước 2: Gửi dữ liệu tạo hợp đồng

Sau khi upload file thành công, hệ thống gọi API tạo hợp đồng để gửi thông tin khách hàng, thông tin hợp đồng, danh sách bên ký, file đính kèm, vị trí ký, người ký nội bộ và các dữ liệu cần thiết khác. vContract sẽ kiểm tra định dạng dữ liệu, tiếp nhận yêu cầu hợp lệ và đưa hợp đồng vào luồng xử lý nền.

Yêu cầu tạo hợp đồng cần có mã yêu cầu riêng. Mã này nên là duy nhất để hệ thống có thể đối soát, tra cứu trạng thái và tránh tạo trùng khi gọi lại API.

6.3. Bước 3: vContract xử lý nền

Sau khi nhận yêu cầu, vContract không nhất thiết hoàn tất toàn bộ việc tạo hợp đồng ngay tại thời điểm trả response. Hệ thống có thể tiếp nhận yêu cầu, sau đó xử lý nền, kiểm tra khách hàng, kiểm tra hợp đồng, kiểm tra file, tạo hồ sơ và callback kết quả về hệ thống đối tác.

Cách thiết kế này giúp xử lý được các yêu cầu lớn, nhiều hợp đồng hoặc nhiều file mà không làm request bị treo quá lâu. Tuy nhiên, hệ thống đối tác cần xây dựng cơ chế cập nhật trạng thái bất đồng bộ thông qua callback và API tra cứu.

7. Luồng xử lý tạo hợp đồng trong nền

Sau khi yêu cầu tạo hợp đồng được vContract tiếp nhận, hệ thống tiến hành kiểm tra dữ liệu khách hàng và từng hợp đồng trong yêu cầu. Nếu dữ liệu khách hàng không hợp lệ, vContract có thể callback lỗi ở cấp yêu cầu. Nếu dữ liệu khách hàng hợp lệ nhưng một hợp đồng cụ thể bị lỗi, vContract có thể callback lỗi theo từng hợp đồng.

Luồng xử lý thường gồm:

  1. Validate dữ liệu khách hàng.
  2. Nếu dữ liệu khách hàng lỗi, callback kết quả lỗi về ERP.
  3. Nếu dữ liệu khách hàng hợp lệ, lấy từng hợp đồng trong danh sách để xử lý.
  4. Validate dữ liệu từng hợp đồng, file, bên ký, vị trí ký và người ký.
  5. Nếu hợp đồng lỗi, callback lỗi theo hợp đồng.
  6. Nếu hợp đồng hợp lệ, tạo hợp đồng trên vContract.
  7. Sau khi xử lý xong toàn bộ yêu cầu, callback kết quả hoàn tất cấp request.

Do một request có thể chứa nhiều hợp đồng, ERP cần phân biệt rõ kết quả cấp request và kết quả cấp contract. Nếu chỉ lưu trạng thái ở cấp request, doanh nghiệp có thể không biết hợp đồng nào thành công, hợp đồng nào lỗi.

8. Luồng thực hiện ký hợp đồng điện tử

Sau khi hợp đồng được tạo, hợp đồng có thể ở trạng thái nháp hoặc trạng thái chờ xử lý tùy cấu hình. Để bắt đầu luồng ký, doanh nghiệp có thể thực hiện theo hai cách: gọi API khởi chạy luồng ký từ ERP hoặc người dùng đăng nhập vào vContract và bấm thao tác thực hiện luồng ký trên giao diện.

Khi luồng ký được khởi chạy thành công, vContract sẽ callback kết quả về hệ thống đối tác. Từ thời điểm này, hợp đồng chuyển sang trạng thái đang xử lý, các bên ký hoặc người duyệt sẽ thực hiện theo thứ tự luồng đã cấu hình.

Trong thực tế, doanh nghiệp cần xác định rõ các kịch bản:

  • Hợp đồng cần ký bởi khách hàng trước hay ký nội bộ trước?
  • Có bước duyệt trước khi ký hay không?
  • Có nhiều người ký nội bộ không?
  • Khách hàng là cá nhân hay tổ chức?
  • Có cần ký bằng chứng thư số, SIM CA, OTP hoặc phương thức xác thực khác không?
  • Khi một bên từ chối ký thì hợp đồng dừng hay quay về bước chỉnh sửa?

9. Luồng hủy ký, từ chối ký và xóa hợp đồng

Trong vòng đời hợp đồng, không phải hợp đồng nào cũng đi đến trạng thái hoàn tất. Có nhiều tình huống hợp đồng cần hủy luồng ký, khách hàng từ chối ký hoặc hệ thống xóa hợp đồng không còn sử dụng. API vContract có các luồng hỗ trợ xử lý những trường hợp này.

9.1. Hủy luồng ký

Hủy luồng ký được sử dụng khi hợp đồng đã được khởi chạy luồng ký nhưng cần dừng lại. Nguyên nhân có thể do sai dữ liệu, sai file, sai người ký hoặc phát sinh thay đổi nghiệp vụ. Hủy luồng ký có thể thực hiện bằng API từ ERP hoặc thao tác trên giao diện vContract tùy quyền.

9.2. Từ chối ký

Khi một người dùng hoặc khách hàng từ chối ký, vContract sẽ ghi nhận trạng thái từ chối và callback về hệ thống đối tác. ERP cần xử lý trạng thái này để thông báo cho nhân sự phụ trách, cập nhật tiến trình và quyết định có tạo lại hợp đồng mới hay không.

9.3. Xóa hợp đồng

API xóa hợp đồng được sử dụng khi doanh nghiệp cần xóa hợp đồng theo điều kiện được phép. Sau khi xóa thành công, vContract có thể callback kết quả về hệ thống đối tác. Chức năng này cần phân quyền chặt chẽ, ghi log và tránh gọi nhầm do tác động trực tiếp đến dữ liệu hợp đồng.

10. Luồng tải file hợp đồng

API tải file cho phép hệ thống đối tác lấy file hợp đồng từ vContract về để lưu trữ, đối soát hoặc cung cấp cho hệ thống nội bộ. Với hợp đồng chưa hoàn tất, hệ thống có thể xử lý file theo trạng thái chưa hiệu lực. Với hợp đồng đã ký xong, file tải về thường là file hợp đồng đã hoàn tất theo luồng ký.

Khi thiết kế chức năng tải file, doanh nghiệp cần lưu ý:

  • Chỉ cho phép tải file với tài khoản hoặc hệ thống có quyền.
  • Không tải file liên tục không cần thiết gây tải hệ thống.
  • Lưu metadata kèm file: mã hợp đồng, thời điểm tải, trạng thái, phiên bản.
  • Kiểm tra dung lượng file trước khi lưu vào hệ thống nội bộ.
  • Thiết kế thư mục lưu trữ hoặc kho tài liệu bảo đảm an toàn dữ liệu.

11. API tra cứu trạng thái request và trạng thái hợp đồng

Ngoài callback, vContract còn cung cấp API để hệ thống đối tác chủ động tra cứu trạng thái xử lý. Có hai nhóm tra cứu cần phân biệt:

Nhóm tra cứu Ý nghĩa Khi nào dùng?
Tra cứu trạng thái request Lấy kết quả xử lý của toàn bộ yêu cầu gửi sang vContract. Dùng khi một request chứa nhiều hợp đồng hoặc cần đối soát cấp yêu cầu.
Tra cứu trạng thái hợp đồng Lấy trạng thái xử lý hiện tại của từng hợp đồng. Dùng khi cần biết hợp đồng đang ở bước nào, ai đang xử lý, đã ký hay chưa.

Callback là cơ chế chủ động từ vContract, còn API tra cứu là cơ chế chủ động từ ERP. Trong vận hành thực tế, nên kết hợp cả hai. Callback giúp cập nhật nhanh, API tra cứu giúp đối soát khi callback bị mất, timeout hoặc hệ thống ERP bảo trì.

12. Nhóm API mẫu hợp đồng

Với doanh nghiệp sử dụng mẫu hợp đồng, API vContract hỗ trợ các nghiệp vụ liên quan đến danh sách mẫu, chi tiết mẫu và tải file mẫu. Đây là nhóm API hữu ích khi doanh nghiệp muốn tự động tạo hợp đồng từ template thay vì upload sẵn từng file PDF.

Nhóm nghiệp vụ mẫu hợp đồng thường gồm:

  • Lấy danh sách mẫu hợp đồng đang có.
  • Lấy thông tin chi tiết của mẫu hợp đồng.
  • Lấy danh sách trường dữ liệu cần nhập vào mẫu.
  • Lấy thông tin cấu hình trường, kiểu dữ liệu, lựa chọn, ràng buộc dữ liệu.
  • Tải file mẫu hợp đồng khi cần.

Khi triển khai theo template, đội ngũ kỹ thuật cần phối hợp với bộ phận nghiệp vụ để chuẩn hóa mergeField, tên trường, kiểu dữ liệu, độ dài, trường bắt buộc và vị trí ký. Nếu template thay đổi mà ERP không cập nhật mapping, hợp đồng tạo ra có thể thiếu dữ liệu hoặc sai vị trí.

13. Các nhóm DTO quan trọng khi tạo hợp đồng

DTO là cấu trúc dữ liệu dùng để truyền thông tin giữa hệ thống đối tác và vContract. Khi tích hợp API tạo hợp đồng, việc hiểu đúng DTO là yếu tố quyết định sự ổn định của hệ thống.

DTO Nội dung chính Lưu ý khi tích hợp
CustomerInfoDTO Thông tin khách hàng cá nhân hoặc tổ chức. Cần đúng loại khách hàng, mã khách hàng, thông tin liên hệ và định danh.
PaymentInfoDTO Thông tin thanh toán của khách hàng. Chỉ truyền khi nghiệp vụ cần, không nên truyền dữ liệu không sử dụng.
ContactInfoDTO Địa chỉ, số điện thoại, email, họ tên liên hệ. Số điện thoại, email phải đúng định dạng; địa bàn phải đúng mã danh mục.
CityDTO/DistrictDTO/WardDTO Mã tỉnh, huyện, xã. Nên đồng bộ từ danh mục vContract để tránh lỗi mã không tồn tại.
IdentityInfoDTO Thông tin định danh, loại khách hàng, mã số thuế hoặc giấy tờ. Cần kiểm tra định dạng trước khi gửi.
RepresentDTO Thông tin người đại diện của tổ chức. Bắt buộc trong nhiều trường hợp khách hàng là tổ chức.
ContractDTO Thông tin hợp đồng cần tạo. Cần mã hợp đồng duy nhất, loại hợp đồng, file, bên ký và thông tin liên quan.
PartnerDTO Thông tin các bên tham gia ký hợp đồng. Phải khớp với khách hàng, người ký và tài liệu liên quan.
AttachmentDTO Thông tin file hợp đồng hoặc tài liệu đính kèm. Path/fileName phải khớp với kết quả upload file.
SignPositionDTO Thông tin vị trí ký trên file. Cần đúng trang, tọa độ, người ký và tài liệu tương ứng.
SignerInfoDTO Thông tin người ký nội bộ của bên tạo hợp đồng. Username phải thuộc đúng doanh nghiệp/tài khoản được cấu hình.
ContractTemplateDTO Thông tin tạo hợp đồng từ mẫu. Cần mapping đúng mergeField và dữ liệu đầu vào.

14. Dữ liệu khách hàng cần chuẩn hóa trước khi gửi API

Dữ liệu khách hàng là nhóm dữ liệu thường gây lỗi nhất khi tích hợp hợp đồng điện tử. Nguyên nhân phổ biến là thiếu số điện thoại, email sai định dạng, mã địa bàn không tồn tại, mã số thuế sai cấu trúc, thông tin đại diện tổ chức chưa đầy đủ hoặc mã khách hàng bị trùng.

Trước khi gọi API tạo hợp đồng, ERP nên có lớp validate dữ liệu riêng:

  • Kiểm tra tên khách hàng không rỗng và không vượt độ dài cho phép.
  • Phân biệt khách hàng cá nhân và khách hàng tổ chức.
  • Kiểm tra số điện thoại theo định dạng được chấp nhận.
  • Kiểm tra email đúng cấu trúc cơ bản.
  • Kiểm tra mã tỉnh, huyện, xã có tồn tại trong danh mục đã đồng bộ.
  • Kiểm tra mã số thuế theo định dạng phù hợp nếu là tổ chức.
  • Kiểm tra thông tin người đại diện nếu khách hàng là doanh nghiệp hoặc tổ chức.
  • Kiểm tra mã khách hàng không chứa khoảng trắng ở giữa nếu quy định không cho phép.

Nếu làm tốt bước validate ở hệ thống nguồn, số lỗi callback từ vContract sẽ giảm đáng kể, giúp vận hành ổn định hơn.

15. Dữ liệu hợp đồng và file đính kèm cần chuẩn hóa

Dữ liệu hợp đồng không chỉ gồm mã hợp đồng và tên hợp đồng. Một hợp đồng điện tử đầy đủ thường cần loại hợp đồng, danh sách file, danh sách bên ký, vị trí ký, người tạo, người ký nội bộ, trạng thái khởi tạo và các trường mở rộng nếu có.

Đối với file hợp đồng, cần lưu ý các điểm sau:

  • File nên là PDF và đã được kiểm tra trước khi upload.
  • Số lượng file không nên vượt giới hạn được cấu hình.
  • Tổng dung lượng file cần được kiểm tra trước khi gửi.
  • Tên file không nên trùng trong cùng một danh sách upload.
  • File hợp đồng chính cần được đánh dấu đúng loại tài liệu.
  • Path hoặc mã file trả về từ bước upload phải được mapping đúng vào hợp đồng.

Ví dụ payload minh họa an toàn, đã ẩn thông tin thật:

{
“requestCode”: “REQ_YYYYMMDD_000001”,
“customerList”: [
{
“cusName”: “Tên khách hàng hoặc tổ chức”,
“businessType”: 1,
“customerCode”: “CUSTOMER_CODE”,
“contactInfo”: {
“phoneNumber”: “0xxxxxxxxx”,
“email”: “email@example.com”,
“city”: {“code”: “CITY_CODE”},
“district”: {“code”: “DISTRICT_CODE”},
“ward”: {“code”: “WARD_CODE”}
}
}
],
“contractList”: [
{
“contractCode”: “CONTRACT_CODE”,
“contractName”: “Tên hợp đồng”,
“attachmentList”: []
}
]
}

Đoạn minh họa trên chỉ dùng để hiểu cấu trúc tổng quát, không thay thế tài liệu kỹ thuật chính thức khi triển khai.

16. Vị trí ký và người ký trong hợp đồng điện tử

Vị trí ký là phần rất quan trọng khi tạo hợp đồng điện tử. Nếu vị trí ký sai, người ký có thể không thấy ô ký, ký nhầm vị trí, hoặc hệ thống báo lỗi do vị trí ký không khớp với tài liệu. Khi tích hợp API, đội kỹ thuật cần phối hợp với bộ phận nghiệp vụ để xác định chính xác trang ký, tọa độ ký, kích thước vùng ký và người ký tương ứng.

Một số nguyên tắc nên áp dụng:

  • Chuẩn hóa mẫu hợp đồng để vị trí ký ổn định.
  • Không để nội dung hợp đồng tự co giãn làm thay đổi trang ký.
  • Kiểm tra số trang file PDF trước khi gửi vị trí ký.
  • Phân biệt vị trí ký của khách hàng, đại diện doanh nghiệp và người ký nội bộ.
  • Nếu hợp đồng có nhiều file, cần xác định vị trí ký thuộc file nào.
  • Kiểm thử với nhiều loại hợp đồng thực tế trước khi chạy production.

17. Callback từ vContract về hệ thống đối tác

Callback là cơ chế vContract chủ động gọi về hệ thống đối tác để thông báo kết quả xử lý. Đây là phần bắt buộc phải thiết kế cẩn thận nếu doanh nghiệp muốn tự động đồng bộ trạng thái hợp đồng.

Các loại callback thường gặp gồm:

  • Thông báo kết quả tiếp nhận hoặc xử lý request.
  • Thông báo kết quả tạo từng hợp đồng.
  • Thông báo người dùng đã ký hợp đồng.
  • Thông báo khách hàng đã ký hoặc từ chối ký.
  • Thông báo người dùng nội bộ đã duyệt, ký hoặc từ chối.
  • Thông báo hủy luồng ký.
  • Thông báo lỗi khi đẩy xác thực hoặc hoàn tất hợp đồng.
  • Thông báo hợp đồng bị xóa.

Endpoint callback của ERP nên trả response nhanh, sau đó đưa dữ liệu vào hàng đợi xử lý nội bộ. Không nên xử lý quá nhiều nghiệp vụ nặng ngay trong request callback, vì có thể gây timeout hoặc làm vContract hiểu rằng callback thất bại.

18. Danh sách trạng thái thường gặp trong luồng hợp đồng

Khi xây dựng màn hình theo dõi hợp đồng trên ERP/CRM, doanh nghiệp nên ánh xạ các trạng thái kỹ thuật thành trạng thái nghiệp vụ dễ hiểu cho người dùng cuối.

Nhóm trạng thái Ý nghĩa nghiệp vụ Gợi ý hiển thị trên ERP
Khách hàng đã ký Khách hàng hoàn tất thao tác ký/duyệt hợp đồng. Khách hàng đã ký
Khách hàng từ chối Khách hàng không đồng ý ký hợp đồng. Khách hàng từ chối ký
Người dùng nội bộ đã duyệt Người trong doanh nghiệp đã duyệt hợp đồng. Đã duyệt nội bộ
Người dùng nội bộ đã ký Người trong doanh nghiệp đã ký hợp đồng. Đã ký nội bộ
Người dùng nội bộ từ chối Người xử lý nội bộ từ chối ký hoặc duyệt. Nội bộ từ chối
Đã hủy luồng ký Luồng ký bị hủy qua API hoặc thao tác người dùng. Đã hủy luồng ký
Lỗi xử lý Có lỗi hệ thống, lỗi dữ liệu, lỗi file hoặc lỗi nghiệp vụ. Lỗi cần xử lý
Hoàn tất Hợp đồng đã hoàn tất theo quy trình. Hoàn tất
Đã xóa Hợp đồng đã được xóa theo nghiệp vụ. Đã xóa

19. Bảng lỗi thường gặp khi tích hợp API vContract

Khi tích hợp API, lỗi có thể phát sinh từ nhiều nguồn: xác thực, IP truy cập, dữ liệu khách hàng, file hợp đồng, vị trí ký, người ký, template hoặc lỗi hệ thống. Thay vì chỉ hiển thị mã lỗi thô, ERP nên chuyển đổi lỗi thành thông báo dễ hiểu cho nhân sự vận hành.

Nhóm lỗi Nguyên nhân thường gặp Hướng xử lý đề xuất
Lỗi đăng nhập API Sai thông tin xác thực, tài khoản bị khóa, IP chưa được cấp quyền, mã hệ thống không khớp. Kiểm tra tài khoản tích hợp, cấu hình IP, mã hệ thống và quyền truy cập.
Lỗi upload file File không phải PDF, file quá dung lượng, vượt số lượng file, trùng tên file, thiếu file. Validate file trước khi upload, giới hạn dung lượng và chuẩn hóa tên file.
Lỗi mã địa bàn Mã tỉnh, huyện, xã không tồn tại hoặc không đúng quan hệ cha con. Đồng bộ danh mục từ vContract và chỉ cho chọn mã hợp lệ.
Lỗi khách hàng Thiếu tên, sai số điện thoại, sai email, thiếu giấy tờ, thiếu người đại diện. Bổ sung rule kiểm tra dữ liệu khách hàng trước khi gửi API.
Lỗi mã hợp đồng Mã hợp đồng đã tồn tại hoặc requestCode không duy nhất. Sinh mã duy nhất, lưu trạng thái request và chống gọi trùng.
Lỗi người ký Username không thuộc doanh nghiệp, người ký chưa được cấu hình, sai bên ký. Kiểm tra danh sách user và mapping người ký trước khi tạo hợp đồng.
Lỗi vị trí ký Sai documentNumber, sai trang, sai tọa độ, vị trí ký không thuộc người ký hợp lệ. Kiểm thử mẫu hợp đồng, chuẩn hóa trang ký và mapping vị trí ký.
Lỗi template Trường mergeField thiếu, kiểu dữ liệu sai, template thay đổi nhưng ERP chưa cập nhật. Đồng bộ lại template và kiểm tra mapping trường dữ liệu.
Lỗi callback Endpoint không truy cập được, timeout, firewall chặn, response không đúng. Kiểm tra log máy chủ, mở whitelist, thiết kế xử lý callback nhanh.

20. Kiến trúc triển khai đề xuất cho hệ thống tích hợp

Để tích hợp ổn định, không nên gọi API vContract trực tiếp rải rác từ nhiều module khác nhau. Doanh nghiệp nên xây dựng một lớp dịch vụ tích hợp trung gian, gọi là Integration Service hoặc vContract Connector. Lớp này chịu trách nhiệm đăng nhập, quản lý token, gửi request, nhận callback, ghi log và chuẩn hóa lỗi.

Thành phần Chức năng đề xuất
Token Manager Quản lý đăng nhập, token, thời hạn token và đăng nhập lại khi token hết hạn.
API Client Đóng gói các hàm gọi API vContract, chuẩn hóa request/response.
Validation Layer Kiểm tra dữ liệu trước khi gửi sang vContract.
Callback Receiver Nhận callback, xác thực, ghi log và đẩy vào hàng đợi xử lý.
Queue Worker Xử lý bất đồng bộ, cập nhật trạng thái hợp đồng về ERP/CRM.
Monitoring Dashboard Theo dõi lỗi, trạng thái request, trạng thái contract và callback.
Audit Log Lưu lịch sử request, response, callback, người thao tác và thời điểm xử lý.

Kiến trúc này giúp hệ thống dễ bảo trì, dễ mở rộng và hạn chế rủi ro khi thay đổi API, thay đổi template hoặc thay đổi luồng nghiệp vụ.

21. Quy trình triển khai tích hợp API vContract theo từng giai đoạn

Triển khai API vContract nên chia thành nhiều giai đoạn để tránh làm một lần quá lớn, khó kiểm soát lỗi. Một quy trình đề xuất gồm:

  1. Khảo sát nghiệp vụ: xác định loại hợp đồng, số lượng, luồng ký, người ký, hệ thống nguồn và hệ thống đích.
  2. Rà soát dữ liệu: kiểm tra dữ liệu khách hàng, địa chỉ, mã số thuế, email, số điện thoại, mẫu hợp đồng.
  3. Thiết kế luồng tích hợp: xác định API cần dùng, callback cần nhận, trạng thái cần lưu và quy tắc đối soát.
  4. Cấu hình môi trường UAT: chuẩn bị tài khoản, IP, endpoint callback, chứng chỉ nếu có và thông tin kết nối.
  5. Phát triển API client: xây dựng các hàm đăng nhập, upload file, tạo hợp đồng, ký, tra cứu và tải file.
  6. Phát triển callback: nhận callback, xác thực, ghi log, xử lý hàng đợi và cập nhật ERP.
  7. Kiểm thử dữ liệu đúng: tạo hợp đồng thành công, ký thành công, tải file thành công.
  8. Kiểm thử dữ liệu lỗi: thiếu file, sai mã địa bàn, sai email, trùng mã hợp đồng, sai người ký, từ chối ký.
  9. Nghiệm thu nghiệp vụ: để bộ phận sử dụng kiểm tra quy trình thực tế.
  10. Triển khai production: chuyển cấu hình chính thức, bật monitoring và theo dõi sát giai đoạn đầu.

22. Checklist trước khi chạy chính thức

Trước khi chuyển sang môi trường chính thức, doanh nghiệp nên kiểm tra đầy đủ checklist sau:

  • Đã có tài khoản tích hợp chính thức và phân quyền đúng.
  • Đã cấu hình IP gọi API được phép truy cập.
  • Đã cấu hình endpoint callback production.
  • Đã mã hóa hoặc bảo vệ thông tin xác thực trong biến môi trường/kho bí mật.
  • Đã kiểm thử upload file PDF thực tế.
  • Đã kiểm thử tạo hợp đồng cá nhân và tổ chức.
  • Đã kiểm thử người ký nội bộ và khách hàng bên ngoài.
  • Đã kiểm thử từ chối ký, hủy luồng ký và xóa hợp đồng nếu sử dụng.
  • Đã kiểm thử callback khi ký thành công, lỗi và hoàn tất.
  • Đã có dashboard hoặc báo cáo lỗi cho vận hành.
  • Đã có quy trình xử lý khi callback bị mất hoặc trạng thái không đồng bộ.
  • Đã phân quyền người được phép thao tác với hợp đồng trên hệ thống nội bộ.

23. Lưu ý bảo mật khi tích hợp API vContract

Hợp đồng điện tử thường chứa thông tin khách hàng, thông tin tổ chức, dữ liệu cá nhân, điều khoản thương mại và tài liệu pháp lý quan trọng. Vì vậy, bảo mật phải được đặt lên hàng đầu khi tích hợp API.

Nguyên tắc quan trọng: không đưa tài khoản, mật khẩu, token, secret key hoặc dữ liệu thật vào mã nguồn, tài liệu công khai, bài viết hướng dẫn hoặc ảnh chụp màn hình.
  • Sử dụng HTTPS cho toàn bộ kết nối API và callback.
  • Lưu thông tin xác thực trong biến môi trường hoặc hệ thống quản lý secret.
  • Không log toàn bộ nội dung hợp đồng hoặc giấy tờ cá nhân nếu không cần thiết.
  • Che dữ liệu nhạy cảm trong log, ví dụ số giấy tờ, token, mật khẩu.
  • Giới hạn IP được phép gọi API và nhận callback.
  • Phân quyền rõ người được xem, tải, hủy, xóa hợp đồng.
  • Có cơ chế cảnh báo khi số lỗi tăng bất thường hoặc có truy cập lạ.
  • Sao lưu dữ liệu tích hợp và log quan trọng theo chính sách của doanh nghiệp.

24. Gợi ý nội dung đào tạo cho đội vận hành

Sau khi tích hợp xong, đội vận hành cần được đào tạo để hiểu trạng thái hợp đồng và cách xử lý lỗi. Nếu chỉ đội kỹ thuật hiểu API còn người dùng nghiệp vụ không hiểu trạng thái, quy trình vẫn có thể bị tắc.

Nhóm người dùng Nội dung cần đào tạo
Nhân sự kinh doanh Cách tạo giao dịch, kiểm tra hợp đồng đã phát sinh, theo dõi trạng thái khách hàng ký.
Bộ phận pháp chế Cách kiểm tra mẫu hợp đồng, điều khoản, vị trí ký, trạng thái hoàn tất.
Kế toán/đối soát Cách tra cứu hợp đồng đã ký, tải file, đối chiếu mã hợp đồng và khách hàng.
Đội kỹ thuật Cách xem log, retry request, xử lý callback lỗi, đối soát trạng thái.
Quản trị hệ thống Phân quyền, giám sát token, giám sát endpoint callback và cấu hình môi trường.

25. Câu hỏi thường gặp khi tích hợp API vContract

25.1. Có bắt buộc phải tích hợp API mới dùng được vContract không?

Không. Doanh nghiệp có thể sử dụng vContract trực tiếp trên giao diện web. API phù hợp khi doanh nghiệp muốn tự động hóa, đồng bộ với hệ thống nội bộ hoặc xử lý số lượng hợp đồng lớn.

25.2. Có thể vừa dùng giao diện web vừa dùng API không?

Có. Nhiều doanh nghiệp dùng API để tự động tạo hợp đồng từ ERP, đồng thời nhân sự vẫn có thể vào giao diện vContract để kiểm tra, xử lý hoặc thao tác theo quyền được cấp.

25.3. Khi callback bị lỗi thì có mất trạng thái hợp đồng không?

Nếu callback không nhận được hoặc xử lý lỗi, ERP nên có cơ chế tra cứu trạng thái chủ động bằng API để đối soát lại. Vì vậy, nên kết hợp callback và polling có kiểm soát.

25.4. Có thể tạo hợp đồng từ mẫu không?

Có thể triển khai theo mẫu hợp đồng nếu doanh nghiệp đã cấu hình template và mapping đúng các trường dữ liệu. Cách này phù hợp khi nội dung hợp đồng có cấu trúc ổn định.

25.5. Vì sao tạo hợp đồng thường lỗi ở bước đầu?

Nguyên nhân phổ biến là dữ liệu đầu vào chưa chuẩn: thiếu mã địa bàn, email sai, số điện thoại sai, mã khách hàng trùng, file chưa upload thành công, vị trí ký sai hoặc người ký chưa được cấu hình đúng.

26. Kết luận

Tích hợp API vContract Viettel là bước quan trọng giúp doanh nghiệp tự động hóa quy trình hợp đồng điện tử, đồng bộ dữ liệu với ERP/CRM/HRM và nâng cao hiệu quả vận hành. Thay vì xử lý hợp đồng rời rạc, doanh nghiệp có thể xây dựng một luồng khép kín từ phát sinh nghiệp vụ, tạo hợp đồng, gửi ký, nhận callback, tra cứu trạng thái đến lưu trữ file hoàn tất.

Để triển khai thành công, doanh nghiệp cần chuẩn hóa dữ liệu trước khi tích hợp, hiểu rõ các nhóm API, thiết kế callback ổn định, xây dựng cơ chế ghi log, kiểm thử đầy đủ các trường hợp lỗi và bảo mật thông tin xác thực. Khi các bước này được thực hiện bài bản, vContract có thể trở thành nền tảng hợp đồng điện tử tích hợp sâu vào hệ sinh thái số của doanh nghiệp.

Thông tin liên hệ tư vấn vContract Viettel

Hotline: 0979 288 617

Website: vcontract.net

Email: cuongnd16@viettel.com.vn

Chia sẻ:
Bài viết liên quan
Bài viết mới
ĐỊNH VỊ XE Ô TÔ
CAMERA HÀNH TRÌNH
VIETTEL HÀ NỘI