Issue: Calculating total refund amounts when returns are processed in a different currency than the shop’s base currency. A USD-denominated shop received a return at POS in EUR; refund_line_items were present, but refund Transaction data used the POS currency, making shop-currency totals unreliable.
Guidance: Instead of relying on the Refund resource’s transaction data, query the order’s transactions via the Order object and include the parameter in_shop_currency=true. This returns all transactions—including refund transactions—expressed in the shop’s currency (shop_currency), enabling accurate aggregation.
Outcome: The suggested approach was implemented, tested, and confirmed to work as expected. The discussion is resolved with no outstanding questions.
I’m having a problem extracting the return amount from an Order.
For this scenario, a Customer places an online order in USD (and the Shop has shop_currency=USD).
After a few weeks, the Customer returns a few line items in the Order at a Point of sale. This triggers an order/updated event and populates the “refund_line_items” array on the Order, but the transaction is another currency (EUR).
I’ve been using the Refund resources’ Transaction data to calculate the return, but this does not work when the currency on the Transaction in the Refund does not match the Shop’s currency.
What is the right way to determine the full amount of returns on an Order in the same currency as the Shop’s currency?
Hi @Piam - thanks for reaching out. At the moment, you are correct in pointing out that the currency may not match the shop’s currency in the refund resource/object’s transaction history data when queried via the API. You can pull transaction information directly on the order object though and have it display in the shop’s currency by using the in_shop_currency=true parameter/value. This will also display refund transactions in the shop’s currency.
Hope this helps - let us know if we can clarify anything further on our end.