Currencies and exchange rates for D2C payments
Understand how Unity IAP stores per-currency prices and how your payment provider converts, presents, and settles them for Direct-to-Consumer payments.
Read time 4 minutesLast updated a day ago
Direct-to-Consumer (D2C) pricing has two halves. Unity In-App Purchasing (IAP) holds the prices you set, one per currency, in your catalog. Your payment provider, as the merchant of record (MoR), handles everything that happens to those prices at checkout. That includes which currency it shows the player, any currency conversion, and the currency it settles your payout in.
This page explains the division of responsibilities and how per-currency prices work in your catalog. It also covers how your game selects a currency at checkout, what your provider converts, and where currency appears in orders and reporting.
Division of responsibilities
Concern | Owner |
|---|---|
| The price of each product in each currency | You, in your IAP catalog |
| Which currency the catalog returns | Your game, through the |
| Presenting the price and taking the payment | Your payment provider, as MoR |
| Currency conversion and exchange rates | Your payment provider, as MoR |
| Supported currencies and local payment methods | Your payment provider, as MoR |
| Payout and settlement currency | Your payment provider, as MoR |
Unity IAP doesn't convert between currencies at runtime. It returns the prices you set. If you want a product available in a currency, add a price for that currency to your catalog.
Per-currency pricing in your catalog
Each catalog listing carries a array with one entry per currency. Each entry has the following characteristics:
pricing- is an ISO 4217 currency code, such as
currencyCodeorUSD.EUR - is an integer in micros, where 1,000,000 micros is one unit of the currency. For example,
amountis 9.99.9990000 - The array must contain at least one entry, and one of those entries must use .
USD
For the full schema, refer to Catalog schema. For webshop listings, which can carry a separate per currency, refer to Webshop catalog schema reference.
webshopPriceYou can add currencies in the Unity Dashboard or through a CSV import:
- In the Dashboard, select Add (+) next to Base price to add a currency, or select the calculator to convert an amount from another currency. Refer to Add a catalog listing.
- In a CSV, each row defines one product for one language and currency. To price the same product in more currencies, repeat the row and reuse the value. Refer to Create Remote Catalog.
CatalogItemId
Currency selection at checkout
Your game tells Unity IAP which currency to return when it requests the catalog. In a webshop, you pass and as URL parameters when you open the shop, so the catalog returns prices for the player's region:
localecurrencyhttps://shop.unity.com/acme/game/dungeons?sessionToken=…&projectId=…&environment=production&locale=ja-JP¤cy=JPY
If you omit those parameters, the catalog falls back to the player's browser locale and prices in US dollars (USD). For more information, refer to Integrate a webshop into a Unity game and Open a webshop from your game.
To preview how prices appear across regions before you publish, use the currency switcher in the Dashboard's Preview pane. Refer to Introduction to webshops.
Currency conversion by your payment provider
Your payment provider decides which currencies and local payment methods it supports in each market. It converts between the currency it presents to the player and the currency it settles your payout in, and it sets the exchange rates it applies. Unity IAP takes no part in the conversion and doesn't receive the exchange rate.
Provider capabilities differ:
- Stripe: Managed Payments enables Adaptive Pricing by default. Stripe converts your price into the player's local currency based on their location and handles the conversion for you. Some local payment methods only appear at checkout when you present prices in the local currency, so check the payment method availability for your target markets. To quote a rate up front instead, refer to Localize prices and the FX quotes API.
- Coda: Coda supports local currencies and payment methods across the markets it operates in. For the currencies available to your account, contact Coda.
Currency in orders and reporting
Orders record the currency of the transaction. In the order payload, each entry and the order carry an value and a code, and also carries . Refer to the webhook event shape.
lineItemstotalamountMicroscurrencytotalrefundedAmountMicrosFor how revenue and refund activity appear in the Unity Dashboard, refer to D2C Performance reference and Revenue Performance reference.