CT-e
Emitir CT-e
Aceita um CT-e (modelo 57, modal rodoviário) para autorização assíncrona na SEFAZ.
/openapi/v2/empresas/{empresaId}/cteRequer os cabeçalhos de assinatura token, timestamp e sign, veja Autenticação.
A aceitação devolve HTTP 200 sem corpo. Reenviar o mesmo id: uma impressão digital idêntica da mensagem reutiliza a tarefa original (idempotente), uma impressão diferente retorna 10017030, e uma falha terminal anterior reabre a tarefa com a nova mensagem. O resultado é obtido pela consulta ou pelo webhook. As strings de enumeração não diferenciam maiúsculas de minúsculas.
Parâmetros
Parâmetros de caminho
empresaIdstringobrigatórioIdentificador da empresa (transportadora) devolvido no registro.
Exemplo:1934811222334455
Corpo da requisição
idstringobrigatórioIdentificador do documento no integrador; usado como a variável de caminho
cteIdem todas as chamadas seguintes.Exemplo:CTE-ORD-1ambienteEmissaostringobrigatórioDeve coincidir com o ambiente atual da empresa (
10017010).Valores:ProducaoHomologacaonaturezastringobrigatórioNatureza da operação (natOp), até 60 caracteres.
Exemplo:PRESTACAO DE SERVICO DE TRANSPORTEcfopstringobrigatórioCFOP com 4 dígitos.
Exemplo:5353tipostringobrigatórioTipo do CT-e.
ComplementarexigectesComplementados;SubstitutoexigecteSubstituido(10017015).Valores:NormalComplementarSubstitutotipoServicostringobrigatórioTipo do serviço. Subcontratação / redespacho / redespacho intermediário exigem
documentosAnteriores.Valores:NormalSubcontratacaoRedespachoRedespachoIntermediarioVinculadoMultimodalmodalstringobrigatórioSomente
Rodoviariona fase um; outros modais são rejeitados (10017018).tomadorstringobrigatórioTomador do serviço.
Valores:RemetenteExpedidorRecebedorDestinatarioOutrosindicadorIeTomadorstringobrigatórioIndicador de IE do tomador.
Contribuinteexige IE numérica no tomador (10017013).retiraMercadoriabooleanopcionalSe o recebedor retira a mercadoria.
detalheRetirastringopcionalDetalhes da retirada, até 160 caracteres.
municipioEnvioobjectopcionalMunicípio de envio; padrão é o município cadastrado da empresa.
origemobjectobrigatórioMunicípio de origem.
destinoobjectobrigatórioMunicípio de destino.
remetenteobjectao menos um entre `remetente` e `destinatario`Remetente. O participante referenciado por
tomadoré obrigatório (10017012).destinatarioobjectao menos um entre `remetente` e `destinatario`Destinatário.
expedidorobjectopcionalExpedidor (opcional).
recebedorobjectopcionalRecebedor (opcional).
tomadorOutrosobjectobrigatório para `tomador=Outros`Tomador do serviço quando não é nenhum dos quatro participantes acima.
cargaobjectobrigatórioCarga transportada.
documentosobjectobrigatório para documentos normaisDocumentos transportados; exatamente um dos grupos
nfe/nf/outrospode ser enviado (10017014). Documentos complementares não exigemdocumentos.documentosAnterioresarrayobrigatório para subcontratação / redespacho / redespacho intermediárioDocumentos de transporte anteriores, um por transportador anterior; proibido nos demais tipos de serviço (
10017014).rodoviarioobjectobrigatórioInformações do modal rodoviário.
valorPrestacaoobjectobrigatórioValores da prestação do serviço.
impostosobjectobrigatórioParâmetros tributários; as regras completas estão na seção Parâmetros tributários abaixo.
cobrancaobjectopcionalFatura e duplicatas (opcional).
cteSubstituidoobjectobrigatório para `tipo=Substituto`CT-e substituído.
ctesComplementadosarrayobrigatório para `tipo=Complementar`Chaves dos CT-e complementados (strings de 44 dígitos), de 1 a 10.
caracteristicasAdicionaisobjectopcionalCaracterísticas adicionais (opcional).
fluxoobjectopcionalFluxo / rota do transporte (opcional).
entregaobjectopcionalJanela de entrega (opcional).
observacoesstringopcionalTexto livre, até 2000 caracteres.
observacoesContribuintearrayopcionalObservações do contribuinte, até 10.
observacoesFiscoarrayopcionalObservações ao fisco, até 10.
autorizadosXmlarrayopcionalCPF / CNPJ autorizados a baixar o XML (strings), até 10.
Respostas
Aceito. Sem corpo; a autorização acontece de forma assíncrona.
Sem corpo de resposta
Erros
| Código | HTTP | |
|---|---|---|
| 10003000 | 404 |
|
| 10017004 | 400 | A empresa não pode emitir (não aprovada / certificado não pronto). Aguarde a aprovação ou vincule o certificado. |
| 10017005 | 400 | Requisição duplicada concorrente. Tente novamente mais tarde. |
| 10017006 | 400 | Tarefas pendentes em excesso para o CNPJ. Tente novamente mais tarde. |
| 10017007 | 400 | Série de numeração não resolvida (nenhuma configurada, ou várias habilitadas sem escolha). Configure uma série do modelo 57. |
| 10017010 | 400 |
|
| 10017011 | 400 | Código IBGE de município não encontrado. Verifique |
| 10017012 | 400 | Participante ausente. Inclua o participante referenciado por |
| 10017013 | 400 | Tomador inconsistente com o indicador de IE. Ajuste |
| 10017014 | 400 | Referências de documentos inválidas (ausentes, dígito verificador incorreto, grupos misturados, documentos anteriores inconsistentes com o tipo de serviço). |
| 10017015 | 400 | Tipo de documento inconsistente com as referências. Envie |
| 10017016 | 400 | A soma dos componentes difere do total, ou |
| 10017017 | 400 | RNTRC inválido. |
| 10017018 | 400 | Modal não suportado. |
| 10017019 | 400 | Enumeração ou formato inválido; |
| 10017020 | 400 | Parâmetro tributário ausente. |
| 10017021 | 400 | Parâmetro tributário não permitido (por exemplo |
| 10017022 | 400 | CST incompatível com o regime da empresa (Simples somente |
| 10017023 | 400 |
|
| 10017024 | 400 | Linha da tabela de alíquotas ausente e nenhuma alíquota explícita informada. |
| 10017025 | 400 | CST não suportado. |
| 10017030 | 400 | Mesmo |
| 10017031 | 400 | Produção: já existe um documento ativo / autorizado para o |
| 10001001 | 400 | Falha de validação de campos (uma entrada por campo); corrija conforme |
Parâmetros tributários (`impostos`)
| Campo | Descrição |
|---|---|
icms.situacaoTributaria (obrigatório) | 00 / 20 / 40 / 41 / 51 / 60 / 90 / 90-OutraUF / SN; deve corresponder ao regime da empresa: Simples (CRT 1/4) somente SN, regime normal nunca SN (10017022) |
icms.baseCalculo / aliquota / valor | Valores explícitos prevalecem; caso contrário a base é o total da prestação, a alíquota vem da tabela intraestadual ou da alíquota interestadual legal (7% ou 12%) e o valor é calculado. Serviço intraestadual sem linha na tabela e sem alíquota explícita retorna 10017024 |
icms.percentualReducaoBase | Obrigatório para CST 20; proibido para CST 00 |
icms.valorDesonerado / codigoBeneficio | Opcionais para CST 20 / 40 / 41 / 51 / 60 / 90, padrão 0.00 / SEM CBENEF |
icms.valorCredito | Opcional para CST 60 / 90 |
icms.stRetido | Obrigatório para CST 60: { "baseCalculo", "aliquota", "valor" } |
icms.outraUf | Opcional para 90-OutraUF: { "baseCalculo", "aliquota", "valor", "percentualReducaoBase" }, recaindo em icms.* |
icmsUfFim | Obrigatório em serviços interestaduais com indicadorIeTomador=NaoContribuinte (10017023); proibido em intraestaduais. baseCalculo / percentualFcp / aliquotaInterna / aliquotaInterestadual / valorFcp / valorUfFim / valorUfIni são todos opcionais e recaem na alíquota interna e na tabela de FCP da UF de destino |
percentualCargaTributaria | Percentual aproximado de carga tributária, usado em vTotTrib |
informacoesFisco | Informações adicionais ao fisco (até 2000) |
ibsCbs | Não disponível na fase um; rejeitado quando presente (10017021) |
Rejeição pela SEFAZ
Rejeições da SEFAZ durante a emissão não são erros HTTP: aparecem como status Negada na consulta e como o webhook cte.rejected, com motivoStatus / cteMotivoStatus no formato cStat - xMotivo. Uma falha terminal da tarefa (Falha) não envia callback; use a consulta.
