> ## Documentation Index
> Fetch the complete documentation index at: https://docs.jusfy.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Consulta o licenciamento de um veículo pela placa

> Retorna a data do último licenciamento do veículo (emissão do CRLV) a partir da placa, com o cadastro completo: proprietário, características, numeração dos agregados, faturamento, restrições e restrição financeira. É uma consulta separada de `placa`, com outra base.



## OpenAPI

````yaml /openapi/legado.json post /api/consultas/placa-crlv
openapi: 3.0.0
info:
  title: Calculadoras Jusfy API
  description: >-
    Rotas sem versão (`/api/...`). Continuam funcionando, mas a versão atual

    da API é a v1 (`/api/v1`): para integrações novas, use a v1 e siga o [guia
    de migração](https://docs.jusfy.com.br/fundamentos/migracao-do-legado).


    A política de versionamento e depreciação está na [política de
    versionamento](https://docs.jusfy.com.br/fundamentos/migracao-do-legado#pol%C3%ADtica-de-versionamento).
  version: legacy
  contact: {}
servers:
  - url: https://api.jusfy.com.br
security: []
tags:
  - name: Calculadoras
    description: >-
      Execução das calculadoras jurídicas e consulta dos índices de correção.
      Cada cálculo recebe um payload, retorna o resultado processado e exige API
      key no header `x-api-key`.
  - name: Consultas
    description: >-
      Consultas de dados (veículos, condutores e documentos). Cada consulta
      recebe o documento, retorna os dados encontrados e exige API key no header
      `x-api-key`. A maioria responde na mesma requisição; o **rastreamento
      veicular** e o **buscador processual** são assíncronos — devolvem `202`
      com um protocolo e entregam o resultado por webhook e/ou pelo `GET` do
      protocolo.
  - name: JusScore
    description: >-
      Consulta de processos judiciais por CPF/CNPJ, com score de risco
      consolidado e a lista detalhada dos processos. É assíncrona: o POST inicia
      a consulta e o GET devolve o resultado quando pronto. Exige API key no
      header `x-api-key`.
  - name: Consumo
    description: >-
      Consumo da própria API key: quantas chamadas cada produto recebeu num
      período, separando as cobradas das não cobradas. Não exige escopo; exige
      API key no header `x-api-key`.
  - name: Health
    description: >-
      Verificações de disponibilidade do serviço (liveness e readiness). Rotas
      abertas, sem autenticação.
paths:
  /api/consultas/placa-crlv:
    post:
      tags:
        - Consultas
      summary: Consulta o licenciamento de um veículo pela placa
      description: >-
        Retorna a data do último licenciamento do veículo (emissão do CRLV) a
        partir da placa, com o cadastro completo: proprietário, características,
        numeração dos agregados, faturamento, restrições e restrição financeira.
        É uma consulta separada de `placa`, com outra base.
      operationId: QueriesController_placaCrlv[0]
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VehicleCrlvQueryDto'
      responses:
        '200':
          description: >-
            Licenciamento encontrado para a placa informada. `plate`, `chassis`
            e `licensingDate` (data do último licenciamento, em `YYYY-MM-DD`)
            vêm sempre preenchidos; qualquer outro campo pode vir `null`. Datas
            saem em `YYYY-MM-DD` e números (ano, potência, peso) como texto, do
            jeito que estão no cadastro. `restrictions` e `otherRestrictions`
            trazem só o que consta: `[]` quando nada consta, `null` quando a
            informação não foi disponibilizada. Campos novos podem ser
            acrescentados sem mudança de versão.
          content:
            application/json:
              schema:
                type: object
                example:
                  statusCode: 200
                  message: Consulta concluída com sucesso
                  timestamp: '2026-07-28T18:00:00.000Z'
                  path: /api/consultas/placa-crlv
                  result:
                    plate: ABC1D23
                    chassis: 9BWZZZ377VT004251
                    licensingDate: '2026-06-12'
                    renavam: '00000000001'
                    crvIssueDate: '2021-03-15'
                    lastUpdateDate: '2021-03-15'
                    status: EM_CIRCULACAO
                    theftStatus: VEICULO SEM OCORRENCIA DE FURTO/ROUBO
                    registration:
                      city: CIDADE EXEMPLO
                      state: SP
                    owner:
                      name: EMPRESA EXEMPLO LTDA
                      document: '00000000000000'
                      documentType: JURIDICA
                    vehicle:
                      brand: MARCA
                      model: MODELO EXEMPLO
                      brandModel: MARCA MODELO EXEMPLO
                      brandCode: null
                      manufactureYear: '2020'
                      modelYear: '2021'
                      type: AUTOMOVEL
                      category: PARTICULAR
                      species: PASSAGEIRO
                      bodyType: NAO APLICAVEL
                      assemblyType: null
                      color: PRATA
                      fuel: ALCOOL/GASOLINA
                      origin: null
                      power: '84'
                      engineDisplacement: '999'
                      passengerCapacity: '5'
                      loadCapacity: null
                      maxTractionCapacity: '0'
                      grossWeight: '1.5'
                      axles: '2'
                    components:
                      engineNumber: MTR0000001
                      gearboxNumber: null
                      bodyNumber: null
                      rearAxleNumber: null
                      thirdAxleNumber: null
                      chassisMarkingType: NORMAL
                    invoice:
                      document: '11111111111111'
                      documentType: JURIDICA
                      state: null
                    importation:
                      importerDocumentType: null
                      declarationNumber: null
                    restrictions:
                      - ALIENACAO_FIDUCIARIA
                    otherRestrictions: []
                    saleCommunication: NAO
                    renajudRestriction: NAO
                    financing:
                      transactionType: ALIENACAO FIDUCIARIA
                      restriction: ALIENACAO FIDUCIARIA
                      agentName: BANCO EXEMPLO S.A.
                      financedName: EMPRESA EXEMPLO LTDA
                      financedDocument: '00000000000000'
                      inclusionDate: '2021-03-20'
        '400':
          description: >-
            Documento inválido. `message` é a **lista** de erros de validação
            desta API (campo + motivo), diferente dos demais erros, em que é uma
            string.
          content:
            application/json:
              schema:
                example:
                  statusCode: 400
                  code: invalid_request
                  message:
                    - 'document deve ser uma placa válida (ex.: ABC1D23)'
                  requestId: 9f1c2b7e-4d3a-4f8b-a6e2-1c0d9e8f7a65
                  timestamp: '2026-07-28T18:00:00.000Z'
                  path: /api/consultas/placa-crlv
        '401':
          description: >-
            API key ausente ou que não pertence a nenhum cliente (`code:
            invalid_api_key`). A `message` diz qual dos dois.
          content:
            application/json:
              examples:
                missing:
                  summary: Key ausente
                  value:
                    statusCode: 401
                    message: Missing API key
                    code: invalid_api_key
                    requestId: 9f1c2b7e-4d3a-4f8b-a6e2-1c0d9e8f7a65
                    timestamp: '2026-10-14T18:00:00.000Z'
                    path: /api/consultas/{consulta}
                invalid:
                  summary: Key inválida
                  value:
                    statusCode: 401
                    message: Invalid API key
                    code: invalid_api_key
                    requestId: 9f1c2b7e-4d3a-4f8b-a6e2-1c0d9e8f7a65
                    timestamp: '2026-10-14T18:00:00.000Z'
                    path: /api/consultas/{consulta}
        '403':
          description: >-
            Acesso negado. Dois motivos, distinguidos pelo `code`: o cliente não
            está ativo (`inactive_client`), ou a API key não tem o escopo deste
            produto (`insufficient_scope`, com o escopo na `message`). A
            liberação de produtos é feita pela equipe Jusfy.
          content:
            application/json:
              examples:
                inactive_client:
                  summary: Cliente não ativo
                  value:
                    statusCode: 403
                    message: Client is not active
                    code: inactive_client
                    requestId: 9f1c2b7e-4d3a-4f8b-a6e2-1c0d9e8f7a65
                    timestamp: '2026-10-14T18:00:00.000Z'
                    path: /api/consultas/{consulta}
                insufficient_scope:
                  summary: Sem o escopo do produto
                  value:
                    statusCode: 403
                    message: 'Missing scope: <escopo>'
                    code: insufficient_scope
                    requestId: 9f1c2b7e-4d3a-4f8b-a6e2-1c0d9e8f7a65
                    timestamp: '2026-10-14T18:00:00.000Z'
                    path: /api/consultas/{consulta}
        '404':
          description: >-
            Placa válida, mas sem resultado: o veículo não foi localizado **ou**
            foi localizado sem a data de licenciamento (`message` distingue os
            dois). A consulta foi executada.
          content:
            application/json:
              schema:
                example:
                  statusCode: 404
                  code: no_data_found
                  message: Data de licenciamento não disponível para a placa informada.
                  requestId: 9f1c2b7e-4d3a-4f8b-a6e2-1c0d9e8f7a65
                  timestamp: '2026-07-28T18:00:00.000Z'
                  path: /api/consultas/placa-crlv
        '422':
          description: Payload recusado pelo provedor da consulta.
          content:
            application/json:
              schema:
                example:
                  statusCode: 422
                  code: payload_rejected
                  message: document inválido
                  requestId: 9f1c2b7e-4d3a-4f8b-a6e2-1c0d9e8f7a65
                  timestamp: '2026-07-28T18:00:00.000Z'
                  path: /api/consultas/placa-crlv
        '429':
          description: >-
            Limite de requisições por minuto do cliente neste produto excedido.
            `Retry-After` diz em quantos segundos a janela vira. Toda resposta
            traz `X-RateLimit-Limit`, `X-RateLimit-Remaining` e
            `X-RateLimit-Reset`.
          content:
            application/json:
              schema:
                example:
                  statusCode: 429
                  code: rate_limit_exceeded
                  message: >-
                    Rate limit exceeded for consultas.cnh:execute: 60 requests
                    per minute. Retry in 42s.
                  requestId: 9f1c2b7e-4d3a-4f8b-a6e2-1c0d9e8f7a65
                  timestamp: '2026-06-22T18:00:00.000Z'
                  path: /api/consultas/cnh
        '502':
          description: >-
            Erro no provedor da consulta. `message` identifica o provedor que
            falhou quando essa informação está disponível. Diferente do `503`,
            não há garantia de que repetir a consulta resolva.
          content:
            application/json:
              schema:
                example:
                  statusCode: 502
                  code: upstream_error
                  message: Erro ao consultar o licenciamento do veículo.
                  requestId: 9f1c2b7e-4d3a-4f8b-a6e2-1c0d9e8f7a65
                  timestamp: '2026-07-28T18:00:00.000Z'
                  path: /api/consultas/placa-crlv
        '503':
          description: >-
            Base de licenciamento temporariamente indisponível. A consulta
            **não** foi executada — pode ser repetida.
          content:
            application/json:
              schema:
                example:
                  statusCode: 503
                  code: upstream_unavailable
                  message: >-
                    A consulta de licenciamento está temporariamente
                    indisponível, tente novamente mais tarde.
                  requestId: 9f1c2b7e-4d3a-4f8b-a6e2-1c0d9e8f7a65
                  timestamp: '2026-07-28T18:00:00.000Z'
                  path: /api/consultas/placa-crlv
        '504':
          description: Tempo limite ao falar com o provedor da consulta.
          content:
            application/json:
              schema:
                example:
                  statusCode: 504
                  code: upstream_timeout
                  message: Query provider timed out
                  requestId: 9f1c2b7e-4d3a-4f8b-a6e2-1c0d9e8f7a65
                  timestamp: '2026-07-28T18:00:00.000Z'
                  path: /api/consultas/placa-crlv
      security:
        - api-key: []
components:
  schemas:
    VehicleCrlvQueryDto:
      type: object
      properties:
        document:
          type: string
          description: >-
            Placa do veículo, no padrão antigo (`AAA1234`) ou Mercosul
            (`AAA1A23`). Separadores são aceitos e ignorados.
          example: ABC1D23
      required:
        - document
  securitySchemes:
    api-key:
      type: apiKey
      in: header
      name: x-api-key

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.