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

# Credit-Based Billing

> Issue, manage, and track credit entitlements across subscriptions, one-time products, and usage-based billing with rollover, overage, and expiration controls.

<Frame>
  <iframe className="w-full aspect-video rounded-md" src="https://www.youtube.com/embed/4RR3Yj3Qeuw" title="Tutorial de Facturación Basada en Créditos" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowFullScreen />
</Frame>

<Info>
  La facturación basada en créditos te permite otorgar a los clientes un saldo de créditos: llamadas API, tokens, unidades de computación o cualquier métrica personalizada, y deducir de ese saldo a medida que consumen tu servicio. Los créditos funcionan con todos los tipos de productos: suscripciones, compras únicas y facturación basada en uso.
</Info>

## ¿Qué es la Facturación Basada en Créditos?

La facturación basada en créditos te ofrece un sistema flexible para emitir derechos de crédito a los clientes como parte de tus productos. En lugar de cobrar por uso o limitar el acceso a través de flags de función, asignas un conjunto de créditos del que los clientes extraen a medida que usan tu servicio.

Los créditos son ideales para:

* **Plataformas AI y LLM**: Otorgar tokens o créditos de generación por nivel de plan
* **Servicios API**: Asignar créditos de llamadas API con precios por exceso
* **Plataformas de infraestructura**: Emitir horas de computación o créditos de almacenamiento
* **Servicios de comunicación**: Proporcionar créditos de mensajes o minutos por suscripción
* **SaaS con niveles de consumo**: Agrupar el uso incluido en conjuntos de créditos

<Frame caption="Credits appear as entitlements on your products and show in checkout, customer portal, and subscription details.">
  <img src="https://mintcdn.com/dodopayments/ibNfoFRyCIGyt3pO/images/CBB/Checkout.png?fit=max&auto=format&n=ibNfoFRyCIGyt3pO&q=85&s=21880df0e4b0b1a3cb8593dbeb8ae343" alt="Pago mostrando créditos incluidos con la compra del producto" style={{ maxHeight: '500px', width: 'auto' }} width="1440" height="960" data-path="images/CBB/Checkout.png" />
</Frame>

## Conceptos Básicos

### Tipos de Crédito

Al crear un crédito, eliges entre dos tipos:

<Tabs>
  <Tab title="Custom Unit">
    Define créditos en tu propia unidad: tokens, llamadas API, horas de computación o cualquier métrica significativa para tu producto. Las unidades personalizadas usan la precisión que configures (0 a 3 decimales).

    **Mejor para**: Llamadas API, tokens AI, horas de computación, unidades de almacenamiento, mensajes
  </Tab>

  <Tab title="Fiat Credits">
    Los créditos representan valor monetario real (p. ej., USD, EUR). Los clientes reciben un saldo de crédito monetario que se agota a medida que usan tu servicio al precio definido por ti.

    **Mejor para**: Saldos prepagados, créditos promocionales, compensación de servicio
  </Tab>
</Tabs>

### Ciclo de Vida del Crédito

Los créditos siguen un ciclo de vida claro desde la emisión hasta el consumo:

<Steps>
  <Step title="Credits Issued">
    Los créditos se otorgan cuando un cliente compra un producto (suscripción o única vez) con derechos de crédito adjuntos. Para suscripciones, los créditos se reemiten cada ciclo de facturación.
  </Step>

  <Step title="Credits Consumed">
    A medida que los clientes usan tu servicio, los créditos se deducen. Para productos basados en uso, los medidores automáticamente deducen créditos en base a eventos en tiempo real. También puedes deducir créditos manualmente a través del panel de control o la API.
  </Step>

  <Step title="Credits Expire or Roll Over">
    Al final del ciclo de facturación (o después del período de caducidad configurado), los créditos no utilizados expiran o se trasladan al siguiente período según tus configuraciones.
  </Step>

  <Step title="Overage Handling">
    Si los créditos se agotan a mitad de ciclo, puedes permitir exceso (uso continuo más allá del saldo) y elegir cómo se maneja el exceso: perdonarlo, facturarlo o llevar el déficit adelante.
  </Step>
</Steps>

### Fuentes de Otorgamiento

Los créditos pueden ser otorgados desde múltiples fuentes:

| Fuente          | Descripción                                                                          |
| --------------- | ------------------------------------------------------------------------------------ |
| **Suscripción** | Créditos emitidos con la compra de suscripción, reemitidos cada ciclo de facturación |
| **Única Vez**   | Créditos emitidos con un producto de pago único                                      |
| **API**         | Créditos otorgados manualmente a través de API o panel de control                    |
| **Rollover**    | Créditos llevados de un ciclo de facturación anterior                                |

***

## Creación de Créditos

Crea derechos de crédito en la sección **Productos → Créditos** de tu panel de control. Cada crédito define la unidad, precisión, reglas de caducidad y comportamiento del ciclo de vida.

<Frame caption="The Credits tab under Products shows all your credit entitlements.">
  <img src="https://mintcdn.com/dodopayments/ibNfoFRyCIGyt3pO/images/CBB/Desktop%20-%20Entitlements%20%20-%20Credits.jpg?fit=max&auto=format&n=ibNfoFRyCIGyt3pO&q=85&s=f9f30f473d342657d3f0f857e53b2e85" alt="Página de lista de créditos mostrando derechos de crédito creados" style={{ maxHeight: '500px', width: 'auto' }} width="3354" height="2004" data-path="images/CBB/Desktop - Entitlements  - Credits.jpg" />
</Frame>

