Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.moflay.com/llms.txt

Use this file to discover all available pages before exploring further.

Use this page to interpret values returned by the Moflay API and dashboard. Status reflects Moflay’s stored state, which is updated from Safaricom’s STK callback and, when needed, Daraja STK Push Query reconciliation—not from a live Safaricom lookup on every read.

Moflay transaction status

Each Express payment has a transaction status drawn from this set:
StatusMeaningTypical next step
initiatingMoflay is creating the payment attempt and sending the STK request to Daraja.Wait; poll GET /v1/payments/{id} or use webhooks when the status advances.
pendingSTK was accepted; waiting for the customer or for a final callback/reconciliation result.Wait for webhook or poll; customer may still complete or cancel on the phone.
completedPayment succeeded; Moflay recorded success.Fulfill the order; handle payment.completed if subscribed.
failedPayment did not complete (M-Pesa rejection, timeout, limits, etc.).Allow retry; handle payment.failed if subscribed.
canceledThe customer canceled the STK prompt (for example Daraja result 1032).Handle payment.canceled if subscribed; optionally offer a new attempt.
unknownMoflay could not determine a definitive outcome after reconciliation (for example missing or non-final Daraja signal).Manual review; no standard payment.* webhook is sent for this status.