---
title: "Placa Dados V6 Assíncrona"
description: "API Veicular V6 (assíncrona) — Dados do veículo, restrições, gravame e débitos"
lang: pt-BR
canonical: https://doc.apibrasil.io/apis/creditos/2d7603b6-7038-479b-9c08-1f07a9e88529
markdown: https://doc.apibrasil.io/apis/creditos/2d7603b6-7038-479b-9c08-1f07a9e88529.md
source: apibrasil-documentation
---

# Placa Dados V6 Assíncrona

> API Veicular V6 (assíncrona) — Dados do veículo, restrições, gravame e débitos

- **Categoria:** Segurança Veicular
- **Cobrança:** por consulta, só com o Bearer Token
- **Preço:** R$ 18,00 por consulta
- **Limite:** 990.000 por mês
- **Cadastro:** exige CNPJ
- **Versão:** v2
- **Publicada por:** APIBrasil
- **Especificação OpenAPI:** https://doc.apibrasil.io/apis/creditos/2d7603b6-7038-479b-9c08-1f07a9e88529/openapi.json

## Como chamar

**Endereço base:** `https://gateway.apibrasil.io/api/v2`

Autenticação: cabeçalho `Authorization: Bearer <token>`. Nada além disso.

Com `homolog: true` no corpo, o gateway responde de uma base fixa, com a forma real da resposta, e não cobra. O CPF 00000000000 é dessa base e não é de ninguém: use-o nos testes, nunca em produção.

## Endpoints (2 endpoints)

### 1. POST /consulta/veiculos/credits

⚠️ Aviso: consulta assíncrona. O valor fica reservado no seu saldo e só é debitado quando o resultado fica pronto e é entregue no seu webhook_url.

API Placa Dados V6 - Dados do veículo, restrições, gravame e débitos

Envie um POST com tipo=veiculos-dados-v6-async, a placa (ABC1234 ou ABC1D23) e o webhook_url que vai receber o resultado. A resposta imediata traz o job-id. O resultado chega por POST no webhook_url, no formato {"job-id": "...", "payload": {"success": true, "consulta": {...}, "dados": {...}, "msg": "..."}}, normalmente em 1 a 10 minutos (alguns Detrans demoram mais). O webhook pode ser entregue mais de uma vez: use o job-id para deduplicar. Também dá para buscar o resultado pelo job-id (endpoint de consulta do resultado). Use homolog=true para testar sem tarifar.

- **Método:** `POST`
- **Endereço:** `https://gateway.apibrasil.io/api/v2/consulta/veiculos/credits`
- **Versão da rota:** v2

**Cabeçalhos**

| Cabeçalho | Valor |
| --- | --- |
| `Content-Type` | `application/json` |
| `Authorization` | `Bearer $APIBRASIL_TOKEN` |

**Corpo da requisição**

```json
{
  "tipo": "veiculos-dados-v6-async",
  "placa": "ABC1D23",
  "webhook_url": "https://seu-sistema.com.br/webhook",
  "homolog": true
}
```

**Em cURL**

```bash
curl -X POST "https://gateway.apibrasil.io/api/v2/consulta/veiculos/credits" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $APIBRASIL_TOKEN" \
  -d '{"tipo":"veiculos-dados-v6-async","placa":"ABC1D23","webhook_url":"https://seu-sistema.com.br/webhook","homolog":true}'
```

Este endpoint aceita `homolog: true` no corpo: a resposta volta com dados válidos, `api_limit_for` igual a `homolog` e sem tarifação.

**Resposta de exemplo, do catálogo**

```json
{
  "user": {
    "first_name": "[omitido]",
    "email": "[omitido]",
    "cellphone": "[omitido]",
    "notification": "yes"
  },
  "balance": "400,000",
  "balance_before": "400,000",
  "tax": "0,000",
  "status_code": 200,
  "error": false,
  "message": "Consulta assincrona disparada com sucesso! Voce será tarifado somente quando o processamento terminar e tiver sucesso.",
  "valor_consulta": 0,
  "api_limit_for": "async",
  "homolog": false,
  "data": {
    "accepted": true,
    "job-id": "f015a7b2-6e22-44ee-a00b-2b2b5dc37450",
    "msg": "consulta em processamento; resultado sera enviado ao webhook_url"
  }
}
```

### 2. POST /consulta/veiculos/credits

