> ## Documentation Index
> Fetch the complete documentation index at: https://flutterwaveinc.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Egyptian Transfers (EGP)

> Learn how to transfer money to Egyptian bank accounts and wallets.

<Info>
  We recommend checking out the [introductory
  section](/fund-transfer/introduction) to understand the basics of making
  transfers first.
</Info>

Flutterwave helps you to process transfers into Egypt. Whether you choose to transfer to a bank account or wallet, we have you covered. This section guides you on how to make EGP transfers.

## Prerequisites

1. Complete your profile and KYC.
2. Fund your EGP balance either by:
   * Direct funding your balance.
   * Or Indirect funding: moving funds from a different balance to your EGP balance.

## Supported Transfer Types

There are three (3) supported transfer types for EGP Payouts:

1. Transfers to Bank Accounts
2. Cash pickup Transfers
3. Wallet Transfers

### Transfers to Bank Accounts

Bank transfers are supported for over 40 different banks(query the [banks endpoint](/fund-transfer/transfer-to-egypt) for the full list of supported banks). You can configure this payout to facilitate your single or recurring transfer use cases.

<Warning>
  **Transfer Settlement Schedule**

  Transfers are exclusively handled during operational hours, which run from 9am-3pm (GMT+2), Sundays through
  Thursdays. Requests made outside these hours are processed in the next
  working period. Funds are settled 24-48 hours after processing.
</Warning>

### Cash Pickup Transfers

Cash pickup transfer involves users physically receiving cash from a convenient pickup location (usually an agent). Unlike bank account transfers, These are instant and can be redeemed immediately.

When making a cash pickup transfer, you need to generate a voucher and redeem it with a Fawry plus agent. We return the voucher in the response of the initiate transfer call.

### Mobile Wallet Transfers

