Sao kê ngân hàng

Thử nghiệm nhanh API:Run in Postman

1. Các API trích xuất thông tin sao kê

a. API trích xuất sao kê (gồm cả thông tin trong bảng và ngoài bảng)

  • Trích xuất thông tin Sao kê (gồm cả thông tin trong bảng và ngoài bảng) với đầu vào URL của ảnh hoặc pdf:

    API:

    MethodURL
    GEThttps://demo.computervision.com.vn/api/v2/ocr/document/bank_statement

    Params:

    KeyValueMô tả
    imghttps://example.com/image.pngURL của ảnh hoặc pdf
    format_typeurlLoại data truyền vào, nhận giá trị: url, file, base64
    get_thumbtrue/falseTTrả về ảnh sao kê đã được cắt và căn chỉnh

    Demo Python:

    import requests
    api_key = "YOUR_API_KEY"
    api_secret = "YOUR_API_SECRET"
    image_url = 'https://example.com/image.png'
    response = requests.get(
    "https://demo.computervision.com.vn/api/v2/ocr/document/bank_statement?img=%s&format_type=url&get_thumb=false"
    % image_url,
    auth=(api_key, api_secret))
    print(response.json())
  • Trích xuất thông tin Sao kê (gồm cả thông tin trong bảng và ngoài bảng) với đầu vào file ảnh hoặc file pdf:

    API:

    MethodURLcontent-type
    POSThttps://demo.computervision.com.vn/api/v2/ocr/document/bank_statementmultipart/form-data

    Params:

    KeyValueMô tả
    format_typefileLoại data truyền vào, nhận giá trị: url, file, base64
    get_thumbtrue/falseTrả về ảnh của Sao kê ngân hàng đã được căn chỉnh

    Body:

    KeyTypeValueMô tả
    imgfileexample.jpgĐường dẫn đến ảnh hoặc file pdf của sao kê

    Demo Python:

    import requests
    api_key = "YOUR_API_KEY"
    api_secret = "YOUR_API_SECRET"
    image_path = '/path/to/your/image.jpg'
    response = requests.post(
    "https://demo.computervision.com.vn/api/v2/ocr/document/bank_statement?format_type=file&get_thumb=false",
    auth=(api_key, api_secret),
    files={'img': open(image_path, 'rb')})
    print(response.json())
  • Trích xuất thông tin Sao kê (gồm cả thông tin trong bảng và ngoài bảng) với đầu vào JSON:

    API:

    MethodURLcontent-type
    POSThttps://demo.computervision.com.vn/api/v2/ocr/document/bank_statementapplication/json

    Params:

    KeyValueMô tả
    format_typebase64Loại data truyền vào, nhận giá trị: url, file, base64
    get_thumbtrue/falseTrả về ảnh của Sao kê ngân hàng đã được căn chỉnh

    Body:

    {
    "img": "iVBORw0KGgoAAAANSU..." // string base64 của ảnh hoặc pdf cần trích xuất
    }

    Demo Python:

    import base64
    import io
    import requests
    from PIL import Image
    def get_byte_img(img):
    img_byte_arr = io.BytesIO()
    img.save(img_byte_arr, format='PNG')
    encoded_img = base64.encodebytes(img_byte_arr.getvalue()).decode('ascii')
    return encoded_img
    api_key = "YOUR_API_KEY"
    api_secret = "YOUR_API_SECRET"
    img_name = "path_img"
    encode_cmt = get_byte_img(Image.open(img_name))
    response = requests.post(
    "https://demo.computervision.com.vn/api/v2/ocr/document/bank_statement?format_type=base64&get_thumb=false",
    auth=(api_key, api_secret),
    json={'img' : encode_cmt})
    print(response.json())

