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

# Create and Manage Recipients

> Set up payout recipients for bank accounts and mobile money. Manage recipient details and verification.

Recipients are pre-defined payment accounts (such as bank accounts, mobile money wallets, or crypto addresses) that act as destinations for your payouts via the Busha API. By creating and managing recipients, you streamline your off-ramp processes, ensuring funds are sent to verified and correct destinations quickly and efficiently.

<Tip>
  **What You'll Achieve:**

  1. Understand what recipients are and why they are necessary for payouts.
  2. Learn how to dynamically fetch the required fields for creating a recipient based on country and currency.
</Tip>

## Prerequisites

Before you begin, ensure you have:

* A **Busha Business Account** and **Secret API Key** (from the [Quick Start Tutorial](/guides/getting-started/quick-start))
* An understanding of the **API Environments** (Sandbox vs. Production) and their respective base URLs (from the [Make Your First Request Guide](/guides/getting-started/make-first-request)).

## Recipient Types

Busha operates a multi-currency account system and accomodate recipients for each currency type. Currently, Busha supports the creation of recipients for:

* Nigerian bank accounts
* US bank accounts
* UK bank accounts
* M-Pesa mobile money (Kenya)
* MTN Mobile Money
* Cryptocurrency addresses

The recipient type is an important field in the request body object. Each recipient type have their unique fields outlined in the table below.

<table style={{ width: "100%", borderCollapse: "collapse" }}>
  <thead>
    <tr>
      <th style={{ width: "25%", textAlign: "left", padding: "12px" }}>Type</th>

      <th style={{ width: "20%", textAlign: "left", padding: "12px" }}>
        Category
      </th>

      <th style={{ width: "25%", textAlign: "left", padding: "12px" }}>
        Description
      </th>

      <th style={{ width: "30%", textAlign: "left", padding: "12px" }}>
        Required Fields
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td style={{ padding: "12px" }}>
        <code>ngn\_bank</code>
      </td>

      <td style={{ padding: "12px" }}>bank</td>
      <td style={{ padding: "12px" }}>Nigerian bank account</td>

      <td style={{ padding: "12px" }}>
        <code>bank\_name</code>, <code>bank\_code</code>,{" "}
        <code>account\_number</code>, <code>account\_name</code>
      </td>
    </tr>

    <tr>
      <td style={{ padding: "12px" }}>
        <code>usd\_bank</code>
      </td>

      <td style={{ padding: "12px" }}>bank</td>
      <td style={{ padding: "12px" }}>US bank account</td>

      <td style={{ padding: "12px" }}>
        <code>entity\_type</code>, <code>transfer\_type</code>,{" "}
        <code>account\_name</code>, <code>bank\_name</code> + routing fields
      </td>
    </tr>

    <tr>
      <td style={{ padding: "12px" }}>
        <code>gbp\_bank</code>
      </td>

      <td style={{ padding: "12px" }}>bank</td>
      <td style={{ padding: "12px" }}>UK bank account</td>

      <td style={{ padding: "12px" }}>
        <code>entity\_type</code>, <code>account\_name</code>,{" "}
        <code>bank\_name</code>, <code>sort\_code</code>,{" "}
        <code>account\_number</code>
      </td>
    </tr>

    <tr>
      <td style={{ padding: "12px" }}>
        <code>mpesa\_mobile\_money</code>
      </td>

      <td style={{ padding: "12px" }}>mobile\_money</td>
      <td style={{ padding: "12px" }}>M-Pesa (Kenya)</td>

      <td style={{ padding: "12px" }}>
        <code>phone\_number</code>, <code>account\_name</code>
      </td>
    </tr>

    <tr>
      <td style={{ padding: "12px" }}>
        <code>mtn\_mobile\_money</code>
      </td>

      <td style={{ padding: "12px" }}>mobile\_money</td>
      <td style={{ padding: "12px" }}>MTN Mobile Money</td>

      <td style={{ padding: "12px" }}>
        <code>phone\_number</code>, <code>account\_name</code>
      </td>
    </tr>

    <tr>
      <td style={{ padding: "12px" }}>
        <code>crypto</code>
      </td>

      <td style={{ padding: "12px" }}>crypto</td>
      <td style={{ padding: "12px" }}>Cryptocurrency wallet</td>

      <td style={{ padding: "12px" }}>
        <code>network</code>, <code>crypto\_address</code>,{" "}
        <code>account\_name</code>, optional <code>memo</code>
      </td>
    </tr>
  </tbody>
