> For the complete documentation index, see [llms.txt](https://developer.browpay.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.browpay.com/payouts/transfers/create-transfer.md).

# Create Transfer

You are advised to install safe practices and idempotencies in your codebase to prevent multiple charges. By default, Browpay secures your transfers via your unique reference.

<details>

<summary>Sample Payload</summary>

```json
{
    "type": "bank_transfer",
    "amount": 400000,
    "currency": "NGN",
    "narration": "Test API Transfer",
    "reference": "EDonBeta4Us",
    "counterParty": {
        "nibss_code": "100015",
        "account_number": "81039283922"
    }
}
```

</details>

<mark style="color:green;">`POST`</mark> `{{base_url}}/transfers`

{% hint style="info" %}
Fields with <mark style="color:red;">\*</mark> are required
{% endhint %}

**Headers**

| Name                                            | Type   | Value                        |
| ----------------------------------------------- | ------ | ---------------------------- |
| Content-Type                                    |        | application/json             |
| Authorization<mark style="color:red;">\*</mark> | String | Bearer {{your\_secret\_key}} |

**Body**

| Name                                                           | Type    | Description                                                                                                           |
| -------------------------------------------------------------- | ------- | --------------------------------------------------------------------------------------------------------------------- |
| type<mark style="color:red;">\*</mark>                         | String  | The transfer mode this field we only allow "bank\_transfer" at the moment                                             |
| amount<mark style="color:red;">\*</mark>                       | Integer | We expect a multiple of 100. That is, if your customer is paying 500 NGN  we expect an input of 500 x 100. 50000 kobo |
| currency<mark style="color:red;">\*</mark>                     | String  | We only allow "NGN" at the moment                                                                                     |
| narration<mark style="color:red;">\*</mark>                    | String  | A short information about your transfer.                                                                              |
| reference<mark style="color:red;">\*</mark>                    | String  | Your unique Alphanumeric reference                                                                                    |
| counterParty                                                   | Object  | An object of your recipient information which consists of the `nibss_code` and `account_number` keys.                 |
| counterParty.nibss\_code<mark style="color:red;">\*</mark>     | String  | The receiving bank NIBSS code                                                                                         |
| counterParty.account\_number<mark style="color:red;">\*</mark> | String  | The recipient's 10-digit NUBAN                                                                                        |

**Response**

{% hint style="info" %}
Always verify your transfer status via a callback or in the webhook endpoint you installed to retrieve the transfer session id. Which is defined as the transaction\_id value on confirmation.
{% endhint %}

{% tabs %}
{% tab title="200" %}

```json
{
    "status": true,
    "message": "Transfer Completed",
    "data": {
        "id": "be502a67-01ac-4b30-9420-ab3d5e0023c1",
        "transaction_id": "",
        "reference": "EDonBeta4Us",
        "status": "PENDING",
        "narration": "Test API Transfer",
        "amount": 500000,
        "fee": 1075,
        "currency": "NGN",
        "created_at": "2024-12-08T20:58:44.000000Z",
        "updated_at": "2024-12-08T20:58:46.000000Z",
        "counterparty": {
            "account_name": "JOY OBAKPORO AME",
            "account_number": "81039283922",
            "nibss_code": "100015"
        }
    }
}
```

{% endtab %}

{% tab title="400" %}

```json
{
  "error": "Invalid request"
}
```

{% endtab %}
{% endtabs %}
