Smart routing: more approvals, fewer lost sales

Smart routing sends every payment to the provider your rules choose, and cascading moves it to the next provider when one is unavailable or declines. In Omno you route by card BIN, country, currency, amount, browser information or customer segment, split traffic across providers by proportion, cap each provider based on its declines and successes, keep returning customers on the provider that worked, and see every decision in a log.

Updated

Cascading: an automatic fallback. If a provider is unavailable or rejects the request, the payment moves to the next provider in the rule, without the customer re-entering anything. Examples. Values are illustrative.

In 30 seconds

  • Rules route each payment by card BIN, country, currency, amount, browser information or customer segment.
  • Traffic splitting, provider limits and sticky routing balance cost, performance and returning customers.
  • If a provider is unavailable or rejects the request, the payment moves to the next provider in your rule, until one accepts.
  • 4 min read
  • 6 features
  • 5 settings you control
Talk to us

Try a routing rule. Change the payment and watch which providers can take it.

Country
Method
Customer verification level
Customer

Example providers and rules. Your own rules live in the dashboard.

2 of 5 providers can take this payment. PSP B goes first, PSP A is the cascade.

  • PSP B Best example score for first purchases with PIX in Brazil Routes first
  • PSP A Eligible, used if PSP B soft-declines Cascade
  • PSP C Does not support PIX Filtered
  • PSP D Requires verification level 2 Filtered
  • PSP E No Brazil coverage Filtered
How routing and PSP eligibility work

What it does

Rule-based routing
Send each payment by card BIN, country, currency, amount, browser information or customer segment. Build a rule for any business need, no code and no deploy.
Smart limits on providers
Control how much traffic each provider gets, based on its declines and successes, so one weak route cannot drag your approval rate down.
Automatic cascading
If a provider is unavailable or declines, the payment moves to the next provider in your rule until one accepts, invisible to the customer.
Sticky and reverse-sticky routing
Keep returning customers on the provider that worked for them, or move them off the one that did not.
Traffic splitting
Share volume across providers by proportion to balance cost and performance, and to keep every provider relationship active.
No single point of failure
With more than one provider in a rule, provider downtime stops being your downtime.
On this page5 sections

How does routing choose a provider for each payment?

Routing starts with a question about the customer and the payment, not about the provider. Omno first works out which providers are eligible. A provider is removed if it does not serve the customer’s country, does not support the chosen payment method, is restricted to customer groups this customer is not in, or requires a verification level this customer has not reached. Customer groups and verification levels arrive on the request as customer.customerGroups and customer.kyc.kycLevels, so the merchant decides how customers are classified.

From the providers that remain, your routing rule picks one. Rules can use the card BIN, so a local card goes to a provider with strong domestic issuing relationships, and they can use country, currency, amount, browser information and customer segment. Routers are configured in the dashboard with an order of preference, and a request can name a specific router with routerId when a flow needs fixed behaviour. Signals such as kycVerified and previousTransactionCount let rules separate a first-time customer from a long-standing one, because the provider that converts first purchases best is not always the cheapest for repeat traffic.

How do traffic splitting, limits and sticky routing work?

Three controls shape how volume moves between providers once a rule has more than one of them.

  • Traffic splitting shares volume across providers by proportion, for example 70% to one provider and 30% to another. Use it to balance processing cost against performance, to test a new provider on real traffic, or to keep a second provider warm.
  • Smart limits cap how much each provider receives, by amount and volume, and let you reduce a provider’s share when its declines rise and its successes fall.
  • Sticky routing keeps a returning customer on the provider that approved them before. Reverse-sticky routing does the opposite and moves a customer away from the provider that declined them.

All three are rules you set and change in the dashboard. Omno does not guess: every payment follows the rule as written, and the log shows which rule and which split decided it.

How does cascading move a rejected payment?

A decline is not always a verdict on the customer. Issuers decline for many reasons that have little to do with fraud: a cautious risk score at one acquiring bank, a merchant category the issuer treats carefully, a timeout between systems. These are soft declines, and the same card can be approved when the payment arrives from a different acquirer.

