Skip to content
Live Wave payments since October 2026

Wave. Orange Money. All your payments, together.

1.5%per successful payment, rounded up to the franc. Default rate.

Accept payments in Senegal with one API, follow every franc on an exact ledger, and withdraw to Wave. Your AI agents can act too — within the limits you set.

Test accounts open without a call and can never move real money.

Or hand the integration to your AI agent

Illustration: a customer pays 15,000 F with Wave; 14,775 F is credited in the ledger; a signed webhook is delivered; an AI agent makes a 5,000 F payout within its daily limit.

Demo · sample data
  • Wave
  • Orange Money
  • Whole CFA francs
  • Double-entry ledger
  • HMAC-SHA256 signed webhooks
  • One idempotency key, one payment
  • Test and live kept apart
  • MCP server over OAuth
  • Node, PHP, Python SDKs
  • WooCommerce plugin

The whole life of the money, in one API

Collect, bill, refund, pay out, automate. Every product writes to the same ledger and tells your server the same way.

Previews use sample data.

Payments

A hosted payment page where the customer picks Wave or Orange Money (Max It or QR code). The link lives 30 minutes; nothing is credited until the provider confirms.

  • Hosted page, nothing to build client-side
  • Statuses tracked to the final outcome
  • One idempotency key per creation
Read the guide : Payments

Subscriptions and instalments

Wave and Orange Money can't debit automatically, so each period Xaalis issues an invoice with a stable link you send by SMS, WhatsApp or email.

  • Daily, weekly, monthly or yearly
  • 2 to 24 instalments, ship after the last
  • Never two unpaid invoices at once
Read the guide : Subscriptions and instalments

Refunds

Give a Wave payment back to the customer in full, with one request. The idempotency key is required, so a payment can never be refunded twice.

  • The customer gets the gross amount
  • Tracked until Wave confirms
  • payment.refunded webhook
Read the guide : Refunds

Payouts and settlement

Withdraw to your Wave wallet on demand, or automatically every day. The amount is reserved in the ledger before the provider is called.

  • 0 F payout fee by default
  • Available and in transit, always apart
  • Orange Money payouts: coming soon
Demo: hold the button all the way — with a keyboard, Enter confirms with a short undo window.
Read the guide : Payouts and settlement

Agent wallets

Give an AI agent or an automated service a funded wallet with its own key and hard limits. It can never touch the rest of your balance.

  • Per-payout and daily caps
  • 1 to 20 allowed numbers
  • In live mode, only the owner creates and funds one
Read the guide : Agent wallets

Webhooks

Payments, payouts, refunds and invoices reach your server signed with HMAC-SHA256 and timestamped. If your server doesn't answer, Xaalis tries again.

  • Up to 15 attempts over about 36 hours
  • Delivery history you can inspect
  • Signature checked over the raw body
Read the guide : Webhooks

Dashboard

Your team follows balances, payments, payouts and invoices, in test or live mode. Sign in with a magic link, no password.

  • Owner, developer and viewer roles
  • API keys created, rolled, revoked
  • Refunds and payouts from the interface
Read the guide : Dashboard

Where, with what, and how to go live

Senegal and the CFA franc (XOF) today. What each provider supports, with no hidden asterisk.

WaveOrange Money
Collect on the hosted pageAvailableAvailable
Subscriptions and instalmentsAvailableAvailable
Refund (in full)AvailableNot available
Withdraw your balanceAvailablePlanned
Payouts by an AI agent (live)AvailableNot available
  • Minimum amount: 100 F CFA
  • Payment link valid for 30 minutes
  • Whole francs, no decimals

Go live in four steps

  1. Test account

    Opened with one request or from the site. No real money can move.

  2. Integration

    Payment, signed webhook, payout: test it all with a test wallet where you choose the outcome.

  3. Verification

    We verify your business, the owner's identity and your Wave settlement wallet.

  4. Live

    Swap the key and the API address. Make a first 100 F payment and watch the webhook arrive.

Go-live checklist

Your AI agent can do the whole integration. You keep the verification.

