Hóa đơn

Thử nghiệm nhanh API:Run in Postman

1. Trích xuất thông tin hóa đơn với đầu vào URL ảnh hoặc pdf

API:

MethodURL
GEThttps://cloud.computervision.com.vn/api/v2/ocr/document/invoice

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 hóa đơn đã được cắt và căn chỉnh
is_multi_pagetruePhải truyền vào bằng true thì mới gọi hóa đơn nhiều trang

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://cloud.computervision.com.vn/api/v2/ocr/document/invoice?img=%s&format_type=url&get_thumb=false&is_multi_page=true",
% image_url,
auth=(api_key, api_secret))
print(response.json())

2. Trích xuất thông tin hóa đơn với đầu vào file ảnh hoặc file pdf

API:

MethodURLcontent-type
POSThttps://cloud.computervision.com.vn/api/v2/ocr/document/invoicemultipart/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 hóa đơn đã được cắt và căn chỉnh
is_multi_pagetruePhải truyền vào bằng true thì mới gọi hóa đơn nhiều trang

Body:

KeyTypeValueMô tả
imgfileexample.jpgFile ảnh hoặc file pdf hóa đơn cần trích xuất thông tin

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://cloud.computervision.com.vn/api/v2/ocr/document/invoice?format_type=file&get_thumb=false&is_multi_page=true",
auth=(api_key, api_secret),
files={'img': open(image_path, 'rb')})
print(response.json())

3. Trích xuất thông tin hóa đơn với đầu vào JSON

API:

MethodURLcontent-type
POSThttps://cloud.computervision.com.vn/api/v2/ocr/document/invoiceapplication/json

Params:

KeyValueMô tả
format_typebase64Loại data truyền vào, nhận giá trị: url, file, base64
get_thumbtrue/falseTrả về ảnh hóa đơn đã được cắt và căn chỉnh
is_multi_pagetruePhải truyền vào bằng true thì mới gọi hóa đơn nhiều trang

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://cloud.computervision.com.vn/api/v2/ocr/document/invoice?format_type=base64&get_thumb=false&is_multi_page=true",
auth=(api_key, api_secret),
json={'img' : encode_cmt})
print(response.json())