Cascading takes advantage of that. If a provider is unavailable or rejects the request, Omno moves the payment to the next provider in your rule, until one accepts. The customer stays in the same checkout and does not type anything again. When the payment reaches a final status, your backend receives one webhook with the final status, and the routing log keeps every attempt.

The order comes from your rule. You decide which providers sit in it and in what sequence, so risk and payments teams can agree on the path a payment takes. The routing-decision log shows every provider that was tried and the response code each one returned.

What changes versus a single PSP?

With a single provider there is nothing to route and nothing to cascade. A soft decline is a lost payment, and the customer either tries another card or leaves. An outage at the provider stops every payment until it recovers. When approval rates fall, you can raise a ticket, but you cannot compare the provider against anyone else on the same traffic.

With routing and cascading in place:

  • The payment reaches a provider that is actually allowed and able to accept it, instead of failing on a country or method mismatch.
  • A payment one provider rejects moves to the next provider in the rule.
  • A provider that slows down or fails is bypassed while it recovers.
  • Approval rates by provider, method and country sit side by side, so routing changes are decided with data.

Omno shows the measured effect of cascading in the facts on this page when a confirmed figure is available. Results depend on your traffic mix, so the honest way to estimate them is to look at your own decline reasons.

How should I set up my first routing rules?

Start simple. Group providers by country and method, and make sure every combination you sell in has at least two eligible providers, otherwise cascading has nowhere to go. Put the provider you prefer first in each rule. Use customer groups to separate new and returning customers if your providers perform differently on them, and use verification levels where a provider requires verified customers.

Then watch the transparency logs and success metrics for a few weeks before tuning order and weights. Most gains come from fixing obvious mismatches, such as sending a local card to a provider with weak domestic issuing relationships, rather than from complex rules.

Illustrative webhook after a cascade. The first provider rejected the request and the second accepted it. Field names are simplified.json
{
  "event": "payin.status_changed",
  "transaction_id": "tx_51d0b7e2",
  "status": "SUCCESS",
  "psp": "psp_c",
  "amount": 75.00,
  "currency": "BRL",
  "routing": {
    "router": "br-cards-default",
    "attempts": [
      { "psp": "psp_a", "status": "DECLINED", "reason": "do_not_honor" },
      { "psp": "psp_c", "status": "SUCCESS" }
    ]
  }
}

Settings you control

Router order and weights
Set which eligible providers a router prefers, in what sequence it tries them and what share of traffic each one gets.
Provider limits
Cap amount and volume per provider and method, and lower a provider's share when its declines rise.
Eligibility per PSP
Allow or exclude each provider by country, method, customer group and verification level.
Routing conditions
Build rules on card BIN, country, method, currency, amount, browser information, customer segment and verification level.
Stickiness
Choose whether a returning customer stays with the provider that approved them last time or moves away from one that declined them.
Developer guide

Frequently asked questions

What is the difference between routing and PSP eligibility?

Eligibility decides which providers are allowed to take a payment for this customer, based on country, method, customer group and verification level. Routing then picks one provider from that allowed set. Both run on every transaction, in that order.

When does Omno cascade a payment?

When a provider is unavailable or rejects the request, Omno moves the payment to the next provider in your routing rule, and keeps going until one accepts it. The customer does not re-enter anything, and the routing-decision log records every attempt and response code.

Can I force a payment to a specific provider?

Yes. Pass a routerId to process with a specific router, or a directRouteId for a specific Direct Link route. Provide at most one; without either, default routing applies.

How do I see why a payment went to a particular PSP?

The transparency log records the eligible providers, the chosen provider and the reason for each attempt. The same data feeds the dashboard and exports, so routing changes can be checked against approval rates.

it will.

Tell us where your payments fail. We will show you how routing changes the outcome.

esc
↑↓ to move ↵ to open All results