KanalKanal API
API reference

Overview

Conventions shared by every commerce endpoint.

The commerce API has 7 endpoints across 4 resources. They all share the same conventions below.

Base URL & path

https://api.getkanal.com/api/v1/stores/{store_id}/{resource}

{store_id} is the numeric id issued with your API key. Every request is scoped to that store.

Endpoints at a glance

MethodPathResource
POST/ordersCreate or update an order
PATCH/orders/{external_id}Update order status
POST/checkoutsCreate or update a checkout
PATCH/checkouts/{external_id}Update checkout status
POST/customersCreate or update a customer
DELETE/customers/{external_id}Delete a customer (GDPR)
POST/shipmentsCreate or update a shipment

Conventions

  • AuthAuthorization: Bearer <key>, scoped per store. See Authentication.
  • Content typeapplication/json on every request with a body.
  • IdempotencyPOST upserts on (store_id, external_id). 201 = created, 200 = updated. See Idempotency.
  • Errors — JSON body, 422 for validation. See Errors.
  • Rate limit — 60 requests / minute / store.

Type notation

NotationMeaning
requiredMust be present and non-null
optionalMay be omitted or null
string(3)String with exact/max length
ISO 8601e.g. 2026-05-18T10:00:00Z
numberDecimal, ≥ 0 for prices

What this API is not

The commerce API is write-only. There are no GET/list/pagination endpoints for orders, checkouts, customers or shipments — you push data in, you don't read it back. Keep your own system as the source of truth and reconcile on your side. Send the same external_id again to correct a record.

Messaging API — sending WhatsApp messages/templates, triggering automations and reading account info is a separate set of endpoints documented under Messaging API. Those require an active subscription; the commerce endpoints here do not.

On this page