Skip to main content
POST /v1/payments/retailPay Initiates a retail payment where the merchant scans the customer’s wallet QR code or barcode (Customer Presented Mode).

Request Parameters

productCode
string
required
Fixed product code for B Scan C: 51051000101000100040Max length: 32 characters
paymentRequestId
string
required
Merchant-generated unique identifier (idempotency key). Must be unique per transaction.Max length: 64 characters
paymentAuthCode
string
required
The QR code or barcode content scanned from the customer’s wallet. Single-use only.Max length: 128 characters
paymentAmount
object
required
Payment amount. See Amount.
order
object
required
Order details.
paymentNotifyUrl
string
Merchant callback URL for payment result notifications.Max length: 1024 characters
extendInfo
string
JSON-formatted extension data.Max length: 2048 characters

Response Parameters

result
object
required
Standard result object with resultCode, resultStatus, resultMessage
paymentRequestId
string
Echo of the merchant-provided request identifier.
paymentId
string
Wallet-generated unique payment identifier.Max length: 64 characters
paymentTime
string
Payment completion time in ISO 8601 format.
paymentAmount
object
Confirmed payment amount.

Result Codes

resultStatusresultCodeDescription
SSUCCESSPayment processed successfully
FPARAM_ILLEGALInvalid parameters
FINVALID_CODEAuth code is invalid
FAUTH_CODE_ALREADY_USEDAuth code already used
FPAYMENT_AMOUNT_EXCEED_LIMITPayment amount exceeds limit
FCURRENCY_NOT_SUPPORTCurrency not supported
FRISK_REJECTTransaction rejected by risk engine
UUNKNOWN_EXCEPTIONUnknown error occurred
UREQUEST_TRAFFIC_EXCEED_LIMITRate limit exceeded