| Status | Meaning |
|---|---|
created | Checkout exists, the customer has not requested a prompt yet. |
pending | The M-Pesa prompt was sent; waiting for the customer's PIN. |
paid | Payment confirmed. The webhook is sent. Final. |
failed | The last attempt failed (cancelled, insufficient balance, wrong PIN, timeout). The customer can try again until the checkout expires. |
expired | The 1 hour window passed without payment. Start a new checkout. |
Only successful payments trigger a webhook. A failed or abandoned payment sends nothing; use the Status API if you want to check, and treat an order as unpaid until you have a verified payment.succeeded.
MAA INVEST Pay Docs