<Steps>
  <Step title="Navigate to Credits">
    Ve a **Productos** en tu panel de control y selecciona la pestaña **Créditos**. Haz clic en **Crear Crédito** para comenzar.
  </Step>

  <Step title="Configure Basic Information">
    Ingresa un **Nombre de Crédito**: este es tu identificador interno para el crédito.

    <Frame caption="The credit creation form with all configuration sections.">
      <img src="https://mintcdn.com/dodopayments/ibNfoFRyCIGyt3pO/images/CBB/Desktop%20-%20Create%20Credit.jpg?fit=max&auto=format&n=ibNfoFRyCIGyt3pO&q=85&s=0c59e6b6eb4cfd76a545b39fb1f5c19e" alt="Formulario de creación de crédito mostrando información básica, configuraciones generales y de suscripción" style={{ maxHeight: '500px', width: 'auto' }} width="1919" height="954" data-path="images/CBB/Desktop - Create Credit.jpg" />
    </Frame>
  </Step>

  <Step title="Set General Settings">
    Configura el tipo de crédito y las propiedades de visualización:

    <ParamField path="Credit Type" type="string" required>
      Elige **Unidad Personalizada** o **Créditos Fiat**.

      * **Unidad Personalizada**: Define tu propia métrica (tokens, llamadas API, horas de computación). Requiere un **Nombre de Unidad** (p. ej., "Tokens de Plataforma") y una configuración de **Precisión**.
      * **Créditos Fiat**: Los créditos representan valor monetario real. Requiere una selección de **Moneda de Unidad** (USD, EUR, GBP, INR, etc.).
    </ParamField>

    <ParamField path="Unit Name" type="string">
      Solo para créditos de Unidad Personalizada. La etiqueta que los clientes verán para este crédito (p. ej., "Tokens AI", "Llamadas API"). Mostrado en el checkout y el portal del cliente.
    </ParamField>

    <ParamField path="Precision" type="number">
      Solo para créditos de Unidad Personalizada. Número de decimales permitidos:

      * `0` - Números enteros (mejor para elementos contables como llamadas API)
      * `1` - Un decimal (0.0)
      * `2` - Dos decimales (0.00) - **predeterminado**
      * `3` - Tres decimales (0.000)

      <Warning>
        La precisión no se puede cambiar después de crear el crédito.
      </Warning>
    </ParamField>

    <ParamField path="Credit Expiry" type="string">
      Duración de validez de los créditos después de la emisión:

      * **7 días**, **30 días** (predeterminado), **60 días**, **90 días**, **Personalizado** o **Nunca**

      Selecciona **Personalizado** para especificar un número personalizado de días (mínimo 1).
    </ParamField>
  </Step>

  <Step title="Configure Subscription Settings (Optional)">
    Estas configuraciones controlan el comportamiento del crédito dentro de suscripciones recurrentes:

    <ParamField path="Rollover" type="boolean">
      Permitir que los créditos no utilizados se lleven al siguiente ciclo de facturación. Cuando está habilitado, configura:

      * **Porcentaje Máximo de Rollover** (0–100%) - Limitar cuánto se lleva
      * **Período de Rollover** - Duración de validez de los créditos llevados (p. ej., 1 mes)
      * **Máximo de Rollovers** - Cantidad máxima de rollovers consecutivos antes de que los créditos se pierdan
    </ParamField>

    **Cuando se Agotan los Créditos o Expira la Suscripción:**

    <ParamField path="Allow Overage" type="boolean">
      Permitir que los clientes sigan usando tu servicio después de que su saldo de créditos llegue a cero. Cuando está habilitado, configura:

      * **Límite de Exceso** - Máximo de créditos que los clientes pueden consumir más allá de su saldo
      * **Precio por Unidad** - Costo por crédito adicional cuando el exceso está habilitado (con selector de moneda)
    </ParamField>

    <ParamField path="Overage Behavior" type="string" required>
      Controla cómo se maneja el exceso al final del ciclo de facturación:

      * **Perdonar exceso al reinicio** (predeterminado) - El uso más allá del límite de crédito se rastrea pero no se factura. El saldo se restablece en cada ciclo.
      * **Facturar exceso en la facturación** - El uso más allá del límite de crédito se carga en la siguiente factura, luego el saldo se restablece.
      * **Llevar el déficit hacia adelante** - El uso más allá del límite de crédito se lleva como un saldo negativo al siguiente ciclo.
      * **Llevar el déficit hacia adelante (auto-repago)** - El déficit se lleva y se repaga automáticamente con nuevos créditos en el siguiente ciclo.
    </ParamField>
  </Step>

  <Step title="Create Credit">
    Haz clic en **Crear Crédito** para guardar. El crédito ahora está disponible para adjuntar a cualquier producto.

    <Check>
      Tu derecho de crédito está listo. Adjuntalo a productos para comenzar a emitir créditos a los clientes.
    </Check>
  </Step>
</Steps>

<Tip>
  Comienza con configuraciones simples: sin rollover, sin exceso, y añade complejidad a medida que aprendes cómo los clientes usan los créditos. La mayoría de las configuraciones se pueden actualizar en cualquier momento sin afectar a los otorgamientos existentes. Nota que **la precisión no se puede cambiar** después de crear un crédito.
</Tip>

***

## Adjuntar Créditos a Productos

Los créditos se adjuntan a productos como **derechos** en el flujo de creación o edición del producto. Puedes adjuntar hasta **5 créditos por producto**. Los créditos funcionan con los tres tipos de precios.

### Productos de Suscripción

Para suscripciones, los créditos se emiten **por ciclo de facturación** y se pueden configurar con prorrateo, créditos de prueba, y configuraciones específicas del ciclo.

