Las claves de licencia son el tipo de entitlement License Key. Crea un entitlement License Key una vez con el límite de activaciones, la caducidad y el mensaje de activación que quieras, y después asígnalo a cualquier producto. De forma predeterminada, Dodo Payments genera y envía por email una clave por cada unidad comprada o por cada asiento de suscripción.
¿Qué son las claves de licencia?
Una clave de licencia es un token único que autoriza el acceso a tu producto. Usa claves de licencia para:- Licencias de software: aplicaciones de escritorio, plugins y CLIs.
- Controles por asiento: limita las activaciones por usuario o dispositivo.
- Productos digitales: restringe las descargas, actualizaciones o funciones premium.
Create a License Key Entitlement
1
Open Entitlements
Ve a Entitlements en el dashboard y haz clic en + para crear un entitlement.
2
Choose License Key
Selecciona License Keys, introduce un Name y configura el comportamiento de cada clave emitida:
- Fulfillment Mode: Automatic (la opción predeterminada) genera y envía por email cada clave. Manual te permite proporcionar cada clave personalmente. Consulta Manual Fulfillment.
- Activations Limit: el número máximo de activaciones activas por clave, por ejemplo
1para un único usuario o5para una licencia de equipo. Selecciona Unlimited para no establecer un límite. - License Length: durante cuánto tiempo sigue siendo válida una clave después de emitirse, por ejemplo 30 días o 1 año, o No expiration. Para productos de suscripción, selecciona No expiration: las claves emitidas para una suscripción no caducan y su validez sigue el estado de la suscripción.
- Activation Message: instrucciones opcionales dirigidas al cliente, de hasta 2.500 caracteres, incluidas en el email que entrega la clave. Por ejemplo:
Paste the key in Settings → LicenseoRun: mycli activate <key>.