</table>

The recipient's request body varies from type to type. That is, the request body for a Nigerian bank account `ngn_bank`, will be different from that of a US bank account `usd_bank`.

In the following sections, we will create a recipient for each type and outline the required fields for each.

## Nigerian Bank Account

<Note>
  Nigerian bank account recipients require a `bank_code` field. You can retrieve your bank's code by sending a GET request to the `/banks` endpoint":

  ```shell theme={null}
  $ curl -i -X GET https://api.sandbox.busha.so/v1/banks
  ```
</Note>

The request body required to create a Nigerian bank account recipient is:

```json theme={null}
{
  "currency": "NGN", // Recipient's bank currency
  "country_code": "NG", // Recipient's country code
  "type": "ngn_bank", // Recipient type
  "bank_name": "OPAY", // Recipient's bank name
  "bank_code": "100004", // Recipient's bank code
  "account_number": "9000000000", // Recipient's account number
  "account_name": "BUSHA DIGITAL TECHNOLOGY" // Recipient's account name
}
```

To create a recipient:

1. Open your terminal or command prompt.
2. Construct a `POST` request to the `/v1/recipients` endpoint.
3. In the request body, update the following fields with your recipient's details:
   * `bank_name`
   * `bank_code`
   * `account_number`
   * `account_name`
4. Replace placeholders like `YOUR_BASE_URL` and `YOUR_SECRET_TOKEN` with your actual details.

```shell theme={null}
$ curl -i -X POST \
  https://YOUR_BASE_URL/v1/recipients \
  -H 'Authorization: Bearer YOUR_SECRET_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
  "currency": "NGN",
  "country_code": "NG",
  "type": "ngn_bank",
  "bank_name": "OPAY",
  "bank_code": "100004",
  "account_number": "9000000000",
  "account_name": "BUSHA DIGITAL TECHNOLOGY"
}'
```

**Expected Response**

Upon successful creation, the API will return a response containing the details of the newly created recipient, including its unique `id`.

```json theme={null}
{
  "status": "success",
  "message": "Recipient created successfully",
  "data": {
    "id": "6877ac708725d76db48eebff",
    "profile_id": "BUS_jlKUYwF9z1ynQZ98bWbaP",
    "account_name": "BUSHA DIGITAL TECHNOLOGY",
    "account_number": "9169277397",
    "active": true,
    "bank_code": "100004",
    "bank_name": "OPAY",
    "category": "bank",
    "country_code": "NG",
    "currency": "NGN",
    "object": "recipients",
    "owned_by_customer": true,
    "type": "ngn_bank"
  }
}
```

<Note>
  This `id` is crucial and will be reused in several cases, especially when
  making a payout into that specific payment account, as demonstrated in the
  [How to Make Payouts Guide](/guides/payouts/process-payouts).
</Note>

## US Bank Account (ACH)

The request body required to create a US bank account (`usd_bank`) recipient with a transfer type `ach` is:

```json theme={null}
{
  "type": "usd_bank", // Recipient type
  "entity_type": "personal", // Recipient entity type
  "transfer_type": "ach", // Recipient transfer type, ach
  "account_name": "Jane Smith", // Recipient account name
  "bank_name": "Chase Bank", // Recipient bank name
  "routing_number": "021000021", // Recipient routing number
  "account_number": "9876543210" // Recipient account number
}
```

