As chaves de licença são o tipo de direito de Chave de Licença. Crie um direito de Chave de Licença uma vez com o limite de ativação, expiração e instruções desejadas, anexe a qualquer produto, e o Dodo Payments gera e entrega uma chave por compra ou assento de assinatura, automaticamente.
O que são Chaves de Licença?
Chaves de licença são tokens únicos que autorizam o acesso ao seu produto. Elas são ideais para:- Licenciamento de software: Aplicativos de desktop, plugins e CLIs
- Controles por usuário: Limitar ativações por usuário ou dispositivo
- Bens digitais: Restringir downloads, atualizações ou recursos premium
Criar um Direito de Chave de Licença
Open Entitlements
Vá para Entitlements no seu painel do Dodo Payments e clique em + para criar um novo direito.
Choose License Key
Selecione License Key como a integração. Configure como cada chave emitida deve se comportar:
- Limite de Ativações: Máximo de ativações simultâneas por chave (por exemplo,
1para usuário único,5para licenças de equipe, deixar em branco para ilimitado). - Duração: Quanto tempo a chave permanece válida após a emissão (por exemplo, 30 dias, 1 ano). Para chaves emitidas por assinatura, deixe em branco; as chaves permanecem válidas enquanto a assinatura estiver ativa.
- Instruções de Ativação: Instruções orientadas ao cliente enviadas por e-mail com a chave. Exemplos:
Paste the key in Settings → LicenseouRun: mycli activate <key>.