Wallet transfers support payment to wallets like QNB, Orange Cash, Qahera Cash, and 23 other wallets in Egypt (see [full wallet coverage](https://airtable.com/appKBntS5LboLL1k9/shrSsvZzb1YvncyWV)). Like Bank transfers, settlement for these transfers occurs 24-48 hours after processing.

## Payout Workflow

Follow these steps to complete a general EGP payout:

1. Collect the customer's (payout initiator) and beneficiary's information.
2. Query the bank endpoint to get the corresponding bank codes for the transfer.
3. Send your API request with the required parameters and any other custom data.
4. Verify the payout status either via webhooks or with the query status endpoint.

### Step 1: Collect Customer and Beneficiary Information

You need the right information to make the transfer. Collect your customer's information as well as the information of the transfer beneficiary. Here is a full list of requirements needed to initiate your transfer

| Parameter               | Description                                                                                                                                                | Format | Example                              | isRequired |
| ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ------ | ------------------------------------ | ---------- |
| account\_number         | The recipient's account number. For cash pick-up and wallet transfers, it should be the recipient's mobile number.                                         | string | 100035129997                         | Yes        |
| beneficiary\_name       | The name of the transfer recipient                                                                                                                         | string | Michael Wilson                       | Yes        |
| beneficiary\_address    | The address of the recipient                                                                                                                               | string | "333, Fremont street, San Francisco" | Yes        |
| transfer\_purpose       | This code represents the reason for making this transfer. See full list of [supported purposes](https://airtable.com/appKBntS5LboLL1k9/shrSsvZzb1YvncyWV). | string | "03"                                 | Yes        |
| sender\_id\_type        | This code represents the customer (sender's) id. See the full list of [supported ids](https://airtable.com/appKBntS5LboLL1k9/shrSsvZzb1YvncyWV).           | string | "02"                                 | Yes        |
| sender\_id\_number      | The number on the customer's identification document                                                                                                       | string | 123454                               | No         |
| sender\_id\_expiry      | The expiry date of the customer's identification document.                                                                                                 | string | 2030-12-31                           | Yes        |
| sender\_date\_of\_birth | The customer's date of birth                                                                                                                               | string | 1990-01-01                           | Yes        |

### Step 2: Confirm your Balance and Bank Code

<Info>
  **Wallet and Cash Pickup Codes**

  Pass `FAWRY` and `EGPWALLETS` as the bank code (`account_bank`) for Cash pickup and Wallet transfers respectively.
</Info>

Query the bank's endpoint to get the recipient's bank code. Use this sample as a guide to fetch a bank code.

```json cURL theme={null}
curl --location 'https://api.flutterwave.com/v3/banks/EG' \
--header 'Authorization: Bearer YOUR_SECRET_KEY'
```

### Step 3: Payout to your Customer

Send your customer and beneficiary information in your request to the transfer endpoint. Transfers are scheduled for processing immediately, and you'll get a webhook after the transfer is completed.

Here is a list of information that should be added to the customer and beneficiary's information in your request.

| Parameter     | Desciption                                               | Format | Example                                        | isRequired |
| ------------- | -------------------------------------------------------- | ------ | ---------------------------------------------- | ---------- |
| account\_bank | The recipient's bank code                                | string | CIB                                            | Yes        |
| amount        | The transfer amount                                      | int32  | 100                                            | Yes        |
| narration     | Transfer note                                            | string | Cross-border Transfer to Egyptian Bank Account | No         |
| currency      | Specific currency for the transfer. Expected value: EGP. | string | EGP                                            | No         |
| reference     | A unique identifier for the transfer.                    | string | 03                                             | No         |

<CodeGroup>
  ```json EGP_BANK_ACCOUNT_REQUEST_SAMPLE theme={null}
  curl --location 'https://api.flutterwave.com/v3/transfers' \
  --header 'Authorization: Bearer YOUR_SECRET_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
     "account_number":"100035129997",
     "account_bank":"CIB",
     "narration":"Cross-border Transfer to Egyptian Bank Account",
     "amount":10,
     "reference":"test_121x_PMCKDU_1",
     "currency":"EGP",
     "beneficiary_name":"Michael Rowland",
     "meta":[
        {
           "sender":"Cornelius",
           "sender_id_expiry":"2025-12-31",
           "sender_id_number":"123454",
           "sender_date_of_birth":"1999-01-01",
           "sender_id_type":"01",
           "beneficiary_address":"333, Fremont Street, San Francisco",
           "beneficiary_id_number":"ID5467833322222",
           "is_cash_pickup":false,
           "transfer_purpose":"03"
        }
     ]
  }'
  ```

  ```json EGP_CASH_PICKUP_REQUEST_SAMPLE theme={null}
  curl --location 'https://api.flutterwave.com/v3/transfers' \
  --header 'Authorization: Bearer YOUR_SECRET_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
      "account_bank": "fawry",
      "account_number": "00000000000",
      "narration": "Cross-border Fawry Transfer",
      "amount": 12,
      "reference": "test_321x_PMCKDU_1",
      "currency": "EGP",
      "beneficiary_name": "Mo’men Alaa",
      "meta": [{
          "is_cash_pickup": true
      }]
  }'
  ```

  ```json EGP_WALLET_REQUEST_SAMPLE theme={null}
  curl --location 'https://api.flutterwave.com/v3/transfers' \
  --header 'Authorization: Bearer YOUR_SECRET_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
     "account_bank":"EGPWALLETS",
     "account_number":"01068698386",
     "amount":300,
     "reference":"test_403x_PMCKDU_1",
     "beneficiary_name":"Chijioke Okorji",
     "narration":"Cross-border Transfer to Egyptian Wallet.",
     "currency":"EGP",
     "meta":[
        {
           "sender":"Emmanuel V",
           "beneficiary_mobile_number":"06703933333",
           "sender_id_expiry":"2026-02-02",
           "sender_date_of_birth":"1997-01-01",
           "sender_id_number":"PAS23433389011",
           "sender_id_type":"21",
           "is_cash_pickup":false,
           "beneficiary_address":"333, Fremont Street, San Francisco.",
           "transfer_purpose":"13"
        }
     ]
  }'
  ```
</CodeGroup>

The response should look like this:

<CodeGroup>
  ```json EGP_BANK_ACCOUNT_RESPONSE_SAMPLE theme={null}
  {
  	"status": "success",
  	"message": "Transfer Queued Successfully",
  	"data": {
  		"id": 617145,
  		"account_number": "100035129997",
  		"bank_code": "CIB",
  		"full_name": "Michael Rowland",
  		"created_at": "2024-02-19T14:35:28.000Z",
  		"currency": "EGP",
  		"amount": 10,
  		"fee": 45,
  		"status": "NEW",
  		"reference": "test_121x_PMCKDU_1",
  		"meta": [
  			{
  				"Sender": "Cornelius",
  				"SenderIdExpiry": "31/12/2025",
  				"SenderIdNumber": "123454",
  				"SenderDateOfBirth": "01/01/1999",
  				"SenderIdType": "PASSPORT",
  				"BeneficiaryAddress": "333, Fremont Street, San Francisco",
  				"BeneficiaryIdNumber": "ID5467833322222",
  				"IsCashPickup": false,
  				"TransferPurpose": "TRANSFER TO OWN FOREIGN BANK AC",
  				"BeneficiaryCountry": "EG",
  				"SenderAddress": "No 8b Providence street lekki Lagos",
  				"SenderMobileNumber": "0800000000",
  				"SenderCountry": "NG",
  				"SenderDob": "01/01/1999",
  				"SenderEmailAddress": "tester@flutterwavego.com",
  				"MerchantName": "Test Merchant",
  				"BeneficiaryName": "Michael Rowland"
  			}
  		],
  		"narration": "Cross-border Transfer to Egyptian Bank Account",
  		"complete_message": "",
  		"requires_approval": 0,
  		"is_approved": 1,
  		"bank_name": "FA-BANK"
  	}
  }
  ```

  ```json EGP_CASH_PICKUP_RESPONSE_SAMPLE theme={null}
  {
  	"status": "success",
  	"message": "Transfer Queued Successfully",
  	"data": {
  		"id": 222660,
  		"account_number": "01068698386",
  		"bank_code": "FAWRY",
  		"full_name": "Mo’men Alaa",
  		"created_at": "2024-02-20T18:18:06.000Z",
  		"currency": "EGP",
  		"amount": 12,
  		"fee": 2.14,
  		"status": "NEW",
  		"reference": "test_322x_PMCKDU_1",
  		"meta": [
  			{
  				"IsCashPickup": true,
  				"BeneficiaryName": "Mo’men Alaa"
  			}
  		],
  		"narration": "Cross-border Fawry Transfer",
  		"complete_message": "",
  		"requires_approval": 0,
  		"is_approved": 1,
  		"bank_name": "FA-BANK"
  	}
  }
  ```

  ```json EGP_WALLET_RESPONSE_SAMPLE theme={null}
  {
  	"status": "success",
  	"message": "Transfer Queued Successfully",
  	"data": {
  		"id": 617403,
  		"account_number": "01068698386",
  		"bank_code": "MOBILE",
  		"full_name": "Chijioke Okorji",
  		"created_at": "2024-02-21T16:29:59.000Z",
  		"currency": "EGP",
  		"amount": 300,
  		"fee": 45,
  		"status": "NEW",
  		"reference": "test_403x_PMCKDU_1",
  		"meta": [
  			{
  				"Sender": "Emmanuel V",
  				"BeneficiaryMobileNumber": "06703933333",
  				"SenderIdExpiry": "02/02/2026",
  				"SenderDateOfBirth": "01/01/1999",
  				"SenderIdNumber": "PAS23433389011",
  				"SenderIdType": "Business registration / licence",
  				"IsCashPickup": false,
  				"BeneficiaryAddress": "333, Fremont Street, San Francisco.",
  				"TransferPurpose": "FOR MEDICAL TREATMENT",
  				"BeneficiaryCountry": "EG",
  				"SenderAddress": "No 8b Providence street lekki Lagos",
  				"SenderMobileNumber": "0800000000",
  				"SenderCountry": "NG",
  				"SenderDob": "01/01/1999",
  				"SenderEmailAddress": "tester@flutterwavego.com",
  				"MerchantName": "Test Merchant",
  				"BeneficiaryName": "Chijioke Okorji",
  				"BeneficiaryIdNumber": null,
  				"TransferType": "MOBILE"
  			}
  		],
  		"narration": "Cross-border Transfer to Egyptian Wallet.",
  		"complete_message": "",
  		"requires_approval": 0,
  		"is_approved": 1,
  		"bank_name": "FA-BANK"
  	}
  }
  ```
</CodeGroup>

### Step 4: Verify the Payout Status

You have different options to verify the transfer status. Here are some quick ways to verify your status:

* If you have webhooks enabled, we'll call your webhook URL with the transfer details when the transfer is completed or fails.
* If you specify a `callback_url` when creating the transfer, we'll call that URL with the transfer details when the transfer is completed or fails.
* You can manually check the current status of the transfer by polling the [get transfer endpoint](/api-reference/transfers/fetch-a-transfer) with the transfer ID.

## Testing your Integration

Check our [testing helpers](/testing) to get mock data and resources to test your integration. If you need any support with your integration, kindly contact the [developer support team](https://flutterwave.com/gb/support).
