Skip to content

Bank account

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.

Configure the gateway

  1. Open Settings → Payments → Bank Account

    Select the method from the payment marketplace.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

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

  1. Request

    Centipid Billing raises the STK push against the bank’s M-Pesa paybill, with your bank account number as the account reference.

  2. Authorization

    The payer enters their M-Pesa PIN. The money is deposited to your bank account by the bank’s paybill.

  3. Confirmation

    Safaricom posts the result to the platform callback, which records the payment and applies the subscriber’s package asynchronously.

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
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, and for symptoms common to all gateways, see Payment troubleshooting.