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

API Xác Nhận Thanh Toán

API được dùng để xác thực giao dịch thanh toán trong trường hợp giao dịch cần xác thực đa thành tố.

EndPoint

POST /api/v2/ewallet/payment/confirm

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ã đơn hàng phía đối tác
verificationMethodrequiredStringPhương thức xác thực (OTP). Nhận được tại trường verificationMethod API Yêu Cầu Thanh ToánValue: OTP, NONE
verificationCoderequiredStringMã xác thực (OTP)min:1, max: 10
signaturerequiredStringChữ ký kiểm tra dữ liệusignature = hash_hmac('sha256', 'orderId={orderId}&verificationCode={verificationCode}' , SECRET_KEY))

Example Request

{
"orderId": "241698338917842945",
"verificationMethod": "OTP",
"verificationCode": "123456",
"signature": "8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92"
}

Response Params

{
"transaction": {
"orderId": "123728435",
"partnerCode": "TEST",
"transactionId": "233728435",
"status": "success",
"amount": 120000,
"currency": "VND",
"orderVersion": "1.0",
"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.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ả
errorCodeIntegerMã 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ỗiMô tả
1Thông tin yêu cầu thiếu hoặc không hợp lệ
2Tham số signature không chính xác
21Mã OTP không đúng
22Mã OTP đã hết hạn xác thực, vui lòng thực hiện lại giao dịch
33Giao dịch thất bại
34Giao dịch đang được xử lý, vui lòng kiểm tra lại sau
36Giao dịch không tồn tại
39Người dùng nhập sai mã OTP quá số lần quy định
40Giao dịch đã được hoàn trả
41Giao dịch đã thành công trước đó
42Yêu cầu lấy mã OTP quá số lần quy định
52Phương thức thanh toán không hợp lệ
70Bạn đã giao dịch vượt quá giới hạn trong ngày, vui lòng thử lại sau
75Số tiền không đủ để thanh toán
94Hệ thống đang bảo trì, vui lòng thử lại sau
99Lỗi không xác định, vui lòng kiểm tra lại giao dịch sau
162Bạn đã giao dịch vượt quá giới hạn trong tháng, vui lòng thử lại sau
401Lỗi xác thực
500Hệ thống gặp lỗi, vui lòng thử lại sau