Tài liệu kết nối API - dành cho Developers

Created by Akabot Support, Modified on Mon, 30 Jun at 5:22 PM by Akabot Support

I. MÔ TẢ TỔNG QUAN

1. Mục đích

UBot – hệ sinh thái tự động hóa nghiệp vụ toàn diện cho doanh nghiệp. UBot Invoice – phần mềm xử lý hóa đơn tự động. 

UBot hỗ trợ khách hàng tự động tải hóa đơn từ email của nhà cung cấp và kiểm tra tính xác thực từ Tổng cục thuế, tự động trích xuất dữ liệu hóa đơn ra file excel theo chuẩn định dạng của các phần mềm kế toán và tự động lưu trữ hóa đơn cùng với các chứng từ đi kèm.

Tài liệu này được xây dựng nhằm giúp UBot kết nối với các đối tác để gửi/nhận thông tin của hóa đơn và trạng thái xử lý email hóa đơn bằng API.

2. Đối tượng sử dụng

Đối tượng sử dụng tài liệu là các đối tác, khách hàng có nhu cầu, gửi hóa đơn vào UBot xử lý và lấy thông tin hóa đơn từ UBot qua API.

  • Thuật ngữ và viết tắt

#

Viết tắt

Giải thích

1

TCT

Tổng cục thuế

2

KH

Khách hàng

3

MST

Mã số thuế

 

3. Danh sách các API 

  • API đăng nhập
  • API nhận thông tin hóa đơn từ UBot
  • API gửi thông tin hóa đơn 
  • API gửi hóa đơn OCR
  • API nhận trạng thái của TransactionId

 

II. ĐỊA CHỈ API KẾT NỐI

1. Môi trường

Môi trường Test: https://portal-dev.ubot.vn/api

Môi trường production: https://portal.ubot.vn/api

2. Thông tin xác thực

Tên đăng nhập: <UBot đã gửi riêng cho khách hàng>

Mật khẩu: <UBot đã gửi riêng cho khách hàng>

3. Luồng xử lý

 

 

 

4. API

4.1. API đăng nhập

#

Item

Thông tin

1

URL 

Product: https://portal.ubot.vn/api/authenticate

2

HTTP method

POST

3

Header

Content-Type: application/json

 

#

Tên trường thông tin

Tính chất bắt buộc

Kiểu dữ liệu

Max length

Mô tả

Request

1

username

x

string

256

Email đăng nhập

2

password

x

string

256

Mật khẩu đăng nhập

3

rememberMe


boolean

256

Có nhớ phiên đăng nhập sau khi đóng trang lại không
+ true: token đăng nhập sẽ hết hạn trong 30 ngày
 + false (Default): token đăng nhập sẽ hết hạn trong 30′

Response

1

token


string


Mỗi lần gọi API hệ thống sẽ gen ra một token mới. Trong trường hợp Token hết hạn cần gọi lại hàm tạo token để lấy token mới.

 

Request mẫu

curl –location ‘https://portal.ubot.vn/api/authenticate’ \
–header ‘Content-Type: application/json’ \
–data-raw ‘{
    “username”: “abc@ubot.vn”,
    “password”: “abc@2022”,
    “rememberMe”: “true”
}’ 

Respone mẫu 

{
    “id_token”: “eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJob25kYXZuQHVib3Qudm4iLCJhdXRoIjoiQUNDRVNTX0lOVk9JQ0VfU09MVVRJT04sQUNDRVNTX1
NPTFVUSU9OLEFDQ09VTlRfTUFOQUdFTUVOVCxBQ1RJT05fSU5QVVRfSU5WT0lDRSxBRERfQ09NUEFOWV9JTlZPSUNFLEFERF9QRVJNSVNT
SU9OX01BTkFHRVJfR1JPVVAsQUREX1BFUk1JU1NJT05fU09MVVRJT05fR1JPVVsQVNTSUdOX0xBQkVMX0lOUFVUX0lOVk9JQ0UsQVNTSUdOX0
1VTFRJX0xBQkVMX0lOUFVUX0lOVk9JQ0UsQ09ORklERU5DRV9ISVNUT1JZLENSRUFURV9MQUJFTF9JTlBVVF9JTlZPSUNFLENSRUFURV9MQU
JFTF9JTlZPSUNFLENSRUFURV9VU0VSX0FDQ09VTlQsREVMRVRFX0NPTVBBTllfSU5WT0lDRSxERUxFVEVfRE9DVU1FTlRfSU5QVVRfSU5WT0lD
RSxERUxFVEVfTEFCRUxfSU5WT0lDRSxERUxFVEVfUEVSTUlTU0lPTl9NQU5BR0VSX0dST1VQLERFTEVURV9QRVJNSVNTSU9OX1NPTFVUSU9O
X0dST1VQLERPV05MT0FEX0RPQ1VNRU5UX0lOUFVUX0lOVk9JQ0UsRE9XTkxPQURfUkVMQVRFRF9ET0NVTUVOVF9JTlBVVF9JTlZPSUNFLERP
V05MT0FEX1JFU1VMVF9QUk9DRVNTSU5HX0lOVk9JQ0UsRURJVF9DT01QQU5ZX0lOVk9JQ0UsRURJVF9DT05GSURFTkNFLEVESVRfUEVSTUlT
U0lPTl9NQU5BR0VSX0dST1VQLEVESVRfUEVSTUlTU0lPTl9TT0xVVElPTl9HUk9VUCxFRElUX1VTRVJfQUNDT1VOVCxFWFBPUlRfSU5QVVRfSU5W
T0lDRSxJTlBVVF9JTlZPSUNFLElOUFVUX0lOVk9JQ0VfU1RBVElTVElDLElOVk9JQ0VfU1RBVElTVElDLExJU1RfQ09ORklERU5DRV9ISVNUT1JZLExJ
U1RfSU5QVVRfSU5WT0lDRSxMSVNUX1VTRVJfQUNDT1VOVCxNQUlMX0lOUFVUX0lOVk9JQ0VfU1RBVElTVElDLE1BSUxfSU5WT0lDRSxNQU5BR
0VSX0dST1VQLE1BTlVBTF9WQUxJRF9NQVJLX0lOUFVUX0lOVk9JQ0UsTUFSS19SRUFEX01BSUxfSU5WT0lDRSxNQVJLX1ZBTElEX0lOUFVUX0l
OVk9JQ0UsT0NSX0lOVEVHUkFUSU9OX0lOVk9JQ0VfUFJPQ0VTU0lORyxQRVJNSVNTSU9OX0dST1VQLFFVT1RBX0lOVk9JQ0VfU1RBVElTVElDLF
JFQ0hFQ0tfSU5QVVRfSU5WT0lDRSxST0xFX0NVU1RPTUVSLFJPTEVfSU5WT0lDRSxST0xFX09DUl9JTlRFR1JBVElPTl9DT05GSUdfQ09ORklERU5
DRSxST0xFX09DUl9JTlRFR1JBVElPTl9JTlZPSUNFX1BST0NFU1NJTkcsU0VUVElOR19CQUNLVVBfSU5WT0lDRSxTRVRUSU5HX0NPTVBBTllfSU5W
T0lDRSxTRVRUSU5HX0lOVk9JQ0UsU0VUVElOR19MQUJFTF9JTlZPSUNFLFNFVFRJTkdfVEVNUExBVEVfRVhDRUwsU09MVVRJT05fR1JPVVAsVU
JPVF9MT09LVVBfSU5QVVRfSU5WT0lDRV9TVEFUSVNUSUMsVUJPVF9NQU5BR0VNRU5ULFVQTE9BRF9ET0NVTUVOVF9JTlBVVF9JTlZPSUNFL
FVTRVJfTUFOQUdFTUVOVCxWSUVXX0RFVEFJTF9JTlBVVF9JTlZPSUNFLFZJRVdfREVUQUlMX1BFUk1JU1NJT05fU09MVVRJT05fR1JPVVAsVklF
V19ERVRBSUxfVVNFUl9BQ0NPVU5ULFZJRVdfRE9DVU1FTlRfSU5QVVRfSU5WT0lDRSxWSUVXX0hJU1RPUllfU0VBUkNIX0lOUFVUX0lOVk9JQ0Us
VklFV19QRVJNSVNTSU9OX01BTkFHRVJfR1JPVVAiLCJleHAiOjE2ODM5NjE0MzZ9.D86xhrnKvzSS9QkJSgOT6ZwybxAX68iujhtQNXxHCWFSZQ8RN
xTgiZzaEqCz3YwgQPeSSkt2Umvg5etbd6XZ-Q”
}

 

4.2. API nhận thông tin hóa đơn từ UBot

API trả về:

  • Tất cả các thông tin mà UBot đọc được từ hóa đơn
  • Thông tin danh mục nhà cung cấp, hàng hóa (nếu có)
  • Kết quả tra cứu hóa đơn

#

Item

Thông tin

1

URL 

Product: https://portal.ubot.vn/api/third-party/invoices

2

HTTP method

POST

3

Header

Content-Type: application/json
 Authorization: Bear + token lấy từ API đăng nhập

 

#

Tên trường thông tin

