Skip to main content
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.
Dodo Payments gestiona las claves de licencia mediante Entitlements. Los mismos eventos de pago y suscripción que impulsan tus otros entitlements controlan el ciclo de vida de cada clave: creación, caducidad, revocación y nueva concesión.

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 1 para un único usuario o 5 para 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 → License o Run: mycli activate <key>.
New License Key entitlement form with name, fulfillment mode, license length, activations limit, and activation message
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.
Product entitlements panel with License Key selected

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 un fulfillment_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 omite fulfillment_mode.
  • manual (Manual en el dashboard): cada unidad comprada crea una concesión Pending sin 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ón Pending 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, establece fulfillment_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 estado Pending 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 a Delivered 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 ID lki_. 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 devuelve valid: 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 devuelve 403 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 objeto license_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.
Las claves de licencia creadas o actualizadas mediante la API no activan notificaciones por email para los clientes. Para informar a los clientes sobre una clave importada, notifícalos desde tu propia aplicación.
La solicitud requiere key, 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 campo source 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.
¿Migras desde Polar.sh o Lemon Squeezy? La CLI dodo-migrate importa productos, clientes, descuentos y claves de licencia en bloque con un solo comando, y asigna los ID externos a los ID de Dodo Payments.

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 tu return_url como parámetro de consulta license_key. Tu página de éxito puede mostrar la clave sin realizar otra llamada a la API:
Si la compra genera más de una clave (cantidad superior a 1), el parámetro contiene una lista separada por comas. La coma se codifica en la URL como %2C, así que lee el parámetro con un analizador de URL, que lo descodifica, antes de dividirlo:
En las suscripciones, la URL contiene subscription_id y el estado de la suscripción en lugar de payment_id:
Lee el parámetro license_key en tu página de retorno para mostrar la clave justo después de la compra.

Gestión de la API

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.
Crea, enumera, recupera y actualiza registros individuales de claves de licencia. Usa estos endpoints para importar claves existentes o consultar detalles de uso.
GET /license_keys, GET /license_keys/{id} e PATCH /license_keys/{id} están obsoletos. Para las lecturas, usa los endpoints de concesiones de entitlements (List Grants, List Customer Grants). POST /license_keys sigue siendo compatible para importar claves existentes.

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.
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 webhook entitlement_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.
Para las integraciones nuevas, gestiona los eventos de concesión de entitlements en lugar de license_key.created. Una clave completada automáticamente llega como entitlement_grant.created con status: "Delivered" y no le sigue ningún evento entitlement_grant.delivered independiente. Una clave completada manualmente activa entitlement_grant.delivered cuando la proporcionas. Los mismos eventos cubren todos los entitlements del producto, no solo la clave de licencia.

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/validate en lugar de depender de una activación almacenada localmente en caché.
  • Usa webhooks para la revocación: gestiona entitlement_grant.revoked para 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.
Última modificación el 26 de septiembre de 2026