Collect payments with your paybill, without API keys
PAYBILL sends a real M-Pesa STK push to the payer, using the platform’s
Daraja credentials rather than your own. You supply only your paybill number —
no Daraja onboarding required.
Available to ISPs in Kenya (KE).
A SACCO paybill, or any paybill you share with other businesses, is
supported: add your account number on that paybill and every payment is filed
against it. Leave it blank when the paybill is yours alone.
This is not a “show the customer instructions” method. The payer receives an
STK prompt and enters their M-Pesa PIN, exactly as with
Safaricom M-Pesa. The difference is
where the Daraja API keys come from: with
SAFARICOM they are yours, here
they are the platform’s, so you can start collecting before Daraja onboarding
is finished.Before you start
- Have an active M-Pesa paybill registered to your business. It must be a Safaricom paybill — not a bank paybill. To collect into a bank account, use Bank instead.
- If that paybill belongs to a SACCO, or is shared with other businesses, have the account number the paybill files your money under. Your SACCO or the paybill’s owner issues it — it is usually your member or account number, and it is what you would type yourself when paying into that paybill by hand.
Configure the gateway
1
Open Settings → Payments → Paybill - Without API keys
Select the method from the payment marketplace.
2
Enter your paybill number
Paybill number (required) is digits only, at least 4 and at most 20
characters. It is shown to subscribers and is the account the money lands in.
3
Add an account number, if the paybill is a SACCO's or shared
Account number (optional) is your account on that paybill — up to 20
characters, made of letters, digits, hyphens and slashes. Set it and every
payment, collected or paid out, carries it as the account reference, so the
SACCO allocates the money to you.Leave it blank when the paybill is yours alone. Payments then keep the
default account reference they have always used, and nothing changes.
4
Save and switch
The paybill is the only field that gates the switch. Switching gateways may
require an OTP confirmation.
5
Run a controlled test payment
Pay a small amount from the captive portal, and confirm the prompt shows
your paybill and that the money arrives in it.
Credentials
Callback URLs
None. The callback address is sent with every payment request, so there is nothing to register with Safaricom.What the payer must provide
A Safaricom phone number, which receives the STK prompt. The account reference is filled in for the payer — your Account number when you have set one, and a default reference otherwise. The payer never types it.How a payment completes
1
Request
Centipid Billing raises the STK push against your paybill using the
platform’s Daraja app, as a
CustomerPayBillOnline transaction.2
Authorization
The payer enters their M-Pesa PIN.
3
Confirmation
Safaricom posts the result to the platform callback, which records the
payment and applies the subscriber’s package asynchronously.
Payments typed in by hand
Not every payment on this method starts as an STK prompt. 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 yours — money paid that way is collected by the platform against the subscriber’s account reference and remitted to you. That remittance is a paybill-to-paybill transfer into your paybill, and it carries your Account number as the reference when you have set one. This is what makes a SACCO or shared paybill work: without an account number the SACCO receives the transfer with nothing to allocate it against. Prove where money lands, in both flows, with a controlled test payment before you move subscribers onto this method.Troubleshooting
To hold your own Daraja keys instead, see
Safaricom M-Pesa. For every gateway’s
fields in one place, see the
credential reference.
