← InícioFleetPay / API

Entregar um CT-e emitido pela sua transportadora

Parâmetros, estrutura de dados e respostas do contrato versionado.

POST/fiscal/cte-emitidos
receiveEmittedCteBase de Homologação: https://api.fleetpay.site/v1

Descrições técnicas preservadas do contrato versionado. Exemplos de dados foram omitidos da cópia pública.

Entrega à FleetPay o XML de um CT-e que a sua própria transportadora emitiu. É por aqui que o documento entra no fluxo operacional e financeiro da plataforma: vira serviço, entrega e recebível.

Por que existe

Até aqui esse caminho dependia de um parceiro externo de armazenamento de XML: um processo nosso ia buscar o documento lá e trazia para dentro. Aquele processo opera sobre um único CNPJ, então atende uma empresa e mais nenhuma.

Aqui quem entrega é o seu sistema, autenticado pela sua credencial. O documento segue exatamente o mesmo processamento de sempre — o que muda é quem traz.

Como enviar

Três formas, escolha uma:

  • application/json com o campo xml — o XML cru ou em base64. A codificação é detectada pelo conteúdo; não há flag a acertar.
  • multipart/form-data com o campo arquivo.

Aceita o cteProc (com protocolo) ou o CTe cru, até 2 MB.

O que a FleetPay lê do XML

Você não monta payload nenhum — o XML basta. São lidos: a chave de acesso, a data de emissão, o emitente (a sua transportadora), o tomador do frete (pelo código toma, seja ele remetente, expedidor, recebedor, destinatário ou o grupo toma4), a rota (origem e destino, inclusive nos casos de redespacho), o valor da prestação e a chave da NF-e transportada.

Reenviar é seguro

A operação é idempotente pela chave de acesso. O primeiro envio responde 201; os seguintes respondem 200 com first_reception: false e não reprocessam o documento. Retry de rede e reprocessamento noturno não criam serviço duplicado nem erro.

Só o CT-e em que você é a emitente

O cnpj_carrier é lido do grupo emit do XML e precisa ser o da transportadora autenticada. Um CT-e de outra empresa é recusado — o CT-e da contratante, que dá origem ao seu contra-CT-e, entra por POST /fiscal/cte-subcontratacao.

Autenticação

[
  {
    "oauth2": []
  },
  {
    "chaveApi": []
  }
]
A disponibilidade depende do ambiente, dos escopos habilitados e do provedor. Esta referência não executa chamadas nem recebe credenciais.

Parâmetros

Nenhum parâmetro declarado nesta operação.

Corpo da Requisição

Obrigatório

application/json

xmlstringObrigatório

O XML do CT-e, cru ou em base64. Aceita cteProc (com protocolo) ou CTe.

maxLength2097152

multipart/form-data

arquivostring · binaryObrigatório

XML do CT-e, até 2 MB.

Respostas

200 Resposta HTTP

Documento já entregue antes. A operação é idempotente: nada é reprocessado e first_reception vem false.

application/json

Headers

X-Request-Id

Identificador de correlação da chamada.

201 Resposta HTTP

CT-e recebido pela primeira vez e encaminhado ao processamento.

application/json

Headers

X-Request-Id

Identificador de correlação da chamada.

400 Resposta HTTP

Payload inválido.

application/json

Headers

X-Request-Id

Identificador de correlação da chamada.

401 Resposta HTTP

Chave de API FleetPay ausente ou inválida.

application/json

Headers

X-Request-Id

Identificador de correlação da chamada.

403 Resposta HTTP

Escopo fiscal desabilitado na chave, ou chave sem transportadora ativa.

application/json

Headers

X-Request-Id

Identificador de correlação da chamada.

422 Resposta HTTP

Payload inválido, pendência ou regra de negócio.

application/json

Headers

X-Request-Id

Identificador de correlação da chamada.

429 Resposta HTTP

Limite por transportadora excedido.

application/json

Headers

X-Request-Id

Identificador de correlação da chamada.

Retry-After

Segundos até uma nova tentativa.

500 Resposta HTTP

Falha interna sem detalhes de integrações operacionais.

application/json

Headers

X-Request-Id

Identificador de correlação da chamada.

Definição Completa da Operação
{
  "tags": [
    "CT-e emitidos"
  ],
  "summary": "Entregar um CT-e emitido pela sua transportadora",
  "description": "Entrega à FleetPay o XML de um CT-e que a **sua própria transportadora emitiu**. É por\naqui que o documento entra no fluxo operacional e financeiro da plataforma: vira serviço,\nentrega e recebível.\n\n## Por que existe\n\nAté aqui esse caminho dependia de um parceiro externo de armazenamento de XML: um\nprocesso nosso ia buscar o documento lá e trazia para dentro. Aquele processo opera sobre\num único CNPJ, então atende uma empresa e mais nenhuma.\n\nAqui quem entrega é o **seu sistema**, autenticado pela sua credencial. O documento segue\nexatamente o mesmo processamento de sempre — o que muda é quem traz.\n\n## Como enviar\n\nTrês formas, escolha uma:\n\n- `application/json` com o campo `xml` — o XML cru **ou em base64**. A codificação é\n  detectada pelo conteúdo; não há flag a acertar.\n- `multipart/form-data` com o campo `arquivo`.\n\nAceita o `cteProc` (com protocolo) ou o `CTe` cru, até 2 MB.\n\n## O que a FleetPay lê do XML\n\nVocê não monta payload nenhum — o XML basta. São lidos: a chave de acesso, a data de\nemissão, o emitente (a sua transportadora), o **tomador do frete** (pelo código `toma`,\nseja ele remetente, expedidor, recebedor, destinatário ou o grupo `toma4`), a rota\n(origem e destino, inclusive nos casos de redespacho), o valor da prestação e a chave da\nNF-e transportada.\n\n## Reenviar é seguro\n\nA operação é **idempotente pela chave de acesso**. O primeiro envio responde `201`; os\nseguintes respondem `200` com `first_reception: false` e **não reprocessam** o documento.\nRetry de rede e reprocessamento noturno não criam serviço duplicado nem erro.\n\n## Só o CT-e em que você é a emitente\n\nO `cnpj_carrier` é lido do grupo `emit` do XML e precisa ser o da transportadora\nautenticada. Um CT-e de outra empresa é recusado — o CT-e da contratante, que dá origem\nao seu contra-CT-e, entra por `POST /fiscal/cte-subcontratacao`.\n",
  "operationId": "receiveEmittedCte",
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/EmittedCteInput"
        }
      },
      "multipart/form-data": {
        "schema": {
          "type": "object",
          "required": [
            "arquivo"
          ],
          "properties": {
            "arquivo": {
              "type": "string",
              "format": "binary",
              "description": "XML do CT-e, até 2 MB."
            }
          }
        }
      }
    }
  },
  "responses": {
    "200": {
      "$ref": "#/components/responses/EmittedCteAlreadyKnown"
    },
    "201": {
      "$ref": "#/components/responses/EmittedCteAccepted"
    },
    "400": {
      "$ref": "#/components/responses/ValidationFailed"
    },
    "401": {
      "$ref": "#/components/responses/Unauthorized"
    },
    "403": {
      "$ref": "#/components/responses/Forbidden"
    },
    "422": {
      "$ref": "#/components/responses/ValidationOrBusinessRuleFailed"
    },
    "429": {
      "$ref": "#/components/responses/RateLimited"
    },
    "500": {
      "$ref": "#/components/responses/InternalError"
    }
  },
  "method": "POST",
  "path": "/fiscal/cte-emitidos",
  "parameters": []
}