Guia: CTe
Emita e gerencie Conhecimentos de Transporte Eletrônico (CTe, modelo 57) via Engine API.
CTe: Conhecimento de Transporte Eletrônico
O CTe (modelo 57) é o documento fiscal obrigatório para transporte de cargas no Brasil. Substitui o Conhecimento de Transporte em papel e deve ser emitido pela transportadora antes do início do transporte.
Endpoint base: https://api.engineapi.com.br/cte
Emissão
Emita via JSON. Sem XML, sem SOAP
Cancelamento
Cancele em até 24h após autorização
Carta de Correção
Corrija dados sem cancelar o documento
Pré-requisitos
Conta e API Key
Gere sua API Key em Dashboard → Configurações → API Keys.
Empresa emissora (transportadora)
Cadastre o CNPJ da transportadora via POST /companies. Guarde o id como issuerId.
Certificado digital
Faça upload do .pfx via POST /companies/{issuerId}/certificate.
Ambiente definido
Use environment: 2 (homologação) para testes, environment: 1 para produção.
Verificar Status do Serviço
Antes de emitir, confirme que a SEFAZ está operacional para CTe:
curl https://api.engineapi.com.br/cte/status?uf=SP \
-H "x-api-key: SUA_API_KEY"
{
"status": "online",
"model": "57",
"service": "CTe",
"provider": "acbr",
"uf": "SP"
}
Emitir CTe
curl -X POST https://api.engineapi.com.br/cte \
-H "x-api-key: SUA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"issuerId": "ISSUER_ID",
"naturezaOperacao": "PRESTACAO DE SERVICO DE TRANSPORTE",
"cfop": "5353",
"valorTotal": 850.00,
"remetente": {
"cnpj": "11222333000144",
"nome": "Empresa Remetente SA",
"endereco": {
"logradouro": "Rua das Indústrias",
"numero": "100",
"bairro": "Industrial",
"codigoMunicipio": "3550308",
"municipio": "São Paulo",
"uf": "SP",
"cep": "04001000"
}
},
"destinatario": {
"cnpj": "99888777000155",
"nome": "Empresa Destinatária Ltda",
"endereco": {
"logradouro": "Av Rio Branco",
"numero": "200",
"bairro": "Centro",
"codigoMunicipio": "3304557",
"municipio": "Rio de Janeiro",
"uf": "RJ",
"cep": "20040020"
}
},
"modal": {
"tipo": "rodoviario",
"rntrc": "12345678",
"veiculo": {
"placa": "ABC1234",
"uf": "SP"
},
"motorista": {
"nome": "João Silva",
"cpf": "12345678901"
}
},
"documentos": [{
"chaveNFe": "35260211222333000144550010000000011000000019"
}],
"icms": {
"origem": 0,
"cst": "00",
"baseCalculo": 850.00,
"aliquota": 12,
"valor": 102.00
}
}'
Campos de Referência
Raiz
| Campo | Tipo | Obrigatório | Descrição |
|-------|------|-------------|-----------|
| issuerId | string (UUID) | Sim | ID da transportadora emissora |
| naturezaOperacao | string | Sim | Ex: "PRESTACAO DE SERVICO DE TRANSPORTE" |
| cfop | string | Sim | 5353 (estadual) ou 6353 (interestadual) |
| valorTotal | número | Sim | Valor total do frete em R$ |
| remetente | objeto | Sim | Quem envia a carga |
| destinatario | objeto | Sim | Quem recebe a carga |
| modal | objeto | Sim | Dados do modal de transporte |
| documentos | array | Sim | NFes vinculadas ao transporte |
| icms | objeto | Sim | Dados tributários |
| expedidor | objeto | Não | Se diferente do remetente |
| recebedor | objeto | Não | Se diferente do destinatário |
| seguro | objeto | Não | Seguro da carga |
Modal Rodoviário
| Campo | Tipo | Obrigatório | Descrição |
|-------|------|-------------|-----------|
| rntrc | string | Sim | Registro Nacional de Transportadores |
| veiculo.placa | string | Sim | Placa do veículo trator |
| veiculo.uf | string | Sim | UF da placa |
| motorista.nome | string | Sim | Nome do motorista |
| motorista.cpf | string | Sim | CPF do motorista |
Response de Sucesso
{
"success": true,
"cte": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"accessKey": "35260211222333000144570010000000011000000019",
"status": "AUTHORIZED",
"protocol": "135260000001234",
"xmlUrl": "/cte/xml/354602...",
"pdfUrl": "/cte/pdf/354602...",
"createdAt": "2026-04-27T02:00:00.000Z"
}
}
Cancelar CTe
curl -X POST https://api.engineapi.com.br/cte/35260.../cancelar \
-H "x-api-key: SUA_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "motivo": "Erro nos dados do remetente informados" }'
O cancelamento de CTe é permitido em até 24 horas após a autorização e requer um motivo com no mínimo 15 caracteres.
Carta de Correção (CC-e)
curl -X POST https://api.engineapi.com.br/cte/35260.../cce \
-H "x-api-key: SUA_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "correcao": "Corrijo a placa do veículo de ABC1234 para XYZ9876" }'
São permitidas até 20 cartas de correção por CTe. A CC-e não pode alterar o remetente, destinatário, valores ou dados fiscais. Apenas informações complementares.