b. API trích xuất toàn bộ thông tin bảng trong sao kê

  • Trích xuất Toàn bộ thông tin bảng trong sao kê với đầu vào URL của ảnh hoặc pdf:

    API:

    MethodURL
    GEThttps://demo.computervision.com.vn/api/v2/ocr/document/bank_statement_general

    Params:

    KeyValueMô tả
    imghttps://example.com/image.pngURL của ảnh hoặc pdf
    format_typeurlLoại data truyền vào, nhận giá trị: url, file, base64
    get_thumbtrue/falseTrả về ảnh của Sao kê ngân hàng đã được căn chỉnh

    Demo Python:

    import requests
    api_key = "YOUR_API_KEY"
    api_secret = "YOUR_API_SECRET"
    image_url = 'https://example.com/image.png'
    response = requests.get(
    "https://demo.computervision.com.vn/api/v2/ocr/document/bank_statement_general?img=%s&format_type=url&get_thumb=false"
    % image_url,
    auth=(api_key, api_secret))
    print(response.json())
  • Trích xuất Toàn bộ thông tin bảng trong sao kê với đầu vào file ảnh hoặc file pdf:

    API:

    MethodURLcontent-type
    POSThttps://demo.computervision.com.vn/api/v2/ocr/document/bank_statement_generalmultipart/form-data

    Params:

    KeyValueMô tả
    format_typefileLoại data truyền vào, nhận giá trị: url, file, base64
    get_thumbtrue/falseTrả về ảnh của Sao kê ngân hàng đã được căn chỉnh

    Body:

    KeyTypeValueMô tả
    imgfileexample.jpgĐường dẫn đến ảnh hoặc file pdf của sao kê

    Demo Python:

    import requests
    api_key = "YOUR_API_KEY"
    api_secret = "YOUR_API_SECRET"
    image_path = '/path/to/your/image.jpg'
    response = requests.post(
    "https://demo.computervision.com.vn/api/v2/ocr/document/bank_statement_general?format_type=file&get_thumb=false",
    auth=(api_key, api_secret),
    files={'img': open(image_path, 'rb')})
    print(response.json())
  • Trích xuất Toàn bộ thông tin bảng trong sao kê với đầu vào JSON:

    API:

    MethodURLcontent-type
    POSThttps://demo.computervision.com.vn/api/v2/ocr/document/bank_statement_generalapplication/json

    Params:

    KeyValueMô tả
    format_typebase64Loại data truyền vào, nhận giá trị: url, file, base64
    get_thumbtrue/falseTrả về ảnh của Sao kê ngân hàng đã được căn chỉnh

    Body:

    {
    "img": "iVBORw0KGgoAAAANSU..." // string base64 của ảnh hoặc pdf cần trích xuất
    }

    Demo Python:

    import base64
    import io
    import requests
    from PIL import Image
    def get_byte_img(img):
    img_byte_arr = io.BytesIO()
    img.save(img_byte_arr, format='PNG')
    encoded_img = base64.encodebytes(img_byte_arr.getvalue()).decode('ascii')
    return encoded_img
    api_key = "YOUR_API_KEY"
    api_secret = "YOUR_API_SECRET"
    img_name = "path_img"
    encode_cmt = get_byte_img(Image.open(img_name))
    response = requests.post(
    "https://demo.computervision.com.vn/api/v2/ocr/document/bank_statement_general?format_type=base64&get_thumb=false",
    auth=(api_key, api_secret),
    json={'img' : encode_cmt})
    print(response.json())

2. Thông tin trả về

a. Thông tin trả về sao kê (gồm cả thông tin trong bảng và ngoài bảng)

Phản hồi sẽ là một JSON với định dạng sau:

