DIDfarm
  • Numbers
  • Trunks
  • Messaging
  • Connect
  • Pricing
  • Coverage
  • Help
🇬🇧 EN 🇳🇱 NL 🇩🇪 DE 🇫🇷 FR 🇪🇸 ES 🇧🇷 PT 🇸🇦 AR 🇨🇳 ZH 🇯🇵 JA 🇮🇳 HI
Sign in Get a Number
← Help Center
On this page
Overview Template Types 1 — Order Confirmation 2 — Shipping Update 3 — Delivery Notification Rich Media Messages Delivery Webhooks Best Practices FAQ

Order & Shipping Notifications via WhatsApp

Messaging · 12 min read Notifications WhatsApp Templates
What this guide covers: How to send transactional order notifications via WhatsApp utility templates. Includes template examples for order confirmation, shipping updates, and delivery notifications with rich media (images, documents, buttons).

Overview

WhatsApp notifications outperform email and SMS for transactional messages. WhatsApp messages have 98% open rates (vs. 20% for email) and support rich content like images, PDFs, buttons, and tracking links — all within the messaging app your customers already use.

Use Meta's utility templates to send order confirmations, shipping updates, delivery notifications, and return confirmations without needing opt-in for each message type.

Template Types for E-Commerce

TemplateTriggerCategoryContent
order_confirmedAfter paymentUtilityOrder number, items, total, ETA
order_shippedCarrier pickupUtilityTracking number, carrier, link
order_deliveredDelivery confirmedUtilityConfirmation + review CTA
return_initiatedReturn requestUtilityReturn label, instructions
Template approval: Utility templates are typically approved within minutes. Create them in Meta Business Manager → WhatsApp Manager → Message Templates.

Step 1 — Order Confirmation

1Send order confirmation after successful payment

Template body example

TEMPLATE: ORDER_CONFIRMED
Hi 1,

Your order #2 has been confirmed!

Items: 3
Total: 4
Estimated delivery: 5

Track your order below.

Send via API

NODE.JS
await fetch('https://didfarm.com/api/v1/whatsapp/messages', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    account_id: 1,
    to: customer.phone,
    type: 'template',
    template: {
      name: 'order_confirmed',
      language: { code: 'en' },
      components: [{
        type: 'body',
        parameters: [
          { type: 'text', text: customer.firstName },
          { type: 'text', text: order.number },
          { type: 'text', text: order.itemsSummary },
          { type: 'text', text: `EUR ${order.total}` },
          { type: 'text', text: order.estimatedDelivery },
        ]
      }, {
        type: 'button',
        sub_type: 'url',
        index: 0,
        parameters: [{ type: 'text', text: order.trackingUrl }]
      }]
    }
  }),
});

Step 2 — Shipping Update

2Notify when the order ships
TEMPLATE: ORDER_SHIPPED
Your order #1 is on its way!

Carrier: 2
Tracking: 3

Tap below to track your package.
NODE.JS
await fetch('https://didfarm.com/api/v1/whatsapp/messages', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    account_id: 1,
    to: customer.phone,
    type: 'template',
    template: {
      name: 'order_shipped',
      language: { code: 'en' },
      components: [{
        type: 'body',
        parameters: [
          { type: 'text', text: order.number },
          { type: 'text', text: shipment.carrier },
          { type: 'text', text: shipment.trackingNumber },
        ]
      }, {
        type: 'button',
        sub_type: 'url',
        index: 0,
        parameters: [{ type: 'text', text: shipment.trackingUrl }]
      }]
    }
  }),
});

Step 3 — Delivery Notification

3Confirm delivery and invite a review
TEMPLATE: ORDER_DELIVERED
Hi 1, your order #2 has been delivered!

We hope you love it. Tap below to leave a review.
Conversion tip: Add a "Leave a Review" URL button to your delivery template. Post-delivery is the highest-intent moment for collecting reviews.

Rich Media Messages

WhatsApp templates support rich media headers. You can attach:

  • Images — product photos, order summary graphics
  • Documents — invoices, return labels (PDF)
  • Videos — product demos, unboxing guides
SEND TEMPLATE WITH IMAGE HEADER
components: [{
  type: 'header',
  parameters: [{
    type: 'image',
    image: {
      link: 'https://yourstore.com/images/order-12345-summary.png'
    }
  }]
}, {
  type: 'body',
  parameters: [
    { type: 'text', text: 'John' },
    { type: 'text', text: 'ORD-12345' },
  ]
}]

Delivery Webhooks

Track the delivery status of each notification by setting up a webhook. DIDfarm forwards Meta's status updates to your endpoint.

WEBHOOK PAYLOAD — DELIVERY STATUS
{
  "event": "whatsapp.status",
  "message_id": "wamid.abc123",
  "status": "delivered",          // sent | delivered | read | failed
  "timestamp": "2026-04-06T10:30:00Z",
  "recipient": "+31611398058",
  "errors": null
}
NODE.JS — WEBHOOK HANDLER
app.post('/webhooks/whatsapp-status', (req, res) => {
  const { message_id, status, recipient } = req.body;

  if (status === 'delivered') {
    console.log(`Message ${message_id} delivered to ${recipient}`);
    // Update order record with delivery confirmation
  }

  if (status === 'failed') {
    console.log(`Message ${message_id} failed, falling back to SMS`);
    // Send SMS fallback
  }

  res.sendStatus(200);
});

Best Practices

  • Send order confirmation immediately after payment — don't wait for processing
  • Keep messages concise — include only essential info (order number, ETA, tracking)
  • Use URL buttons for tracking links instead of embedding URLs in the body
  • Include an image header with product photos for higher engagement
  • Set up SMS fallback for customers who don't have WhatsApp
  • Respect quiet hours — don't send delivery notifications at 3 AM
  • Use the same WhatsApp number for all order messages to maintain conversation threading

FAQ

Do I need customer opt-in for order notifications?

Utility templates (order updates, shipping, delivery) are considered transactional and tied to an existing customer action. Meta allows these without explicit marketing opt-in. However, you should collect the customer's WhatsApp number at checkout with a clear indication that updates will be sent via WhatsApp.

How much do utility templates cost?

Pricing varies by country. In the EU, utility conversations cost approximately €0.02 per conversation (24-hour window). A conversation window opens when you send a template, and you can send multiple messages within it at no extra cost.

Can I send to customers who haven't messaged me first?

Yes — that's exactly what templates are for. You initiate the conversation with an approved template. The customer doesn't need to have messaged you first.

Start sending notifications

Connect your WhatsApp Business Account and create your first template.

WhatsApp Setup Guide →
© 2026 DIDfarm · didfarm.com
About Blog Partners Coverage API Docs Status Privacy Terms Cookies Help

We use essential cookies to make DIDfarm work. With your consent, we also use analytics cookies to improve our service. Cookie Policy