Nhảy tới nội dung
Phiên bản: Lastest

API Tạo hóa đơn thanh toán

Endpoint: /api/v1/service/ebill/create

Method: POST

Header: Cách tạo JWT_TOKEN

{
"X-APPOTAPAY-AUTH": Bearer JWT_TOKEN,
"Content-Type": "application/json"
}

Tham số

Tham sốYêu cầuKiểu dữ liệuMô tả
billCodeStringMã đơn hàng phía Partner, là mã duy nhất cho mỗi đơn hàng
billInfoStringThông tin mô tả hóa đơn
billExpiryTimeIntegerThời gian hết hạn giao dịch thanh toán hóa đơn. Truyền lên time dạng Unix timestamp (Lưu ý)
customerNameStringTên người thanh toán.

- Tiếng việt không dấu

- Chỉ nhập các kí tự A-Z, a-z và 0-9

- Không nhập ký tự đặc biệt: Ví dụ: -,_,\

serviceCodeStringDịch vụ thanh toán
amountIntegerSố tiền giao dịch.
paymentConditionStringĐiều kiện thanh toán gồm có:

EQ: Số tiền chuyển khoản bằng số tiền hóa đơn

LTE: Số tiền chuyển khoản nhỏ hơn hoặc bằng số tiền hóa đơn

GTE: Số tiền chuyển khoản lớn hơn hoặc bằng số tiền hóa đơn

NO: Không giới hạn số tiền chuyển khoản (Giá trị cột "amount" có thể truyền bất kỳ số tiền >= 10000, VD amount=10000)

Điều kiện thanh toán phụ thuộc vào ngân hàng, đối tác nên kiểm tra giá trị amount khi nhận IPN

(Lưu ý)
bankCodeStringNgân hàng thanh toán
notifyUrlStringAPI của đối tác được AppotaPay sử dụng để gửi kết quả thanh toán theo phương thức IPN (Server to server)
extraDataStringThông tin thêm
signatureStringChữ ký các tham số truyền lên API, các tham số được đưa vào chữ ký theo thứ tự bao gồm: amount + bankCode + billCode + billExpiryTime + billInfo + customerName + extraData + notifyUrl + paymentCondition + serviceCode (xem thêm phần cách tạo signature)

Dữ liệu trả về

Tham sốKiểu dữ liệuMô tả
errorCodeIntegerMã lỗi trả về
messageStringChi tiết mã lỗi
billCodeStringMã đơn hàng, là mã duy nhất cho mỗi đơn hàng
paymentObjectThông tin thanh toán
payment.bankAccountsArray of ObjectThông tin tài khoản thanh toán
payment.bankAccounts.bankCodeStringMã ngân hàng
payment.bankAccounts.bankNameStringTên ngân hàng
payment.bankAccounts.bankBranchStringChi nhánh ngân hàng
payment.bankAccounts.accountNoStringSố tài khoản nhận tiền
payment.bankAccounts.accountNameStringTên tài khoản nhận tiền
signatureStringChữ ký các tham số trả về từ API, các tham số được đưa vào chữ ký theo thứ tự bao gồm: billCode + errorCode + json_encode(payment) (xem thêm phần cách tạo signature)

Ví dụ

Request

{
"billCode": "60586f8d6a684",
"billInfo": "Thanh toán hóa đơn",
"serviceCode": "GAME",
"customerName": "NGUYEN VAN A",
"notifyUrl": "https://yourdomain.com/ipn",
"amount": 50000,
"billExpiryTime": 1616818154,
"paymentCondition": "NO",
"bankCode": "WOORIBANK",
"signature": "abc123"
}

Response

{
"errorCode": 0,
"message": "Thành công",
"billCode": "60586f8d6a684",
"payment": {
"bankAccounts": [{
"bankCode": "WOORIBANK",
"bankName": "WOORIBANK",
"bankBranch": "",
"accountNo": "902000225675",
"accountName": "AP NGUYEN VAN A"
}]
},
"signature": "07a0127c496a24e1a72e5eb123da1e7bc603bbf444babc41fde20 63e5438a89f"
}