# Tasas BCV

## GET /api/quantis/v3/rates/bcv/

Devuelve las tasas de cambio oficiales vigentes del Banco Central de Venezuela (BCV) para cinco monedas (USD, EUR, CNY, TRY, RUB) cotizadas en Bolívar venezolano (VES). Cuando el BCV ya publicó las tasas del día siguiente, estas aparecen bajo `next`.

| | |
|---|---|
| **Método** | `GET` |
| **URL** | `https://app.vzla.io/api/quantis/v3/rates/bcv/` |
| **Autenticación** | `Authorization: Bearer qapi_...` |
| **Parámetros** | Ninguno |

### Solicitud

```bash
curl --request GET \
  --url 'https://app.vzla.io/api/quantis/v3/rates/bcv/' \
  --header 'Authorization: Bearer qapi_TU_CLAVE_AQUI'
```

---

### Respuesta

#### `data.current`

Las tasas BCV actualmente vigentes.

| Campo | Tipo | Descripción |
|---|---|---|
| `valid_date` | string (fecha ISO 8601) | Fecha en que estas tasas están en vigencia, p. ej. `"2026-05-06"` |
| `timestamp` | string (datetime ISO 8601) | Cuándo el BCV publicó estas tasas |
| `rates` | object | Mapa de código de moneda → objeto de tasa |

**Objeto de tasa** (claves: `USD`, `EUR`, `CNY`, `TRY`, `RUB`)

| Campo | Tipo | Descripción |
|---|---|---|
| `rate` | string | VES por 1 unidad de esta moneda |
| `indicator_pct` | string | Variación porcentual respecto a la tasa anterior |
| `indicator_amount` | string | Variación absoluta respecto a la tasa anterior en VES |

#### `data.next`

Las tasas del día siguiente publicadas con anticipación por el BCV. Tiene la misma estructura que `data.current`. Devuelve `null` si el BCV aún no ha publicado las tasas de mañana.

#### `meta`

| Campo | Tipo | Descripción |
|---|---|---|
| `source` | string | Siempre `"BCV"` |
| `currency_quote` | string | Siempre `"VES"` — todas las tasas están cotizadas en Bolívar venezolano |

---

### Ejemplo de respuesta

```json
{
  "data": {
    "current": {
      "valid_date": "2026-05-06",
      "timestamp": "2026-05-06T09:32:03.108501+00:00",
      "rates": {
        "USD": {
          "rate": "493.37650000",
          "indicator_pct": "0.78066864",
          "indicator_amount": "3.82180000"
        },
        "EUR": {
          "rate": "577.52186207",
          "indicator_pct": "0.57960395",
          "indicator_amount": "3.32804999"
        },
        "CNY": {
          "rate": "72.23667642",
          "indicator_pct": "0.74082854",
          "indicator_amount": "0.53121453"
        },
        "TRY": {
          "rate": "10.91188465",
          "indicator_pct": "0.70889670",
          "indicator_amount": "0.07680949"
        },
        "RUB": {
          "rate": "6.54128604",
          "indicator_pct": "0.10523445",
          "indicator_amount": "0.00687645"
        }
      }
    },
    "next": null
  },
  "meta": {
    "source": "BCV",
    "currency_quote": "VES"
  }
}
```

---

### Códigos de estado HTTP

| Código | Significado |
|---|---|
| `200 OK` | Éxito. |
| `401 Unauthorized` | Clave ausente, inválida o revocada. |
| `405 Method Not Allowed` | Solo se admite GET. |
| `429 Too Many Requests` | Cuota mensual agotada (`quota_exceeded`) o límite de velocidad alcanzado (`throttled`). Ver [Planes y límites](/es/quantis/v3/tiers-and-limits/). |
| `500 Internal Server Error` | Error del servidor. Reintenta después de un momento. |

#### 401: sin encabezado Authorization

```json
{
  "error": {
    "code": "auth_missing",
    "message": "Authentication credentials were not provided"
  }
}
```

#### 401: clave inválida

```json
{
  "error": {
    "code": "auth_token_unknown",
    "message": "Invalid token format"
  }
}
```

#### 429: cuota mensual agotada

```json
{
  "error": {
    "code": "quota_exceeded",
    "message": "Monthly quota exceeded. It resets on the 1st of next month."
  }
}
```

#### 429: límite de velocidad alcanzado

```json
{
  "error": {
    "code": "throttled",
    "message": "Rate limit exceeded",
    "details": {
      "retry_after": 1
    }
  }
}
```
**Note:** Las tasas BCV se actualizan una vez al día en días hábiles. Este endpoint tiene caché de **60 minutos**.