Multi-PSP routing for an FX & CFD broker
Online FX / CFD trading broker · Architecture & delivery
Traders depositing in multiple currencies were funnelled to a single payment provider, so deposits failed whenever that provider had localised outages or weak success rates in specific corridors — stalling onboarding in regulated regions.
Designed a routing layer that selects PSPs per request based on currency, region, KYC tier, and live success-rate metrics. Integrated multiple global providers behind a uniform internal contract, with per-provider adapters, idempotent request handling, and a fallback chain for failed authorisations.
One provider's outage no longer fails a deposit — an affected corridor falls back to another PSP on the same request, instead of returning the trader an error. Onboarding a new provider dropped from weeks to days.