Developers / Documentos Fiscais / CT-e
Documentos Fiscais · CT-e

Emitir CT-e POST

Emite um Conhecimento de Transporte Eletrônico (modelo 57) -- documento fiscal do transportador, referenciando as NF-e da carga transportada. Hoje só o modal rodoviário é suportado.

Quando utilizar

Sempre que sua transportadora prestar um serviço de transporte de carga (não de pessoas nem de valores -- isso é CT-e OS, modelo 67, fora desta página) e precisar emitir o documento fiscal correspondente, referenciando as NF-e transportadas.

Pré-requisitos

  • Contribuinte (transportador) já cadastrado -- POST /v1/contribuintes.
  • Certificado digital A1 vinculado ao contribuinte.
  • RNTRC (Registro Nacional de Transportadores Rodoviários de Carga) do emitente -- obrigatório, sem fallback.
  • Chave de acesso das NF-e transportadas (44 dígitos) -- é o único tipo de documento referenciável hoje.
  • Responsável técnico cadastrado na sua conta -- CNPJ, nome, e-mail e telefone, preenchidos em Área do Cliente → Responsável Técnico (sem campo equivalente no corpo desta requisição -- resolvido automaticamente pela API). Bloqueante: sem isso a emissão falha com status: "ERROR". Ver detalhes na doc de NF-e.
⚠️
Só modal rodoviário -- ide.modal hoje não tem efeito. O motor sempre gera CT-e rodoviário, independente do que você enviar nesse campo (ou mesmo se omitir) -- não existe erro nem aviso, o valor é silenciosamente ignorado. Aéreo, aquaviário, ferroviário e dutoviário não são suportados de fato hoje. Só ICMS é de fato transmitido, com icms.cst roteando pro grupo certo do XML: 00 (normal), 20 (BC reduzida), 40/41/51 (isento/não tributado/diferido), 60 (substituição tributária) ou 90 (outros). Se o emitente é do Simples Nacional (crt: "1"), o motor sempre monta ICMSSN e ignora icms.cst -- ver detalhes no campo icms abaixo. ICMSOutraUF ainda não tem grupo próprio no XML. PIS/COFINS não existem no CT-e modelo 57 (não é gap, é o layout nacional mesmo -- esses tributos são apurados mensalmente pelo prestador, não por documento) -- enviar impostos.pis/impostos.cofins é rejeitado com erro 400, não descartado silenciosamente.
💡
IBS/CBS (impostos.ibs_cbs) agora é calculado/transmitido. Grupo opcional -- diferente da NF-e (onde o grupo é exigido pela SEFAZ mesmo com alíquota zero durante o período de teste de 2026), não há confirmação de que a mesma regra vale pro CT-e, então o motor só monta o grupo quando você o envia explicitamente. Quando enviado, base_calculo é sempre obrigatória (sem fórmula automática) e aliquota_ibs_uf/aliquota_cbs/valor_ibs_uf/ valor_cbs são opcionais -- omitidos, o motor calcula a partir da classificacao_tributaria (mesma tabela e mesmo cálculo já usados na NF-e/ NFS-e).

Fluxo da operação

POST /v1/cte/emissoes
Motor monta, assina e transmite pra SEFAZ da UF
200 OK · resultado final (mesma chamada)
💡
Síncrono, mesmo padrão de NFS-e. A própria chamada POST já monta, assina e transmite pra SEFAZ -- a resposta já vem com status final (AUTHORIZED/REJECTED/ERROR/PROCESSING), não um "recebido, consulte depois". GET /v1/cte/emissoes/{transmissao_id} continua disponível pra reconsulta, mas normalmente não é necessário logo após o POST.

Endpoint

POST https://areacliente.centralfiscal.com.br/v1/cte/emissoes

Headers

HeaderValor
AuthorizationBearer <sua_api_key>obrigatório
Content-Typeapplication/jsonobrigatório
Idempotency-Keystring livre, definida por vocêopcional

Body

Clique num campo com pra expandir.

