Documentação / CT-e v1
API REST fiscal

CT-e como módulo próprio da plataforma, com pipeline, eventos e DACTE dedicados.

Esta documentação descreve a versão pública atual da API fiscal da Contora, com base compartilhada de empresas, certificados, chaves, filas, webhooks e artefatos para NF-e, NFC-e, NFS-e, CT-e e MDF-e. NF-e, NFC-e e NFS-e operam em produção regular; CT-e e MDF-e em produção assistida e controlada.

Atualizado em .

Status atual

Status da API Produção Assistida Os endpoints públicos de CT-e e geração de DACTE já estão disponíveis, com abertura gradual por conta e cenário operacional validado.
Superfície técnica O contrato público já cobre CT-e 4.00 com autorização assíncrona, cancelamento, Carta de Correção (CC-e), artefatos e DACTE PDF.

Ciclo de Vida do CT-e

O CT-e (Conhecimento de Transporte Eletrônico) compartilha a mesma base operacional de filas, webhook e certificados da plataforma.

Leitura prática: a superfície pública de CT-e já existe, está funcional e opera em produção assistida, para qualquer operação, tributação e rotina de transporte suportada.
Foco em performance: A transmissão de CT-e 4.00 é síncrona com a SEFAZ, mas o processamento da Contora é enfileirado de forma assíncrona para garantir alta disponibilidade mesmo sob instabilidade da SEFAZ.
Formatos de Endpoints Suportados:

• Global / Flat (Recomendado): /api/v1/cte/drafts... (a empresa é identificada dinamicamente pelo token de API).
• Hierárquico (Multi-empresa): /api/v1/companies/{company_id}/cte/drafts... (caso o token gerencie múltiplos emissores e você queira isolá-los na URL).

1. Criar Rascunho de CT-e

Envie os dados da prestação de serviço de transporte para criar um rascunho fiscal:

curl -X POST \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{
    "environment": "homologacao",
    "payload": {
      "number": 202,
      "series": 1,
      "cfop": "5351",
      "nature_operation": "Prestacao de Servico de Transporte",
      "value_prest": 150.00,
      "value_rec": 150.00,
      "recipient": {
        "name": "Destinatario CTe SA",
        "document": "12345678909",
        "state_registration_indicator": 9,
        "address": {
          "street": "Rua Quatro",
          "number": "400",
          "district": "Bairro Alto",
          "city_code": "3106200",
          "city_name": "Belo Horizonte",
          "state_code": "MG",
          "postal_code": "30140071"
        }
      },
      "carga": {
        "valor": 5000.00,
        "produto_predominante": "PECAS AUTOMOTIVAS"
      },
      "rntrc": "87654321",
      "nfe_keys": [
        "35260744295808000119550010000001011998877665"
      ]
    }
  }' \
  https://fiscal.contora.com.br/api/v1/cte/drafts

2. Gerar XML sem Assinatura

Para visualizar e validar a estrutura do XML antes de assinar:

curl -X POST \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{ "sign": false }' \
  https://fiscal.contora.com.br/api/v1/cte/drafts/{draft_id}/build

3. Enfileirar Autorização (Assíncrono)

Envia o documento para processamento na fila da SEFAZ utilizando o certificado A1 cadastrado:

curl -X POST \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{ "action": "authorize" }' \
  https://fiscal.contora.com.br/api/v1/cte/drafts/{draft_id}/dispatch

4. Obter Status e Consultar DACTE

Após a autorização, baixe os artefatos gerados ou consulte o status:

# Consultar status consolidado
curl -H "Authorization: Bearer {token}" \
  https://fiscal.contora.com.br/api/v1/cte/drafts/{draft_id}/status

# Baixar DACTE PDF
curl -H "Authorization: Bearer {token}" -OJ \
  https://fiscal.contora.com.br/api/v1/cte/drafts/{draft_id}/artifacts/pdf_danfe

5. Cancelamento e Carta de Correção

Envie eventos de cancelamento ou CC-e para o CT-e:

# Cancelamento
curl -X POST \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{ "reason": "Justificativa de cancelamento do CT-e." }' \
  https://fiscal.contora.com.br/api/v1/cte/drafts/{draft_id}/cancel

# Carta de Correção (CC-e)
curl -X POST \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{ "text": "Texto da correcao do CT-e contendo as alteracoes validas." }' \
  https://fiscal.contora.com.br/api/v1/cte/drafts/{draft_id}/corrections