Skip to Content
API de integração — v1
Erros & limites

Erros & limites

Formato de erro

Toda resposta de erro segue o mesmo envelope JSON:

{ "statusCode": 401, "error": "Unauthorized", "message": "Chave de API inválida, revogada ou expirada.", "code": "invalid_api_key" }
  • statusCode — o código HTTP.
  • error — nome curto do erro.
  • message — mensagem legível (pt-BR).
  • code — código estável da aplicação, ideal para tratar no seu cliente.

Códigos comuns

StatuscodeQuando acontece
400validation_errorParâmetros inválidos (veja issues)
401missing_api_keyHeader Authorization ausente
401invalid_api_keyChave inválida/revogada/expirada
403insufficient_scopeEscopo insuficiente para a operação
401office_key_requiredRota /v1/accounting chamada com a chave da empresa (ck_) — ela exige a chave do escritório (ok_)
403accounting_mode_inactiveEscritório suspenso — o modo contador não está ativo
403company_not_in_portfolioA empresa não tem vínculo ativo com o escritório
404not_foundRecurso não encontrado
409closing_not_readyDownload de fechamento que ainda não terminou (ou falhou)
401invalid_linkLink de download do ZIP (/received-documents/export/download) inválido ou expirado (vale 15 min) — gere outro
403link_revokedA credencial que gerou o link de download perdeu o acesso (chave revogada, acesso desligado, empresa fora da carteira)
404no_documentsDownload em lote (/received-documents/export) de um mês sem nenhum documento recebido
400portfolio_too_largePOST /v1/accounting/closings ou GET /v1/accounting/received-documents/export sem companyIds numa carteira com mais de 200 empresas — peça em lotes
500internal_errorErro interno. O detalhe fica no nosso log; o corpo não o expõe
429—Rate limit excedido
429sefaz_waitPOST /v1/received-documents/sync dentro da janela de 1h que a SEFAZ exige depois de uma consulta sem novidades — respeite o Retry-After
500—Erro interno

Rate limiting

As requisições são limitadas por chave de API. Ao exceder o limite, a API responde 429 Too Many Requests. Implemente retry com backoff exponencial e respeite os headers de limite quando presentes.

Paginação

Endpoints de listagem aceitam page e pageSize (máx. 100) e retornam:

{ "data": [ /* ... */ ], "meta": { "page": 1, "pageSize": 20, "total": 134, "totalPages": 7 } }
Last updated on