E-commerce automation
Integrate WhatsApp with WooCommerce
WooCommerce is the WordPress e-commerce plugin that turns any site into a complete store with cart, checkout and order management. Integrating WhatsApp with WooCommerce means firing automatic messages to the customer on every order status change, using the store's native webhooks. ZapZap API is an unofficial, instance-based WhatsApp API: you connect a real number by reading the QR Code and start sending messages programmatically, without depending on the official WhatsApp Business API. Communication is done over HTTP with authentication via the x-api-key and x-api-secret headers, on the base https://api.zapzapapi.com. The cost is R$15 per active number per month, on the prepaid model, and you start with a welcome credit when you create the account, subject to the current campaign, so you can test the integration before going to production.
Why connect
A WooCommerce store selling supplements receives dozens of orders a day and wastes time answering the same set of questions: "was my order confirmed?", "has it shipped yet?", "what is the tracking code?". With the integration, every order event becomes a message on the customer's WhatsApp with no human intervention. When the order is created, the customer receives the confirmation with a summary of the items. When the payment is approved and the status changes to "processing", a notice arrives saying the order has entered the picking queue. When the status becomes "completed" or you add the tracking code, the shipping message fires. WooCommerce calls your webhook URL on every change, your backend reads the order payload and passes the message on to the instance connected on ZapZap API. The result is fewer support tickets, customers informed in real time and a higher repurchase rate, all running on a single WhatsApp number for R$15 a month.
Step by step
- 1
Connect a number on ZapZap API
In the ZapZap API dashboard, create an instance and scan the QR Code with the WhatsApp of the number that will send the store notifications. Save the instanceId, x-api-key and x-api-secret, which will be used in the HTTP calls.
- 2
Enable webhooks in WooCommerce
In the WordPress dashboard, go to WooCommerce > Settings > Advanced > Webhooks and click Add webhook. Give it a name such as WhatsApp Notification and leave the status as Active.
- 3
Configure the topic and the delivery URL
Under Topic, choose Order created and Order updated (create one webhook for each). In the Delivery URL field, enter the address of your backend that will receive the order payload, for example https://your-server.com/woo/order. Set a Secret to validate the X-WC-Webhook-Signature signature.
- 4
Handle the payload and send the message
In your backend, read the order JSON sent by WooCommerce (billing.phone, status, line_items) and build the notification text according to the status. Then make a request to ZapZap API sending the message to the customer's number through your instance.
- 5
Test with a real order
Place a test order in the store, approve the payment and change the status to completed. Check that the confirmation, payment and shipping messages arrived. Use the welcome credit (subject to the current campaign) to validate the whole flow before scaling.
Example
// ILLUSTRATIVE: check the real endpoints at https://api.zapzapapi.com/llms.txt
// Backend that receives the WooCommerce webhook and notifies the customer on WhatsApp
app.post('/woo/order', async (req, res) => {
const order = req.body; // WooCommerce payload
const phone = order.billing.phone.replace(/\D/g, '');
const texts = {
'pending': `We received your order #${order.number}. Awaiting payment.`,
'processing': `Payment approved for order #${order.number}. We are already picking your items.`,
'completed': `Your order #${order.number} has been shipped. Thank you for your purchase!`
};
const text = texts[order.status];
if (!text) return res.sendStatus(200);
const instanceId = 'YOUR_INSTANCE';
await fetch(`https://api.zapzapapi.com/api/v1/${instanceId}/send/text`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-api-key': process.env.ZAPZAP_API_KEY,
'x-api-secret': process.env.ZAPZAP_API_SECRET
},
body: JSON.stringify({ number: `55${phone}`, text })
});
res.sendStatus(200);
});Illustrative. The exact fields and endpoints are in the documentation.
Frequently asked questions
Do I need the official WhatsApp Business API to integrate with WooCommerce?
No. ZapZap API is an unofficial, instance-based solution: you connect a real number by reading the QR Code, with no Meta approval process or template registration. That makes the integration faster to launch and free of per-conversation fees.
How does WooCommerce notify my system when an order changes status?
WooCommerce has native webhooks. In WooCommerce > Settings > Advanced > Webhooks you register the Order created and Order updated topics pointing to your backend's URL. On every event, the store sends a JSON with the order data, and your server passes the message on to ZapZap API.
How much does it cost to keep this automation running?
The model is prepaid: R$15 per active number per month. A single number already covers the notifications for the whole store. You start with a welcome credit (subject to the current campaign), so you can validate the complete order, payment and shipping flow before paying.
Can I send more than text, such as the tracking code or the invoice?
Yes. Besides text, the instance sends media such as PDF and images, which is useful for attaching an invoice, a tracking label or a receipt. See the available endpoints at https://api.zapzapapi.com/llms.txt to build each type of message.
How do I make sure the notification only fires for the right status?
In your backend you read the status field of the WooCommerce payload (pending, processing, completed) and map each one to a specific message. If the status is not in the map, the webhook responds 200 without sending anything, avoiding duplicate or out-of-context messages.
Start now
Create your account, connect a number in minutes and test the API with warm-up and anti-ban. R$15 per active number/month, prepaid, no lock-in.