<Steps>
  <Step title="Create or Edit a Subscription Product">
    Ve a **Productos → Crear Producto** o edita un producto existente. Selecciona **Suscripción** como tipo de precio y configura tu precio recurrente.
  </Step>

  <Step title="Open Entitlements Section">
    Expande la sección **Derechos** y haz clic en el botón **Adjuntar** junto a **Créditos**.

    <Frame caption="The Entitlements section in the product form with Credits, License Key, and Digital Product Delivery options.">
      <img src="https://mintcdn.com/dodopayments/ibNfoFRyCIGyt3pO/images/CBB/Desktop%20-%20Attach%20Credit%20-%20Subscription.jpg?fit=max&auto=format&n=ibNfoFRyCIGyt3pO&q=85&s=fb404b5c706ae200079742965a176605" alt="Sección de derechos del producto mostrando botón de adjuntar Créditos" style={{ maxHeight: '500px', width: 'auto' }} width="2880" height="1920" data-path="images/CBB/Desktop - Attach Credit - Subscription.jpg" />
    </Frame>
  </Step>

  <Step title="Select Credits to Attach">
    Se abre un panel de **Agregar Créditos**. Puedes seleccionar un crédito existente del menú desplegable o hacer clic en **Crear nuevo crédito** para definir uno en el momento.

    <Frame caption="The Add Credits panel lets you select existing credits or create new ones.">
      <img src="https://mintcdn.com/dodopayments/ibNfoFRyCIGyt3pO/images/CBB/Desktop%20-%20Attach%20Credit%20-%20Subscription-2.jpg?fit=max&auto=format&n=ibNfoFRyCIGyt3pO&q=85&s=d67a2a18c7a550c8cf1e8378bd5514dc" alt="Panel de Agregar Créditos con menú desplegable de selección de crédito" style={{ maxHeight: '500px', width: 'auto' }} width="2880" height="1920" data-path="images/CBB/Desktop - Attach Credit - Subscription-2.jpg" />
    </Frame>

    <Info>
      Puedes adjuntar hasta 5 créditos por producto. Cada crédito puede tener su propia configuración.
    </Info>
  </Step>

  <Step title="Configure Credit Settings">
    Para cada crédito adjunto, configura:

    <ParamField path="Credits issued per billing cycle" type="number" required>
      La cantidad de créditos otorgados al cliente cada período de facturación.
    </ParamField>

    <ParamField path="Low Balance Threshold" type="number">
      Notificar cuando los créditos caen por debajo de esta cantidad. Útil para alertar a los clientes antes de que se queden sin créditos.
    </ParamField>

    <ParamField path="Credits During Free Trial" type="number">
      Establece una cantidad diferente de créditos para los períodos de prueba. Habilita **Expirar créditos de prueba después de que termine la prueba** para revocar créditos de prueba no utilizados cuando la prueba se convierte en una suscripción de pago.
    </ParamField>

    <ParamField path="Allow Proration" type="boolean">
      Prorratea los créditos restantes cuando un cliente mejora o reduce su plan de suscripción.
    </ParamField>

    <ParamField path="Import Default Credit Settings" type="boolean">
      Usa la configuración predeterminada de rollover, exceso y expiración del derecho de crédito. Desactívalo para personalizar configuraciones específicamente para este producto.
    </ParamField>

    <Frame caption="Credit configuration showing per-cycle amount, trial credits, proration, and custom settings.">
      <img src="https://mintcdn.com/dodopayments/ibNfoFRyCIGyt3pO/images/CBB/Desktop%20-%20Attach%20Credit%20-%20Subscription-4.jpg?fit=max&auto=format&n=ibNfoFRyCIGyt3pO&q=85&s=68e212dddbec73131cf9f75bf5b55408" alt="Formulario de configuración de crédito con ciclo de facturación, prueba y configuraciones prorrateadas" style={{ maxHeight: '500px', width: 'auto' }} width="1800" height="1842" data-path="images/CBB/Desktop - Attach Credit - Subscription-4.jpg" />
    </Frame>
  </Step>

  <Step title="Review and Add">
    Revisa el crédito adjunto mostrando el nombre, cantidad y expiración. Haz clic en **Agregar a Suscripción** para confirmar.

    <Frame caption="Review attached credits before adding them to the subscription.">
      <img src="https://mintcdn.com/dodopayments/ibNfoFRyCIGyt3pO/images/CBB/Desktop%20-%20Attach%20Credit%20-%20Subscription-5.jpg?fit=max&auto=format&n=ibNfoFRyCIGyt3pO&q=85&s=7d8a21560061c15cc8544831a59793e2" alt="Panel de Agregar Créditos mostrando crédito seleccionado con detalles" style={{ maxHeight: '500px', width: 'auto' }} width="2880" height="1920" data-path="images/CBB/Desktop - Attach Credit - Subscription-5.jpg" />
    </Frame>
  </Step>
</Steps>

### Productos de Pago Único

Para pagos únicos, los créditos se emiten **una sola vez** en el momento de la compra.

<Steps>
  <Step title="Create a One-Time Product">
    Crea un producto con tipo de precio **Pago Único**.

    <Frame caption="Single Payment pricing selected for a one-time credit product.">
      <img src="https://mintcdn.com/dodopayments/ibNfoFRyCIGyt3pO/images/CBB/Desktop%20-%20Attach%20Credit%20-%20OTP.jpg?fit=max&auto=format&n=ibNfoFRyCIGyt3pO&q=85&s=1743cb3e515952f9d4b1b2782cebac8b" alt="Sección de precios del producto con Pago Único seleccionado" style={{ maxHeight: '500px', width: 'auto' }} width="2880" height="1920" data-path="images/CBB/Desktop - Attach Credit - OTP.jpg" />
    </Frame>
  </Step>

  <Step title="Attach Credits">
    Abre la sección **Derechos** y adjunta créditos. Configura el **número de créditos emitidos** (total otorgamiento único) en la compra.
  </Step>
</Steps>

<Tip>
  Los productos de crédito de una sola vez son ideales para paquetes de recarga de crédito, paquetes promocionales o compras de crédito prepagadas.
</Tip>

### Productos de Facturación Basada en Uso

Para productos basados en uso, los créditos están **vinculados a medidores** y se deducen automáticamente en base a eventos de consumo en tiempo real.

