---
updatedAt: 2026-06-18T21:13:22.000Z
agentTools:
  projectIndex: https://docs.dlocal.com/llms.txt
---

# Senegal

Learn everything you need to know to make payouts in Senegal 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(2, 1fr); /* Dos columnas */\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;\n        display: block;\n    }\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    color: #2D59F5 !important;\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  \n    [data-color-mode=\"dark\"] .overview-icon1 img {\n  filter: brightness(0) invert(1);\n  transition: filter 0.3s ease;\n}\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</style>\n  \n    <div class=\"main\">\n\n     <!-- Market specifications -->\n      <div class=\"overview-card1\" onclick=\"parent.location='/docs/senegal-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-card2\" onclick=\"parent.location='/docs/senegal-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          <a href=\"#wallet-transfers-1\" class=\"doc-link\">Wallet transfers</a>\n        </div>\n      </div>  \n      \n      \n    </div>"
}
[/block]

***

# Market specifications

Do you want to know more information about Senegal's market? Go to the [Expand Your Reach in Africa’s eCommerce Market](https://dlocal.com/payment-processors-middle-east-africa) article.

## Country reference

| `country` code | `currency` code | `amount` decimals | `beneficiary.document.type` name | `beneficiary.document.id` format |
| :------------: | :-------------: | :---------------: | :------------------------------: | :------------------------------: |
|      `SN`      |      `XOF`      |         2         |       CNI or ECOWAS ID Card      |          13 to 17 digits         |

## Mandatory parameters

### Bank transfers

| Mandatory parameter                | 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.account` | Yes | Yes | Yes |
| `remitter.first_name`              |  -  |  -  | Yes |
| `remitter.last_name`               |  -  |  -  | Yes |
| `remitter.document.type`           |  -  |  -  | Yes |
| `remitter.document.id`             |  -  |  -  | Yes |
| `remitter.birth_info.date`         |  -  |  -  | Yes |
| `remitter.address.street`          |  -  |  -  | Yes |
| `remitter.address.city`            |  -  |  -  | Yes |
| `remitter.address.country`         |  -  |  -  | Yes |
| `remitter.nationality`             |  -  |  -  | Yes |

### Wallet transfers

| Mandatory parameter                | 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.instant_payment.id`   | Yes | Yes | Yes |
| `beneficiary.instant_payment.type` | Yes | Yes | Yes |
| `remitter.first_name`              |  -  |  -  | Yes |
| `remitter.last_name`               |  -  |  -  | Yes |
| `remitter.document.type`           |  -  |  -  | Yes |
| `remitter.document.id`             |  -  |  -  | Yes |
| `remitter.birth_info.date`         |  -  |  -  | Yes |
| `remitter.address.street`          |  -  |  -  | Yes |
| `remitter.address.city`            |  -  |  -  | Yes |
| `remitter.address.country`         |  -  |  -  | Yes |
| `remitter.nationality`             |  -  |  -  | Yes |

***

# Payment methods

Senegal supports payouts via Bank transfers and Wallet transfers. Each method requires specific parameters and follows validation rules aligned with local compliance and banking standards.

Use Wallet transfers for instant payments to mobile wallets. Use Bank transfers when sending funds directly to a bank account.

## Bank transfers

Bank transfers in Senegal require detailed account information, including IBAN and SWIFT code. The format of these fields depends on the receiving bank, and strict validation rules apply.

### Mandatory parameters

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