To create a recipient:

1. Open your terminal or command prompt.
2. Construct a `POST` request to the `/v1/recipients` endpoint.
3. In the request body, update the following fields with your recipient's details:
   * `entity_type` : This can be `personal` or `business` depending on the recipient's bank entity type.
   * `account_number`
   * `bank_name`
   * `routing_number`
   * `account_name`
4. Replace placeholders like `YOUR_BASE_URL` and `YOUR_SECRET_TOKEN` with your actual details.

```shell theme={null}
$ curl -i -X POST \
  https://YOUR_BASE_URL/v1/recipients \
  -H 'Authorization: Bearer YOUR_SECRET_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
  "type": "usd_bank",
  "entity_type": "personal",
  "transfer_type": "ach",
  "account_name": "Jane Smith",
  "bank_name": "Chase Bank",
  "routing_number": "021000021",
  "account_number": "9876543210"
}'
```

**Expected Response**

Upon successful creation, the API will return a response containing the details of the newly created recipient, including its unique `id`.

```json theme={null}
{
  "status": "success",
  "message": "Recipient created successfully",
  "data": {
    "id": "6877afc18725d76db48eec02",
    "profile_id": "BUS_jlKUYwF9z1ynQZ98bWbaP",
    "account_name": "Jane Smith",
    "account_number": "9876543210",
    "active": true,
    "bank_name": "Chase Bank",
    "category": "bank",
    "country_code": "US",
    "currency": "USD",
    "entity_type": "personal",
    "object": "recipients",
    "owned_by_customer": true,
    "routing_number": "021000021",
    "transfer_type": "ach",
    "type": "usd_bank"
  }
}
```

<Note>
  This `id` is crucial and will be reused in several cases, especially when
  making a payout into that specific payment account, as demonstrated in the
  [How to Make Payouts Guide](/guides/payouts/process-payouts).
</Note>

## US Bank Account (Wire)

The request body required to create a US bank account (`usd_bank`) recipient with a transfer type `wire` is:

```json theme={null}
{
  "type": "usd_bank", // Recipient type
  "entity_type": "business", // Recipient entity type
  "transfer_type": "wire", // Recipient transfer type, wire
  "account_name": "Tech Corp LLC", // Recipient's account name
  "bank_name": "Bank of America", // Recipient's bank name
  "routing_number": "026009593", // Recipient's routing number
  "account_number": "1122334455" // Recipient's account number
}
```

To create a recipient:

1. Open your terminal or command prompt.
2. Construct a `POST` request to the `/v1/recipients` endpoint.
3. In the request body, update the following fields with your recipient's details:
   * `entity_type` : This can be `personal` or `business` depending on the recipient's bank entity type.
   * `account_number`
   * `bank_name`
   * `routing_number`
   * `account_name`
   * `swift_code`
4. Replace placeholders like `YOUR_BASE_URL` and `YOUR_SECRET_TOKEN` with your actual details.

```shell theme={null}
$ curl -i -X POST \
  https://YOUR_BASE_URL/v1/recipients \
  -H 'Authorization: Bearer YOUR_SECRET_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
  "type": "usd_bank",
  "entity_type": "business",
  "transfer_type": "wire",
  "account_name": "Tech Corp LLC",
  "bank_name": "Bank of America",
  "routing_number": "026009593",
  "account_number": "1234567890",
  "swift_code": "BOFAUS3N"
}'
```

**Expected Response**

Upon successful creation, the API will return a response containing the details of the newly created recipient, including its unique `id`.

