Which payment integration should I choose?
Choose between hosted checkout, payment links, payment requests, direct charges, subscriptions, ecommerce extensions, and UI components.
Choose the simplest integration that gives your customer the right payment experience. You can combine multiple lomi. products later.
Try it in 5 minutes
New to lomi.? Run through a golden path: CLI quickstart for terminal-first setup, or SDK quickstart to call the API from your code.
Start here
| If you need | Use | Why |
|---|---|---|
| A complete checkout page | Hosted checkout | Fastest production path for apps and stores |
| Checkout on your site (iframe) | Embed checkout widget | Full lomi. checkout UI without leaving your page |
| A URL you can share anywhere | Payment links | Good for invoices, services, events, and no-code sales |
| A backend-created payment request | Payment requests | Good when your app controls the order flow |
| Mobile money-first collection | Mobile money | Good for Wave, MTN MoMo, and SPI-heavy flows |
| Embedded card collection | Cards | Good when you own the UI and need card entry inside your app |
| Recurring billing | Subscriptions | Good for SaaS, memberships, and recurring services |
| Customer self-service (billing, subscriptions) | Customer portal | Hosted portal for payment history, plan changes, and cancellations |
| Store plugin checkout | E-commerce extensions | Good for WooCommerce, Magento, PrestaShop, Shopify, and Bubble |
| Hosted product catalog | Products + store.lomi.africa | Good when you want a lomi.-hosted shop without a third-party platform |
| AI assistant / agent access | MCP | Cursor, Claude Desktop, and other MCP clients calling the merchant API |
| Copy-paste checkout UI | lomi. UI | Good when you want UI primitives inside your app |
| Typed API access in your code | SDKs | TypeScript, Python, Go, and PHP clients with typed methods and error handling |
| Terminal-first setup and testing | CLI | Authenticate, scaffold projects, create sandbox checkouts, and forward webhooks |
| Compare channels by country | Payment channels | Country × currency × channel matrix |
| Server-side Wave / MTN / card | Direct charges | When you own the payment UI end-to-end |


Product comparison
| Hosted checkout | Embed widget | Payment links | Payment requests | Direct charges | Subscriptions | E-commerce plugins | lomi. UI | |
|---|---|---|---|---|---|---|---|---|
| Dev effort | Low | Low | Low | Medium | High | Medium | Low | Medium |
| UI control | lomi.-hosted | iframe on your site | lomi.-hosted | Your app + hosted pay step | Full (you build UI) | Hosted signup | Store-native | Primitives in your app |
| Speed to market | High | High | High | Medium | Low | Medium | High | Medium |
| Mobile money async | Handled on hosted page | Same as hosted | Same | Same | You handle pending UX | Hosted flow | Plugin-dependent | You compose |
| Webhooks required | Recommended | Recommended | Recommended | Recommended | Required (live) | Required | Recommended | Recommended |
| No-code dashboard | Sessions + catalog | - | Yes | Partial | - | Plans + links | Yes | - |
Recommended first choice
Most teams should start with hosted checkout. It keeps sensitive collection flows on lomi., supports multiple payment methods, and gives you a production-ready customer flow without building payment UI from scratch.
Use direct charges or embedded elements only when your product needs full control over the payment interface.
What must every integration include?
Every serious integration should include:
- Test and live environment separation.
- Server-side secret key usage.
- A customer-visible success, cancel, pending, and failure state.
- Webhook handling for final reconciliation.
- Idempotency for create-style payment operations when retries are possible.
Before go-live, run Simulate errors in sandbox to exercise failure and pending states.
Next steps
Onboarding
Build
Reference apps & API