# Single Transfer

{% hint style="warning" %}
**Before you begin!**

To send money on Padiwise, you need API keys to authenticate your transfers. You can find your keys on the Padiwise Dashboard under [Settings → API Keys & Webhooks](https://padiwise.com/login).
{% endhint %}

### Create a transfer recipient <a href="#create-a-transfer-recipient" id="create-a-transfer-recipient"></a>

A transfer recipient is a beneficiary on your integration that you can send money to. Before sending money to your customer, you need to collect their details first, then use their details to [create a transfer recipient](#create-a-transfer-recipient). We support different recipients in different countries:

The `recipient_code` from the data object is the unique identifier for a user and would be used to make transfers to that customer This code should be saved with the customer's records in your database.

### Initiate a Transfer

When you send this request, if there are no errors, the response comes back with a pending status, while the transfer is being processed.

&#x20;<mark style="color:green;">`POST`</mark>  `{{ BASE }}/transfer`&#x20;

```
--header 'Accept: application/json'
--header 'Authorization: Bearer {{  access_token }}'
```

Below are the request body parameters :tada:

**Request Body**

| Name             | Type   | Description                                                                   |
| ---------------- | ------ | ----------------------------------------------------------------------------- |
| recipient\_code  | String | [Code](#create-a-transfer-recipient) for transfer recipient                   |
| account\_name    | String | Account Name on bank                                                          |
| account\_number  | Number | Nigerian Uniform Bank Account Number. It represents bank accounts in Nigeria. |
| bank\_name       | String | Bank Name                                                                     |
| bank\_code       | String | Unique Bank Code                                                              |
| amount           | Number | Amount to transfer                                                            |
| transaction\_pin | String | Your Padiwise account pin                                                     |

Response Body

```
{
    "statuscode": 200,
    "status": true,
    "message": "Transfer initiated successfully",
    "event_type": "transfer_money",
    "reference": "CUS_7ieiebfwy09k6qo",
    "data": {
        "amount": 2000,
        "charges": 12,
        "account_name": "Oluwaseun Olajuwon",
        "account_number": 1234567890,
        "bank_name": Wema Bank
        }
}
```

{% hint style="warning" %}
**Retrying a transfer**

If there is an error with the transfer request, **kindly retry the transaction with the same `reference` in order to avoid double crediting**. If a new `reference` is used, the transfer would be treated as a new request.
{% endhint %}

Test transfers always return success, because there is no processing involved. The live transfers processing usually take between a few seconds and a few minutes. When it's done processing, a notification is sent to your webhook URL.

Once a transfer is processed, we send the final status of the transfer as a `POST` request to your webhook URL.

| Event               | Description                                                                                       |
| ------------------- | ------------------------------------------------------------------------------------------------- |
| `transfer.success`  | This is sent when the transfer is successful                                                      |
| `transfer.failed`   | This is sent when the transfer fails                                                              |
| `transfer.reversed` | This is sent when we refund a previously debited amount for a transfer that couldn’t be completed |

The response for a transfer also contains a **unique transfer code** to identify this transfer. You can use this code to call the Fetch Transfer<sup>API</sup> endpoint to get the status and details of the transfer.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://padiwise.gitbook.io/padiwise/disbursement/single-transfer.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