<Steps>
  <Step title="Create a Usage-Based Product">
    Selecciona **Facturación Basada en Uso** como tipo de precio. Configura el precio base y la frecuencia de facturación.

    <Frame caption="Usage Based Billing pricing type with meter configuration.">
      <img src="https://mintcdn.com/dodopayments/ibNfoFRyCIGyt3pO/images/CBB/Desktop%20-%20Attach%20Credit%20-%20UBB.jpg?fit=max&auto=format&n=ibNfoFRyCIGyt3pO&q=85&s=41b2862c12d126e7843098307e27e137" alt="Configuración de precios de Facturación Basada en Uso" style={{ maxHeight: '500px', width: 'auto' }} width="2880" height="1920" data-path="images/CBB/Desktop - Attach Credit - UBB.jpg" />
    </Frame>
  </Step>

  <Step title="Add a Meter">
    Haz clic en el botón **+** en la sección **Seleccionar medidor** para agregar un medidor. Una suscripción puede tener hasta **3 medidores**.

    <Frame caption="The Select Meter panel with meter configuration and credit toggle.">
      <img src="https://mintcdn.com/dodopayments/ibNfoFRyCIGyt3pO/images/CBB/Desktop%20-%20Attach%20Credit%20-%20UBB-3.jpg?fit=max&auto=format&n=ibNfoFRyCIGyt3pO&q=85&s=3f677352783684107eaa7e568d9352e2" alt="Panel de Selección de Medidor mostrando umbral gratuito y alternancia de crédito" style={{ maxHeight: '500px', width: 'auto' }} width="2880" height="1920" data-path="images/CBB/Desktop - Attach Credit - UBB-3.jpg" />
    </Frame>
  </Step>

  <Step title="Enable Credit Billing on the Meter">
    Activa **Facturar uso en Créditos** para adjuntar un crédito al medidor. Selecciona el derecho de crédito del menú desplegable.

    <ParamField path="Free Threshold" type="number" required>
      El número de unidades que son gratis antes de que la deducción de créditos comience.
    </ParamField>

    <ParamField path="Bill usage in Credits" type="boolean">
      Cuando está habilitado, el uso del medidor se deduce del saldo de crédito del cliente en lugar de cobrar por unidad.
    </ParamField>

    <ParamField path="Meter units per credit" type="number" required>
      El número de unidades de uso requeridas para deducir 1 crédito. Por ejemplo, si se establece en `1000`, entonces 1,000 llamadas API consumen 1 crédito.
    </ParamField>

    <Frame caption="Credit attached to a meter with per-unit conversion rate.">
      <img src="https://mintcdn.com/dodopayments/ibNfoFRyCIGyt3pO/images/CBB/Desktop%20-%20Attach%20Credit%20-%20UBB-5.jpg?fit=max&auto=format&n=ibNfoFRyCIGyt3pO&q=85&s=b4ef2fe5079cbf3bb39eb3814f101cbd" alt="Configuración de medidor con selección de crédito y unidades de medidor por crédito" style={{ maxHeight: '500px', width: 'auto' }} width="2880" height="2282" data-path="images/CBB/Desktop - Attach Credit - UBB-5.jpg" />
    </Frame>
  </Step>

  <Step title="Configure Credit Issuance">
    Establece el número de créditos emitidos y, opcionalmente, personaliza las configuraciones de crédito para este producto.

    <Frame caption="Configure how many credits to issue and whether to use default settings.">
      <img src="https://mintcdn.com/dodopayments/ibNfoFRyCIGyt3pO/images/CBB/Desktop%20-%20Attach%20Credit%20-%20UBB-6.jpg?fit=max&auto=format&n=ibNfoFRyCIGyt3pO&q=85&s=22e99c54f11305a24d63c77e09a4650c" alt="Configuración de crédito para producto UBB" style={{ maxHeight: '500px', width: 'auto' }} width="2880" height="1920" data-path="images/CBB/Desktop - Attach Credit - UBB-6.jpg" />
    </Frame>
  </Step>

  <Step title="Verify Attachment">
    Una vez configurado, el medidor muestra el nombre del crédito adjunto, el precio por unidad y el umbral libre.

    <Frame caption="Meter with credit attached showing price, threshold, and credit name.">
      <img src="https://mintcdn.com/dodopayments/ibNfoFRyCIGyt3pO/images/CBB/Desktop%20-%20Attach%20Credit%20-%20UBB-1.jpg?fit=max&auto=format&n=ibNfoFRyCIGyt3pO&q=85&s=d1a68ef9f07872b1dc9d2b2a655df0a4" alt="Medidor configurado mostrando detalles de la vinculación de crédito" style={{ maxHeight: '500px', width: 'auto' }} width="3220" height="1830" data-path="images/CBB/Desktop - Attach Credit - UBB-1.jpg" />
    </Frame>
  </Step>
</Steps>

<Info>
  Cuando los créditos están vinculados a medidores, el sistema deduce automáticamente créditos en base a eventos de uso ingeridos. Un trabajador en segundo plano procesa los eventos cada minuto, los agrega de acuerdo a la configuración del medidor y aplica una deducción FIFO (primero en entrar, primero en salir) de los otorgamientos no vencidos más antiguos del cliente.
</Info>

***

## Configuraciones de Crédito

### Rollover

Rollover permite que los créditos no utilizados se transfieran al siguiente ciclo de facturación en lugar de caducar.

| Configuración                     | Descripción                                                                                                                             |
| --------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| **Rollover Habilitado**           | Alternar para permitir que los créditos no utilizados se transfieran                                                                    |
| **Porcentaje Máximo de Rollover** | Limitar cuánto se transfiere (0–100%). Al 50%, solo la mitad de los créditos no utilizados se transfieren                               |
| **Período de Rollover**           | Duración de validez de los créditos transferidos (día, semana, mes, año)                                                                |
| **Máximo de Rollovers**           | Número máximo de veces que los créditos pueden transferirse consecutivamente. Después de este límite, los créditos restantes se pierden |

**Ejemplo**: Un cliente tiene 200 créditos no utilizados al final del ciclo. Con un 75% de rollover, 150 créditos se transfieren y 50 se pierden.