```json theme={null}
{
  "status": "success",
  "message": "Recipient created successfully",
  "data": {
    "id": "6877b0a08725d76db48eec04",
    "profile_id": "BUS_jlKUYwF9z1ynQZ98bWbaP",
    "account_name": "Tech Corp LLC",
    "account_number": "1234567890",
    "active": true,
    "bank_name": "Bank of America",
    "category": "bank",
    "country_code": "US",
    "currency": "USD",
    "entity_type": "business",
    "object": "recipients",
    "owned_by_customer": true,
    "routing_number": "026009593",
    "swift_code": "BOFAUS3N",
    "transfer_type": "wire",
    "type": "usd_bank"
  }
}
```

<Note>
  This `id` is crucial and will be reused in several cases, especially when
  making a payout into that specific payment account, as demonstrated in the
  [How to Make Payouts Guide](/guides/payouts/process-payouts).
</Note>

## US Bank Account (SWIFT)

The request body required to create a US bank account (`usd_bank`) recipient with a transfer type of `swift` is:

```json theme={null}
{
  "type": "usd_bank", // Recipient type
  "entity_type": "business", // Recipient entity type
  "transfer_type": "swift", // Recipient transfer type, swift
  "account_name": "Global Corp Ltd", // Recipient's account name
  "iban": "GB29NWBK60161331926819", // Recipient's IBAN
  "swift_code": "CHASUS33XXX", // Recipient's SWIFT code
  "bank_name": "Bank of International Transfers", // Recipient's bank name
  "recipient_address": "123 Hauptstrasse, Berlin, 10115, Germany", // Recipient's address
  "intermediary_bank_name": "Intermediary Global Bank", // Recipient's intermediary bank name
  "intermediary_bank_address": "456 Avenue of Banks, Zurich", // Recipient's intermediary bank address
  "intermediary_swift_code": "CHASUS33XXX" // Recipient's intermediary swift code
}
```

To create a recipient:

1. Open your terminal or command prompt.
2. Construct a `POST` request to the `/v1/recipients` endpoint.
3. In the request body, update the following fields with your recipient's details:
   * `entity_type` : This can be `personal` or `business` depending on the recipient's bank entity type.
   * `account_name`
   * `iban`
   * `swift_code`
   * `bank_name`
   * `recipient_address`
   * `intermediary_bank_name`
   * `intermediary_bank_address`
   * `intermediary_swift_code`
4. Replace placeholders like `YOUR_BASE_URL` and `YOUR_SECRET_TOKEN` with your actual details.

```shell theme={null}
$ curl -i -X POST \
  https://YOUR_BASE_URL/v1/recipients \
  -H 'Authorization: Bearer YOUR_SECRET_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
  "type": "usd_bank",
  "entity_type": "business",
  "transfer_type": "swift",
  "account_name": "Global Corp Ltd",
  "iban": "GB29NWBK60161331926819",
  "swift_code": "CHASUS33XXX",
  "bank_name": "Bank of International Transfers",
  "recipient_address": "123 Hauptstrasse, Berlin, 10115, Germany",
  "intermediary_bank_name": "Intermediary Global Bank",
  "intermediary_bank_address": "456 Avenue of Banks, Zurich",
  "intermediary_swift_code": "CHASUS33XXX"
}'
```

**Expected Response**

Upon successful creation, the API will return a response containing the details of the newly created recipient, including its unique `id`.

```json theme={null}
{
  "status": "success",
  "message": "Recipient created successfully",
  "data": {
    "id": "6877bd038725d76db48eec0f",
    "profile_id": "BUS_jlKUYwF9z1ynQZ98bWbaP",
    "account_name": "Global Corp Ltd",
    "active": true,
    "bank_name": "Bank of International Transfers",
    "category": "bank",
    "country_code": "US",
    "currency": "USD",
    "entity_type": "business",
    "iban": "GB29NWBK60161331926818",
    "intermediary_bank_address": "456 Avenue of Banks, Zurich",
    "intermediary_bank_name": "Intermediary Global Bank",
    "intermediary_swift_code": "CHASUS33XXX",
    "object": "recipients",
    "owned_by_customer": true,
    "recipient_address": "123 Hauptstrasse, Berlin, 10115, Germany",
    "swift_code": "CHASUS33XXX",
    "transfer_type": "swift",
    "type": "usd_bank"
  }
}
```