| Mandatory parameter                | Description                                                                                                                                                   |
| :--------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `external_id`                      | Payout identification at the merchant's end. Maximum 100 characters.                                                                                          |
| `payment_method_id`                | Payment method identifier. For bank transfers, use `BANK_TRANSFER`.                                                                                           |
| `flow_type`                        | Payout flow type. Valid values: `B2C` (Business to Consumer), `B2B` (Business to Business), or `P2P` (Person to Person).                                      |
| `purpose`                          | Payout purpose code. See [purpose codes reference](https://docs.dlocal.com/docs/purpose-codes-reference-v3).                                                                           |
| `country`                          | Country code. For Senegal, use `SN`.                                                                                                                          |
| `amount`                           | Payout amount in `XOF`. Use up to 2 decimal places.                                                                                                           |
| `currency`                         | Source currency of the FX operation. For Senegal, use `XOF` or `USD`. Payouts are always paid in local currency to the beneficiary.                           |
| `beneficiary.first_name`           | Beneficiary's first name. Maximum 50 characters.                                                                                                              |
| `beneficiary.last_name`            | Beneficiary's last name. Maximum 50 characters.                                                                                                               |
| `beneficiary.business_name`        | Beneficiary's business name. Mandatory only for B2B.                                                                                                          |
| `beneficiary.bank_account.account` | Beneficiary's bank account number. Alphanumeric 28 chars IBAN Format. All IBANs begin with 'SN' and are exactly 28 characters long.                           |
| `remitter.first_name`              | Remitter's first name. Maximum 50 characters. Mandatory only for remittance (P2P).                                                                            |
| `remitter.last_name`               | Remitter's last name. Maximum 50 characters. Mandatory only for remittance (P2P).                                                                             |
| `remitter.document.type`           | Remitter's document type. Type of identification document: `ID` for national identification number, `PASS` for passport. Mandatory only for remittance (P2P). |
| `remitter.document.id`             | Remitter's identification number. Maximum 45 characters. Mandatory only for remittance (P2P).                                                                 |
| `remitter.birth_info.date`         | Remitter's date of birth in `YYYYMMDD` format. Mandatory only for remittance (P2P).                                                                           |
| `remitter.address.street`          | Remitter's street address. Maximum 200 characters. Mandatory only for remittance (P2P).                                                                       |
| `remitter.address.city`            | Remitter's city. Maximum 40 characters. Mandatory only for remittance (P2P).                                                                                  |
| `remitter.address.country`         | Remitter's country code in ISO 3166-1 alpha-2 format. Mandatory only for remittance (P2P).                                                                    |
| `remitter.nationality`             | Remitter's nationality. ISO 3166-1 alpha-2 code. Mandatory only for remittance (P2P).                                                                         |

### Example request

```json Bank transfer - B2C
{
  "external_id": "6222212111124",
  "payment_method_id": "BANK_TRANSFER",
  "flow_type": "B2C",
  "purpose": "OTHER_SERVICES",
  "country": "SN",
  "amount": 155,
  "currency": "XOF",
  "beneficiary": {
    "first_name": "Jhon",
    "last_name": "Miles",
    "bank_account": {
      "account": "SN08SN0790110525312153300129"
    }
  }
}
```
```json Bank transfer - B2B
{
  "external_id": "6222212111125",
  "payment_method_id": "BANK_TRANSFER",
  "flow_type": "B2B",
  "purpose": "OTHER_SERVICES",
  "country": "SN",
  "amount": 2500,
  "currency": "XOF",
  "beneficiary": {
    "business_name": "Business Services",
    "bank_account": {
      "account": "SN08SN0790110525312153300129"
    }
  }
}
```
```json Bank transfer - P2P
{
  "external_id": "6222212111126",
  "payment_method_id": "BANK_TRANSFER",
  "flow_type": "P2P",
  "purpose": "REMITTANCES",
  "country": "SN",
  "amount": 500,
  "currency": "XOF",
  "beneficiary": {
    "first_name": "Moussa",
    "last_name": "Diop",
    "bank_account": {
      "account": "SN08SN0790110525312153300129"
    }
  },
  "remitter": {
    "first_name": "Francois",
    "last_name": "Martin",
    "document": {
      "type": "PASS",
      "id": "123456789"
    },
    "birth_info": {
      "date": "1985-05-15"
    },
    "address": {
      "street": "123 Rue de Exemple",
      "city": "Paris",
      "country": "FR"
    },
    "nationality": "SN"
  }
}
```

## Wallet transfers

Wallet transfers enable real-time transfers using a mobile phone number linked to a wallet.

The `beneficiary.instant_payment.type` field must indicate the type of wallet being used (e.g., E-Money, Free, Orange, Wave, Wizall Money). The `beneficiary.instant_payment.id` field must be present and correctly formatted.

### Mandatory parameters

The table below outlines the required parameters for Wallet transfers.

| Mandatory parameter                | Description                                                                                                                                                   |
| :--------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `external_id`                      | Payout identification at the merchant's end. Maximum 100 characters.                                                                                          |
| `payment_method_id`                | Payment method. For wallet transfers, use `INSTANT_PAYMENT`.                                                                                                  |
| `flow_type`                        | Payout flow type. Valid values: `B2C` (Business to Consumer), `B2B` (Business to Business), or `P2P` (Person to Person).                                      |
| `purpose`                          | Payout purpose code. Use `OTHER_SERVICES` for B2C/B2B flows or `REMITTANCES` for P2P. See [purpose codes reference](https://docs.dlocal.com/docs/purpose-codes-reference-v3).          |
| `country`                          | Country code. For Senegal, use `SN`.                                                                                                                          |
| `amount`                           | Payout amount in `XOF`. Use up to 2 decimal places.                                                                                                           |
| `currency`                         | Source currency of the FX operation. For Senegal, use `XOF` or `USD`. Payouts are always paid in local currency to the beneficiary.                           |
| `beneficiary.first_name`           | Beneficiary's first name. Maximum 50 characters.                                                                                                              |
| `beneficiary.last_name`            | Beneficiary's last name. Maximum 50 characters.                                                                                                               |
| `beneficiary.business_name`        | Beneficiary's business name. Mandatory only for B2B.                                                                                                          |
| `beneficiary.instant_payment.id`   | Mobile phone number. Country code `+221` plus 9 digits. Ex: +221123456789.                                                                                    |
| `beneficiary.instant_payment.type` | Type of wallet being used: `E-MONEY`, `FREE`, `ORANGE`, `WAVE`, `WIZALL MONEY`.                                                                               |
| `remitter.first_name`              | Remitter's first name. Maximum 50 characters. Mandatory only for remittance (P2P).                                                                            |
| `remitter.last_name`               | Remitter's last name. Maximum 50 characters. Mandatory only for remittance (P2P).                                                                             |
| `remitter.document.type`           | Remitter's document type. Type of identification document: `ID` for national identification number, `PASS` for passport. Mandatory only for remittance (P2P). |
| `remitter.document.id`             | Remitter's identification number. Maximum 45 characters. Mandatory only for remittance (P2P).                                                                 |
| `remitter.birth_info.date`         | Remitter's date of birth in `YYYYMMDD` format. Mandatory only for remittance (P2P).                                                                           |
| `remitter.address.street`          | Remitter's street address. Maximum 200 characters. Mandatory only for remittance (P2P).                                                                       |
| `remitter.address.city`            | Remitter's city. Maximum 40 characters. Mandatory only for remittance (P2P).                                                                                  |
| `remitter.address.country`         | Remitter's country code in ISO 3166-1 alpha-2 format. Mandatory only for remittance (P2P).                                                                    |
| `remitter.nationality`             | Remitter's nationality. ISO 3166-1 alpha-2 code. Mandatory only for remittance (P2P).                                                                         |

### Example request

```json Wallet transfers - B2C
{
  "external_id": "6222212111124",
  "payment_method_id": "INSTANT_PAYMENT",
  "flow_type": "B2C",
  "purpose": "OTHER_SERVICES",
  "country": "SN",
  "amount": 155,
  "currency": "XOF",
  "beneficiary": {
    "first_name": "Jhon",
    "last_name": "Miles",
    "phone": "+221777109370",
    "instant_payment": {
      "id": "+221777109370",
      "type": "WAVE"
    }
  }
}
```
```json Wallet transfers - B2B
{
  "external_id": "6222212111125",
  "payment_method_id": "INSTANT_PAYMENT",
  "flow_type": "B2B",
  "purpose": "OTHER_SERVICES",
  "country": "SN",
  "amount": 3000,
  "currency": "XOF",
  "beneficiary": {
    "business_name": "Tech Solutions",
    "phone": "+221777109370",
    "instant_payment": {
      "id": "+221777109370",
      "type": "ORANGE"
    }
  }
}
```
```json Wallet transfers - P2P
{
  "external_id": "6222212111126",
  "payment_method_id": "INSTANT_PAYMENT",
  "flow_type": "P2P",
  "purpose": "REMITTANCES",
  "country": "SN",
  "amount": 600,
  "currency": "XOF",
  "notification_url": "https://thisisawebsite.net/payments",
  "beneficiary": {
    "first_name": "Fatou",
    "last_name": "Gueye",
    "phone": "+221777109370",
    "instant_payment": {
      "id": "+221777109370",
      "type": "ORANGE"
    }
  },
  "remitter": {
    "first_name": "Luis",
    "last_name": "Garcia",
    "document": {
      "type": "PASS",
      "id": "987654321"
    },
    "birth_info": {
      "date": "1990-11-20"
    },
    "address": {
      "street": "Calle Falsa 123",
      "city": "Madrid",
      "country": "ES"
    },
    "nationality": "ES"
  }
}
```

<br />