> ## 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.

# Cash Pick Up

> Learn how to send money for your customers to pick up at an authorized location.

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

You can initiate a transfer for a customer to walk into a bank and collect it. We call these cash pick-up transfers.

USD cash pickup is a method where users physically receive cash from a bank branch or a convenient pickup location.

You can read [here](https://flutterwave.com/ng/support/payment-methods/transfers-via-usd-cash-pickup-nigeria) for a detailed explanation of how to initiate these transfers from your dashboard.

## Prerequisites

Before starting your integration, you should

1. Ensure that your Flutterwave account is live.
2. Check that your users are in Nigeria. This method supports payouts to FCMB, Fidelity, Polaris, UBA, and Zenith bank.
3. Ensure you instruct your users about how to collect cash. Cash collection is subject to Central Bank of Nigeria (CBN) directives.

<Warning>
  You need approval to use this feature. Contact us at [hi@flutterwavego.com](mailto:hi@flutterwavego.com) to
  request permission on your account.
</Warning>

## Making Transfers

Cash pick-up transfers work similarly to regular transfers. It makes use of the [create transfer endpoint](/api-reference/transfers/initiate-a-transfer) with some differences:

### Transfer Type Flag

When initiating a cash pickup transfer, You'll need to set `is_cash_pickup` as true in your request

```json Cash Pickup Flag theme={null}
{
    "account_bank": "214",
    ...
    "meta": [
        {
            "is_cash_pickup": true,
            ...
        }
    ]
}
```

### Transfer Recipient's Details

To make the transfer, You'll need to include the customer's information in your transfer request. These details include `mobile_number`, `email`, `beneficiary_country`, `beneficiary_occupation` and `recipient_address`.

```json Recipient's Details theme={null}
{
    "account_bank": "214",
    ...
    "meta": [
        {
            "mobile_number": "2348000000000",
            "email": "tobi@jones.com",
            "beneficiary_country": "NG",
            "recipient_address": "19, Olubunmi Rotimi street, Lekki",
            ...
        }
    ]
}
```

### Sender's Details

<Info>
  For transfers to UBA, Zenith or Polaris banks, only `sender_address` is
  required. We require `sender_city` for transfers to Fidelity bank. All other
  information described in this section are required for transfers to FCMB
  users.
</Info>

The sender's details required for cash pick-up transfers include `sender`, `sender_country`,
`sender_id_number`, `sender_id_type`, `sender_id_expiry`, `sender_mobile_number`,
`sender_address`, `sender_occupation` and `sender_beneficiary_relationship`.

```json Sender's Details theme={null}
{
    "account_bank": "214",
    ...
    "meta": [
        {
            ...
            "sender": "Flutterwave Developers",
            "sender_country": "NG",
            "sender_id_number": "00000000000",
            "sender_id_type": "drivers license",
            "sender_id_expiry": "05-2023",
            "sender_mobile_number": "2348000000000",
            "sender_address": "35a, Ladi Alakija Avenue, Lekki",
            "sender_beneficiary_relationship": "Customer"
        }
    ]
}
```

### Putting it All Together

The final request should look like this

<CodeGroup>
  ```json Sample Request (FCMB) theme={null}
  {
      "account_bank": "214",
      "amount": 200,
      "currency": "USD",
      "narration": "Sample money transfer",
      "reference": "TRF-1505927099809",
      "beneficiary_name": "Tobi Jones",
      "meta": [
          {
              "is_cash_pickup": true,
              "mobile_number": "2348000000000",
              "email": "tobi@jones.com",
              "beneficiary_country": "NG",
              "recipient_address": "19, Olubunmi Rotimi street, Lekki",
              "sender": "Flutterwave Developers",
              "sender_country": "NG",
              "sender_id_number": "00000000000",
              "sender_id_type": "drivers license",
              "sender_id_expiry": "05-2023",
              "sender_mobile_number": "2348000000000",
              "sender_address": "35a, Ladi Alakija Avenue, Lekki",
              "sender_beneficiary_relationship": "Customer"
          }
      ]
  }
  ```

  ```json Sample Request (UBA/Zenith/Polaris) theme={null}
  {
  	"account_bank": "057",
  	"amount": 200,
  	"currency": "USD",
  	"narration": "Sample money transfer",
  	"reference": "TRF-1532099j865",
  	"beneficiary_name": "Tobi Jones",
  	"meta": [
  		{
  			"email": "tobi@jones.com",
  			"mobile_number": "08009384921",
  			"recipient_address": "19, Olubunmi Rotimi street, Lekki",
  			"sender_address": "35a Ladi Alakija Avenue lekki",
  			"beneficiary_country": "NG",
  			"is_cash_pickup": true
  		}
  	]
  }
  ```

  ```json Sample Request (Fidelity) theme={null}
  {
  	"account_bank": "070",
  	"amount": 200,
  	"currency": "USD",
  	"narration": "Sample money transfer",
  	"reference": "TRF-1532099j865",
  	"beneficiary_name": "Tobi Jones",
  	"meta": [
  		{
  			"email": "tobi@jones.com",
  			"mobile_number": "08009384921",
  			"recipient_address": "19, Olubunmi Rotimi street, Lekki",
  			"sender_address": "35a Ladi Alakija Avenue lekki",
  			"sender_city": "Lagos",
  			"beneficiary_country": "NG",
  			"is_cash_pickup": true
  		}
  	]
  }
  ```
</CodeGroup>

The response should look like this:

<CodeGroup>
  ```json Sample Response (200) theme={null}
  {
  	"status": "success",
  	"message": "Transfer Queued Successfully",
  	"data": {
  		"id": 363110,
  		"account_number": "0000000000",
  		"bank_code": "057",
  		"full_name": "Tobi Jones",
  		"created_at": "2022-09-07T19:08:49.000Z",
  		"currency": "USD",
  		"amount": 200,
  		"fee": 2,
  		"status": "NEW",
  		"reference": "TRF-153902198_PMCKDU_1",
  		"meta": [
  			{
  				"EmailAddress": "tobi@gmail.com",
  				"MobileNumber": "08009384921",
  				"Address": "8, mumbai street",
  				"SenderAddress": "35a Ladi Alakija Avenue lekki1",
  				"BeneficiaryCountry": "NG",
  				"IsCashPickup": true,
  				"MerchantName": "Flutterwave Developers",
  				"SenderCountry": "NG",
  				"SenderMobileNumber": "0800000000",
  				"AccountNumber": "0000000000",
  				"RoutingNumber": "057",
  				"Sender": "Flutterwave Developers"
  			}
  		],
  		"narration": "money transfer",
  		"complete_message": "",
  		"requires_approval": 0,
  		"is_approved": 1,
  		"bank_name": "FA-BANK"
  	}
  }
  ```

  ```json Sample Response (400) theme={null}
  {
  	"status": "error",
  	"message": "Provided pickup bank not valid for cash pickup at the moment.",
  	"data": null
  }
  ```
</CodeGroup>

<Info>
  We cover the required parameters in [more detail
  here](/api-reference/transfers/initiate-a-transfer). If you need any support
  understanding or using this feature, please send us an email.
</Info>

As always, you'll notice that the `data.status` of the transfer is `NEW`. Remember to set up a webhook or call the get transfer endpoint to find out when the transfer is completed.
