If your store does not run on Shopify (custom-built site, headless or another platform), you can still use it with Kanal. Create a custom store: your developers then send your orders, abandoned checkouts, customers and shipments to Kanal through the Commerce API, and this data triggers your WhatsApp automations.
Click your team name, then Settings.
Open Stores, then click Add a store.
Choose Custom store and fill in the requested information.
The store then appears in the list under Settings > Stores. Open it to access its API & ingestion and Guide tabs.
The API & ingestion tab provides an API ingestion key. This key only works for this store: it cannot write to any other store of your team.
Share it with your developer and keep it server-side only, never in a browser or a mobile app.
If the key has leaked, or if a contractor should no longer have access, regenerate or revoke it from the same tab, then update your integration.
Use it like a regular API key, in the Authorization: Bearer <your key> header. A key created in Settings > Developers > API Keys also works, but it gives access to every store of your team. For a custom store, prefer the ingestion key, which is limited to that single store.
The Guide tab shows the store's store_id, the numeric identifier that appears in the path of every Commerce API call. You do not need to ask support for it.
Every Commerce API URL starts with:
https://api.getkanal.com/api/v1/stores/{store_id}//api/v1/ right after the domain name. A URL such as https://api.getkanal.com/v1/stores/... does not work.Endpoint | Use |
|---|---|
| Create or update an order |
| Create or update an abandoned checkout |
| Create or update a customer record |
| Create or update a shipment |
Example of sending an order, with store_id 123:
curl -X POST https://api.getkanal.com/api/v1/stores/123/orders \
-H "Authorization: Bearer YOUR_INGESTION_KEY" \
-H "Content-Type: application/json" \
-d '{
"external_id": "ORDER-1001",
"total_price": 49.90,
"currency": "EUR",
"customer": { "phone": "+33612345678", "first_name": "Marie" }
}'Each endpoint (fields, statuses, errors, limits) is detailed in Commerce API: send your store data to Kanal. The full technical reference is on developers.getkanal.com.
Order: an order sent with the customer's phone number (customer.phone) can start your automations that use the store order created trigger. Without a phone number, the order is saved but triggers nothing.
Abandoned checkout: only a checkout with the abandoned status triggers an automation.
Shipment: a shipment starts your automations that use the store shipment update trigger only if it contains a tracking number (tracking_number) and a tracking URL (tracking_url), and if the linked order is known to Kanal with a contact. Otherwise, the shipment is saved but no message is sent.
POST /customers.To learn more about keys and authentication errors, see API authentication and keys.