idempotencia
string
id_externo
string
emitente_documentorequired
string
CNPJ do transportador, cadastrado e com contrato ativo.
required
object
serierequired
string
numerorequired
string
data_emissaorequired
string <date-time>
cfoprequired
string
natureza_operacaorequired
string
modal
string
Aceito no payload, mas sem efeito hoje -- sempre sai rodoviário (ver aviso acima).
municipio_inicio_ibgerequired
integer
municipio_iniciorequired
string
Nome do município (não só o código IBGE) -- vai impresso no DACTE.
uf_inicio
string
Se omitido, usa a UF do emitente.
municipio_fim_ibgerequired
integer
municipio_fimrequired
string
uf_fimrequired
string
tipo_servico
string
Default: "0"
tipo_cte
string
Default: "0"
Enum: 013
0 Normal. 1 (Complemento de Valores) exige o objeto complemento no corpo (ver abaixo) -- substitui todo o corpo normal do CT-e, os campos carga/documentos/rodoviario continuam obrigatórios no payload mas são ignorados na montagem do XML. 3 (Substituição) exige o objeto substituicao -- mantém o corpo normal, só anexa a referência ao CT-e original.
object
Grupo <gCompraGov>. Opcional -- só quando a prestação é pra um ente governamental.
tipo_ente_governamentalrequired se enviado
string
Enum: 123456
tpEnteGov -- 1 União, 2 Estados, 3 DF, 4 Municípios, 5 Consórcio Público, 6 Comitê Gestor do IBS.
percentual_redutorrequired se enviado
number
pRedutor.
tipo_operacaorequired se enviado
string
Enum: 1234
tpOperGov -- 1 fornecimento c/ pagamento posterior, 2 recebimento c/ fornecimento já realizado, 3 fornecimento c/ pagamento já realizado, 4 recebimento c/ fornecimento posterior.
chaves_documento_anterior
Array of strings
refDFeAnt -- obrigatório nos tipo_operacao 2/3, vedado nos 1/4 (o motor rejeita se não bater).
object
Grupo <tpPagAnt>+<gPagAntecipado>. Opcional -- só em antecipação de pagamento ou no CT-e de fornecimento associado.
tiporequired se enviado
string
Enum: 13
tpPagAnt -- 1 Pagamento Antecipado, 3 Fornecimento com pagamento realizado anteriormente.
chaves_cte_pagamento_antecipado
Array of strings
chCTePagAnt -- obrigatório quando tipo: "3", vedado quando "1".
object
Se omitido, usa os dados já cadastrados do contribuinte.
documento
string
razao_social
string
crt
string
Enum: 1234
1 Simples Nacional, 2 Simples Nacional excesso de sublimite, 3 Regime Normal, 4 Simples Nacional MEI. Se omitido, usa o regime já cadastrado do contribuinte.
required
object
Tomador do serviço. Sempre enviado como toma4 ("Outros", dados completos) -- referenciar remetente/destinatário/expedidor/recebedor como tomador (toma0-3) ainda não é suportado.
documentorequired
string
razao_social
string
object
Opcional -- só dispensável em redespacho intermediário e serviço vinculado a multimodal. Nos demais casos, informe.
destinatario
object
expedidor
object
recebedor
object
required
object
Grupo <infCarga>.
valor_cargarequired
number
produto_predominanterequired
string
required
Array of objects
Pelo menos 1 item -- vazio é rejeitado.
unidaderequired
string
Enum: KGTONM3UNIDADELITROSMMBTU
Rótulo humano -- a API traduz pro código SEFAZ (00-05).
quantidaderequired
number
required
Array of objects
NF-e transportadas (grupo <infDoc>/<infNFe>). Pelo menos 1 -- vazio é rejeitado. Único tipo suportado hoje.
tiporequired
string
Enum: NFE
NF modelo 1/1A e CT-e multimodal ainda não são referenciáveis.
chave_acessorequired
string
44 dígitos.
required
object
Grupo <vPrest>.
valor_prestacaorequired
number
vTPrest -- valor total da prestação do serviço.
valor_receber
number
vRec. Se omitido, usa o mesmo valor de valor_prestacao.
Array of objects
Grupo <Comp>, detalha a composição (frete peso, pedágio, seguro etc). Informativo -- não muda o total, que é sempre valor_prestacao.
nome
string
valor
number
required
object
Grupo <imp>.
required
object
Grupo <ICMS>, roteado por cst pro subgrupo certo (ICMS00/20/45/60/90). Simples Nacional (emitente.crt: "1") ignora cst e sempre monta ICMSSN.
cst
string
Enum: 00204041516090
Default "00". Ignorado se o emitente for Simples Nacional.
base_calculorequired
number
vBC. Ignorado se cst for 40/41/51 (o XSD desse grupo não carrega base/alíquota/valor) ou se o emitente for Simples Nacional -- ainda assim precisa ser enviado (contrato exige os 3 campos sempre).
aliquotarequired
number
pICMS. Ver base_calculo.
valorrequired
number
vICMS. Ver base_calculo.
percentual_reducao_base
number
pRedBC -- só nos CST 20/90, opcional em ambos.
base_calculo_st_retido / valor_icms_st_retido / aliquota_icms_st_retido
number
vBCSTRet/vICMSSTRet/pICMSSTRet -- os 3 juntos são obrigatórios quando cst: "60".
valor_credito_outorgado
number
vCred -- opcional, só nos CST 60/90.
valor_icms_desonerado / codigo_beneficio_fiscal
number / string
vICMSDeson/cBenef -- opcionais nos CST 20/40/41/51/60/90, sempre os dois juntos ou nenhum.
pis
object
NÃO SUPORTADO -- rejeitado com erro 400 se enviado. CT-e modelo 57 não tem grupo de PIS/COFINS no layout nacional.
cofins
object
NÃO SUPORTADO -- ver pis.
object
Grupo <ICMSUFFim> (DIFAL partilha), sibling de icms. Só se aplica a prestação interestadual pra consumidor final não contribuinte do ICMS -- opcional, omita pra não emitir o grupo. Sem cálculo automático: os 7 campos são passthrough puro, calcule antes com POST /v1/tributario/icms/difal e informe os valores prontos.
base_calculorequired se icms_uf_fim enviado
number
vBCUFFim -- BC do ICMS na UF de término da prestação.
aliquota_fcprequired se icms_uf_fim enviado
number
pFCPUFFim -- % do Fundo de Combate à Pobreza na UF de término.
aliquota_internarequired se icms_uf_fim enviado
number
pICMSUFFim -- alíquota interna da UF de término.
aliquota_interestadualrequired se icms_uf_fim enviado
number
pICMSInter -- alíquota interestadual entre as UFs envolvidas.
valor_fcprequired se icms_uf_fim enviado
number
vFCPUFFim.
valor_icms_uf_fimrequired se icms_uf_fim enviado
number
vICMSUFFim -- fatia de partilha que fica com a UF de término.
valor_icms_uf_inirequired se icms_uf_fim enviado
number
vICMSUFIni -- fatia de partilha que fica com a UF de início.
object
Grupo <IBSCBS> (Reforma Tributária), sibling de icms. Opcional -- omita pra não emitir o grupo (ver aviso abaixo).
cstrequired se ibs_cbs enviado
string
classificacao_tributariarequired se ibs_cbs enviado
string
cClassTrib -- mesma tabela usada na NF-e/NFS-e.
base_calculorequired se ibs_cbs enviado
number
Sempre exigida explicitamente -- sem fórmula de derivação automática (diferente da NF-e por item, o CT-e não tem "item").
aliquota_ibs_uf / aliquota_cbs / valor_ibs_uf / valor_cbs
number
Opcionais -- omitidos, o motor calcula a partir da classificacao_tributaria (mesmo cálculo da NF-e/NFS-e). Informados, são só transmitidos, nunca recalculados.
required
object
Grupo <rodo>, exigido pois só o modal rodoviário é suportado hoje.
rntrcrequired
string
Registro Nacional de Transportadores Rodoviários de Carga do emitente.
object
Grupo <cobr>, sibling de infModal dentro de infCTeNorm. Mesma estrutura do cobranca da NF-e.
fatura
object
duplicatas
Array of objects
Array of objects
Grupo <veicNovos>, repetível, sibling de cobranca dentro de infCTeNorm. Só pra CT-e de transporte de veículo novo (0km) -- autocontido, sem referenciar outro documento.
chassirequired
string
Exatamente 17 caracteres [A-Z0-9].
codigo_correquired
string
cCor -- código da montadora (1-4 chars).
descricao_correquired
string
xCor.
codigo_modelorequired
string
cMod -- tabela RENAVAM.
valor_unitariorequired
number
vUnit.
valor_freterequired
number
vFrete.
observacao_globalizado
string
Grupo <infGlobalizado>/xObs (15-256 caracteres), sibling de cobranca dentro de infCTeNorm. Só pra CT-e Globalizado (regime especial) -- texto livre com a legislação/período do regime.
object
Grupo <infServVinc>, sibling de observacao_globalizado dentro de infCTeNorm. Só quando este CT-e presta um serviço vinculado a um CT-e multimodal já emitido.
chaves_cte_multimodalrequired se enviado
Array of strings
chCTeMultimodal -- chave(s) de 44 dígitos do(s) CT-e multimodal(is) vinculado(s).
object
Grupo <docAnt>, sibling de documentos dentro de infCTeNorm (antes do modal). Documentos de transporte anterior -- redespacho/subcontratação.
required se doc_anterior enviado
Array of objects
emiDocAnt -- emissor do documento anterior.
documentorequired
string
CNPJ ou CPF.
razao_socialrequired
string
xNome.
inscricao_estadual / uf
string
IE/UF -- par no XSD, os dois juntos ou nenhum.
required, 1 ou 2 itens
Array of objects
idDocAnt -- cada item é OU eletrônico (só chave_cte) OU papel (os 4 campos abaixo), nunca os dois nem nenhum.
chave_cte
string
idDocAntEle/chCTe -- 44 dígitos, modo eletrônico.
tipo_documento_papel
string
Enum: 07080910111213
tpDoc, modo papel -- 07 ATRE, 08 DTA, 09 Conh. Aéreo Internacional, 10 Conh./Carta de Porte Internacional, 11 Conh. Avulso, 12 TIF, 13 BL.
serie_papel / numero_papel / data_emissao_papel
string
serie/nDoc/dEmi, modo papel -- os 3 obrigatórios juntos com tipo_documento_papel.
subserie_papel
string
subser -- opcional, só no modo papel.
object
Grupo <pgtoVinc>, sibling de impostos no nível de infCte (fora de infCTeNorm) -- vínculo com o sistema de arrecadação de IBS/CBS (split payment, Reforma Tributária). Opcional.
required se pagamento_vinculado enviado
Array of objects
pgto, 1-99 itens. numero_sequencial e id_transacao precisam ser únicos entre os itens.
numero_sequencialrequired
string
nPag (atributo no XML).
id_transacaorequired
string
idTransacao (atributo no XML), 2-35 caracteres.
codigo_meio_pagamentorequired
string
tpMeioPgto -- código de 2 dígitos (IT DFe 2026.001).
cnpj_recebedorrequired
string
CNPJReceb -- CNPJ do recebedor do pagamento.
cnpj_base_psprequired
string
CNPJBasePSP -- CNPJ base (8 dígitos) da instituição de pagamento.
object
Grupo <infCteComp> -- obrigatório quando ide.tipo_cte: "1" (Complemento de Valores), ignorado nos demais casos. Substitui todo o corpo normal do CT-e (carga/documentos/rodoviario/cobranca/etc do payload são ignorados na montagem do XML quando tipo_cte é "1").
chaves_cte_complementadorequired se tipo_cte "1"
Array of strings
chCTe -- de 1 a 10 chaves (44 dígitos) do(s) CT-e sendo complementado(s).
object
Grupo <infCteSub>, sibling de cobranca dentro de infCTeNorm -- obrigatório quando ide.tipo_cte: "3" (Substituição), ignorado nos demais casos. Diferente do Complemento, mantém o corpo normal do CT-e -- só anexa a referência ao original.
chave_cte_originalrequired se tipo_cte "3"
string
chCte -- chave de 44 dígitos do CT-e sendo substituído.
indicador_altera_tomador
string
Enum: 1
indAlteraToma -- enviar "1" se o tomador mudou em relação ao CT-e substituído. Omitir se não mudou.
seguro
object
NÃO SUPORTADO no CT-e Normal (o grupo <seg> só existe no CT-e OS). Pra informar custo de seguro aqui, use valores.componentes com um item nomeado "SEGURO".
aereo / aquaviario / ferroviario / dutoviario
object
NÃO SUPORTADO -- mandar esses grupos não gera erro, mas também não tem efeito nenhum: o motor sempre monta o CT-e como rodoviário, ignorando silenciosamente qualquer coisa enviada aqui.

