← Airbnb Interview Insights

Airbnb·Software Engineer·Onsite - System Design / Architecture·Senior

Senior
Jun 2026

Summary

System design round at Airbnb for a software engineer role. The question was a single deep-dive into multi-currency support, which sounds scoped until you realize how many rabbit holes it opens up.

Questions Asked (1)

Q1

How would you design a system to support multi-currency pricing and booking, covering everything from how users select a currency to how conversions, rounding, taxes, and refunds are handled consistently across the product?

System DesignAPI & IntegrationsData Modeling
Author's notes

I started with the UX layer and currency defaulting logic, which felt safe, but the interviewer kept pushing on the storage side.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements and scope, then propose a high-level architecture that separates currency selection, conversion, and pricing logic. Dive into data modeling for storing prices in multiple currencies, handling rounding and taxes, and ensuring consistency in refunds. Discuss trade-offs and potential edge cases.

Pro tip: Emphasize the importance of storing prices in the base currency and converting at display time to avoid inconsistencies, but also mention the need for caching exchange rates and handling rate fluctuations. Show awareness of regulatory and tax implications across regions.

1. Clarify Requirements and Scope

Ask questions to understand the scale, supported currencies, and specific business rules (e.g., rounding policies, tax handling). Confirm whether prices are set in a base currency or per currency.

2. Design Currency Selection and Conversion

Outline how users select a currency (e.g., based on locale, user preference, or manual selection) and how conversion rates are fetched, cached, and applied. Discuss using a service for exchange rates and handling rate updates.

3. Data Modeling for Multi-Currency Pricing

Propose a schema that stores prices in a base currency (e.g., USD) and optionally in local currencies for performance. Explain how to handle rounding rules and ensure consistency across services.

4. Handle Taxes and Refunds

Describe how taxes are calculated per region and currency, and how refunds are processed using the original exchange rate or current rate, with clear policies. Ensure idempotency and auditability.

5. Ensure Consistency and Scalability

Discuss strategies like using a single source of truth for pricing, caching exchange rates, and handling edge cases (e.g., currency fluctuations, rounding errors). Mention monitoring and fallback mechanisms.

Key Points to Mention

  • Store prices in a base currency and convert at display time to avoid inconsistencies.
  • Use a dedicated exchange rate service with caching and fallback rates.
  • Define rounding rules (e.g., round half up, round to nearest 0.01) and apply consistently.
  • Handle taxes based on the user's location and currency, considering local regulations.
  • For refunds, decide whether to use original or current exchange rate and document the policy.
  • Ensure idempotency in payment and refund operations to avoid double conversion.

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.