Kiểm tra chữ ký số PDF API

Kiểm tra mọi chữ ký số trong file PDF: toàn vẹn, sửa sau khi ký, người ký (MST, CCCD), thời điểm ký, dấu thời gian và chuỗi tới Root CA quốc gia.

POSThttps://apibox.io.vn/v1/pdf-sign-verify
Bảo mật & Mã hoá▶ Dùng thử online

Tải lên file PDF đã ký số (hợp đồng, hoá đơn điện tử, công văn, báo cáo), API liệt kê mọi chữ ký và dấu thời gian tài liệu trong file. Với từng chữ ký, API kiểm tra tính toàn vẹn của phần nội dung được ký (giá trị băm của /ByteRange), chữ ký CMS / PKCS#7 với chứng thư người ký, và file có bị thêm dữ liệu sau khi ký không (modified_after_signing: phiên bản sau là bình thường khi có chữ ký thứ hai hoặc dữ liệu LTV, nhưng nên xem lại). document_unchanged_since_last_signature cho biết chữ ký cuối có bao trùm toàn bộ file hay không.

Chứng thư người ký được giải mã: tên, tổ chức, mã số thuế (MST) hoặc số CCCD / CMND trong thông tin chủ thể, CA cấp, số sê-ri, thời hạn và còn hiệu lực tại thời điểm ký không. Thời điểm ký lấy từ dấu thời gian RFC 3161 nếu có (kiểm tra cả giá trị băm và chữ ký của dấu thời gian), nếu không thì từ thuộc tính đã ký hoặc thời gian ghi trong PDF. Chuỗi chứng thư được dựng từ các chứng thư trong chữ ký cùng chứng thư Root CA và CA công cộng do Trung tâm Chứng thực điện tử quốc gia (NEAC, rootca.gov.vn) công bố: VNPT-CA, Viettel-CA, BkavCA, FPT-CA, MISA-CA và mọi CA công cộng được cấp phép, cùng CA chuyên dùng Chính phủ (Ban Cơ yếu Chính phủ); từng mắt xích được xác minh bằng mật mã, trusted_root là true khi chuỗi kết thúc ở một trong các Root CA này.

API không kiểm tra thu hồi (không gọi OCSP / CRL): địa chỉ CRL và OCSP của chứng thư được trả về để bạn tự kiểm tra khi cần. Kết quả là kiểm tra kỹ thuật, không thay cho thẩm định pháp lý văn bản. Hỗ trợ adbe.pkcs7.detached, ETSI.CAdES.detached, adbe.pkcs7.sha1 và dấu thời gian tài liệu ETSI.RFC3161; khoá RSA và ECDSA.

Tham số

TênVị tríKiểuBắt buộcMặc định
filebodyfilekhôngFile PDF đã ký (multipart, body thô hoặc file_base64), trong giới hạn dung lượng tệp của gói.
urlbody|querystringkhôngĐường dẫn công khai tới file PDF, thay cho việc tải lên.

Ví dụ

curl -X POST "https://apibox.io.vn/v1/pdf-sign-verify" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "0=@./my-file"

Kết quả trả về

{
  "signed": true,
  "signature_count": 1,
  "timestamp_count": 0,
  "all_valid": true,
  "all_trusted": true,
  "document_unchanged_since_last_signature": true,
  "has_ltv_data": false,
  "file_size": 222785,
  "signatures": [
    {
      "index": 1,
      "type": "signature",
      "sub_filter": "adbe.pkcs7.detached",
      "reason": "CHÍNH PHỦ<cp@chinhphu.vn> đã ký lên văn bản này!",
      "location": "Hà Nội",
      "claimed_signing_time": "2026-11-10T07:20:38.000Z",
      "covers_whole_file": true,
      "modified_after_signing": false,
      "integrity_valid": true,
      "signature_valid": true,
      "digest_algorithm": "SHA-256",
      "signing_time": "2026-11-10T07:20:39.000Z",
      "signing_time_source": "timestamp",
      "timestamp": {
        "time": "2026-11-10T07:20:39.000Z",
        "tsa": "Máy chủ cấp dấu thời gian CPNET",
        "serial_number": "42198483DA95DD67",
        "imprint_valid": true,
        "signature_valid": true
      },
      "certificate": {
        "common_name": "CHÍNH PHỦ",
        "organization": "CHÍNH PHỦ",
        "tax_code": null,
        "citizen_id": null,
        "issuer_common_name": "CA phục vụ các cơ quan Nhà nước G2",
        "serial_number": "75E92DD9AD56BD4D",
        "not_before": "2025-11-04T07:09:12.000Z",
        "not_after": "2030-11-03T07:09:12.000Z",
        "valid_at_signing": true,
        "expired": false,
        "key": {
          "algorithm": "RSA",
          "bits": 3072
        },
        "revocation_urls": {
          "crl": [
            "http://ca.gov.vn/pki/pub/crl/cpcag2.crl"
          ],
          "ocsp": [
            "http://ocsp.ca.gov.vn"
          ],
          "ca_issuers": [
            "http://ca.gov.vn/pki/pub/crt/cpcag2.crt"
          ]
        }
      },
      "chain": [
        {
          "subject": "CHÍNH PHỦ",
          "issuer": "CA phục vụ các cơ quan Nhà nước G2",
          "signature_verified_by_issuer": true,
          "in_ca_list": false,
          "trust_anchor": false
        },
        {
          "subject": "CA phục vụ các cơ quan Nhà nước G2",
          "issuer": "RootCA chuyên dùng Chính phủ G2",
          "signature_verified_by_issuer": true,
          "in_ca_list": true,
          "trust_anchor": false,
          "ca": "ban-co-yeu-chinh-phu"
        },
        {
          "subject": "RootCA chuyên dùng Chính phủ G2",
          "issuer": "RootCA chuyên dùng Chính phủ G2",
          "signature_verified_by_issuer": true,
          "in_ca_list": true,
          "trust_anchor": true,
          "ca": "ban-co-yeu-chinh-phu"
        }
      ],
      "chain_complete": true,
      "trusted_root": true,
      "trusted_root_name": "RootCA chuyên dùng Chính phủ G2",
      "certificates_valid_at_signing": true,
      "valid": true
    }
  ],
  "revocation_checked": false
}

Ứng dụng

  • Kiểm tra hợp đồng, hồ sơ khách hàng đã ký số trước khi tiếp nhận
  • Phát hiện file PDF bị sửa sau khi ký trong quy trình phê duyệt
  • Lấy mã số thuế người ký và thông tin chứng thư để lưu hồ sơ
  • Kiểm tra văn bản tải về từ cổng thông tin cơ quan nhà nước

Hỏi đáp

Có kiểm tra chứng thư bị thu hồi không?

Không. Địa chỉ CRL / OCSP của chứng thư được trả về trong revocation_urls để bạn tự kiểm tra nếu quy trình yêu cầu; kết quả ghi rõ revocation_checked: false.

Những CA nào được tin cậy?

Các Root CA do NEAC công bố trên rootca.gov.vn (Root CA quốc gia, G3 và các Root CA năm 2025) cùng mọi CA công cộng được cấp phép, và CA chuyên dùng Chính phủ (Ban Cơ yếu Chính phủ). Danh sách được cập nhật hằng tuần.

File PDF có bị lưu lại không?

Không. File chỉ được xử lý trong bộ nhớ cho lần gọi đó và không được lưu.

API liên quan

Bắt đầu với 1.000 request miễn phí mỗi tháng. Nhận API key miễn phí →