Skip to main content

Paybill (without API keys)

Collect customer payments via your Safaricom M-Pesa Paybill using Nukta's shared platform Daraja credentials without developer onboarding.

Collect payments with your Paybill, without API keys

The Paybill (without API keys) method sends an automated M-Pesa STK push prompt directly to the customer's phone, utilizing Nukta's platform Daraja infrastructure rather than requiring your own Safaricom developer credentials.

You supply only your active Safaricom Paybill number—no Daraja portal registration, consumer secrets, or passkeys required.

  • Availability: ISPs operating in Kenya (KE).
  • SACCO & Shared Paybills: If your business uses a SACCO paybill or shares a Paybill with other merchants, enter your designated member or account number. Every customer payment is automatically filed with that reference. If you own the Paybill exclusively, simply leave the account number blank.
NOTE

This is not an "instructions-only" manual method. The customer receives an instant STK push prompt on their phone and enters their M-Pesa PIN, exactly as with Safaricom M-Pesa (with API keys). The primary difference is operational: the API keys are provided by the platform, allowing you to begin collecting automated customer payments immediately while your own Daraja onboarding is in progress.

Before you start

  • Ensure you have an active, operational M-Pesa Paybill registered to your business. It must be an official Safaricom Paybill—not a bank paybill. (To collect funds directly into a bank account, use Bank Account instead).
  • If your Paybill belongs to a SACCO or shared umbrella entity, have the specific account number issued to your business. This is the account code your SACCO uses to allocate funds to your wallet.

Configuring the gateway

  1. In your Nukta dashboard, navigate to Settings → Payments.
  2. Select Paybill (Without API keys) from the payment gateway marketplace.
  3. Enter your merchant details:
    • Paybill Number: Required numeric string (4–20 digits). This is your official Safaricom Paybill where collected funds land.
    • Account Number (Optional): Enter your member or business account number on the shared Paybill (up to 20 characters: letters, digits, hyphens, and slashes). When set, all collected transactions carry this reference so the SACCO allocates the money to your account. Leave blank if the Paybill belongs solely to your ISP.
  4. Click Save Settings to switch the gateway live. (Switching payment gateways may request a secure action OTP).
  5. Run a Controlled Test: Connect a test device to your captive portal, make a small test payment, and verify that the STK prompt displays your Paybill and that funds settle into your account.

Credentials reference

FieldRequiredNotes
Paybill NumberYesDigits only (4–20 digits). Must be your own Safaricom Paybill, not a bank paybill. No Daraja keys requested.
Account NumberNoUsed only for SACCO or shared paybills (up to 20 alphanumeric characters, hyphens, and slashes). Leave blank for dedicated paybills.
Callback URLsNoneThe callback destination is attached dynamically to each transaction request; no manual URL registration with Safaricom is needed.

Customer checkout experience

  • Required Customer Input: The customer provides their Safaricom mobile phone number to receive the STK push prompt.
  • Auto-Filled Reference: The account reference is populated automatically—using your saved Account Number if configured, or a default session reference. The customer does not have to type an account number manually.

How transactions complete

Customer Checkout → Nukta Platform STK Push → Customer Enters PIN → Safaricom Callback → Service Activated
  1. Request: Nukta initiates a CustomerPayBillOnline STK push prompt against your Paybill using the platform's high-availability Daraja gateway.
  2. Authorization: The customer authorizes payment by typing their M-Pesa PIN on their phone.
  3. Settlement & Activation: Safaricom posts the confirmation to Nukta's callback, which logs the payment in Finance → Payments and updates the customer's internet validity in real time.

Payments typed in by hand

While most transactions initiate as automated STK push prompts, customers paying invoices or Smart TVs may choose to type payment details manually:

  • For manual Paybill entries and TV screen QR prompts, the transaction is processed through the platform collection shortcode against the customer's unique reference code.
  • Funds are remitted to your Paybill via an automated paybill-to-paybill transfer carrying your saved Account Number reference.
  • Always verify both automated STK push and manual pay-by-hand flows with a controlled test payment before onboarding live customers.

Troubleshooting

SymptomCauseRecommended Action
"Unable to process payment. Please try again later."STK push initiation failed or Safaricom API was temporarily unreachable.Confirm your Paybill is active and authorized for C2B transactions, then retry. If the issue persists, contact Nukta support to verify platform gateway status.
STK prompt displays an unexpected PaybillThe saved Paybill number contains a typographical error.Correct the Paybill number under Settings → Payments.
Funds reach SACCO but are not credited to your businessThe Account Number was left blank or does not match the account the SACCO assigned to you.Update the Account Number field in Settings → Payments to match your SACCO records, then re-test.
Customer paid, but service was not restoredThe gateway callback was delayed or did not match an open checkout session.Review the transaction in Payment Troubleshooting and verify customer phone matching.

To connect using your own dedicated Safaricom Daraja credentials, see Safaricom M-Pesa. For complete credential parameters across all gateways, consult the Gateway Credential Reference.