---
updatedAt: 2026-10-08T09:47:15.000Z
agentTools:
  projectIndex: https://docs.dlocal.com/llms.txt
---

# South Africa

Learn everything you need to know to make payouts in South Africa with dLocal.

[block:html]
{
  "html": "<style>\n  \n  .main {\n    margin-left: auto;\n    margin-right: auto;\n    margin-bottom: 5px;\n    display: grid;\n    grid-template-columns: repeat(3, 1fr); /* Tres columnas */\n    width: 740px; /* Ancho máximo de la caja */\n}\n\n.overview-card1 {\n    position: relative; /* Asegúrate de que el contenedor sea relativo para posicionar el pseudoelemento */\n    width: 100%;\n    box-sizing: border-box;\n    margin: 0;\n}\n\n.overview-card1::after {\n    content: '';\n    position: absolute;\n    right: 0; /* Pega la línea al borde derecho */\n    top: 30%; /* Ajusta la posición superior de la línea */\n    height: 70%; /* Establece el alto de la línea al 60% */\n    width: 1px; /* Grosor de la línea */\n    background-color: #D2D8EC; /* Color de la línea */\n}\n\n  .overview-card2 {\n    position: relative; /* Asegúrate de que el contenedor sea relativo para posicionar el pseudoelemento */\n    width: 100%;\n    box-sizing: border-box;\n    margin: 0;\n}\n\n  \n.overview-card-upper-side1 {\n    height: 105px;\n    padding: 20px;\n    background-color: transparent;\n    text-align: left;\n}\n\n.overview-card-bottom-side {\n    position: relative;\n    width: 100%;\n    height: 100%;\n    padding: 30px;\n    padding-right: 20px;\n    background-color: transparent;\n    border-radius: 16px;\n}\n\n.overview-card-title1 {\n    font-family: 'Plus Jakarta Sans', sans-serif;\n    font-size: 24px;\n    font-weight: 700;\n    line-height: 26.4px;\n}\n\n.overview-card-content1 {\n    font-size: 14px;\n    font-weight: 300;\n    margin-top: 20px;\n    line-height: 20px;\n    margin-bottom: 40px!important;\n}\n\n.overview-icon1 {\n    margin-bottom: -5px;\n    margin-top: 20px;\n}\n  \n.doc-link {\n        position: relative;\n        font-weight: 500;\n        color: #21A35B !important;\n        text-decoration: none !important;\n        display: block;\n    }\n\ndiv:not(.markdown-body) .doc-link:hover {\n            text-decoration: none;\n            color: #1043FA !important;\n            transform: translateX(0.2em);\n        }\n\n.overview-card-title1:hover {\n    cursor:pointer;\n    transform: none!important;\n}\n\n    div:not(.markdown-body) .doc-link_arrow {\n        display: inline-block;\n        height: 1em;\n        width: auto;\n        vertical-align: middle;\n        margin-left: 0.2em;\n        margin-top: -0.1em;\n    }\n  \n     div:not(.markdown-body) .doc-link:hover .doc-link_arrow-color {\n            fill: #1043FA !important;\n        }\n  \n      [data-color-mode=\"dark\"] .overview-icon1 img {\n  filter: brightness(0) invert(1);\n  transition: filter 0.3s ease;\n  }\n\n/* Media Queries para dispositivos móviles */\n@media (max-width: 768px) {\n  .main {\n    grid-template-columns: repeat(2, 1fr); /* Dos columnas en pantallas medianas */\n  }\n}\n\n@media (max-width: 480px) {\n  .main {\n    grid-template-columns: 1fr; /* Una columna en pantallas pequeñas */\n}\n}  \n</style>\n  \n    <div class=\"main\">\n\n     <!-- Market specifications -->\n      <div class=\"overview-card1\" onclick=\"parent.location='/docs/south-africa-payouts-v3#market-specifications'\">\n     <div class=\"overview-card-bottom-side\">\n       <div class=\"overview-icon1\"><img width=\"48\" src=\"https://files.readme.io/922681fecfb238c94f7213fa9e0aa1675f1e190ec55beff2b6994169c77fdefc-adjust-circle.svg\"  alt=\"\" loading=\"lazy\"><div class=\"img_overlay img_color_rgba(0,0,0,.2)\"></div></div>\n           <h3 class=\"overview-card-title1\">Market specifications</h3>\n          <p class=\"overview-card-content1\">\n            Take a look of all the information you need to make a payout.   \n        </p>\n          <a href=\"#country-reference\" class=\"doc-link\">Country reference</a>\n          <a href=\"#mandatory-parameters\" class=\"doc-link\">Mandatory paramenters</a>\n\n        </div>\n      </div>\n      \n      <!-- Cards -->\n      <div\n        class=\"overview-card1\" onclick=\"parent.location='/docs/south-africa-payouts-v3#payment-methods'\">\n        <div class=\"overview-card-bottom-side\">\n                 <div class=\"overview-icon1\"><img width=\"48\" src=\"https://files.readme.io/5a59519487455e7af361db8b67a2dee8d71627d4d6e1ed0a0bd805f5da861fcc-money-stack.svg\"  alt=\"\" loading=\"lazy\"><div class=\"img_overlay img_color_rgba(0,0,0,.2)\"></div></div>\n           <h3 class=\"overview-card-title1\">Payment methods</h3>\n          <p class=\"overview-card-content1\">\n           Find all the information about payment methods  capabilities.   \n          </p>\n          <a href=\"#bank-transfers-1\" class=\"doc-link\">Bank transfers</a>\n        </div>\n      </div>  \n      \n      <!-- APM -->\n      <div class=\"overview-card2\" onclick=\"parent.location='/docs/south-africa-payouts-v3#bank-information'\">\n    <div class=\"overview-card-bottom-side\">\n            <div class=\"overview-icon1\"><img width=\"48\" src=\"https://files.readme.io/2fc6fd8c1c63714ae7685ef94ba185d2dbf91fbc9d88f4d2c71da7f45e260079-university.svg\"  alt=\"\" loading=\"lazy\"><div class=\"img_overlay img_color_rgba(0,0,0,.2)\"></div></div>\n           <h3 class=\"overview-card-title1\">Bank information</h3>\n          <p class=\"overview-card-content1\">\n             Find all the bank account validations  details you need to make a payout.     \n        </p>\n          <a href=\"#bank-codes\" class=\"doc-link\">Bank codes</a>\n        </div>\n      </div> \n      \n    </div>"
}
[/block]

