Erros

A API segue convenções REST. Erros retornam sempre um objeto JSON com o campoerrore opcionalmente message,campos eerrorCode.

Formato de Erro

{
  "error": "Créditos esgotados",
  "errorCode": "CREDIT_LIMIT",
  "creditsUsed": 500,
  "creditsLimit": 500,
  "upgradeUrl": "/settings/billing"
}

HTTP Status Codes

StatusNomeDescrição
400Bad RequestPayload inválido. O campo campos no body detalha quais campos falharam.
401UnauthorizedHeader x-api-key ausente ou formato inválido.
403ForbiddenChave revogada, sem assinatura ativa, ou créditos esgotados.
404Not FoundRecurso não encontrado (invoice, batch, endpoint).
422UnprocessableConfiguração incompleta: certificado ausente, município não configurado, etc.
429Too Many RequestsRate limit excedido. Aguarde o tempo indicado em Retry-After (segundos).
500Internal Server ErrorErro inesperado no servidor. Tente novamente em alguns instantes.

Códigos de Aplicação

Esses códigos aparecem no campo errorCode de invoices ou de respostas de erro.

CódigoDescrição
CREDIT_LIMITLimite de notas mensais atingido. Necessário upgrade de plano.
E0039Município não aderente ao sistema SNNFSE federal. Verifique configuração.
CERT_EXPIREDCertificado A1 expirado. Faça o upload de um novo certificado.
CERT_MISSINGNenhum certificado A1 válido encontrado para o projeto.
SP_1057Erro de validação SP: RPS com numeração duplicada.
SP_1001Erro de validação SP: CNPJ do prestador inválido.
SP_306Erro de validação SP: código de serviço não encontrado.
RNG6110Erro de validação SNNFSE: campo obrigatório ausente no DPS.
E0532Tributação ISSQN inválida para o serviço informado. Para serviços do Item 99 da LC 116 (ex: "990101" — sem incidência de ISSQN/ICMS), informe valores.aliquotaIss: 0.

Tratamento Recomendado

429

Aguarde Retry-After segundos, depois reenvie a requisição.

403 CREDIT_LIMIT

Apresente ao usuário um prompt de upgrade. Não reenvie.

422

Corrija a configuração no dashboard (certificado, município, CCM). Não reenvie.

500

Reenvie com backoff exponencial (3s, 9s, 27s). Após 3 tentativas, alerte manualmente.