From test account to production, a coding agent (Claude Code, Cursor, Codex…) can do the integration almost on its own: the docs are machine-readable, the test account opens with one request, and every outcome can be simulated.

What your agent does

  1. Reads the agent docs (llms.txt) or connects to the MCP server
  2. Opens a test account through the API and gets its keys — no form
  3. Creates payments and simulates success, failure and expiry
  4. Wires the webhook, checks the signature, ignores duplicates
  5. Runs the go-live checklist

Example · what your agent sees

$ POST /v1/sandbox/signups

201 · test account created

secret_key: sk_test_51Qx8f2KjR7mW4tN9pLc3vZa

What stays human

  • Identity verification (KYC) of the business and its owner
  • Choosing the Wave wallet that receives your settlements
  • Reviewing the integration before going live
  • Going live: until then no real money comes in and no payout goes out
Paste into your agent
Integrate Xaalis payments (Wave and Orange Money) into this project. First read https://docs.xaalis.org/llms.txt, open a test account with POST https://sandbox-api.xaalis.org/v1/sandbox/signups, then implement payment creation with an idempotency key, the signed webhook and end-to-end tests. Use no live keys.

From Bambouk gold to mobile money.

A thousand years of West African money, in eight steps — and what we're building next.

Scroll: a thousand years of money, and what comes next

  1. Gold — Bambouk, the Falémé valley. Its value: the metal.

    Long before the year 1000, gold panned from the rivers of eastern Senegal crossed the Sahara by caravan. It made Ghana rich, then Mali.

  2. 1324 — Mansa Musa in Cairo. Its value: scarcity.

    On his way to Mecca, the emperor of Mali spent so much gold in Cairo that its price there fell for about twelve years — or so al-Umari wrote. Too much gold, and gold is worth less.

  3. Cowries — Markets of Mali, 14th century. Its value: everyone agrees.

    For everyday trade, people counted in shells from the Indian Ocean. Worthless in themselves, accepted by the whole market. Ibn Battuta noted a rate: 1,150 cowries to one gold dinar.

  4. 1945 — The CFA franc is born. Its value: an issuer.

    On 26 December 1945 the CFA franc was created. Money became state coins and banknotes, its value guaranteed by the issuer.

  5. Cash — Decades of banknotes. Its limit: the paper trail.

    Money had to be counted, carried and kept. It got lost, it got stolen, and when it changed hands only a receipt proved it.

  6. Mobile — Wave, Orange Money. Its limit: separate books.

    Today people pay with their phones. But Wave on one side, Orange Money on the other: for a merchant that's two accounts, two statements, two ways to check.

  7. Xaalis — Dakar, today. Its value: proof.

    One ledger for all your payments: every franc written on both sides, every notification signed, nothing counted twice. Money without weight is worth what its books are worth.

  8. Tomorrow — From Dakar across West Africa. Our ambition.

    The CFA franc is already shared by eight West African countries. From Dakar, we're building the infrastructure for money to move between their phones with the same proof — then across the continent.

Available in Senegal. An ambition for West Africa.

Available, in testing or planned: every product shows its status, and nothing is presented as available before it is.

  1. Available today

    • Wave and Orange Money collection, hosted page
    • Subscriptions and instalments
    • Refunds, payouts, daily settlement
    • Agent wallets and MCP server
    • Dashboard, Node, PHP and Python SDKs, WooCommerce
  2. In testing, limited access

    • WhatsApp assistant for merchants: balance, payments, payouts confirmed with a code
  3. Planned, not available

    • One-click checkout: customers save a payment method once and pay at every Xaalis merchant in one tap
    • Agent spending: AI agents that pay merchants for you, within the limits you set
  4. Vision, no timeline

    • More countries, more payment methods, one ledger: West Africa's financial infrastructure, then the continent's

Pricing — You pay when you get paid.

1.5%

per successful payment: the default rate to get paid, with no subscription. Successful payment, Wave or Orange Money, rounded up to the franc.

  • Withdrawal to your Wave walletby default0 F
  • Failed or expired payment0 F
  • Test account and test calls0 F