<Note>
  This `id` is crucial and will be reused in several cases, especially when
  making a payout into that specific payment account, as demonstrated in the
  [How to Make Payouts Guide](/guides/payouts/process-payouts).
</Note>

## M-Pesa Mobile Money

The request body required to create an M-Pesa mobile money (`mpesa_mobile_money`) recipient is:

```json theme={null}
{
  "currency_id": "KES", // Currency ID
  "country_id": "KE", // Country ID, Kenya
  "type": "mpesa_mobile_money", // Recipient type
  "phone_number": "+254712345678", // Recipient's phone number (Mobile money ID)
  "account_name": "Samuel Kiprotich" // Recipient's account name
}
```

To create a recipient:

1. Open your terminal or command prompt.
2. Construct a `POST` request to the `/v1/recipients` endpoint.
3. In the request body, update the following fields with your recipient's details:
   * `account_name`
   * `phone_number`
4. Replace placeholders like `YOUR_BASE_URL` and `YOUR_SECRET_TOKEN` with your actual details.

```shell theme={null}
$ curl -i -X POST \
  https://YOUR_BASE_URL/v1/recipients \
  -H 'Authorization: Bearer YOUR_SECRET_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
  "type": "mpesa_mobile_money",
  "account_name": "Samuel Kiprotich",
  "phone_number": "+254712345678"
}'
```

**Expected Response**

Upon successful creation, the API will return a response containing the details of the newly created recipient, including its unique `id`.

```json theme={null}
{
  "status": "success",
  "message": "Recipient created successfully",
  "data": {
    "id": "6877b15d8725d76db48eec08",
    "profile_id": "BUS_jlKUYwF9z1ynQZ98bWbaP",
    "account_name": "Samuel Kiprotich",
    "active": true,
    "category": "mobile_money",
    "country_code": "KE",
    "currency": "KES",
    "object": "recipients",
    "owned_by_customer": true,
    "phone_number": "+254712345678",
    "type": "mpesa_mobile_money"
  }
}
```

<Note>
  This `id` is crucial and will be reused in several cases, especially when
  making a payout into that specific payment account, as demonstrated in the
  [How to Make Payouts Guide](/guides/payouts/process-payouts).
</Note>

## Bitcoin

The request body required to create a cryptocurrency recipient on the Bitcoin network:

```json theme={null}
{
  "type": "crypto", // Recipient type
  "account_name": "Coco", // Recipient account name
  "network": "BTC", // Recipient network
  "address": "bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh" // Recipient Bitcoin address
}
```

To create a recipient:

1. Open your terminal or command prompt.
2. Construct a `POST` request to the `/v1/recipients` endpoint.
3. In the request body, update the following fields with your recipient's details:
   * `account_name` : The name to identify the Bitcoin address stored.
   * `address`
4. Replace placeholders like `YOUR_BASE_URL` and `YOUR_SECRET_TOKEN` with your actual details.

```shell theme={null}
$ curl -i -X POST \
  https://YOUR_BASE_URL/v1/recipients \
  -H 'Authorization: Bearer YOUR_SECRET_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
  "type": "crypto",
  "account_name": "Coco",
  "network": "BTC",
  "address": "bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh"
}'
```

**Expected Response**

Upon successful creation, the API will return a response containing the details of the newly created recipient, including its unique `id`.

```json theme={null}
{
  "status": "success",
  "message": "Recipient created successfully",
  "data": {
    "id": "6877bbf68725d76db48eec0d",
    "profile_id": "BUS_jlKUYwF9z1ynQZ98bWbaP",
    "active": true,
    "address": "bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlw",
    "category": "crypto",
    "network": "BTC",
    "object": "recipients",
    "owned_by_customer": false,
    "type": "crypto"
  }
}
```

