Retrieve Enabled Payment Providers By API

Topic summary

Need to programmatically identify a store’s Cash on Delivery (COD) payment provider (paymentGatewayId, e.g., gid://shopify/PaymentGateway/…) to complete draft orders via GraphQL.

  • Current limitation: No public Shopify API exposes paymentGatewayId. It’s a Shopify-generated global ID not available via public endpoints.

  • Suggested workaround: Create/complete draft orders without specifying paymentGatewayId. Use financialStatus (paid/pending) and draftOrderComplete(paymentPending: true/false) to mark COD-like unpaid vs paid states.

  • Observed issue: Orders completed without a gateway appear as “manual,” while orders created with the COD gateway show “COD.” Screenshots provided illustrate the difference.

  • Operational impact: Merchant’s shipping software (Qapla) does not treat “manual” orders as COD, causing incorrect handling. Request made for any method to access the COD gateway ID; notes an internal GraphQL used by the Shopify UI.

  • Status: Unresolved. No confirmed method to retrieve the COD gateway ID via public APIs. Another participant inquires if a solution was found. Pending clarification/feature support from Shopify.

Summarized with AI on January 6. AI used: gpt-5.

Hey, did you ever figure this out? I’m running into a similar issue.

2 Likes