Pay by bank API that picks the PISP for each payment

Pay by bank lets a customer pay straight from their bank account. They approve the payment in their banking app and the money goes from their bank to the payee's bank. A payment initiation service provider (PISP) starts each payment. Unirail picks which of your PISPs should start it, by cost under your contracts, speed and success likelihood.

Try a payment

Pick a country and an amount. Each lane is a PISP that covers single payments there. The amber lane is the PISP Unirail would pick for this payment.

Country
Pay by bank in United Kingdom The payment goes from the payer's bank to the payee's bank, started by Plaid. 6 PISPs cover United Kingdom: 2 eligible, 0 ruled out, 4 listed. Payer's bank Payee's bank Plaid · example pickYapily · eligibleGoCardless · listedOpenPayd · listedTink · listedTrueLayer · listed Unirail decides
The money moves from the payer's bank to the payee's bank. The PISP sends the payment instruction and Unirail only picks which PISP does it.

Example decision

Route
Plaid
Also eligible
Yapily
Ruled out
None
Listed, not routed
GoCardless, OpenPayd, Tink, TrueLayer

A real decision ranks the eligible PISPs by cost under your contracts, ETA and success likelihood from your own outcomes, with an estimated cost for each. This example only uses which PISPs are integrated in each country and any published payment cap.

PISP coverage by country

9 PISPs in the catalogue cover single payments across 32 countries. Unirail routes to Enable Banking, Plaid and Yapily today. The rest are listed from their own documentation. Each name links to its sources.

Single payments: PISPs by country
PISP FIGBATBEDKFRDEIEITLTNLNOPTESEELVSEPLCZISROSKBGHRCYGRHULILUMTSISG
Enable Banking Open banking provider · 30 countries integrated no integrated integrated listed integrated integrated integrated integrated integrated integrated listed integrated integrated integrated integrated listed listed listed listed listed integrated listed listed listed listed listed listed listed listed listed no
Plaid Open banking provider · 18 countries listed integrated listed listed listed listed listed listed listed listed listed listed listed listed listed listed listed listed no no no no no no no no no no no no no no
Yapily Open banking provider · 18 countries listed integrated listed listed listed listed listed listed listed listed listed listed listed listed listed listed listed no no listed no no no no no no no no no no no no
GoCardless Multi-rail payments provider · 1 country no listed no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no
Neonomics Open banking provider · 4 countries listed no no no listed no no no no no no listed no no no no listed no no no no no no no no no no no no no no no
OpenPayd Multi-rail payments provider · 15 countries listed listed listed listed no listed listed listed listed listed listed no listed listed listed listed no no no no no listed no no no no no no no no no no
PayNow QR Bank scheme · 1 country no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no listed
Tink Open banking provider · 19 countries listed listed listed listed listed listed listed listed listed listed listed listed listed listed listed listed listed listed listed no no no no no no no no no no no no no
TrueLayer Open banking provider · 16 countries listed listed listed listed listed listed listed listed listed listed listed listed listed listed no no no listed no no listed no no no no no no no no no no no

Scroll the table sideways to see every country.

Every single payment provider and source

Variable recurring payments in the UK

With VRP the customer approves one mandate at their bank. Payments of varying amounts then go through without a fresh approval each time.

Sweeping VRP

Sweeping VRP moves money between accounts the same person holds, such as a top-up to a savings or wallet account.

  • Plaid Integrated On by default in the sandbox; production needs Plaid to enable VRP and reusable payments switched on for the connection.
  • Tink Listed
  • TrueLayer Listed
  • Yapily Listed

Commercial VRP

Commercial VRP pays a merchant or other third party, such as a subscription or a bill.

  • GoCardless Listed Recurring Pay by Bank; live, API only.
  • Plaid Listed Plaid's blog (1 June 2026) says it is a founding participant in UK commercial VRP.
  • TrueLayer Listed The docs describe commercial mandates; whether they are generally available is unclear.
  • Yapily Listed Private beta.

