In our app, we also rely on data from currencySettings, in particular the manualRate field.
What’s a bit unclear to me is how apps are expected to work with this field in cases where currencySettings is returned as null. For a noticeable number of stores, there doesn’t seem to be a direct or indirect way to obtain this information for certain markets.
P.S. I analyzed around 600 client stores.
Out of those, 138 stores have at least one market where currencySettings is null.
Additionally, 41 stores have only a single market, and that market still returns currencySettings = null, which suggests this is not related to market inheritance.
For example, for the same market ID:
== 2025-07 response ==
{
"data": {
"markets": {
"edges": [
{
"node": {
"id": "gid://shopify/Market/xxx",
"name": "Egypt",
"status": "ACTIVE",
"conditions": {
"conditionTypes": [
"REGION"
]
},
"currencySettings": null,
"catalogs": {
"nodes": [
{
"id": "gid://shopify/MarketCatalog/yyy",
"status": "ACTIVE"
}
]
},
"regions": {
"nodes": [
{
"code": "EG"
}
]
}
}
}
],
"pageInfo": {
"hasNextPage": false,
"endCursor": null
}
}
}
}
== 2025-01 response ==
{
"data": {
"markets": {
"edges": [
{
"node": {
"id": "gid://shopify/Market/xxx",
"name": "Egypt",
"currencySettings": {
"baseCurrency": {
"enabled": true,
"currencyCode": "EGP"
},
"localCurrencies": false
},
"catalogs": {
"nodes": [
{
"id": "gid://shopify/MarketCatalog/yyy",
"status": "ACTIVE"
}
]
},
"regions": {
"nodes": [
{
"code": "EG"
}
]
}
}
}
],
"pageInfo": {
"hasNextPage": false,
"endCursor": null
}
}
}
}
Additionally, based on the same analysis, all markets that return currencySettings = null in 2025-07 were returning a currencySettings object with the same values in 2025-01:
{
"baseCurrency": {
"enabled": true,
"currencyCode": "XXX"
},
"localCurrencies": false
}
In all observed cases:
baseCurrency.enabled was always true
currencyCode always matched the shop’s base currency
localCurrencies was always false
It would be very helpful to confirm whether, when currencySettings is returned as null, these values can be safely assumed implicitly, and whether this also implies that a manual exchange rate is never available for such markets.