1. Send the prompt
Call Mobile money charge.Response
2. Wait for the outcome
The customer approves (or ignores) the prompt on their phone, so the result arrives asynchronously as atransaction_updated webhook.
Successful
Failed
thirdPartyReference is the M-PESA or Airtel receipt number. Store it: customers quote it when they contact you.
If you haven’t received a webhook, check with Get transaction using the transactionId or your externalReference. Fulfil only when chargeStatus is successful.
3. Handle an OTP step
Occasionally a charge needs a one-time code. The webhook arrives withstatus: "pending" and stepRequired: "otp":
successful or failed webhook follows.
Why prompts fail
Thenote field explains a failure. The common ones:
The full list is in Transaction errors. Don’t branch your code on the wording of
note; use status.

