Pending que espera a que tú proporciones el valor de la clave, en lugar de que Dodo Payments genere una clave al realizar el pago. La clave puede proceder de tu propio sistema, de un proveedor externo o de un conjunto limitado de códigos.
Al finalizar esta guía, tendrás:
- Un producto con un derecho de Clave de Licencia configurado para cumplimiento
manual. - Un receptor de webhooks que detecta cuando un cliente está esperando una clave.
- Una llamada de cumplimiento que entrega la clave y notifica automáticamente al cliente.
License Keys Overview
El ciclo de vida completo de las claves de licencia y la configuración
fulfillment_mode.Fulfill License Key Grant API
Referencia de la API para el endpoint que utilizas para entregar una clave.
Cómo Funciona
La secuencia siguiente muestra una compra, desde el checkout hasta la entrega de la clave: El cumplimiento manual solo cambia el paso de emisión. Una vez entregada, la clave se comporta como una clave generada automáticamente para la activación, validación, desactivación, expiración y revocación. Una compra de varias unidades crea un grantPending por unidad, y cada grant necesita su propia clave.
Requisitos previos
Para seguir esta guía, necesitas:- Una cuenta de comerciante de Dodo Payments.
- Una API key, creada en Developer → API Keys y almacenada en
DODO_PAYMENTS_API_KEY, y el secreto de firma de webhook de Developer → Webhooks, almacenado enDODO_PAYMENTS_WEBHOOK_KEY. Consulta la guía de generación de API keys. - Un endpoint de backend que pueda recibir webhooks.
Utiliza
https://test.dodopayments.com y las credenciales del modo de prueba mientras desarrollas. Cuando pases a producción, cambia a https://live.dodopayments.com y utiliza las keys del modo activo.Paso 1 — Crea un entitlement de License Key en modo manual
Un entitlement es una definición reutilizable de lo que entregas. Crea un entitlement de License Key y establece sufulfillment_mode en manual.
- Dashboard
- API
1
Open Entitlements
Ve a Entitlements en el dashboard y haz clic en + para crear un entitlement.
2
Choose License Key
Selecciona License Keys e introduce un Name. El formulario contiene estos campos:
- Fulfillment Mode: Automatic de forma predeterminada. Esta es la configuración que habilita el cumplimiento manual, y la cambiarás en el siguiente paso.
- License Length: cuánto tiempo permanece válida cada clave emitida, o No expiration.
- Activations Limit: el número máximo de activaciones por clave, o Unlimited.
- Activation Message: un mensaje opcional dirigido al cliente que se muestra cuando este activa la clave y que se incluye en el correo electrónico de la clave de licencia.