### Exceso

Exceso controla lo que sucede cuando el saldo de créditos de un cliente llega a cero a mitad de ciclo.

| Configuración                 | Descripción                                                                                           |
| ----------------------------- | ----------------------------------------------------------------------------------------------------- |
| **Permitir Exceso**           | Alternar para permitir que los clientes continúen usando el servicio más allá de su saldo de créditos |
| **Límite de Exceso**          | Máximo de créditos que los clientes pueden consumir más allá de su saldo                              |
| **Precio por Unidad**         | Costo por crédito adicional consumido como exceso (con moneda)                                        |
| **Comportamiento del Exceso** | Controla lo que sucede con el exceso al final del ciclo de facturación (ver a continuación)           |

**Opciones de Comportamiento del Exceso:**

| Comportamiento                                     | Descripción                                                                                               |
| -------------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
| **Perdonar exceso al reinicio**                    | El uso más allá del límite de crédito se rastrea pero no se factura. El saldo se restablece en cada ciclo |
| **Facturar exceso en la facturación**              | El uso más allá del límite de crédito se carga en la siguiente factura, luego el saldo se restablece      |
| **Llevar el déficit hacia adelante**               | El exceso se lleva como un saldo negativo al siguiente ciclo                                              |
| **Llevar el déficit hacia adelante (auto-repago)** | El déficit se lleva hacia adelante y se repaga automáticamente con nuevos créditos en el siguiente ciclo  |

<Info>
  Cuando el exceso está deshabilitado, los clientes no pueden usar el servicio una vez que su saldo de créditos llegue a cero. Elige un comportamiento de exceso que coincida con tu modelo de facturación: **Perdonar al reinicio** es la opción predeterminada y más simple.
</Info>

### Expiración

| Configuración                                            | Descripción                                                                                                    |
| -------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
| **Caducidad de Créditos**                                | Duración después de la emisión antes de que los créditos caduquen (7, 30, 60, 90 días, personalizados o nunca) |
| **Caducidad de Créditos de Prueba Después de la Prueba** | Si los créditos específicos de prueba caducan cuando termina el período de prueba                              |

<Info>
  Los créditos vencidos crean una entrada de libro mayor `CreditExpired`. Si el rollover está habilitado, el porcentaje de rollover se aplica antes de la expiración y solo el resto expira.
</Info>

***

## Facturación de Uso con Créditos

Cuando los créditos están vinculados a medidores de uso, el sistema crea un modelo de facturación potente basado en el consumo. Los clientes reciben una asignación de crédito y los eventos de uso se deducen automáticamente de su saldo.

<Frame caption="The Usage Billing dashboard shows meter events with units consumed, credits consumed, and customer details.">
  <img src="https://mintcdn.com/dodopayments/ibNfoFRyCIGyt3pO/images/CBB/Desktop%20-%20Usage%20Billing.jpg?fit=max&auto=format&n=ibNfoFRyCIGyt3pO&q=85&s=de8c5992d0ae59e74bbb8a840e07454f" alt="Panel de Facturación por Uso mostrando tabla de eventos con créditos consumidos" style={{ maxHeight: '500px', width: 'auto' }} width="2880" height="1920" data-path="images/CBB/Desktop - Usage Billing.jpg" />
</Frame>

### Cómo Funciona la Deducción de Créditos Basada en Medidores

1. **Tu aplicación envía eventos de uso** - Cada evento incluye un ID de cliente, nombre del evento y metadatos
2. **Los medidores agregan eventos** - Usando agregación de Conteo, Suma, Máximo o Último
3. **Los créditos se deducen automáticamente** - Un trabajador en segundo plano procesa eventos cada minuto, convierte unidades de medidor en créditos usando tu tasa configurada, y deduce del saldo del cliente usando el orden FIFO (primero las concesiones más antiguas)
4. **Se rastrea el exceso** - Si el saldo de créditos llega a cero y el exceso está habilitado, el sistema rastrea el uso excesivo para la facturación al final del ciclo

### Panel de Medidores

El panel de Facturación de Uso incluye un panel de **Medidores** que lista todos los medidores definidos con su tipo de agregación:

| Agregación | Descripción               | Ejemplo                         |
| ---------- | ------------------------- | ------------------------------- |
| **Conteo** | Número total de eventos   | Llamadas API                    |
| **Suma**   | Suma de un campo de valor | Total de bytes transferidos     |
| **Máximo** | Valor más alto registrado | Máximo de usuarios concurrentes |
| **Último** | Valor más reciente        | Almacenamiento actual utilizado |

***

## Experiencia del Cliente

### Checkout

Cuando un cliente compra un producto con créditos adjuntos, la página de pago muestra los créditos incluidos como parte de la oferta del producto.

<Frame caption="Checkout shows included credits with the product, making the value proposition clear.">
  <img src="https://mintcdn.com/dodopayments/ibNfoFRyCIGyt3pO/images/CBB/Checkout.png?fit=max&auto=format&n=ibNfoFRyCIGyt3pO&q=85&s=21880df0e4b0b1a3cb8593dbeb8ae343" alt="Página de pago mostrando producto con créditos de llamada API incluidos" style={{ maxHeight: '500px', width: 'auto' }} width="1440" height="960" data-path="images/CBB/Checkout.png" />
</Frame>

Los créditos aparecen en una sección **Incluye** debajo de la descripción del producto, mostrando la cantidad y tipo de crédito (p. ej., "\$1000 llamadas API").

### Portal del Cliente

Los clientes pueden ver y gestionar sus saldos de crédito en el Portal del Cliente en la sección **Créditos**.

<Frame caption="The Customer Portal shows available balance and full transaction history.">
  <img src="https://mintcdn.com/dodopayments/ibNfoFRyCIGyt3pO/images/CBB/Customer%20Portal.jpg?fit=max&auto=format&n=ibNfoFRyCIGyt3pO&q=85&s=b8afe1f89242f9e347b26b990dd00fe8" alt="Vista de créditos en el Portal del Cliente con saldo e historial de transacciones" style={{ maxHeight: '500px', width: 'auto' }} width="3016" height="2030" data-path="images/CBB/Customer Portal.jpg" />
