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

# Intra Bank Transfer

To process a transfer between two customer accounts from different institutions  you make a post request by passing `Amount`, `AppzoneAccount`, `Token` ,`PayerAccountNumber` and some other required payload in the request body. Below is an example of how to make a successful post request to inter bank transfer endpoint.

```
// Live URL 
http://api.mybankone.com/thirdpartyapiservice/apiservice/
Transfer/InterbankTransfer
```

<mark style="color:green;">`POST`</mark> `https://staging.mybankone.com/thirdpartyapiservice/apiservice/Transfer/ InterbankTransfer`

#### Request Body

| Name                                                    | Type   | Description                                                                                       |
| ------------------------------------------------------- | ------ | ------------------------------------------------------------------------------------------------- |
| Amount<mark style="color:red;">\*</mark>                | String | Amount to be transferred in Kobo                                                                  |
| AppzoneAccount                                          | String | Appzone’s account number for Appzone share of fees                                                |
| Token<mark style="color:red;">\*</mark>                 | String | Authentication Key for the request                                                                |
| PayerAccountNumber<mark style="color:red;">\*</mark>    | String | Account number of sender or paye                                                                  |
| Payer<mark style="color:red;">\*</mark>                 | String | Payer’s account name                                                                              |
| RecieversBankCode<mark style="color:red;">\*</mark>     | String | Commercial bank sort code that can be gotten from Bills Payment GetCommercialBank method response |
| ReceiverAccountNumber<mark style="color:red;">\*</mark> | String | Account number of the receiver/beneficiary                                                        |
| ReceiverName<mark style="color:red;">\*</mark>          | String | Beneficiary’s name                                                                                |
| ReceiverPhoneNumber<mark style="color:red;">\*</mark>   | String | Beneficiary’s phone number                                                                        |
| ReceiverAccountType<mark style="color:red;">\*</mark>   | String | Beneficiary’s account type                                                                        |
| ReceiverKYC <mark style="color:red;">\*</mark>          | String | Beneficiary’s Know Your Customer value                                                            |
| ReceiverBVN<mark style="color:red;">\*</mark>           | String | Beneficiary’s Bank Verification Number                                                            |
| TransactionReference<mark style="color:red;">\*</mark>  | String | Unique reference for transaction (maximum of 12 characters)                                       |
| Narration                                               | String | Transaction Narration (maximum of 100 characters)                                                 |
| NIPSessionID                                            | String | Unique value gotten from Name Enquiry used to process transaction                                 |

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

```javascript
{
    "Status": "Successful",
 "StatusDescription": null,
 "ReferenceID": 0,
 "UniqueIdentifier": 
"020067152410012328260000000000000000000000",
 "IsSuccessFul": true,
 "ResponseMessage": null,
 "ResponseCode": "00",
 "Reference": "VSGWTWY2097",
 "SessionID": null,
 "RequestStatus": true,
 "ResponseDescription": null,
 "ResponseStatus": "Successful"
}
```

{% endtab %}
{% endtabs %}

### Important things to note about Inter bank transaction processing response

#### Transaction Processing Response&#x20;

<details>

<summary>Possible Status </summary>

A transaction status can any of the following: `Pending`, `Failed`, `Successful`, `Reversed`, `SuccessfulButFeeNotTaken`

* If status **`Successful`** and Response Code `00` indicates that the transfer succeeded
* If status is **`Pending`**. A TSQ is required to determine the status of the transaction
* If response code **`91,06`**. A TSQ is required to determine the status of the transaction
* **Failed**: If Status is Failed and response code is not one of the pending codes, then the transaction failed, and a new request can be initiated.

</details>

#### TSQ Processing for Interbank Transfer&#x20;

<details>

<summary>Transaction Query Processing (TSQ)</summary>

TSQ is required if a transfer response returns pending&#x20;

* If IsSuccessful response parameter is **`true`**, go ahead to check Status parameter to determine the actual status of the initiated transaction.
* If IsSuccessful response parameter is **`false`**, a TSQ request should be reinitiated to determine the actual status of the initiated transaction.
* If status is successful then, the initial transaction succeeded.&#x20;
* If status is **`Failed`** then, the initial transaction failed.
* If Status is **Pending** then, a TSQ should be reinitiated to determine actual status of the initial transaction.&#x20;

Please contact support to investigate and provide further details if status remains as Pending after 5 trials with the TSQ interval time.&#x20;

</details>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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.mybankone.com/transfers/transfer-api/intra-bank-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.
