Documentacao de Integracao - API de Consultas Veiculares

Versao: 1.0.4 Data: 10/04/2026

Versao: 1.0.3 Data: 02/04/2026

Versao: 1.0.2 Data: 01/04/2026

Versao: 1.0.1 Data: 31/03/2026

Versao: 1.0.0 Data: 26/03/2026


Visao Geral

Esta API permite que parceiros realizem consultas veiculares de forma segura utilizando autenticacao por bearer token.

Fluxo atual de autenticacao:

Duracao atual dos tokens:


1. Autenticacao

Endpoint

POST /api/auth/login

Descricao

Autentica o cliente e retorna um par de tokens.

Payload


{
  "email": "admin@cliente.com",
  "password": "senha"
}
            

Exemplo cURL


curl -X POST https://consult.openingfin.com.br/api/auth/login \
  -H "Content-Type: application/json" \
  -d '{
    "email": "admin@cliente.com",
    "password": "senha"
  }'
            

Exemplo Postman

Resposta


{
  "accessToken": "token-duracao-padrao",
  "expiresAtUtc": "2026-03-26T19:00:00Z",
  "refreshToken": "refresh-token",
  "refreshTokenExpiresAtUtc": "2026-04-02T18:00:00Z",
  "tokenType": "Bearer"
}
            

Observacoes


2. Renovacao de Token

Endpoint

POST /api/auth/refresh

Descricao

Renova o access token com base em um refresh token valido.

Payload


{
  "refreshToken": "refresh-token-recebido-no-login"
}
            

Exemplo cURL


curl -X POST https://consult.openingfin.com.br/api/auth/refresh \
  -H "Content-Type: application/json" \
  -d '{
    "refreshToken": "refresh-token-recebido-no-login"
  }'
            

Resposta


{
  "accessToken": "token-duracao-padrao",
  "expiresAtUtc": "2026-03-26T20:00:00Z",
  "refreshToken": "novo-refresh-token",
  "refreshTokenExpiresAtUtc": "2026-04-02T19:00:00Z",
  "tokenType": "Bearer"
}
            

Erro de refresh token invalido


{
  "error": "invalid_grant",
  "error_description": "Refresh token expirado ou invalido."
}
            

3. Consulta Veicular

Endpoint

POST /api/consultas/veiculos

Descricao

Realiza uma consulta veicular autenticada.

Header


Authorization: Bearer {token}
            

Payload


{
  "plate": "ABC1234",
  "renavam": "12345678901",
  "ownerDocument": "12345678901",
  "crv": "254544800595"
}
            

Exemplo cURL


curl -X POST https://consult.openingfin.com.br/api/consultas/veiculos \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{
    "plate": "ABC1234",
    "renavam": "12345678901",
    "ownerDocument": "12345678901",
    "crv": "254544800595"
  }'
            

Exemplo Postman

Resposta


{
  "plate": "SHX0G81",
  "status": "Success",
  "message": "Consulta Veicular realizada com sucesso.",
  "data": {
    "error": {
      "code": "000",
      "message": ""
    },
    "vehicle": {
      "plate": "SHX0G81",
      "chassis": "9C2MD4110PR009676",
      "renavam": "01346491582",
      "atpveNumber": "260501355491582",
      "crvNumber": "244057819495",
      "crvIssueDate": "02/02/2026",
      "odometer": "0027000",
      "odometerMeasuredAt": "20260213120000",
      "manufacturingYear": "2022",
      "modelYear": "2022",
      "makeModel": "YAMAHA/NMAX 160",
      "brand": "YAMAHA",
      "model": "NMAX",
      "version": "160",
      "predominantColor": "BRANCA"
    },
    "seller": {
      "documentType": "1",
      "document": "04261263602",
      "name": "RENATO JOAO",
      "cityCode": "4553",
      "email": "RENATOJOAO@HOTMAIL.COM"
    },
    "buyer": {
      "documentType": "1",
      "document": "75909731653",
      "name": "MARIO JOAO VINCENTE",
      "email": "MARIO@HOTMAIL.COM",
      "cityCode": "4553",
      "state": "MG",
      "street": "SALINAS",
      "number": "64",
      "complement": "",
      "district": "SANTA HELENA",
      "zipCode": "35059450"
    },
    "sale": {
      "saleValue": "R$ 22.000,00",
      "saleRegistrationState": "MG",
      "intentionStateCode": "2",
      "intentionRegisteredAt": "202602191355326",
      "intentionUpdatedAt": "202603101508323",
      "saleOrigin": "00",
      "canSign": "0",
      "saleDate": "00000000",
      "saleCityCode": "0000"
    },
    "pdfBase64": ""
  },
  "queriedAtUtc": "2026-03-26T18:39:22.6845679Z"
}
            

Cenario sem intencao de venda