How a routed payment runs

  1. Your backend asks for a decision. It sends POST /v1/route_decisions with the operation, countries, amount and a fingerprint of the payer's account. Names and account numbers aren't sent.
  2. Unirail picks a PISP for the payment. The decision names one with its estimated cost, ETA and success likelihood, ranks the alternatives and lists any it ruled out with the reason.
  3. Your backend starts the payment. In Decide mode it calls the PISP through @unirail/executor with credentials from your own vault. Execute mode hands that call to Unirail's API.
  4. The customer approves at their bank. The money moves from their bank to the payee's bank.
  5. Your backend reports the outcome. POST /v1/outcomes feeds each PISP's success record and your contract usage into the next decision.
A £50 UK payment, decided from masked metadata
import { createUnirail, maskAccount } from "@unirail/sdk";

const unirail = createUnirail({ apiKey: process.env.UNIRAIL_SECRET_KEY });

const decision = await unirail.routeDecisions.create({
  operation: "banking.pis.single",
  amount: { value: "5000", asset: "iso4217:GBP" },
  payer: {
    country: "GB",
    scheme: "scan",
    accountRef: await maskAccount("payto://scan/040004/12345678", process.env.UNIRAIL_FINGERPRINT_KEY),
  },
  payee: { country: "GB", scheme: "scan" },
  preference: "recommended",
});

if (decision.status === "routed") {
  // Your backend calls decision.rail with your own credentials (@unirail/executor),
  // then reports what happened so the next decision learns from it.
  const started = Date.now();
  const result = await callProvider(decision); // your code
  await unirail.outcomes.create({
    decision: decision.id,
    rail: decision.rail,
    status: result.ok ? "succeeded" : "failed",
    latencyMs: Date.now() - started,
  });
}

Field names match the published v1 contract (RouteDecisionRequest, OutcomeRequest). Amounts are strings in minor units ("5000" is £50.00). @unirail/sdk and @unirail/executor aren't on npm yet. Access comes with your account.

Pay by bank questions

What is pay by bank?

Pay by bank is a payment made straight from the customer's bank account. The customer picks their bank and approves the payment in their banking app. Their bank then sends the money to the payee's account over Faster Payments in the UK or SEPA in Europe. A payment initiation service provider (PISP) starts the payment with the customer's consent.

Does Unirail hold or move the money?

No, Unirail never holds or moves funds and isn't the regulated party. It decides which of your PISPs should start each payment and what it will cost under your contracts. The payment goes from the payer's bank to the payee's bank through the PISP you contract with.

Which PISPs can Unirail route pay by bank payments to?

Unirail routes pay by bank to Enable Banking in 14 countries, Plaid in the United Kingdom and Yapily in the United Kingdom today. Another 6 PISPs are listed for comparison, with coverage from their own documentation. Unirail doesn't route to them yet.

Can I use more than one PISP?

Yes, connect each PISP you contract with in the dashboard. For every payment, the decision names one PISP with its estimated cost, ETA and success likelihood and ranks the others as alternatives. It also lists any PISP it ruled out with the reason, such as a payment cap or a country the PISP doesn't cover.

Is there a limit on how much a customer can pay?

It depends on the PISP and the customer's bank. The catalogue records published limits where a PISP states one. The Yapily entry, for example, reads "Capped at £15,000 per payment under Yapily Connect (catalogue note, not yet verified against a source)." A decision rules out a PISP whose limit the payment exceeds.

What are variable recurring payments (VRP)?

VRP lets a customer approve one mandate at their bank and then pay varying amounts under it without approving each payment. In the UK, sweeping VRP moves money between accounts the same person holds. Commercial VRP pays a merchant or other third party. Unirail routes sweeping VRP to Plaid in the UK today. The other VRP providers in the catalogue are listed.

How do I start?

Start by requesting early access. Once your account is set up, connect a PISP's sandbox with your own credentials and send a route decision for a single payment. The quickstart walks through each step, with your credentials in your own Infisical vault from the first call.

Route pay by bank across your PISPs

Once you have an account, you can start in test mode with Enable Banking, Plaid and Yapily.

Enable Banking

Plaid
  • United Kingdom (integrated)
Yapily
  • United Kingdom (integrated)