Skip to content

Industry

WhatsApp API for logistics and courier companies: pickups, NDR and proof of delivery

For couriers, 3PLs and last-mile fleets: API-triggered shipment alerts, location requests, failed-delivery (NDR) rescheduling, COD amount reminders and proof of delivery on WhatsApp.

By Broadchat teamPublished 8 min read

हिन्दी में पढ़ें

The problems WhatsApp solves for logistics, courier and last-mile delivery

  • Failed deliveries cost a second trip

    Customer not home, wrong landmark, phone switched off: every failed first attempt is a re-attempt or a return to origin, paid for by you or your shipper.

  • Riders waste time finding the door

    Addresses like 'near the temple, behind the blue gate' send riders in circles. Calling each customer from the bike is slow and unsafe.

  • Call centres answer 'where is my parcel?' all day

    Most inbound calls ask for a status your system already knows. Each call costs agent time and still leaves the customer unsure.

  • COD cash is not ready at the door

    Riders wait while the customer finds change or an ATM, or the customer refuses because they forgot the amount. Each minute at the door cuts the number of drops per shift.

  • Volumes spike without warning

    Sale days and festive weeks multiply shipments. Any notification system has to keep up, and on WhatsApp that means planning for messaging limits and throughput in advance.

What WhatsApp changes for a courier

The WhatsApp API for logistics lets your tracking system message the receiver at every status that matters, and lets the receiver answer back: share a location pin, pick a new delivery day after a failed attempt, or ask a question that lands with your support team. Couriers, 3PLs, hyperlocal fleets and in-house delivery teams of large retailers use it to cut re-attempts and 'where is my parcel?' calls. If you are the online store rather than the carrier, the order status notifications use case is written for you.

Shipment alerts are utility message templates, sent by API from your own system. Read what the WhatsApp Business API is if you are evaluating it for the first time.

Volume, limits and throughput

Logistics is a volume business, so two Meta limits matter more here than in most industries. The messaging limit caps how many unique people your business portfolio can start conversations with in a rolling 24 hours: 250, then 2,000, 10,000, 100,000 and unlimited. Business verification is one path to 2,000, and after that the tier rises automatically when quality is high and you use at least half of your current limit. Throughput is 80 messages per second per number by default, and Meta can raise it up to 1,000 per second for numbers on the unlimited tier with good quality. Numbers connected through coexistence with the WhatsApp Business app are fixed at 20 per second, so do not use one for shipment alerts. Our article on quality rating and messaging limits explains how to move up.

Message templates to get approved first

Template nameCategorySample
pickup_confirmedUtilityPickup confirmed for AWB {{1}} from {{2}}. Rider {{3}} will arrive between {{4}}. (7712 0094 5530, Rangoli Home Jaipur, Sunil, 2 and 5 pm)
out_for_delivery_windowUtilityHi {{1}}, your parcel AWB {{2}} from {{3}} is out for delivery today between {{4}}. Rider: {{5}}. (Priya, 7712 0094 5530, Rangoli Home, 1 and 4 pm, Sunil)
ndr_rescheduleUtilityWe could not deliver AWB {{1}} today ({{2}}). Choose a new delivery day below. (7712 0094 5530, customer not available)
cod_amount_due_todayUtilityYour parcel from {{1}} arrives today. Amount payable on delivery: {{2}}. Pay online instead: {{3}} (Rangoli Home, ₹1,180, pay.rangolihome.in/c/48219)
delivered_podUtilityDelivered: AWB {{1}} at {{2}}, received by {{3}}. Proof of delivery: {{4}} (7712 0094 5530, 2:42 pm on 16 Oct, Priya S., track.swiftship.in/pod/77120094)
rto_initiatedUtilityAWB {{1}} is being returned to {{2}} after {{3}} delivery attempts. Reply here if you still want it. (7712 0094 5530, Rangoli Home, 3)