Quando o veiculo consultado nao possui intencao de venda registrada, a API retorna o status NoSaleIntention.

Nesse cenario, a consulta foi processada com sucesso pela integracao, mas nao ha dados de ATPV-e/intencao de venda disponiveis para preenchimento dos blocos de veiculo, vendedor, comprador e venda.

Exemplo de resposta sem intencao de venda


{
  "plate": "SHX0G81",
  "status": "NoSaleIntention",
  "message": "Veículo não tem intenção de venda",
  "data": {
    "error": {
      "code": "001",
      "message": "Veículo não tem intenção de venda"
    },
    "vehicle": {
      "plate": "",
      "chassis": "",
      "renavam": "",
      "atpveNumber": "",
      "crvNumber": "",
      "crvIssueDate": "",
      "odometer": "",
      "odometerMeasuredAt": "",
      "manufacturingYear": "",
      "modelYear": "",
      "makeModel": "",
      "brand": "",
      "model": "",
      "version": "",
      "predominantColor": ""
    },
    "seller": {
      "documentType": "",
      "document": "",
      "name": "",
      "cityCode": "",
      "email": ""
    },
    "buyer": {
      "documentType": "",
      "document": "",
      "name": "",
      "email": "",
      "cityCode": "",
      "state": "",
      "street": "",
      "number": "",
      "complement": "",
      "district": "",
      "zipCode": ""
    },
    "sale": {
      "saleValue": "",
      "saleRegistrationState": "",
      "intentionStateCode": "",
      "intentionRegisteredAt": "",
      "intentionUpdatedAt": "",
      "saleOrigin": "",
      "canSign": "",
      "saleDate": "",
      "saleCityCode": ""
    },
    "pdfBase64": ""
  },
  "queriedAtUtc": "2026-03-31T18:02:08.0599424Z"
}
            

3.1 Estrutura dos Dados Retornados

Descricao

A resposta da consulta veicular contém blocos estruturados com informações do veículo, vendedor, comprador, dados da venda e documento digital.

Cada campo retornado possui um significado específico conforme detalhado abaixo.


Dados do Veiculo (vehicle)

Campo Descricao
plate Placa do veículo
chassis Número do chassi
renavam Código RENAVAM
atpveNumber Número do ATPVe (documento de transferência)
crvNumber Número do CRV
crvIssueDate Data de emissão do CRV
odometer Quilometragem do veículo
odometerMeasuredAt Data/hora da leitura do hodômetro (formato YYYYMMDDHHMMSS)
manufacturingYear Ano de fabricação
modelYear Ano do modelo
makeModel Descrição completa (marca/modelo)
brand Marca
model Modelo
version Versão
predominantColor Cor predominante

Dados do Vendedor (seller)

Campo Descricao
documentType Tipo de documento (1 = CPF, 2 = CNPJ)
document CPF ou CNPJ
name Nome ou razão social
cityCode Código do município
email Email do vendedor

Dados do Comprador (buyer)

Campo Descricao
documentType Tipo de documento (1 = CPF, 2 = CNPJ)
document CPF ou CNPJ
name Nome completo
email Email
cityCode Código do município
state Estado (UF)
street Rua
number Número
complement Complemento
district Bairro
zipCode CEP

Dados da Venda (sale)

Campo Descricao
saleValue Valor da venda
saleRegistrationState Estado onde a venda será registrada
intentionStateCode Código da intenção de venda
intentionRegisteredAt Data/hora do registro da intenção
intentionUpdatedAt Data/hora da última atualização
saleOrigin Código de origem da venda
canSign Indica se o documento está apto para assinatura
saleDate Data efetiva da venda
saleCityCode Código do município da venda

Documento (pdfBase64)

Campo Descricao
pdfBase64 Documento gerado (ex: ATPVe) codificado em Base64

Observacoes


4. Historico de Consultas

Endpoint

GET /api/consultas/veiculos/historico

Descricao

Retorna o historico de consultas do cliente autenticado.

Exemplo cURL


curl -X GET https://consult.openingfin.com.br/api/consultas/veiculos/historico \
  -H "Authorization: Bearer {token}"
            

Exemplo Postman

Resposta


{
  "items": [
    {
      "id": "b2a584c1-79de-486b-99b5-0b23f85a43e2",
      "plate": "SHX0G81",
      "renavam": "01346491582",
      "status": "Success",
      "queriedAtUtc": "2026-03-26T18:39:22.6845679Z"
    }
  ],
  "page": 1,
  "pageSize": 20,
  "totalItems": 1,
  "totalPages": 1
}
            

5. Health Check

Endpoint

GET /api/health

Descricao

Verifica se a API esta disponivel.

Exemplo cURL


curl https://consult.openingfin.com.br/api/health
            

Boas Praticas


Suporte

Para duvidas tecnicas, entre em contato com o time responsavel pela API.