WWooshPayment docs
Store integration

Connecting Shopify in 2026 (Dev Dashboard + OAuth)

Step-by-step guide to connecting your Shopify store to WooshPayment after legacy Custom Apps were retired (Jan 1, 2026). Create a dev-app in the Dev Dashboard, give us Client ID + Secret, complete install via OAuth. ~3 minutes.

7 min read

Connecting Shopify in 2026

As of January 1, 2026, Shopify retired legacy Custom Apps for new stores: the button "Allow legacy custom app development" is still visible, but for a regular merchant account (not a dev store, not Plus, not partner store) clicking it does nothing.

The new flow is what Checkify uses too: the merchant creates a personal dev-app inside their own Shopify Dev Dashboard, gives us Client ID + Client Secret, and we run OAuth against THEIR admin to get the access token. ~3 minutes total.

Already connected your store with the old method (shpat_โ€ฆ token)? Your existing connection keeps working. This guide only matters if you're connecting a new store created in 2026, or re-connecting an existing store.

Prerequisites

  • Owner access or staff enabled to manage apps on your Shopify store
  • Your store domain (e.g. my-store.myshopify.com)
  • An active WooshPayment account

1. Open the Dev Dashboard inside Shopify

Shopify admin โ€” "App development" page: a single large card "Develop and manage apps in your Dev Dashboard" with the dark button "Build apps in Dev Dashboard" highlighted

  1. Go to https://my-store.myshopify.com/admin
  2. Click the โš™ Settings icon at the bottom-left (or , on the keyboard)
  3. In the left column, click Apps
  4. Top-right, click App development
  5. In the card Develop and manage apps in your Dev Dashboard, click the dark button Build apps in Dev Dashboard

The Shopify Dev Dashboard opens (in a new tab or overlay).

On Shopify merchant accounts created from 2026 onward you'll see ONLY the card "Develop and manage apps in your Dev Dashboard". Pre-2026 merchants still have a second card "Develop legacy custom apps" โ€” it's inert, clicking it no longer creates a Custom App. Always use the Dev Dashboard.

2. Create a new app in the Dev Dashboard

Shopify Dev Dashboard โ€” "Create an app" page with two side-by-side cards: on the left "Get started with the Shopify CLI tool" (dimmed), on the right "Get started from the Dev Dashboard" with the highlighted "App name" field filled with WooshPayment and a "Create" button

  1. Inside the Dev Dashboard, click the Create app button in the top-right
  2. You land on the dedicated "Create an app" page with two side-by-side cards:
    • Get started with the Shopify CLI tool (for advanced devs with the local Shopify CLI)
    • Get started from the Dev Dashboard (simpler, no CLI required) โ†’ pick this one
  3. In the App name field type WooshPayment (or any name you recognize)
  4. Click Create

You land on the newly-created app page. From the app sidebar you can access Monitoring, Logs, Versions, Settings.

3. Create a version: configure URLs and disable embed

Shopify Dev Dashboard โ€” dark-theme "Create version" page with the URLs section: "App URL" field filled, red banner with the "Embed app in Shopify admin" checkbox UNCHECKED

From the Versions section of the app, click Create version. A dedicated Create version page opens (not a tab โ€” a full page):

  1. URLs section โ†’ App URL: paste https://wooshpayment.com
  2. Right below, find the Embed app in Shopify admin checkbox โ€” it's checked by default. UNCHECK IT.
  3. Leave the Preferences URL field empty (optional)

Important: the App URL field must be https://wooshpayment.com, NOT the /auth/shopify/callback link. That link goes ONLY in the Redirect URL field (step 4). If you set the callback as the App URL, opening the app in Shopify shows the Missing required parameters error โ€” because Shopify opens the App URL without the OAuth parameters.

