How do I collect Wave and Orange Money on an online store?
Hosted store such as Shopify or a custom site: payment links without code, or the API from a server. No 221 Pay Shopify app is published.
A store without an editable server sells with payment links; a store with its own server calls the API. No Shopify app or checkout module for 221 Pay is published: 221 Pay does not appear in a hosted platform's native checkout.
Compare the two routes
| Payment links | API | |
|---|---|---|
| Code to write | None | Yes, server side |
| Amount | Fixed, set when the link is created | Variable, computed by the store |
| Order matching | Manual, by payment_link_description | Automatic, by merchant_reference and webhook |
| Fits | A few products, pre-orders, hosted store | Dynamic cart, custom site |
With payment links
Create one link per product
A link carries an amount in CFA francs and a description of 1 to 80 characters
(POST /v1/payment-links, or the dashboard). It is reusable: each submission
creates an ordinary payment. See Payment links.
Put the link on the product page
A "Pay with Wave or Orange Money" button that opens link_to_pay. The customer
picks a payment method among the active ones, enters their number and pays.
Match the payments
GET /v1/payments?q=link:<link id> returns, for each payment, the link's
description (payment_link_description). Deactivate a link when the product is
no longer available.
With the API
The store's server creates the payment when the cart is validated, redirects to
checkout_url, then marks the order paid on the payment.succeeded webhook.
Same steps as for WooCommerce: WooCommerce,
route 1. First call in five languages:
How do I accept a first payment through the API?
Good to know
- Senegal's Wave and Orange Money are enabled by default on a new project.
- Fees: 2% per collection (How much does 221 Pay cost?).
- A refund needs the customer's number on the payment (Refunds).
Last updated on
How do I accept Wave and Orange Money on WooCommerce?
No 221 Pay WooCommerce plugin is published: integrate the API from the WordPress server or sell with payment links. Steps and limits.
How do I accept Wave and Orange Money in a Flutter app?
A Flutter app goes through a server that creates the payment with the API key, then opens checkout_url. The key never goes into the app.