Smart Voucher Payments
The SMART_VOUCHER payment method allows customers to make payments using prepaid codes, gift vouchers, or printed PINs. This solution is widely adopted in:
- Unbanked regions: Enables participation in digital commerce without bank accounts.
- Retail-to-online transitions: Allows customers to use retail-purchased codes online.
- Gaming and top-up services: Popular for in-game credits and prepaid top-ups.
This method abstracts complex integrations with multiple voucher providers, offering a single, unified API for merchants to support diverse voucher systems effortlessly.
Use Cases
- Redeeming gift cards for online purchases.
- Using retail-issued top-up codes for account recharges.
- Processing government subsidy vouchers for benefits distribution.
- Bridging offline-to-online payments, e.g., kiosk-issued PINs used in digital platforms.
Request Payload: SmartVoucherPayload
SmartVoucherPayload| Field | Type | Required? | Description |
|---|---|---|---|
paymentMethod | ApmMethod | Yes | Must always be set to SMART_VOUCHER. |
paymentType | ApmFlowType | Yes | Must always be VOUCHER. |
voucherCode | String | Required | Unique alphanumeric code printed on or linked to the voucher. |
voucherExpirationDate | String | Optional | Expiration date of the voucher in ISO 8601 format (e.g., 2025-12-31). |
Note: ThevoucherCodemust be a valid code issued by a supported voucher provider.
Response Payload: SmartVoucherResponseData
SmartVoucherResponseData| Field | Type | Required? | Description |
|---|---|---|---|
paymentMethod | ApmMethod | Yes | Always returns SMART_VOUCHER. |
paymentType | ApmFlowType | Yes | Always returns VOUCHER. |
redirectUrl | String | Optional | URL where the customer can complete voucher redemption on the provider’s site (if applicable). |
iframeUrl | String | Optional | URL for embedding the voucher redemption flow via iframe (if supported). |
providerTransactionId | String | Required | Unique reference ID for the transaction, returned by the voucher provider. |
voucherBalance | String | Optional | Remaining or redeemed monetary value of the voucher. |
sessionToken | String | Optional | Token for tracking session status or enabling transaction polling. |
voucherMetadata | Map<String, String> | Optional | Additional voucher provider data (e.g., currency, issuer info, channel). |
voucherCode | String | Optional | Echoed voucher code from the provider or transaction response. |
voucherExpirationDate | String | Optional | Expiration date of the voucher, as returned by the provider. |
Best Practices
- Validate voucher codes: Ensure correct format and issuance before initiating payment.
- Handle expiration dates: Use
voucherExpirationDateto inform users and prompt alternative actions if expired. - Display remaining balance: Show
voucherBalancefor top-up or reusable vouchers to improve UX. - Leverage metadata: Use
voucherMetadatafor reconciliation, adding issuer branding, or generating detailed reports. - Embed via iframe: Prefer
iframeUrlfor smoother, in-app redemption experiences without redirecting users externally.
Updated 8 days ago
