A PSD2-compliant account-to-account payment flow that lets merchants accept money directly from a customer's bank — no card, no Apple Pay, no friction. Designed mobile-first, ported to web and embedded SDK.
PSD2 opened up direct bank payments across Europe. The technology works, but most implementations feel clunky — too many redirects, too much fine print, and a UI that screams "regulatory".
Our brief was to design a checkout that converted at least as well as cards, while honouring strong customer authentication, bank-selection logistics, and merchant white-labeling. The output had to ship as an embeddable SDK that partners could drop into their own product.
Account-to-account payments hand off the user to their bank's authentication flow midway through checkout. That handoff is — legally — outside our control. Our checkout has 30 seconds before the redirect to win the user's trust, and another 10 seconds after to convince them it worked.
Strong customer authentication, payment-initiation consent, fee disclosure, bank-selection accuracy — all required by law. None of them optional. All of them text.
We don't control what happens after the redirect. We had to set user expectations precisely enough that the bank screen wouldn't feel like a different product.
The checkout had to look like the merchant's brand, not ours. The design system had to flex without breaking.
Over 70% of A2A checkouts complete on phones. Bank-selection has to be thumb-reachable. CTAs always at the bottom. No mid-screen taps.
We compressed the full A2A journey into four screens: amount → choose bank → confirm → success. Each screen has a visible relationship to the next, so users never wonder how far they are.
Design the redirect, even if it's not yours. The bank-side auth screen is the part of the journey we touch the least — and the part users remember most. Spending time scripting the moment before the redirect had the biggest single impact on completion.
Tokens are a contract. Once merchants depend on a token, you can't quietly rename it. The next iteration of the SDK shipped a documented token API with semantic versioning.
Accessibility audits early, not at QA. Color contrast on merchant-themed checkouts was the recurring bug. We now ship a contrast linter that runs at theme-load and falls back to a safe palette if the merchant theme fails WCAG AA.