# Bank Transfer (RTGS/EFT)

## Scope

This applies to scenarios where end users are making a transfer to:

1. Other Domestic (Kenya) Bank Accounts via RTGS
2. Other Domestic (Kenya) Bank Accounts via EFT

**Under what circumstances should end users use RTGS/EFT instead of Pesalink for bank transfer?**

| Use Case                                                                                                                                              | Why RTGS / EFT                                                                                                                                                                                 |
| ----------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Single transfer exceeding KES 999,999                                                                                                                 | <p>RTGS: KES 1B (practical limit: none), with ​real-time irrevocable settlement.</p><p></p><p>EFT: Supports batch processing for large volumes, albeit with delayed settlement (e.g., T+1)</p> |
| B2B payments requiring invoice references, contract IDs, or audit trails                                                                              | <p></p><ul><li>Pesalink lacks metadata support, complicating reconciliation.</li><li>RTGS/EFT provide ​detailed transaction records and comply with corporate governance standards.</li></ul>  |
| <p></p><ul><li>Recipient banks not integrated with Pesalink.</li><li>Corporate accounts barred from using Pesalink (common in B2B contexts)</li></ul> | RTGS/EFT are universally accepted across Kenyan banks, regardless of Pesalink participation                                                                                                    |

### RTGS vs. EFT

<table><thead><tr><th width="247">Scenario</th><th width="180">Recommended Channel</th><th>Rationale</th></tr></thead><tbody><tr><td>Urgent, high-value (>KES 5M)</td><td>RTGS</td><td>Real-time, no cap, and irreversible settlement.</td></tr><tr><td>Non-urgent bulk corporate</td><td>EFT</td><td>Lower fees, batch processing, but delayed settlement (T+1).</td></tr></tbody></table>

## Steps

{% stepper %}
{% step %}

### Initiate Transfer Request

Call endpoint `/trans/largeDomesticInterBankTransfer` to initiate a transfer request

Status: `1-SUBMITTED`
{% endstep %}

{% step %}

### Confirm OTP

Call endpoint `/common/sendOtp` to request for OTP, filling the value of  `applicationId` to `businessId` parameter. Call endpoint `/common/confirmOperation` to confirm the OTP code received.

Status: `2-VALIDATING`

{% hint style="info" %}
The endpoint `/common/sendOtp` can also be used to resend OTP.
{% endhint %}
{% endstep %}

{% step %}

### Bank Validating

Status: `3-APPROVED` or `4-REJECTED`
{% endstep %}

{% step %}

### Bank Processing

Status: `6-IN_TRANSIT`
{% endstep %}

{% step %}

### Get Onboarding Result

* Get it from `0023 - Inter-Bank Fund Transfer Result Notification`
* Query transaction status by calling the endpoint `/trans/getInterBankTransferDetails`
  {% endstep %}
  {% endstepper %}

## Status

<figure><img src="/files/wIKK1X0osbJ7KvLnsrdq" alt=""><figcaption></figcaption></figure>

## Flow

<figure><img src="/files/ZhzGcibXXYYAmGD4G9c9" alt=""><figcaption></figcaption></figure>


---

# 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://choice-bank.gitbook.io/choice-bank/transfer/bank-transfer-rtgs-eft.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.