Tính chất bắt buộc

Kiểu dữ liệu

Max length

Mô tả


Request Parameter


1

page


number

256

Thứ tự trang đã được phân trang. Mặc định: 0


2

size


number

256

Số lượng bản ghi mỗi trang.  Default: 10. Max: 100 hóa đơn/response


3

sort


string

256

Sort theo các tiêu chí:
+ receivedDate (Default): Ngày nhận hóa đơn về UBot
+ invoiceReleaseDate: Ngày phát hành
 VÀ sắp xếp theo thứ tự


Request Body


1

invoiceId


string

36

Request theo invoice id cụ thể


2

invoiceTypes

x

array

256

Request theo loại hóa đơn

+ []: Tất cả (Default)

+ INPUT_PAPER_INVOICE: Hóa đơn đầu vào (giấy)
 + INPUT_ELECTRONIC_INVOICE: Hóa đơn đầu vào (điện tử)

+ OUTPUT_ELECTRONIC_INVOICE: Hoá đơn đầu ra (điện tử)
 + INPUT_PAPER_INVOICE_OCR: Hóa đơn đầu vào (giấy) đọc OCR

+ INPUT_ELECTRONIC_INVOICE_OCR: Hóa đơn đầu vào (điện tử) đọc OCR
 + OUTPUT_ELECTRONIC_INVOICE_OCR: Hoá đơn đầu ra (điện tử) đọc OCRLoại hóa đơn


3

transactionIds


array

256

Request theo transaction code đã đính kèm trong API gửi


2

buyerTaxNo


string

256

Request theo mã số thuế bên mua


3

buyerName


string

256

Request theo  tên công ty bên mua


4

invoiceNo


string

256

Request theo số hóa đơn


5

sellerTaxNo


string

256

Request theo mẫ số thuế bên bán


6

sellerName


string

256

Request theo tên công ty bên bán


7

releasedDateFrom


date

256

Request ngày phát hành hóa đơn bắt đầu từ ngày
 Định dạng: dd/mm/yyyy


8

releasedDateTo


date

256

Request ngày phát hành hóa đơn đến ngày
 Định dạng: dd/mm/yyyy


9

receivedDateFrom


date

256

Request ngày nhận hóa đơn bắt đầu từ ngày
 Định dạng: dd/mm/yyyy


10

receivedDateTo


date

256

Request ngày nhận hóa đơn đến ngày
 Định dạng: dd/mm/yyyy


11

tagNames


array

256

Request theo tên nhãn đã gắn trên hóa đơn


12

isCombinedTag


boolean

256

Request theo tìm các nhãn theo


+ true: Điều kiện AND


+ false: Điều kiện OR (Default)


13

invoiceStatus


string

256

Request theo trạng thái hóa đơn


+ VALID: Trả tất cả các hóa đơn có trạng thái kiểm tra=hợp lệ


+ INVALID: Trả tất cả các hóa đơn có trạng thái kiểm tra = không hợp lệ


+ IS_WAITING: Chờ xác thực


+ IS_RECHECKING: Chờ xác thực lại


14

releaseStatus


string

256

Request theo Trạng thái phát hành


+ VALID: Tồn tại hóa đơn


+ VALID_INVOICE_MODIFIED: Hóa đơn điều chỉnh


+ VALID_INVOICE_ALTERNATIVE: Hóa đơn thay thế


+ NOT_ENOUGH_CONDITION_PROVIDE_CODE: Hóa đơn không đủ điều kiện cấp mã


+ INVALID: Không tồn tại hóa đơn


+ INVALID_INVOICE_MODIFIED: Hóa đơn đã bị điều chỉnh


+ INVALID_INVOICE_ALTERNATIVE: Hóa đơn đã bị thay thế


+ IS_DELETE_OR_CANCEL_INVOICE: Hóa đơn đã bị xóa/hủy bỏ


+ EXPIRE_DATE: Hóa đơn hết giá trị sử dụng


+ EXPIRE_USED: Hóa đơn không còn giá trị sử dụng


15

getMatchingData


boolean

true/false

Lựa chọn có lấy thêm dữ liệu danh mục (matching data) không


+ True: Lấy cả dữ liệu danh mục


+ False: Không lấy thêm dữ liệu danh mục


Nếu getMatchingData=True, dữ liệu trả về ở các trường vendorCode, paymentCode, itemCode, inventoryAccount, inventoryCode, expenseAccount, taxAccount, revenueAccount


16

getAttachments


boolean

true/false

Lựa chon có trả về các file đính kèm không


+ True: Trả link download các file đính kèm


+ False: Không trả tệp đính kèm


17

getTaxes


boolean

true/false

Lựa chọn có trả về chi tiết từng loại thuế suất hay không









Response

 

1

statusResponse

Kết quả xử lý request


1.1

statusCode


string


Tham khảo bảng Status code, mục V. Mã lỗi


1.2

errorCode


string


Mã lỗi. Tham khảo bảng Error code, mục V. Mã lỗi #1 và #6


1.3

message


string


Nội dung lỗi. Tham khảo bảng Error code, mục V. Mã lỗi


2

metadata

Thông tin bổ sung


2.1

page


number


Số thứ tự trang kết quả trả về


2.2

size


number


Số hóa đơn trong 1 trang kết quả trả về


2.3

total


number


Tổng số hóa đơn trả về


2.4

orderBy


string


Thứ tự của hóa đơn trả về




+ receivedDate (Default): Ngày nhận hóa đơn về UBot


+ invoiceReleaseDate: Ngày phát hành


2.5

sort




Sort theo các tiêu chí:


+ ASC: tăng dần


+ DESC (default): giảm dần


3

invoices

Danh sách hóa đơn


3.1

companyId


string


ID của công ty


3.2

invoiceId


string


ID hóa đơn


3.3

emailId


string


ID của email chứa hóa đơn


3.4

modelNo


string


Mẫu số hóa đơn


3.5

serial


string


Ký hiệu hóa đơn


3.6

invoiceNo


string


Số hóa đơn


3.7

sellerName


string


Tên công ty bán


3.8

sellerTaxNo


string


MST công ty bán


3.9

sellerAddress


string


Địa chỉ công ty bán


3.10

sellerPhone


string


Số điện thoại công ty bán


3.11

signedBy


string


Tên người ký


3.12

isSignValid


boolean


Chữ ký số có hợp lệ không


+ true: Hợp lệ


+ false: Không hợp lệ


3.13

signIssuerName


string


Tên nhà cung cấp chữ ký số cho bên bán


3.14

signSerialNumber


string


Số seri của chữ ký số


3.15

signValidFrom


date


Ngày bắt đầu có hiệu lực của chữ ký số


3.16

signValidTo


date


Ngày hết hiệu lực của chữ ký số


3.17

markedValidBy


string


Tên tài khoản đánh dấu hóa đơn hợp lệ bằng tay


3.18

markedValidDate


string


Ngày đánh dấu hóa đơn hợp lệ bằng tay


3.19

buyerName


string


Tên công ty mua


3.20

buyerTaxNo


string


MST công ty mua


3.21

buyerAddress


string


Địa chỉ công ty mua


3.22

subTotal


number


Tổng tiền trước thuế


3.23

grandTotal


number


Tổng tiền sau thuế


3.24

discount


number


Phần trăm chiết khấu


3.25

discountAmount


number


Tiền chiết khấu


3.26

paymentDiscount


number


Phần trăm chiết khấu thanh toán


3.27

tax


array


Phần trăm thuế


3.28

taxAmount


number


Tiền thuế


3.29

changeFees


number


Phụ phí (với các hóa đơn hàng không)


3.30

cod


number


Tiền phí thu hộ (với các hóa đơn hàng không)


3.31

status


string


Trạng thái tra cứu hóa đơn


+ VALID: Hợp lệ


+ INVALID: Không hợp lệ


3.32

receivedDate


date


Ngày UBot nhận hóa đơn


3.33

invoiceReleaseDate


date


Ngày phát hành hóa đơn


3.34

invoiceSignDate


date


Ngày ký hóa đơn


3.35

isInvoiceRelease


boolean


Hóa đơn đã phát hành chưa


+ true: Hóa đơn đã phát hành


+ false: Hóa đơn chưa phát hành


3.36

isSellerActive


boolean


Người bán có hoạt động hay không


+ true: Bên bán đang hoạt động


+ false: Bên bán không hoạt động


3.37

sellerActiveStatus




Chi tiết trạng thái bên bán


+ Bên bán đang hoạt động


+ NNT đang hoạt động (đã được cấp GCN ĐKT)


+ Bên bán không hoạt động tại địa chỉ đã đăng ký


+ NNT không hoạt động


+ NNT đã được cấp MST


+ Bên bán ngừng hoạt động nhưng chưa hoàn thành thủ tục chấm dứt hiệu lực MST


+ Bên bán ngừng hoạt động và đã hoàn thành thủ tục chấm dứt hiệu lực MST


+ Bên bán tạm ngừng hoạt động, kinh doanh


+ NNT không hoạt động tại địa chỉ đăng ký


+ NNT đang hoạt động (được cấp thông báo MST)


