> ## Documentation Index
> Fetch the complete documentation index at: https://docs.centipidbilling.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Bank account

> Collect M-Pesa payments straight into your business bank account through the bank's own paybill.

# Collect payments into your bank account

`BANK` sends an M-Pesa STK push to the payer against **your bank's official
M-Pesa paybill**, with your bank account number as the account reference. The
money moves from the payer's M-Pesa directly into your bank account. No Daraja
API keys are requested — the prompt is raised with the platform's Daraja
credentials.

Available to ISPs in **Kenya (KE)**.

## Before you start

1. Have a **business** bank account for the ISP.
2. Know which M-Pesa paybill your bank uses for deposits — you select it from a
   list in the form.
3. **Link a MikroTik router and bring it online.** This gateway will not send a
   payment prompt otherwise.

<Warning>
  Use a business bank account registered to your ISP, not a personal account.
  Personal accounts that receive many subscriber deposits can be suspended by
  your bank or by M-Pesa.
</Warning>

<Warning>
  Bank, Paybill, Till, and Centipid Collections all require a linked MikroTik
  router that is currently online. If none is linked, checkout stops with
  *"Link a MikroTik router and bring it online before sending payment prompts."*
  and no prompt is sent. See [Routers](/network/routers).
</Warning>

## Configure the gateway

<Steps>
  <Step title="Open Settings → Payments → Bank Account">
    Select the method from the payment marketplace.
  </Step>

  <Step title="Select the receiving bank">
    **Receiving bank** (required) is searchable by bank name or paybill number,
    and is the official M-Pesa paybill for deposits into that bank.
  </Step>

  <Step title="Enter your bank account number">
    **Bank account number** (required) is digits only, maximum 40 characters. It
    is sent as the account reference, so a wrong value sends money to the wrong
    account. Check it twice.
  </Step>

  <Step title="Save and switch">
    Both fields must be present to switch. Changing the receiving bank clears
    the account number on purpose, so an account belonging to the previous bank
    cannot be saved by accident — re-enter it after every bank change.
  </Step>

  <Step title="Run a controlled test payment">
    Pay a small amount from the captive portal and confirm it reaches the bank
    account, not just the M-Pesa prompt.
  </Step>
</Steps>

## Credentials

| Field               | Required | Notes                                                                                          |
| ------------------- | -------- | ---------------------------------------------------------------------------------------------- |
| Receiving bank      | Yes      | Selected from the current bank list; a previously saved paybill is kept as an option.          |
| Bank account number | Yes      | Digits only, maximum 40 characters. Cleared automatically whenever the receiving bank changes. |

## Callback URLs

None. The callback address is sent with every payment request.

## What the payer must provide

A Safaricom phone number, which receives the STK prompt. The bank account number
is filled in as the account reference for them.

## How a payment completes

<Steps>
  <Step title="Request">
    Centipid Billing raises the STK push against the bank's M-Pesa paybill, with
    your bank account number as the account reference.
  </Step>

  <Step title="Authorization">
    The payer enters their M-Pesa PIN. The money is deposited to your bank
    account by the bank's paybill.
  </Step>

  <Step title="Confirmation">
    Safaricom posts the result to the platform callback, which records the
    payment and applies the subscriber's package asynchronously.
  </Step>
</Steps>

Bank settlement is not instant in the way a paybill or till is. Reconcile
against your bank statement, not only against the ledger.

## Payments typed in by hand

An invoice can offer pay-by-hand instructions, and a TV screen shows a number
the customer types into M-Pesa themselves. On this method **that number is the
Centipid paybill, not your bank's** — money paid that way is collected by the
platform against the subscriber's account reference and remitted to you, rather
than landing in your bank account directly. Prove both flows with a controlled
test payment before moving subscribers onto this method.

## Troubleshooting

| Symptom                                                                        | What it means                                                 | What to do                                                                                                          |
| ------------------------------------------------------------------------------ | ------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| *"Link a MikroTik router and bring it online before sending payment prompts."* | No linked MikroTik is online. No prompt was sent.             | Link a router and bring it online — see [Routers](/network/routers).                                                |
| The account number field emptied itself                                        | The receiving bank was changed, which clears it deliberately. | Re-enter the account number for the new bank and save.                                                              |
| Payer confirms payment, money is not in the bank account                       | The account reference did not match an account at that bank.  | Verify the saved account number against your bank records, then raise the specific M-Pesa reference with your bank. |
| *"Unable to process payment. Please try again later."*                         | The STK push failed or Safaricom was unreachable.             | Retry. If it persists, raise it with support.                                                                       |

For every gateway's fields in one place, see the
[credential reference](/billing/payment-gateways/credentials-reference), and for
symptoms common to all gateways, see
[Payment troubleshooting](/billing/payment-gateways/troubleshooting).
