Pular para o conteúdo principal

Consultando uma emissão de CT-e

curl -s https://api.conota.dev/v1/cte/consultar/$JOB_ID \
-H "X-API-Key: $CONOTA_API_KEY"

Lê o que já guardamos. Não consome cota — pode consultar à vontade enquanto espera.

A resposta traz os dois eixos de estado, o do processamento e o fiscal. Ver Status das emissões.

Em lote e por referência

As rotas genéricas valem para o CT-e como para qualquer documento:

POST /v1/jobs/consultar-lote # até 200 ids
GET /v1/jobs/localizar?ref=frete_4471

Id inexistente ou de outra conta volta como "status": "nao_encontrado" — sem 404.

Rejeição não é "concluído"

Um CT-e recusado pela SEFAZ vem como failed, com o motivo

Isso parece óbvio e não é: a biblioteca que fala com o autorizador devolve sucesso mesmo quando a SEFAZ rejeita o documento. Quem trata isso somos nós.

O erro chega com o código oficial na frente:

[CTe 481] Rejeicao: IE deve ser informada para tomador Contribuinte

E rejeição não é re-tentada: o documento está errado e seria recusado de novo. As exceções são 108 e 109 — serviço paralisado —, que são transitórias e essas sim voltam a tentar.

O CT-e depende de dois cadastros, não de um

Rejeição de credenciamento parece rejeição de payload

Emitir CT-e exige credenciamento próprio na SEFAZ, separado do de NF-e. Uma empresa que emite NF-e há anos pode ter o primeiro CT-e recusado sem que haja nada de errado no payload.

Se as rejeições apontarem o emitente e não um campo da carga, confira o credenciamento antes de mexer no JSON.

Consultar não é o mesmo que ter o documento

Depois de autorizado, o XML e o DACTE saem por Arquivos.