Skip to main content

Staging checklist

  1. Create and complete a normal sandbox M-Pesa checkout.
  2. Verify exactly one confirmed treasury deposit and the expected treasury balance increase.
  3. Replay completion and confirm it returns a conflict without changing settlement.
  4. Create a review-required checkout and verify it appears in Payment Reviews.
  5. Approve one review and reject another; confirm both decisions are audited.
  6. Confirm business notifications and unread counts.
  7. Confirm configured customer email delivery.
  8. Confirm signed webhook delivery and replay behavior.
  9. Confirm another tenant cannot read the payment intent.
  10. Inspect Payment Reviews for failed email/webhook deliveries and expiring reviews.

Automated checks

From the backend repository:
The canary creates simulated sandbox records but moves no funds. Set NORTHFOND_OTHER_API_KEY to a second sandbox tenant key to include the isolation probe. To certify approval, rejection, merchant notifications, customer-email queuing, and operator health against a non-production live environment, use npm run test:staging:business-payment-operations. The script requires explicit NORTHFOND_STAGING_REVIEW_CONFIRM=STAGING_ONLY and refuses the known production hostname. It does not resume an approved payment or send an STK prompt unless NORTHFOND_ALLOW_LIVE_PROMPT=SEND is also set deliberately.

Production rollout

Deploy migrations before enabling traffic, check /health, verify Payment Reviews operational health, then make one low-value live canary payment. Confirm the provider result, webhook, notification, customer email, treasury deposit, and ledger before increasing limits.