> ## Documentation Index
> Fetch the complete documentation index at: https://docs.northfond.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Operational readiness

> Certify payment links, reviews, notifications, and webhooks before production.

## 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:

```bash theme={null}
export NORTHFOND_BASE_URL="https://your-staging-backend"
export NORTHFOND_API_KEY="nf_test_..."
export NORTHFOND_PAYMENT_PAGE_SLUG="your-sandbox-page"
npm run test:staging:business-payment-page
```

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.
