Overview
Use the merchant channel code that matches the South Africa payin flow:
- ZAR EFT — channel
900017 (redirect to bank)
- ZAR Capitec — channel
900018 (redirect; requires acc_ref: 13-digit SA ID)
See also: South Africa Integration Guide
Endpoint
| Method | POST |
| URL | /api/v2/payment/ |
| Channel (EFT) | 900017 |
| Channel (Capitec) | 900018 |
| Currency | ZAR |
Integration Flow
- POST with channel
900017 (EFT) or 900018 (Capitec) and currency ZAR.
- For Capitec, include
acc_ref (13-digit SA ID).
- Receive
redirect_url in the response.
- Redirect the customer to complete payment at their bank.
- Receive final status on your
result_url webhook.
Capitec vs EFT
| Flow | How to trigger | Extra fields |
| ZAR EFT | Channel 900017 | Phone in acc_no; omit acc_ref |
| ZAR Capitec | Channel 900018 + acc_ref | 13-digit SA ID + Capitec phone in acc_no |
Example — EFT
{
"wallet_no": "xxxxxxx",
"reference": "SA-EFT-001",
"acc_name": "John Doe",
"acc_no": "27113785456",
"email": "john@example.com",
"currency": "ZAR",
"amount": 100,
"channel": 900017,
"description": "Order payment",
"result_url": "https://your-server.com/webhook"
}
Example — Capitec
{
"wallet_no": "xxxxxxx",
"reference": "SA-CAP-001",
"acc_name": "John Doe",
"acc_no": "08166750025",
"acc_ref": "9401090445083",
"email": "john@example.com",
"currency": "ZAR",
"amount": 100,
"channel": 900018,
"description": "Capitec payment",
"result_url": "https://your-server.com/webhook"
}
Example Response
{
"success": true,
"message": "Successfully initiated",
"data": {
"transaction_id": "056341150381",
"status": "PENDING",
"status_description": "Transaction Initiated successfully",
"amount": 100,
"currency": "ZAR",
"redirect_url": "https://bank-redirect.example.com/...",
"date": "2026-07-08 12:00:00 PM"
}
}