***

# Market specifications

Do you want to know more information about South Africa's market? Go to the [South Africa’s economy and eCommerce market](https://dlocal.com/payment-processors-middle-east-africa/south-africa-payment-methods-processors-ecommerce-market/) article.

## Country reference

| `country` code | `currency` code | `amount` decimals | `beneficiary.document.type` name | `beneficiary.document.id` format |
| :------------: | :-------------: | :---------------: | :------------------------------: | :------------------------------: |
|      `ZA`      |      `ZAR`      |         2         |    South African Identity Card   |  13 digits with full validation  |

## Mandatory parameters

### Bank transfers

| Bank transfer parameters           | B2C | B2B | P2P |
| ---------------------------------- | :-: | :-: | :-: |
| `external_id`                      | Yes | Yes | Yes |
| `payment_method_id`                | Yes | Yes | Yes |
| `flow_type`                        | Yes | Yes | Yes |
| `purpose`                          | Yes | Yes | Yes |
| `country`                          | Yes | Yes | Yes |
| `amount`                           | Yes | Yes | Yes |
| `currency`                         | Yes | Yes | Yes |
| `beneficiary.first_name`           | Yes |  -  | Yes |
| `beneficiary.last_name`            | Yes |  -  | Yes |
| `beneficiary.business_name`        |  -  | Yes |  -  |
| `beneficiary.bank_account.code`    | Yes | Yes | Yes |
| `beneficiary.bank_account.account` | Yes | Yes | Yes |
| `beneficiary.bank_account.type`    | Yes | Yes | Yes |
| `beneficiary.phone`                |  -  |  -  | Yes |
| `remitter.first_name`              |  -  |  -  | Yes |
| `remitter.last_name`               |  -  |  -  | Yes |
| `remitter.document.id`             |  -  |  -  | Yes |
| `remitter.birth_info.date`         |  -  |  -  | Yes |
| `remitter.nationality`             |  -  |  -  | Yes |
| `remitter.address.street`          |  -  |  -  | Yes |
| `remitter.address.city`            |  -  |  -  | Yes |
| `remitter.address.country`         |  -  |  -  | Yes |

