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

Bắt đầu nhanh

Bạn cần tài khoản quản trị đơn vị trên eDevice và đơn vị đã có sản lượng eID.

1. Tạo ứng dụng và lấy API key​

  1. Đăng nhập eDevice, mở mục Tích hợp API.
  2. Tạo ứng dụng mới. Bạn có thể đặt ngày hết hạn và giới hạn IP được gọi.
  3. Sao chép API key ngay khi hiện ra. Key chỉ hiển thị một lần. Nếu mất key, dùng Tạo lại khoá để lấy key mới.

Mỗi đơn vị tạo được tối đa 5 ứng dụng (VTS có thể điều chỉnh).

2. Đặt biến môi trường​

Mọi ví dụ trong tài liệu đọc key và địa chỉ API từ hai biến sau:

export EVERIFY_API_KEY="evf_live_..."            # key vừa sao chép
export EVERIFY_BASE_URL="https://everify.vtsi.vn/api/v1"

Kiểm tra key bằng cách xem số dư:

curl -sS "$EVERIFY_BASE_URL/balance" -H "X-API-Key: $EVERIFY_API_KEY"

3. Chuẩn bị dữ liệu chip​

Tạo file request.json. Các giá trị chip.* là base64 chuẩn của từng data group đọc từ chip:

request.json
{
"chip": {
"sod": "<base64 SOD từ chip>",
"dg1": "<base64 DG1 từ chip>",
"dg13": "<base64 DG13 từ chip>"
},
"client_ref": "HS-2026-000123"
}
Cần dữ liệu từ thẻ thật

Không có bộ dữ liệu mẫu dùng chung. Bộ Công an chỉ xác nhận dữ liệu đọc từ chip của một thẻ CCCD thật, nên bạn cần đọc thẻ bằng thiết bị hoặc SDK của mình.

  • Dữ liệu sai định dạng hoặc hỏ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 vẫn được gửi đi xác thực. Kết quả thường là INVALID và vẫn trừ 1 lượt.

Cách đọc chip xem tại eID C06.

4. Gọi xác thực​

Chọn ngôn ngữ. Lựa chọn được ghi nhớ trên các trang khác.

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

5. Đọc kết quả​

Khi có kết luận, API trả HTTP 200:

{
"request_id": "req_01JBF8...",
"data": {
"transaction_id": "txn_01JBF8...",
"client_ref": "HS-2026-000123",
"product": "eid.verify",
"result": "VALID",
"reason": null,
"id_number_masked": "0370****8043",
"verified_at": "2026-10-28T16:30:00.123Z",
"billing": { "quota_type": "eid_verify", "charged": 1, "balance_after": 4999 }
},
"error": null
}
  • data.result là VALID hoặc INVALID. Với INVALID, xem lý do ở data.reason.code: CARD_NOT_VERIFIED hoặc ID_NUMBER_NOT_MATCHED.
  • Cả VALID và INVALID đều trừ 1 lượt (billing.charged).
  • Nếu error khác null, request không được xử lý và không trừ lượt. Xem Mã lỗi.
  • Lưu request_id và transaction_id để đối soát hoặc gửi cho bộ phận hỗ trợ.

Gửi thử và công cụ​

Mỗi trang trong Tham chiếu API có khung Gửi thử để gọi API ngay trên trình duyệt.

Gửi thử gọi API thật

Có kết luận là trừ lượt, và cần dữ liệu chip thật. Nên tạo một ứng dụng riêng để thử và thu hồi key sau khi xong. Không dán key vào máy dùng chung.

Nếu muốn dùng công cụ riêng, tải các file dưới đây và nhập vào Postman, VS Code hoặc JetBrains. Các file có sẵn request cho mọi endpoint: xác thực eID, số dư, giao dịch, sổ biến động và tổng hợp sử dụng.

Tiếp theo​