# Transfers

VeendHQ provides a means to transfer funds from a VeendHQ Account to a bank account or another VeendHQ account.

## Veend to Veend Transfers

You can transfer funds between Veend Accounts.

## Transfer fund to a Veend account

<mark style="color:green;">`POST`</mark> `{{BASE_URL}}/v1/accounts/{{SENDER_ACCOUNT_ID}}/transfer/{{RECEIVER_ACCOUNT_ID}}?accountId={{ID}}`

#### Request Body

| Name                                          | Type     | Description |
| --------------------------------------------- | -------- | ----------- |
| amount<mark style="color:red;">\*</mark>      | 50000    |             |
| description<mark style="color:red;">\*</mark> | Salaries |             |

{% tabs %}
{% tab title="200: OK Successful Transfer" %}

```json

{
    "status": "success",
    "data": {
        "status":"completed",
        "amount": 50000,
        "paymentReference":"31885182152587292618013"
    }
}
```

{% endtab %}
{% endtabs %}

## Veend to Local Bank Transfer

To perform a Veend to Bank transfer, you need the Bank code for the destination account.

{% hint style="info" %}

#### <mark style="color:blue;">Bank Code</mark>

**Bank Code** is a unique identification code for a particular bank. The code is used when transferring money between banks.
{% endhint %}

A **productId** is required to perform Veend to Bank transfers as we use this to identify what payment product service you request to use.

{% hint style="info" %}

### PRODUCT\_ID

This **productId** should be used for **sandbox** environment - **63b6953d1fd341ee430cbd93**

This **productId** should be used for **live** environment - **6157842b101720572946579b**
{% endhint %}

### Bank Lists

The bank lists endpoint returns a list of supported banks. You can use the endpoint to get bank information such as Bank Name and Bank Code

## Return a list of available banks

<mark style="color:blue;">`GET`</mark> `{{BASE_URL}}/banklists?accountId={{ACCOUNT_ID}}`

### Resolve Bank Account Number

Sometimes you may need to validate a bank account number to confirm the name associated with the account.

## Validate a bank account number

<mark style="color:green;">`POST`</mark> `{{BASE_URL}}/products/{{PRODUCT_ID}}/validate?accountId={{ACCOUNT_ID}}`

#### Request Body

| Name                                            | Type       | Description |
| ----------------------------------------------- | ---------- | ----------- |
| accountNumber<mark style="color:red;">\*</mark> | 0690000010 |             |
| bankCode<mark style="color:red;">\*</mark>      | 044        |             |

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

```json
{
    "status": "success",
    "data": {
        "account_name": "ANGUS BROWN"
    }
}
```

{% endtab %}
{% endtabs %}

### Send Money

Transfer money from a VeendHQ account to a Local Bank account.

## Transfer money to local bank

<mark style="color:green;">`POST`</mark> `{{BASE_URL}}/v1/products/{{PRODUCT_ID}}/purchase?accountId={{ACCOUNT_ID}}`

#### Request Body

| Name                                                | Type       | Description         |
| --------------------------------------------------- | ---------- | ------------------- |
| purchaseReference<mark style="color:red;">\*</mark> | String     |                     |
| amount<mark style="color:red;">\*</mark>            | String     |                     |
| bankCode                                            | "044"      |                     |
| accountNumber                                       | 0690000005 | Bank account number |
| currency                                            | NGN        |                     |
| senderName                                          | John       |                     |
| narration                                           | String     |                     |

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

```json

{
    "status": "success",
    "data": {
        "purchaseReference": "uniq_ref_060991197",
        "cost": 400,
        "customerFee": 0,
        "cashback": 10,
        "totalCost": 400,
        "description": "NGN400 - Money Transfer - uniq_ref_060991197",
        "currency": "NGN",
        "status": "completed",
        "paid": true,
        "delivered": true,
        "settled": true,
        "canRefund": false,
        "product": "5a9297612032791140ff390f",
        "productsDetails": {
            "owner": "5a762dd910af17001963f22a",
            "amount": 400,
            "bankcode": "044",
            "currency": "NGN",
            "createdBy": "5a762dd910af17001963f22a",
            "narration": "Description of the transaction",
            "senderName": "John Doe",
            "accountNumber": "0690000005",
            "purchaseReference": "uniq_ref_060991197"
        },
        "ipAddress": "197.211.60.41",
        "account": "5a762dd910af17001963f22a",
        "deliveryLog": {
            "id": 77585,
            "r1": null,
            "r2": null,
            "ipr": null,
            "ref": "383",
            "iprc": null,
            "meta": "{\"narration\":\"Description of the transaction\",\"sender\":\"Your Name\",\"balance\":49885242}",
            "amount": 400,
            "refund": false,
            "status": "completed",
            "reversed": false,
            "createdAt": "2023-03-01T16:22:34.000Z",
            "updatedAt": "2023-03-01T16:22:38.000Z",
            "beneficiary": {
                "bankCode":"044",
                "accountNumber": "0690000005"
            },
            "system_type": "wallet-disburse",
            "walletCharged": true,
            "disburseOrderId": null,
            "flutterReference": "TTMW000077585",
            "linkingReference": "04400920021",
            "paymentReference": 383,
            "flutterResponseCode": "00",
            "flutterResponseMessage": "Successful"
        },
        "settlementLog": {},
        "refundLog": null,
        "validationDetails": null,
        "owner": "5a762dd910af17001963f22a",
        "createdBy": "5a762dd910af17001963f22a",
        "client": null,
        "developer": null,
        "tags": "uniq_ref_060991197, NGN, NGN400, -, Money, Transfer, -, uniq_ref_060991197, 5a9297612032791140ff390f, 197.211.60.41, 5a762dd910af17001963f22a, 5a762dd910af17001963f22a, 5a762dd910af17001963f22a, pending",
        "_id": 76,
        "createdAt": "2018-03-01T16:22:31.000Z", 
        "updatedAt": "2018-03-01T16:22:39.000Z",
        "query": true
    }

```

{% endtab %}
{% endtabs %}

{% hint style="info" %}

#### Test with this data on <mark style="color:red;">test</mark> Environment

accountNumber:  0690000005

bankCode:  "004"

currency:  "NGN"
{% endhint %}


---

# 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://docs.veendhq.com/transfers.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.
