WooCommerce#
The WooCommerce integration uses Karla's public API and WooCommerce's native webhooks. You don't need a plugin — just point WooCommerce's webhook system at Karla and you're done.
What you need#
- A WooCommerce store (WordPress 5.0+ with WooCommerce 3.5+)
- Admin access to your WooCommerce dashboard
- A Karla API key (generate one under Settings → API Keys in your Karla
portal — the
viewerrole is sufficient) - Your Karla shop slug
Overview#
Karla ingests your orders through a single WooCommerce-native webhook:
Order created. WooCommerce signs every delivery with an HMAC-SHA256
signature (the X-WC-Webhook-Signature header), and Karla verifies it
against a webhook secret generated specifically for your shop. Integration is
a matter of configuration — no code, no plugin.
Orders arrive in Karla without shipment data; tracking numbers are attached later (see Tracking numbers below).
Step 1 — Generate your Karla API key#
- Sign in to the Karla Portal.
- Navigate to Settings → API Keys.
- Click Create API Key, pick the
viewerrole, and copy the generated secret. Note the username shown alongside it — the Karla API uses HTTP Basic authentication. - Note your shop slug — it appears at the top of every Karla portal page.
Step 2 — Fetch your webhook configuration#
Karla generates the webhook delivery URL and secret for your shop. Retrieve both with one API call:
curl "https://api.gokarla.io/v1/shops/{your-shop-slug}/woocommerce/webhook-config" \
-u "{username}:{api-key-secret}"
The response contains everything you'll paste into WooCommerce:
{
"delivery_url": "https://api.gokarla.io/api/woocommerce/orders/hook/create/<your-shop-uuid>",
"webhook_secret": "wcs_..."
}
The delivery URL embeds your shop's unique ID, and the secret (a wcs_...
string) is what WooCommerce uses to sign each webhook request.
Step 3 — Configure the WooCommerce webhook#
-
In your WordPress admin, go to WooCommerce → Settings → Advanced → Webhooks.
-
Click Add webhook and use these settings:
Field Value Name Karla — Order createdStatus ActiveTopic Order createdDelivery URL The delivery_urlfrom Step 2Secret The webhook_secretfrom Step 2 (wcs_...)API Version WP REST API Integration v3(latest) -
Click Save webhook.
Only the Order created topic is ingested — you don't need webhooks for order updates or deletions.
Step 4 — Verify#
- Place a test order in your WooCommerce store.
- Open the Karla Portal → Orders view — your test order should appear within a few seconds.
If an order doesn't appear, check WooCommerce → Settings → Advanced →
Webhooks → Logs for delivery errors. A 404 response means the Secret
or Delivery URL doesn't match what Karla expects (Karla answers invalid
signatures with a 404 to prevent probing) — re-copy both values from the
webhook-config response in Step 2.
Tracking numbers#
WooCommerce orders reach Karla without shipment data. To attach tracking numbers, push them to Karla via the shipments endpoint, or use a connected carrier or WMS integration.
Next steps#
- Set up Notify integrations so your customers receive branded shipment updates.
- Connect carrier integrations so Karla can track each shipment in real time.
- Customize your tracking page to match your store's branding.