Jul 09, 2026

How to Send Shopify Order Notifications on WhatsApp (2026 Guide)

Wire Shopify's order webhooks to approved WhatsApp templates, from orders/create through fulfillments/create, and learn which messages actually reach US shoppers.

Send bulk WhatsApp messages the safe way
Import a CSV, personalize each message, and broadcast on the official WhatsApp Business API. Free tier: 500 messages a month.
Start free →

Sending Shopify order notifications on WhatsApp takes three things: a WhatsApp Business Account, an approved utility template for each order event, and a subscription to the right Shopify webhook. When Shopify fires orders/create, your integration reads the payload, fills the template variables with the order number and total, and posts to Meta's Graph API. The message lands in seconds. Order, payment, shipping, and delivery messages all deliver to US shoppers. Promotional messages do not, and that distinction is where most setups fall over.

This guide covers the whole path, including the parts the Shopify App Store listings skip. If you want the platform-level overview of the three ways to connect the two systems, the Shopify WhatsApp integration page compares them side by side.

What you need before you send anything

You cannot send business messages from the free WhatsApp Business phone app. It has no public API, so nothing can automate it, and Shopify cannot reach it. Every route runs through a WhatsApp Business Account, or WABA, on the WhatsApp Business Platform. Create one in Meta Business Manager, register a phone number to it, and get your display name approved.

Pick that phone number carefully. Registering a number to the platform removes it from the WhatsApp Business app, and the chat history that lived there does not come with it. Most merchants use a fresh number for exactly this reason.

You also need business verification if you plan to grow. New business portfolios start in the lowest messaging tier, capped at 250 unique customers in any rolling 24 hours. Verifying the business, or delivering templates to 2,000 unique numbers outside the service window over 30 days at a high quality rating, moves you up. Above that, tiers advance automatically when you use at least half your limit within seven days. A store doing 40 orders a day never notices. A store doing 400 hits the ceiling on a Monday.

Which Shopify webhooks to subscribe to

Shopify posts a JSON payload to an HTTPS endpoint you nominate every time something happens. Four topics carry everything a customer wants to hear about:

Webhook topicFires whenMessage to send
orders/createAn order is createdOrder confirmation with number and total
orders/paidAn order is paidPayment received, useful for bank transfer and COD flows
orders/fulfilledAn order is fulfilledYour order is on its way
fulfillments/createA fulfillment is createdCarrier and tracking number, the highest-value message of the set

Verify the HMAC signature on every payload before you act on it. Shopify signs each request, and an unverified endpoint is an open invitation to send messages to whoever posts at it. This is basic, and it is skipped constantly.

Meta's own developer blog demonstrates the pattern with orders/create and a template named order_confirmation, posting to the Graph API messages endpoint for your WABA. That is the entire mechanism. Everything else is error handling.

Getting your templates approved

WhatsApp does not let a business open a conversation with free-form text. You send a template, Meta reviews it, and Meta assigns it a category. That assignment, not the one you requested, decides both the price and the deliverability. A template that reads like a receipt gets classified utility. A template with a discount code in it gets reclassified marketing, no matter what you called it.

Write one template per event and keep them clean:

  • Order confirmation: order number, item count, total, expected ship window. No upsell.
  • Payment received: amount, method, order reference.
  • Shipped: carrier, tracking number, tracking link.
  • Out for delivery: date, and a way to reply with a delivery instruction.

Resist the temptation to append "and here's 10% off your next order" to the shipping template. It is the single most common way merchants turn a deliverable utility message into an undeliverable marketing one. A WABA holds a maximum of 250 templates, so you have room to keep them separate.

Can I send abandoned cart messages on WhatsApp?

Not to a US shopper, not as a cold template. An abandoned cart reminder is promotional re-engagement, so Meta categorizes it as marketing, and Meta has not delivered marketing-category templates to United States phone numbers since April 1, 2025. Through the Cloud API the send fails with error 131049. Senders on Twilio see the same failure as error 63049. Meta has announced no date for lifting the pause.

