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

API Yêu Cầu Thanh Toán

EndPoint

POST /api/v2/ewallet/payment

Header Params

Tham sốYêu cầuKiểu dữ liệuMô tảLưu ý
X-APPOTAPAY-AUTHrequiredString Cách tạo JWT_TOKEN
AuthorizationrequiredStringUser Access Token
Content-TyperequiredStringGiá trị: application/json
X-Request-IDoptionalStringĐịnh dạng UUIDv4. Request ID để kiểm tra yêu cầu khi xảy ra sự cốmax:42
X-LanguageoptionalStringGiá trị vi hoặc en tương ứng với link thanh toán sẽ là tiếng việt hoặc tiếng anh, (mặc định: vi)

in:vi,en

{
"X-APPOTAPAY-AUTH": "Bearer JWT_TOKEN",
"Authorization": "Bearer ACCESS_TOKEN",
"Content-Type": "application/json",
"X-Request-ID": "Your_Unique_id",
"X-Language": "vi"
}

Request Params

Tham sốYêu cầuKiểu dữ liệuMô tảLưu ý
orderIdrequiredStringMã giao dịch tham chiếumax: 50, alphanumeric
orderInforequiredStringThông tin đơn hàngmax: 150, alphanumeric
extraDataoptionalStringThông tin thêmmax: 1000
amountrequiredIntegerSố tiền thanh toánmin: 1000, max: 500000000
currencyrequiredStringĐơn vị tiền tệValue: VND
signaturerequiredStringChữ ký kiểm tra dữ liệusignature = hash_hmac('sha256', 'amount={amount}&currency={currency}&extraData={extraData}&orderId={orderId}&orderInfo={orderInfo}' , SECRET_KEY).

Example Request

{
"orderId": "123",
"orderInfo": "test",
"amount": 120000,
"currency": "VND",
"extraData": "test",
"signature": "8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92"
}

Response Params

{
"transaction": {
"orderId": "123728435",
"partnerCode": "TEST",
"transactionId": "233728435",
"status": "success",
"amount": 120000,
"currency": "VND",
"orderVersion": "1.0",
"verificationMethod": "NONE",
"createdAt": "2024-01-29T11:36:03+07:00",
"updatedAt": "2024-01-29T11:36:03+07:00"
}
}

Thành công

Http Status Code 200 - OK

Tham sốKiểu dữ liệuMô tảLưu ý
transactionObjectThông tin giao dịch
transaction.transactionIdStringMã giao dịch phía AppotaPay
transaction.partnerCodeStringMã đối tác
transaction.orderIdIntegerMã đơn hàng phía đối tác
transaction.statusStringTrạng thái GD

pending = Giao dịch đang chờ xử lý.

processing = Giao dịch đang tiến hành xử lý.

success = Giao dịch thành công.

error = Giao dịch thất bại.

transaction.amountIntegerSố tiền thanh toán
transaction.currencyStringĐơn vị tiền tệ
transaction.orderVersionStringPhiên bản thanh toán
transaction.errorCodeIntegerMã lỗi (chỉ trả về khi status != success)
transaction.errorMessageStringThông tin chi tiết mã lỗi (chỉ trả về khi status != success)
transaction.verificationMethodStringPhương thức xác thực (chỉ trả về khi status != error)Value: OTP, NONE
transaction.createdAtStringThời gian tạo giao dịch (định dạng chuẩn RFC-3339)
transaction.updatedAtStringThời gian cập nhật giao dịch (định dạng chuẩn RFC-3339)

Thất bại

HTTP Status Code != 200

Tham sốKiểu dữ liệuMô tả
errorCodeStringMã lỗi
messageStringMô tả thêm về lỗi

Bảng mã lỗi thường gặp

Mã lỗi đầy đủ vui lòng xem tại đây

Mã lỗiTrạng tháiMô tả
1errorThông tin yêu cầu thiếu hoặc không hợp lệ
2errorTham số signature không chính xác
30errorMã đơn hàng đã bị trùng, vui lòng thực hiện lại giao dịch
32errorSố tiền không hợp lệ
33errorGiao dịch thất bại
34pendingGiao dịch đang được xử lý, vui lòng kiểm tra lại sau
52errorPhương thức thanh toán không hợp lệ
70errorBạn đã giao dịch vượt quá giới hạn trong ngày, vui lòng thử lại sau
75errorSố tiền không đủ để thanh toán
84errorSố tiền giao dịch quá giới hạn cho phép, vui lòng liên hệ để được hỗ trợ
94pendingHệ thống đang bảo trì, vui lòng thử lại sau
99pendingLỗi không xác định, vui lòng kiểm tra lại giao dịch sau
162errorBạn đã giao dịch vượt quá giới hạn trong tháng, vui lòng thử lại sau
401errorLỗi xác thực
500pendingHệ thống gặp lỗi, vui lòng thử lại sau