3
Set Fulfillment Mode to Manual
Abre el menú desplegable Fulfillment Mode y cámbialo de Automatic a Manual. El resto de esta guía depende de esta configuración: sin ella, Dodo Payments genera y envía las claves automáticamente y no crea ningún grant pendiente. Con Manual seleccionado, cada compra crea un grant
Pending que debes completar. Haz clic en Create Entitlement para guardar.fulfillment_mode tiene auto de forma predeterminada. Si lo omites o dejas sin cambios un entitlement existente, este mantiene el cumplimiento automático. Solo los entitlements establecidos explícitamente en manual crean grants pendientes.Paso 2 — Vincula el entitlement a un producto
Abre el producto que quieres vender, ve a su sección Entitlements y selecciona el entitlement de License Key que estableciste en Manual en el Paso 1. Un producto puede entregar esta clave de licencia junto con otros entitlements en la misma compra. Si todavía no tienes un producto, crea primero un producto de pago único o de suscripción. Para venderlo mediante checkout, consulta la Guía de integración.
Selecting the License Key entitlement in the product entitlements panel.
El modo de cumplimiento es una propiedad del entitlement, no del producto. Como lo estableciste en Manual en el Paso 1, cada producto al que se vincule este entitlement crea grants de claves de licencia
Pending al realizar la compra. No necesitas configurar nada más en el producto.Paso 3 — Detecta los grants pendientes
Cuando un cliente compra el producto, Dodo Payments crea un grant con el estadoPending, sin ninguna clave vinculada, y envía un webhook entitlement_grant.created. Este evento indica que un cliente está esperando una clave.
Escucha el webhook
Añade un endpoint de webhook en Developer → Webhooks en el dashboard y, a continuación, actúa sobre los grants de claves de licencia pendientes. Los webhooks siguen la especificación de Standard Webhooks, por lo que puedes verificarlos con la bibliotecastandardwebhooks:
integration_type: "license_key", por lo que puedes reconocer un grant de clave de licencia sin realizar otra búsqueda. Las entregas de webhooks pueden repetirse, así que omite los eventos cuyo encabezado webhook-id ya hayas procesado. Consulta la referencia del webhook de Entitlement Grant para ver el payload completo.
O consulta la API List Grants
Si prefieres no depender de los webhooks, enumera los grants de tu entitlement de License Key y filtra porstatus. Cada grant de un entitlement de License Key es un grant de clave de licencia, por lo que no necesitas un filtro integration_type:
Paso 4 — Entrega la clave
Obtén el valor de la clave de tu propio sistema y, a continuación, envíalo al endpoint Fulfill License Key Grant. La llamada requiere tu secret API key con permiso de Editor. No es uno de los endpoints públicos de licencias. Los SDK también lo exponen, por ejemplo comoclient.entitlements.grants.fulfillLicenseKey() en TypeScript y client.entitlements.grants.fulfill_license_key() en Python.
Campos de la solicitud
string
requerido
La cadena de la clave de licencia que se entregará al cliente, de hasta 255 caracteres. Los espacios en blanco circundantes se eliminan, y se rechaza un valor vacío o compuesto únicamente por espacios en blanco.
integer
Límite de activaciones por clave, como mínimo 1. Si se omite, se aplica el Activations Limit del entitlement.
string
Expiración por clave (ISO 8601). Si se omite, la clave de un grant de pago único expira según el License Length del entitlement, mientras que la clave de un grant de suscripción no expira, por lo que su validez sigue la de la suscripción.
Delivered, Dodo Payments envía la clave por correo electrónico al cliente (el mismo correo que recibe con el cumplimiento automático) y se activan los eventos de webhook license_key.created e entitlement_grant.delivered.
El correo electrónico contiene la clave de licencia, el producto, el límite de activaciones, la expiración y tus instrucciones de activación:

The license key email the customer receives once you fulfill the grant.
No necesitas enviar la clave por correo electrónico tú mismo. La entrega se realiza automáticamente cuando se completa el grant.
Paso 5 — Gestiona los errores y los reintentos
El endpoint valida el grant antes de entregar nada. Gestiona estas respuestas:Verifica el flujo
Para probar el flujo de principio a fin:- Compra el producto en modo de prueba. Consulta las guías de checkout.
- Confirma que tu webhook recibió
entitlement_grant.createdconstatus: "Pending"eintegration_type: "license_key", o que el grant aparece en la respuesta de List Grants filtrada porstatus=Pending. - Llama al endpoint de cumplimiento con una clave de prueba.
- Confirma que la respuesta muestra
status: "Delivered"con unlicense_keyrellenado, que el cliente recibe el correo electrónico con la clave y que se activaentitlement_grant.delivered.
Una vez entregada la clave, el cliente puede activarla y validarla mediante los endpoints públicos de licencias, igual que una clave generada automáticamente.
Referencia de API relacionada
Create Entitlement
Crea el entitlement de License Key con
fulfillment_mode: manual.List Grants
Filtra por
status e customer_id para encontrar grants pendientes.Fulfill License Key Grant
Entrega el valor de la clave y cambia el grant a
Delivered.Entitlement Grant Webhooks
Los eventos
entitlement_grant.* que indican los grants pendientes y entregados.