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.
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.
| PISP | FI | GB | AT | BE | DK | FR | DE | IE | IT | LT | NL | NO | PT | ES | EE | LV | SE | PL | CZ | IS | RO | SK | BG | HR | CY | GR | HU | LI | LU | MT | SI | SG |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 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.
- Integrated (Unirail routes to it)
- Listed (from the provider's documentation)
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.
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
- Your backend asks for a decision. It sends
POST /v1/route_decisionswith the operation, countries, amount and a fingerprint of the payer's account. Names and account numbers aren't sent. - 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.
- Your backend starts the payment. In Decide mode it calls the PISP through
@unirail/executorwith credentials from your own vault. Execute mode hands that call to Unirail's API. - The customer approves at their bank. The money moves from their bank to the payee's bank.
- Your backend reports the outcome.
POST /v1/outcomesfeeds each PISP's success record and your contract usage into the next decision.
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
Yapily