Catálogo
Com estas rotas você cadastra o catálogo comercial — Brand, Product, SKU e PriceTable — e sincroniza preço e estoque, usando o seu refId como chave. Inclui CRUD por entidade, set/leitura de preço e estoque, e cargas em lote (bulk) assíncronas.
Definição e valores de atributos ficam no guia Atributos & Templates. Todas as rotas exigem Bearer; listas usam cursor.
Essencial para todas as rotas
Legenda das tabelas de payload: ✔ obrigatório · ○ opcional. Campos read-only (id, active) nunca são enviados pelo parceiro — só aparecem na response.
Header de auth (Bearer) obrigatório em todos os endpoints; nos verbos com corpo soma-se Content-Type: application/json:
Authorization: Bearer <access_token> # obtido em POST /oauth/token (spec 023)
Content-Type: application/json # apenas POST/PUT
Envelope de listagem (<E>ListResponse, nunca array bare):
{ "items": [ /* [T] */ ], "hasMore": true, "nextCursor": 100 }
Erros de recurso: AppError { "code": "...", "message": "..." } (404/409/422). Erros de auth (401/403) vêm do middleware, fora de AppResult.
Convenções: {version} real é 1.0 (exemplos usam v1); nesta casca todo endpoint responde o sample fixo com status 200/201/202; 404/409/422 são contrato-alvo. Rotas kebab-case: price-table, bulk-requests.