← InícioFleetPay / API

Emitir contra-CT-e (subcontratação ou redespacho)

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

POST/fiscal/cte/contra
issueContraCteBase 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.

Emite o CT-e da transportadora subcontratada contra o CT-e da contratante, referenciando a chave dele em infDocAnt e com a contratante como tomador.

tipo_servico diz o ide/tpServ do contra-CT-e: 1 subcontratação (padrão), 2 redespacho, 3 redespacho intermediário. No redespacho a rota é o trecho executado, não a viagem da contratante: 2 e 3 exigem origem e destino (400 validacao sem eles); um trecho igual à viagem inteira do CT-e original responde 422 contra_cte_invalido (redespacho_exige_rota), e um CT-e original vinculado a multimodal, 422 contra_cte_invalido (origem_incompativel_com_tipo). A regra de tributação é resolvida pela rota do trecho e pelo tipo.

O payload é enxuto: informe a chave do CT-e original (que já precisa ter chegado pela caixa do Monitor DFe), o motorista (por CPF) e o veículo (por placa) que executam o trecho, e o valor do frete — o repasse ao motorista. Remetente, destinatário, carga, rota e tributação são lidos do XML do CT-e original.

valor_frete é opcional: sem ele, a regra de precificação da transportadora sugere o valor do trecho. Uma resposta 202 exige polling em /cte/{cte_uuid}/consulta.

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

chave_cte_originalstringObrigatório

Chave de acesso (44 dígitos) do CT-e da contratante.

minLength44
maxLength44
motoristaobjectObrigatório
placastringObrigatório

Placa do veículo (padrão brasileiro, ex. ABC1D23 ou ABC1234).

valor_fretenumber · doubleOpcional

Valor do repasse ao motorista pelo trecho. Opcional.

minimum0.01
tipo_servicointeger | nullOpcional

ide/tpServ do contra-CT-e: 1 subcontratação (padrão), 2 redespacho, 3 redespacho intermediário.

1 · 2 · 3 · null

Respostas

202 Resposta HTTP

Emissão aceita ou com resultado ainda não conclusivo.

application/json

Headers

X-Request-Id

Identificador de correlação da chamada.

400 Resposta HTTP

Requisição inválida

application/json

errorobjectOpcional
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"
  ],
  "summary": "Emitir contra-CT-e (subcontratação ou redespacho)",
  "description": "Emite o CT-e da transportadora **subcontratada** contra o CT-e da contratante, referenciando\na chave dele em `infDocAnt` e com a contratante como tomador.\n\n`tipo_servico` diz o `ide/tpServ` do contra-CT-e: `1` subcontratação (padrão), `2`\nredespacho, `3` redespacho intermediário. No redespacho a rota é o **trecho** executado,\nnão a viagem da contratante: `2` e `3` exigem `origem` e `destino` (`400` `validacao`\nsem eles); um trecho igual à viagem inteira do CT-e original responde `422`\n`contra_cte_invalido` (`redespacho_exige_rota`), e um CT-e original vinculado a\nmultimodal, `422` `contra_cte_invalido` (`origem_incompativel_com_tipo`). A regra de\ntributação é resolvida pela rota do trecho e pelo tipo.\n\nO payload é enxuto: informe a **chave do CT-e original** (que já precisa ter chegado pela\ncaixa do Monitor DFe), o **motorista** (por CPF) e o **veículo** (por placa) que executam o\ntrecho, e o **valor do frete** — o repasse ao motorista. Remetente, destinatário, carga,\nrota e tributação são lidos do XML do CT-e original.\n\n`valor_frete` é opcional: sem ele, a regra de precificação da transportadora sugere o valor\ndo trecho. Uma resposta 202 exige polling em `/cte/{cte_uuid}/consulta`.\n",
  "operationId": "issueContraCte",
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "required": [
            "chave_cte_original",
            "motorista",
            "placa"
          ],
          "properties": {
            "chave_cte_original": {
              "type": "string",
              "minLength": 44,
              "maxLength": 44,
              "description": "Chave de acesso (44 dígitos) do CT-e da contratante."
            },
            "motorista": {
              "type": "object",
              "required": [
                "cpf"
              ],
              "properties": {
                "cpf": {
                  "type": "string",
                  "pattern": "^[0-9]{11}$",
                  "description": "CPF do motorista que executa o trecho (somente dígitos)."
                }
              }
            },
            "placa": {
              "type": "string",
              "description": "Placa do veículo (padrão brasileiro, ex. ABC1D23 ou ABC1234)."
            },
            "valor_frete": {
              "type": "number",
              "format": "double",
              "minimum": 0.01,
              "description": "Valor do repasse ao motorista pelo trecho. Opcional."
            },
            "tipo_servico": {
              "type": [
                "integer",
                "null"
              ],
              "enum": [
                1,
                2,
                3,
                null
              ],
              "description": "`ide/tpServ` do contra-CT-e: `1` subcontratação (padrão), `2` redespacho, `3` redespacho intermediário."
            },
            "origem": {
              "$ref": "#/components/schemas/ContraCteLoteRota"
            },
            "destino": {
              "$ref": "#/components/schemas/ContraCteLoteRota"
            }
          }
        }
      }
    }
  },
  "responses": {
    "202": {
      "description": "Emissão aceita ou com resultado ainda não conclusivo.",
      "headers": {
        "X-Request-Id": {
          "$ref": "#/components/headers/RequestId"
        }
      },
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/CteIssueEnvelope"
          }
        }
      }
    },
    "400": {
      "$ref": "#/components/responses/Erro400"
    },
    "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/contra",
  "parameters": []
}