Name the shipper in each template; receivers recognise the store, not the courier. Note that utility templates are charged by Meta even when the customer service window is open (since 1 Oct 2026).

The delivery chatbot

  1. Inbound Webhook from your TMS with AWB, status, receiver and window: Save Variable Value, then Send Message of type Template for that status.
  2. Match Keyword on the Share location button: Ask Question with message type Location Request; on reply, Save Variable Value for latitude and longitude and post them back with a workflow Webhook.
  3. Match Keyword on Reschedule or a failed-delivery button: Send Message with the next three dates as buttons, then post the choice back by webhook.
  4. Update address: AI Data Collector collects house number, street, landmark and PIN code in one exchange.
  5. New Message with anything else: AI Intent Detector separates status queries (answered from the saved AWB data) from complaints, which go to Assign to Agent.
  6. Working Hours for the support team; status replies stay automatic around the clock.

Broadchat features to use

  • Channels → All Channels: the channel card shows quality rating and messaging limit live from Meta, and gives you the channel access token for the Graph-compatible API.
  • Chatbots → Chatbots with the Inbound Webhook trigger, and Chatbots → Analytics for where receivers drop off.
  • Automations → Workflow with Webhook and Data Forwarder steps to return locations and reschedule choices to your TMS.
  • CRM → Live Chat, Department → Departments (one per hub or region) and CRM → Canned Replies for exceptions.
  • CRM → Bulk Campaign: Rocket Campaign splits a very large send across several numbers and templates; the API campaign endpoint lets your system trigger a saved campaign.

Illustrative ROI

Illustrative only; use your own data. A last-mile fleet delivers 20,000 parcels a month with 8% failed first attempts (1,600). If location sharing and reschedule-by-chat convert 300 of those into successful first attempts, and a re-attempt costs ₹45 in rider time and fuel, that saves ₹13,500 a month, before counting fewer return-to-origin parcels and fewer calls. Against that, count Meta's charges for every status template (several per parcel add up fast at this volume, so send only the statuses receivers care about), service replies beyond 1,000 free per number a month, and the platform subscription. The WhatsApp API pricing page shows how to estimate Meta's side.

For logistics software vendors

TMS and shipping-aggregator platforms can embed WhatsApp alerts for every shipper on their platform, under their own brand, through the partner program.

Use cases with example messages

  • Pickup scheduled and picked up

    Tell the shipper or sender when the pickup is booked and when it is done, with the AWB number, so they stop calling the hub.

    utility template

    1. Business: Pickup confirmed for AWB 7712 0094 5530 from Rangoli Home, Jaipur. Rider Sunil will arrive between 2 and 5 pm today.

    Example message
  • In-transit and out-for-delivery alerts

    Send status changes from your tracking system through the API. The out-for-delivery message carries the rider's first name and a delivery window, and buttons to share location or reschedule.

    utility template

    1. Business: Hi Priya, your parcel AWB 7712 0094 5530 from Rangoli Home is out for delivery today between 1 and 4 pm. Rider: Sunil. [Share location] [Reschedule]

    Example message
  • Location request before the drop

    When the customer taps Share location, the chatbot sends a location request; the pin is saved to the shipment and passed to the rider app by webhook.

    Reply inside the 24-hour window

    1. Business: Please share your delivery location so Sunil can find you. Tap the button below and choose Send your current location.

    Example message
  • Failed delivery (NDR) rescheduling

    After a failed attempt, the customer chooses a new date or corrects the address in the chat. The choice goes back to your system by webhook before the next day's run sheet is made.

    utility template

    1. Business: We could not deliver AWB 7712 0094 5530 today (customer not available). Choose a new delivery day: [Tomorrow] [Day after] [Update address]

    Example message
  • COD amount reminder

    On the morning of delivery, remind COD customers of the exact amount and offer a prepaid link from the shipper, so the rider's time at the door is shorter.

    utility template

    1. Business: Your parcel from Rangoli Home arrives today. Amount payable on delivery: ₹1,180. Keep exact change ready, or pay online now: pay.rangolihome.in/c/48219

    Example message
  • Proof of delivery

    After the drop, send the delivery time, receiver name and a link to the POD photo or signature, which settles most 'not received' disputes.

    utility template

    1. Business: Delivered: AWB 7712 0094 5530 at 2:42 pm on 16 Oct, received by Priya S. Proof of delivery: track.swiftship.in/pod/77120094

    Example message

