Payouts
Overview
The Payouts API enables you to:
- Execute instant payouts at any time of the day: Unlike traditional payout methods that can take hours or days, the API processes transactions in real-time, offering immediate access to funds for recipients.
- Improve operational efficiency: By automating the payout process, the Payouts API minimises manual intervention, reducing operational overhead and the potential for errors.
- Track payouts in real-time: You can track the status of your payouts in real-time, enhancing transparency and accountability.
- Integrate seamlessly: A standardised, developer-friendly API reduces the complexity and time required for integration.
- Scale effortlessly: The API can handle high volumes of transactions, making it suitable for your growing payout needs.
- Make mobile money payouts in West Africa: Send funds directly to recipients' mobile wallets in seven countries using local mobile money operators.
- Verify bank accounts before executing payouts: Use bank account verification (BANV) between 03:00 and 23:00 to confirm recipient details before sending funds, reducing the risk of paying the wrong account. See supported banks for the banks that BANV supports.
See the known limitations section for details on real-time clearing (RTC) processing limits.
You cannot reverse payouts, so Peach Payments strongly recommends executing a bank account verification (BANV) on the first payout to an account, especially for high risk or high value payouts. This ensures that you don't pay the wrong bank account.
Supported countries and currencies
Peach Payments supports payouts to the following countries and currencies:
| Country | Currency | Currency code | Payout method |
|---|---|---|---|
| South Africa | South African rand | ZAR | realtime-eft |
| Benin | West African CFA franc | XOF | mobile-money |
| Burkina Faso | West African CFA franc | XOF | mobile-money |
| Cameroon | Central African CFA franc | XOF | mobile-money |
| Côte d'Ivoire | West African CFA franc | XOF | mobile-money |
| Mali | West African CFA franc | XOF | mobile-money |
| Senegal | West African CFA franc | XOF | mobile-money |
| Togo | West African CFA franc | XOF | mobile-money |
For payouts to Cameroon, set
currencytoXOF. The Payouts API rejectsXAF.
Supported banks
The table below shows which South African banks Peach Payments supports for real-time EFT payouts and for bank account verification (BANV).
Always use the universal branch code from the table below when creating a payout, regardless of the customer's specific branch.
| Bank | Universal branch code | Payouts | BANV | Notes |
|---|---|---|---|---|
| Absa | 632005 | ✅ | ✅ | |
| Access Bank | 410105 | ✅ | ✅ | |
| African Bank | 430000 | ✅ | ✅ | |
| African Bank Business (formerly Grindrod Bank) | 584000 | ✅ | ✅ | |
| Albaraka Bank | 800000 | ✅ | ✅ | |
| Bank Zero - Mukuru | 435000 | ✅ | ❌ | |
| Bank Zero Mutual Bank | 888000 | ✅ | ❌ | |
| Bidvest Bank | 462005 | ✅ | ✅ | |
| Bidvest Bank Alliances | 683000 | ✅ | ❌ | |
| Capitec Bank (excluding Live Better accounts) | 470010 | ✅ | ✅ | |
| Capitec Business | 450105 | ✅ | ✅ | |
| Discovery Bank | 679000 | ✅ | ✅ | |
| eNL Mutual Bank (formerly YWBN Mutual Bank) | 353000 | ✅ | ✅ | |
| Finbond EPE | 589000 | ✅ | ❌ | |
| Finbond Mutual Bank | 589000 | ✅ | ✅ | |
| Finbond Net1 | None | ❌ | ✅ | |
| FNB (First National Bank) | 250655 | ✅ | ✅ | |
| GoTyme Bank (formerly TymeBank) | 678910 | ✅ | ✅ | |
| HBZ Bank Limited | 570105 | ✅ | ❌ | |
| Investec Bank Limited | 580105 | ✅ | ✅ | |
| Nedbank | 198765 | ✅ | ✅ | |
| Mercantile Bank (see notes) | 450105 | ✅ | ❌ | Use the Capitec Business details and universal branch code to pay out to Mercantile Bank accounts. |
| Mukuru (see notes) | 410105 | ✅ | ❌ | Use the Access Bank details and universal branch code to pay out to Mukuru accounts. |
| Old Mutual Bank | 352000 | ✅ | ✅ | |
| Rand Merchant Bank (RMB) (see notes) | 250655 | ✅ | ✅ | Use the FNB details and universal branch code to pay out to and verify RMB accounts. |
| Sasfin Bank (see notes) | 683000 | ✅ | ❌ | Use the Bidvest Bank Alliances details and universal branch code to pay out to Sasfin Bank accounts. |
| Standard Bank | 051001 | ✅ | ✅ | |
| Standard Chartered Bank SA | 730020 | ✅ | ✅ | |
| Ubank Ltd | 431010 | ✅ | ❌ |
Supported mobile money operators
For mobile money payouts, specify the providerMethod and countryCode parameters in your create payout request. The following table shows the valid combinations:
Operator (providerMethod) | Benin (BJ) | Burkina Faso (BF) | Cameroon (CM) | Côte d'Ivoire (CI) | Mali (ML) | Senegal (SN) | Togo (TG) |
|---|---|---|---|---|---|---|---|
Djamo (djamo) | ✅ | ✅ | |||||
Expresso (expresso) | ✅ | ||||||
Free Money (free-money) | ✅ | ||||||
Moov Money (moov) | ✅ | ✅ | ✅ | ✅ | |||
MTN (mtn) | ✅ | ✅ | ✅ | ||||
Orange Money (orange-money) | ✅ | ✅ | ✅ | ✅ | |||
T-Money (t-money) | ✅ | ||||||
Wave (wave) | ✅ | ✅ |
Process overview
Before executing any payouts, you should send Peach Payments a source of funds document for compliance reasons.
You can use the Payouts API to make payouts to suppliers, employees, partners, or customers. The payout method depends on the payout currency:
- Payouts in South African rand (ZAR) use real-time EFT.
- Payouts in West African CFA franc (XOF) use mobile money.
The process differs slightly depending on the payout method.
- After a payout is successfully submitted, you cannot recall it.
- Refunds are not supported.
- Failed payouts incur fees.
- To execute instant payouts, you must have enough funds in your Peach Payments account to cover the payout request. Deposit funds into the Peach Payments account using your unique reference, keeping in mind the known limitations.
Peach Payments processes deposits every two hours, with the processing covering the first two of the last three hours:
Deposits included from Deposits included to Processing time 00:00 02:00 03:00 02:00 04:00 05:00 04:00 06:00 07:00 06:00 08:00 09:00 08:00 10:00 11:00 10:00 12:00 13:00 12:00 14:00 15:00 14:00 16:00 17:00 16:00 18:00 19:00 18:00 20:00 21:00 20:00 22:00 23:00 22:00 00:00 01:00 If you deposit funds using:
- An RTC payment, your deposit could reflect in your account anywhere between one hour and one minute and three hours later. To ensure the shortest time between deposit and the funds reflecting in your account, deposit your funds before the times in the Deposits included to column. See the known limitations section for details on RTC processing limits.
- A normal EFT, your deposit might take up to two business days to reflect in your account, depending on cut-off times.
- You cannot use PayShap to deposit funds into the Peach Payments account. Use RTC (recommended) or EFT.
- You cannot deposit funds into the Peach Payments Payouts account from a GoTyme Bank Everyday account.
- Verify the bank accounts that you are going to pay, keeping in mind the known limitations.
- Create the payout request.
- Check the reasons for any failed payouts, fix their details, and try again.
- Contact support to enable mobile money payouts. Activating Payouts on the Dashboard enables only real-time EFT payouts.
- Ensure that you have enough funds in your Peach Payments account for the destination country to cover the payout request. Peach Payments holds a separate float balance for each country, so funds that you deposit for one country are not available for payouts in another country. To top up a float balance, contact support.
- Create the payout request with
payoutMethodset tomobile-money, and include thecountryCode,providerMethod, andaccountAliasparameters. Confirm that the operator and country combination is supported. - Check the reasons for any failed payouts, fix their details, and try again.
Bank account verification (BANV) does not apply to mobile money payouts.
The value of any failed payouts returns to your float balance for you to use on future payouts.
Duplicate checking
Peach Payments recommends that all create payout requests include a unique payoutId. While a unique payoutId is not yet mandatory, it will become mandatory soon and the API will reject any duplicate requests that arrive with the same payoutId.
Known limitations
- In South Africa, RTC operates with specific "dark hours" or processing windows that limit the value of transactions that you can process during those times:
- Business days (Monday to Friday): Day time (00h00:01 - 16h00), you can process RTC transactions with a limit of R5,000,000.
- Overnight (16h00:01 - 00h00) and during weekends or public holidays: The limit is R250,000.
- You cannot pay out to:
- Capitec Live Better accounts.
- GoTyme Bank SME account numbers that begin with
53.
- You cannot deposit funds into the Peach Payments Payouts account:
- Using PayShap. Use RTC (recommended) or EFT instead.
- From a GoTyme Bank Everyday account.
- Bank account verification operates between 03:00 and 23:00.
- Peach Payments holds a separate float balance for each country. Funds that you deposit for one country are not available for payouts in another country.
- You can only make mobile money payouts using the Payouts API. You cannot use the Dashboard to make single or bulk payouts.
- Each mobile money payout must be a whole amount between 200 and 5,000,000 in the payout currency. The Payouts API expects amounts in minor units, so set the
amountto a multiple of 100 from20000to500000000. The API accepts amounts that are not multiples of 100, but in production, the recipient receives the amount rounded up to the next whole amount. For example, if you set theamountto20050, the recipient receives 201, not 200.50. In sandbox, those payouts fail. - Sandbox testing might fail intermittently outside of South African office hours.
Quick links
Updated 5 days ago