+ NNT ngừng hoạt động nhưng chưa hoàn thành thủ tục đóng MST


+ Bên bán đã chuyển cơ quan thuế quản lý


+ NNT tạm ngừng KD có thời hạn


+ NNT tạm nghỉ kinh doanh có thời hạn


+ NNT đang hoạt động (chưa đầy đủ thủ tục cấp MST)


+ Bên bán đã được cấp MST


+ NNT không hoạt động tại địa chỉ đã đăng ký


+ NNT ngừng hoạt động và đã đóng MST


+ NNT ngừng HĐ nhưng chưa hoàn thành thủ tục chấm dứt hiệu lực MST


+ NNT đang hoạt động (áp dụng cho hộ kinh doanh, cá nhân, chưa đủ thông tin đăng ký thuế)


+ NNT ngừng hoạt động và đã hoàn thành thủ tục chấm dứt hiệu lực MST


+ NNT đã chuyển cơ quan thuế quản lý


3.38

rawCheckingStatus


string


Trạng thái hóa đơn tra cứu trên TCT


3.39

isBuyerAddressValid


boolean


Địa chỉ công ty mua có hợp lệ không


+ true: Hợp lệ


+ false: Không hợp lệ


3.40

isBuyerNameValid


boolean


Tên công ty mua có hợp lệ không


+ true: Hợp lệ


+ false: Không hợp lệ


3.41

isSellerSignatureValid


boolean


Chữ ký số bên bán có hợp lệ không


+ true: Hợp lệ


+ false: Không hợp lệ


3.42

isBuyerTaxValid


boolean


MST công ty mua có hợp lệ không


+ true: Hợp lệ


+ false: Không hợp lệ


3.43

manuallyMarkedValid


boolean


Hóa đơn có được đánh dấu hợp lệ bằng tay hay không


+ true: Đánh dấu bằng tay


+ false: Không đánh dấu hợp lệ bằng tay


3.44

currency


string


Đơn vị tiền tệ


3.45

downloadLink


string


Link tra cứu hóa đơn


3.46

downloadCode


string


Mã tra cứu hóa đơn


3.47

invoiceChangeTimes


number


Số lần hóa đơn bị sửa đổi bởi người dùng


3.48

invoiceLastChangedBy


string


Người chỉnh sửa thông tin hóa đơn cuối cùng


3.49

invoiceLastChangedDate


date


Ngày chỉnh sửa thông tin hóa đơn cuối cùng


3.50

invoiceLastCheckedDate


date


Ngày tra cứu hóa đơn gần nhất


3.51

po


string


Số PO đọc được trên hóa đơn


3.52

tags


array


Danh sách nhãn gắn với hóa đơn


3.53

tagId


string


Id của nhãn


3.54

tagName


string


Tên của nhãn


3.55

invoiceType


string


Loại hóa đơn




+ INPUT_PAPER_INVOICE: Hóa đơn đầu vào (giấy)


+ INPUT_ELECTRONIC_INVOICE: Hóa đơn đầu vào (điện tử)




+ OUTPUT_ELECTRONIC_INVOICE: Hoá đơn đầu ra (điện tử)


+ INPUT_PAPER_INVOICE_OCR: Hóa đơn đầu vào (giấy) đọc OCR




+ INPUT_ELECTRONIC_INVOICE_OCR: Hóa đơn đầu vào (điện tử) đọc OCR


+ OUTPUT_ELECTRONIC_INVOICE_OCR: Hoá đơn đầu ra (điện tử) đọc OCR


3.56

vendorCode


string


Mã nhà cung cấp


3.57

paymentCode


string


Mã thanh toán


3.58

requestId


string


Mã request gửi hóa đơn sang UBot (Nếu KH gửi hóa đơn sang UBot qua API)


3.59

linkPDF


string


Link download file PDF


3.60

linkXML


string


Link download file XML


3.61

linkAttachment


string


Link download file zip chứa các tài liệu đính kèm


3.62

linkScreenshot


string


Link download file ảnh chụp tra cứu hóa đơn trên TCT


3.63

taxAuthorityCode


string


Mã cơ quan thuế


3.64

exchangeRate


number


Tỷ giá ngoại tệ


3.65

invoiceNote


string


Ghi chú hóa đơn hủy/thay thế


4

invoiceItems

Danh sách chi tiết hàng hóa


4.1

itemId


string


id của hóa đơn


4.2

itemOrderNo


string


Số thứ tự của hàng hóa trong hóa đơn


4.3

itemCode


string


Mã hàng hóa map được từ matching data


4.4

itemCodeXml


string


Mã hàng hóa đọc được từ xml


4.5

itemName


string


Tên hàng hóa


4.6

itemPrice


number


Đơn giá của hàng hóa


4.7

itemQuantity


number


Số lượng của hàng hóa


4.8

itemUnit


string


Đơn vị tính


4.9

itemDiscount


number


Phần trăm chiết khấu của hàng hóa


4.10

itemDiscountAmount


number


Tiền chiết khấu của hàng hóa


4.11

itemTax


number


Thuế của hàng hóa


4.12

itemTaxAmount


number


Tiền thuế của hàng hóa


4.13

itemSubTotal


number


Tiền trước thuế của hàng hóa


4.14

itemGrandTotal


number


Tiền sau thuế của hàng hóa


4.15

inventoryAccount


string


Tài khoản kho


4.16

inventoryCode


string


Mã kho mặc định


4.17

expenseAccount


string


Tài khoản chi phí


4.18

taxAccount


string


Tài khoản thuế


4.19

revenueAccount


string


Tài khoản doanh thu


4.20

paymentMethod


string


Hình thức thanh toán


5

invoiceTaxes

Chi tiết thuế suất


5.2

taxPercentage


string


Loại thuế kê khai: KCT/KKKNT/KHAC/0/5/8/10


5.3

amount


number


Thành tiền chịu thuế


5.4

taxAmount


number


Tiền thuế











 

Request mẫu

