← InicioFleetPay / API

Consultar un vehículo con el operador de peaje

Parámetros, estructura de datos y respuestas del contrato versionado.

GET/consultas/veiculo-pedagio
consultarVeiculoPedagioBase de Pruebas: https://api.fleetpay.site/v1

Las descripciones técnicas se traducen del contrato versionado. Se conservan los identificadores y el JSON originales; se omiten los ejemplos de datos.

Lo que la operadora indicada sabe de una matrícula: si el vehículo tiene tag y si se puede emitir un vale de peaje para él.

El contrato admite varias operadoras

operadora es obligatoria; los cuatro valores aceptados corresponden a las cuatro emisoras de tag del mercado:

operadoraDisponible actualmente
sem_pararSem PararSí
conectcarConectCartodavía no
veloeVeloetodavía no
move_maisMove Maistodavía no

Una operadora real todavía no disponible devuelve 422 con operadora_indisponivel, distinto del 400 de una operadora inexistente. La diferencia importa: en un caso debe esperar a que se habilite; en el otro, corregir la solicitud. Cuando se admita otra operadora, su integración no cambia: el campo y el código de error ya existen.

Requisito de la empresa que consulta: tener el registro fiscal completo, incluido el certificado digital A1 enviado en Configuración. En caso contrario, la respuesta es 422 con empresa_nao_habilitada.

Requiere el ámbito consultas habilitado en el panel.

Las dos preguntas son independientes

Es un punto en el que las integraciones suelen equivocarse, por lo que el contrato mantiene deliberadamente las respuestas en campos separados:

tem_taghabilitado_vale_pedagio
vía automáticatruetrue
sin tag, pero habilitado para circularfalsetrue
con tag, bloqueado por la operadoratruefalse

Las dos últimas filas son la clave. El vale de peaje tradicional no requiere tag: un vehículo sin tag puede recibir un vale. Y un vehículo con tag puede estar bloqueado por la operadora por otro motivo.

Unificar ambos campos hará que su integración rechace un flete que podría realizarse.

tem_tag es una respuesta, no una inferencia

No deduzca la ausencia de tag porque identificador_tag sea nulo. tem_tag proporciona la respuesta; identificador_tag es el código y solo acompaña a los vehículos con tag.

404 es distinto de "sin tag"

Una matrícula desconocida para la operadora devuelve 404 veiculo_nao_encontrado, lo que requiere una acción distinta de la de un vehículo registrado sin tag:

RespuestaQué hacer
404registrar el vehículo con la operadora de peaje
200 con tem_tag: falseemitir el vale de peaje tradicional

Modo simulado en homologación

Esta consulta no tiene una operadora contratada: en homologación, FleetPay genera una respuesta determinista que no refleja el registro real de ningún vehículo. Cada respuesta incluye verificacao: "simulada" dentro del dato, no solo en el contenedor, porque un tem_tag guardado en su base debe conservar la indicación de que no hubo una consulta real.

El contrato de solicitud y respuesta ya es definitivo: puede integrar ahora.

Solo responden los vehículos del conjunto de pruebas

Una matrícula fuera del conjunto devuelve 404: no existe una respuesta genérica. Existió durante un día y se eliminó: cualquier matrícula introducida recibía un tag ficticio con apariencia real, y un tem_tag: true guardado en su base no advierte que la matrícula nunca existió.

MatrículaEstado
TJD2D33con tag, habilitado: la vía automática
AKS1I02sin tag, pero habilitado: el vale tradicional no requiere tag
FTO0C61con tag, no habilitado: el tag por sí solo no autoriza
cualquier otra matrícula404 veiculo_nao_encontrado

Autenticación

[
  {
    "oauth2": []
  },
  {
    "chaveApi": []
  }
]
La disponibilidad depende del entorno, los permisos habilitados y el proveedor. Esta referencia no ejecuta solicitudes ni recibe credenciales.

Parámetros

placaquery · stringObligatorio

Matrícula brasileña antigua (ABC1234) o Mercosur (ABC1D23), sin separadores.

Restricciones
{
  "type": "string",
  "pattern": "^[A-Za-z]{3}[0-9][A-Za-z0-9][0-9]{2}$"
}
operadoraquery · stringObligatorio

