Payment authorisation speed is one of the most critical metrics in our business. Every millisecond of additional latency increases cart abandonment rates — research consistently shows that a 100ms delay can reduce conversion by 1%. When we inherited a system with a global median authorisation time of 120ms, we knew we had to act.
The problem: centralised routing at scale
Our original architecture routed every payment through a single primary routing cluster in Frankfurt. This worked fine when our customer base was predominantly European. As we expanded to Southeast Asia and Latin America, we started seeing tail latencies of 380ms+ for merchants in Singapore and São Paulo.
The fix required rethinking the entire routing architecture — not just adding more servers, but fundamentally changing where decisions are made.
Phase 1: Edge node deployment
We deployed eight edge nodes across four continents: two in North America (US-East and US-West), two in Europe (Frankfurt and London), two in Asia-Pacific (Singapore and Tokyo), and one each in São Paulo and Lagos.
Each edge node runs a lightweight version of our routing engine — stripped of anything that can be deferred to an async background job. The node's only job is to make a fast route, risk-score, and authorise decision. Everything else — reconciliation, reporting, webhook dispatch — happens asynchronously.
Key insight: 80% of the work in a payment authorisation can be done asynchronously. The critical path only needs: fraud scoring, routing, and acquirer communication. We ruthlessly removed everything else from the hot path.
Phase 2: Predictive pre-routing
The second innovation was predictive pre-routing. When a user loads a checkout page, we begin the routing decision before any payment data has been submitted. Using signals like geolocation, device fingerprint, and merchant config, we pre-select the most likely acquirer route and warm the connection.
By the time the user hits "Pay", the TCP handshake with the acquirer is already established. This alone saved 18–25ms on median transactions.
Phase 3: Intelligent acquirer selection
Our routing engine now evaluates six factors per transaction in real time:
- Acquirer health score — based on the last 60 seconds of response times and error rates
- Card BIN preference — some acquirers have higher approval rates for specific issuing banks
- Currency & settlement speed — for same-currency acquirers we prefer local settlement
- Cost optimisation — interchange fee differentials across acquirer agreements
- Fraud signal correlation — certain acquirers flag specific fraud patterns more accurately
- Merchant retry history — if a previous attempt declined, we route to a different acquirer automatically
Results after 60 days
The numbers speak for themselves. Global median authorisation time dropped from 120ms to 47ms — a 61% improvement. More importantly, P99 latency in APAC fell from 380ms to 89ms.
The approval rate improvement was an unexpected bonus. Faster routing meant fewer timeout-induced declines, and intelligent acquirer selection improved the match between card type and acquirer capability.
What's next
We're currently testing a model that uses historical transaction data to predict the optimal routing decision before the user even opens checkout — essentially pre-computing routes for returning customers. Early results show a further 8–12ms improvement for repeat buyers. We'll publish a follow-up post when we have statistically significant data.
Ready to optimise your payment flow?
Join thousands of businesses using Zupay to process payments faster, smarter, and at lower cost.