SALAF EMSDevelopers
salafems.com

Version 2026-08 · v1

Salaf Commerce API

Read your store’s products, orders, customers, stock and sales channels from your own systems. One header to authenticate, cursor pagination built for syncing, and an error contract your code can branch on.

Your first request
export SALAF_API_KEY="salaf_sk_YOUR_API_KEY"

curl -sS "https://api.salafems.com/ext/v1/orders?limit=5" \
  -H "Authorization: Bearer $SALAF_API_KEY"

27

Endpoints

12

Scopes in use

24

Webhook events

Everything in these docs

Getting started

From no key to your first response, in five minutes.

Authentication

Key format, store vs company keys, rotation, revocation.

Build with AI

Markdown twins, llms.txt, the spec URL, and the two MCP servers.

Errors

The error envelope, every code, and what to do with each.

Pagination

Cursor paging, the sync pattern, and why sorting is limited.

Writes & idempotency

Every write endpoint, and the Idempotency-Key contract behind them.

Rate limits

Per-key buckets, headers, and handling 429.

Versioning

What we may change without warning, and what we may not.

Overview

Generated from the published OpenAPI description.

Overview

Outbound events: the envelope, the guarantees, the rules.

Event catalog

Every event type we send, and what each one carries.

Verifying signatures

The signing scheme, code in three languages, and test vectors.

Retries & ordering

The retry ladder, dead deliveries, and auto-disable.

Testing

The salaf.ping event and how to develop against it.

Headers

Every header on a delivery, and what to do with it.

Rotating a secret

The dual-signing window, and what a receiver does during it.

Overview

End-to-end recipes for the four common integrations.

Create an order

Customer, variants, idempotency key, and what comes back.

Sync inventory to an ERP

Cursors, watermarks and checkpoints that survive a crash.

Handle webhooks idempotently

Verify, dedupe, upsert, and answer fast.

Build a custom storefront

The read path, checkout, and what the API does not give you.

Changelog

Every change to the public API, newest first.