How to Get List of Configured Payment Gateways via Admin API?

Context

I’m building a Shopify app that syncs orders to an accounting system (Zoho Books). Part of the setup requires merchants to map their Shopify payment methods to accounting payment modes/bank accounts.

The Challenge

I need to show merchants a list of their configured payment gateways so they can map each one to the corresponding accounting entry. However, I can’t find a way to fetch this list via the Admin API.

What I Need

A list of payment gateway names that will appear in order.payment_gateway_names[], for example:

  • “Cash on Delivery (COD)”

  • “Shopify Payments”

  • “PayPal Express Checkout”

  • “Stripe”

  • etc.

What I’ve Tried

:cross_mark: GraphQL Admin API - No Direct Query

query {
  shop {

    paymentSettings {

      supportedDigitalWallets  # Only returns APPLE_PAY, GOOGLE_PAY, SHOP_PAY

    }

  }

}

This only provides digital wallets, not all configured payment providers.

:cross_mark: Payment Customizations API

Can hide/move payment methods, but doesn’t provide a list of available gateways.

:white_check_mark: Historical Orders (Works, but with limitations)

query {
  orders(first: 250, reverse: true) {

    edges {

      node {

        paymentGatewayNames

      }

    }

  }

}

This works by extracting unique payment gateway names from past orders, but it has issues:

Limitations:

  1. Doesn’t work for new stores - Merchants who just installed the app and haven’t received orders yet can’t complete setup

  2. May miss payment methods - If a merchant configured a new payment gateway recently but hasn’t received orders with it, it won’t appear

  3. Requires merchant to wait - They can’t fully configure the app until they receive at least one order with each payment method

My Current Workaround

I’m using a hybrid approach:

  1. Query historical orders to extract payment_gateway_names

  2. Fetch digital wallets from shop.paymentSettings.supportedDigitalWallets

  3. Provide a static list of common payment methods

  4. Allow manual entry for unlisted methods

But this feels hacky and creates poor UX for new merchants.

Questions

Primary Question:

Is there a supported API endpoint (GraphQL or REST) to fetch the list of currently configured/enabled payment providers for a shop?

Similar to how WooCommerce exposes WC()->payment_gateways()->payment_gateways(), I’m looking for Shopify’s equivalent.

Secondary Questions:

  1. If no direct API exists, what’s the recommended approach for apps needing this information?

  2. Is this a common pain point? Would this be a good feature request for the Admin API?

  3. Are there any undocumented queries or alternative approaches I’m missing?

Use Case Details

  • App Type: Public Shopify app for accounting integration

  • Scopes: read_orders, read_payment_customizations

  • API Version: Latest (2024-10)

  • Goal: Pre-populate payment method mapping during initial app setup, even for stores with zero orders

Why This Matters

Many Shopify apps (accounting, ERP, analytics) need to map payment methods to external systems. Without a reliable way to discover configured payment gateways upfront, merchants face:

  • Incomplete setup experience

  • Having to revisit configuration after each new payment method

  • Manual data entry when automatic discovery should be possible


Any guidance would be greatly appreciated! :folded_hands:

Hello @Bhanuvardhanreddy

There is no supported Shopify Admin API endpoint (GraphQL or REST) that allows you to directly fetch the list of currently configured or enabled payment providers for a shop. This is a known limitation of the Shopify platform.

The most common workaround is to query a sample of orders and aggregate the paymentGatewayNames field to infer which gateways have been used.
This does not guarantee a complete list, especially for new stores or stores with unused gateways.

You can aggregate the results to build a list, but this only includes gateways that have been used.

Example: Aggregating from Orders

query GetOrderPaymentGatewayNames {
   orders(first: 50) {
     edges {
       node {
         paymentGatewayNames
   }
  }
 }
}

@Bhanuvardhanreddy Shopify doesn’t give a direct API endpoint to pull all payment gateways the store has set up. The only reliable way is to read the payment names from actual orders using order.payment_gateway_names. That’s why you couldn’t find a “gateway list” API, it doesn’t exist.

ou’re not missing anything — this isn’t solvable cleanly via GraphQL either.

Shopify does not expose a supported Admin API (REST or GraphQL) to fetch a complete list of configured/enabled payment gateways for a shop.
This is a known platform limitation.

A few clarifications that might help others reading this thread:

  • shop.paymentSettings.supportedDigitalWallets (GraphQL) only returns wallets like APPLE_PAY / GOOGLE_PAY / SHOP_PAY — it does not represent actual payment gateways that appear in order.payment_gateway_names.

  • Payment Customizations APIs allow display/logic changes but don’t expose a gateway list.

  • The only practical workaround today is still to infer from order history by aggregating order.paymentGatewayNames.

Example (GraphQL):

query {
  orders(first: 50) {
    edges {
      node {
        paymentGatewayNames
      }
    }
  }
}

As mentioned, this has limitations:

  • New stores won’t return anything

  • Unused but configured gateways won’t appear

Most apps I’ve seen end up using a hybrid approach:

  • pre-fill from historical orders where available

  • allow merchants to manually add/map missing gateways during setup

Unfortunately, until Shopify exposes a proper “configured gateways” endpoint, there’s no fully reliable API-only solution.