The Embed app in Shopify admin checkbox is CHECKED by default in the new Dev Dashboard. You must manually uncheck it before releasing the version, or the OAuth handshake fails (Shopify tries to embed WooshPayment inside the admin iframe and we're not an embedded app).

4. Configure access scopes

Shopify Dev Dashboard โ€” "Create version" page, "Access" section with the "Scopes" textarea filled comma-separated with all 8 scopes, "Redirect URL" textarea below

Scroll down to the Access section:

  1. Scopes: in the Dev Dashboard 2026 this is a single textarea with scopes separated by commas (not individual checkboxes). Paste exactly:

    read_orders,write_orders,read_checkouts,write_checkouts,read_products,read_customers,read_script_tags,write_script_tags

    These are the 8 scopes and what they do:

    Technical scopeWhat for
    read_ordersRead existing orders
    write_ordersCreate the order after payment confirmed
    read_checkoutsRead in-progress checkout session
    write_checkoutsUpdate the checkout session
    read_productsRead catalog, prices, variants
    read_customersAuto-fill address for known customers
    read_script_tagsVerify the script tag
    write_script_tagsInstall the script that intercepts the Checkout button
  2. Optional scopes: leave empty

  3. Use legacy install flow: leave UNCHECKED

  4. Redirect URL (at the bottom of the form, still inside the Access section): paste https://api.wooshpayment.com/auth/shopify/callback

5. Release the version

Shopify Dev Dashboard โ€” "Release this app version?" modal with optional "Version name" and "Version message" fields, "Release" button highlighted

  1. At the bottom-right of the Create version page, click the Release button
  2. The Release this app version? modal opens
  3. (Optional) Fill Version name and Version message โ€” you can leave both empty, Shopify auto-generates a name
  4. Click the Release button in the modal

Wait for the confirmation toast. The new version becomes Active.

6. Copy Client ID + Secret

Shopify Dev Dashboard โ€” Settings sidebar active, "Credentials" card with Client ID visible in cleartext and Secret masked with ๐Ÿ‘ Reveal and ๐Ÿ“‹ Copy icons plus a red "Rotate" button

From the app sidebar, click Settings:

  1. Find the Credentials card
  2. Client ID: copy the value (visible in full, ~32 chars) by clicking the ๐Ÿ“‹ icon on the right
  3. Secret: it's masked. Click the ๐Ÿ‘ icon to reveal it, then ๐Ÿ“‹ to copy it
    • If asked and you've already used it, click the Rotate button to generate a new one (the old one becomes invalid)

The Secret is shown in cleartext only after clicking ๐Ÿ‘ (current session). If you close the tab without copying it, you'll need to click Rotate to generate a new one โ€” the old one becomes invalid and all previous OAuth sessions are invalidated.

7. Paste into WooshPayment and complete install

Real screenshot of the WooshPayment dashboard โ€” onboarding wizard at the Platform โ€บ Shopify step, sub-step 3 with "Shopify domain", "Client ID" and "Client Secret" fields filled and the "Connect store" button

  1. Open https://wooshpayment.com/onboarding in another tab
  2. Step Platform โ†’ Shopify, scroll to sub-step 3 (Paste Client ID + Secret)
  3. Fill:
    • Shopify domain: my-store.myshopify.com
    • Client ID: the Client ID copied at step 6
    • Client Secret: the Secret copied at step 6
  4. Click Connect store

You're redirected to Shopify's Install app screen. You'll see a banner "This app hasn't been reviewed" โ€” that's normal for dev-apps not in the App Store.

  1. Click Install in the Shopify panel
  2. You return automatically to WooshPayment on the Brand step of the onboarding

What WooshPayment does at this point

  • ๐Ÿ” Stores Client ID + Secret encrypted (AES-256-GCM) on our DB
  • ๐Ÿ”„ Receives the OAuth token and stores it (always encrypted)
  • ๐Ÿ“œ Auto-installs the script tag on your active Shopify theme โ€” no theme.liquid editing needed
  • ๐ŸŒ Provisions your subdomain your-slug.wooshpayment.com (Vercel DNS + SSL)
  • โœจ Takes you to complete onboarding (brand, shipping, payments)

After setup, every Checkout click from a Shopify cart redirects to your branded checkout your-slug.wooshpayment.com/checkout/.... Orders paid through WooshPayment are created as real Shopify orders with payment_status: paid.

Troubleshooting

"Invalid Client ID or Secret"

Check in order:

  1. Did you click Release at step 5? Without a released version, OAuth won't start.
  2. Did you copy the Client ID in full? No spaces before/after.
  3. Is the Secret correct? If you closed the tab without copying it, go to Settings โ†’ Credentials โ†’ Rotate to generate a new one.

The "Embed app in Shopify admin" checkbox is CHECKED by default

Yes. In the new Dev Dashboard 2026 that checkbox is on by default. You must manually uncheck it before releasing the version, or OAuth fails (Shopify tries to embed WooshPayment in an iframe and we're not an embedded app).

Shopify says "Embed app must be enabled"

You left the Embed app in Shopify admin checkbox checked at step 3. Open Versions โ†’ Create version, uncheck it, release a new version, then click Connect store again in the WooshPayment dashboard.

I only see "App URL" and "Redirect URL" separately, there's no "Access" section

That's normal. In the Dev Dashboard 2026, Redirect URL lives at the bottom of the Create version form, inside the Access section, after the Scopes textarea โ€” it's not in a separate section.

The "Install" button on Shopify doesn't activate

Usually missing scopes in the Scopes textarea. Open Versions โ†’ Create version, check that all 8 scopes are in the textarea comma-separated, release again, repeat step 7.

I want to remove the app

  1. Go to Shopify Dev Dashboard โ†’ your WooshPayment app
  2. Settings sidebar โ†’ at the bottom, Delete app button

The token becomes invalid immediately, the script tag is removed from the theme, the WooshPayment integration goes into the "not connected" state.

Can I use the old method (shpat_ token) instead?

Only if your store was already set up for legacy Custom Apps before January 1, 2026 (dev store, partner store, transferred stores). For regular 2026 merchants the "Allow legacy custom app development" button is inert. The Dev Dashboard flow is the only one that works.


Need a hand? Open a support ticket or use the chat at the bottom-right of the dashboard.