# Qué no se factura: códigos de error y reglas de facturación

> Source: https://docs.blockvectra.com/es/guides/billing-rules/

BlockVectra mide las solicitudes en unidades de cómputo (CU). Las llamadas JSON-RPC y Data API se facturan solo después de obtener una respuesta. Esta guía resume las reglas que determinan la facturación según los códigos de estado HTTP, las llamadas JSON-RPC y la Data API, junto con las acciones recomendadas para desarrolladores.

## Códigos de estado HTTP y reglas de facturación

Las reglas que determinan la facturación y el tratamiento de las respuestas HTTP son las siguientes:

| Estado HTTP | Cuerpo de respuesta                                                                                                                                          | Situación                                                                                                                                                                                                                                                                              | ¿Se factura?                                                                                  | Acción recomendada                                                                                                                                                                                                                                                                                            |
| ----------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|         200 | Respuesta JSON-RPC (individual o por lotes)                                                                                                                  | Respuesta normal; todos los errores de la capa JSON-RPC (error de análisis, rechazo de método, fallo del servicio upstream, error del nodo) también devuelven 200                                                                                                                      | Se evalúa por llamada                                                                         | Compruebe `result` o `error` en cada llamada; si se devuelve un error, consulte el tratamiento de errores JSON-RPC más abajo                                                                                                                                                                                  |
|         204 | Vacío                                                                                                                                                        | Todas las llamadas de la solicitud son notificaciones                                                                                                                                                                                                                                  | Las notificaciones se facturan normalmente                                                    | No se requiere ninguna acción adicional                                                                                                                                                                                                                                                                       |
|         400 | Vacío                                                                                                                                                        | Mensaje HTTP mal formado (no se puede analizar la línea de solicitud o los encabezados, codificación por fragmentos no válida), o más de 10 s entre dos lecturas del cuerpo de la solicitud                                                                                            | No                                                                                            | Compruebe la sintaxis de la solicitud HTTP, los encabezados y la continuidad de la transmisión                                                                                                                                                                                                                |
|         402 | JSON, `-32020`                                                                                                                                               | Saldo insuficiente, cuota agotada; cuando se conoce el saldo, `error.data` incluye `balance_units` y `balance_cu`                                                                                                                                                                      | No                                                                                            | Consulte su saldo en la [página de Facturación](https://console.blockvectra.com/billing/) de la consola o mediante `GET /v1/topup/deposit-address` (MCP `get_deposit_address`); recargue on-chain en la dirección dedicada de su cuenta (consulte la [guía de recarga para agentes](https://docs.blockvectra.com/es/guides/agent-topup/)) |
|         403 | Vacío                                                                                                                                                        | Métodos distintos de `POST` u `OPTIONS` en `/v1/{chain}` o `/v1/{chain}/{api_key}` (independientemente de si se conoce el nombre de la cadena)                                                                                                                                         | No                                                                                            | Cambie el método de la solicitud HTTP a `POST` (o a `OPTIONS` para la comprobación previa de solicitudes entre orígenes)                                                                                                                                                                                      |
|         401 | JSON, `-32024` (`missing_api_key` o `invalid_api_key`)                                                                                                       | Falta la clave en una cadena conocida, o la clave es desconocida o está deshabilitada                                                                                                                                                                                                  | No                                                                                            | Proporcione una API key activa en el encabezado `x-api-key` (las claves nuevas o rotadas tardan unos segundos en entrar en vigor; espere un momento y vuelva a intentarlo)                                                                                                                                    |
|         404 | JSON, `-32600` (`reason = unknown_chain`)                                                                                                                    | `POST` a una `{chain}` desconocida                                                                                                                                                                                                                                                     | No                                                                                            | Compruebe el nombre de la cadena en la URL frente a [Cadenas admitidas](https://docs.blockvectra.com/es/chains/) (debe ser el slug exacto en minúsculas)                                                                                                                                                                                  |
|         404 | cuerpo vacío                                                                                                                                                 | Ruta sin coincidencia (p. ej., `POST /v1`, `/v1/`, `POST /v1/{chain}/`)                                                                                                                                                                                                                | No                                                                                            | Incluya la cadena en la URL (`/v1/{chain}`)                                                                                                                                                                                                                                                                   |
|         408 | Vacío                                                                                                                                                        | Han transcurrido más de 35 s desde la lectura de los encabezados de la solicitud hasta la devolución de la respuesta                                                                                                                                                                   | **Posible**: las llamadas ya enviadas al nodo se facturan normalmente cuando el nodo responde | No reintente incondicionalmente llamadas que cambian el estado (p. ej., `eth_sendRawTransaction`); una desconexión del cliente no cancela las llamadas ya enviadas                                                                                                                                            |
|         413 | Vacío                                                                                                                                                        | Cuerpo de solicitud > 2 MiB (2,097,152 bytes)                                                                                                                                                                                                                                          | No                                                                                            | Mantenga el cuerpo de la solicitud por debajo de 2 MiB; divida los lotes en solicitudes más pequeñas                                                                                                                                                                                                          |
|   414 / 431 | Vacío                                                                                                                                                        | URI demasiado larga (414) o encabezados de solicitud demasiado grandes (431)                                                                                                                                                                                                           | No                                                                                            | Acorte la URI de la solicitud o reduzca los encabezados HTTP                                                                                                                                                                                                                                                  |
|         429 | JSON, `-32005` o `-32022`; incluye `Retry-After` para los límites de frecuencia (`-32005`); los límites de ráfaga o tamaño de lote (`-32022`) no lo incluyen | Saldo del bucket agotado → `-32005`; CU de una sola solicitud superiores a la capacidad de ráfaga → `-32022`; límite de llamadas de la cuenta agotado → `-32005`; llamadas de una sola solicitud superiores al límite → `-32022`                                                       | No                                                                                            | Para `-32005` con `Retry-After`, espere los segundos indicados antes de reintentar; para `-32022`, divida la solicitud o reduzca el tamaño del lote (reintentar sin cambios nunca tendrá éxito)                                                                                                               |
|         503 | JSON, `-32021`, con `Retry-After`                                                                                                                            | Datos de facturación temporalmente no disponibles; el servidor rechaza temporalmente la solicitud (no es un problema de saldo y no hace falta recargar); las claves recién creadas devuelven este estado hasta que se sincronizan los datos de facturación (normalmente unos segundos) | No                                                                                            | No es un problema de saldo y no hace falta recargar; espere los segundos indicados en `Retry-After` y vuelva a intentarlo                                                                                                                                                                                     |

> Nota: Al acceder a través de Cloudflare, este puede devolver páginas de error 52x o 1015; no las genera el servicio.

> **Encabezados de respuesta de cargos y saldo**: Al enviar `x-bv-meter: 1` en solicitudes HTTP (tanto JSON-RPC como Data API), una respuesta que haya facturado al menos una llamada devuelve `x-bv-cu-charged` (las unidades de cómputo facturadas por esta solicitud, o la suma de las llamadas facturadas de un lote) y `x-bv-balance-units` (las unidades de saldo restantes de la cuenta inmediatamente después de este cargo, negativas si hay sobregiro; se omite si se desconoce el saldo). Las solicitudes sin `x-bv-meter: 1`, las respuestas sin llamadas facturadas y las respuestas de error 402, 403, 429 o 503 omiten ambos encabezados. Los scripts del navegador pueden acceder a estos encabezados de respuesta mediante CORS, mientras que WebSocket no los utiliza. El saldo resta el uso total pendiente de liquidación redondeado hacia arriba una sola vez a unidades enteras; la liquidación por hora redondea hacia abajo, por lo que el saldo comunicado puede aumentar hasta una unidad después de la liquidación.

## Códigos de error JSON-RPC y reglas de facturación

El mismo código de error puede proceder de la plataforma o del nodo, y **la facturación es distinta**:

* **Errores generados por la propia plataforma**: nunca se facturan;
* **Errores devueltos por el nodo**: se transmiten sin cambios y se facturan según el peso del método, con las únicas excepciones de códigos de error del nodo que se enumeran a continuación.

### Detalles de las reglas

* **Errores del nodo no facturados**: Los errores del nodo `-32002` (tiempo de espera del lote agotado), `-32003` (respuesta del lote demasiado grande) y `-32600` (lote rechazado en su totalidad) indican que el nodo abandonó la llamada de forma anticipada; estos errores y las notificaciones del mismo lote no se facturan. Los errores del nodo `-32601` (método expuesto no implementado) y `-32603` (fallo interno del nodo) no se facturan por HTTP ni WebSocket y no afectan a otras llamadas o notificaciones del lote. Además, `4444` (bloque podado) y `-32000` (estado histórico fuera de la ventana de historial de estado del nodo, definida por `state_window_blocks` en `GET /v1/chains`) no se facturan ni afectan a otras llamadas del lote.
* **Errores del nodo facturados**: Otros errores devueltos por el nodo se facturan según el peso del método cuando informan del resultado de la cadena, como `execution reverted` (`-32000` o `3` con `data`) o el propio `-32602 invalid argument` del nodo.
* **Admisión por saldo y sincronización**: `-32020` indica que el saldo de la cuenta es insuficiente y requiere una recarga; cuando se conoce el saldo, `error.data.balance_units` y `error.data.balance_cu` contienen el saldo restante (puede ser negativo). Una clave recién creada puede devolver `-32021` (503) durante unos segundos; espere `Retry-After` y vuelva a intentarlo.
* **Fallos del servicio upstream**: Un `-32603` generado por la plataforma debido a un fallo de comunicación con el servicio upstream o a una respuesta mal formada (`upstream unavailable`, `no response from upstream`, `malformed upstream response`) incluye `data.reason: upstream_unavailable`.
* **Facturación de notificaciones**: Las notificaciones (204) se facturan según el peso de sus métodos.

### Tabla de códigos de error JSON-RPC

| Código | Origen      | HTTP | Mensaje                                                                        | Motivo                                                                                                                  | ¿Se factura?                                     | Acción recomendada                                                                                                                                                                                                                                                                                            |
| -----: | ----------- | ---: | ------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| -32700 | BlockVectra |  200 | `parse error`                                                                  | -                                                                                                                       | No (consume 1 token CU del límite de frecuencia) | Corrija la sintaxis JSON de la solicitud                                                                                                                                                                                                                                                                      |
| -32600 | BlockVectra |  200 | `invalid request`                                                              | `invalid_request`                                                                                                       | No (consume 1 token CU del límite de frecuencia) | Corrija la sintaxis y la estructura de la solicitud JSON-RPC                                                                                                                                                                                                                                                  |
| -32600 | BlockVectra |  200 | `batch too large: max <N> calls`                                               | `batch_too_large` (+max)                                                                                                | No                                               | Divida el lote en llamadas por debajo del límite (el límite estándar de lote es de 100)                                                                                                                                                                                                                       |
| -32600 | BlockVectra |  200 | `invalid request: ambiguous member name`                                       | `invalid_request`                                                                                                       | No                                               | Elimine los nombres de miembros duplicados o ambiguos de los objetos JSON                                                                                                                                                                                                                                     |
| -32601 | BlockVectra |  200 | `method not available: <method>`                                               | -                                                                                                                       | No                                               | Llame solo a los métodos permitidos para esta cadena (consulte [Cadenas admitidas](https://docs.blockvectra.com/es/chains/))                                                                                                                                                                                                              |
| -32600 | BlockVectra |  404 | `unknown chain`                                                                | `unknown_chain`                                                                                                         | No                                               | Compruebe el nombre de la cadena en la URL                                                                                                                                                                                                                                                                    |
| -32602 | BlockVectra |  200 | `eth_getLogs block range too large: max <N> blocks`                            | -                                                                                                                       | No                                               | Reduzca el rango de bloques de `eth_getLogs` (el límite se define por cadena, p. ej., 1000 bloques)                                                                                                                                                                                                           |
| -32602 | BlockVectra |  200 | `tracer not allowed`                                                           | -                                                                                                                       | No                                               | Use un tracer nativo permitido (`callTracer`, `flatCallTracer`, `prestateTracer`, `4byteTracer`, `noopTracer`, u omítalo)                                                                                                                                                                                     |
| -32602 | BlockVectra |  200 | `trace timeout not allowed`                                                    | -                                                                                                                       | No                                               | Defina una cadena de duración de Go válida con un tiempo de espera ≤ 30s                                                                                                                                                                                                                                      |
| -32010 | BlockVectra |  200 | `node is syncing; calls are temporarily unavailable`                           | -                                                                                                                       | No                                               | El nodo se está sincronizando; vuelva a intentarlo más tarde (excepto para `eth_chainId`)                                                                                                                                                                                                                     |
| -32011 | BlockVectra |  200 | `historical state is not available beyond the most recent <N> blocks`          | -                                                                                                                       | No                                               | Consulte un bloque más reciente (el bloque de destino debe estar dentro de la ventana de estado; evite las etiquetas safe/finalized/earliest)                                                                                                                                                                 |
| -32000 | BlockVectra |  200 | `transaction not found`                                                        | `not_found`                                                                                                             | No                                               | Verifique el hash de la transacción (`0x` + 64 caracteres hexadecimales)                                                                                                                                                                                                                                      |
| -32000 | BlockVectra |  200 | `block not found`                                                              | `not_found`                                                                                                             | No                                               | Verifique el hash o el número del bloque                                                                                                                                                                                                                                                                      |
| -32000 | BlockVectra |  200 | `upstream response too large`                                                  | `response_too_large`                                                                                                    | No                                               | Reduzca el alcance de la consulta o divida las solicitudes                                                                                                                                                                                                                                                    |
| -32005 | BlockVectra |  200 | -                                                                              | `overloaded`                                                                                                            | No                                               | El servidor está temporalmente sobrecargado; vuelva a intentarlo más tarde                                                                                                                                                                                                                                    |
| -32005 | BlockVectra |  429 | `rate limit exceeded`                                                          | `key_rate_limit` / `free_plan_call_limit` / `concurrency_limit`                                                         | No                                               | Reduzca la frecuencia de las solicitudes; respete `Retry-After` cuando esté presente                                                                                                                                                                                                                          |
| -32022 | BlockVectra |  429 | `request cost <N> CU exceeds burst capacity <M> CU`                            | `request_exceeds_burst`                                                                                                 | No                                               | Divida la solicitud o el lote para que las CU de una sola solicitud queden por debajo de la capacidad de ráfaga                                                                                                                                                                                               |
| -32022 | BlockVectra |  429 | `request has <N> calls, exceeding the free-plan limit of <M> calls per second` | `free_plan_batch_too_large` (+max)                                                                                      | No                                               | Divida el lote para ajustarlo al límite por segundo, o pase a un plan de pago                                                                                                                                                                                                                                 |
| -32603 | BlockVectra |  200 | `upstream unavailable`                                                         | `upstream_unavailable`                                                                                                  | No                                               | Fallo de comunicación con el servicio upstream; vuelva a intentarlo más tarde                                                                                                                                                                                                                                 |
| -32603 | BlockVectra |  200 | `no response from upstream`                                                    | `upstream_unavailable`                                                                                                  | No                                               | El servicio upstream no respondió; vuelva a intentarlo más tarde                                                                                                                                                                                                                                              |
| -32603 | BlockVectra |  200 | `malformed upstream response`                                                  | `upstream_unavailable`                                                                                                  | No                                               | Respuesta del servicio upstream mal formada; vuelva a intentarlo más tarde                                                                                                                                                                                                                                    |
| -32603 | BlockVectra |  200 | -                                                                              | -                                                                                                                       | No                                               | Error interno poco frecuente; vuelva a intentarlo más tarde                                                                                                                                                                                                                                                   |
| -32020 | BlockVectra |  402 | `insufficient balance`                                                         | `balance_exhausted` / `free_grant_exhausted` (+topup\_url, y +`balance_units` / `balance_cu` cuando se conoce el saldo) | No                                               | Consulte su saldo en la [página de Facturación](https://console.blockvectra.com/billing/) de la consola o mediante `GET /v1/topup/deposit-address` (MCP `get_deposit_address`); recargue on-chain en la dirección dedicada de su cuenta (consulte la [guía de recarga para agentes](https://docs.blockvectra.com/es/guides/agent-topup/)) |
| -32021 | BlockVectra |  503 | `billing data temporarily unavailable`                                         | -                                                                                                                       | No                                               | Datos de facturación en proceso de sincronización (no es un problema de saldo); espere los segundos de `Retry-After` y vuelva a intentarlo                                                                                                                                                                    |
|   4444 | Nodo        |  200 | `pruned history unavailable`                                                   | -                                                                                                                       | No                                               | El nodo podó el bloque solicitado; no se factura ni afecta al lote                                                                                                                                                                                                                                            |
| -32000 | Nodo        |  200 | `historical state ... is not available`                                        | -                                                                                                                       | No                                               | Fuera de la ventana de historial de estado del nodo; no se factura ni afecta al lote                                                                                                                                                                                                                          |
| -32000 | Nodo        |  200 | `old data not available due to pruning...`                                     | -                                                                                                                       | No                                               | Fuera de la ventana de historial del nodo (definida por `state_window_blocks`); no se factura ni afecta al lote                                                                                                                                                                                               |
| -32002 | Nodo        |  200 | `<node message>`                                                               | -                                                                                                                       | No                                               | El nodo agotó el tiempo de espera del lote y abandonó la llamada; no se factura, ni tampoco las notificaciones del lote                                                                                                                                                                                       |
| -32003 | Nodo        |  200 | `<node message>`                                                               | -                                                                                                                       | No                                               | Respuesta del lote del nodo demasiado grande; se abandonó la llamada; no se factura, ni tampoco las notificaciones del lote                                                                                                                                                                                   |
| -32601 | Nodo        |  200 | `<node message>`                                                               | -                                                                                                                       | No                                               | El nodo no implementa el método expuesto; use otro método admitido                                                                                                                                                                                                                                            |
| -32603 | Nodo        |  200 | `<node message>`                                                               | -                                                                                                                       | No                                               | Fallo interno del nodo; reintente con espera progresiva                                                                                                                                                                                                                                                       |
| -32600 | Nodo        |  200 | `<node message>`                                                               | -                                                                                                                       | No                                               | El nodo rechazó todo el lote; no se factura, ni tampoco las notificaciones del lote                                                                                                                                                                                                                           |
|  Otros | Nodo        |  200 | `<node message>`                                                               | -                                                                                                                       | **Sí** (peso del método)                         | Resultado de la cadena (p. ej., `execution reverted`, `-32602` del nodo); compruebe los parámetros de la llamada al contrato                                                                                                                                                                                  |

## Reglas de facturación de la Data API

La Data API ofrece datos de cadenas de solo lectura mediante endpoints REST. Su facturación y tratamiento de errores siguen estas reglas:

### Detalles de las reglas

* Solo se facturan las respuestas correctas 2xx.
* Las operaciones no disponibles fuera de la cobertura (como cadenas no admitidas o bloques fuera de la cobertura de trazas) devuelven HTTP 422 `no_coverage`, que no se factura pero cuenta para los límites de frecuencia.
* Las respuestas HTTP 401, 402, 404 y 429 no se facturan. Para conocer los encabezados de respuesta (`x-bv-meter: 1`), consulte [Códigos de estado HTTP y reglas de facturación](#http-status-codes-and-billing-rules).

### Tabla de códigos de estado de la Data API

| Estado HTTP | Código de error / Situación                                                                                                                                               | ¿Se factura?                               | Acción recomendada                                                                                                                                                                                                                                                                                            |
| ----------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|         200 | Respuesta de datos correcta                                                                                                                                               | **Sí** (peso CU de la operación Data API)  | Analice `data`, `meta` y `next_cursor` en la estructura de la respuesta                                                                                                                                                                                                                                       |
|         400 | Parámetros de solicitud mal formados o campos obligatorios ausentes                                                                                                       | No                                         | Compruebe y corrija los parámetros de consulta o del cuerpo                                                                                                                                                                                                                                                   |
|         402 | Saldo agotado (`error.code: "insufficient_balance"`, incluye `balance_units` y `balance_cu` cuando se conoce el saldo)                                                    | No                                         | Consulte su saldo en la [página de Facturación](https://console.blockvectra.com/billing/) de la consola o mediante `GET /v1/topup/deposit-address` (MCP `get_deposit_address`); recargue on-chain en la dirección dedicada de su cuenta (consulte la [guía de recarga para agentes](https://docs.blockvectra.com/es/guides/agent-topup/)) |
|         401 | API key ausente, desconocida o deshabilitada (`error.code: "missing_api_key"` o `"invalid_api_key"`)                                                                      | No                                         | Pase una API key activa en el encabezado `x-api-key`                                                                                                                                                                                                                                                          |
|         404 | Cadena desconocida o no pública (`error.code: "not_found"`), o el objeto solicitado no existe                                                                             | No                                         | Compruebe el slug de la cadena en la URL (debe estar exactamente en minúsculas) y la ruta de la solicitud                                                                                                                                                                                                     |
|         409 | El bloque o la ventana solicitados están por encima de la altura indexada actual (`error.code: "not_indexed_yet"`, incluye `indexed_through`)                             | No                                         | Consulte bloques hasta `indexed_through` o vuelva a intentarlo más tarde                                                                                                                                                                                                                                      |
|         422 | Operación específica de la cadena no disponible (p. ej., cadena no admitida o fuera de la cobertura de trazas, `error.code: "no_coverage"`)                               | No (cuenta para los límites de frecuencia) | Compruebe las funciones admitidas mediante `GET /v1/status` (`data_features` gratuito y sin clave)                                                                                                                                                                                                            |
|         429 | Límite de frecuencia superado (`error.code: "rate_limited"`), o una sola solicitud cuesta más que la capacidad de ráfaga de la clave (`error.code: "cost_exceeds_burst"`) | No                                         | Reduzca la frecuencia de las solicitudes; divida las solicitudes demasiado grandes (una solicitud que exceda la ráfaga nunca tendrá éxito tal como se envió)                                                                                                                                                  |
|         503 | Servicio de datos temporalmente no disponible (`error.code: "unavailable"`), o la cadena está ocupada (`error.code: "gateway_overloaded"`)                                | No                                         | Vuelva a intentarlo más tarde y respete `Retry-After` cuando esté presente                                                                                                                                                                                                                                    |

## Consultar saldo (`GET /v1/account`)

El titular de una API key puede consultar directamente el saldo y los detalles de la cuota de la clave sin facturación ni descuento de unidades de cómputo (CU):

```bash
curl -H "x-api-key: $BLOCKVECTRA_API_KEY" https://api.blockvectra.com/v1/account
```

* **Gratuito y no facturado**: `GET /v1/account` es gratuito. Nunca se factura ni descuenta CU, y devuelve HTTP 200 con el saldo actual incluso si es cero o negativo (nunca devuelve 402).
* **Autenticación**: La autenticación de la clave usa exclusivamente el encabezado `x-api-key` (no se aceptan claves en la ruta ni tokens Bearer). La ausencia del encabezado devuelve 401 `missing_api_key`; las claves no válidas o revocadas devuelven 401 `invalid_api_key`. (Las claves caducadas devuelven 403 `key_expired`; la indisponibilidad transitoria del servicio devuelve 503 `auth_unavailable` o `billing_unavailable` con `Retry-After`.)
* **Límite de frecuencia**: Tiene un límite independiente de 5 solicitudes por segundo por ID de clave, independiente de la medición y facturación de CU. Superarlo devuelve HTTP 429 `rate_limited` con un encabezado `Retry-After`.

Campos de respuesta:

* `key_id`: Cadena de texto que identifica la API key.
* `plan`: Tipo de plan de la cuenta (`free` cuando la cuenta tiene una cuota de llamadas del plan gratuito; `paid` en caso contrario).
* `balance_units`: Saldo restante de la cuenta en unidades (puede ser cero o negativo).
* `balance_cu`: Saldo restante convertido a unidades de cómputo (CU).
* `balance_as_of_age_ms`: Milisegundos transcurridos desde que se leyó el saldo de su fuente de datos.
* `key`: Límites específicos de la clave y detalles de su cuota:
  * `cu_per_sec`: Frecuencia de reposición del token bucket en CU por segundo.
  * `burst_cu`: Capacidad de ráfaga del token bucket en CU.
  * `cu_cap`: Límite de CU durante toda la vida útil de esta clave, o `null` si no tiene límite.
  * `cu_cap_remaining`: CU restantes dentro de `cu_cap`, o `null` si no tiene límite (puede ser cero o negativo).
  * `expires_at`: Marca de tiempo de caducidad RFC 3339, o `null` si la clave nunca caduca.

Ejemplo de respuesta:

```json
{
  "key_id": "<key_id>",
  "plan": "<plan>",
  "balance_units": <integer>,
  "balance_cu": <integer>,
  "balance_as_of_age_ms": <integer>,
  "key": {
    "cu_per_sec": <integer>,
    "burst_cu": <integer>,
    "cu_cap": <integer_or_null>,
    "cu_cap_remaining": <integer_or_null>,
    "expires_at": "<expires_at_or_null>"
  }
}
```

## Precios y paso a un plan de pago

El coste específico de todas las llamadas facturadas se determina mediante los pesos CU publicados:

* Para consultar los pesos de todos los métodos y operaciones, consulte la [tabla de pesos de métodos](https://blockvectra.com/es/pricing/) y las [reglas de medición en CU de JSON-RPC](https://docs.blockvectra.com/es/api/json-rpc/#cu-metering-rules).
* Para conocer los precios de los planes y los detalles de liquidación, consulte la [página de Precios](https://blockvectra.com/es/pricing/).
* Paso a un plan de pago: una recarga de pago elimina el límite de llamadas por segundo del plan gratuito; cada clave sigue sujeta a los límites de frecuencia y ráfaga de CU.

### Proceso de recarga on-chain

Cuando el saldo de su cuenta sea insuficiente o necesite mayor capacidad de procesamiento, recargue on-chain en la consola siguiendo estos pasos:

1. **Inicie sesión en la consola**: Acceda a la [Consola de BlockVectra](https://console.blockvectra.com/login/?next=%2Fbilling%2F).
2. **Vaya a la página de Facturación**: Abra la [página de Facturación](https://console.blockvectra.com/billing/).
3. **Obtenga su dirección dedicada**: En la tarjeta de recarga on-chain, copie la dirección de recarga dedicada de su cuenta o escanee el código QR.
4. **Transfiera fondos**: Transfiera únicamente mediante las redes admitidas y las USDC / USDT / USDG indicadas en la página. Las redes admitidas y los montos mínimos de recarga se muestran en la consola.
5. **Acreditación automática**: Una vez detectadas on-chain, las transacciones aparecen como "En proceso"; una vez acreditadas, los créditos se añaden automáticamente a su saldo.

> **Notas importantes**:
>
> * Use únicamente las redes y los tokens indicados explícitamente en la consola. Las transferencias en cadenas no admitidas o con tokens incorrectos no pueden acreditarse automáticamente.
> * Asegúrese de que cada transferencia alcance el monto mínimo de recarga indicado en la consola.
> * Una vez acreditada su primera recarga de pago, su cuenta pasa a ser de pago y se elimina el límite de llamadas por segundo del plan gratuito.

Los agentes o programas de servidor pueden llamar directamente a los endpoints de recarga mediante una API key; consulte la [guía de recarga programática para agentes](https://docs.blockvectra.com/es/guides/agent-topup/).

## Facturación de notificaciones Webhook

Las notificaciones tienen pesos distintos para los eventos de datos entregados, las consultas de historial correctas y los días de dirección facturables. Las llamadas de gestión distintas del historial de eventos, los intentos de entrega fallidos, los reintentos automáticos y los eventos de control son gratuitos. Cada evento entregado se cobra una vez; la reproducción solicitada por el cliente y los eventos canónicos entregados de nuevo tras una reorganización son nuevas entregas facturadas. Los cargos por dirección usan el número máximo de direcciones de cada suscripción mientras estuvo en línea durante el día UTC; la cuota gratuita de direcciones de la cuenta se comparte entre suscripciones y las más antiguas la usan primero. Una dirección en dos suscripciones se cuenta dos veces; añadir cadenas cambia las tarifas de eventos, no las de direcciones.

Consulte la [guía de la API de Webhooks de blockchain](https://docs.blockvectra.com/es/guides/webhook-push/) para la configuración, la [verificación de firmas](https://docs.blockvectra.com/es/guides/webhook-push/#verify-signatures) y la [recuperación de entregas](https://docs.blockvectra.com/es/guides/webhook-push/#delivery-retries-and-replay). La [guía de pagos con stablecoins](https://docs.blockvectra.com/es/guides/stablecoin-payments/) cubre la validación de recibos y la carga histórica mediante sondeo; las [suscripciones WebSocket](https://docs.blockvectra.com/en/guides/websocket-subscriptions/) usan su propia medición de conexiones y notificaciones. Los errores de solicitud se enumeran en la [referencia de errores](https://docs.blockvectra.com/es/errors/). Los pesos siguientes proceden de `GET /v1/plans`.

| Uso | Unidad de facturación | CU |
| --- | --- | --- |
| `push.address_day` | Dirección-día facturable | 33 |
| `push.history` | Solicitud de historial exitosa | 25 |
| `push.log` | Evento de datos entregado | 150 |
| `push.native_transfer` | Evento de datos entregado | 150 |
| `push.token_transfer` | Evento de datos entregado | 150 |

Direcciones gratuitas por cuenta por día UTC: 1000

Franquicia de direcciones gratuitas por cuenta por día UTC, compartida entre todos los grupos de suscripción independientemente del plan. Para cada grupo, se cuenta la cantidad máxima de direcciones mientras estuvo online durante ese día; la franquicia se asigna en orden ascendente de ID de grupo. La misma dirección en dos grupos cuenta dos veces; el número de cadenas en un grupo no multiplica su recuento de direcciones. Un grupo offline o eliminado durante todo el día no aporta nada. Para cada grupo, la cantidad restante tras su parte de la franquicia se multiplica por el peso en CU de `push.address_day` en `method_weights`. La franquicia actualmente configurada procede de la misma política de precios utilizada para el cobro de dirección-día; no es un límite de capacidad de la cuenta ni una franquicia independiente por grupo.

Ejemplo: 10 eventos native.transfer entregados, 2 solicitudes de historial exitosas y 10 direcciones-día facturables cuestan 10 × 150 + 2 × 25 + 10 × 33 = 1880 CU. Las direcciones-día facturables se contabilizan tras la franquicia de direcciones gratuitas de la cuenta.

## Próximos pasos

* [Explore el catálogo de conjuntos de datos](https://blockvectra.com/es/data/) para ver todos los conjuntos de datos que indexa BlockVectra.
* [Consulte el plan gratuito y los precios](https://blockvectra.com/es/pricing/#free) para comprobar qué incluye su cuenta.
* [Inicie sesión en la consola](https://console.blockvectra.com/login/?next=%2Fkeys%2F) para crear una API key.
