Skip to main content

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

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

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

For every gateway’s fields in one place, see the credential reference, and for symptoms common to all gateways, see Payment troubleshooting.