Understanding the New CURRENCY_CONVERSION Type in Shopify Payments Balance Transactions

Shopify’s GraphQL Admin API now includes a CURRENCY_CONVERSION transaction type, letting developers fetch detailed conversion data directly from balance transactions. Learn what changed, who it affects, and how to adapt your integrations.

Understanding the New CURRENCY_CONVERSION Type in Shopify Payments Balance Transactions
6 sections

Shopify has just expanded the ShopifyPaymentsTransactionType enum in the GraphQL Admin API (version 2026‑10) to include a new CURRENCY_CONVERSION type. This addition lets you retrieve balance‑transaction records that represent currency‑conversion events—something that previously required work‑arounds or manual reconciliation. In this post we’ll break down the change, explain who needs to care, and give you concrete code examples to get up and running fast.

What’s New?

The enum ShopifyPaymentsTransactionType now has the following values: CHARGE, REFUND, PAYOUT, and the newly added CURRENCY_CONVERSION. When you query the shopifyPaymentsBalanceTransactions connection, any transaction that resulted from converting funds between currencies (for example, a payout in USD from a store that sells in EUR) will be returned with type CURRENCY_CONVERSION. The payload includes fields such as originalAmount, convertedAmount, conversionRate, and sourceCurrency/targetCurrency, giving you full visibility into the conversion mechanics.

Who Is Affected?

*Developers*: Anyone building apps, custom reports, or integrations that rely on balance‑transaction data will need to handle the new type. If your code currently assumes the enum only contains CHARGE, REFUND, or PAYOUT, you may see unexpected nulls or errors when a conversion transaction appears.*Merchants*: Indirectly, merchants benefit from more accurate reporting in apps that surface financial data (e.g., accounting integrations). No direct action is required on the storefront side, but they may notice new line items in third‑party dashboards.

How to Use the New CURRENCY_CONVERSION Type

Below is a minimal GraphQL query that pulls the new conversion details. Replace YOUR_SHOP_DOMAIN and the appropriate access token when testing in GraphiQL or your app.

query GetBalanceTransactions {

shop {

shopifyPaymentsBalanceTransactions(first: 20) {

edges {

node {

id

type

amount {

amount

currencyCode

}

... on ShopifyPaymentsBalanceTransactionCurrencyConversion {

originalAmount {

amount

currencyCode

}

convertedAmount {

amount

currencyCode

}

conversionRate

sourceCurrency

targetCurrency

}

}

}

}

}

}

Key points in the snippet:

• The type field will now return CURRENCY_CONVERSION for conversion rows.• The fragment ShopifyPaymentsBalanceTransactionCurrencyConversion exposes the conversion‑specific fields.• You can still request the generic amount field for a quick total, but the detailed breakdown is essential for accounting.

Impact on Merchant Reporting

Many accounting apps pull balance‑transaction data to reconcile payouts. With the conversion type now exposed, those apps can automatically calculate the foreign‑exchange gain or loss without manual entry. If you maintain a custom reporting dashboard, update your data model to store originalAmount, convertedAmount, and conversionRate when type == CURRENCY_CONVERSION.

Next Steps & Best Practices

  • Update Your GraphQL Version – Ensure your app targets at least API version 2026‑10. Older versions will not recognize the new enum value.
  • Add Defensive Enum Handling – In strongly‑typed languages, extend your enum definition and add a fallback case (e.g., UNKNOWN) to avoid runtime crashes when new types appear in the future.
  • Store Conversion Metadata – Persist originalAmount and convertedAmount separately. This makes it trivial to generate FX‑gain reports for tax filing.
  • Test with Multi‑Currency Stores – If your store sells in multiple currencies, trigger a conversion by creating a test order in a foreign currency and processing a payout. Verify the CURRENCY_CONVERSION node appears as expected.
  • Communicate Changes to Stakeholders – Let merchants know that their financial dashboards will now show conversion line items, reducing confusion around “extra” fees.
  • Conclusion

    The addition of the CURRENCY_CONVERSION type is a small but powerful tweak that brings transparency to cross‑currency payouts. By updating your GraphQL queries, handling the new enum safely, and storing the extra fields, you’ll deliver clearer financial data to merchants and keep your integrations future‑proof.

    Ready to upgrade? Dive into the official Shopify dev docs, update your API version, and start pulling conversion details today. If you run into challenges, drop a comment below or reach out on the Shopify Community forums.

    Tags
    Sources

    Related Articles

    Unlock Transparency: The New Store Activity Log Lets You Track Every Change

    Unlock Transparency: The New Store Activity Log Lets You Track Every Change

    Shopify’s rebuilt Store activity log centralizes every modification—from products to payments—into one searchable timeline. Learn what’s new, who can see it, and how merchants and developers can act today.

    November 13, 20264 min
    Custom Draft Order Discounts Now Respect Presentment Currency

    Custom Draft Order Discounts Now Respect Presentment Currency

    Shopify now calculates custom draft‑order discounts in the draft’s presentment currency instead of the shop’s default. Learn what this means for merchants, developers, and how to update your workflow today.

    November 13, 20264 min
    Checkout Functions Get Smarter: `cart.deliverableLine` Now Includes Cost Modeling and Direct Cart Line Links

    Checkout Functions Get Smarter: `cart.deliverableLine` Now Includes Cost Modeling and Direct Cart Line Links

    Shopify’s latest checkout function update adds cost modeling to `cart.deliverableLine` inputs and ties them directly to their originating cart lines. Learn what this means for developers, how to adjust your code, and the best practices to stay compliant.

    November 13, 20264 min
    Case-Insensitive Market Metafields: What the 2027-01 Storefront API Change Means for Your Store

    Case-Insensitive Market Metafields: What the 2027-01 Storefront API Change Means for Your Store

    Shopify's Storefront API 2027-01 now matches Market.metafields keys case‑insensitively. Learn why this matters, who is affected, and how to update your apps and custom storefronts before the change breaks your logic.

    November 13, 20264 min