Hello everyone,
I’m building a Shopify app with the following pricing model:
- Free up to $100 USD of revenue processed by the app per merchant per billing cycle.
- $49 USD per month afterwards.
The challenge: Merchants operate in different base currencies (EUR, GBP, JPY, etc.). We store attributed revenue in their local currency. We need to:
- Retrieve app‑attributed order revenue.
- Convert it correctly to USD.
- Know when the USD total hits >$100 to trigger Shopify’s managed billing via
appSubscriptionCreate.
Key Questions
- Is there a way in Shopify’s APIs to handle the currency conversion automatically?
- Are there community-recommended libraries or common patterns for this workflow?
- Any pitfalls around timezones, refunds, FX rate precision, or Shopify quotas?
Would love to get your feedback on architecture, edge cases, or easier approaches. Thanks in advance! 
1 Like
Hey @Vipul_Pandey,
There isn’t currently an endpoint that will show the order value in USD unless the presentment or Shop currency are USD. So for your pricing you would need to convert the order currency to USD.
Without knowing exactly how you are defining processed revenue it’s hard to say for sure how to retrieve app-attributed revenue, but likely the order resource will have the details you need.
A pitfall with this plan is that creating the app subscription when you hit this threshold means you will then need to have the merchant approve the charge at that point before you can start to bill them.
Since your billing model relies on merchants reaching a certain revenue mark, I’m assuming your target market is stores already generating revenue. I would recommend instead of complicated billing structures (and a non-native billing experience in USD), to offer free trials or subscription discounts instead. This will still give merchants the chance to test your app risk free while evaluating your app.
This would also decrease your support debt as offering your app for free up until a certain revenue is reached may lead to many non target market clients using your services for a long time without ever paying as well as significantly higher churn rate.
If you want a free plan, offering a free tier with limited services that are more tailored to new or establishing merchants may be better than tracking their revenue and having to then chase them down to accept a new plan once a certain threshold is reached.
This is just my recommendation and I hope some of our app partners will add their feedback.