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ầu | Kiểu dữ liệu | Mô tả |
|---|---|---|---|
| billCode | √ | String | Mã đơn hàng phía Partner, là mã duy nhất cho mỗi đơn hàng |
| billInfo | √ | String | Thông tin mô tả hóa đơn |
| billExpiryTime | Integer | Thờ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 ý) | |
| customerName | √ | String | Tê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ụ: -,_,\ |
| serviceCode | String | Dịch vụ thanh toán | |
| amount | √ | Integer | Số tiền giao dịch. |
| paymentCondition | √ | String | Đ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 ý) |
| bankCode | √ | String | Ngân hàng thanh toán |
| notifyUrl | √ | String | API 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) |
| extraData | String | Thông tin thêm | |
| signature | √ | String | Chữ 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ệu | Mô tả |
|---|---|---|
| errorCode | Integer | Mã lỗi trả về |
| message | String | Chi tiết mã lỗi |
| billCode | String | Mã đơn hàng, là mã duy nhất cho mỗi đơn hàng |
| payment | Object | Thông tin thanh toán |
| payment.bankAccounts | Array of Object | Thông tin tài khoản thanh toán |
| payment.bankAccounts.bankCode | String | Mã ngân hàng |
| payment.bankAccounts.bankName | String | Tên ngân hàng |
| payment.bankAccounts.bankBranch | String | Chi nhánh ngân hàng |
| payment.bankAccounts.accountNo | String | Số tài khoản nhận tiền |
| payment.bankAccounts.accountName | String | Tên tài khoản nhận tiền |
| signature | String | Chữ 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"
}