Skip to main content
The official Lyel Pay payment provider for Odoo. Accept mobile money (Airtel, Orange, MTN) and card payments on website_sale checkout and on customer invoice payment links. Supports Odoo 17 and Odoo 18 (Community and Enterprise).

How it works

  1. The customer reaches the Odoo checkout and picks Lyel Pay.
  2. Odoo creates a payment.transaction and asks the module for rendering values.
  3. The module calls the Lyel Pay API server-side to create a PaymentIntent and gets back a session_token.
  4. Odoo renders an inline <iframe> pointing at the hosted Lyel Pay checkout.
  5. The customer pays in the iframe; the widget posts a success/failure message back.
  6. Authoritatively: Lyel Pay sends a signed webhook to your Odoo instance; the module verifies the signature and updates the transaction state. This is what fulfils the order — the browser message is just a UX hint.

Install

From the Odoo Apps store

Search Lyel Pay in Apps, click Install.

From source

Restart Odoo, update the Apps list, install Lyel Pay.

Runtime dependency

The module uses the official Python SDK on the server side:
See the Python SDK reference for details.

Configure

  1. Open Settings → Payment Providers.
  2. Click Lyel Pay.
  3. Set State to Test (sandbox) or Enabled (production).
  4. Fill in:
FieldWhere to find it
Publishable keyLyel Pay dashboard → Developers → API keys (pk_test_... / pk_live_...)
Secret keyLyel Pay dashboard → Developers → API keys (sk_test_... / sk_live_...)
Webhook secretLyel Pay dashboard → Developers → Webhooks (whsec_...)
Checkout URLDefault https://checkout.lyelpay.com. Override only for self-hosted.
  1. Save.
Set the provider State to Test while you validate. Enabled moves to production keys and starts charging real customers.

Webhook URL

Once the provider is saved, configure this URL in Lyel Pay dashboard → Developers → Webhooks:
The module verifies the Lyel-Signature HMAC on every call. Unsigned or stale (older than 5 minutes) requests are rejected with 400.

Supported currencies

XAF, XOF, CDF, EUR, USD. Odoo automatically restricts the provider to currencies activated on the merchant’s company; if the customer’s cart is in another currency, Lyel Pay does not appear in their checkout options.

Payment methods

Out of the box the module ships three mobile money methods:
  • Airtel Money (airtel_money)
  • Orange Money (orange_money)
  • MTN Mobile Money (mtn_mobile_money)
Card payments are enabled through the same provider when activated on your Lyel Pay account.

Local development

The repository ships with a docker-compose.yml that runs Postgres + Odoo 17 + Odoo 18 with the module mounted as an extra addon.
Master password is admin. Install Lyel Pay from the Apps menu after creating a database. To wipe everything:

Run the module tests

Swap odoo17 for odoo18 to run the same suite on Odoo 18.

What this MVP does not cover (yet)

FeatureStatus
Refunds from OdooPlanned. Issue a refund from the Lyel Pay dashboard in the meantime.
Recurring / tokenized cardsPlanned for subscription use-cases.
POS (point of sale)Planned as a separate pos_lyel_pay module.
Express checkout / 1-clickNot on the immediate roadmap.

Source & support