Autenticación y convenciones generales
URL base, autenticación Bearer JWT, cabecera x-organization-id, paginación y formato de respuesta.
Autenticación#
Las API usan la sesión de Supabase del usuario. En el navegador basta la cookie de sesión; para integraciones pase el JWT de Supabase del usuario como Authorization: Bearer <jwt>. Sin autenticación se devuelve 401.
BASE="https://saas.docklify.com/api"
TOKEN="<supabase-access-jwt>"
ORG="<organization-id>"
curl -s "$BASE/wms/inventory?page=1&page_size=20" \
-H "Authorization: Bearer $TOKEN" \
-H "x-organization-id: $ORG" | jq .Ámbito de organización#
Casi todos los endpoints están aislados por tenant. Pase la organización con la cabecera x-organization-id (recomendado) o el parámetro organization_id. Un no miembro recibe 403; sin organización, 400.
Paginación#
Los endpoints de lista aceptan page y page_size (por defecto 20, máximo 100; la cola de impresión admite hasta 200). Las respuestas incluyen meta: { total, page, page_size }.
Formato de respuesta#
El éxito devuelve { ok: true, data, meta? }. Los errores WMS devuelven { code, message, details? } con el estado HTTP del catálogo (ver artículo de códigos de error). Ramifique por code, no por message.
// success (HTTP 200)
{ "ok": true, "data": { "id": "…" }, "meta": { "total": 128, "page": 1, "page_size": 20 } }
// error (e.g. HTTP 409)
{ "code": "WMS_STOCK_001", "message": "库存可用量不足", "details": { "item_id": "…" } }