Which integration option fits my product?
Omno offers four ways to take payments.
- Hosted checkout with the Web SDK. One checkout page in your brand for cards, Apple Pay, Google Pay, local methods and crypto. Your backend creates a session and your frontend opens it with the Web SDK. Routing, PSP eligibility and saved cards run inside the flow. This is the recommended option for new integrations. See the hosted checkout guide.
- Card Fields. Your own checkout for cards. Three secure Omno card fields for card number, expiry and CVV sit inside your page, styled through the Omno SDK, and card data never touches your servers. See Card Fields.
- Direct Links. Your own buttons for local methods, wallets and crypto, with no Omno payment page. Behind each button, Omno routes the payment across several providers of that method. See the Direct Links guide.
- iFrame. The hosted checkout embedded in your own page, for teams that want the hosted flow without leaving their layout.
The older Payment Page remains for existing merchants only and is not available for new onboarding.
How does a hosted checkout integration work?
The flow has six steps:
- Your backend obtains an access token.
- Your backend creates a hosted checkout session and receives a session ID, a short-lived token and URLs for the checkout, payment and payout views.
- Your backend passes the session ID and token to your frontend.
- Your frontend opens the hosted checkout with the Web SDK.
- The customer pays, and the selected provider processes the payment.
- Omno sends a webhook with the final status to your backend, which can confirm it with Get Transaction Info.
When you create the session, include as much customer context as you can: customer groups, KYC levels (customer verification levels), whether the customer is KYC verified and how many previous transactions they have made. These fields drive PSP eligibility and routing.
Why are webhooks the source of truth?
A browser can close, a redirect can fail and a customer can refresh at the wrong moment. None of that changes whether the provider approved the payment. Omno therefore treats the webhook to your backend, and the Get Transaction Info endpoint, as the only authoritative statement of a transaction’s final status.
Build your integration around that:
- Credit balances, ship goods and approve payouts only on a webhook or a confirmed status.
- Check each webhook as described in the webhooks guide before acting on it.
- Handle repeated deliveries idempotently.
- Expect asynchronous outcomes. Statuses such as PENDING and PENDING_3DS resolve later, a timeout may resolve after the customer leaves, and an abandoned session produces no final webhook. Reconcile those with Get Transaction Info.
How do routing and PSP eligibility affect my requests?
Every payment passes through two steps. Eligibility first removes providers that cannot serve the customer, using country, method, customer groups sent as customer.customerGroups and KYC levels sent as customer.kyc.kycLevels. Routing then picks one provider from those that remain. Signals such as kycVerified and previousTransactionCount let rules treat first-time and returning customers differently.
You can pin a request to a specific router with routerId, or to a specific Direct Link route with directRouteId. Provide at most one. The routing and PSP eligibility guide lists every field and its effect.
How do I get from first test to live?
- Talk to Omno about your markets, methods and providers, and receive dashboard access.
- Create API credentials and pick your integration option; Getting started walks through the options.
- Build session creation, the frontend checkout and your webhook handler, testing against fake payment providers on your account (Omno has one production environment, so there is no separate test environment).
- Test approvals, declines, pending outcomes, timeouts and abandoned sessions, and check that your ledger only moves on webhooks.
- Configure providers, routers and eligibility rules for production with the Omno team.
- Switch credentials, go live and watch the real-time success metrics and routing logs on the dashboard.
Every endpoint is listed in the API reference.