Pull live order data from your Wix store into a WhatsApp chatbot. When a customer sends their order ID, your bot calls the Wix eCommerce Orders API, fetches the current status and total, and replies in seconds.
Before following this guide, read the External API Request step foundation guide. It explains every field in the step interface so this guide can stay focused on Wix-specific values.
Wix uses an account-level API key paired with a Site ID for authentication. The key is generated in the Wix Account API Keys Manager.
Like Shopify and Stripe, Wix displays your API key exactly once at generation. Copy it before closing the page. If you lose it, delete the key and generate a new one.
Your Site ID tells the Wix API which store to query. Two ways to find it:
manage.wix.com/dashboard/1a2b3c4d-xxxx-xxxx-xxxx-xxxxxxxxxxxx/home. The long alphanumeric string between /dashboard/ and /home is your Site ID.GET https://www.wixapis.com/site-properties/v4/properties with your API key and wix-account-id header. The response includes your site ID.Wix API Keys Manager: dev.wix.com/docs/rest/articles/authentication/api-keys
In your WA.Expert chatbot flow, collect the customer's Wix order ID and store it as {{order_id}}. Then add an External API Request step with these values:
| Field | Value | Notes |
|---|---|---|
| Select Method | GET | Reading an existing order. |
| Request URL | https://www.wixapis.com/ecom/v1/orders/{{{order_id}}} | Fixed Wix API base URL. {{{order_id}}} is the variable from the previous chatbot step. |
| Select Auth Type | No Auth | Auth is in the header parameters below, not a built-in OAuth flow. |
| Authorization | your-wix-api-key | Paste the API key generated in Step 1. No 'Bearer' prefix needed for Wix API keys. |
| wix-site-id | 1a2b3c4d-... | Your Site ID from Step 2. This tells the Wix API which store to query. |
| Content-Type | application/json | Include on all Wix API requests. |
| Select Body Type | None | GET requests carry no body. |
| Choose Response Type | JSON | Wix returns structured JSON. |
Wix API keys are account-level and can cover multiple sites. The wix-site-id header is not optional: without it, the API returns a 400 error because it cannot determine which site's orders to look up.
A successful Wix order response looks like this:
{
"order": {
"id": "a1b2c3d4-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"number": 1023,
"status": "APPROVED",
"fulfillmentStatus": "NOT_FULFILLED",
"paymentStatus": "PAID",
"createdDate": "2026-06-20T10:30:00.000Z",
"priceSummary": {
"total": {
"amount": "1299.00",
"currency": "INR"
}
},
"buyerInfo": {
"contactDetails": {
"firstName": "Priya",
"lastName": "Sharma",
"phone": "+919820000001"
}
},
"lineItems": [
{
"productName": {
"original": "Classic Cotton Kurta"
},
"quantity": 2,
"price": {
"amount": "649.50"
}
}
]
}
}Map these response paths to variables in the External API Request step:
| Variable name | Response path | Example value |
|---|---|---|
| order_number | order.number | 1023 |
| order_status | order.paymentStatus | PAID |
| fulfilment_status | order.fulfillmentStatus | NOT_FULFILLED |
| order_total | order.priceSummary.total.amount | 1299.00 |
| customer_name | order.buyerInfo.contactDetails.firstName | Priya |
| item_name | order.lineItems[0].productName.original | Classic Cotton Kurta |
| item_qty | order.lineItems[0].quantity | 2 |
Wix uses uppercase status values: paymentStatus can be PAID, PENDING, PARTIALLY_PAID, UNSPECIFIED. fulfillmentStatus can be NOT_FULFILLED, PARTIALLY_FULFILLED, FULFILLED. Map these to plain-English labels in your WhatsApp reply.
If the customer messaged you first within the last 24 hours, your reply is a free service conversation. Send the order status in that window. If initiating a proactive update, use an approved Utility template at Rs. 0.115 per message.
1. Bot: "Please send your Wix order ID.
You can find it in your confirmation email."
2. Customer replies: a1b2c3d4-xxxx-xxxx-xxxx-xxxxxxxxxxxx
3. Bot stores value as {{order_id}}
4. External API Request step fires:
GET https://www.wixapis.com/ecom/v1/orders/a1b2c3d4-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Authorization: your-wix-api-key
wix-site-id: 1a2b3c4d-xxxx-xxxx-xxxx-xxxxxxxxxxxx
5. Response mapped:
order_number = "1023"
order_status = "PAID"
fulfilment_status = "NOT_FULFILLED"
order_total = "1299.00"
customer_name = "Priya"
item_name = "Classic Cotton Kurta"
6. Bot replies:
"Hi Priya, here is your order update:
Order #1023
Payment: Paid
Fulfilment: Preparing for dispatch
Item: Classic Cotton Kurta (x2)
Total: Rs. 1,299.00"| Symptom | Likely cause | Fix |
|---|---|---|
| 401 Unauthorized | Invalid or missing API key | Re-check the Authorization header. The Wix API key goes directly as the value, with no 'Bearer' prefix. |
| 400 Bad Request: missing site context | wix-site-id header missing | Add the wix-site-id header with your Site ID. Both headers are required for every request. |
| 404 Not Found | Order ID does not exist on this site | Confirm the customer sent the correct full UUID-format order ID. Add a fallback branch for empty responses. |
| 403 Forbidden | API key lacks eCommerce read permission | Return to manage.wix.com/account/api-keys, edit the key, add eCommerce read scope, regenerate. |
| Uppercase status confusing customers | Wix returns PAID, NOT_FULFILLED etc. | Add a conditions step before the reply to translate: if order_status equals PAID, set a readable_status variable to 'Paid'. Then use readable_status in the reply. |
| Order ID is a long UUID customers cannot find | Wix order IDs are machine-generated | Add a fallback option: let customers send their order number instead (e.g. 1023), then search: POST /ecom/v1/orders/search with filter number equals that value. |
Shopify Admin API order lookup: X-Shopify-Access-Token, single-header auth, shpat_ token.
Read guide →WooCommerce REST API v3: Basic Auth with Consumer Key and Secret, order lookup.
Read guide →Master every field in WA.Expert's HTTP action step before building any integration.
Read foundation guide →Free trial, no credit card required. And if you ever get stuck, we are the only platform in India that answers you live on WhatsApp.