⚠️ Aviso: o resultado fica disponível por 24 horas. Esta consulta é gratuita.

Consulta o resultado da Placa Dados V6 pelo job-id recebido no disparo. job_status: pending (na fila), processing (consultando), completed (payload com os dados) ou failed (payload com error_code e message, sem cobrança).

- **Método:** `POST`
- **Endereço:** `https://gateway.apibrasil.io/api/v2/consulta/veiculos/credits`
- **Versão da rota:** v2
- **Preço desta operação:** R$ 0,00 por consulta

**Cabeçalhos**

| Cabeçalho | Valor |
| --- | --- |
| `Content-Type` | `application/json` |
| `Authorization` | `Bearer $APIBRASIL_TOKEN` |

**Corpo da requisição**

```json
{
  "tipo": "consultar-chave-veiculos-dados-v6",
  "job-id": "f015a7b2-6e22-44ee-a00b-2b2b5dc37450"
}
```

**Em cURL**

```bash
curl -X POST "https://gateway.apibrasil.io/api/v2/consulta/veiculos/credits" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $APIBRASIL_TOKEN" \
  -d '{"tipo":"consultar-chave-veiculos-dados-v6","job-id":"f015a7b2-6e22-44ee-a00b-2b2b5dc37450"}'
```

**Resposta de exemplo, do catálogo**

```json
{
  "user": {
    "first_name": "[omitido]",
    "email": "[omitido]",
    "cellphone": "[omitido]",
    "notification": "yes"
  },
  "balance": "382,000",
  "balance_before": "382,000",
  "tax": "0,000",
  "status_code": 200,
  "error": false,
  "message": "Consulta assincrona disparada com sucesso! Voce será tarifado somente quando o processamento terminar e tiver sucesso.",
  "valor_consulta": 0,
  "api_limit_for": "async",
  "homolog": false,
  "data": {
    "job-id": "f015a7b2-6e22-44ee-a00b-2b2b5dc37450",
    "job_status": "completed",
    "payload": {
      "success": true,
      "consulta": {
        "CicId": 35,
        "debitado": true,
        "id": 1790000000,
        "valor": 18
      },
      "dados": {
        "placa": "ABC1D23",
        "placa_pre_mercosul": "ABC1423",
        "chassi": "9BWZZZ377VT004251",
        "motor": "ABC123456",
        "estado_placa": "SP",
        "cidade_placa": "SAO PAULO",
        "renavam": "12345678901",
        "documento_faturado_tipo": "CNPJ",
        "documento_faturado_numero": "00000000000191",
        "estado_faturado": "SP",
        "ano_fabricacao": "2019",
        "ano_modelo": "2020",
        "status": "EM CIRCULACAO",
        "modelo_marca": "VW/GOL 1.0",
        "tipo_veiculo": "AUTOMOVEL",
        "especie": "PASSAGEIRO",
        "cor": "PRATA",
        "combustivel": "ALCOOL/GASOLINA",
        "origem": "NACIONAL",
        "potencia": "75",
        "cilindros": "4",
        "eixos": "2",
        "capacidade_passageiros": "5",
        "tanque_litros": "55",
        "capacidade_carga_kg": "400",
        "proprietario_nome": "FULANO DE TAL",
        "proprietario_documento": "00000000000",
        "proprietario_documento_tipo": "CPF",
        "cliente": {
          "nome": "FULANO DE TAL",
          "nome_mae": "",
          "nome_pai": "",
          "razao_social": "",
          "documento": "00000000000",
          "telefones": [
            "11999999999"
          ],
          "emails": [
            "[omitido]"
          ],
          "enderecos": [
            {
              "rua": "RUA EXEMPLO",
              "numero": "100",
              "bairro": "CENTRO",
              "cep": "01001000",
              "cidade": "SAO PAULO",
              "estado": "SP"
            }
          ],
          "situacao": "",
          "porte": "",
          "abertura": "",
          "natureza_juridica_codigo": "",
          "natureza_juridica_descricao": "",
          "atividades": [],
          "socios": []
        },
        "chassi_remarcado": false,
        "capacidade_max_tracao": "",
        "peso_bruto_total": "",
        "categoria": "PARTICULAR",
        "ano_ultimo_licenciamento": "2025",
        "situacao_licenciamento": "LICENCIADO",
        "licenciado_ate": "2026-12-31",
        "alienacao_instituicao": "BANCO EXEMPLO SA",
        "restricoes": {
          "renainf": false,
          "renajud": false,
          "rfb": false,
          "roubo_furto": false,
          "recall": false,
          "sinistro": false,
          "ocorrencia": "ALIENACAO FIDUCIARIA",
          "restricao_1": "ALIENACAO FIDUCIARIA",
          "restricao_2": "",
          "restricao_3": "",
          "restricao_4": ""
        },
        "gravame": [
          {
            "numero_restricao": "123456",
            "data_restricao": "2020-03-01",
            "uf_restricao": "SP",
            "status": "ATIVO",
            "codigo_agente": "999",
            "nome_agente": "BANCO EXEMPLO SA",
            "documento_agente": "00000000000191",
            "data_contrato": "2020-02-28",
            "uf_contrato": "SP",
            "numero_contrato": "CT-0001",
            "documento_financiado": "00000000000",
            "nome_financiado": "FULANO DE TAL"
          }
        ],
        "gravame_aviso": "",
        "debitos": [
          {
            "descricao": "IPVA 2026 - COTA 1",
            "tipo": 2,
            "cota": 1,
            "valor_total": 253.21,
            "valor_principal": 250,
            "juros": 1.21,
            "multa": 2,
            "vencimento": "2026-10-10",
            "vencimento_original": "2026-01-10",
            "identificador": "IPVA-2026-1",
            "codigo_barras": "85810000002532100000000000000000000000000000",
            "linha_digitavel": "858100000025 321000000000 000000000000 000000000000",
            "status_pagamento": "PENDENTE",
            "motivo_indisponivel": "",
            "data_referencia": "2026",
            "detalhes": []
          }
        ],
        "debitos_aviso": "",
        "total_debitos": 253.21
      },
      "msg": "consulta de veículo realizada com sucesso!"
    }
  }
}
```

