Appearance
Delivery and SMS
Delivery and SMS
GET /api/v1/payouts/{reference}/delivery requires payouts:delivery. It returns 409 PENDING_CONFIRMATION unless the payout is paid. Example paid voucher response, with synthetic collection codes:
json
{
"success": true,
"data": {
"pin": "EXAMPLE-PIN",
"serial": "EXAMPLE-SERIAL",
"instructions": "Follow the voucher issuer's redemption instructions.",
"expires_at": null
}
}PIN, serial and instructions can be null. expires_at is optional and can be null; when supplied, its value comes from the provider. Do not assume a date format that the provider has not supplied. Every delivery read is audited.
- Standard Bank Instant Money and Nedbank Cardless return collection codes.
POST /api/v1/payouts/{reference}/resend-smsrequirespayouts:writeand a paid payout. At most three resend attempts are allowed per payout, at least 30 minutes apart. Failed or unconfirmed attempts also consume this allowance. The provider can impose further limits. Success returns{ "success": true, "data": null }and does not confirm SMS delivery. - RTC EFT is a bank credit. Delivery fields can be null and SMS resend returns
422 METHOD_UNAVAILABLE. - Voucher delivery is the vendor's responsibility. This service does not send a voucher SMS. SMS resend returns
422 METHOD_UNAVAILABLEfor vouchers.
Access and responses
Delivery requires payouts:delivery and is available only for paid payouts. Collection codes are sensitive; restrict access to the recipient and authorised staff. The delivery endpoint wraps the delivery object in {"success":true,"data":{...}}.
POST /api/v1/payouts/{reference}/resend-sms requires payouts:write. It requests another delivery SMS without making another payout. A successful response is {"success":true,"data":null}. See fixed errors for unavailable methods and resend limits.
Delivery fields
| Field | Type | Required | Details |
|---|---|---|---|
pin | string or null | Yes | |
serial | string or null | Yes | |
instructions | string or null | Yes | |
expires_at | string or null | Optional | Optional provider expiry value; no common date format is guaranteed. |