4. Thông tin trả về

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

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

    {
    "type": "invoice", // Thể hiện loại giấy tờ ở đây là hóa đơn
    "info": [xxxx]
    }

    Hóa đơn - invoice

    • account_bank: Số tài khoản và ngân hàng đi kèm của nhà cung cấp. Trường này là một list. Mỗi phần tử trong list là một JSON biểu thị một số tài khoản và ngân hàng đi kèm. Phần tử này gồm các trường sau đây:

      • account_no: Số tài khoản.
      • account_no_box: Tọa độ số tài khoản là một list gồm [left, top, right, bottom].
      • account_no_confidence: Độ tin cậy số tài khoản.
      • account_no_id: ID số tài khoản.
      • bank: Tên ngân hàng.
      • bank_box: Tọa độ tên ngân hàng là một list gồm [left, top, right, bottom].
      • bank_confidence: Độ tin cậy tên ngân hàng.
      • bank_id: ID tên ngân hàng.
    • buyer_name: Họ tên người mua hàng.

    • buyer_name_box: Tọa độ họ tên người mua hàng là một list gồm [left, top, right, bottom].

    • buyer_name_confidence: Độ tin cậy của họ tên người mua hàng.

    • buyer_name_id: ID họ tên người mua hàng.

    • buyer_address: Địa chỉ người mua hàng.

    • buyer_address_box: Tọa độ địa chỉ người mua hàng là một list gồm [left, top, right, bottom].

    • buyer_address_confidence: Độ tin cậy của địa chỉ người mua hàng.

    • buyer_address_id: ID địa chỉ người mua hàng.

    • date: Ngày lập hóa đơn.

    • date_box: Tọa độ ngày lập hóa đơn là một list gồm [left, top, right, bottom].

    • date_confidence: Độ tin cậy của ngày lập hóa đơn.

    • date_id: ID ngày lập hóa đơn.

    • form: Mẫu số.

    • form_box: Tọa độ mẫu số hóa đơn là một list gồm [left, top, right, bottom].

    • form_confidence: Độ tin cậy của mẫu số.

    • form_id: ID mẫu số.

    • image: Ảnh hóa đơn đã được cắt và căn chỉnh. Là một list ảnh trả về định dạng stringbase64.

    • invoice_no: Số hóa đơn.

    • invoice_no_box: Tọa độ số hóa đơn là một list gồm [left, top, right, bottom].

    • invoice_no_confidence: Độ tin cậy của số hóa đơn.

    • invoice_no_id: ID số hóa đơn.

    • lookup_code: Mã tra cứu hóa đơn.

    • lookup_code_box: Tọa độ mã tra cứu hóa đơn là một list gồm [left, top, right, bottom].

    • lookup_code_confidence: Độ tin cậy mã tra cứu hóa đơn.

    • lookup_code_id: ID mã tra cứu hóa đơn.

    • lookup_website: Đường dẫn trang web để tra cứu hóa đơn.

    • lookup_website_box: Tọa độ đường dẫn trang web là một list gồm [left, top, right, bottom].

    • lookup_website_confidence: Độ tin cậy đường dẫn trang web.

    • lookup_website_id: ID đường dẫn trang web để tra cứu hóa đơn.

    • payment_method: Hình thức thanh toán.

    • payment_method_box: Tọa độ hình thức thanh toán là một list gồm [left, top, right, bottom].

    • payment_method_confidence: Độ tin cậy của hình thức thanh toán.

    • payment_method_id: ID hình thức thanh toán.

    • purchaser_name: Tên đơn vị mua hàng.

    • purchaser_name_box: Tọa độ tên đơn vị mua hàng là một list gồm [left, top, right, bottom].

    • purchaser_name_confidence: Độ tin cậy tên đơn vị mua hàng.

    • purchaser_name_id: ID tên đơn vị mua hàng.

    • serial_no: Số ký hiệu hóa đơn.

    • serial_no_box: Tọa độ số ký hiệu hóa đơn là một list gồm [left, top, right, bottom].

    • serial_no_confidence: Độ tin cậy của số ký hiệu hóa đơn.

    • serial_no_id: ID số ký hiệu hóa đơn.

    • sub_total: Tiền trước thuế.

    • sub_total_box: Tọa độ tiền trước thuế là một list gồm [left, top, right, bottom].

    • sub_total_confidence: Độ tin cậy của tiền trước thuế.

    • sub_total_id: ID tiền trước thuế.

    • supplier: Nhà cung cấp.

    • supplier_box: Tọa độ nhà cung cấp là một list gồm [left, top, right, bottom].

    • supplier_confidence: Độ tin cậy của nhà cung cấp.

    • supplier_id: ID nhà cung cấp.

    • supplier_address: Địa chỉ nhà cung cấp.

    • supplier_address_box: Tọa độ địa chỉ nhà cung cấp là một list gồm [left, top, right, bottom].

    • supplier_address_confidence: Độ tin cậy của địa chỉ nhà cung cấp.

    • supplier_address_id: ID địa chỉ nhà cung cấp.

    • table: Chứa thông tin trích xuất từ bảng. Là một list, mỗi phần tử trong list thể hiện thông tin của 1 bảng hóa đơn.

      • image_table: Ảnh bảng định dạng stringbase64.
      • info_table: Thông tin trích xuất được từ bảng. Mỗi phần tử trong list này là một list chứa thông tin của một hàng. Mỗi phần tử trong hàng là một dictionary chứa các thông tin sau:
        • value: Giá trị.
        • box: Tọa độ là một list gồm [left, top, right, bottom].
        • score: Độ tin cậy.
        • label: Nhãn của cột tương ứng. Có thể là một trong các giá trị sau:
          • number: Số thứ tự.
          • description: Tên hàng hóa dịch vụ.
          • unit: Đơn vị tính.
          • quantity: Số lượng.
          • unit_price: Đơn giá.
          • amount_before_tax: Tổng tiền trước thuế.
          • tax: Thuế suất.
          • tax_amount: Tiền thuế.
          • amount_total: Tổng tiền sau thuế.
    • tax_code: Mã số thuế nhà cung cấp.

    • tax_code_box: Tọa độ mã số thuế nhà cung cấp là một list gồm [left, top, right, bottom].

    • tax_code_confidence: Độ tin cậy của mã số thuế nhà cung cấp.

    • tax_code_id: ID mã số thuế nhà cung cấp.

    • total_amount: Tổng tiền.

    • total_amount_box: Tọa độ tổng tiền là một list gồm [left, top, right, bottom].

    • total_amount_confidence: Độ tin cậy của tổng tiền.

    • total_amount_id: ID tổng tiền.

    • vat_amount: Tiền thuế.

    • vat_amount_box: Tọa độ tiền thuế là một list gồm [left, top, right, bottom].

    • vat_amount_confidence: Độ tin cậy của tiền thuế.

    • vat_amount_id: ID tiền thuế.

    • vat_rate: Thuế suất giá trị gia tăng.

    • vat_rate_box: Tọa độ thuế suất giá trị gia tăng là một list gồm [left, top, right, bottom].

    • vat_rate_confidence: Độ tin cậy của thuế giá trị gia tăng.

    • vat_rate_id: ID thuế suất giá trị gia tăng.

    • in_words: Số tiền bằng chữ.

    • in_words_box: Tọa độ số tiền bằng chữ là một list gồm [left, top, right, bottom].

    • in_words_confidence: Độ tin cậy của số tiền bằng chữ.

    • in_words_id: ID số tiền bằng chữ.

    • vat_table: Chứa thông tin tiền bảng các loại thuế. Là một dictionary có cấu trúc như sau:

      • image_vat_table: Ảnh bảng định dạng stringbase64 của bảng các loại thuế.

      • info_vat_table: Thông tin các loại thuế trích xuất được từ bảng. Đây là một dictionary gồm các key sau:

        • type_1: Thông tin trả về cho thuế 0%.

        • type_2: Thông tin trả về cho thuế 5%.

        • type_3: Thông tin trả về cho thuế 8%.

        • type_4: Thông tin trả về cho thuế 10%.

        • type_5: Thông tin trả về cho Không chịu thuế.

        • type_6: Thông tin trả về cho Không kê khai nộp thuế.

        • type_7: Thông tin trả về cho Thuế khác.

          Phần value của mỗi type trên là dictionary gồm 3 trường sau và kèm theo _box_confidence thể hiện tọa độ và độ tin cậy:

          • sub_total: Tổng tiền trước thuế.
          • vat_amount: Tiền thuế.
          • amount_total: Tổng tiền sau thuế.

Bảng mã lỗi:

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