This matters because cart recovery is the headline feature on nearly every WhatsApp app in the Shopify App Store. Those apps are not lying, they are mostly built for merchants selling into India, Brazil, Indonesia, and the Gulf, where WhatsApp marketing templates deliver normally and cart recovery genuinely works. Install the same app on a Portland storefront and the cart flow quietly does nothing.

There are two legitimate ways to recover a cart on WhatsApp in the US. The first is inside the 24-hour customer service window: if the shopper messaged you first, you can send free-form text, images, and links for 24 hours at no message cost. The second is the free entry point. A shopper who taps a click-to-WhatsApp ad or a WhatsApp button on your Facebook Page opens a 72-hour window in which every message, both directions, is free. Both are compliant and both work today.

Where the abandoned checkout data actually lives

Worth knowing even if you only message inside a window: Shopify has no dedicated abandoned-cart webhook. Abandoned checkouts are read from the Admin API, which retains the last 90 days. Shopify's own abandoned-checkout automation offers send delays of 1, 6, 10, or 24 hours, with 10 hours as the default. If you want your own timing, subscribe to checkouts/create and checkouts/update, start a timer when contact information appears, and cancel it if a matching orders/create arrives.

What Meta charges you for this

Since July 1, 2025 Meta bills per message, and only when a template message is actually delivered. The rate depends on the template's category and the recipient's country calling code. Meta does not print those dollar figures in its developer documentation. It publishes them in a downloadable rate card and an interactive pricing tool on the WhatsApp Business site, and it revises them, so pull your own current card rather than trusting a number you read in a blog post.

Several things cost nothing at all, and they are easy to miss when you are budgeting:

  • Every non-template message you send inside an open 24-hour customer service window.
  • A utility template that is delivered while that window is already open. The identical template sent cold is billed.
  • Every message, in both directions, for 72 hours after a conversation starts from a click-to-WhatsApp ad or a Page call-to-action.

That third rule is why the sequencing matters. A shipping notification sent right after a customer asks "where is my order" costs nothing. The same notification pushed out on your schedule is billed. If you have a support-heavy store, a surprising share of your transactional messaging can land in free windows.

Handling failures like you mean it

Meta posts status callbacks back to your webhook: sent, delivered, read, failed. Store them. A failed send without its error code is a mystery you will never solve, and the codes are specific enough to act on. 131049 means you tried to send marketing to a US number. Other failures point at an invalid phone number, an unapproved template, or a messaging tier you have exhausted for the day.

Build a simple daily check on delivery rate by template. When one template's delivery rate falls while the others hold steady, that template got reclassified or your quality rating slipped. The broader diagnosis lives in our guide to WhatsApp messages not delivered.

The order data flowing through these webhooks does not stop at the customer, either. The same payouts show up in your bookkeeping at the end of the month, where plenty of merchants still hand-key figures off a PDF statement instead of turning that statement into a clean spreadsheet before reconciling. Automating the message and then re-typing the money is a strange place to stop.

A working setup, start to finish

Put together, a Shopify store that messages well on WhatsApp looks like this. A WABA with a verified business and a dedicated number. Four approved utility templates, none of them carrying an offer. Webhook subscriptions on orders/create, orders/paid, orders/fulfilled, and fulfillments/create, each verifying the HMAC signature. A send path that posts to the Graph API and logs the message ID. A callback handler that records delivered, read, and failed with the error code attached.

For promotions, click-to-WhatsApp ads rather than marketing templates, because that is the channel Meta actually leaves open to US businesses. For support, replies inside the free 24-hour window, where you can send whatever you like at no cost.

That setup is unglamorous and it works. It also survives the next policy change, because everything in it sits on the categories Meta treats as legitimate business communication rather than on the ones it is actively throttling. If you would rather not build the webhook plumbing yourself, WaBulkSend maps Shopify events to approved templates, schedules the sends, throttles them to protect your quality rating, and shows you delivery and read rates per campaign. Start with the Shopify WhatsApp integration overview, or read WhatsApp Business API pricing to understand the two-layer bill before you commit.