<Note>
  This `id` is crucial and will be reused in several cases, especially when
  making a payout into that specific payment account, as demonstrated in the
  [How to Make Payouts Guide](/guides/payouts/process-payouts).
</Note>

## USDT (ETH)

The request body required to create a cryptocurrency recipient (USDT) on the Ethereum network:

```json theme={null}
{
  "type": "crypto", // Recipient type
  "account_name": "Coco", // Recipient account name
  "network": "ETH", // Recipient network
  "address": "0x742d35Cc6543C4532f5D2b8d9a2b2A1234567881" // Recipient address
}
```

To create a recipient:

1. Open your terminal or command prompt.
2. Construct a `POST` request to the `/v1/recipients` endpoint.
3. In the request body, update the following fields with your recipient's details:
   * `account_name` : The name to identify the USDT address stored.
   * `address`
4. Replace placeholders like `YOUR_BASE_URL` and `YOUR_SECRET_TOKEN` with your actual details.

```shell theme={null}
$ curl -i -X POST \
  https://YOUR_BASE_URL/v1/recipients \
  -H 'Authorization: Bearer YOUR_SECRET_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
  "type": "crypto",
  "account_name": "Coco",
  "network": "ETH",
  "address": "0x742d35Cc6543C4532f5D2b8d9a2b2A1234567881"
}'
```

**Expected Response**

Upon successful creation, the API will return a response containing the details of the newly created recipient, including its unique `id`.

```json theme={null}
{
  "status": "success",
  "message": "Recipient created successfully",
  "data": {
    "id": "6877ec5c985bb54f0f2f9543",
    "profile_id": "BUS_jlKUYwF9z1ynQZ98bWbaP",
    "active": true,
    "address": "0x742d35Cc6543C4532f5D2b8d9a2b2A1234567881",
    "category": "crypto",
    "network": "ETH",
    "object": "recipients",
    "owned_by_customer": true,
    "type": "crypto"
  }
}
```

<Note>
  This `id` is crucial and will be reused in several cases, especially when
  making a payout into that specific payment account, as demonstrated in the
  [How to Make Payouts Guide](/guides/payouts/process-payouts).
</Note>

## STELLAR LUMENS

The request body required to create a cryptocurrency recipient on the XLM network:

```json theme={null}
{
  "type": "crypto", // Recipient type
  "account_name": "My Stellar Wallet", // Recipient's account name
  "network": "XLM", // Recipient's network, XLM
  "address": "GAHK7EEG2WWHVKDNT4CEQFZGKF2LGDSW2IVM4S5DP42RBW3K6BTODB4A", // Recipient's address
  "memo": "123456789" // Recipient's memo
}
```

To create a recipient:

1. Open your terminal or command prompt.
2. Construct a `POST` request to the `/v1/recipients` endpoint.
3. In the request body, update the following fields with your recipient's details:
   * `account_name` : The identifier for the recipient details.
   * `address`
   * `memo`
4. Replace placeholders like `YOUR_BASE_URL` and `YOUR_SECRET_TOKEN` with your actual details.

```shell theme={null}
$ curl -i -X POST \
  https://YOUR_BASE_URL/v1/recipients \
  -H 'Authorization: Bearer YOUR_SECRET_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
  "type": "crypto",
  "account_name": "My Stellar Wallet",
  "network": "XLM",
  "address": "GAHK7EEG2WWHVKDNT4CEQFZGKF2LGDSW2IVM4S5DP42RBW3K6BTODB4A",
  "memo": "123456789"
}'
```

**Expected Response**

Upon successful creation, the API will return a response containing the details of the newly created recipient, including its unique `id`.