A rollout playbook

  1. Map your status codes to templates

    List the tracking statuses that matter to the receiver (picked up, in transit, out for delivery, delivered, failed, RTO initiated) and write one utility template for each. Skip internal hub-to-hub scans.

  2. Send from your system by API

    Have your TMS call the channel's Graph-compatible API or an Inbound Webhook chatbot trigger on every status change; nobody should press a send button.

  3. Build the NDR and location chatbot

    Quick-reply taps on the out-for-delivery and failed-delivery templates start a chatbot that collects the location or new date and posts it back to your system.

  4. Plan capacity before peak season

    Check your portfolio's messaging limit and quality rating in the channel card weeks before a sale; tiers only rise when you use them well, so do not wait for the peak day.

  5. Put a human behind every exception

    Damaged parcels, wrong items and address disputes go to the support team in the shared inbox with the AWB and full chat history.

Compliance notes

  • Many receivers never opted in with you directly; agree with each shipper that their checkout collects consent for delivery updates on WhatsApp, and send only delivery-related messages to those numbers.
  • Keep every shipment template strictly about the shipment; adding offers from the shipper or your own services makes it marketing and needs marketing consent.
  • Mask the receiver's full address and phone number in messages to the sender, and do not share the rider's personal number; route calls through your support line.
  • Store location pins only for the delivery and delete them under your retention policy, in line with the purpose-limitation principle of India's Digital Personal Data Protection Act, 2023.
  • COD reminders must state only the amount due and how to pay; never ask for card details, OTPs or UPI PINs in the chat.
  • Volume spikes to people who did not expect messages lead to blocks and lower quality; a low quality rating can stop your tier from rising when you need it.

Sources

  1. Messaging limits — Meta for Developers, checked 12 October 2026
  2. Throughput — Meta for Developers, checked 12 October 2026
  3. Pricing on the WhatsApp Business Platform — Meta for Developers, checked 12 October 2026

Broadchat team · Product and partner success team

The people who build and support Broadchat, the white-label WhatsApp Business API platform. We write from what we see while onboarding partners and their clients on the official WhatsApp Cloud API, and we check every article against Meta's current documentation.

Last updated:

Frequently asked questions

Can I send WhatsApp updates to receivers who never messaged us?

Only with an approved template, and only if they agreed to get delivery updates on WhatsApp, usually through the shipper's checkout. Agree consent wording with each shipper before you switch on alerts for their parcels.

How many WhatsApp messages can we send per day?

It depends on your business portfolio's messaging limit, which counts unique people reached outside the 24-hour window: 250, 2,000, 10,000, 100,000 or unlimited. Throughput starts at 80 messages per second per number. Both rise with verification, usage and good quality.

Can the receiver share their location for the rider?

Yes. A chatbot step sends a location request, the customer taps once to share, and the pin is saved and passed to your rider app through a webhook.

Are delivery alerts free because they are utility messages?

No. Meta charges for utility templates per delivered message, including those sent while the customer service window is open since 1 Oct 2026. Utility is cheaper than marketing, but at courier volumes the total is significant, so send only useful statuses.

Do we need developers to set this up?

Some. Your tracking system must call the API or a webhook on status changes. The chatbot, templates and inbox are configured in the panel without code.

Questions about your WhatsApp setup?

Tell us what you are trying to do and we will point you to the right approach, even if it is not Broadchat.