curl –location ‘https://portal.ubot.vn/api/third-party/invoices?page=0&size=10&sort=createdDate%2Cdesc’ \
–header ‘Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJob25kYXZuQHVib3Qudm4iLCJhdXRoIjoiQUNDRVNTX0lOVk9JQ0VfU09
MVVRJT04sQUNDRVNTX1NPTFVUSU9OLEFDQ09VTlRfTUFOQUdFTUVOVCxBQ1RJT05fSU5QVVRfSU5WT0lDRSxBRERfQ09NUEFOW
V9JTlZPSUNFLEFERF9QRVJNSVNTSU9OX01BTkFHRVJfR1JPVVAsQUREX1BFUk1JU1NJT05fU09MVVRJT05fR1JPVVAsQVNTSUdOX0
xBQkVMX0lOUFVUX0lOVk9JQ0UsQVNTSUdOX01VTFRJX0xBQkVMX0lOUFVUX0lOVk9JQ0UsQ09ORklERU5DRV9ISVNUT1JZLENSRUF
URV9MQUJFTF9JTlBVVF9JTlZPSUNFLENSRUFURV9MQUJFTF9JTlZPSUNFLENSRUFURV9VU0VSX0FDQ09VTlQsREVMRVRFX0NPTV
BBTllfSU5WT0lDRSxERUxFVEVfRE9DVU1FTlRfSU5QVVRfSU5WT0lDRSxERUxFVEVfTEFCRUxfSU5WT0lDRSxERUxFVEVfUEVSTUlTU0
lPTl9NQU5BR0VSX0dST1VQLERFTEVURV9QRVJNSVNTSU9OX1NPTFVUSU9OX0dST1VQLERPV05MT0FEX0RPQ1VNRU5UX0lOUFVU
X0lOVk9JQ0UsRE9XTkxPQURfUkVMQVRFRF9ET0NVTUVOVF9JTlBVVF9JTlZPSUNFLERPV05MT0FEX1JFU1VMVF9QUk9DRVNTSU5H
X0lOVk9JQ0UsRURJVF9DT01QQU5ZX0lOVk9JQ0UsRURJVF9DT05GSURFTkNFLEVESVRfUEVSTUlTU0lPTl9NQU5BR0VSX0dST1VQLE
VESVRfUEVSTUlTU0lPTl9TT0xVVElPTl9HUk9VUCxFRElUX1VTRVJfQUNDT1VOVCxFWFBPUlRfSU5QVVRfSU5WT0lDRSxJTlBVVF9JTlZ
PSUNFLElOUFVUX0lOVk9JQ0VfU1RBVElTVElDLElOVk9JQ0VfU1RBVElTVElDLExJU1RfQ09ORklERU5DRV9ISVNUT1JZLExJU1RfSU5Q
VVRfSU5WT0lDRSxMSVNUX1VTRVJfQUNDT1VOVCxNQUlMX0lOUFVUX0lOVk9JQ0VfU1RBVElTVElDLE1BSUxfSU5WT0lDRSxNQU5BR
0VSX0dST1VQLE1BTlVBTF9WQUxJRF9NQVJLX0lOUFVUX0lOVk9JQ0UsTUFSS19SRUFEX01BSUxfSU5WT0lDRSxNQVJLX1ZBTElEX0l
OUFVUX0lOVk9JQ0UsT0NSX0lOVEVHUkFUSU9OX0lOVk9JQ0VfUFJPQ0VTU0lORyxQRVJNSVNTSU9OX0dST1VQLFFVT1RBX0lOVk9J
Q0VfU1RBVElTVElDLFJFQ0hFQ0tfSU5QVVRfSU5WT0lDRSxST0xFX0NVU1RPTUVSLFJPTEVfSU5WT0lDRSxST0xFX09DUl9JTlRFR1JBV
ElPTl9DT05GSUdfQ09ORklERU5DRSxST0xFX09DUl9JTlRFR1JBVElPTl9JTlZPSUNFX1BST0NFU1NJTkcsU0VUVElOR19CQUNLVVBfSU5
WT0lDRSxTRVRUSU5HX0NPTVBBTllfSU5WT0lDRSxTRVRUSU5HX0lOVk9JQ0sU0VUVElOR19MQUJFTF9JTlZPSUNFLFNFVFRJTkdfVE
VNUExBVEVfRVhDRUwsU09MVVRJT05fR1JPVVAsVUJPVF9MT09LVVBfSU5QVVRfSU5WT0lDRV9TVEFUSVNUSUMsVUJPVF9NQU5BR
0VNRU5ULFVQTE9BRF9ET0NVTUVOVF9JTlBVVF9JTlZPSUNFLFVTRVJfTUFOQUdFTUVOVCxWSUVXX0RFVEFJTF9JTlBVVF9JTlZPSU
NFLFZJRVdfREVUQUlMX1BFUk1JU1NJT05fU09MVVRJT05fR1JPVVAsVklFV19ERVRBSUxfVVNFUl9BQ0NPVU5ULFZJRVdfRE9DVU1FTl
RfSU5QVVRfSU5WT0lDRSxWSUVXX0hJU1RPUllfU0VBUkNIX0lOUFVUX0lOVk9JQ0UsVklFV19QRVJNSVNTSU9OX01BTkFHRVJfR1JPV
VAiLCJleHAiOjE2ODM5NjE3MzN9.agCJS1emLFCioaIH8jKUvpoIFCz4_4ehjaQWUFX9IUUT8wOhOvu80aAp82Bxc5ROFV09MsIjG_zE-IYBaO77as’ \
–header ‘Content-Type: application/json’ \
–data ‘{
    “invoiceTypes”: [],
    “buyerTaxNo”: “2500150511”,
    “buyerName”: “CÔNG TY HONDA VIỆT NAM”,
    “invoiceNo”: “00000400”,
    “sellerTaxNo”: “2500257610”,
    “sellerName”: “CÔNG TY TNHH CÔNG NGHIỆP STRONG WAY VĨNH PHÚC”,
    “releasedDateFrom”: “11/04/2023”,
    “releasedDateTo”: “13/04/2023”,
    “receivedDateFrom”: “11/04/2023”,
    “receivedDateTo”: “14/04/2023”,
    “tagNames”: [“Chưa gắn nhãn”],
    “isCombinedTag”: “False”,
    “invoiceStatus”: “VALID”,
    “releaseStatus”: “VALID”,
    “getMatchingData”: “False”,
   “getTaxes”: “False”,
    “getAttachments”: “True”,
    “page”: “1”,
    “size”: “100”,
    “sort”: “receivedDate “
}’

Respone mẫu

{
    “statusResponse”: {
        “statusCode”: 200,
        “errorCode”: null,
        “message”: “Success”
    },
    “metadata”: {
        “page”: 0,
        “size”: 10,
        “total”: 1,
        “orderBy”: “createdDate”,
        “sort”: “ASC”
    },
    “data”: [
        {
            “companyId”: “25f00000-edd9-4a46-a07a-23efda2ed60c”,
            “invoiceId”: “e2cd4461-100d-22f0-a613-e89b0000c3af”,
            “transactionId”: null,
            “emailId”: “c123d33e-a8f8-111-bb76-c3743ebca769”,
            “sender”: “autobot@ubot.vn”,
            “modelNo”: “1”,
            “serial”: “C24MYY”,
            “invoiceNo”: “00009000”,
            “sellerName”: “CÔNG TY TNHH”,
            “sellerTaxNo”: “0108440000,
            “sellerAddress”: “Phường Quỳnh Mai, Quận Hai Bà Trưng, Thành phố Hà Nội, Việt Nam”,
            “sellerPhone”: null,
            “signBy”: “CÔNG TY TNHH”,
            “isSignValid”: true,
            “signIssuerName”: “BkavCA SHA256”,
            “signSerialNumber”: “5403009860ae82a40a000b66e518fd00”,
            “signValidFrom”: “2024-05-11T03:42:01Z”,
            “signValidTo”: “2029-05-09T03:33:06Z”,
            “markedValidBy”: null,
            “markedValidDate”: null,
            “buyerName”: “TỔNG CÔNG TY CỔ PHẦN”,
            “buyerRepresentation”: null,
            “buyerTaxNo”: “0100930000”,
            “buyerAddress”: “Cầu Giấy, Phường Dịch Vọng, Quận Cầu Giấy, Thành phố Hà Nội”,
            “subTotal”: 6751000.00000,
            “grandTotal”: 7293680.00000,
            “discount”: 0.00000,
            “discountAmount”: 0.00000,
            “paymentDiscount”: null,
            “feeAmount”: 0.00000,
            “tax”: 8.00000,
            “taxAmount”: 542680.00000,
            “changeFees”: null,
            “cod”: null,
            “exchangeRate”: 1.00000,
            “status”: “IS_WAITING”,
            “receivedDate”: “2024-09-23T00:11:02Z”,
            “invoiceReleaseDate”: “2024-09-22T07:00:00Z”,
            “invoiceSignDate”: “2024-09-22T14:45:16Z”,
            “isInvoiceRelease”: true,
            “isSellerActive”: null,
            “releaseStatus”: “VALID”,
            “sellerActiveStatus”: null,
            “rawCheckingStatus”: “Tồn tại hóa đơn có thông tin trùng khớp với các thông tin tổ chức, cá nhân tìm kiếm.\nTrạng thái xử lý hoá đơn: Tổng cục thuế đã nhận hóa đơn có mã khởi tạo từ máy tính tiền”,
            “isBuyerAddressValid”: true,
            “isBuyerNameValid”: true,
            “isSellerSignatureValid”: true,
            “isBuyerTaxValid”: true,
            “manuallyMarkedValid”: null,
            “currency”: “VND”,
            “downloadLink”: null,
            “downloadCode”: null,
            “invoiceChangeTimes”: 0,
            “invoiceLastChangedBy”: null,
            “invoiceLastChangedDate”: null,
            “invoiceLastCheckedDate”: “2024-09-23T00:11:13Z”,
            “invoiceCreatedDate”: “2024-09-23T00:11:02Z”,
            “invoiceLastModifiedDate”: “2024-09-23T00:11:13Z”,
            “po”: null,
            “detailSellerStatusIds”: [],
            “tags”: [],
            “invoiceItems”: [
                {
                    “itemId”: “94427bb2-1141-49d0-b532-34bf5c207a98”,
                    “invoiceId”: “e3cd1111-607d-44f0-a613-e89b0000c3af”,
                    “itemOrderNo”: 6,
                    “itemCode”: null,
                    “itemCodeXml”: “CANHSUONTANG”,
                    “itemName”: “Canh sườn bò (Tặng)”,
                    “itemUnit”: “Suất”,
                    “itemPrice”: 0.00000,
                    “itemQuantity”: 4.00000,
                    “itemDiscount”: 0.00000,
                    “itemDiscountAmount”: 0.00000,
                    “itemTax”: 8.0,
                    “itemTaxAmount”: 0.00000,
                    “itemSubTotal”: 0.00000,
                    “itemGrandTotal”: 0.00000,
                    “inventoryAccount”: null,
                    “inventoryCode”: null,
                    “expenseAccount”: null,
                    “taxAccount”: null,
                    “revenueAccount”: null,
                    “vendorCode”: null,
                    “paymentCode”: null,
                    “paymentMethod”: null,
                    “billCode”: null
                },
                {
                    “itemId”: “485b7fc1-fa72-4256-ab84-b41b282172a8”,
                    “invoiceId”: “e3cd1111-607d-44f0-a613-e89b0000c3af”,
                    “itemOrderNo”: 4,
                    “itemCode”: null,
                    “itemCodeXml”: “JIMA26”,
                    “itemName”: “Thăn lưng Jima ướp + Dẻ sườn LA 4+4”,
                    “itemUnit”: “Suất”,
                    “itemPrice”: 1390000.00000,
                    “itemQuantity”: 1.00000,
                    “itemDiscount”: 0.00000,
                    “itemDiscountAmount”: 0.00000,
                    “itemTax”: 8.0,
                    “itemTaxAmount”: 111200.00000,
                    “itemSubTotal”: 1390000.00000,
                    “itemGrandTotal”: 1501200.00000,
                    “inventoryAccount”: null,
                    “inventoryCode”: null,
                    “expenseAccount”: null,
                    “taxAccount”: null,
                    “revenueAccount”: null,
                    “vendorCode”: null,
                    “paymentCode”: null,
                    “paymentMethod”: null,
                    “billCode”: null
                }
            ],
            “invoiceTaxes”: [
                {
                    “id”: “4cab3c0d-15bc-4ac6-bbe7-c8602e7d3b69”,
                    “taxType”: “TAX10”,
                    “taxPercentage”: “10%”,
                    “amount”: 130000.00000,
                    “taxAmount”: 13000.00000
                },
                {
                    “id”: “2e76a39c-54a1-4668-9079-329d57193e3b”,
                    “taxType”: “TAX8”,
                    “taxPercentage”: “8%”,
                    “amount”: 6621000.00000,
                    “taxAmount”: 529680.00000
                }
            ],
            “invoiceType”: “INPUT_ELECTRONIC_INVOICE”,
            “paymentDate”: null,
            “paymentType”: null,
            “requestId”: null,
            “linkXml”: “https://ubots3.s3.ap-northeast-1.amazonaws.com/Xml_Processing/1727050251049350108449908_C24MYY_9062.xml?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20240923T024303Z&X-Amz-SignedHeaders=host&X-Amz-Expires=300000&X-Amz-Credential=AKIAUZX3YY3RJTL6TKFI%2F20240923%2Fap-northeast-1%2Fs3%2Faws4_request&X-Amz-Signature=d088d66eaabd6ad12634728307eccd255c6584a3fb1fc92715743e149f5a6cc6”,
            “linkPdf”: “https://ubots3.s3.ap-northeast-1.amazonaws.com/Pdf_Processing/e3cd4461-607d-44f0-a613-e89b1499c3af.pdf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20240923T024303Z&X-Amz-SignedHeaders=host&X-Amz-Expires=300000&X-Amz-Credential=AKIAUZX3YY3RJTL6TKFI%2F20240923%2Fap-northeast-1%2Fs3%2Faws4_request&X-Amz-Signature=301c0155344259fb88ec4202a41fbaf0182620e9dfab675842dab80f7cc4c889”,
            “linkScreenshot”: “https://ubots3.s3.ap-northeast-1.amazonaws.com/Screenshot/KQ_00009062_1727050271945.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20240923T024303Z&X-Amz-SignedHeaders=host&X-Amz-Expires=300000&X-Amz-Credential=AKIAUZX3YY3RJTL6TKFI%2F20240923%2Fap-northeast-1%2Fs3%2Faws4_request&X-Amz-Signature=345a1bd623e6c50f970154517e139cb4f653a3b7490129f9e3d9c022768b8b1c”,
            “taxAuthorityCode”: “M1-24-JULPS-00000015822”,
            “invoiceNote”: null,
            “linkAttachment”: null
        }
    ]
}


