Chuyển tới nội dung chính

Xác thực CCCD gắn chip (eID C06)

C06 là dịch vụ của Bộ Công an để xác thực CCCD gắn chip. Hệ thống kiểm tra chứng thư số trong chip (qua SOD) và đối chiếu số CCCD với dữ liệu của Bộ Công an. eVerify thực hiện việc này qua POST /eid/verify và trả về kết luận VALID hoặc INVALID.

Không trả thông tin nhân thân

API chỉ trả kết luận và số CCCD đã che (id_number_masked). Thông tin cá nhân bạn đã có từ bước đọc chip.

Quy trình​

  1. Đọc chip CCCD bằng đầu đọc thẻ hoặc điện thoại có NFC, dùng SDK đọc chip eMRTD (ICAO 9303) của bạn.
  2. Mã hoá từng data group sang base64 chuẩn (không dùng base64url).
  3. Gửi request từ máy chủ của bạn, kèm X-API-Key và Idempotency-Key.
  4. Đọc kết quả (xem bên dưới).

Dữ liệu cần gửi​

TrườngBắt buộcGhi chú
chip.sodCóDùng để lấy DS certificate
chip.dg1Cần ít nhất một trong dg1, dg13, id_numberChứa số CCCD
chip.dg13Như trênChứa số CCCD
id_numberNhư trênSố CCCD 12 chữ số
chip.dg2, chip.dg14, chip.dg15KhôngĐược chấp nhận để tương thích SDK nhưng không được lưu
client_refKhôngMã giao dịch phía bạn, tối đa 64 ký tự

Nếu gửi cả id_number và DG1/DG13, số CCCD phải khớp với chip. Nếu không khớp, API trả 400 ID_NUMBER_MISMATCH.

request.json
{
"chip": {
"sod": "<base64 SOD từ chip>",
"dg1": "<base64 DG1 từ chip>",
"dg13": "<base64 DG13 từ chip>"
},
"client_ref": "HS-2026-000123"
}
Dữ liệu mẫu

Không có dữ liệu chip mẫu dùng chung. Bộ Công an chỉ xác nhận dữ liệu đọc từ một thẻ CCCD thật, nên hãy dùng thẻ thật khi thử. Dữ liệu sai định dạng bị từ chối với mã 400 và không trừ lượt. Dữ liệu đúng định dạng nhưng không phải của thẻ thật thường nhận INVALID và vẫn trừ 1 lượt.

Gọi API​

Các ví dụ đọc body từ request.json và dùng hai biến môi trường EVERIFY_API_KEY, EVERIFY_BASE_URL (xem Bắt đầu nhanh).

curl -sS -X POST "$EVERIFY_BASE_URL/eid/verify" \
-H "X-API-Key: $EVERIFY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
--max-time 30 \
--data @request.json
Idempotency-Key trong code thật

Tạo key một lần cho mỗi thao tác, ví dụ mỗi hồ sơ, và dùng lại key đó khi gửi lại. Các ví dụ trên tạo key mới mỗi lần chạy cho gọn.

Đọc kết quả​

Kết quảÝ nghĩaTrừ lượt
error = null, data.result = VALIDBộ Công an xác nhận thẻ hợp lệCó, 1 lượt
error = null, data.result = INVALID, data.reason.code = CARD_NOT_VERIFIEDBộ Công an không xác nhận chứng thư trong chipCó, 1 lượt
error = null, data.result = INVALID, data.reason.code = ID_NUMBER_NOT_MATCHEDBộ Công an báo số CCCD không khớp với thẻCó, 1 lượt
error khác nullKhông có kết luận. Xử lý theo mã lỗiKhông

Với lỗi tạm thời (429, 500, 502, 503, 504), gửi lại với cùng Idempotency-Key.