```json theme={null}
{
  "status": "success",
  "message": "Recipient created successfully",
  "data": {
    "id": "6877b18e8725d76db48eec0a",
    "profile_id": "BUS_jlKUYwF9z1ynQZ98bWbaP",
    "active": true,
    "address": "GAHK7EEG2WWHVKDNT4CEQFZGKF2LGDSW2IVM4S5DP42RBW3K6BTODB4A",
    "category": "crypto",
    "memo": "123456789",
    "network": "XLM",
    "object": "recipients",
    "owned_by_customer": true,
    "type": "crypto"
  }
}
```

<Note>
  This `id` is crucial and will be reused in several cases, especially when
  making a payout into that specific payment account, as demonstrated in the
  [How to Make Payouts Guide](/guides/payouts/process-payouts).
</Note>

## Retrieve and List Recipients

After creating recipients, you'll often need to retrieve their details or get a list of all recipients associated with your profile. This allows you to manage your payout destinations and ensure you're using the correct `recipient_id` for transactions.

**Retrieve a Specific Recipient**

You can fetch the details of a single recipient if you know its unique `id`.

To retrieve a specific recipient:

1. Open your terminal or command prompt.
2. Construct a `GET` request to the `/v1/recipients/{id}` endpoint, replacing `{id}` with the actual recipient ID.
3. Ensure your `Authorization` and `YOUR_SECRET_TOKEN` headers are included.
4. Replace placeholders like `YOUR_BASE_URL` and `YOUR_SECRET_TOKEN`.

```bash theme={null}
$ curl -i -X GET \
  'https://api.busha.co/v1/recipients/{id}' \
  -H 'Authorization: Bearer YOUR_SECRET_TOKEN'
```

**Expected Response:**

A successful response will return a single recipient object, identical in structure to the one received during creation, containing all its details.

```json theme={null}
{
  "status": "success",
  "message": "Recipient retrieved successfully",
  "data": {
    "id": "6877afc18725d76db48eec02",
    "profile_id": "BUS_jlKUYwF9z1ynQZ98bWbaP",
    "user_id": "BUS_jlKUYwF9z1ynQZ98bWbaP",
    "active": true,
    "country_id": "US",
    "created_at": "2025-07-16T13:57:21.150561Z",
    "fields": [
      {
        "display_name": "currency",
        "is_copyable": true,
        "is_visible": false,
        "name": "currency",
        "required": false,
        "value": "USD"
      },
      {
        "display_name": "bank_name",
        "is_copyable": true,
        "is_visible": true,
        "name": "bank_name",
        "required": true,
        "value": "Chase Bank"
      },
      {
        "display_name": "entity_type",
        "is_copyable": true,
        "is_visible": true,
        "name": "entity_type",
        "required": true,
        "value": "personal"
      },
      {
        "display_name": "account_name",
        "is_copyable": true,
        "is_visible": true,
        "name": "account_name",
        "required": true,
        "value": "Jane Smith"
      },
      {
        "display_name": "country_code",
        "is_copyable": true,
        "is_visible": false,
        "name": "country_code",
        "required": false,
        "value": "US"
      },
      {
        "display_name": "transfer_type",
        "is_copyable": true,
        "is_visible": true,
        "name": "transfer_type",
        "required": true,
        "value": "ach"
      },
      {
        "display_name": "account_number",
        "is_copyable": true,
        "is_visible": true,
        "name": "account_number",
        "required": false,
        "value": "9876543210"
      },
      {
        "display_name": "routing_number",
        "is_copyable": true,
        "is_visible": true,
        "name": "routing_number",
        "required": false,
        "value": "021000021"
      }
    ],
    "legal_entity_type": "personal",
    "object": "recipients",
    "owned_by_customer": true,
    "type": "usd_bank",
    "updated_at": "2025-07-16T13:57:21.150561Z",
    "currency_id": "USD"
  }
}
```

**List All Recipients**

To get an overview of all the recipients you have created, you can make a `GET` request to the `/v1/recipients` endpoint without specifying an ID.

To list all recipients:

1. Open your terminal or command prompt.
2. Construct a `GET` request to the `/v1/recipients` endpoint.
3. Ensure your `Authorization` header is included.
4. Replace placeholders like `YOUR_BASE_URL` and `YOUR_SECRET_TOKEN`.

```bash theme={null}
$ curl -i -X GET 'https://YOUR_BASE_URL/v1/recipients' \
  -H 'Authorization: Bearer YOUR_SECRET_TOKEN'
```

**Expected Response:**

A successful response will return a list (an array) of all recipient objects associated with your profile. This allows you to programmatically manage your available payout destinations.

```json theme={null}
{
  "status": "success",
  "message": "Recipients retrieved successfully",
  "pagination": {
    "current_entries_size": 10,
    "next_cursor": "eyJhbmNob3IiOiIyMDI1LTA3LTE2VDEzOjU3OjIxLjE1MDU2MVoiLCJhbmNob3JfaWQiOiJjcmVhdGVkX2F0Iiwic2Vjb25kYXJ5X2FuY2hvcl9pZCI6ImlkIiwiZGlyZWN0aW9uIjoibmV4dCIsInBvc2l0aW9uIjowLCJzb3J0X29yZGVyIjoiZGVzYyIsImxpbWl0IjoxMH0="
  },
  "data": [
    {
      "id": "6877ec5c985bb54f0f2f9543",
      "profile_id": "BUS_jlKUYwF9z1ynQZ98bWbaP",
      "user_id": "BUS_jlKUYwF9z1ynQZ98bWbaP",
      "active": true,
      "created_at": "2025-07-16T18:15:56.073128Z",
      "fields": [
        {
          "display_name": "address",
          "is_copyable": true,
          "is_visible": true,
          "name": "address",
          "required": true,
          "value": "0x742d35Cc6543C4532f5D2b8d9a2b2A1234567881"
        },
        {
          "display_name": "network",
          "is_copyable": true,
          "is_visible": true,
          "name": "network",
          "required": true,
          "value": "ETH"
        }
      ],
      "legal_entity_type": "personal",
      "object": "recipients",
      "owned_by_customer": true,
      "type": "crypto",
      "updated_at": "2025-07-16T18:15:56.073128Z"
    },
    {
      "id": "6877e78e985bb54f0f2f9541",
      "profile_id": "BUS_jlKUYwF9z1ynQZ98bWbaP",
      "user_id": "BUS_jlKUYwF9z1ynQZ98bWbaP",
      "active": true,
      "country_id": "KE",
      "created_at": "2025-07-16T17:55:26.935875Z",
      "fields": [
        {
          "display_name": "currency",
          "is_copyable": true,
          "is_visible": false,
          "name": "currency",
          "required": false,
          "value": "KES"
        },
        {
          "display_name": "account_name",
          "is_copyable": true,
          "is_visible": true,
          "name": "account_name",
          "required": true,
          "value": "Samuel Kiprotich"
        },
        {
          "display_name": "country_code",
          "is_copyable": true,
          "is_visible": false,
          "name": "country_code",
          "required": false,
          "value": "KE"
        },
        {
          "display_name": "phone_number",
          "is_copyable": true,
          "is_visible": true,
          "name": "phone_number",
          "required": true,
          "value": "+254712345678"
        }
      ],
      "legal_entity_type": "personal",
      "object": "recipients",
      "owned_by_customer": true,
      "type": "mpesa_mobile_money",
      "updated_at": "2025-07-16T17:55:26.935875Z",
      "currency_id": "KES"
    }
  ]
}
```

## What's Next?

Now that you know how to create, retrieve, and list recipients, you can use them in your transaction flows:

* [How to Process Payouts to Recipients](/guides/payouts/process-payouts)
* [The Recipient Object](/guides/reference/recipients)
* [Recipients API Reference](/api-reference/recipients/list-recipients): For full details on all available fields and endpoints