4.3. API gửi thông tin hóa đơn

  #

Item

Thông tin

1

URL 

Product: https://portal.ubot.vn/api/third-party/upload-email

2

HTTP method

POST

3

Header

Content-Type: application/json

Authorization: Bear + token lấy từ API đăng nhập

 

#

Tên trường thông tin

Tính chất bắt buộc

Kiểu dữ liệu

Max length

Mô tả

Request

 

1

transactionId

x

string

256

TransactionID của bản ghi

2

files


pdf/xml


List file (có thể gửi được nhiều file max 15 PDF & XML)

3

companyId

x

string

256

Company id UBOT gửi (UBot sẽ gửi list companyId của từng Khách hàng)

4

title


string


Tiêu đề của email (nếu có thì lưu, không thì sẽ lấy transactionId để hiển thị tiêu đề email)

5

downloadLink


string

255

Link tra cứu

6

downloadCode


string

255

Mã tra cứu

7

invoiceNo


string

 15

Số hóa đơn

8

 sellerTaxNo


string

 15

MST bên bán

9

sender

x

string

400

Người gửi

10

transactionMetadata


string

500

Thông tin gửi kèm của hóa đơn

11

generalModelNo 


string

255

Mẫu số

12

generalNotation 


string

255

Ký hiệu

Response

 

1

status

x

string

256

Mã trạng thái đẩy file thông tin hóa đơn

2

message

x

string

256

Mô tả chi tiết trạng thái (Bảng mã lỗi)








 

Request mẫu

