Overview
The euro (EUR) is the shared currency of the eurozone - 21 EU member states (as of 2026). A common requirement is to offer a single EUR price to most of these countries, while keeping a distinct localized price for a subset of them where you want to charge differently. Stigg supports this with a dedicatedEU country code that represents the eurozone as a single region. In the Stigg app it’s labeled European Union and shown with the EU flag.
Follow this guide to set up one localized EU price that covers multiple eurozone countries - via no-code configuration or programmatically - instead of adding and maintaining the same price separately for each country. Countries you leave out of this group keep their own default or localized price, so you can mix a shared EU price with country-specific ones.
How matching works
Matching abillingCountryCode to a localized price is a simple, predictable exact string comparison against the country code configured on that price row - and that’s what makes the EU code work: any country you map to EU before sending it shares that one price, and any country you don’t map keeps its own default or localized price.
Stigg doesn’t maintain this country-to-EU mapping for you - it’s a mapping you own and maintain on your side. You decide exactly which countries are grouped together, and can change that grouping at any time.
To use it, maintain your own list of eurozone country codes, and when you resolve a customer’s actual country (via GeoIP, billing address, or an onboarding preference), map it to EU before passing it as billingCountryCode - on every call that accepts it: the Paywall, Checkout, and CustomerPortal widgets, and the provisionSubscription and previewSubscription APIs.
TypeScript
Countries that use the euro unilaterally (Andorra, Monaco, San Marino, Vatican City) or de facto (Kosovo, Montenegro) are not eurozone member states. Add their country codes to the mapping only if you intend to serve them the same EUR price.
Things to keep in mind
- Customer-facing country in the Stigg app. Once a subscription is provisioned, the customer’s payment details show
EUrather than the customer’s actual country. If you rely on this field for reporting, resolve the customer’s real country in your own systems and store it as customer metadata so it’s still available directly from Stigg. - Differentiating a specific country later. If you later want to charge a different price in one eurozone country, stop mapping that country to
EUand add a dedicated localized price for it directly.
Consolidating existing per-country prices into one EU price
If you’re already serving the eurozone with a separate localized price per country and want to replace them with a singleEU price, follow these steps so existing subscribers aren’t disrupted along the way.
1
Add the EU price
Add the new
EU localized price to the plan or add-on, alongside your existing per-country prices - via no-code configuration or programmatically.2
Roll it out to new customers first
Update your country-resolution logic so only new customers map to
EU. Consolidating prices doesn’t change what country an existing subscriber resolves to, so existing subscribers keep resolving to their original country (for example DE) and stay on their current price until you decide to move them.3
Decide how to move existing subscribers
For subscribers still on a per-country price, either:
- leave their price in place until they naturally churn or upgrade, or
- explicitly re-point their subscription to the
EUprice when you’re ready to move them.
4
Remove the old per-country prices
Once every subscriber has moved off a per-country price, remove it. A price row’s delete control is disabled once it has live subscriptions, and that stays disabled even in a new draft, so if any subscribers remain on it, use Set Package Pricing instead. It replaces a plan or add-on’s entire pricing set in one atomic call, so include every price you want to keep - the default price, any other localized prices, and the new
EU price - not just the ones you’re changing.