# Cannot translate payment gateways

**URL:** <https://community.shopify.dev/t/cannot-translate-payment-gateways/20364>\
**Category:** GraphQL Admin API Troubleshooting\
**Tags:** general-gql-troubles\
**Created:** [July 31, 2025, 10:01am UTC](https://community.shopify.dev/t/cannot-translate-payment-gateways/20364 "2025-07-31T10:01:16Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![David\_Arbias](https://sea1.discourse-cdn.com/shopifycommunity/user_avatar/community.shopify.dev/david_arbias/32/10827_2.png) [@David\_Arbias](https://community.shopify.dev/u/David_Arbias)\
**Post date:** [July 31, 2025, 10:01am UTC](https://community.shopify.dev/t/cannot-translate-payment-gateways/20364/1 "2025-07-31T10:01:16Z")

</div>

The query below is supposed to return the corresponding translation, but instead it returns nothing under translation, even though the resource gets translated in the admin panel.

For example “Bank Deposit” will be translated to “Depósito Bancário” in Portuguese, but nothing shows up here:

```gql
query TranslatePayment {
  translatableResource(resourceId: "gid://shopify/PaymentGateway/80760406169") {
    resourceId
    translatableContent {
      value
      locale
      key
    }
    translations(locale: "pt-BR") {
      key
      value
    }
  }
}

```

Result

```json
{
  "data": {
    "translatableResources": {
      "nodes": [
        {
          "resourceId": "gid://shopify/PaymentGateway/80760406169",
          "translations": [],
          "translatableContent": [
            {
              "key": "name",
              "value": "Cash on Delivery (COD)",
              "locale": "pt-BR"
            },
            {
              "key": "message",
              "value": "",
              "locale": "pt-BR"
            },
            {
              "key": "before_payment_instructions",
              "value": "",
              "locale": "pt-BR"
            }
          ]
        },
        {
          "resourceId": "gid://shopify/PaymentGateway/80760438937",
          "translations": [],
          "translatableContent": [
            {
              "key": "name",
              "value": "Bank Deposit",
              "locale": "pt-BR"
            },
            {
              "key": "message",
              "value": "",
              "locale": "pt-BR"
            },
            {
              "key": "before_payment_instructions",
              "value": "",
              "locale": "pt-BR"
            }
          ]
        },
        {
          "resourceId": "gid://shopify/PaymentGateway/80760471705",
          "translations": [],
          "translatableContent": [
            {
              "key": "name",
              "value": "Money Order",
              "locale": "pt-BR"
            },
            {
              "key": "message",
              "value": "",
              "locale": "pt-BR"
            },
            {
              "key": "before_payment_instructions",
              "value": "",
              "locale": "pt-BR"
            }
          ]
        },
        {
          "resourceId": "gid://shopify/PaymentGateway/86935371929",
          "translations": [],
          "translatableContent": [
            {
              "key": "name",
              "value": "Pix",
              "locale": "pt-BR"
            },
            {
              "key": "message",
              "value": "",
              "locale": "pt-BR"
            },
            {
              "key": "before_payment_instructions",
              "value": "",
              "locale": "pt-BR"
            }
          ]
        }
      ]
    }
  },
  "extensions": {
    "cost": {
      "requestedQueryCost": 29,
      "actualQueryCost": 8,
      "throttleStatus": {
        "maximumAvailable": 2000,
        "currentlyAvailable": 1992,
        "restoreRate": 100
      }
    }
  }
}

```

How do we get what users see when referring to “Bank Deposit” for example?

---

<div class="post-metadata">

**Author:** ![KyleG-Shopify](https://sea1.discourse-cdn.com/shopifycommunity/user_avatar/community.shopify.dev/kyleg-shopify/32/6799_2.png) [@KyleG-Shopify](https://community.shopify.dev/u/KyleG-Shopify)\
**Post date:** [July 31, 2025, 4:33pm UTC](https://community.shopify.dev/t/cannot-translate-payment-gateways/20364/2 "2025-07-31T16:33:22Z")

</div>

Hey @David_Arbias

The empty `translations` array indicates that no Portuguese translations have been created for these payment gateways yet. While the `translatableContent` shows `"locale": "pt-BR"`, those are the original English values being returned with your store’s default locale label.

What you’re seeing in the admin panel as “Depósito Bancário” is likely the built-in localization for standard payment method names, but these aren’t stored as translatable resources accessible through the GraphQL API.

To get the Portuguese translations, you’ll need to explicitly create them using the [`translationsRegister` mutation](https://shopify.dev/docs/api/admin-graphql/2025-07/mutations/translationsRegister) (or a translation app). Once those translations exist, they’ll appear in the `translations` array.

> **[Manage translations of merchant-provided content](https://shopify.dev/docs/apps/build/markets/manage-translated-content)**
>
> Create and update translations of a shop’s content to sell in multiple languages.

---

<div class="post-metadata">

**Author:** ![David\_Arbias](https://sea1.discourse-cdn.com/shopifycommunity/user_avatar/community.shopify.dev/david_arbias/32/10827_2.png) [@David\_Arbias](https://community.shopify.dev/u/David_Arbias)\
**Post date:** [August 3, 2025, 5:53am UTC](https://community.shopify.dev/t/cannot-translate-payment-gateways/20364/3 "2025-08-03T05:53:00Z")

</div>

Kinda sad, because our app allows customer to choose which payment methods they want to hide using a “Shopify Function” based on conditions and it’s not clear which payments get translated and what translations they get.

So far it seems these payment names get translated:

- Money order
- Bank Deposit
- COD

---

<div class="post-metadata">

**Author:** ![KyleG-Shopify](https://sea1.discourse-cdn.com/shopifycommunity/user_avatar/community.shopify.dev/kyleg-shopify/32/6799_2.png) [@KyleG-Shopify](https://community.shopify.dev/u/KyleG-Shopify)\
**Post date:** [August 5, 2025, 12:56pm UTC](https://community.shopify.dev/t/cannot-translate-payment-gateways/20364/4 "2025-08-05T12:56:20Z")

</div>

Hey David,

To make sure I understand this properly, in your app UI, you are pulling in the payment options but not all of them are localized for the merchants using your app (understandably confusing if so).

Are the non translated fields from custom options configured or from specific gateways?

---

<div class="post-metadata">

**Author:** ![KyleG-Shopify](https://sea1.discourse-cdn.com/shopifycommunity/user_avatar/community.shopify.dev/kyleg-shopify/32/6799_2.png) [@KyleG-Shopify](https://community.shopify.dev/u/KyleG-Shopify)\
**Post date:** [August 12, 2025, 11:56am UTC](https://community.shopify.dev/t/cannot-translate-payment-gateways/20364/5 "2025-08-12T11:56:34Z")

</div>

Hey David, are you still needing further help here?

---

<div class="post-metadata">

**Author:** ![David\_Arbias](https://sea1.discourse-cdn.com/shopifycommunity/user_avatar/community.shopify.dev/david_arbias/32/10827_2.png) [@David\_Arbias](https://community.shopify.dev/u/David_Arbias)\
**Post date:** [August 12, 2025, 12:19pm UTC](https://community.shopify.dev/t/cannot-translate-payment-gateways/20364/6 "2025-08-12T12:19:17Z")

</div>

Oh yes I forgot to reply.

The non translated fields all come from this part of the dashboard under “Manual payment methods”, it seems Shopify automatically translates Bank Deposit, Money order and cash on delivery, using the store checkout language.

We’ve managed to find the translation for the 2 most popular languages, but if the store is from a country that we don’t know the translation, we won’t be able to match it.

 ![Screenshot 4](https://global.discourse-cdn.com/shopifycommunity/original/2X/9/91544c3f2d716bebadb2e483203cddadc5cff555.png)

For example, if the user chooses “Bank deposit” in our app, but his checkout shows the french translation, we won’t be able to match it using Shopify functions. We’re also not able to know which payment method names are available to the user.

---

<div class="post-metadata">

**Author:** ![KyleG-Shopify](https://sea1.discourse-cdn.com/shopifycommunity/user_avatar/community.shopify.dev/kyleg-shopify/32/6799_2.png) [@KyleG-Shopify](https://community.shopify.dev/u/KyleG-Shopify)\
**Post date:** [August 13, 2025, 6:02pm UTC](https://community.shopify.dev/t/cannot-translate-payment-gateways/20364/7 "2025-08-13T18:02:26Z")

</div>

Thanks for sharing that David. This gives more clarity in to what’s happening.

The issue here looks to be that the standard (default methods) are translated because they are available to any store to select. However, the custom values added, would need to be translated first.

Would it work in your payment customization function, to target operations using the ID field rather than trying to match translated names?

Additionally, if you need to provide custom text when renaming manual methods, you can supply your own translations following our [localization guidance for functions](https://shopify.dev/docs/apps/build/functions/localization-practices-shopify-functions#providing-translated-content).