Exemplo mínimo

Apenas os campos obrigatórios -- veja o código ao lado.

Resposta de sucesso

200 OK -- já com o resultado final da SEFAZ nesta mesma resposta (status: "AUTHORIZED" em caso de sucesso). O campo detalhes traz o cstat/xmotivo reais devolvidos pela SEFAZ, além do protocolo.

Notificação assíncrona

Diferente da NF-e/NFC-e (que ainda não têm isso), cancelamento e Carta de Correção do CT-e aceitam callback_url opcional. Se enviado, a CentralFiscal faz um POST pra essa URL assim que o evento terminar na SEFAZ (fire-and-forget, timeout de 8s -- falha ao entregar o callback vira só um log, nunca afeta a resposta síncrona original). tipoEvento vem "cancelamento" ou "carta_correcao", conforme o evento -- veja o corpo do callback ao lado. A chamada síncrona original já retorna o resultado completo -- o webhook é só uma conveniência pra quem prefere não deixar a requisição aberta esperando.

Cancelamento

POST /v1/cte/cancelamentos -- mesmo padrão de evento da NF-e: exige chave_acesso, protocolo (da autorização original) e justificativa com pelo menos 15 caracteres. Aceita callback_url opcional -- ver Notificação assíncrona acima.

Carta de Correção Eletrônica (CCe)