Operadora de tag consultada. Actualmente solo está disponible sem_parar; las demás devuelven 422 operadora_indisponivel hasta que sean compatibles.

Restricciones
{
  "type": "string",
  "enum": [
    "sem_parar",
    "conectcar",
    "veloe",
    "move_mais"
  ]
}

Respuestas

200 Respuesta HTTP

Información de la operadora sobre la matrícula.

application/json

400 Respuesta HTTP

validacao — la matrícula no fue informada o no cumple el formato aceptado.

application/json

errorobjectOpcional
401 Respuesta HTTP

Sin autenticación (autenticacao): credencial ausente, inválida o vencida, incluida una clave API utilizada en el entorno incorrecto. La clave de homologación no es válida en producción, ni la de producción en homologación; el mensaje de error indica el entorno esperado.

application/json

errorobjectOpcional
403 Respuesta HTTP

Ámbito no habilitado para esta credencial

application/json

errorobjectOpcional
404 Respuesta HTTP

veiculo_nao_encontrado — la matrícula no está registrada con esta operadora. No equivale a un vehículo registrado sin tag: el primer caso requiere registrar el vehículo con la operadora; el segundo, emitir el vale de peaje tradicional.

application/json

errorobjectOpcional
422 Respuesta HTTP

operadora_indisponivel — la operadora existe, pero todavía no está disponible; el mensaje indica cuáles están disponibles. Espere; no modifique la solicitud. empresa_nao_habilitada — la empresa autenticada aún no ha completado su registro fiscal.

application/json

errorobjectOpcional
503 Respuesta HTTP

consulta_indisponivel — no fue posible consultar a la operadora.

Nunca interprete esto como "el vehículo no tiene tag". Registrar la ausencia de tag porque falló la consulta haría que dejara de ofrecer la opción automática a un camión que sí lo tiene.

application/json