</Frame>

El portal muestra:

* **Saldo Disponible**: Saldo de crédito actual mostrado prominentemente
* **Pestañas de Crédito**: Cambia entre diferentes tipos de créditos (p. ej., "Créditos OpenAI", "Tokens de Uso")
* **Transacciones Recientes**: Historial completo con fecha, ID de transacción, tipo, cantidad y saldo en curso

Los tipos de transacciones mostradas a los clientes incluyen:

| Tipo                         | Descripción                                            | Cantidad  |
| ---------------------------- | ------------------------------------------------------ | --------- |
| **Créditos con Suscripción** | Créditos emitidos con compra/renovación de suscripción | Verde (+) |
| **Créditos de Pago Único**   | Créditos de compras únicas o otorgamientos manuales    | Verde (+) |
| **Deducción de Uso**         | Créditos consumidos a través del uso del servicio      | Rojo (-)  |
| **Exceso**                   | Uso más allá del saldo de créditos                     | Rojo (-)  |

### Detalles de Suscripción

La página de detalles de suscripción muestra los derechos de crédito junto con otra información del plan.

<Frame caption="Subscription details show credit allocation, remaining balance, and renewal date.">
  <img src="https://mintcdn.com/dodopayments/ibNfoFRyCIGyt3pO/images/CBB/Desktop%20-%20Subscription%20Details.jpg?fit=max&auto=format&n=ibNfoFRyCIGyt3pO&q=85&s=059f57f8996c1f514b9d7eba1ef6e33a" alt="Página de detalles de suscripción mostrando derechos e historial de uso" style={{ maxHeight: '500px', width: 'auto' }} width="2880" height="1984" data-path="images/CBB/Desktop - Subscription Details.jpg" />
</Frame>

Información clave mostrada:

* **Asignación de crédito** por ciclo de facturación (p. ej., "1000 créditos cada ciclo")
* **Saldo restante** (p. ej., "7500 créditos restantes")
* **Fecha de renovación** para la próxima emisión de crédito
* Pestaña **Historial de Uso** con desglose a nivel de medidor mostrando unidades consumidas, umbrales, precios por unidad y costos totales

### Detalles de Transacción

Las páginas de transacción de pago incluyen una sección de **Derechos** que muestra todos los derechos entregados con el pago, incluidos los créditos.

<Frame caption="Transaction details show credits alongside other entitlements like license keys and digital downloads.">
  <img src="https://mintcdn.com/dodopayments/ibNfoFRyCIGyt3pO/images/CBB/Desktop%20-%20Transactions%20-%20Payment%20Summary.jpg?fit=max&auto=format&n=ibNfoFRyCIGyt3pO&q=85&s=dccb0ada7682ead4493baf71199a86fb" alt="Página de detalles de transacción mostrando derechos de crédito" style={{ maxHeight: '500px', width: 'auto' }} width="2880" height="2752" data-path="images/CBB/Desktop - Transactions - Payment Summary.jpg" />
</Frame>

***

## Gestión de Créditos

### Vistas del Panel de Control

#### Lista de Derechos de Crédito

Ve todos tus derechos de crédito en **Productos → Créditos**. La tabla muestra el nombre del crédito, configuraciones de expiración y ofrece acciones rápidas para editar o archivar.

<Frame caption="Credits listing with total count, creation button, and management actions.">
  <img src="https://mintcdn.com/dodopayments/ibNfoFRyCIGyt3pO/images/CBB/Desktop%20-%20Entitlements%20%20-%20Credits.jpg?fit=max&auto=format&n=ibNfoFRyCIGyt3pO&q=85&s=f9f30f473d342657d3f0f857e53b2e85" alt="Página de lista de créditos en la sección de Productos" style={{ maxHeight: '500px', width: 'auto' }} width="3354" height="2004" data-path="images/CBB/Desktop - Entitlements  - Credits.jpg" />
</Frame>

#### Detalles de Crédito del Cliente

Ve el saldo de créditos específico de un cliente y el historial de transacciones desde **Clientes → \[Nombre del Cliente] → Créditos**.

<Frame caption="Customer detail page showing credit balance and full transaction ledger.">
  <img src="https://mintcdn.com/dodopayments/ibNfoFRyCIGyt3pO/images/CBB/Desktop%20-%20Customer%20Details.jpg?fit=max&auto=format&n=ibNfoFRyCIGyt3pO&q=85&s=a52e7e914338d698bf72498821f6a8b6" alt="Página de detalles del cliente con pestaña de Créditos mostrando saldo y transacciones" style={{ maxHeight: '500px', width: 'auto' }} width="2880" height="1920" data-path="images/CBB/Desktop - Customer Details.jpg" />
</Frame>

La vista del crédito del cliente incluye:

* **Selector de Crédito**: Cambia entre diferentes derechos de crédito
* **Saldo Disponible**: Saldo actual en gran exhibición
* **Aplicar Crédito/Débito**: Botón para ajustar manualmente el saldo del cliente
* **Transacciones Recientes**: Libro de contabilidad completo con fecha, ID de transacción, tipo, cantidad y saldo en curso

### Ajustes Manuales

Puedes acreditar o debitar manualmente el saldo de un cliente directamente desde el panel de control:

<Steps>
  <Step title="Navigate to Customer">
    Ve a **Clientes** y selecciona el cliente.
  </Step>

  <Step title="Open Credits Tab">
    Haz clic en la pestaña **Créditos** y selecciona el derecho de crédito apropiado del selector de cartera.
  </Step>

  <Step title="Apply Credit or Debit">
    Haz clic en **Aplicar Crédito/Débito** para abrir la interfaz de ajuste.

    <ParamField path="Transaction Type" type="string" required>
      Selecciona **Crédito** para añadir créditos o **Débito** para eliminar créditos del saldo del cliente.
    </ParamField>

    <ParamField path="Amount" type="number" required>
      La cantidad de créditos para añadir o eliminar.
    </ParamField>

    <ParamField path="Reason" type="string">
      Explicación opcional para el ajuste (p. ej., "Compensación de servicio", "Bono promocional").
    </ParamField>
  </Step>

  <Step title="Confirm">
    Revisa y aplica el ajuste. El cambio se refleja inmediatamente en el saldo del cliente y se registra en el libro mayor del crédito.

    <Check>
      Los ajustes manuales crean una entrada de libro mayor `ManualAdjustment` con registro completo para auditoría.
    </Check>
  </Step>
</Steps>

### Libro Mayor de Créditos

Cada operación de crédito se registra en el libro mayor de créditos, proporcionando un registro completo para auditoría:

| Tipo de Transacción     | Descripción                                                               |
| ----------------------- | ------------------------------------------------------------------------- |
| **Crédito Añadido**     | Créditos otorgados (suscripción, única vez o API)                         |
| **Crédito Deducido**    | Créditos consumidos por uso o débito manual                               |
| **Crédito Vencido**     | Créditos vencidos sin rollover                                            |
| **Crédito Transferido** | Créditos llevados al siguiente período                                    |
| **Rollover Perdido**    | Créditos transferidos perdidos después de alcanzar el máximo de rollovers |
| **Exceso Cobrado**      | Uso más allá del saldo de crédito con exceso habilitado                   |
| **Recarga Automática**  | Reabastecimiento automático de crédito con saldo bajo                     |
| **Ajuste Manual**       | Crédito o débito aplicado manualmente por el comerciante                  |
| **Reembolso**           | Créditos reembolsados                                                     |

Cada entrada de libro mayor registra el saldo antes y después de la transacción, el exceso antes y después, una descripción, y referencia a la fuente (pago, suscripción, etc.).

***

## Webhooks

La facturación basada en créditos dispara eventos de webhook para cada cambio de ciclo de vida del crédito. Usa estos para mantener tu aplicación sincronizada con los saldos de crédito, activar notificaciones o construir flujos de trabajo de facturación personalizados.

| Evento                      | Descripción                                          |
| --------------------------- | ---------------------------------------------------- |
| `credit.added`              | Créditos otorgados a un cliente                      |
| `credit.deducted`           | Créditos consumidos por uso o débito manual          |
| `credit.expired`            | Créditos no utilizados vencidos                      |
| `credit.rolled_over`        | Créditos llevados a una nueva concesión              |
| `credit.rollover_forfeited` | Créditos perdidos al alcanzar el máximo de rollovers |
| `credit.overage_charged`    | Cargos por exceso aplicados                          |
| `credit.manual_adjustment`  | Ajuste manual de crédito/débito realizado            |
| `credit.balance_low`        | El saldo cayó por debajo del umbral configurado      |

Todos los eventos del libro mayor (`credit.added` a `credit.manual_adjustment`) incluyen la carga completa de `CreditLedgerEntry` con el saldo antes/después, exceso antes/después, referencia de origen y el `metadata` de la suscripción de origen o pago de la subvención (vacío para las subvenciones creadas directamente a través de la API). El evento `credit.balance_low` incluye la configuración del umbral y el saldo actual.

<Card title="Credit Webhook Payloads" icon="bell" href="/developer-resources/webhooks/intents/credit">
  Ve esquemas de payload completos, descripciones de campos y ejemplos de integración para todos los eventos de webhook de crédito.
</Card>

***

## Gestión de API

<AccordionGroup>
  <Accordion title="Create Credit Entitlements">
    Usa la API para crear derechos de crédito programáticamente con control total sobre configuraciones de rollover, exceso y expiración.

    <CardGroup cols={2}>
      <Card title="Create Credit Entitlement" icon="plus" href="/api-reference/credit-entitlements/create-credit-entitlement">
        Crea un nuevo derecho de crédito con configuración de rollover, exceso y expiración.
      </Card>

      <Card title="List Credit Entitlements" icon="list" href="/api-reference/credit-entitlements/list-credit-entitlements">
        Recupera todos los derechos de crédito para tu negocio.
      </Card>
    </CardGroup>
  </Accordion>

  <Accordion title="Manage Credit Entitlements">
    Recupera, actualiza o elimina derechos de crédito. Los derechos eliminados pueden ser restaurados.

    <CardGroup cols={2}>
      <Card title="Get Credit Entitlement" icon="magnifying-glass" href="/api-reference/credit-entitlements/get-credit-entitlement">
        Recupera un derecho de crédito específico por ID.
      </Card>

      <Card title="Update Credit Entitlement" icon="pen" href="/api-reference/credit-entitlements/update-credit-entitlement">
        Actualiza rollover, exceso, expiración u otras configuraciones.
      </Card>

      <Card title="Delete Credit Entitlement" icon="trash" href="/api-reference/credit-entitlements/delete-credit-entitlement">
        Elimina suavemente un derecho de crédito.
      </Card>

      <Card title="Undelete Credit Entitlement" icon="rotate-left" href="/api-reference/credit-entitlements/undelete-credit-entitlement">
        Restaura un derecho de crédito previamente eliminado.
      </Card>
    </CardGroup>
  </Accordion>

  <Accordion title="Grant and Adjust Credits">
    Otorga créditos directamente al saldo de un cliente sin requerir una compra, o crea entradas de débito manuales para ajustes de facturación.

    <Card title="Create Ledger Entry" icon="plus" href="/api-reference/credit-entitlements/create-ledger-entry">
      Acredita o debita el saldo de un cliente con registro completo para auditoría y soporte de idempotencia.
    </Card>
  </Accordion>

  <Accordion title="Query Balances and Ledger">
    Recupera el saldo de crédito actual de un cliente, historial de concesión y libro mayor completo de transacciones para cualquier derecho de crédito.

    <CardGroup cols={2}>
      <Card title="List Balances" icon="wallet" href="/api-reference/credit-entitlements/list-balances">
        Lista todos los saldos de clientes para un derecho de crédito.
      </Card>

      <Card title="Get Customer Balance" icon="user" href="/api-reference/credit-entitlements/get-customer-balance">
        Obtiene el saldo de un cliente específico.
      </Card>

      <Card title="List Customer Grants" icon="gift" href="/api-reference/credit-entitlements/list-customer-grants">
        Ve todas las concesiones de crédito para un cliente.
      </Card>

      <Card title="List Customer Ledger" icon="scroll" href="/api-reference/credit-entitlements/list-customer-ledger">
        Historial completo de transacciones de un cliente.
      </Card>
    </CardGroup>
  </Accordion>
