Skip to main content
Hosted checkout is the fastest way to accept local rails when you do not need to render deposit instructions yourself. Create a checkout session, send the customer to pay.useaxra.com, and let Axra show the rail picker and payment UI.

1. Create a checkout session

POST /business/payment/session Set currency to any supported local-rail currency (see Local payment methods for the full list). Card checkout uses the same endpoint with usd or other card currencies.
curl --request POST \
  --url https://api.useaxra.com/api/v1/business/payment/session \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
    "amount": 10000,
    "currency": "ngn",
    "description": "Order #1042",
    "customerEmail": "adaobi@example.com",
    "successUrl": "https://yourapp.com/payment/success?session={SESSION_ID}",
    "cancelUrl": "https://yourapp.com/payment/cancelled",
    "expiresIn": 1800,
    "metadata": {
      "orderId": "1042"
    }
  }'

2. Redirect the customer

Send the customer’s browser to checkoutUrl from the session response. The session id in the URL is the auth context for the session-scoped local-rail endpoints.

3. Customer pays via local rail

On pay.useaxra.com the customer chooses bank transfer, mobile money, or instant EFT when the session currency supports it. Axra calls the session-bound local-rail endpoints under the hood:
  • GET /checkout/sessions/{sessionId}/local-rail/channels
  • POST /checkout/sessions/{sessionId}/local-rail/initiate
  • GET /checkout/sessions/{sessionId}/local-rail/status
Your integration only needs the session create call and redirect; you do not call those endpoints unless you are building a custom checkout UI on top of a session.

4. Receive webhook + redirect

When the collection completes, Axra redirects the customer to your successUrl and sends payment_link.session.completed to your webhook URL. Treat the webhook as authoritative — the redirect alone does not guarantee settlement.

How currencies map to rails

Session currencyCountryRails shown in checkout
ngnNigeriaBank transfer (instant)
zarSouth AfricaInstant EFT
kesKenyaMobile money (M-PESA)
tzsTanzaniaMobile money, bank
ugxUgandaMobile money
rwfRwandaMobile money
mwkMalawiMobile money
zmwZambiaMobile money, bank
bwpBotswanaMobile money, bank
xafCameroonMobile money

When to use this vs. direct API

Hosted checkout is zero-effort when a redirect is acceptable. Use the server-to-server collections API when you embed deposit instructions in your own app, run backend-to-backend flows, or need channel discovery before showing payment options.