Skip to main content
Payment links let a business collect customer payments without creating a wallet for every customer or building a checkout UI. NorthFond hosts the payment page, tracks each payment as a payment intent, and credits the business treasury exactly once after completion.

How it works

1

Configure your page

In the Business dashboard, open Payment links and choose currencies, payment methods, settlement mode, and optional amount boundaries.
2

Share the public URL

Customers open /pay/{slug}, enter their details, amount, and preferred payment method.
3

Track the checkout

Each submission creates a unique checkout URL and payment intent. Use the dashboard, notifications, or webhooks to follow its status.
4

Receive settlement

Completed payments create one confirmed treasury deposit and one balanced ledger credit. Replays cannot credit the treasury twice.

Settlement choices

Available methods and currencies are controlled by the business environment and payment-page configuration. Never hardcode the options shown to customers.

Checkout states

awaiting_paymentfunds_detectedprocessingcompleted A checkout can also become review_required, approved, failed, cancelled, or expired. Treat only completed as proof that settlement was finalized.
An approved checkout has permission to continue; it has not been paid. The customer must return and explicitly continue before NorthFond sends a new M-Pesa prompt.

Reconciliation

Use the payment intent ID as the durable NorthFond identifier and your external reference as your internal order identifier. Confirm fulfillment from a signed payment_intent.completed webhook or by reading the payment in the Business dashboard. Do not fulfill from a browser redirect alone.

Sandbox

Sandbox checkouts simulate payment and treasury credit without moving funds. Use sandbox to verify status handling, duplicate completion protection, tenant isolation, notifications, and webhook signatures before enabling live collection.