Skip to main content
Los entitlements convierten un pago completado o una suscripción activa en acceso: una clave de licencia en la bandeja de entrada de tu cliente, un feature flag que comprueba tu aplicación, un rol de Discord, un repositorio de GitHub, una plantilla de Notion, un enlace de remix de Framer, una invitación a un chat de Telegram o un paquete de archivos descargables. Dodo Payments emite, realiza el seguimiento y revoca ese acceso automáticamente a medida que cambia el ciclo de vida del pago.
Panel de control de Entitlements con una lista de entitlements a la izquierda y actividad de concesiones a la derecha

The Entitlements dashboard. Each entitlement is a reusable template; the right pane shows individual customer grants.

¿Qué son los entitlements?

Un entitlement es una definición reutilizable de algo que entregas a un cliente, como una clave de licencia Pro, un rol de Discord llamado “Patrons”, acceso a tu repositorio privado de GitHub o un paquete de libros electrónicos descargables. Asocias entitlements a los productos y Dodo Payments los entrega cuando un cliente paga. Cuando un cliente compra el producto, Dodo Payments crea un grant: la emisión de ese entitlement para un cliente. Un grant tiene uno de cuatro estados: Pending mientras la entrega está en curso, Delivered cuando el cliente obtiene acceso, Failed si la entrega no pudo completarse y Revoked cuando se retira el acceso.
Los entitlements controlan el fulfillment (¿el cliente tiene acceso?). Los créditos controlan el consumo (¿cuánto puede usar?). Puedes asociar ambos al mismo producto. Consulta Facturación basada en créditos para obtener información sobre los créditos.

Integraciones Disponibles

Cada entitlement se entrega mediante una integración. Elige la integración que corresponda a lo que vendes.

License Keys

Genera claves de licencia únicas con límites de activación y expiración. Ideal para software, plugins y CLIs.

Digital Files

Entrega archivos descargables, como libros electrónicos, plantillas y contenido multimedia, con URL de descarga presigned e instrucciones opcionales.

Feature Flags

Controla las funciones de tu propia aplicación en función de una compra. Se entrega al crearse, se comprueba mediante la API y se revoca al cancelar.

Discord

Asigna un rol a un cliente en tu servidor de Discord cuando compra. El rol se elimina automáticamente al cancelar.

GitHub

Agrega a los clientes como colaboradores en un repositorio privado al nivel de permisos que elijas.

Telegram

Agrega a los clientes a un chat o canal privado de Telegram después de la compra.

Framer

Desbloquea un enlace de remix de plantilla de Framer para los clientes que pagan.

Notion

Duplica una plantilla de Notion en el espacio de trabajo del cliente al comprar.

Cómo funcionan las autorizaciones

Los grants siguen los mismos eventos de pago y suscripción que recibes como webhooks. Dodo Payments crea y revoca grants automáticamente para las compras, según el ciclo de vida del pago, por lo que no tienes que llamar a la grant API.

Ciclo de vida de la autorización

Un grant pasa por los siguientes estados:
1

Created

Dodo Payments crea un grant cuando se completa un pago o una suscripción pasa a estar activa. Los grants de feature flags comienzan como Delivered. Los grants de claves de licencia también comienzan como Delivered cuando el entitlement usa fulfillment_mode: auto (el valor predeterminado). Con fulfillment_mode: manual, el grant comienza como Pending sin clave hasta que proporciones una mediante Completar grant de clave de licencia. Todas las demás integraciones comienzan como Pending.Las integraciones basadas en OAuth (Discord, GitHub y Notion) exponen un oauth_url que el cliente visita para dar su consentimiento. Dodo Payments intenta generar esta URL al crear el grant. Si falla, el campo permanece como null hasta que el cliente inicia el flujo de aceptación desde su correo electrónico de entrega o el Customer Portal. Las integraciones directas de la plataforma (Telegram, Framer y Digital Files) permanecen como Pending solo mientras se aprovisiona la entrega; después pasan a Delivered.
2

Delivered

Cuando se completa la entrega, el grant pasa a Delivered y se establece delivered_at. La entrega se completa cuando se genera la clave de licencia, se asigna el rol, se concede el acceso al repositorio, se resuelven los enlaces de archivos o finaliza el flujo de OAuth.
3

Failed

Si la llamada de integración devuelve un error no reintentable, como un token de OAuth revocado, un permiso denegado o un archivo que ya no existe, el grant pasa a Failed. Los campos error_code y error_message registran el motivo.
4

Revoked

Cuando se retira el acceso, por ejemplo porque se cancela una suscripción, se emite un reembolso o revocas el grant, el grant pasa a Revoked. El campo revocation_reason registra el desencadenante.

Comportamiento de los grants según el evento

Cada evento de pago y suscripción modifica los grants de la siguiente manera:
Los grants controlados por suscripciones son idempotentes por (entitlement, customer, subscription), por lo que las renovaciones y reactivaciones no crean grants duplicados. Los grants de pago único son idempotentes por (entitlement, customer, payment).

Crea tu primer entitlement

1

Open Entitlements

Ve a Entitlements en el dashboard y haz clic en + para crear un entitlement.
2

Pick an Integration

