Skip to content
Use cases

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 linksAPI
Code to writeNoneYes, server side
AmountFixed, set when the link is createdVariable, computed by the store
Order matchingManual, by payment_link_descriptionAutomatic, by merchant_reference and webhook
FitsA few products, pre-orders, hosted storeDynamic cart, custom site

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.

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