Skip to main content

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

1

Conta e API Key

Gere sua API Key em Dashboard → Configurações → API Keys.
2

Empresa emissora (transportadora)

Cadastre o CNPJ da transportadora via POST /companies. Guarde o id como issuerId.
3

Certificado digital

Faça upload do .pfx via POST /companies/{issuerId}/certificate.
4

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

CampoTipoObrigatórioDescrição
issuerIdstring (UUID)SimID da transportadora emissora
naturezaOperacaostringSimEx: "PRESTACAO DE SERVICO DE TRANSPORTE"
cfopstringSim5353 (estadual) ou 6353 (interestadual)
valorTotalnúmeroSimValor total do frete em R$
remetenteobjetoSimQuem envia a carga
destinatarioobjetoSimQuem recebe a carga
modalobjetoSimDados do modal de transporte
documentosarraySimNFes vinculadas ao transporte
icmsobjetoSimDados tributários
expedidorobjetoNãoSe diferente do remetente
recebedorobjetoNãoSe diferente do destinatário
seguroobjetoNãoSeguro da carga
CampoTipoObrigatórioDescrição
rntrcstringSimRegistro Nacional de Transportadores
veiculo.placastringSimPlaca do veículo trator
veiculo.ufstringSimUF da placa
motorista.nomestringSimNome do motorista
motorista.cpfstringSimCPF 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.

Próximos passos

MDFe

Manifesto obrigatório para transporte interestadual

Webhooks

Receba eventos de CTe em tempo real