POST /v1/cte/cartas-correcao -- evento 110110. Não cancela nem corrige valores, impostos ou participantes -- só serve para os campos que a legislação permite corrigir por evento (dados cadastrais, texto de observações etc.). O CT-e original continua AUTHORIZED em caso de sucesso -- é isso que aparece no campo status da resposta, não um estado novo. Exige chave_acesso e correcoes (lista de {grupo_alterado, campo_alterado, valor_alterado}, pelo menos um item). Aceita callback_url opcional.

Consultas

Duas consultas síncronas direto na SEFAZ (não criam evento nem alteram nada em platform.fiscal_transmission -- são só perguntas):

  • POST /v1/cte/consultas/protocolo -- reconsulta o resultado de uma transmissão pela chave_acesso. Útil quando a emissão ou o cancelamento voltou com status: "INDETERMINATE" e você quer confirmar o desfecho real sem esperar o retry automático.
  • POST /v1/cte/consultas/status-servico -- pergunta se o webservice de autorização da SEFAZ da UF está no ar. Exige uf (ou codigo_uf diretamente) -- não depende de nenhum documento.

Outros eventos

Além de Cancelamento/CCe, o CT-e tem outros eventos oficiais -- nenhum deles muda o status do CT-e (continua AUTHORIZED), cada um só registra algo a mais no histórico do documento. Todos aceitam callback_url opcional (mesmo formato de webhook do Cancelamento/CCe).

  • POST /v1/cte/registros-multimodal -- evento 110160, Registro Multimodal. Só se aplica quando este CT-e presta serviço vinculado a um CT-e multimodal (ver servico_vinculado na emissão). Exige chave_acesso e registro (texto livre, 15-1000 caracteres); numero_documento é opcional.
  • POST /v1/cte/prestacoes-desacordo -- evento 610110, Prestação do Serviço em Desacordo. Registrado pelo tomador quando o serviço não ocorreu conforme combinado. Exige chave_acesso e observacao (texto livre, 15-255 caracteres).
  • POST /v1/cte/prestacoes-desacordo/cancelamentos -- evento 610111, cancela um evento de Prestação em Desacordo já registrado. Exige chave_acesso e protocolo_evento_original (protocolo do evento 610110 a cancelar).
  • POST /v1/cte/vinculacoes-pagamento -- evento 110300 (Reforma Tributária). Diferente de impostos.pagamento_vinculado na emissão (que vai dentro do XML na hora de emitir): este é um evento registrado depois, referenciando o protocolo de autorização do CT-e. Exige chave_acesso, protocolo e pagamento (mesmos 5 campos de impostos.pagamento_vinculado.pagamentos[] -- ver seção de impostos acima).
  • POST /v1/cte/vinculacoes-pagamento/cancelamentos -- evento 110301, cancela uma Vinculação de Pagamento já registrada. Exige chave_acesso, protocolo (do CT-e) e protocolo_evento_original (do evento 110300 a cancelar).
  • POST /v1/cte/comprovantes-entrega -- evento 110180, Comprovante de Entrega Eletrônico. Exige chave_acesso, protocolo, data_hora_entrega, documento_recebedor (2-20 caracteres), nome_recebedor (2-60 caracteres), hash_entrega (SHA1+Base64 -- fornecido pronto por quem capturou a assinatura/foto da entrega, a CentralFiscal nunca calcula esse hash) e data_hora_hash_entrega. latitude/longitude e chaves_nfe_entregues[] (até 2000 chaves) são opcionais.
  • POST /v1/cte/comprovantes-entrega/cancelamentos -- evento 110181, cancela um Comprovante de Entrega já registrado. Exige chave_acesso, protocolo e protocolo_evento_original (do evento 110180 a cancelar).
  • POST /v1/cte/insucessos-entrega -- evento 110190, Insucesso na Entrega Eletrônico. Exige chave_acesso, protocolo, data_hora_tentativa_entrega e tipo_motivo (1 recebedor não encontrado, 2 recusa do recebedor, 3 endereço inexistente, 4 outros -- exige justificativa_motivo junto, 15-256 caracteres). numero_tentativa, latitude/longitude, hash_tentativa_entrega+ data_hora_hash_tentativa_entrega e chaves_nfe_com_insucesso[] são opcionais.
  • POST /v1/cte/insucessos-entrega/cancelamentos -- evento 110191, cancela um Insucesso na Entrega já registrado. Exige chave_acesso, protocolo e protocolo_evento_original (do evento 110190 a cancelar).
  • POST /v1/cte/epec -- evento 110113, EPEC (Emissão Prévia em Contingência). Diferente dos demais: não referencia um protocolo -- é declarado antes da autorização, quando o webservice de autorização da SEFAZ está fora do ar. É um replay dos próprios dados do CT-e: exige chave_acesso, justificativa (15+ caracteres), valor_icms, valor_prestacao, valor_carga, tomador ( papel 0-4, uf, documento, inscricao_estadual opcional), uf_inicio, uf_fim e data_hora_emissao (do CT-e original). valor_icms_st é opcional.
