Guias

Conceitos

Envelope de resposta, erros, datas, JSONP, saídas de arquivo e multi-tenancy na API Consultiva.

Convenções transversais a todos os endpoints da API Consultiva. Para credenciais veja Autenticação; para paginação, janela de período e limites veja Paginação e limites.

Envelope de resposta

Os formatos de sucesso mais comuns:

  • Lista — o corpo é o próprio array ([...]).
  • Objeto — alguns endpoints retornam um objeto (ex.: saldos).
  • Paginado{ "currentPage", "totalPages", "totalItems", "perPage", "data": [...] }.

Erros

Os endpoints de integração (/integracoes/*) usam um envelope de erro padrão, normalmente com HTTP 400:

{ "error": "DATA_INVALIDA", "error_info": "O campo \"data\" contém uma data inválida. Utilize o formato AAAA-MM-DD (ex.: 2026-06-30)." }

O campo error traz um código estável (use-o para tratar erros no seu sistema) e error_info traz a mensagem legível. Códigos possíveis:

CódigoQuando ocorre
EMPRESA_NAO_ENCONTRADAcnpj/empresa não localizados
DATA_INVALIDAdata fora do formato AAAA-MM-DD ou inexistente no calendário
PERIODO_OBRIGATORIOinicio_periodo/fim_periodo ausentes
PERIODO_INVALIDOperíodo inconsistente (ex.: início posterior ao fim)
PERIODO_EXCEDE_LIMITEintervalo acima de 180 dias
PAGINACAO_INVALIDAperPage fora de 1–100
TIPO_PERIODO_INVALIDOtipo_periodo não reconhecido
ID_INVALIDOidentificador inválido
PARAMETRO_INVALIDOparâmetro ausente ou inválido (ex.: ativo_inativo fora do conjunto aceito)
ERRO_INTERNOfalha ao processar (ex.: acesso via API não contratado)

Token ausente ou inválido resulta em 401 com corpo { "error": "Unauthenticated." }.

Exceção: produtos/estoque (rota legada)

A rota legada GET /produto/estoque/busca usa um formato de erro diferente: { "message": "..." } (HTTP 400). A versão padronizada GET /integracoes/produto/estoque/busca já usa o envelope { "error", "error_info" } acima.

Datas

Salvo indicação em contrário, parâmetros de data usam YYYY-MM-DD (ex.: 2026-06-01). Datas inválidas retornam DATA_INVALIDA. Nas respostas, o formato pode variar entre YYYY-MM-DD, YYYY-MM-DD HH:mm e DD/MM/YYYY conforme o endpoint — confira o exemplo de cada um.

JSONP

Endpoints que usam o helper success() aceitam o parâmetro callback na query string. Quando presente, a resposta é envolvida como JSONP (callback({...})); sem ele, é JSON puro.

Saídas de arquivo

Alguns relatórios de vendas aceitam saida=csv (e alguns saida=xls) e respondem com download (text/csv ou .xlsx) em vez de JSON. O endpoint produtos-vendidos-periodo sempre retorna uma planilha .xlsx.

Multi-tenancy

O ssOtica é multi-tenant: Rede › Empresa › Filial. A empresa-alvo é resolvida por cnpj e/ou empresa (Código da Licença), sempre dentro da rede do usuário autenticado. A empresa precisa ter acesso via API contratado — caso contrário a resposta é ERRO_INTERNO ("Acesso via API não contratado...").

cnpj e/ou empresa

A maioria dos endpoints aceita cnpj e/ou empresa; informe ao menos um. Alguns relatórios aceitam apenas cnpj, e os relatórios "de toda a rede" (comissão e vendas por produto) não recebem nem cnpj nem empresa. A página de cada endpoint indica o comportamento exato.

On this page