Documentation

KelCommerce API

Connect your shop to your till, ERP or accounting. The API is included in the Business plan.

API keys

Create a key in your admin, under Settings › API. A “read only” key can only read; a “read and write” key can change everything. The key is shown once: keep it like a password. You can revoke it at any time.

Authentication

Send the key in the Authorization header. Replace {handle} with your shop’s identifier (the one in your-name.kelcommerce.eu).

Authorization: Bearer kc_…
https://admin.kelcommerce.be/api/commerce/manage/{handle}/…

Rules

  • JSON in and out, UTF-8. Amounts are strings with two decimals ("19.90"), VAT included.
  • Lists are paginated with start (from 0) and count; the total is in the X-Total-Count header.
  • Limit: 120 requests per minute per key. Above it: status 429 and a Retry-After header.
  • Errors: {"error": "code", "message": "…"} with status 401 (key missing, revoked or shop not on Business), 404 (not found), 417 (refused), 429 (limit).
  • A key never gives access to billing, the team, API keys or payment settings.

Example: paid orders to ship

curl -H "Authorization: Bearer kc_…" \
  "https://admin.kelcommerce.be/api/commerce/manage/{handle}/orders?status=paid&start=0&count=50"

Reference

Products

GET/products?q=&status=&category=&start=0&count=50List products (X-Total-Count header gives the total).
POST/productsCreate a product with its options, variants and categories.
GET/products/{id}One product with variants, stock and media.
PUT/products/{id}Replace a product; variants with an id are kept, without id created, missing ones deleted.
DELETE/products/{id}Delete a product.
POST/products/{id}/mediaAdd an image: {filename, contentType, data: base64, alt}. JPEG, PNG or WebP, 8 MB max.

Categories

GET/categoriesAll categories (tree via parentId).
POST · PUT · DELETE/categories[/{id}]Create, update, delete.

Orders

GET/orders?status=pending|paid|fulfilled|cancelled|refunded&q=&start&countList orders.
GET/orders/{id}One order with lines, addresses, payment and fulfilment.
POST/orders/{id}/fulfillMark shipped: {carrier, trackingNumber, trackingUrl}. The customer gets an e-mail.
POST/orders/{id}/cancelCancel (a paid order is restocked and marked refunded).
PUT/orders/{id}/noteInternal note: {note}.

Customers and B2B

GET/customers?q=&b2b=pending|approved&start&countList customers.
GET/customers/{id}One customer with their orders.
PUT/customers/{id}B2B status and price group: {b2bStatus, groupId}.
GET · POST · PUT · DELETE/customer-groups[/{id}]Price groups: {name, discountPercent}.
GET · PUT/customer-groups/{id}/pricesGroup price list: [{variantId, price, minQuantity}] (PUT replaces the list).

Shop settings

GET · PUT/shopName, languages, address, theme…
GET · POST · PUT · DELETE/shipping-rates[/{id}]Shipping rates.
GET · POST · PUT · DELETE/discounts[/{id}]Discount codes.
GET · POST · PUT · DELETE/pages[/{id}]Content pages.
GET/dashboard?days=30Sales totals, series and top products.

Create a key Business plan

A question? Write to support@kelcommerce.be.