Nos exemplos de resposta, os campos da conta que gerou o exemplo (`user.first_name`, `user.email`, `user.cellphone`) saem como `[omitido]`. O resto é o que o catálogo publica.

## Armadilhas: o que uma integração erra sem avisar

Apuradas nas respostas que o próprio catálogo publica. Em todas elas o código funciona no caminho feliz e falha em silêncio no resto:

1. **O erro chega no CORPO, com HTTP 200.**
   A resposta traz um campo `error` booleano e uma `message`. Checar só `response.ok` ou o status HTTP deixa passar falha como sucesso. Confira SEMPRE `error === false` antes de ler `data`.

2. **`balance`, `tax` e `extra_charges.total` são STRING em formato brasileiro — e o formato varia entre APIs.**
   Valores observados no catálogo: `"154,380"`, `"497,84"`, `"0,000"` e `"0.19"`. Vírgula em umas, ponto em outra; três casas decimais em umas, duas em outra. Em JavaScript, `parseFloat("154,380")` devolve `154` e perde os centavos sem erro nenhum, e `Number("154,380")` devolve `NaN`. Escreva um conversor que trate os dois separadores, e nunca use esses campos numa decisão financeira sem convertê-los.

3. **Cada chamada custa dinheiro.**
   Retry cego multiplica a conta. Nunca repita automaticamente um 4xx: parâmetro errado repetido continua errado e continua cobrando. Repita só tempo esgotado e 5xx, com recuo exponencial e um teto pequeno de tentativas.

4. **HTTP 402 é saldo insuficiente, e repetir não resolve.**
   É o único status que exige ação humana — recarregar. Trate-o como erro terminal, com mensagem própria, e não o jogue no mesmo balde dos 4xx genéricos.

5. **`extra_charges` cobra à parte do preço da consulta.**
   Quando o corpo pede serviços adicionais, a resposta traz cada um com o preço e um `total` que NÃO está incluso no valor base. Se você mostra custo a quem usa, some os dois.

## Ver também

- Especificação OpenAPI: https://doc.apibrasil.io/apis/creditos/2d7603b6-7038-479b-9c08-1f07a9e88529/openapi.json
- Catálogo de APIs: [Catálogo de APIs](https://doc.apibrasil.io/apis.md)
- SDKs oficiais: [SDKs oficiais](https://doc.apibrasil.io/sdks.md)
- Índice da documentação: https://doc.apibrasil.io/llms.txt
- Versão HTML desta página: https://doc.apibrasil.io/apis/creditos/2d7603b6-7038-479b-9c08-1f07a9e88529