Elige el tipo de integración: License Key, Digital Files, Feature Flag, Discord, GitHub, Telegram, Figma, Framer o Notion. Para una integración de plataforma, conecta primero tu cuenta si aún no lo has hecho.
3

Configure Delivery

Completa los campos de la integración. Por ejemplo, GitHub solicita un repositorio y un nivel de permisos; Discord solicita un servidor y un rol opcional; y License Key solicita un límite de activaciones y una duración de la licencia.
Formulario de nuevo entitlement con selector de integración y campos de configuración

Creating a GitHub entitlement. Each integration shows the fields it needs.

4

Save

Haz clic en Create Entitlement. Ahora puedes asociar el entitlement a cualquier producto.

Asocia entitlements a productos

Abre un producto, ve a su sección Entitlements y selecciona los entitlements que se entregarán cuando se compre el producto. Un producto puede entregar varios entitlements a la vez. Por ejemplo, un plan Pro puede incluir una clave de licencia, acceso a GitHub y un rol de Discord.
Panel de selección de entitlements del producto que muestra casillas para cada entitlement disponible

Attaching entitlements to a product. Selected entitlements are delivered on every successful purchase or active subscription.


Experiencia del cliente

Correo electrónico y Customer Portal

Después de una compra, el cliente recibe un correo electrónico de entrega con la clave de licencia, los enlaces de descarga, los enlaces de invitación de OAuth o la invitación de plataforma correspondiente a los entitlements del producto. Los mismos detalles siguen disponibles en el Customer Portal, dentro del historial de pedidos, mientras el grant esté activo.

Entrega basada en OAuth

El acceso de suscriptores a Discord, GitHub y Notion requiere que el cliente autorice a Dodo Payments a conceder dicho acceso. Estos grants permanecen como Pending hasta que el cliente completa el flujo de OAuth desde el enlace de su correo electrónico o el Customer Portal. Después de que el cliente autoriza, el grant pasa a Delivered y Dodo Payments aprovisiona el acceso a la plataforma.

Revocación

Cuando se revoca un grant, Dodo Payments elimina el acceso en la plataforma: elimina el rol de Discord, elimina al colaborador de GitHub o desactiva la clave de licencia. El cliente ve el cambio en el Customer Portal.
Para Digital Files, la revocación detiene las nuevas URL de descarga presigned, pero no invalida las copias que el cliente ya haya descargado. Tenlo en cuenta al planificar el control de acceso a tu contenido.

Gestiona grants

Abre cualquier entitlement desde el dashboard para ver sus grants. El panel de detalles muestra el total concedido, un filtro de estado y una fila por grant con el cliente, la fecha de acceso, el estado y una acción Revoke. Para gestionar grants mediante programación, enuméralos con el filtro status y revoca un único grant por ID:

Gestión mediante la API

Create Entitlement

Crea un entitlement de cualquier tipo de integración.

List Entitlements

Enumera los entitlements, filtrados por tipo de integración.

Get Entitlement

Recupera un entitlement y su configuración resuelta.

Update Entitlement

Actualiza el nombre, la descripción o la configuración de integración.

Delete Entitlement

Elimina de forma lógica un entitlement. Los grants existentes no se revocan, pero Dodo Payments deja de gestionarlos.

Upload File

Sube un archivo de hasta 500 MiB a un entitlement de Digital Files.

List Grants

Enumera los grants de un entitlement, filtrados por estado y cliente.

Revoke Grant

Revoca manualmente un único grant.

Webhooks

Dodo Payments envía cuatro eventos de webhook para el ciclo de vida del grant. Suscríbete a ellos para mantener tu aplicación sincronizada con lo que cada cliente puede usar.

Entitlement Grant Webhook Payloads

Consulta el esquema completo del payload, eventos de ejemplo y la referencia de revocation_reason.

Prácticas recomendadas

  • Usa un entitlement por canal de entrega. No compartas un entitlement de Discord entre productos con distintas funciones de rol. Crea un entitlement por rol para que la revocación sea clara.
  • Prueba primero en modo de prueba. Crea el entitlement, asígnalo a un producto de prueba, realiza un checkout y observa cómo el grant pasa de Pending a Delivered. Después, cancela la suscripción de prueba y confirma que el grant se revoca.
  • Escucha entitlement_grant.delivered, no payment.succeeded. Un pago puede completarse antes de que finalice el fulfillment, especialmente en los flujos de OAuth. Espera a que el grant alcance Delivered antes de desbloquear funciones dependientes en tus propios sistemas. Un grant que se entrega al crearse, como una clave de licencia completada automáticamente o un feature flag, llega como entitlement_grant.created con status: "Delivered".
  • Trata entitlement_grant.failed como una acción necesaria. Un grant fallido significa que un cliente pagó pero no obtuvo acceso. Muestra estos grants a tu equipo de soporte o activa una nueva emisión.
  • Asocia revocation_reason a tus flujos de retención. Una revocación subscription_on_hold se puede recuperar porque el cliente podría actualizar su tarjeta. Una revocación manual es intencionada. Trátalas de forma distinta en los mensajes a los clientes.
  • No revoques el acceso en subscription.past_due. Ese evento abre un periodo de gracia y el cliente conserva el acceso hasta que finaliza la ventana. Espera a subscription.on_hold o subscription.cancelled.
Última modificación el 26 de septiembre de 2026