
# FIPE pela placa

O objeto `fipe` traz o valor da **Tabela FIPE do mês atual** para o veículo da placa. A FIPE é a referência de preço médio de veículos usada em compra, venda, seguro e financiamento no Brasil.

## Como o valor é encontrado

1. O registro do veículo traz o **código FIPE** mais provável. Buscamos o valor **do mês corrente** para esse código e ano-modelo, então o preço nunca chega desatualizado.
2. Quando o registro não traz o código, buscamos por **marca, modelo e ano**.
   - Uma versão compatível: `fipe` vem preenchido normalmente.
   - Mais de uma versão (1.0, 1.6, 2.0…): `fipe.valor` vem `null` e `fipe.versoes` traz a lista com o valor de cada uma, para o usuário escolher.
3. Se nada for encontrado, `fipe` vem `null`. A consulta da placa continua válida.

## Campos

| Campo | Tipo | Descrição |
|---|---|---|
| `codigo` | string ou null | Código FIPE (ex.: `005225-6`) |
| `marca` | string ou null | Marca como aparece na FIPE |
| `modelo` | string ou null | Modelo e versão como aparecem na FIPE |
| `ano_modelo` | number ou null | Ano do modelo usado na busca |
| `combustivel` | string ou null | Combustível da tabela FIPE |
| `valor` | number ou null | Valor em reais (ex.: `28799.0`) |
| `valor_texto` | string ou null | Valor formatado (ex.: `R$ 28.799,00`) |
| `referencia` | string ou null | Mês de referência (ex.: `novembro de 2026`) |
| `versoes` | array | Outras versões possíveis, cada uma com `codigo`, `modelo`, `valor` e `valor_texto` |

## Exemplo com várias versões

```json
"fipe": {
  "codigo": null,
  "marca": "Fiat",
  "modelo": null,
  "ano_modelo": 2019,
  "combustivel": null,
  "valor": null,
  "valor_texto": null,
  "referencia": "novembro de 2026",
  "versoes": [
    { "codigo": "001461-3", "modelo": "ARGO 1.0 6V Flex.", "valor": 52310.0, "valor_texto": "R$ 52.310,00" },
    { "codigo": "001462-1", "modelo": "ARGO DRIVE 1.3 8V Flex", "valor": 57940.0, "valor_texto": "R$ 57.940,00" }
  ]
}
```

## Como mostrar na sua tela

```js
function textoFipe(fipe) {
  if (!fipe) return 'FIPE não encontrada para este veículo';
  if (fipe.valor) return `${fipe.valor_texto} (FIPE ${fipe.referencia})`;
  if (fipe.versoes.length) {
    return 'Escolha a versão: ' + fipe.versoes.map((v) => `${v.modelo} ${v.valor_texto}`).join(' · ');
  }
  return 'FIPE não encontrada para este veículo';
}
```

## Atualização

A Tabela FIPE muda uma vez por mês. O valor é sempre o do mês de `referencia`; não é preciso nenhum parâmetro para pedir o mês atual.