</AccordionGroup>

### Ejemplo de Integración

Inicializa el cliente de Dodo Payments:

```typescript theme={null}
import DodoPayments from 'dodopayments';

const client = new DodoPayments({
  bearerToken: process.env['DODO_PAYMENTS_API_KEY'],
  environment: 'test_mode', // defaults to 'live_mode'
});
```

Adjunta créditos a un producto de suscripción durante el checkout:

```typescript theme={null}
const session = await client.checkoutSessions.create({
  product_cart: [
    {
      product_id: 'prod_ai_pro_plan',
      quantity: 1,
    }
  ],
  customer: { email: 'customer@example.com' },
  return_url: 'https://yourapp.com/success'
});
```

Envía eventos de uso que deducen créditos automáticamente:

```typescript theme={null}
await client.usageEvents.ingest({
  events: [{
    event_id: `gen_${Date.now()}`,
    customer_id: 'cus_abc123',
    event_name: 'ai.generation',
    timestamp: new Date().toISOString(),
    metadata: { model: 'gpt-4', tokens: 1500 }
  }]
});
```

***

## Ejemplos del Mundo Real

<AccordionGroup>
  <Accordion title="AI SaaS Platform">
    **Estructura de Precios:**

    | Plan        | Precio    | Créditos/Mes     | Exceso        |
    | ----------- | --------- | ---------------- | ------------- |
    | Inicial     | \$29/mes  | 10,000 tokens    | \$0.003/token |
    | Pro         | \$99/mes  | 100,000 tokens   | \$0.002/token |
    | Empresarial | \$499/mes | 1,000,000 tokens | \$0.001/token |

    **Configuración:**

    * Tipo de Crédito: Unidad Personalizada ("Tokens AI")
    * Precisión: 0 (tokens completos)
    * Rollover: 25% máx., período de 1 mes
    * Exceso: Habilitado, facturar exceso en la facturación
    * Medidor: `ai.generation` con agregación de Suma en el campo `tokens`
  </Accordion>

  <Accordion title="API Gateway">
    **Estructura de Precios:**

    | Plan          | Precio   | Créditos/Mes     | Exceso           |
    | ------------- | -------- | ---------------- | ---------------- |
    | Gratis        | \$0/mes  | 1,000 llamadas   | Bloqueado        |
    | Desarrollador | \$19/mes | 50,000 llamadas  | \$0.001/llamada  |
    | Negocios      | \$99/mes | 500,000 llamadas | \$0.0005/llamada |

    **Configuración:**

    * Tipo de Crédito: Unidad Personalizada ("Llamadas API")
    * Precisión: 0 (llamadas completas)
    * Rollover: Deshabilitado
    * Exceso: Planes Developer+ permiten exceso (perdonar al reinicio), plan Gratis deshabilita exceso
    * Medidor: `api.request` con agregación de Cuenta
  </Accordion>

  <Accordion title="Cloud Storage Service">
    **Estructura de Precios:**

    | Plan     | Precio   | Créditos/Mes   | Exceso         |
    | -------- | -------- | -------------- | -------------- |
    | Personal | \$9/mes  | 100 GB-horas   | \$0.05/GB-hora |
    | Equipo   | \$49/mes | 1,000 GB-horas | \$0.03/GB-hora |

    **Configuración:**

    * Tipo de Crédito: Unidad Personalizada ("GB-horas")
    * Precisión: 2 (dos decimales)
    * Rollover: 50% máx., se transfiere una vez
    * Exceso: Habilitado con límite del 200%
    * Medidor: `storage.usage` con agregación de Suma
  </Accordion>
</AccordionGroup>

***

## Mejores Prácticas

* **Comienza simple**: Empieza con un solo tipo de crédito y sin rollover. Añade complejidad basada en la retroalimentación del cliente y patrones de uso.
* **Establece expectativas claras**: Muestra asignaciones de crédito, saldos restantes y precios de exceso de manera prominente en tus páginas de producto y portal del cliente.
* **Usa unidades significativas**: Nombra créditos por lo que representan (p. ej., "Llamadas API", "Tokens AI") en lugar de términos genéricos. Esto ayuda a los clientes a entender el valor.
* **Configura expiración con cuidado**: Ventanas de expiración cortas (7 días) generan urgencia pero pueden frustrar a los clientes. Ventanas más largas (30–90 días) son más amigables para la mayoría de productos SaaS.
* **Monitorea bajos saldos**: Establece umbrales de bajos saldos para alertar a los clientes antes de que se queden sin créditos, reduciendo las sorpresas de cargos por exceso.
* **Prueba en modo de prueba**: Crea créditos, ajútalos a productos de prueba y simula el ciclo completo de compra → uso → deducción → caducidad antes de ir en vivo.

<Info>
  La facturación basada en créditos funciona sin problemas con todas las demás funciones de Dodo Payments: suscripciones con pruebas, cambios de plan con prorrateo y el portal del cliente. Comienza con una configuración básica y expande a medida que evoluciona tu modelo de precios.
</Info>
