Skip to content

Xác minh sanity thẻ ID ​

Kiểm tra chất lượng của một hoặc hai ảnh thẻ ID (ID card) và trả về một kết luận (verdict) như good, image1_not_qualified hoặc photocopied. Hãy chạy bước này trước Đọc thông tin thẻ ID, Phát hiện giả mạo thẻ ID hoặc So sánh khuôn mặt — một ảnh thẻ chất lượng kém sẽ làm giảm độ tin cậy của mọi kiểm tra downstream.

Endpoint ​

http
POST /v1/verify_id_card_sanity_sync
Content-Type: application/json
json
{
  "card_type": "vn.national_id",
  "image1": {
    "id": "7db00808-0416-45cf-a5cb-3b6dfbd7bb74",
    "base64": "",
    "label": "id_card.vn.national_id.front",
    "metadata": "{}"
  },
  "image2": {
    "id": "a4facba3-334b-41fb-97e3-4766cb70ae29",
    "base64": "",
    "label": "id_card.vn.national_id.back",
    "metadata": "{}"
  },
  "special_id_type": ""
}

Tham số:

Tham sốKiểuBắt buộcMặc địnhMô tả
card_typestringCó—Loại thẻ định danh. Xem Khuyến nghị sử dụng.
image1ImageDataCó—Ảnh mặt trước của thẻ, hoặc mặt sau khi image2 để trống.
image2ImageDataKhông—Ảnh mặt sau của thẻ.
special_id_typestringKhôngdefaultChuỗi ID do CAKE cung cấp để chọn một use case đặc biệt. Bỏ qua để dùng mặc định.

ImageData ​

Tham sốKiểuBắt buộcMặc địnhMô tả
idstringKhông—ID của ảnh được trả về bởi Tải ảnh lên.
base64stringKhông—Văn bản dữ liệu ảnh mã hóa Base64.
labelstringKhông—Nhãn của ảnh, như mô tả trong Khuyến nghị sử dụng.
metadatastring_jsonKhông—Chuỗi JSON key/value. Ví dụ: {"id":"<ID>","type":1}

Chỉ cung cấp id hoặc base64 cho mỗi ảnh, không bao giờ cả hai.

Ví dụ request ​

bash
curl -X POST \
  '<BASE_URL>/v1/verify_id_card_sanity_sync' \
  -H 'Authorization: ATV <ACCESS_ID>:<SIGNATURE>' \
  -H 'X-TV-Timestamp: <TIMESTAMP>' \
  -H 'Content-Type: application/json' \
  -d '{
    "card_type": "vn.national_id",
    "image1": { "id": "7db00808-0416-45cf-a5cb-3b6dfbd7bb74" },
    "image2": { "id": "a4facba3-334b-41fb-97e3-4766cb70ae29" }
  }'

Response ​

json
{
  "data": {
    "status": "success",
    "card_sanity": {
      "score": 1,
      "verdict": "good"
    },
    "image1": {
      "id": "3ebebfe1-cf6c-4c7a-bee2-2dba834a6f1d",
      "transformed_image_id": "",
      "card_box": null
    },
    "image2": null,
    "request_id": "f77bf948-fce3-48f3-b61c-396e4cd9a89b"
  },
  "errors": []
}
TrườngKiểuMô tả
data.statusstringsuccess hoặc failure.
data.card_sanity.verdictstringgood, hoặc vấn đề đầu tiên phát hiện được. Xem Định nghĩa kết luận.
data.card_sanity.scorefloatKhoảng 0–1. Khi verdict là good, score là 1; với các kết luận khác, giá trị càng cao nghĩa là thẻ càng có khả năng không đạt yêu cầu.
data.card_sanity.infostringNgữ cảnh bổ sung tùy chọn — ví dụ 6 chữ số cuối của chip CCCD.
data.image1ImageResultKết quả cho ảnh thứ nhất.
data.image2ImageResultKết quả cho ảnh thứ hai, hoặc null khi không được cung cấp.
data.request_idstringRequest ID; cung cấp cho CAKE Support khi cần kiểm tra log.

ImageResult ​

TrườngKiểuMô tả
idstringID của ảnh đã phân tích.
transformed_image_idstringID của ảnh đã biến đổi, chỉ có mặt khi ảnh đã được biến đổi.
card_boxCardBoxTọa độ các góc của thẻ được phát hiện: top_left, top_right, bottom_left, bottom_right, mỗi góc { "x": int, "y": int }.

Chỉ vấn đề đầu tiên phát hiện được sẽ được trả về, không phải danh sách đầy đủ các lỗi. Hãy hiển thị cho người dùng một thông báo chụp lại chung chung (không bao giờ hiển thị verdict hay score) rồi kiểm tra lại.

Các kết luận về chói lóa (glare) ​

Khi một kết luận nêu tên một cảnh báo trên image1 hoặc image2, cảnh báo đó là một trong blurry, dirty, too_dark, too_bright, glare, glare_safe, glare_unsafe:

TrườngKiểuMô tả
glarestringẢnh có một điểm chói lóa, có thể ở bất kỳ đâu trên ảnh.
glare_safestringCó chói lóa, nhưng nằm ngoài các vùng chứa thông tin thiết yếu như số ID, họ tên và ngày sinh.
glare_unsafestringChói lóa rơi vào một vùng quan trọng và có thể ảnh hưởng đến kết quả OCR.

Lỗi ​

MãThông báo
2001010Không tìm thấy Access ID.
401100Bạn không được phép thực hiện hành động này.
4001000Tham số đầu vào vi phạm một ràng buộc.
4001001Header X-TV-Timestamp đã hết hạn, cần một cái mới hơn.
5001000Xảy ra lỗi không mong đợi trong quá trình xử lý request.
MãMô tả
access_denied_exceptionBạn không được phép thực hiện hành động này.
invalid_parameter_exceptionTham số đầu vào vi phạm một ràng buộc.
request_time_too_skewedHeader X-TV-Timestamp đã hết hạn, cần một cái mới hơn.
image_not_found_exceptionKhông tìm thấy image ID trong DB.
rate_limit_exceptionSố lượng request vượt quá giới hạn throughput của bạn.
internal_server_errorXảy ra lỗi không mong đợi trong quá trình xử lý request.

Bước tiếp theo ​

Developers