Skip to content

Payment integration

Accept invoice payments with M-Pesa

The M-Pesa integration lets customers pay your KES invoices from their phone with an M-Pesa STK Push prompt. Invoice Crowd checks the payment status with M-Pesa before recording it.

  • Status: Active one-time checkout
  • Checked against the app
  • Provider terms still apply
Invoice Crowd Payment Methods with M-Pesa selected and a M-Pesa account set to Live, a paid invoice recorded after M-Pesa confirmed it, and the Refund window asking to refund in the M-Pesa dashboard and record it.

From setup to paid

How M-Pesa fits the Invoice Crowd payment boundary

Connection, customer checkout and final settlement are separate stages. Read the status and limitations before showing the method on a live invoice.

Connect the merchant account

Each business profile has its own account and live or test mode.

Invoice Crowd M-Pesa account form with Live and Sandbox modes and a fictional nickname, the business's M-Pesa accounts, and the Consumer Secret kept write-only when editing.

Enter only the fields the provider requires

Consumer key, write-only consumer secret, shortcode, write-only pass key, allow-listed transaction type and Live/Test mode.

  • Selected business profile
  • Explicit live or test mode
  • Write-only secret editing

Check the provider accepts your business first

Designed for eligible M-Pesa merchants and KES transactions; Safaricom controls account access, fees and production approval.

  • Merchant country and account
  • Invoice and settlement currency
  • Provider fees and review

Understand the customer path

The payment option only shows when it can be used for that invoice.

Invoice Crowd invoice INV-2046 for Bluefin Hospitality in KES, the customer's Select a Payment Method sheet with Pay Using M-Pesa, and what M-Pesa asks for next.

Use the one-time payment flow

The active flow uses OAuth, STK Push and authenticated STK Query. It accepts positive whole KES amounts and binds CheckoutRequestID and MerchantRequestID to one durable attempt.

  • The amount comes from the invoice
  • The payment is applied to that invoice
  • The customer pays on the provider's own page

Recurring payments work differently

No M-Pesa subscription flow is enabled.

  • One-time and recurring differ
  • Some existing setups only keep running
  • New ones aren't offered where unsupported

Checked before the payment is recorded

An invoice is marked paid only when the provider confirms it.

Invoice Crowd Payments Needing Review holding a M-Pesa payment for INV-2046 that arrived after the invoice was paid, with the checks M-Pesa payments must pass before they are recorded.

The payment must match the invoice

Authenticated query/callback evidence, exact checkout and merchant requests, allocation, KES amount and successful provider result.

  • Merchant account and mode
  • Same invoice, amount and currency
  • The provider reports it as paid

Know the current limits

A lost STK response does not trigger a second push. Unresolved attempts keep the allocation locked until authoritative evidence resolves them.

  • Nothing is assumed paid
  • Pending stays pending
  • Mismatches are refused

Integration facts

What to verify before using M-Pesa

The fields below describe the current Invoice Crowd path; the provider remains the source for merchant eligibility, fees and regional availability.

  • Availability

    Active one-time checkout

  • One-time payment

    The active flow uses OAuth, STK Push and authenticated STK Query. It accepts positive whole KES amounts and binds CheckoutRequestID and MerchantRequestID to one durable attempt.

  • Recurring payments

    No M-Pesa subscription flow is enabled.

  • Merchant setup

    Consumer key, write-only consumer secret, shortcode, write-only pass key, allow-listed transaction type and Live/Test mode.

  • Settlement evidence

    Authenticated query/callback evidence, exact checkout and merchant requests, allocation, KES amount and successful provider result.

  • Regional fit

    Designed for eligible M-Pesa merchants and KES transactions; Safaricom controls account access, fees and production approval.

  • Current limits

    A lost STK response does not trigger a second push. Unresolved attempts keep the allocation locked until authoritative evidence resolves them.

  • Invoice data

    Amount, currency and allocation are derived from the current server-side invoice state.

  • Unmatched payments

    If a confirmed M-Pesa payment can't be applied to its invoice, for example because the balance changed after checkout started, Invoice Crowd holds it in Payments Needing Review. You then apply it to the invoice, keep it as customer credit, or refund it.

  • Refunds

    Invoice Crowd does not send M-Pesa refunds itself. Make the refund in your M-Pesa account, then record it with Refund on the invoice in Invoice Crowd, so the invoice and your books match.

  • Provider fees

    Gateway fees, exchange costs and settlement timing come from the merchant agreement, not the Invoice Crowd subscription.

  • Alternative gateways

    Configure another active provider when this gateway does not support the merchant, customer, currency or collection model.

Questions

M-Pesa and Invoice Crowd, answered

Is the M-Pesa integration currently available in Invoice Crowd?

Yes. M-Pesa is active in Invoice Crowd for one-time KES payments. The customer approves an STK Push prompt on their phone, and Invoice Crowd confirms the result with M-Pesa before recording the payment.

What do I need to connect M-Pesa?

Consumer key, write-only consumer secret, shortcode, write-only pass key, allow-listed transaction type and Live/Test mode. Designed for eligible M-Pesa merchants and KES transactions; Safaricom controls account access, fees and production approval. M-Pesa needs a paid Invoice Crowd plan; the free plan includes PayPal.

How does M-Pesa one-time checkout work?

The active flow uses OAuth, STK Push and authenticated STK Query. It accepts positive whole KES amounts and binds CheckoutRequestID and MerchantRequestID to one durable attempt.

Does M-Pesa support recurring payments in Invoice Crowd?

No M-Pesa subscription flow is enabled.

How does Invoice Crowd decide that a payment succeeded?

Authenticated query/callback evidence, exact checkout and merchant requests, allocation, KES amount and successful provider result. A browser return or posted status alone cannot settle the invoice. A confirmed payment that can't be applied to its invoice is held in Payments Needing Review until you decide what to do with it.

Are gateway fees included in Invoice Crowd pricing?

No. Provider transaction fees, foreign-exchange costs, settlement timing and account terms are controlled by the gateway and merchant agreement. Check the provider before activation.

Can I refund a M-Pesa payment from Invoice Crowd?

Not through M-Pesa directly. Invoice Crowd sends refunds through the provider only for Stripe, PayPal, Razorpay, Square, Braintree, Authorize.net, Airwallex and GoCardless. For M-Pesa, make the refund in your M-Pesa account, then record it with Refund on the invoice in Invoice Crowd, so the invoice, its credit note and your books stay in step.

Test M-Pesa with a representative invoice

Start with sandbox or test mode where the provider offers it, verify the exact currency and payment result, then plan production activation.

  • Never marked paid from the browser alone
  • Provider terms apply
  • Current status is visible