curl –location ‘https://portal.ubot.vn/api/third-party/upload-email’ \
 –header ‘Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.ey0VNRU5ULEFDVElPTl9JTlBVVF9JTlZPSUNFLEFDT01B1JFUVVFU1QsQ0FURUdPUllfSU5WT0lDRSxDSEFOR0VfQUNUSVZFX0VQQVlfU0VUVElOR19DT1NUX1RZUEUsQ09ORklERU5DRV9ISVNUT1JZLENPTkZJR19FUEFZX0FQUFJPVkVfUkVRVUVTVF9QQVlNRU5ULENPTkZJR19FUEFZX0NPU1RfVFlQRSxDT05GSUdfRVBBWV9ERVBBUlRNRU5ULENPTkZJR19FUEFZX1BBSUQsQ09ORklHX0VQQVlfUEFZTUVOVF9JTkZPUk1BVElPTixDT05GSUdfRVBBWV9QQVlNRU5UX1JFUVVFU1QsQ1JFQVRFX0VQQVlfUEFZTUVOVF9SRVFVRVNULENSRUFURV9FUEFZX1BBWU1FTlRfUkVRVUVTVF9GUk9NX0VYQ0VMLENSRUFURV9FUEFZX1NFVFRJTkdfQ09TVF9UWVBFLENSRUFURV9FUEFZX1NFVFRJTkdfREVQQVJUTUVOVCxDUkVBVEVfRVBBWV9TRVRUSU5HX1BBWU1FTlRfSU5GT1JNQVRJT04sQ1JFQVRFX0xBQkVMX0lOUFVUX0lOVk9JQ0UsQ1JFQVRFX0xBQkVMX0lOVk9JQ0UsQ1JFQVRFX0xBQkVMX09VVFBVVF9JTlZPSUNFLENSRUFURV9VU0VSX0FDQ09VTlQsREVMRVRFX0NPTVBBTllfSU5WT0lDRSxERUxFVEVfRE9DVU1FTlRfSU5QVVRfSU5WT0lDRSxERUxFVEVfRE9DVU1FTlRfT1VUUFVUX0lOVk9JQ0UsREVMRVRFX0VQQVlfU0VUVElOR19ERVBBUlRNRU5ULERFTEVURV9FUEFZX1NFVFRJTkdfUEFZTUVOVF9JTkZPUk1BVElPTixERUxFVEVfRklMRV9PVVRQVVRfSU5WT0lDRSxERUxFVEVfTEFCRUxfSU5WT0lDRSxERUxFVEVfUEFQRVJfSU5WT0lDRSxERUxFVEVfUEVSTUlTU0lPTl9NQU5BR0VSX0dST1VQLERFTEVURV9QRVJNSVNTSU9OX1NPTFVUSU9OX0dST1VQLERPV05MT0FEX0RPQ1VNRU5UX0lOUFVUX0lOVk9JQ0UsRE9XTkxPQURfRE9DVU1FTlRfT1VUUFVUX0lOVk9JQ0UsRE9XTkxPQURfRklMRV9PVVRQVVRfSU5WT0lDRSxET1dOTE9BRF9GSUxFX1JFU1VMVF9DQVRFR09SWV9JTlZPSUNFLERPV05MT0FEX1BBUEVSX0lOVk9JQ0UsRE9XTkxPQURfUkVMQVRFRF9ET0NVTUVOVF9JTlBVVF9JTlZPSUNFLERPV05MT0FEX1JFTEFURURfT1VUUFVUX0lOVk9JQ0UsRE9XTkxPQURfUkVTVUxUX1BST0NFU1NJTkdfSU5WT0lDRSxFRElUX0NPTVBBTllfSU5WT0lDRSxFRElUX0NPTkZJREVOQ0UsRURJVF9FUEFZX1BBWU1FTlRfUkVRVUVTVCxFRElUX0VQQVlfU0VUVElOR19DT1NUX1RZUEUsRURJVF9FUEFZX1NFVFRJTkdfREVQQVJUTUVOVCxFRElUX0VQQVlfU0VUVElOR19QQVlNRU5UX0lORk9STUFUSU9OLEVESVRfUEVSTUlTU0lPTl9NQU5BR0VSX0dST1VQLEVESVRfUEVSTUlTU0lPTl9TT0xVVElPTl9HUk9VUCxFRElUX1VTRVJfQUNDT1VOVCxFUEFZX1BBWU1FTlQsRVhQT1JUX0VQQVlfQVBQUk9WRV9QQVlNRU5UX1JFUVVFU1QsRVhQT1JUX0lOUFVUX0lOVk9JQ0UsRVhQT1JUX09VVFBVVF9JTlZPSUNFLEVwYXkgUGF5bWVudCxHUk9VUF9DT01QQU5ZX0FVVEhFTlRJQ0FUSU9OLElOUFVUX0lOVk9JQ0UsSU5QVVRfSU5WT0lDRV9TVEFUSVNUSUMsSU5QVVRfUEFQRVJfSU5WT0lDRSxJTlZPSUNFX1NPVVJDRSxJTlZPSUNFX1NUQVRJU1RJQyxJU1NVRURfU1RBVFVTX0lOUFVUX0lOVk9JQ0UsSVNTVUVEX1NUQVRVU19PVVRQVVRfSU5WT0lDRSxMSVNUX0NPTkZJREVOQ0VfSElTVE9SWSxMSVNUX0VQQVlfQVBQUk9WRV9QQVlNRU5UX1JFUVVFU1QsTElTVF9FUEFZX1JFUVVFU1RfUEFZTUVOVCxMSVNUX0VQQVlfU0VUVElOR19DT1NUX1RZUEUsTElTVF9FUEFZX1NFVFRJTkdfREVQQVJUTUVOVCxMSVNUX0VQQVlfU0VUVElOR19QQVlNRU5UX0lORk9STUFUSU9OLExJU1RfSU5QVVRfSU5WT0lDRSxMSVNUX09VVFBVVF9JTlZPSUNFLExJU1RfVVNFUl9BQ0NPVU5ULE1BSUxfSU5QVVRfSU5WT0lDRV9TVEFUSVNUSUMsTUFJTF9JTlZPSUNFLE1BTkFHRVJfR1JPVVAsTUFOVUFMX1ZBTElEX01BUktfSU5QVVRfSU5WT0lDRSxNQVJLX1JFQURfTUFJTF9JTlZPSUNFLE1BUktfVkFMSURfSU5QVVRfSU5WT0lDRSxNWV9PUkRFUl9DUkVBVEUsTVlfT1JERVJfVklFVyxPQ1JfSU5URUdSQVRJT05fSU5WT0lDRV9QUk9DRVNTSU5HLE9VVFBVVF9JTlZPSUNFLE9VVFBVVF9JTlZPSUNFX1NUQVRJU1RJQyxQRVJNSVNTSU9OX0dST1VQLFFVT1RBX0lOVk9JQ0VfU1RBVElTVElDLFJFQ0hFQ0tfSU5QVVRfSU5WT0lDRSxST0xFX0NVU1RPTUVSLFJPTEVfQ1VTVE9NRVJfT05MSU5FX1BBWU1FTlRfU0VSVklDRSxST0xFX0NVU1RPTUVSX1BBUEVSX0lOVk9JQ0UsUk9MRV9JTVBPUlRfTUFTVEVSX0RBVEEsUk9MRV9JTlZPSUNFLFJPTEVfSVNTVUVEX0lOVk9JQ0VfU1RBVFVTLFJPTEVfT0NSX0lOVEVHUkFUSU9OX0NPTkZJR19DT05GSURFTkNFLFJPTEVfT0NSX0lOVEVHUkFUSU9OX0lOVk9JQ0VfUFJPQ0VTU0lORyxST0xFX1VQTE9BRF9PVVRQVVRfRUxFQ1RST05JQ19JTlZPSUNFUyxTRVRUSU5HX0JBQ0tVUF9JTlZPSUNFLFNFVFRJTkdfQ09NUEFOWV9JTlZPSUNFLFNFVFRJTkdfR0RUX0lOVk9JQ0UsU0VUVElOR19JTlZPSUNFLFNFVFRJTkdfTEFCRUxfSU5WT0lDRSxTRVRUSU5HX1RFTVBMQVRFX0VYQ0VMLFNPTFVUSU9OX0dST1VQLFRIUkVFX1dBWV9NQVRDSElORyxUT1RPLFRSQU5TRkVSX0RFUEFSVE1FTlRfSU5QVVRfSU5WT0lDRSxUaHJlZSBXYXkgTWF0Y2hpbmcsVUJPVF9MT09LVVBfSU5QVVRfSU5WT0lDRV9TVEFUSVNUSUMsVUJPVF9NQU5BR0VNRU5ULFVQTE9BRF9DQVRFR09SWV9JTlZPSUNFLFVQTE9BRF9ET0NVTUVOVF9JTlBVVF9JTlZPSUNFLFVQTE9BRF9ET0NVTUVOVF9PVVRQVVRfSU5WT0lDRSxVUExPQURfRklMRV9PVVRQVVRfSU5WT0lDRSxVUExPQURfSU5QVVRfSU5WT0lDRSxVUExPQURfT1VUUFVUX0lOVk9JQ0UsVVBMT0FEX1BBUEVSX0lOVk9JQ0UsVVNFUl9NQU5BR0VNRU5ULFZJRVdfREVUQUlMX0lOUFVUX0lOVk9JQ0UsVklFV19ERVRBSUxfT1VUUFVUX0lOVk9JQ0UsVklFV19ERVRBSUxfUEVSTUlTU0lPTl9TT0xVVElPTl9HUk9VUCxWSUVXX0RFVEFJTF9VU0VSX0FDQ09VTlQsVklFV19ET0NVTUVOVF9JTlBVVF9JTlZPSUNFLFZJRVdfRE9DVU1FTlRfT1VUUFVUX0lOVk9JQ0UsVklFV19ISVNUT1JZX1NFQVJDSF9JTlBVVF9JTlZPSUNFLFZJRVdfUEVSTUlTU0lPTl9NQU5BR0VSX0dST1VQIiwiZXhwIjoxNzMyOTU5MTkzfQ.t2R9aYuD3wcsy5GAZkRsZbkhpS8DmAUARHBTHGO2K9zKd0VQiSow6fc7FgcaSMxxuWYBRpyIb-9s7wF75wczcQ’ \
 –form ‘transactionId=”10″‘ \
 –form ‘files=@”/path/to/file”‘ \
 –form ‘files=@”jJuPCJd9-/2024_0901014110_C24TKG_341.xml”‘ \
 –form ‘companyId=”21c62ec6-2fe4-40d7-8e60-f6f0f816dc31″‘ \
 –form ‘downloadLink=””‘ \
 –form ‘downloadCode=””‘ \
 –form ‘invoiceNo=””‘ \
 –form ‘sellerTaxNo=””‘ \
 –form ‘sender=”Binhtt@gmail.com”‘ \
 –form ‘transactionMetadata=”{ \”sellerTaxNo\”: \”01838393993\”, \”modelNo\”: \”1\”, \”serial\”: \”C23TYY\”, \”buyer\”: \”FE\”, \”status\”: \”done\”, \”createdBy\”: \”linhnt@fpt.com\”, \”approver\”: \”admin@fpt.com\”, \”invoiceId\”: \”19298esh838383774\”, \”paymentId\”: \”123555\”}”‘
Respone mẫu
{
 “status”: 200,
 “message”: “Success”
       }

 

4.4. API gửi hóa đơn OCR

  #

Item

Thông tin

1

URL 

Product: https://portal.ubot.vn/api/third-party/upload-file

2

HTTP method

POST

3

Header

Content-Type: application/json

Authorization: Bear + token lấy từ API đăng nhập

 

#

Tên trường thông tin

Tính chất bắt buộc

Kiểu dữ liệu

Max length

Mô tả

Request

 

1

files

array

Y


List file (có thể gửi được nhiều file max 15 PDF & XML). Ví dụ: [“file_name_1″,”file_name_2”,…]

 

2

companyId

string

Y

256

Company id UBOT gửi (UBot sẽ gửi list companyId của từng Khách hàng)

 

Response

 

1

status

string

Y

256

Mã trạng thái đẩy file hóa đơn

 

2

message

string

256

Mô tả chi tiết trạng thái (Bảng mã lỗi)

 












 

Request mẫu

{
 “files”: [],
 “companyId” : “1743467345354354fgdfd33”
 }{
 “transactionId” : “ABC177R2538944”, 
 “files”: []
 “companyId” : “1743467345354354fgdfd33”,
 “title” : “HÓA ĐƠN ĐIỆN NƯỚC”,
 “body” : “InvNo123”,
 “downloadLink” : “tracuu.ehoadon.vn”,
 “downloadCode” : “DFGDFUGFUGF”,
 “invoiceNo” : “1234”,
 “sellerTaxNo” : “12345678”,
 “sender” : “autobot@ubot.com”
 }

Respone mẫu

{
 “status”: 200,
 “message”: “Success”
       }

 

4.5. API nhận trạng thái của TransactionId

Mục đích: API trả trạng thái của TransacstionID nhằm mục đích UBot kết nối với đối tác trả thông tin trạng thái của email hóa đơn UBot nhận xử lý.

#

Item

Thông tin

1

URL 

Product: https://portal.ubot.vn/api/third-party/transaction-status-by-ids

2

HTTP method

POST

3

Header

Content-Type: application/json

Authorization: Bear + token lấy từ API đăng nhập

 

#

Tên trường thông tin

Tính chất bắt buộc

Kiểu dữ liệu

Max length

Mô tả

Request

1

transactionIds

array

Y


Truyền 1 hoặc list TransactionId 

Response

meta (trả thông tin trạng thái email)

1

status

string

Y

256

Mã trạng thái đẩy xử lý email 

2

message

string

256

Mô tả chi tiết trạng thái (Bảng mã lỗi)

