1
Sign up
Create an Axis account by posting your credentials and account type to the auth endpoint. Use ResponseStore the
accountType: "business" if you are setting up payment infrastructure for a product, or "developer" for personal/sandbox use.When you sign up with accountType: "business", Axis automatically provisions a business record and returns a businessId in the response — no separate business registration call is needed at this step.Requesttoken — you will send it as Authorization: Bearer <token> on every subsequent developer-authenticated request. Tokens expire after 7 days.2
Register your business
Before you can create wallets, Axis requires basic business details for KYB (Know Your Business) purposes. Submit your business profile to the onboarding endpoint.RequestResponse
3
Create a wallet
Provision a wallet for your agent. You define the spending rules here — Axis enforces them on every payment intent the agent submits.Response
Request
4
Fund the wallet
Your wallet starts with a balance of You can fund the wallet using:There is no polling required — subscribe to the
0. To give the agent real spend authority, transfer NGN to the virtual account number returned in the previous step.From the response above:- Internet banking or mobile app — a standard NGN transfer to the account number above from any Nigerian bank.
- Programmatic transfer — use your existing payment processor (e.g. Paystack, Flutterwave) to initiate a transfer to the virtual account.
balance field (in kobo) and recorded as a LedgerEntry.wallet.funded webhook event in your Axis dashboard to be notified when funds arrive.5
Fire a payment intent
Your agent is now ready to spend. It calls Axis checks all of the following before executing the transfer. A failed check returns a
POST /api/payment-intent, authenticating with the fullKey via the x-api-key header — not the developer JWT. Axis validates the request against the wallet’s rules before executing the bank transfer.RequestSuccess response
400 or 403 with a descriptive error:- Wallet is active and not expired
amount≤spendLimitPerTx- Total spend in the current period window +
amount≤spendLimitPeriod - Wallet
balance≥amount merchantNameis inmerchantAllowlist(whenuseAllowlist: true)