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

# Payment links

> Accept M-Pesa and USDC through a NorthFond-hosted checkout and settle into one business treasury.

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

<Steps>
  <Step title="Configure your page">In the Business dashboard, open **Payment links** and choose currencies, payment methods, settlement mode, and optional amount boundaries.</Step>
  <Step title="Share the public URL">Customers open `/pay/{slug}`, enter their details, amount, and preferred payment method.</Step>
  <Step title="Track the checkout">Each submission creates a unique checkout URL and payment intent. Use the dashboard, notifications, or webhooks to follow its status.</Step>
  <Step title="Receive settlement">Completed payments create one confirmed treasury deposit and one balanced ledger credit. Replays cannot credit the treasury twice.</Step>
</Steps>

## Settlement choices

| Mode                      | Customer pays          | Business receives                                                 |
| ------------------------- | ---------------------- | ----------------------------------------------------------------- |
| Stablecoin settlement     | M-Pesa or USDC         | USDC in the NorthFond business treasury                           |
| Local-currency settlement | Supported local method | Local-currency settlement according to the business configuration |

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

## Checkout states

`awaiting_payment` → `funds_detected` → `processing` → `completed`

A checkout can also become `review_required`, `approved`, `failed`, `cancelled`, or `expired`. Treat only `completed` as proof that settlement was finalized.

<Warning>
  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.
</Warning>

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