Minimum payment: 100 F CFA. Withdrawals to Orange Money: coming soon. When a payment is refunded, its original Xaalis fee is still due.

Do the maths

Fee per payment
188 F
Xaalis fees for the month
75 200 F
What you receive
4 924 800 F

Exact for payments of this amount: 1.5% rounded up to the franc, payment by payment.

Why the books always balance

What happens when the network drops, when a webhook fails, or when two withdrawals leave at once.

Security best practices
  1. amount: 15000

    Whole francs, never decimals

    Amounts are integers end to end. Fees round up to the franc, once, the same way everywhere.

  2. available − 14 775 → pending_payouts

    Reserved before it's sent

    A withdrawal locks the amount in the ledger before the provider is called, so two withdrawals can't spend the same money.

  3. Idempotency-Key: order-1042

    One key, one payment

    Replay the same request after a network drop and you get the same payment back — never a duplicate.

  4. Xaalis-Signature: t=…,v1=5f2b…

    Webhooks you can verify

    Every notification is signed and timestamped. Your server checks the signature over the raw body and refuses anything older than 5 minutes.

  5. sk_test_… → test:ledger

    Test never touches live

    A test key goes through a mock provider and a separate ledger. It can't reach a real wallet.

  6. sha256(sk_live_…)

    Keys we can't read back

    We only keep a fingerprint of your API keys. Roll or revoke them from the dashboard at any time.

Let Claude or ChatGPT look at your payments

Our MCP server connects your AI assistant to your account. You pick the business, test or live mode, and exactly what the assistant may do. Remove access whenever you like — it stops at once.

Connector address
https://mcp.xaalis.org/mcp
Claude and ChatGPT over OAuth; Cursor, VS Code and the rest with an API key.
No account, just trying
https://mcp.xaalis.org/sandbox
AI agents guide

You : What's my test balance?

xaalis_get_balance · read only

Claude : Your test balance: 0 F CFA available, no withdrawals in progress. I didn't create or change anything.

Summary of a real exchange with Claude, connected over OAuth to a test shop (2026-10-14).

WhatsApp assistant for merchants: in testing, opening soon.

For developers

A REST API, SDKs and a plugin. What you can plug in today:

Create a payment

curl https://sandbox-api.xaalis.org/v1/payments \
  -H "Authorization: Bearer $XAALIS_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: order-1042" \
  -d '{"amount":15000,"description":"Commande #1042",
       "client_reference":"order_1042",
       "success_url":"https://shop.example/merci"}'

Frequently asked questions

The full FAQ
Which payment methods do customers see?

Wave and Orange Money (the Max It app or an Orange Money QR code), on our hosted payment page.

When is the money available?

As soon as the provider confirms a payment, its net amount is available and can be paid out.

How do I get my money?

With a payout to your Wave wallet, on demand or automatically every day from the dashboard. Orange Money payouts are coming soon.

The customer reached my success page — can I ship?

No. Only a verified payment.succeeded webhook, or reading the payment from your server, proves payment.

Can I refund a customer?

Yes, in full, for Wave payments. The customer gets the gross amount back; by default the payment's Xaalis fee is still due.

Can I bill every month, or in instalments?

Yes. Each period, the customer approves one payment from a link you send them. An instalment plan has 2 to 24 payments.

Do amounts have decimals?

No. The CFA franc has no cents: 15000 means 15 000 F CFA. Amounts with decimals are rejected.

How do I test without real money?

Open a test account: your payments go to a test wallet where you choose the outcome. A test key can never move real money.

What do I need to go live?

We verify your business, the owner's identity and your Wave settlement wallet. Meanwhile, you integrate in test mode.

Your first test payment starts here.

Open a test account, create a payment, watch the webhook arrive. To go live, we verify your business and your settlement wallet.

Payment in progress…

Boutique Awa · Dakar

TEST MODE

Order #1042

Amount15 000 F

Xaalis fee 1.5%− 225 F

Credited14 775 F

Paid withWave (test)

Statussucceeded

Ref.pay_8f3kq2…

Xaalis — Wave and Orange Money payments API for Senegal