Back to case studies

Architecture Lead & Developer

Architecting Dynamic Currency Conversion and Multi-Currency Processing

Designed a compliant, multi-team currency platform spanning the FX-provider configuration dashboard, an extension to the existing payment page for DCC, MCP, or combined currency experiences, frontend-backend contracts, transaction variants, refunds, chargebacks, analytics, and gateway delivery.

Details are intentionally generalized to respect confidentiality.

DCCMCPPayment ArchitectureFX ProvidersGateway ContractsCompliance
Timeline
2026
Domain
Multi-currency payments, compliance, gateway contracts
Impact
Produced the reviewed end-to-end design and common gateway contract for DCC and multi-currency processing across the payment lifecycle.

Architecture

System boundary map

The diagram preserves the major responsibilities and handoffs while omitting proprietary implementation details.

DCC + Multi-Currency Platform

Designed the FX-provider configuration dashboard and the extension to the existing payment page that selects and presents DCC, MCP, or both without conflicting customer choices; also defined the frontend-backend currency contracts, gateway payloads, audit-safe analytics, and lifecycle behavior across authorization, capture, void, refund, and chargeback flows.

1Merchant Configuration
2DCC / MCP Resolution
3FX Quote
4Customer Choice
5Payment Lifecycle
6Gateway Contract
7Refunds & Chargebacks

Context

Dynamic Currency Conversion lets an eligible cardholder pay in a familiar home currency, while Multi-Currency Processing lets merchants present and process supported transaction currencies.

Supporting both requires coordinated behavior across dashboard configuration, checkout, transaction orchestration, gateways, refunds, chargebacks, and analytics.

Problem

The existing DCC path was too limited for the required compliance and transaction coverage.

Currency decisions and provider data needed one coherent contract across pre-authorization, decoupled authentication, retries, partial and split orders, voids, refunds, and chargebacks.

Constraints

Network and gateway rules shaped which data could be collected, forwarded, stored, and displayed.

Merchants needed to configure FX-provider credentials without exposing sensitive values.

The design had to support hosted payment pages and API-integrated merchants while making currency choice clear to the customer.

Multiple product teams needed stable contracts that could evolve independently.

My Role

Owned the end-to-end solution design, which was reviewed with senior architects, and implemented core parts alongside payment-page, dashboard, and transaction teams.

Mapped currency behavior across the complete payment lifecycle, including the payment-page experience and frontend-backend decision contract, and converted it into shared contracts and team-level implementation boundaries.

Technical Design

Designed merchant-dashboard configuration for FX-provider credentials and supported currencies.

Designed the extension to the existing hosted payment page: UI states, selection precedence, and frontend-backend contracts to identify whether DCC, Multi-Currency Processing, or both apply and present a coherent currency choice without conflicting offers.

Defined the backend response needed by the payment page—eligibility, supported currencies, conversion context, and quote data—so frontend rendering and the selected transaction path stay consistent.

Defined eligibility and quote boundaries for payment-page and API-driven currency selection.

Created a common gateway-facing interface so conversion details could be delivered consistently without leaking provider-specific behavior.

Specified behavior for authorization, pre-authorization, decoupled flows, retries, partial and split orders, voids, refunds, and chargebacks.

Designed audit and analytics boundaries so useful currency data remained visible while restricted details stayed filtered.

Tradeoffs

A shared contract simplified cross-team adoption but required careful optionality so flows did not carry irrelevant currency data.

Central eligibility logic increased consistency while demanding explicit cache, failure, and provider-timeout behavior.

Impact

Established the reviewed architecture and shared contracts for a platform-wide DCC and MCP rollout.

Made the customer-facing currency decision a first-class part of the design instead of leaving DCC and MCP as disconnected backend capabilities.

Reduced ambiguity across teams by defining currency behavior for the transaction lifecycle instead of treating conversion as a checkout-only feature.

What I learned

Cross-cutting payment features succeed when the lifecycle contract is designed before individual services begin implementation.

Compliance is an architectural input: it shapes data boundaries, persistence, observability, and user experience.