{
"data": dictionary,
"errorCode": string, // Mã lỗi
"errorMessage": string // Thông báo lỗi
}
  • Trường data là một dictionary có định dạng như sau:

    {
    "type": "sao_ke", // Thể hiện loại giấy tờ ở đây là sao kê
    "info": [xxxx]
    }
    • info: Thông tin trích xuất được từ sao kê, là một dictionary gồm các trường thông tin sau:

      • ngan_hang: Tên ngân hàng

      • ngan_hang_box: Tọa độ tên ngân hàng là một list gồm [left, top, right, bottom]

      • ngan_hang_confidence: Độ tin cậy tên ngân hàng

      • ngan_hang_id: Index trường tên ngân hàng trong list ảnh trả về

      • so_tai_khoan: Số tài khoản

      • so_tai_khoan_box: Tọa độ số tài khoản là một list gồm [left, top, right, bottom]

      • so_tai_khoan_confidence: Độ tin cậy số tài khoản

      • so_tai_khoan_id: Index trường số tài khoản trong list ảnh trả về

      • ten_khach_hang: Tên khách hàng

      • ten_khach_hang_box: Tọa độ tên khách hàng là một list gồm [left, top, right, bottom]

      • ten_khach_hang_confidence: Độ tin cậy tên khách hàng

      • ten_khach_hang_id: Index trường tên khách hàng trong list ảnh trả về

      • so_du_dau_ky: Số dư đầu kỳ

      • so_du_dau_ky_box: Tọa độ số dư đầu kỳ là một list gồm [left, top, right, bottom]

      • so_du_dau_ky_confidence: Độ tin cậy số dư đầu kỳ

      • so_du_dau_ky_id: Index trường số dư đầu kỳ trong list ảnh trả về

      • so_du_cuoi_ky: Số dư cuối kỳ

      • so_du_cuoi_ky_box: Tọa độ số dư cuối kỳ là một list gồm [left, top, right, bottom]

      • so_du_cuoi_ky_confidence: Độ tin cậy số dư cuối kỳ

      • so_du_cuoi_ky_id: Index trường số dư cuối kỳ trong list ảnh trả về

      • thoi_gian_in: Thời gian in. Là một dictionary gồm các trường thông tin sau:

        • tu_ngay: Từ ngày
        • tu_ngay_box: Tọa độ từ ngày là một list gồm [left, top, right, bottom]
        • tu_ngay_confidence: Độ tin cậy từ ngày
        • tu_ngay_id: Index trường từ ngày trong list ảnh trả về
        • den_ngay: Đến ngày
        • den_ngay_box: Tọa độ đến ngày là một list gồm [left, top, right, bottom]
        • den_ngay_confidence: Độ tin cậy đến ngày
        • den_ngay_id: Index trường đến ngày trong list ảnh trả về
      • cong_phat_sinh_trong_ky: Cộng phát sinh trong kỳ. Là một dictionary gồm các trường thông tin sau:

        • phat_sinh_co: Phát sinh có
        • phat_sinh_co_box: Tọa độ phát sinh có là một list gồm [left, top, right, bottom]
        • phat_sinh_co_confidence: Độ tin cậy phát sinh có
        • phat_sinh_co_id: Index trường phát sinh có trong list ảnh trả về
        • phat_sinh_no: Phát sinh nợ
        • phat_sinh_no_box: Tọa độ phát sinh nợ là một list gồm [left, top, right, bottom]
        • phat_sinh_no_confidence: Độ tin cậy phát sinh nợ
        • phat_sinh_no_id: Index trường phát sinh nợ trong list ảnh trả về
      • image: List ảnh định dạng base64 đã được căn chỉnh

      • table: Thông tin trích xuất được từ phần bảng trong sao kê. Trả về là một list tương ứng với từng trang được trích xuất. Mỗi phần tử trong list có thể là null (đối với trường hợp trang đó không có bảng), hoặc có thể là dictionary như sau:

        {
        “image_table": // Là list ảnh table trong trang đó
        “json": // Là list thông tin đi với từng ảnh trong image_table
        }
        • Mỗi phần tử trong mảng json có cấu trúc như sau:

          [
          [json_0, json_1, json_2, json_3, json_4, json_5, json_6, json_7], // Biểu thị từng bảng
          [...],
          ...
          ] //biểu thị cả bảng

          Trong đó:

          • json_0: Thông tin trường Ngày.

          • json_1: Thông tin trường Mô tả.

          • json_2: Thông tin trường Nợ.

          • json_3: Thông tin trường Có.

          • json_4: Thông tin trường Số dư.

          • json_5: Thông tin trường Số thứ tự.

          • json_6: Thông tin trường Mã giao dịch.

          • json_7: Thông tin trường Đối tác nhận.

            Mỗi JSON này có cấu trúc như sau:

            {
            "value": // Giá trị text trong ô
            "score": // Độ tin cậy
            "box": // Ví trí của ô trong bảng
            }

    b. Thông tin trả về toàn bộ thông tin bảng trong sao kê

    Phản hồi sẽ là một JSON với định dạng sau:

    {
    "data": list,
    "errorCode": string, // Mã lỗi
    "errorMessage": string // Thông báo lỗi
    }
    • Trường data là một list, mỗi phần tử trong list tương ứng với một bảng trích xuất được. Mỗi phần từ này là một dictionary gồm các thông tin sau đây:

      • image: Ảnh bảng đã được cắt và căn chỉnh.

      • json: Thông tin trích xuất được từ bảng có cấu trúc như sau:

        [
        [json1, json2, json3, ... jsonN], // Biểu thị thông tin của 1 hàng
        [...],
        ...
        ] // Biểu thị thông tin trích xuất được từ bảng
        • Mỗi json trong [json1, json2, json3, ... jsonN] có cấu trúc như sau:
          • value: Nội dung của cell.
          • score: Độ tin cậy nội dung cell.
          • box: Box của vùng nội dung cell.

Bảng mã lỗi:

Mã lỗiMessageMô tả
0SuccessThành công
1Incorrect image formatẢnh bị lỗi
2Url is unavailableLink ảnh bị lỗi
3The photo does not contain contentẢnh không chứa nội dung
4Incorrect api_key or api_secretapi_key hoặc api_secret sai
5Out of requestsHết số lượng requests hữu dụng
6Error when processing the requestLỗi khi xử lý request