***

# Payment methods

South Africa supports payouts via Bank transfers. This method requires specific parameters and follows validation rules aligned with local compliance and banking standards.

## Bank transfers

Bank transfers in South Africa require detailed account information, including bank code, account type, and bank account number. The format of these fields depends on the receiving bank, and strict validation rules apply.

Refer to the [bank codes](#bank-codes) sections for format specifications.

### Mandatory parameters

All fields listed below are required for bank transfer payouts. For successful processing, ensure correct formatting and value types.

[block:parameters]
{
  "data": {
    "h-0": "Mandatory parameter",
    "h-1": "Description",
    "0-0": "`external_id`",
    "0-1": "Payout identification at the merchant's end. Maximum 100 characters.",
    "1-0": "`payment_method_id`",
    "1-1": "Payment method identifier. For bank transfers, use `BANK_TRANSFER`.",
    "2-0": "`flow_type`",
    "2-1": "Payout flow type. Valid values: `B2C` (Business to Consumer), `B2B` (Business to Business), or `P2P` (Person to Person).",
    "3-0": "`purpose`",
    "3-1": "Payout purpose code. See [purpose codes reference](https://docs.dlocal.com/docs/purpose-codes-reference-v3).",
    "4-0": "`country`",
    "4-1": "Country code. For South Africa, use `ZA`.",
    "5-0": "`amount`",
    "5-1": "Payout amount. Use up to 2 decimal places.",
    "6-0": "`currency`",
    "6-1": "Source currency of the FX operation. For South Africa, use `ZAR` or `USD`. Payouts are always paid in local currency to the beneficiary.",
    "7-0": "`beneficiary.first_name`",
    "7-1": "Beneficiary's first name. Maximum 10 characters.",
    "8-0": "`beneficiary.last_name`",
    "8-1": "Beneficiary's last name. Maximum 50 characters.",
    "9-0": "`beneficiary.business_name`",
    "9-1": "Beneficiary's business name. Mandatory only for B2B.",
    "10-0": "`beneficiary.bank_account.code`",
    "10-1": "Beneficiary's bank account code. See [bank codes](#bank-codes) below.",
    "11-0": "`beneficiary.bank_account.account`",
    "11-1": "Beneficiary's bank account number. Maximum 13 digits.",
    "12-0": "`beneficiary.bank_account.type`",
    "12-1": "Beneficiary's bank account type. Account type:  \n`CHECKING`: Checking accounts  \n`SAVINGS`: Savings accounts",
    "13-0": "`beneficiary.phone`",
    "13-1": "Phone number. Should be sent with country code +27 and 9 digits. Ex: +27792769943. Mandatory only for remittance (P2P).",
    "14-0": "`remitter.first_name`",
    "14-1": "Remitter's first name. Maximum 50 characters. Mandatory only for remittance (P2P).",
    "15-0": "`remitter.last_name`",
    "15-1": "Remitter's last name. Maximum 50 characters.  Mandatory only for remittance (P2P).",
    "16-0": "`remitter.document.id`",
    "16-1": "Remitter's identification number. Maximum 45 characters.  Mandatory only for remittance (P2P).",
    "17-0": "`remitter.birth_info.date`",
    "17-1": "Remitter's date of birth in ISO 8601 format (YYYY-MM-DD).  Mandatory only for remittance (P2P).",
    "18-0": "`remitter.nationality`",
    "18-1": "Remitter's nationality. ISO 3166-1 alpha-2 code.  Mandatory only for remittance (P2P).",
    "19-0": "`remitter.address.street`",
    "19-1": "Remitter's street address. Maximum 200 characters.  Mandatory only for remittance (P2P).",
    "20-0": "`remitter.address.city`",
    "20-1": "Remitter's city. Maximum 40 characters.  Mandatory only for remittance (P2P).",
    "21-0": "`remitter.address.country`",
    "21-1": "Remitter's country code in ISO 3166-1 alpha-2 format.  Mandatory only for remittance (P2P)."
  },
  "cols": 2,
  "rows": 22,
  "align": [
    "left",
    "left"
  ]
}
[/block]

### Example request

```json Bank transfers - B2C
{
  "external_id": "external456",
  "payment_method_id": "BANK_TRANSFER",
  "flow_type": "B2C",
  "purpose": "OTHER_SERVICES",
  "country": "ZA",
  "amount": 100.55,
  "currency": "ZAR",
  "beneficiary": {
    "first_name": "Jane",
    "last_name": "Doe",
    "bank_account": {
      "code": "3",
      "account": "1221947972",
      "type": "SAVINGS"
    }
  }
}
```
```json Bank transfers - P2P
{
  "external_id": "external123",
  "payment_method_id": "BANK_TRANSFER",
  "flow_type": "P2P",
  "purpose": "REMITTANCES",
  "country": "ZA",
  "amount": 1,
  "currency": "ZAR",
  "beneficiary": {
    "first_name": "p00",
    "last_name": "p00",
    "phone": "+27792769943",
    "bank_account": {
      "code": "3",
      "account": "1234567890123",
      "type": "CHECKING"
    }
  },
  "remitter": {
    "first_name": "David",
    "last_name": "Al",
    "document": {
      "id": "123456789",
      "type": "PASS"
    },
    "birth_info": {
      "date": "2000-03-11"
    },
    "nationality": "CO",
    "address": {
      "street": "Street",
      "city": "Zar city",
      "country": "ZA"
    }
  }
}
```

# Bank information

Access the reference formats and accepted values required for processing bank payouts in South Africa.

<br />

<details>
<summary class="summary_head">

## Bank codes

</summary>

<br />

These are the values the `bank_code` parameter can take in South Africa.

| Bank Name                                                           | Bank Code |
| ------------------------------------------------------------------- | :-------: |
| Absa                                                                |     1     |
| Access Bank (South Africa) Ltd                                      |     13    |
| African Bank                                                        |     2     |
| Al Baraka Bank                                                      |     33    |
| Bank Zero                                                           |     35    |
| Bank Zero - Mukuru                                                  |     36    |
| Bidvest Bank Limited / Old Mutual                                   |     12    |
| BNP Paribas SA                                                      |     27    |
| Capitec Bank Limited                                                |     3     |
| Capitec Business Bank                                               |    100    |
| Citibank                                                            |     14    |
| Discovery Bank Ltd                                                  |     4     |
| Finbond Mutual Bank                                                 |     25    |
| Finbond Net1                                                        |     26    |
| FirstRand Bank / First National Bank (FNB) / Rand Mutual Bank (RMB) |     5     |
| Grindrod Bank Limited                                               |     6     |
| Habib Overseas Bank Ltd                                             |     28    |
| HBZ Bank Limited                                                    |     21    |
| HSBC Bank                                                           |     23    |
| Investec Bank Limited                                               |     7     |
| Ithala Bank                                                         |     31    |
| JP Morgan Chase Bank                                                |     16    |
| Mercantile Bank                                                     |     17    |
| Nedbank Limited                                                     |     8     |
| Olympus Mobile                                                      |     22    |
| People’s Bank Ltd                                                   |     29    |
| Sasfin Bank Limited                                                 |     9     |
| South African Postbank SOC Ltd                                      |     18    |
| Standard Bank Ltd                                                   |     10    |
| Standard Chartered Bank SA                                          |     30    |
| State Bank of India                                                 |     34    |
| Tyme Bank Limited                                                   |     11    |
| Ubank Ltd                                                           |     15    |
| VBS Mutual Bank                                                     |     24    |

<br />

</details>