data (trả thông tin chi tiết trạng thái từng file dữ liệu trong 1 email)

3

transactionId

array

Y

256

transactionId

4

status

string

256

Trạng thái từng file trong email được xử lý:

+ Done: Đã xử lý

+ Running: Đang xử lý

+ Duplicate: Trùng lặp

+ Unknown: Không xác định

5

invoiceId

string

Y

256

Mã hóa đơn xử lý

6

totalInvoice

string

256

Tổng số lượng hóa đơn xử lý thành công của TransactionId hoặc EmailId

 

Request mẫu

{
 “files”: [],
 “companyId” : “1743467345354354fgdfd33”
 }

Respone mẫu

– meta:
{
statusCode: “200”,
message: Thành công
}
– data:
{
transactionId:
status: //gồm các giá trị: done, running, duplicate, unknown
invoiceId: //Id hóa đơn bị trùng lặp (1 hoặc list invoiceId)
totalInvoice: //tổng số hóa đơn xử lý thành công của TransactionId or emailId
}

 

4.6. API trả danh sách TransactionId

Mục đích: API trả danh sách TransacstionID nhằm mục đích đối tác có thể biết được danh sách TransactionId (danh sách hóa đơn) đẩy thành công vào UBot nhận xử lý.

#

Item

Thông tin

1

URL 

Product: https://portal.ubot.vn/api/third-party/transactions

2

HTTP method

POST

3

Header

Content-Type: application/json

Authorization: Bear + token lấy từ API đăng nhập

 

#

Tên trường thông tin

Tính chất bắt buộc

Kiểu dữ liệu

Max length

Mô tả

Request Parameter

1

from

x

date

256

Ngày UBot nhận hóa đơn

2

to

x

date

256

Ngày UBot nhận hóa đơn

3

page

x

number

256

Thứ tự trang đã được phân trang. Mặc định: 0

4

size

x

number

256

Số lượng bản ghi mỗi trang.  Default: 10. Max: 100 hóa đơn/response

5

sort

x

string

256

Sort theo tiêu chí:
 + createdDate: Ngày nhận hóa đơn về UBot

6

companyId


string

256

Id của công ty (UBot cung cấp)

Response

1

statusResponse

Kết quả xử lý request

1.1

statusCode


string


Tham khảo bảng Status code, mục V. Mã lỗi

1.2

errorCode


string


Mã lỗi. Tham khảo bảng Error code, mục V. Mã lỗi #1 và #6

1.3

message


string


Nội dung lỗi. Tham khảo bảng Error code, mục V. Mã lỗi

2

metadata

Thông tin bổ sung

2.1

page


number


Số thứ tự trang kết quả trả về

2.2

size


number


Số hóa đơn trong 1 trang kết quả trả về

2.3

total


number


Tổng số hóa đơn trả về

2.4

orderBy


string


Thứ tự của hóa đơn trả về


+ receivedDate (Default): Ngày nhận hóa đơn về UBot

+ invoiceReleaseDate: Ngày phát hành

2.5

sort




Sort theo các tiêu chí:

+ ASC: tăng dần

+ DESC (default): giảm dần

3

data

Danh sách hóa đơn

3.1

id


string


ID của bản ghi

3.2

transactionId


string


TransactionId của hóa đơn

3.3

companyId


string


CompanyId của hóa đơn

3.4

metadata


string


Thông tin đi kèm của hóa đơn

3.5

createdBy


string


Người gửi

3.6

createDate


string


Ngày UBot nhận hóa đơn

 

Request mẫu

