Documentación de API
Centro de ayuda/Documentación de API/Autenticación y convenciones generales

Autenticación y convenciones generales

Última actualización 2026-10-13

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.

Ejemplo curl — Bearer JWT
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.

Respuesta de éxito vs error
// 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": "…" } }
Los permisos son módulos punteados (p. ej. wms.inbound.view, wms.inventory_adjust). Desde 2026-10-07 la aplicación por defecto está relajada (solo login + membresía); el punto inventory_adjust aún requiere concesión explícita.