Bỏ qua để đến nội dung chính
Phiên bản: 1.2.2 (Latest)

Tạo đơn hàng POS

API này dùng để tạo đơn hàng thanh toán và đẩy xuống máy POS đã liên kết. Khách hàng thanh toán đơn hàng trực tiếp trên máy POS bằng thẻ hoặc mã QR.

POST
URLhttps://open-api.tingee.vn/v1/create-pos-bill

Tạo đơn hàng thanh toán trên máy POS Payoo. Kết quả trả về billId dùng để tra cứu, hủy đơn và đối soát Webhook.

Header Request​

HeaderBắt buộcMô tả
Content-Type✓application/json
x-client-id✓Mã định danh của đối tác do TINGEE cung cấp.
x-signature✓Chữ ký xác thực HMAC SHA512. Xem thêm tại Cách sinh chữ ký.
x-request-timestamp✓Thời gian gửi request (format: yyyyMMddHHmmssSSS, múi giờ UTC+7)

Body Parameter​

TrườngKiểuBắt buộcMô tả
merchantIdnumber~ID của Merchant sở hữu máy POS.
Bắt buộc nếu kết nối bằng tài khoản Master Merchant.
bankBinstring✓Truyền cố định PAYOO.
vaAccountNumberstring✓Mã thiết bị POS Payoo đã liên kết (tối đa 50 ký tự).
amountnumber✓Số tiền cần thanh toán (VND, số nguyên dương).
paymentMethodstring✕Phương thức thanh toán hiển thị trên máy POS:
- card: Thanh toán thẻ
- qr: Thanh toán bằng mã QR
Bỏ trống (hoặc giá trị khác) để máy POS cho phép khách hàng tự chọn.
purposestring✕Nội dung thanh toán, hiển thị trên máy POS.
expireInMinutenumber✕Thời gian hiệu lực của đơn hàng (phút), từ 1 đến 43200. Mặc định 43200 (30 ngày).
extraInfostring✕Thông tin bổ sung của đối tác (tối đa 200 ký tự), được gửi kèm trong Webhook thanh toán.

Ví dụ mã nguồn​

curl --location --request POST 'https://open-api.tingee.vn/v1/create-pos-bill' \
--header 'accept: application/json' \
--header 'x-client-id: YOUR_CLIENT_ID' \
--header 'x-request-timestamp: 20240509154004003' \
--header 'x-signature: YOUR_SIGNATURE' \
--header 'Content-Type: application/json' \
--data '{
"bankBin": "PAYOO",
"vaAccountNumber": "POS00012345",
"amount": 150000,
"paymentMethod": "card",
"purpose": "Thanh toan don hang DH001",
"expireInMinute": 30,
"extraInfo": "DH001"
}'

Response mẫu​

{
"code": "00",
"message": "Success",
"data": {
"billId": "9f1c2b7e4a5d4c3b8e2f1a0b9c8d7e6f",
"amount": 150000,
"expireInMinute": 30,
"purpose": "Thanh toan don hang DH001"
}
}
TrườngKiểuMô tả
codestringMã kết quả (00 = Thành công).
messagestringThông điệp phản hồi.
data.billIdstringMã đơn hàng (32 ký tự). Dùng để tra cứu, hủy đơn và đối soát Webhook thanh toán.
data.amountnumberSố tiền của đơn hàng.
data.expireInMinutenumberThời gian hiệu lực của đơn hàng (phút); 43200 nếu không truyền khi tạo.
data.purposestringNội dung thanh toán (không trả về nếu không truyền khi tạo).

Mã lỗi thường gặp​

CodeMô tảHướng xử lý
1024Số tài khoản ảo không tồn tạiMáy POS chưa được liên kết với Merchant. Liên kết bằng Tạo/Liên kết số tài khoản với bankBin = "PAYOO".
1096Merchant ID không được bỏ trốngTài khoản Master Merchant cần truyền merchantId.
1095Merchant không thuộc Master MerchantKiểm tra merchantId thuộc Master Merchant đang gọi API.
400Lỗi từ Payoo hoặc dữ liệu không hợp lệmessage chứa mô tả lỗi chi tiết từ Payoo hoặc từ bước kiểm tra dữ liệu.
90, 91, 92, 97Lỗi xác thực request (timestamp, client-id, chữ ký)Xem Mã lỗi hệ thống.
OthersLỗi khácXem Danh sách mã lỗi.