3
Save the Entitlement
Haz clic en Create Entitlement. Ahora puedes asignar el entitlement a cualquier producto.
Attach to Products
Abre un producto, ve a su sección Entitlements y selecciona tu entitlement License Key. Un producto puede entregar una clave de licencia junto con otros entitlements en la misma compra, como acceso a Discord, descargas de archivos o acceso a un repositorio de GitHub.
Selecting the License Key entitlement in the product entitlements panel.
How Keys Are Issued
La emisión de claves sigue el ciclo de vida de concesión estándar. Cada evento afecta a las claves de licencia de la siguiente manera:Comportamiento de la cantidad
El número de claves depende del origen de la concesión. Cada clave obtiene su propia concesión.- Productos de suscripción emiten una clave por asiento (
subscriptions.quantity). - Productos one-time emiten una clave por unidad del artículo de línea del carrito (
product_cart.quantity). - Concesiones manuales mediante la API emiten exactamente una clave.
Fulfillment Mode
Cada entitlement License Key tiene unfulfillment_mode que controla quién proporciona la clave:
auto(predeterminado, Automatic en el dashboard): Dodo Payments genera y envía por email la clave tras el pago o la suscripción. Este es el comportamiento de la tabla anterior y se aplica cuando se omitefulfillment_mode.manual(Manual en el dashboard): cada unidad comprada crea una concesiónPendingsin clave, y tú proporcionas cada valor de clave. Consulta Manual Fulfillment.
Manual Fulfillment
Con el fulfillment manual, tú proporcionas cada clave de licencia en lugar de que Dodo Payments la genere. La compra crea una concesiónPending sin clave, te notifica mediante un webhook y espera a que envíes el valor de la clave. Úsalo cuando las claves provengan de tu propio sistema, de un proveedor externo o de un conjunto limitado de códigos preimpresos.
Para consultar una implementación paso a paso, desde la creación del producto hasta la entrega de la clave, visita la Guía de integración de Manual License Key Fulfillment.
Cuándo usarlo
El fulfillment automático se adapta a la mayoría de los casos de licencias de software. Elige el fulfillment manual cuando Dodo Payments no pueda generar la clave por sí mismo:- Usa tus propias claves: tu aplicación, un producto de escritorio o tu propio servidor de licencias genera la clave.
- Proveedores externos: revendes claves emitidas por un proveedor ascendente, como una clave de juego, una credencial de API o una licencia de una plataforma asociada.
- Inventario limitado: entregas códigos de un conjunto preasignado y los asignas de uno en uno.
- Revisión humana: quieres comprobar una compra antes de conceder el acceso.
Activar el fulfillment manual
Para activar el fulfillment manual mediante la API, establecefulfillment_mode: "manual" en integration_config del entitlement License Key. En el dashboard, establece Fulfillment Mode en Manual.
fulfillment_mode es compatible con versiones anteriores. Los entitlements creados antes de que existiera esta configuración no tienen fulfillment_mode y se comportan como auto. Cambiar a manual solo afecta a las concesiones creadas después del cambio. Las claves ya entregadas no cambian.Buscar concesiones pendientes de fulfillment
Cuando un cliente compra un producto con un entitlement en modo manual, Dodo Payments crea la concesión en estadoPending sin clave y envía un webhook entitlement_grant.created con integration_type: "license_key" y status: "Pending". Reacciona a ese webhook o consulta periódicamente el endpoint List Customer Grants con los filtros integration_type y status:
Entregar la clave
Para entregar una clave, envíala al endpoint Fulfill License Key Grant. La concesión pasa aDelivered y Dodo Payments envía la clave por email al cliente. Es el mismo email que recibe el cliente con el fulfillment automático.
cURL
activations_limit e expires_at son opcionales. Si los omites, Dodo Payments usa la configuración del entitlement. Cada concesión se puede completar una sola vez: volver a intentarlo con una concesión ya completada devuelve 409 en lugar de emitir una segunda clave.
No necesitas enviar la clave por email personalmente. Dodo Payments la entrega cuando se completa la concesión. La importación de claves con
POST /license_keys funciona de otra manera: no notifica al cliente.Activación, validación y desactivación
Tu software gestiona una clave en tiempo de ejecución mediante tres endpoints. La activación registra un dispositivo o una instalación contra la clave, la validación comprueba que la clave se puede utilizar y la desactivación libera una activación.Endpoints públicos: los endpoints de activación, desactivación y validación de licencias son públicos y no requieren una API key. Llámalos directamente desde software de escritorio, CLIs o clientes basados en navegador sin exponer tus credenciales de API. Los constructores del SDK siguen requiriendo un valor de bearer token, por lo que los ejemplos del SDK pasan un placeholder.
Activar una licencia
La activación crea una instancia de activación para la clave y la devuelve con un IDlki_. Guarda ese ID porque lo necesitas para desactivar la instancia. La solicitud devuelve 403 si la clave no está activa, 404 si la clave no existe y 422 si la clave ha alcanzado su límite de activaciones.
Validar una licencia
La validación devuelvevalid: true cuando el estado de la clave es active y la clave no ha caducado. Para comprobar también que todavía existe una instancia de activación concreta, pasa su license_key_instance_id.
Desactivar una instancia de activación
La desactivación elimina una instancia de activación y libera una activación en la clave. Pasa la clave y el ID de instancia que devolvió la activación. La solicitud devuelve403 si la instancia no pertenece a la clave y 404 si la clave no existe.
Gestionar claves
Para ver las claves emitidas, abre el entitlement License Key en Entitlements. La lista de concesiones muestra una fila por cada clave de cliente, con el cliente, la fecha de acceso, el estado y una acción Revoke. Para ver la caducidad, el número de activaciones y el límite de activaciones de una clave, ábrela en Sales → License Keys. Para enumerar las concesiones mediante programación, llama a List Grants. En cada concesión de clave de licencia, el objetolicense_key contiene la clave, el estado, la caducidad, las activaciones usadas y el límite de activaciones. El objeto es null en una concesión en modo manual que aún está Pending.
Importar claves de licencia existentes mediante la API
Para migrar claves de licencia desde otro sistema, impórtalas con la API Create License Key. Tus clientes pueden seguir activando, validando y desactivando las mismas cadenas de clave, por lo que no necesitas volver a emitirlas. La solicitud requierekey, customer_id e product_id. Omite activations_limit para obtener activaciones ilimitadas y omite expires_at para una clave que nunca caduca. Importar una cadena de clave que ya existe devuelve 409.
Diferencias de las claves según su origen
El camposource registra cómo se creó cada clave de licencia:
Usa
source para distinguir las claves migradas y completadas manualmente de las claves generadas por Dodo Payments, por ejemplo al conciliar o auditar claves. El campo está presente en los registros de claves de licencia, como la respuesta de POST /license_keys. El objeto license_key de las concesiones de List Grants no lo incluye. El endpoint heredado GET /license_keys, que devuelve source y acepta un filtro source, está obsoleto.
Claves de licencia en la URL de retorno
Cuando un cliente compra un producto con un entitlement License Key, Dodo Payments añade la clave generada a tureturn_url como parámetro de consulta license_key. Tu página de éxito puede mostrar la clave sin realizar otra llamada a la API:
%2C, así que lee el parámetro con un analizador de URL, que lo descodifica, antes de dividirlo:
subscription_id y el estado de la suscripción en lugar de payment_id:
Gestión de la API
Lifecycle Operations (Public Endpoints)
Lifecycle Operations (Public Endpoints)
La activación, la desactivación y la validación son públicas y no requieren una API key.
Activate License
Crea una instancia de activación para una clave de licencia.
Deactivate License
Elimina una instancia de activación para liberar capacidad.
Validate License
Comprueba que una clave esté activa y no haya caducado antes de conceder acceso.
License Key Management
License Key Management
Crea, enumera, recupera y actualiza registros individuales de claves de licencia. Usa estos endpoints para importar claves existentes o consultar detalles de uso.
Create License Key
Crea una clave de licencia o importa una existente.
List License Keys
Explora todas las claves con detalles de estado y uso.
Get License Key
Recupera una clave específica y sus metadatos.
Update License Key
Cambia la caducidad o el límite de activaciones, o activa o desactiva una clave.
Entitlement Management
Entitlement Management
Gestiona el propio entitlement License Key: su límite de activaciones, la duración de la licencia y el mensaje de activación.
Create Entitlement
Crea un entitlement License Key.
Update Entitlement
Actualiza la configuración del entitlement.
List Grants
Enumera las claves emitidas para un entitlement.
Revoke Grant
Revoca manualmente la clave de un cliente.
Webhooks
La entrega y revocación de claves de licencia envían los cuatro eventos de webhookentitlement_grant.*. Para las concesiones de claves de licencia, el payload incluye un objeto license_key con la clave, el estado, la caducidad, las activaciones usadas y el límite de activaciones.
El evento heredado license_key.created todavía se activa cuando se crea un registro de clave de licencia. Consulta la página del payload del webhook License Key.
Claves de licencia heredadas
Los productos creados con el indicador antiguo
license_key_enabled se han migrado automáticamente a un entitlement License Key. La migración es transparente: las claves de los clientes existentes siguen funcionando, los endpoints públicos /licenses/activate, /licenses/validate e /licenses/deactivate siguen funcionando y los endpoints de API /license_keys/* leen y escriben en el mismo almacén de claves.La sección independiente Sales → License Keys del dashboard sigue disponible como una lista plana de todas las claves emitidas para auditoría y búsqueda. Para cambiar los límites de activación, la duración de la licencia o el mensaje de activación, edita el entitlement License Key migrado en Entitlements.Prácticas recomendadas
- Elige límites de activación claros: selecciona valores predeterminados como 1 para aplicaciones de un solo usuario o 3–5 para licencias de equipo, y documenta estos valores para tus clientes.
- Escribe mensajes de activación precisos: los clientes los copian del email de la clave de licencia, por lo que las rutas y los comandos exactos evitan solicitudes de soporte.
- Valida las claves contra la API: para productos conectados a la red, llama a
/licenses/validateen lugar de depender de una activación almacenada localmente en caché. - Usa webhooks para la revocación: gestiona
entitlement_grant.revokedpara desactivar las funciones de la aplicación cuando un cliente cancela o recibe un reembolso. - Prueba las suscripciones y las compras one-time: el comportamiento de las claves de licencia varía entre ambas, por ejemplo, las claves de suscripción no caducan, así que prueba las dos antes de ponerlas en producción.