How does Omno choose a provider?
In two layers that work together. Eligibility filters the providers a customer may use, based on the rules attached to each provider. Routing then selects one provider from those that remain, using your router configuration. Routing rules can use card BIN, country, currency, amount, browser information or customer segment, split traffic between providers by share, cap each provider and keep returning customers on the provider that worked. If a provider is unavailable or rejects the request, the payment moves to the next provider in the rule until one accepts. The customer only sees, and is only routed to, providers whose rules match them.
Which fields drive eligibility?
| Field | Sent on | Effect |
|---|---|---|
customer.customerGroups | Hosted checkout session, pay-in, payout | Matched against each provider’s group rules |
customer.kyc.kycLevels | Hosted checkout session, pay-in, payout | The customer verification level, matched against each provider’s KYC rules |
kycVerified | Hosted checkout session, pay-in, payout | Narrows the set to providers that accept or require verified customers |
previousTransactionCount | Hosted checkout session, pay-in, payout | Feeds first-purchase and similar routing rules |
{
"customer": {
"externalUserId": "customer-48213",
"customerGroups": ["vip", "tr-retail"],
"kyc": { "kycLevels": ["level-2"] }
},
"kycVerified": true,
"previousTransactionCount": 0
}
How do I pin a transaction to a route?
With one of two parameters, never both:
| Parameter | Used by | Effect |
|---|---|---|
routerId | Hosted checkout, pay-in, payout | Processes with a specific router |
directRouteId | Direct Link pay-in and payout | Processes with a specific Direct Link route, with no Omno UI |
If neither is set, default routing applies.
How should I treat new and returning customers?
Keep new customers on conservative routes and open more providers as trust grows. Send previousTransactionCount: 0 for a first purchase so first-purchase rules apply, keep unverified customers in a KYC level whose providers accept them, and move them up a level when verification completes. Payouts follow the same rules, which keeps them on providers that can carry them.
Where do I see why a provider was chosen?
In the routing-decision log on the dashboard, which records the provider chosen for each transaction. Use it with your webhooks to reconcile by route.