Skip to content

Đọc thông tin thẻ ID ​

Trích xuất các trường được in và mã hóa từ một ảnh thẻ ID (ID card) — văn bản OCR, vùng đọc bằng máy MRZ, mã QR và, khi có, dữ liệu chip NFC — mỗi trường kèm một độ tin cậy.

Endpoint ​

http
POST /v1/read_id_card_info_sync
Content-Type: application/json
json
{
  "card_type": "vn.national_id",
  "image1": {
    "id": "2dc863d6-1f68-4c82-8380-dd34e4ed7da0",
    "base64": "",
    "label": "id_card.vn.national_id.front",
    "metadata": "{}"
  }
}

Tham số:

Tham sốKiểuBắt buộcMặc địnhMô tả
card_typestringCó—Loại thẻ. Xem Khuyến nghị sử dụng.
image1ImageDataCó—Ảnh mặt trước hoặc mặt sau của thẻ định danh.

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, không bao giờ cả hai.

Ví dụ request ​

bash
curl --location '<BASE_URL>/v1/read_id_card_info_sync' \
  --header 'Authorization: ATV <ACCESS_ID>:<SIGNATURE>' \
  --header 'X-TV-Timestamp: <TIMESTAMP>' \
  --header 'Content-Type: application/json' \
  --data '{
    "card_type": "vn.national_id",
    "image1": {
      "id": "e94288e6-7ab5-4aeb-9608-8382f4ceb92f",
      "base64": "",
      "label": "id_card.vn.national_id.back",
      "metadata": "{}"
    }
  }'

Response ​

json
{
  "data": {
    "request_id": "09c1bf6b-2522-4202-b3e5-a2d63dc2d0ea",
    "status": "success",
    "card_information": [
      {
        "field": "name",
        "value": "NGUYỄN VĂN A",
        "confidence_score": 0.904328,
        "confidence_verdict": "SURE",
        "digit_confidence_scores": []
      }
    ],
    "image1": {
      "id": "2dc863d6-1f68-4c82-8380-dd34e4ed7da0",
      "card_box": {
        "top_left": { "x": 134, "y": 191 },
        "top_right": { "x": 946, "y": 191 },
        "bottom_left": { "x": 134, "y": 710 },
        "bottom_right": { "x": 946, "y": 710 }
      },
      "ocr": {
        "parsed": [
          {
            "field": "id",
            "value": "001xxxxxxxxx",
            "confidence_score": 0.90224093,
            "confidence_verdict": "SURE",
            "digit_confidence_scores": []
          }
        ],
        "char_probs": [],
        "confidence_score": 0,
        "entropy": 0,
        "group": 0,
        "label": 0,
        "line": 0,
        "text": ""
      },
      "mrz": { "parsed": [], "char_probs": [], "confidence_score": 0, "entropy": 0, "group": 0, "label": 0, "line": 0, "text": "" },
      "qr": { "parsed": [], "char_probs": [], "confidence_score": 0, "entropy": 0, "group": 0, "label": 0, "line": 0, "text": "" },
      "nfc": null
    },
    "image2": null
  },
  "errors": []
}
TrườngKiểuMô tả
data.request_idstringRequest ID; cung cấp cho CAKE Support khi cần kiểm tra log.
data.statusstringsuccess hoặc failure.
data.card_informationParsedField[]Các trường của thẻ đã được hợp nhất, gộp từ mọi nguồn có sẵn.
data.image1ImageResultKết quả trích xuất theo từng nguồn cho ảnh thứ nhất.
data.image2ImageResultKết quả cho ảnh thứ hai, hoặc null khi không được cung cấp.

ImageResult ​

TrườngKiểuMô tả
idstringID của ảnh đã phân tích.
card_boxCardBoxTọa độ các góc của thẻ được phát hiện, mỗi góc { "x": int, "y": int }.
ocrExtractionResultCác trường đọc được từ bề mặt in của thẻ.
mrzExtractionResultCác trường đọc được từ vùng đọc bằng máy.
qrExtractionResultCác trường đọc được từ mã QR.
nfcExtractionResultCác trường đọc được từ chip NFC, hoặc null khi không có dữ liệu chip nào được cung cấp.

ExtractionResult ​

TrườngKiểuMô tả
parsedParsedField[]Các trường có cấu trúc được trích xuất từ nguồn này.
textstringVăn bản thô đọc được từ nguồn này.
char_probsfloat[]Xác suất tin cậy theo từng ký tự.
confidence_scorefloatĐộ tin cậy tổng thể cho nguồn này.
entropyfloatEntropy của kết quả nhận dạng.
groupintChỉ số nhóm nội bộ.
labelintChỉ số nhãn nội bộ.
lineintChỉ số dòng trong nguồn.

ParsedField ​

TrườngKiểuMô tả
fieldstringTên trường, ví dụ id, name.
valuestringGiá trị đã trích xuất.
confidence_scorefloatĐộ tin cậy của giá trị đã trích xuất, khoảng 0–1.
confidence_verdictstringĐộ tin cậy dạng phân loại, ví dụ SURE.
digit_confidence_scoresfloat[]Độ tin cậy theo từng chữ số cho các trường dạng số.

INFO

Không coi một trường có độ tin cậy thấp là dữ liệu đã được xác minh. Hãy chặn việc chấp nhận dựa trên confidence_verdict và confidence_score, và chuyển bất kỳ giá trị nào dưới ngưỡng của bạn sang xét duyệt thủ công — đặc biệt là số ID và ngày sinh.

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