How does a Wave payment work?
Online, a Wave payment starts with a checkout session. The merchant’s server, or its provider, creates the session with the amount in XOF, a success URL and an error URL. XOF amounts are whole numbers, with no decimals. Wave returns a session object that includes a launch URL, and the shopper’s browser is sent to it. On a phone, the link opens the Wave app, where the customer confirms the payment. Wave says the link must be opened in the browser, not inside an app’s webview.
The session has two statuses. The checkout status is open, complete or expired, and the payment status is processing, cancelled or succeeded. A session expires 30 minutes after it is created unless the merchant sets otherwise, and after that it no longer accepts payment. The merchant can also close an open session early.
The result arrives by webhook. Wave sends an event when a checkout payment succeeds and another when an attempt fails, and a customer can fail more than once before paying. If the merchant’s server does not answer with a 2xx code within 5 seconds, Wave retries for up to 3 days. Events can arrive more than once or out of order, so each one carries an id for deduplication, and a signature header lets the merchant check that it came from Wave.
Refunds go back to the same session. A refund call returns the money to the customer’s wallet, and calling it twice does not create a second transaction. Payouts use a separate API: the merchant sends a mobile number in international format, the amount the recipient should receive and an idempotency key. The recipient does not need a Wave account, since an unregistered number gets an SMS and can collect cash at a Wave agent.
Why does Wave matter for merchants?
Reach. Wave Burkina’s general manager said in July 2026 that Wave has 25 million active users, 3 million merchants and 50,000 points of sale across 11 African countries, and that it is the most downloaded app in Senegal and The Gambia, as reported by Wakatsera. In Côte d’Ivoire, Wave’s country head said in March 2024 that Wave had more than 20 million accounts and nearly 150,000 merchants. The online checkout described here is for XOF, in Senegal and Côte d’Ivoire. An April 2024 survey by the national statistics institute, reported by Ecomatin, put Wave at 31% of money transfers and about 70% of merchant payments in the country.
Value across the region. The BCEAO’s 2024 report on digital financial services ranks Wave second in the UEMOA by transaction value, with 38.2% in 2024, up from 34% in 2023, behind Orange at 41.3%.
Simple pricing. Wave charges 1% to send money and nothing for cash-in, cash-out or bill payments. For businesses, the first XOF 20,000 of payments received each day in the Business app are free and a 1% fee applies after that, and bulk payments cost the business 1% and are free for the recipient.
Licensed structure. Wave Digital Finance received an electronic money issuer licence from the BCEAO on 14 April 2022, reference EME.SN 017/2022, issued in Senegal. In Côte d’Ivoire the BCEAO lists Wave under bank partnerships with UBA CI and Orabank CI. Ecofin Agency reported in October 2025 that Wave had set up Wave Bank Africa S.A. in Côte d’Ivoire, with share capital of XOF 20 billion.
What can go wrong?
Sessions expire. A shopper who leaves the Wave app and returns later may find the 30-minute session closed, so the merchant needs to create a new one rather than reuse the old link.
Webhooks can be late, duplicated or out of order. A merchant that ships on the first event it sees, or ignores a failure followed by a success, can confirm the wrong state. Deduplicating by event id and checking the session status closes that gap.
Payouts and refunds can fail on limits. A recipient can reach their monthly limit, the business wallet can lack funds, or the account can be blocked. A payout that times out should be retried with the same idempotency key, never a new one, or the customer may be paid twice. A payout can be reversed once, within 3 days.
There is no card-scheme chargeback on a Wave payment, so disputes are handled between the customer, Wave and the merchant.
How would Omno handle Wave?
A merchant would show Wave in the hosted checkout, which would open the Wave link in the shopper’s browser, or offer it through Direct Links on its own checkout. Routing rules set by the merchant would send the request to a provider that holds a Wave connection. In the hosted checkout, if a provider is unavailable or rejects the request, the payment moves to the next provider in the rule until one accepts. The order would stay pending until a webhook confirms the result, and Omno’s webhook to the merchant would be the source of truth for confirming the order. Payouts could follow PSP eligibility rules and customer verification levels, with a unique reference on each request so a repeated request cannot pay twice, and the routing-decision log would record which provider handled each step.