CyberFreezeDev Loading
  1. Home
  2. Integrations
  3. Shopify

Shopify order integrations: WhatsApp, payments, books and stock

Shopify order events confirm COD orders, send tracking, match payments, book sales and correct stock.

3D render of a composer tablet sending one post through a hub to four account screens

At a glance

Shopify integration
Order topics
orders/create, orders/paid, orders/cancelled, orders/fulfilled
Other topics
fulfillments/create, fulfillments/update, refunds/create, inventory_levels/update
Verification
X-Shopify-Hmac-SHA256 over the raw body with the app's client secret
Deduplication
X-Shopify-Webhook-Id; order by X-Shopify-Triggered-At or updated_at
Delivery rule
200 within 5 seconds; 8 retries over 4 hours
Admin API
GraphQL Admin API (REST Admin API is legacy since October 2024)

What a Shopify integration does for a store

Shopify runs the storefront and checkout. The integration handles what happens after Place order.

The integration listens to store webhooks and acts on each: COD confirmation, tracking links, refunds into the books and stock corrections.

Read more about What a Shopify integration does for a store

A Shopify integration with WhatsApp, payments and your books listens to the store's webhooks and acts on each one. A new cash on delivery order asks the customer to confirm on WhatsApp before it is packed. A fulfilment sends the tracking link. A refund updates the books. A stock change from a sale on another channel corrects the Shopify count.

If you need the store itself built or fixed, that is web engineering. If you need campaigns to bring traffic, that is growth marketing. This page is the plumbing between the store and everything else, and it is the work behind most of what we do for retail and e-commerce brands.

Typical flows we build

COD confirmation on WhatsApp

COD customers confirm, change address or cancel on WhatsApp before the order is packed.

Read more about COD confirmation on WhatsApp

On orders/create with a cash on delivery gateway, the customer gets a WhatsApp template with Confirm, Change address and Cancel buttons. The reply is written back to the order as a tag or note, and unconfirmed orders are held before dispatch. Built on our WhatsApp integration and WhatsApp CRM.

Order and delivery updates

Tracking number and courier link sent as a template when an order ships.

Read more about Order and delivery updates

fulfillments/create and fulfillments/update send the tracking number and courier link as a utility template, which removes most "where is my order" chats.

Payments matched to orders

Order ids passed to the gateway so Razorpay settlements break down by order.

Read more about Payments matched to orders

Shopify order ids are passed through to the payment gateway so a Razorpay settlement can be broken down to the orders, refunds and fees inside it.

Sales and refunds to the books

Paid orders and refunds become TallyPrime entries with GST split per line.

Read more about Sales and refunds to the books

orders/paid and refunds/create become sales and credit note entries in TallyPrime through our Tally integration, with the GST split per line, ready for your accountant to review.

Stock across channels

One stock count across website, marketplace and shop, with mismatches sent to a person.

Read more about Stock across channels

When the same product sells on the website, a marketplace or in a physical shop, inventory_levels/update and the GraphQL Admin API keep one count. Disagreements go to a short list for a person rather than being overwritten.

How each order event is handled

  1. 01 Subscribe with only the fields needed

    Payloads carry only the customer fields each flow actually uses.

    Read more about Subscribe with only the fields needed

    Subscriptions are declared in the app config or through the GraphQL Admin API, with include_fields and filters so payloads carry no more customer data than the flow uses. See about webhooks.

  2. 02 Verify the HMAC

    Every delivery's HMAC signature is checked, and mismatches are rejected.

    Read more about Verify the HMAC

    Each delivery carries X-Shopify-Hmac-SHA256, a base64 HMAC SHA256 of the raw body keyed with the app's client secret. Mismatches are rejected. See verify deliveries.

  3. 03 Return 200 within 5 seconds

    Store the payload, answer at once, and do the work in a queue.

    Read more about Return 200 within 5 seconds

    Shopify allows one second to connect and five for the whole request. We store the payload, answer at once and do the work in a queue.

  4. 04 Process once, then reconcile

    Duplicates skipped by webhook id, plus a scheduled query for orders changed since the last run.

    Read more about Process once, then reconcile

    Duplicates are skipped by X-Shopify-Webhook-Id. Because Shopify does not promise that every delivery arrives, a scheduled job also queries orders changed since the last run, as Shopify recommends.

Shopify's rules and limits

Retries and deletion

After 8 failed deliveries a subscription can be deleted, so we monitor and re-create it.

Read more about Retries and deletion

If Shopify gets errors, it retries 8 times over 4 hours. After 8 consecutive failures, a subscription created through the Admin API is deleted. We monitor for that and re-create it.

Protected customer data

Names, addresses and contacts are requested field by field; unapproved fields arrive redacted.

Read more about Protected customer data

Orders and customer events count as protected customer data. Names, addresses, emails and phone numbers must be requested field by field, and unapproved fields arrive redacted. See protected customer data.

GraphQL first

Built on the GraphQL Admin API, since REST is legacy and new public apps need GraphQL.

Read more about GraphQL first

Shopify marked the REST Admin API legacy on 1 October 2024 and new public apps must use GraphQL. We build on the GraphQL Admin API so the integration does not need a rewrite later.

Custom apps for one store

New custom apps are made in Shopify's Dev Dashboard and approved by the store owner.

Read more about Custom apps for one store

Since January 2026, new custom apps are created in Shopify's Dev Dashboard rather than in the store admin. The store owner, or staff with app development permission, approves it.

Questions

Is this a Shopify App Store app?

No. We build a custom app installed only on your store, owned by your Shopify account. We are not a Shopify partner listing apps for sale.

Can Shopify orders go into Tally automatically?

Yes. Paid orders and refunds are turned into TallyPrime vouchers with the GST split, and your accountant reviews them in Tally. See Tally integration.

What do you need from us?

The store owner's approval for a custom app with the scopes we list, access to your WhatsApp Business Account if WhatsApp is involved, and API keys for the payment gateway and courier, all in your company's name.

Will it slow down our checkout?

No. Webhooks fire after Shopify has recorded the event, and our handlers answer within Shopify's time limit and do the work afterwards.

Do you work with WooCommerce or other platforms?

The same patterns apply to any store with webhooks and an API. Ask us with the platform name.

Last updated