Docs/CT-e

CT-e — Conhecimento de Transporte Eletrônico

API-first para emissão, consulta e cancelamento de CT-e (modelo 57) e CT-e OS (modelo 67). Não passa por venda nem por invoice de produto/serviço. A emissão é sempre em produção (SEFAZ tpAmb=1).

Ver requisitos de autenticação

Pré-requisitos

  • Certificado digital A1 válido na empresa
  • Módulo CT-e ativo em settings.cte.active (painel em Configurações → Fiscal → CT-e). A API pública PUT /v1/companies/{companyId} atualiza só dados cadastrais — não envia settings de CT-e.
  • Série e próximo número em settings.cte
  • Recurso features.cteEmission habilitado na conta
  • Assinatura com direito a emitir (mesmo limite mensal de notas)

Configuração na empresa

JSON
{
  "settings": {
    "cte": {
      "active": true,
      "series": 1,
      "number": 1,
      "rntrc": "12345678"
    }
  }
}

Fluxo assíncrono

POST /v1/companies/{companyId}/cte cria o documento e enfileira a transmissão à SEFAZ. A resposta imediata traz status: processing (ou pending se o módulo estiver inativo). O desfecho chega por webhook (cte.authorized / cte.rejected) ou por GET /v1/companies/{companyId}/cte/{id}.

Idempotência

Informe Idempotency-Key (header) ou externalId no body. A chave é única por empresa na coleção ctes.

CT-e OS

Use POST /v1/companies/{companyId}/cte-os para o modelo 67 (pessoas, valores ou excesso de bagagem). Requer serviceDescription, tomador (takerParty, exceto bagagem) e taf ou stateAgencyRegistration. Consulta e cancelamento usam as mesmas rotas /v1/companies/{companyId}/cte.