Route an example payment

Pick a payment and a preference to see which provider Unirail's routing engine chose, how it ranked the rest and why it ruled some out.

Example data
Payment
Preference
  • Recommended: Cost, success likelihood and any existing link, weighted equally.
  • Cheapest: Lowest cost for the next payment under your contracts.
  • Fastest: Shortest typical time to a final status.

The contracts, prices and outcome history behind these decisions are made up for this example. The decisions come from Unirail's routing engine running against the real coverage and limits of Plaid, Yapily and Enable Banking.

operation
banking.pis.single
amount
£50.00
payer
GB · scan
payee
GB · scan
preference
recommended

Routed to Yapily

dec_example000001 · policy v7 · valid for 5 minutes

Ranked options

  1. 1YapilyChosen
    Cost
    £0.15 per payment
    Your Yapily contract, tier 1 of 1
    Time
    11 s typical
    9 in 10 within 1 min 14 s
    Success
    95% likely
    1,205 of 1,262 succeeded

    Why it ranks here

    • The ranking weighs cost, success likelihood and any existing link equally.
    • It's the cheapest of the providers that can run this.
    • Your routing policy lists it second in the UK. Unirail uses that order to break ties.
    • Yapily takes at most £15,000 per payment.

    What your app must do

    • Give the user a way to revoke yapily's access.

    The payer approves through a redirect to their bank.

  2. 2Plaid
    Cost
    £0.18 per payment
    Your Plaid contract, tier 2 of 2
    Time
    6 s typical
    9 in 10 within 41 s
    Success
    98% likely
    1,912 of 1,960 succeeded

    Why it ranks here

    • It's the fastest of the providers that can run this.
    • It's the most likely to succeed of the providers that can run this.
    • Your routing policy lists it first in the UK. Unirail uses that order to break ties.

    The payer approves through the provider's own SDK or a redirect to their bank.

Providers ruled out and why

  • Enable Banking
    • Enable Banking doesn't offer pay by bank in the UK.
    • Enable Banking doesn't cover the UK in GBP.
    • Your routing policy doesn't send payments in the UK to Enable Banking.

How Unirail ranks providers

Unirail's API and a self-hosted router run the same engine, @unirail/router, in four steps for every decision.

  1. Rule providers out

    For each provider you've connected, Unirail checks that its adapter can run the operation in the payer's country and currency, that your routing policy allows it, that it won't hold the money in transit and that it accepts the payer's account type. Each failed check is recorded in the decision as a reason.

  2. Check the payment

    A payment goes through the same route search Unirail uses for quotes. It checks the payee's account type and the provider's per-payment limit. It estimates the time from scheme timings and the outcomes you've reported. The payer doesn't need an earlier bank link, because they approve the payment at their bank inside the provider's flow.

  3. Price and rank

    Each remaining provider gets an estimated cost for the next unit. It comes from your contract at the tier this month has reached, or from the provider's published price if you have no contract. With neither, the cost is marked unknown. The recommended ranking weighs cost, success likelihood and reuse of an existing bank link equally. Your policy order breaks ties. Setting the preference to cheapest or fastest orders them by cost or by typical time.

  4. Return the decision

    The decision gets an id, a five-minute expiry, the policy and snapshot versions and a digest of what the user will approve. Your backend binds the user's approval to the id and digest, calls the provider and reports how it went.

Least-cost routing under your own contracts

Cost comes from the deals you enter in Unirail, with fixed fees, volume tiers and an overage price for each provider. The router prices the next payment at the tier this month's usage has reached. Once usage at a provider crosses into a cheaper tier, every later decision will use the lower price.

In the example above, the Plaid contract is in its second tier at £0.18 a payment and Yapily's first tier costs £0.15. With the preference set to cheapest, a £50 payment goes to Yapily. With fastest, it goes to Plaid. On a typical day Plaid completes in 6 seconds and Yapily in 11.

A provider with no contract and no published price gets an unknown cost. An unknown cost doesn't push it down the ranking. See how deals and volume tiers feed the router.

What it routes today

Unirail routes payments, bank links and identity checks through the three providers it has adapters for.

Integrated providers and what Unirail routes to each
ProviderWhereWhat
PlaidUKAccount details, Single payments, Sweeping VRP, Account ownership, ID document check, Selfie and liveness, Database check
YapilyUKAccount details, Single payments, Account ownership
Enable Banking14 euro-area countriesAccount details, Single payments, Account ownership

Coverage is from the catalogue snapshot of 18 October 2026. The provider marketplace lists 23 more providers with their coverage for comparison. Unirail can't route to them until it has an adapter for each. Read more about pay by bank across your PISPs and routing identity checks.

Common questions

Does Unirail move the money?

Unirail doesn't move money. In Decide mode your backend calls the provider with your own credentials. In Execute mode Unirail's API makes the call with credentials it reads from your vault. Either way the payer's bank pays the payee's account directly.

What is smart payment routing?

Smart payment routing picks a provider for each payment from what it will cost, how quickly it usually completes and how often it succeeds. Unirail makes that choice from your own contracts and your own outcome history. Every decision comes back with its reasons.

What is least-cost routing?

Least-cost routing sends each payment to the provider that costs least for it. In Unirail you set the preference to cheapest. The cost is your contract's price for the next payment at the tier this month's usage has reached. When your volume crosses into a cheaper tier, the price in each decision drops with it.

Which providers can Unirail route to?

Unirail routes to Plaid, Yapily and Enable Banking today. The marketplace lists 23 more providers with their coverage and sources for comparison. Unirail can't route to those until it has an adapter for each.

Can we override a decision?

Your backend can use any of the ranked alternatives in a decision, as long as the outcome names the provider it used. A request can also exclude providers. Your routing policy sets which providers each country may use and in what order.

How does it learn which provider succeeds more often?

It reads the outcomes your backend reports after each attempt, with the status, the time it took and the fee if you know it. Unirail keeps a success rate per provider, operation and bank from the last 30 days, smoothed so a provider with a handful of attempts isn't over- or under-rated. Cancellations don't count against a provider because the user chose them. A provider with no outcomes yet starts at 50/50.

Route your first payment in test mode

Request early access, connect a provider's sandbox and call POST /v1/route_decisions. If you'd like to see it on your own setup first, tell us which providers you contract with and we'll show you how routing would work across them.