curl –location ‘https://portal.ubot.vn/api/third-party/transactions?from=31%2F10%2F2024&to=31%2F10%2F2024&page=0&size=10&sort=createdDate%2Cdesc’ \
 –header ‘Authorization: Bearer OiJ0aGFvbnRwNDBAdWJvdC52biIsImF1dGgiOiJBQ0NFU1NfSFDVElPTl9JTlBVVF9JTlZPSUNFLEFDVElPTl9PVVRQVVRfSU5WT0lDRSxBQ1RJT05fVVBMT0FEX0lOUFVUX0lOVk9JQ0UsQUNUSU9OX1VQTE9BRF9PVVRQVVRfSU5WT0lDRSxBRERfQ09NUEFOWV9JTlZPSUNFLEFERF9QRVJNSVNTSU9OX01BTkFHRVJfR1JPVVAsQUREX1BFUk1JU1NJT05fU09MVVRJT05fR1JPVVAsQVBQUk9WRV9FUEFZX0FQUFJPVkVfUEFZTUVOVF9SRVFVRVNULEFQUFJPVkVfVkFSSUFOVF9JTlBVVF9JTlZPSUNFLEFTU0lHTl9MQUJFTF9JTlBVVF9JTlZPSUNFLEFTU0lHTl9MQUJFTF9PVVRQVVRfSU5WT0lDRSxBU1NJR05fTVVMVElfTEFCRUxfSU5QVVRfSU5WT0lDRSxBU1NJR05fTVVMVElfTEFCRUxfT1VUUFVUX0lOVk9JQ0UsQVVUSE9SSVRZX0VQQVlfQVBQUk9WRV9QQVlNRU5UX1JFUVVFU1QsQVVUT01BVElPTl9DUkVBVEVfTEFCRUxfSU5WT0lDRSxDQU5DRUxfRVBBWV9QQVlNRU5UX1JFUVVFU1QsQ0FURUdPUllfSU5WT0lDRSxDSEFOR0VfQUNUSVZFX0VQQVlfU0VUVElOR19DT1NUX1RZUEUsQ09ORklERU5DRV9ISVNUT1JZLENPTkZJR19FUEFZX0FQUFJPVkVfUkVRVUVTVF9QQVlNRU5ULENPTkZJR19FUEFZX0NPU1RfVFlQRSxDT05GSUdfRVBBWV9ERVBBUlRNRU5ULENPTkZJR19FUEFZX1BBSUQsQ09ORklHX0VQQVlfUEFZTUVOVF9JTkZPUk1BVElPTixDT05GSUdfRVBBWV9QQVlNRU5UX1JFUVVFU1QsQ1JFQVRFX0VQQVlfUEFZTUVOVF9SRVFVRVNULENSRUFURV9FUEFZX1BBWU1FTlRfUkVRVUVTVF9GUk9NX0VYQ0VMLENSRUFURV9FUEFZX1NFVFRJTkdfQ09TVF9UWVBFLENSRUFURV9FUEFZX1NFVFRJTkdfREVQQVJUTUVOVCxDUkVBVEVfRVBBWV9TRVRUSU5HX1BBWU1FTlRfSU5GT1JNQVRJT04sQ1JFQVRFX0xBQkVMX0lOUFVUX0lOVk9JQ0UsQ1JFQVRFX0xBQkVMX0lOVk9JQ0UsQ1JFQVRFX0xBQkVMX09VVFBVVF9JTlZPSUNFLENSRUFURV9VU0VSX0FDQ09VTlQsREVMRVRFX0NPTVBBTllfSU5WT0lDRSxERUxFVEVfRE9DVU1FTlRfSU5QVVRfSU5WT0lDRSxERUxFVEVfRE9DVU1FTlRfT1VUUFVUX0lOVk9JQ0UsREVMRVRFX0VQQVlfU0VUVElOR19ERVBBUlRNRU5ULERFTEVURV9FUEFZX1NFVFRJTkdfUEFZTUVOVF9JTkZPUk1BVElPTixERUxFVEVfRklMRV9PVVRQVVRfSU5WT0lDRSxERUxFVEVfTEFCRUxfSU5WT0lDRSxERUxFVEVfUEFQRVJfSU5WT0lDRSxERUxFVEVfUEVSTUlTU0lPTl9NQU5BR0VSX0dST1VQLERFTEVURV9QRVJNSVNTSU9OX1NPTFVUSU9OX0dST1VQLERPV05MT0FEX0RPQ1VNRU5UX0lOUFVUX0lOVk9JQ0UsRE9XTkxPQURfRE9DVU1FTlRfT1VUUFVUX0lOVk9JQ0UsRE9XTkxPQURfRklMRV9PVVRQVVRfSU5WT0lDRSxET1dOTE9BRF9GSUxFX1JFU1VMVF9DQVRFR09SWV9JTlZPSUNFLERPV05MT0FEX1BBUEVSX0lOVk9JQ0UsRE9XTkxPQURfUkVMQVRFRF9ET0NVTUVOVF9JTlBVVF9JTlZPSUNFLERPV05MT0FEX1JFTEFURURfT1VUUFVUX0lOVk9JQ0UsRE9XTkxPQURfUkVTVUxUX1BST0NFU1NJTkdfSU5WT0lDRSxFRElUX0NPTVBBTllfSU5WT0lDRSxFRElUX0NPTkZJREVOQ0UsRURJVF9FUEFZX1BBWU1FTlRfUkVRVUVTVCxFRElUX0VQQVlfU0VUVElOR19DT1NUX1RZUEUsRURJVF9FUEFZX1NFVFRJTkdfREVQQVJUTUVOVCxFRElUX0VQQVlfU0VUVElOR19QQVlNRU5UX0lORk9STUFUSU9OLEVESVRfUEVSTUlTU0lPTl9NQU5BR0VSX0dST1VQLEVESVRfUEVSTUlTU0lPTl9TT0xVVElPTl9HUk9VUCxFRElUX1VTRVJfQUNDT1VOVCxFUEFZX1BBWU1FTlQsRVhQT1JUX0VQQVlfQVBQUk9WRV9QQVlNRU5UX1JFUVVFU1QsRVhQT1JUX0lOUFVUX0lOVk9JQ0UsRVhQT1JUX09VVFBVVF9JTlZPSUNFLEVwYXkgUGF5bWVudCxHUk9VUF9DT01QQU5ZX0FVVEhFTlRJQ0FUSU9OLElOUFVUX0lOVk9JQ0UsSU5QVVRfSU5WT0lDRV9TVEFUSVNUSUMsSU5QVVRfUEFQRVJfSU5WT0lDRSxJTlZPSUNFX1NPVVJDRSxJTlZPSUNFX1NUQVRJU1RJQyxJU1NVRURfU1RBVFVTX0lOUFVUX0lOVk9JQ0UsSVNTVUVEX1NUQVRVU19PVVRQVVRfSU5WT0lDRSxMSVNUX0NPTkZJREVOQ0VfSElTVE9SWSxMSVNUX0VQQVlfQVBQUk9WRV9QQVlNRU5UX1JFUVVFU1QsTElTVF9FUEFZX1JFUVVFU1RfUEFZTUVOVCxMSVNUX0VQQVlfU0VUVElOR19DT1NUX1RZUEUsTElTVF9FUEFZX1NFVFRJTkdfREVQQVJUTUVOVCxMSVNUX0VQQVlfU0VUVElOR19QQVlNRU5UX0lORk9STUFUSU9OLExJU1RfSU5QVVRfSU5WT0lDRSxMSVNUX09VVFBVVF9JTlZPSUNFLExJU1RfVVNFUl9BQ0NPVU5ULE1BSUxfSU5QVVRfSU5WT0lDRV9TVEFUSVNUSUMsTUFJTF9JTlZPSUNFLE1BTkFHRVJfR1JPVVAsTUFOVUFMX1ZBTElEX01BUktfSU5QVVRfSU5WT0lDRSxNQVJLX1JFQURfTUFJTF9JTlZPSUNFLE1BUktfVkFMSURfSU5QVVRfSU5WT0lDRSxNWV9PUkRFUl9DUkVBVEUsTVlfT1JERVJfVklFVyxPQ1JfSU5URUdSQVRJT05fSU5WT0lDRV9QUk9DRVNTSU5HLE9VVFBVVF9JTlZPSUNFLE9VVFBVVF9JTlZPSUNFX1NUQVRJU1RJQyxQRVJNSVNTSU9OX0dST1VQLFFVT1RBX0lOVk9JQ0VfU1RBVElTVElDLFJFQ0hFQ0tfSU5QVVRfSU5WT0lDRSxST0xFX0NVU1RPTUVSLFJPTEVfQ1VTVE9NRVJfT05MSU5FX1BBWU1FTlRfU0VSVklDRSxST0xFX0NVU1RPTUVSX1BBUEVSX0lOVk9JQ0UsUk9MRV9JTVBPUlRfTUFTVEVSX0RBVEEsUk9MRV9JTlZPSUNFLFJPTEVfSVNTVUVEX0lOVk9JQ0VfU1RBVFVTLFJPTEVfT0NSX0lOVEVHUkFUSU9OX0NPTkZJR19DT05GSURFTkNFLFJPTEVfT0NSX0lOVEVHUkFUSU9OX0lOVk9JQ0VfUFJPQ0VTU0lORyxST0xFX1VQTE9BRF9PVVRQVVRfRUxFQ1RST05JQ19JTlZPSUNFUyxTRVRUSU5HX0JBQ0tVUF9JTlZPSUNFLFNFVFRJTkdfQ09NUEFOWV9JTlZPSUNFLFNFVFRJTkdfR0RUX0lOVk9JQ0UsU0VUVElOR19JTlZPSUNFLFNFVFRJTkdfTEFCRUxfSU5WT0lDRSxTRVRUSU5HX1RFTVBMQVRFX0VYQ0VMLFNPTFVUSU9OX0dST1VQLFRIUkVFX1dBWV9NQVRDSElORyxUT1RPLFRSQU5TRkVSX0RFUEFSVE1FTlRfSU5QVVRfSU5WT0lDRSxUaHJlZSBXYXkgTWF0Y2hpbmcsVUJPVF9MT09LVVBfSU5QVVRfSU5WT0lDRV9TVEFUSVNUSUMsVUJPVF9NQU5BR0VNRU5ULFVQTE9BRF9DQVRFR09SWV9JTlZPSUNFLFVQTE9BRF9ET0NVTUVOVF9JTlBVVF9JTlZPSUNFLFVQTE9BRF9ET0NVTUVOVF9PVVRQVVRfSU5WT0lDRSxVUExPQURfRklMRV9PVVRQVVRfSU5WT0lDRSxVUExPQURfSU5QVVRfSU5WT0lDRSxVUExPQURfT1VUUFVUX0lOVk9JQ0UsVVBMT0FEX1BBUEVSX0lOVk9JQ0UsVVNFUl9NQU5BR0VNRU5ULFZJRVdfREVUQUlMX0lOUFVUX0lOVk9JQ0UsVklFV19ERVRBSUxfT1VUUFVUX0lOVk9JQ0UsVklFV19ERVRBSUxfUEVSTUlTU0lPTl9TT0xVVElPTl9HUk9VUCxWSUVXX0RFVEFJTF9VU0VSX0FDQ09VTlQsVklFV19ET0NVTUVOVF9JTlBVVF9JTlZPSUNFLFZJRVdfRE9DVU1FTlRfT1VUUFVUX0lOVk9JQ0UsVklFV19ISVNUT1JZX1NFQVJDSF9JTlBVVF9JTlZPSUNFLFZJRVdfUEVSTUlTU0lPTl9NQU5BR0VSX0dST1VQIiwiZXhwIjoxNzMyOTU5MTkzfQ.t2R9aYuD3wcsy5GAZkRsZbkhpS8DmAUARHBTHGO2K9zKd0VQiSow6fc7FgcaSMxxuWYBRpyIb-9s7wF75wczcQ’

Respone mẫu

{
    “statusResponse”: {
        “statusCode”: 200,
        “errorCode”: null,
        “message”: “Success”
    },
    “metadata”: {
        “page”: 0,
        “size”: 10,
        “total”: 30,
        “orderBy”: null,
        “sort”: null
    },
    “data”: [
          {
            “id”: “29559556-4c76-4765-b060-fee39f0f3d2f”,
            “transactionId”: “11”,
            “companyId”: “21c62ec6-2fe4-40d7-8e60-f6f0f816dc31”,
            “emailId”: “fb66270b-7b4d-4384-81d6-3e78cae020b6”,
            “metaData”: “{ \”sellerTaxNo\”: \”01838393993\”, \”modelNo\”: \”1\”, \”serial\”: \”C23TYY\”,  \”buyer\”: \”FE\”,  \”status\”: \”done\”,  \”createdBy\”: \”linhnt@fpt.com\”,  \”approver\”: \”admin@fpt.com\”,  \”invoiceId\”: \”19298esh838383774\”,  \”paymentId\”: \”123555\”}”,
            “createdBy”: “thaontp40@ubot.vn”,
            “createdDate”: “2024-10-31T09:50:35Z”
        },
        {
            “id”: “abc1e7c9-1f3b-4062-8ea1-efb2a7a362ce”,
            “transactionId”: “a242395f-2042-44fa-91fd-4c5c77d6f11a”,
            “companyId”: “f10b63e9-9036-4846-b3b7-9b92c532b427”,
            “emailId”: “9d689254-87a1-44ad-b738-66d065d394cb”,
            “metaData”: null,
            “createdBy”: “thaontp40@ubot.vn”,
            “createdDate”: “2024-10-31T10:57:43Z”
        },
        {
            “id”: “2e7e2b21-9fa7-4f70-a693-b09d0cf5e9ce”,
            “transactionId”: “7749a678-7ff5-4281-b03c-e209a8d468e6”,
            “companyId”: “f10b63e9-9036-4846-b3b7-9b92c532b427”,
            “emailId”: “88e39011-bc81-4d23-b2ea-c6154715729e”,
            “metaData”: null,
            “createdBy”: “thaontp40@ubot.vn”,
            “createdDate”: “2024-10-31T10:57:34Z”
        }
    ]
}
  • MÃ LỖI

Bảng V.1 Status code

#

statusCode

Mô tả

1

200

Success

2

400

Bad Request (required fields; over max length; wrong data type).

3

401

Un-authorized (Chưa login, Sai token)

4

403

Không có quyền truy cập

5

500

Error exception

 

Bảng V.2 Error code

#

errorCode

message

1

Null/Blank

Không có lỗi

2

INV0005

Maximum size is 100

3

INV0006

The company does not belong to this account

 

 

 

 

Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article