errorobjectOpcional
Definición Completa de la Operación
{
  "tags": [
    "Consultas"
  ],
  "summary": "Consultar o veículo no operador de pedágio",
  "operationId": "consultarVeiculoPedagio",
  "description": "O que a **operadora informada** sabe sobre uma placa: se o veículo **carrega tag** e\nse dá para **emitir Vale-Pedágio** para ele.\n\n## O contrato é multi-operadora\n\n`operadora` é obrigatória, e as quatro aceitas são as quatro emissoras de tag do\nmercado:\n\n| `operadora` | | Disponível hoje |\n|---|---|---|\n| `sem_parar` | Sem Parar | **Sim** |\n| `conectcar` | ConectCar | ainda não |\n| `veloe` | Veloe | ainda não |\n| `move_mais` | Move Mais | ainda não |\n\nOperadora real ainda não atendida responde `422` com `operadora_indisponivel` — código\n**diferente** do `400` de operadora inexistente, e a distinção importa: um pede\naguardar a operadora entrar, o outro pede corrigir a chamada. Quando uma nova operadora\nfor atendida, nada muda na sua integração: o campo e o código de erro já existem.\n\n**Pré-requisito da empresa que consulta:** ter o cadastro fiscal concluído — com o\ncertificado digital A1 enviado em Configurações. Sem isso a resposta é `422` com\n`empresa_nao_habilitada`.\n\nExige o escopo `consultas` habilitado no painel.\n\n## As duas perguntas são independentes\n\nEsta é a parte que uma integração costuma errar, e o contrato as mantém em campos\nseparados de propósito:\n\n| | `tem_tag` | `habilitado_vale_pedagio` |\n|---|---|---|\n| via automática | `true` | `true` |\n| **sem tag, mas pode rodar** | `false` | `true` |\n| **com tag, bloqueado pelo operador** | `true` | `false` |\n\nAs duas linhas do meio são o ponto. O **Vale-Pedágio tradicional não exige tag** — um\nveículo sem tag continua podendo receber vale. E um veículo com tag pode estar\nbloqueado pelo operador por outro motivo.\n\nSe você colapsar os dois campos num só, sua integração vai **recusar frete que podia\nrodar**.\n\n## `tem_tag` é resposta, não inferência\n\nNão deduza a ausência de tag de `identificador_tag` vir nulo. `tem_tag` é a resposta;\n`identificador_tag` é o código, e só acompanha quem tem tag.\n\n## `404` é diferente de \"sem tag\"\n\nPlaca que o operador não conhece responde `404 veiculo_nao_encontrado` — e isso pede\numa providência diferente de um veículo cadastrado sem tag:\n\n| Resposta | O que fazer |\n|---|---|\n| `404` | cadastrar o veículo no operador de pedágio |\n| `200` com `tem_tag: false` | emitir o Vale-Pedágio tradicional |\n\n## Modo simulado em homologação\n\nEsta consulta **não tem operadora contratada** por trás: em homologação a resposta é\ngerada pela FleetPay, é determinística e **não reflete o cadastro real de nenhum\nveículo**. Cada resposta carrega `verificacao: \"simulada\"` — o campo viaja dentro do\ndado, e não só no envelope, porque um `tem_tag` gravado na sua base precisa carregar\nconsigo que nenhuma consulta real aconteceu.\n\nO contrato de request e response já é o definitivo: integre agora.\n\n### Só os veículos da massa de teste respondem\n\nPlaca fora da massa responde `404` — **não existe resposta genérica**. Ela existiu por\num dia e saiu: qualquer placa digitada recebia uma tag fabricada com cara de real, e um\n`tem_tag: true` gravado na sua base não carrega aviso de que a placa nem existia.\n\n| Placa | Estado |\n|---|---|\n| `TJD2D33` | com tag, habilitado — a via automática |\n| `AKS1I02` | **sem tag**, e ainda assim habilitado — o vale tradicional não exige tag |\n| `FTO0C61` | com tag, **não habilitado** — tag não autoriza por si |\n| qualquer outra placa | `404 veiculo_nao_encontrado` |\n",
  "parameters": [
    {
      "name": "placa",
      "in": "query",
      "required": true,
      "schema": {
        "type": "string",
        "pattern": "^[A-Za-z]{3}[0-9][A-Za-z0-9][0-9]{2}$"
      },
      "description": "Placa antiga (`ABC1234`) ou Mercosul (`ABC1D23`), sem separador.\n"
    },
    {
      "name": "operadora",
      "in": "query",
      "required": true,
      "schema": {
        "type": "string",
        "enum": [
          "sem_parar",
          "conectcar",
          "veloe",
          "move_mais"
        ]
      },
      "description": "A operadora de tag consultada. Hoje só `sem_parar` está disponível; as demais\nrespondem `422 operadora_indisponivel` até serem atendidas.\n"
    }
  ],
  "responses": {
    "200": {
      "description": "O que o operador tem para a placa.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/RespostaVeiculoPedagio"
          }
        }
      }
    },
    "400": {
      "description": "`validacao` — a placa está fora do formato aceito, ou não foi informada.\n",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Erro"
          }
        }
      }
    },
    "401": {
      "$ref": "#/components/responses/Erro401"
    },
    "403": {
      "$ref": "#/components/responses/Erro403"
    },
    "404": {
      "description": "`veiculo_nao_encontrado` — a placa não está cadastrada nesta operadora. **Não** é\na mesma coisa que um veículo cadastrado sem tag: um pede cadastrar o veículo na\noperadora, o outro pede emitir o vale tradicional.\n",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Erro"
          }
        }
      }
    },
    "422": {
      "description": "`operadora_indisponivel` — a operadora existe, mas ainda não é atendida; a\nmensagem diz quais estão disponíveis. **Aguarde**, não corrija a chamada.\n`empresa_nao_habilitada` — a empresa autenticada ainda não concluiu o cadastro\nfiscal.\n",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Erro"
          }
        }
      }
    },
    "503": {
      "description": "`consulta_indisponivel` — não foi possível consultar o operador.\n\n**Nunca trate isto como \"o veículo não tem tag\".** Guardar ausência de tag porque a\nconsulta falhou faria você parar de oferecer a via automática a um caminhão que a tem.\n",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Erro"
          }
        }
      }
    }
  },
  "method": "GET",
  "path": "/consultas/veiculo-pedagio"
}