Frequently asked questions.
How pay by bank works, where the money goes and how to integrate it. Can't find an answer? Contact us.
No questions match that search. Try a different word, or ask us directly.
The basics
What is pay by bank?
Pay by bank lets a customer pay straight from their bank account instead of using a card. They choose their bank, approve the payment in their banking app, and their bank sends the money to yours. It runs on open banking payment initiation, regulated under PSD2 in the EU and the Payment Services Regulations in the UK.
What does ZyroPay actually do?
We create the payment, show the customer a checkout to choose their bank, request their consent, execute the payment once they approve, and tell your server the outcome with a signed webhook. Payment initiation runs through Yapily's open banking network.
Which countries do you cover?
The United Kingdom for GBP and banks across the EU for EUR. The checkout only lists banks that support the payment you requested. Ask sales about a particular bank or market.
Who can open a ZyroPay account?
Businesses registered in the UK or the EEA, subject to our onboarding checks and acceptable use policy.
For your customers
Does my customer need to sign up for anything?
No. They only need online or mobile banking with a supported bank.
Do you see my customers' bank login details?
Never. Customers approve the payment on their own bank's screen. We receive the outcome, not their credentials.
What if my customer starts on a computer?
The checkout shows a QR code. They scan it, approve on their phone, and the page on their computer completes by itself. The desktop button switches off once the phone has started, so the payment can't be made twice.
What if they close the tab or don't come back from the bank?
Your server still gets the webhook, so the order is settled correctly either way. If the customer returns to your page and you've turned on resume, the button picks the payment back up and shows the result. A payment where no bank was chosen is cancelled after about 60 minutes.
Can customers see their past payments?
Yes. The receipts page lists payments made from that browser. It's stored on the device and isn't linked to an account.
Money and settlement
Does ZyroPay hold my money?
No. The customer's bank pays your registered bank account directly. We orchestrate the approval and never pool or hold funds.
When do I receive the money?
If you request the instant rail and the customer's bank supports it, the payment settles in seconds. Otherwise it goes as a standard domestic payment. The payment record shows which rail was actually used.
Can I change the account I'm paid into?
Yes, by contacting us. It can't be changed through the API. That's deliberate: even a leaked API key can't send your payments somewhere else.
How much does ZyroPay cost?
A per-transaction fee agreed in your merchant agreement. Ask sales for a quote based on your volume.
Are there chargebacks?
No. Pay by bank payments are approved by the account holder in their bank and aren't covered by card scheme chargeback rules. Customers can still ask you for a refund under your own policy.
Security
What if our API key leaks?
Rotate it straight away. The damage is limited by design: requests have no payee field, so a stolen key can't divert money, and keys can only read your own payments.
Why is the merchant portal login different from the API key?
The portal uses a read-only dashboard token (dash_…). You can give it to finance or support staff without giving them the power to create payments.
Can someone embed our checkout on their site?
No. The checkout can only be framed on the domains registered for your account, and browsers enforce that.
How do I know a webhook really came from you?
Every webhook is signed with an HMAC-SHA256 of its body using a secret issued only to you. Verify it before acting on the event. The developer guide has the code.
Integration
How long does integration take?
The typical integration is one endpoint, one button and one webhook handler. Most teams finish it in a day, including testing in the sandbox.
Is there an SDK?
You don't need one. The API is plain HTTPS and JSON, so it works from any language. The pay.js button covers the front end.
Can I show my own bank picker?
Yes. Pass institutionId when you create the payment and redirect the customer to the authorisationUrl in the response. Most merchants let our checkout handle bank choice instead.
Can I test without real money?
Yes. The sandbox runs the full flow, including a stub mode that needs no bank credentials, so you can test your webhook handling end to end. See the sandbox notes.