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

# Migración de Cotizave API V1 a V2

> Migra rutas, campos e IDs de Venezuela V1 a V2 con equivalencias y diferencias de respuesta; mantén la integración existente durante el cambio.

V1 está deprecada. V2 conserva los datos de V1 en las operaciones equivalentes de Venezuela y añade IDs globales y países. Puedes mantener tu integración V1 activa mientras adaptas las rutas.

## Cambios de ruta

| V1 | V2 equivalente |
| - | - |
| `GET /v1/fx/rates` | `GET /v2/fx/ve/rates` |
| `GET /v1/fx/rates/{market}` | `GET /v2/fx/ve/rates/{id}`; acepta también el market local como alias |
| `GET /v1/fx/rates/{market}/history` | `GET /v2/fx/ve/rates/{id}/history` |
| `GET /v1/fx/convert` | `GET /v2/fx/convert` |
| `POST /v1/fx/bulk/convert` | `POST /v2/fx/convert` |
| `GET /v1/fx/markets`, `/spread`, `/route` | `GET /v2/fx/ve/markets`, `/spread`, `/route` |
| `GET /v1/fx/bcv/banks` | `GET /v2/fx/ve/bank-rates` |
| `GET /v1/fx/index` | `index` dentro de `GET /v2/fx/ve/rates` |

La tabla plana de `/v1/fx/bcv/currencies` no tiene un JSON V2 idéntico. Conserva esa llamada V1 si dependes de su forma exacta. Consulta [todos los endpoints V2](https://docs.cotizave.com/api/v2/endpoints.md) antes de cambiar una ruta.

## Campos reutilizables

| V1 | V2 | Uso |
| - | - | - |
| `market` | `market` | En VE conserva el identificador local (`binance`, `reference`, etc.). |
| — | `id` | ID global para rutas V2 (`ve-binance`, `ve-bcv`). No lo derives de `market`. |
| `type` | `type` | Conserva los tipos V1 de VE, como `p2p` y `reference`. |
| `updated_at` | `updated_at` | Mismo instante de la fuente en RFC 3339; `index.as_of` conserva su propio nombre. |
| `effective_date` | `effective_date` | Fecha valor, distinta de `updated_at`. |
| `base`, `mid`, `bid`, `ask`, `stale_after_sec` | Iguales | En las tasas VE Free conservan los valores y reglas de omisión V1. |
| `stale`, `staleness_sec` de conversión | Iguales | Siguen presentes en la conversión Free. `staleness_sec` de las opciones de ruta también permanece cuando el plan permite esa operación. |

## Mapeo de mercados venezolanos

Estos pares provienen del registro público de tasas del snapshot de Venezuela. Usa el valor devuelto por la API; no construyas el `id` a partir de `market`. Las referencias adicionales del BCV tienen sus propios IDs y no sustituyen mercados V1.

| `market` V1 | `id` V2 |
| - | - |
| `reference` | `ve-bcv` |
| `eur_reference` | `ve-euro` |
| `parallel` | `ve-paralelo` |
| `binance` | `ve-binance` |
| `bybit` | `ve-bybit` |
| `okx` | `ve-okx` |
| `bitget` | `ve-bitget` |
| `mexc` | `ve-mexc` |
| `bingx` | `ve-bingx` |
| `saldo` | `ve-saldo` |
| `syklo` | `ve-syklo` |
| `yadio` | `ve-yadio` |
| `zelle` | `ve-zelle` |
| `paypal` | `ve-paypal` |
| `western_union` | `ve-wu` |
| `zoom` | `ve-zoom` |
| `cash` | `ve-cash` |
| `cucuta` | `ve-cucuta` |

Ejemplo de una tasa V1:

```json theme={null}
{"market":"binance","type":"p2p","base":"USD","mid":290.85,"bid":290.4,"ask":291.3,"updated_at":"2026-10-22T12:58:40Z"}
```

La misma tasa en V2 Free añade `id`:

```json theme={null}
{"id":"ve-binance","market":"binance","type":"p2p","base":"USD","mid":290.85,"bid":290.4,"ask":291.3,"updated_at":"2026-10-22T12:58:40Z"}
```

Basic agrega metadatos de identidad y frescura a `/rates`; Growth agrega descripciones y análisis; Pro conserva esos campos y habilita otras operaciones. Consulta la [matriz por plan](https://docs.cotizave.com/api/v2/plans.md). En V2, `category` sigue siendo un **filtro de consulta** (`?category=crypto_p2p`), pero el JSON de una tasa usa `type: "p2p"`. No sustituyas `updated_at` por `effective_date` ni por `fetched_at`.

El catálogo `/markets` tiene una diferencia: `required_plan` en V2 es un ID interno de plan; en V1 puede ser un nombre visible o `null`. Si consumes ese campo, adapta su lectura. En el JSON de las tasas V2 no se emiten `category` ni `as_of`: usa `type` y `updated_at`. El campo `index.as_of` pertenece únicamente al índice heredado de V1.


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