API for shopify payments

Is there an open API where we can plug into another system so in the other system we can take credit cards and pass that back to shopify payments to charge/process the shopify order?

Hi @niravs

I understand exactly what you’re asking — you want to take credit card payments in an external system and then charge the Shopify order via Shopify Payments. Here’s how it works:


Step 1: Shopify Payments API Limitations

  • Shopify Payments does not provide an open API that allows external systems to directly submit credit card transactions.

  • This is a PCI compliance restriction — Shopify Payments can only process payments through Shopify’s checkout.

In other words, you cannot directly charge Shopify Payments from another system outside Shopify.


Step 2: Recommended Workarounds

Option A: Use Shopify’s Storefront API

  • You can create orders and checkout sessions via the Storefront API or Checkout API.

  • Customers are redirected to Shopify’s hosted checkout to enter payment details securely.

  • Example workflow:

    1. External system creates a checkout via Storefront API.

    2. Returns a checkout URL to the external system.

    3. Customer completes payment through Shopify’s secure checkout.

This keeps payments PCI-compliant while integrating with your external system.

Option B: Use a third-party payment gateway

  • Some gateways (like Stripe) have APIs that allow external payment capture.

  • You could:

    1. Charge the customer in the external system using Stripe API.

    2. Create a manual order in Shopify using the Admin API.

  • Limitation: Shopify Payments itself cannot be used here; you’d be using Stripe outside Shopify.

Option C: Shopify POS or Multipass (for Shopify Plus)

  • Shopify Plus allows some Multipass and custom checkout solutions, but Shopify Basic/Standard cannot take external API payments directly into Shopify Payments.

:light_bulb: Summary:

  • Shopify Payments cannot be charged directly via an external API.

  • Use Storefront/Checkout API for integration with your external system while keeping Shopify Payments.

  • If you want fully external payments, use another gateway and create orders in Shopify via the Admin API.

Thank you @Asiko_Dev for your response. Another option, can we an API in the ERP to generate an invoice for the shopify order so that the customer gets a shopify invoice to pay with credit card but the invoice is generated from a link in the ERP?

Hi! @niravs

Yes, this is possible, but with some important details. Shopify doesn’t let external systems directly process payments through Shopify Payments, so an ERP can’t just generate a Shopify invoice that bypasses Shopify’s checkout. However, you can achieve your goal using Shopify’s APIs and workflow like this:


Step 1: Create a Shopify Draft Order via API

  • Your ERP can call Shopify’s Admin API to create a draft order.

  • Example: the ERP sends the order details (products, quantities, customer info) to Shopify.

  • Shopify generates a draft order, which you can mark as pending payment.


Step 2: Send the Shopify Invoice Link to the Customer

  • The draft order comes with a checkout/payment URL that Shopify hosts.

  • You can send this URL to the customer via email, SMS, or even through your ERP.

  • The customer clicks the link and pays directly via Shopify Payments (credit card, etc.).


Step 3: ERP Integration

  • After payment, Shopify will notify via webhooks (like order/paid) so your ERP can record the payment and update inventory.

  • This keeps your ERP and Shopify in sync without manually creating orders or invoices.


:light_bulb: Key Notes:

  • You cannot charge Shopify Payments directly from the ERP — payments must go through Shopify checkout.

  • Using the Draft Order + Invoice link workflow is the standard solution for integrating external systems with Shopify payments.

  • This is fully supported on Shopify Basic and up.


If you want, I can write a concrete example workflow showing exactly how your ERP can create a Shopify invoice link and handle payment notifications automatically — ready for implementation.

Hi @niravs,

Yes, this is possible, but there are some important details to know. Shopify doesn’t allow external systems to directly process payments through Shopify Payments, so an ERP can’t bypass Shopify’s checkout. However, you can integrate your ERP and Shopify in a way that works well.

Here’s a recommended workflow:

Step 1: Create a Draft Order via Shopify API

  • Your ERP can call Shopify’s Admin API to create a draft order.

  • Send the order details (products, quantities, customer info) to Shopify.

  • Shopify generates a draft order, which you can mark as pending payment.

Step 2: Send the Invoice Link to the Customer

  • The draft order includes a checkout/payment URL hosted by Shopify.

  • You can send this link via email, SMS, or through your ERP.

  • The customer uses this link to complete payment securely via Shopify Payments.

Step 3: Keep ERP and Shopify in Sync

  • After payment, Shopify sends a webhook notification (like order/paid).

  • Your ERP can use this to record the payment and update inventory automatically.

Key Notes:

  • Payments must always go through Shopify checkout; the ERP cannot charge Shopify Payments directly.

  • Using draft orders + invoice links is the standard and supported way to integrate external systems.

  • This workflow works on Shopify Basic and higher plans.

If helpful, I can provide a step-by-step example workflow showing exactly how the ERP can generate the Shopify invoice link and handle payment notifications automatically.