Skip to main content
POST /v1/payments/pay Initiates a payment. Supports Mini Program cashier flows and agreement-based (recurring) payment scenarios.

Request Parameters

productCode
string
required
Payment product code assigned by Rebell (e.g., 51051000000011).Max length: 32 characters
paymentRequestId
string
required
Merchant-generated unique identifier (idempotency key).Max length: 64 characters
paymentAmount
object
required
Payment amount. See Amount.
paymentAuthCode
string
Authorization code.Max length: 128 characters
paymentExpiryTime
string
Payment expiry time in ISO 8601 format.
paymentNotifyUrl
string
Merchant callback URL for payment result notifications.Max length: 1024 characters
paymentRedirectUrl
string
URL to redirect the user to after payment.Max length: 1024 characters
cashierNotifyUrl
string
Cashier notification URL.Max length: 1024 characters
order
object
Order details including merchant, buyer, and goods information. See Order.For Mini Program and in-app payment flows, order.env is required and must include:
  • terminalType: APP
  • osType: IOS or ANDROID
agreedAmount
object
For agreement-based transactions. See Amount.
serviceExpireTime
string
Service expiry date. Format: yyyy-MM-dd
nextPaymentDate
string
Next scheduled payment date. Format: yyyy-MM-dd
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 ID.Max length: 64 characters
paymentTime
string
Payment completion time in ISO 8601 format.
redirectActionForm
object
Redirect instruction returned when the payment requires an H5 cashier step (e.g. direct pay and auth-capture flows with MOBILE_H5 channel source).
Double-encode the sign parameter before rendering redirectUrl as a QR code.The H5 cashier page decodes the URL once before parsing query parameters. Base64 characters in sign that are percent-encoded as %2B (+), %2F (/), or %3D (=) become +, /, = after that decode — but + is then parsed as a space, causing a PUB_VERIFY_SIGN_ERROR.Fix: replace those characters with their double-percent equivalents so they survive the H5 decode intact:
This is only needed when embedding the URL in a QR code. For direct browser redirects (window.location.href = redirectUrl), use the URL as-is.

Result Codes