Anexar a Produtos
Abra um produto, expanda Configurações Avançadas → Direitos & Créditos, e selecione seu direito de Chave de Licença. Um único produto pode entregar uma chave de licença junto com outros direitos (acesso ao Discord, downloads de arquivos, acesso ao repositório do GitHub, etc.) na mesma compra.
Como as Chaves são Emitidas
A emissão de chaves segue o ciclo de concessão padrão:| Evento | Comportamento |
|---|---|
payment.succeeded (uma vez) | Gere uma chave por quantity comprado. A expiração da chave respeita a duração do direito. |
subscription.active | Gere uma chave por assinatura quantity (assento). A chave não expira; a validade está vinculada ao status da assinatura. |
subscription.renewed | Nenhuma operação. As chaves existentes persistem. |
subscription.on_hold | Desabilite as chaves. Elas se reativam quando a assinatura sai de espera. |
subscription.cancelled / expired | Desabilite as chaves permanentemente. |
subscription.plan_changed | Desabilite as antigas chaves; emita novas para o novo plano. |
refund.succeeded (uma vez) | Desabilite as chaves. |
| Revogação manual via API/painel | Desabilite as chaves com revocation_reason: manual. Estas não são automaticamente reemitidas na renovação da assinatura. |
| Chave de licença desabilitada diretamente | Revogue a concessão com revocation_reason: license_key_disabled. Reabilitar a chave reativa a concessão automaticamente. |
Comportamento de Quantidade
- Produtos por assinatura emitem uma chave por assento (
subscriptions.quantity). - Produtos únicos emitem uma chave por item de linha do carrinho (
product_cart.quantity). - Concessões manuais de API emitem exatamente uma chave.
Modo de cumprimento
Cada direito de Chave de Licença tem umfulfillment_mode que controla quem fornece a chave:
auto(padrão): Dodo Payments gera e envia automaticamente a chave por e-mail após pagamento ou assinatura. Este é o comportamento descrito acima e se aplica quandofulfillment_modeé omitido.manual: A compra cria uma concessãopendingsem chave, e você fornece cada valor de chave. Veja Cumprimento Manual abaixo.
Cumprimento Manual
Por padrão, o Dodo Payments gera e envia por e-mail uma chave de licença assim que um cliente paga. Com o cumprimento manual você fornece a chave: a compra cria uma concessãopending sem chave, notifica você e aguarda a submissão do valor da chave. Use-o quando as chaves vierem do seu próprio sistema, de um fornecedor terceirizado ou de um estoque finito de códigos pré-impressos.
Procurando uma construção passo a passo? Veja o Guia de Integração de Cumprimento Manual de Chave de Licença para um passo a passo completo desde a criação do produto até a entrega da chave.
Quando usar
A execução automática é o padrão adequado para a maioria das licenças de software. Escolha o cumprimento manual quando o Dodo Payments não puder gerar a chave por conta própria:- Traga suas próprias chaves: A chave é gerada por seu aplicativo, um produto de desktop ou seu próprio servidor de licenças.
- Fornecedores terceiros: Você revende chaves emitidas por um fornecedor upstream (uma chave de jogo, uma credencial de API, uma plataforma parceira).
- Inventário finito: Você distribui códigos de um pool pré-alocado e deseja atribuí-los um a um.
- Revisão humana: Você quer verificar uma compra antes de liberar o acesso.
Habilitar cumprimento manual
Definafulfillment_mode: "manual" na configuração de integração do direito da Chave de Licença:
fulfillment_mode é compatível com versões anteriores. Direitos criados antes de essa configuração existir não têm fulfillment_mode e continuam a se comportar como auto. A mudança para manual só afeta concessões criadas após a alteração; chaves já entregues não são tocadas.Encontrar concessões aguardando cumprimento
Quando um cliente compra um produto em modo manual, a concessão é criada em statuspending sem chave e um webhook entitlement_grant.created é disparado com integration_type: "license_key" e status: "pending". Você pode reagir a esse webhook ou consultar o endpoint List Grants com os filtros integration_type e status:
Entregar a chave
Envie a chave com o endpoint Fulfill License Key Grant. A concessão passa paradelivered e o cliente recebe automaticamente a chave — o mesmo e-mail que receberia na execução automática.
cURL
activations_limit e expires_at são opcionais e voltam à configuração do direito quando omitidos. Cada concessão pode ser cumprida uma vez; tentar cumprir novamente uma concessão já cumprida retorna 409 em vez de emitir uma segunda chave.
Você não precisa enviar a chave por e-mail — a entrega acontece automaticamente quando a concessão é cumprida. Isso difere de importar chaves via
POST /license_keys, que intencionalmente não notifica o cliente.Ativação, Validação, Desativação
Os endpoints de ativação/validação/desativação da API são públicos e não requerem chave de API. Use-os diretamente a partir de software de desktop, CLIs ou clientes baseados em navegador para verificar chaves em tempo de execução.Endpoints Públicos: Os endpoints de ativação, desativação e validação de licença são públicos e não exigem chave de API. Chame-os diretamente de suas aplicações clientes sem expor suas credenciais de API.
Ativar uma licença
Validar uma licença
Desativar uma instância de ativação
Gerenciar Chaves
Abra o direito de Chave de Licença no seu dashboard para ver cada concessão (uma linha por chave de cliente) com data de entrega, contagem de ativações e uma ação de revogação. Cada detalhe da concessão revela a chave de licença subjacente, validade, ativações usadas e o limite de ativações. Você também pode listar concessões programaticamente:Importar Chaves de Licença Existentes via API
Já tem chaves de licença em outro sistema? Use a API Create License Key para importá-las para o Dodo Payments. Isso permite migrar chaves existentes sem interromper seus clientes — eles continuam a ativar, validar e desativar usando as mesmas strings de chaves sem reemissão.Como as chaves diferem por fonte
| Campo | Chave gerada automaticamente | Chave cumprida manualmente | Chave Importada |
|---|---|---|---|
source | "auto" | "manual" | "import" |
| Origem | Gerada pelo Dodo Payments no pagamento | Fornecida por você contra uma concessão pendente | Criada/migrada via POST /license_keys |
payment_id | Definida para o pagamento de origem | Resolvida da concessão ou de sua assinatura | null (sem transação do Dodo Payments) |
subscription_id | Definido se emitido via uma assinatura | Definido se a concessão veio de uma assinatura | null a menos que explicitamente vinculado |
| Notificação de e-mail do cliente | Enviada na emissão | Enviada no cumprimento | Não enviada — gerenciar separadamente |
source em respostas GET /license_keys para distinguir inventário migrado e chaves cumpridas manualmente de chaves emitidas organicamente ao reconciliar ou auditar.
Chaves de Licença na URL de Retorno
Quando um cliente conclui uma compra de um produto com direito a Chave de Licença, a chave gerada é automaticamente anexada à suareturn_url como um parâmetro de consulta. Isso permite exibir a chave imediatamente na sua página de sucesso sem fazer uma chamada de API extra.
subscription_id é usado em vez de payment_id:
Gerenciamento de API
Lifecycle Operations (Public Endpoints)
Lifecycle Operations (Public Endpoints)
Ativação, desativação e validação são públicas; não é necessária chave de API.
Activate License
Crie ou registre uma instância de ativação para uma chave de licença.
Deactivate License
Revogue uma ativação anterior para liberar capacidade.
Validate License
Verifique a autenticidade, status e restrições antes de conceder acesso.
License Key Management
License Key Management
Crie, liste, recupere e atualize registros individuais de chaves de licença. Use-os para importar chaves existentes ou buscar detalhes de uso.
Create License Key
Crie uma nova chave de licença ou importe uma existente.
List License Keys
Navegue por todas as chaves com detalhes de status e uso.
Get License Key
Recupere uma chave específica e seus metadados.
Update License Key
Modifique a expiração, limites de ativação ou habilite/desabilite uma chave.
Entitlement Management
Entitlement Management
Gerencie o próprio direito de Chave de Licença: seu limite de ativação, duração e instruções.
Create Entitlement
Crie um direito de Chave de Licença.
Update Entitlement
Atualize a configuração do direito.
List Grants
Liste as chaves emitidas para um direito.
Revoke Grant
Revogue manualmente a chave de um cliente.
Webhooks
Entrega e revogação de chave de licença disparam os quatro eventosentitlement_grant.* de webhook. A carga útil da concessão inclui um objeto license_key preenchido com a chave, validade, ativações usadas e limite.
Os eventos legados license_key.* (license_key.created) continuam a ser acionados para o ciclo de vida do registro de chave de licença subjacente; veja a página de carga útil de webhook de Chave de Licença.
Chaves de Licença Legadas
Produtos criados com a antiga flag
license_key_enabled foram automaticamente migrados para um direito de Chave de Licença. A migração é transparente: as chaves dos clientes existentes continuam a funcionar inalteradas, os endpoints públicos /licenses/activate, /licenses/validate, /licenses/deactivate continuam a funcionar, e os endpoints da API /license_keys/* continuam a ler e a escrever na mesma loja de chaves.A seção autônoma Chaves de Licença no painel continua disponível como uma lista plana de todas as chaves emitidas, útil para auditoria e pesquisa. Nova configuração (alterando limites de ativação, durações ou instruções) deve ser feita editando o direito de Chave de Licença migrado em Direitos.Melhores Práticas
- Mantenha os limites de ativação claros: Escolha padrões sensatos (1 para aplicativos de usuário único, 3-5 para licenças de equipe) e documente-os.
- Forneça instruções de ativação precisas: Os clientes copiam essas instruções de seus e-mails, então caminhos e comandos exatos economizam tickets de suporte.
- Valide as chaves no lado do servidor: Para produtos conectados à rede, valide via
/licenses/validateem vez de armazenar a ativação localmente. - Use webhooks para revogação: Ouça
entitlement_grant.revokedpara desativar funcionalidades no aplicativo imediatamente quando um cliente cancela ou solicita reembolso. - Teste com assinaturas e compras únicas: O comportamento da chave de licença difere ligeiramente entre os dois, então teste ambos antes de ir ao ar.