💡
Reconsultar qualquer um desses eventos depois: GET /v1/cte/registros-multimodal/{id}, GET /v1/cte/prestacoes-desacordo/{id}, GET /v1/cte/vinculacoes-pagamento/{id}, GET /v1/cte/comprovantes-entrega/{id}, GET /v1/cte/epec/{id} ou GET /v1/cte/insucessos-entrega/{id} (mesmo transmissao_id devolvido na resposta de criação).
⚠️
Evento fora do escopo desta página: Informações da GTV (110170) -- o CT-e tem 13 eventos oficiais ao todo; os 12 aplicáveis ao CT-e Normal (modelo 57) já estão disponíveis (Cancelamento, CCe, Registro Multimodal, Prestação em Desacordo + cancelamento, Vinculação de Pagamento + cancelamento, Comprovante de Entrega + cancelamento, Insucesso na Entrega + cancelamento, EPEC). O único que falta, Informações da GTV, pertence exclusivamente ao CT-e OS/Guia de Transporte de Valores (modelo 67) -- e a CentralFiscal ainda não tem nenhuma infraestrutura de eventos para CT-e OS (só emissão). Fica registrado como pendência para quando houver demanda real de transporte de valores, não como lacuna do motor de CT-e Normal.

O que ainda não existe

Único grupo do leiaute oficial (cteTiposBasico_v4.00.xsd, versão RTC da Reforma Tributária) que o motor ainda não suporta:

⚠️
Imposto Seletivo (IS) -- diferente de tudo mais nesta página, não é "só o motor não suporta ainda": o leiaute do CT-e (NT2026.002 RTC) nem tem o grupo IS/ISTot dentro de <imp> -- diferente da NF-e, que já tem os dois opcionais no próprio XSD (também sem motor). Também não existe hoje nenhuma tabela oficial de produto/alíquota de IS carregada na CentralFiscal. Sem os dois, não há como emitir CT-e com IS ainda, independente de reforma no motor.

Próximos passos

  • Reconsultar mais tarde, se precisar: GET /v1/cte/emissoes/{transmissao_id} ou POST /v1/cte/consultas/protocolo.
  • Cancelar, se necessário: POST /v1/cte/cancelamentos.
  • Corrigir um dado cadastral/observação sem cancelar: POST /v1/cte/cartas-correcao.
  • Baixar o DACTE (PDF) de um CT-e autorizado: disponível na Área do Cliente → Transmissões, mesmo padrão do DANFE (NF-e) -- não é exposto como URL na resposta desta API.
  • Transporte de pessoas/valores/excesso de bagagem é outro documento -- CT-e OS (modelo 67), fora desta página.