> ## Documentation Index
> Fetch the complete documentation index at: https://docs.norbaas.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Automatize a Gestão de Chaves de Licença dos Clientes

> Venda acesso com chave de licença ao seu serviço, software ou APIs com facilidade

<img src="https://mintcdn.com/norbaas/6S260O1Xhhh2pqnt/assets/features/benefits/license-keys/hero.jpeg?fit=max&auto=format&n=6S260O1Xhhh2pqnt&q=85&s=1b91047fced0c3adf8443aa6454be855" width="1807" height="923" data-path="assets/features/benefits/license-keys/hero.jpeg" />

Você pode vender facilmente chaves de licença de software com a Norbaas, sem precisar lidar com impostos sobre vendas ou hospedar uma API para validá-las em tempo real. As chaves de licença da Norbaas incluem diversos recursos avançados integrados.

* Prefixos personalizáveis, por exemplo, `Norbaas_****`
* Expiração automática após `N` dias, meses ou anos
* Número limitado de ativações por usuário, por exemplo, dispositivos
* Condições de validação personalizadas
* Quotas de uso por chave de licença
* Revogação automática em caso de assinaturas canceladas

## Criar Benefício de Chave de Licença

1. Acesse `Benefícios` na barra latera\`
2. Clique em `+ Novo Benefício` para criar um novo benefício
3. Escolha `Chaves de Licença` como o `Tipo`

### Personalização de Marca

Faça suas chaves de licença se destacarem com prefixos personalizáveis, por exemplo,`MYAPP_<AUTO_GENERATED_UUID4>`

### Expiração Automática

Deseja que as chaves de licença expirem automaticamente após um determinado período desde a compra pelo cliente? Sem problemas.

### Limites de Ativação

Você pode exigir que as chaves de licença sejam ativadas antes de futuras validações. Um ótimo recurso caso queira limitar o uso das chaves a um certo número de dispositivos, IPs ou outras condições.

**Permita que o usuário desative instâncias via Norbaas.** Em vez de construir um painel de administração personalizado para que os clientes gerenciem suas instâncias de ativação, deixe essa responsabilidade com a Norbaas.

### Limite de Uso

Está oferecendo tokens do OpenAI ou qualquer outro item com custo de uso variável? Você pode definir uma cota de uso personalizada por chave de licença e incrementar o uso durante a validação.

## Experiência do Cliente

Assim que os clientes comprarem seu produto ou assinarem seu nível, eles receberão automaticamente uma chave de licença única. Ela estará facilmente acessível na página de compras deles.

Os clientes podem:

* Visualizar e copiar sua chave de licença
* Ver a data de expiração (se aplicável)
* Ver o uso restante (se aplicável)
* Desativar ativações (se permitido)

## Integrar API

Integrar as chaves de licença da Norbaas ao seu aplicativo, biblioteca ou API é simples e direto.

### Ativar Chaves de Licença (Opcional)

Caso você tenha configurado as chaves de licença para um número máximo de instâncias de ativação, como dispositivos de usuários, será necessário criar uma instância de ativação antes de validar as chaves de licença ou ativação.

**Sem limite de ativação?** Você pode pular esta etapa.

```bash theme={null}
curl -X POST https://api.norbaas.sh/v1/customer-portal/license-keys/activate
-H "Content-Type: application/json"
-d '{
  "key": "1C285B2D-6CE6-4BC7-B8BE-ADB6A7E304DA",
  "organization_id": "fda84e25-7b55-4d67-916d-60ead04ff61f",
  "label": "hello",
  "conditions": { "major_version": 1 },
  "meta": { "ip": "84.19.145.194" }
}'
```

<ParamField path="key" type="string" required>
  Substitua pela chave de licença do usuário (fornecida como entrada no seu aplicativo).
</ParamField>

<ParamField path="organization_id" type="string" required>
  Substitua pelo ID da sua organização, encontrado em suas configurações.
</ParamField>

<ParamField path="label" type="string" required>
  Defina um rótulo para associar a esta ativação específica.
</ParamField>

<ParamField path="conditions" type="object">
  Objeto JSON com condições personalizadas para validar no futuro, como IP, endereço MAC, versão principal, etc.
</ParamField>

<ParamField path="meta" type="object">
  Objeto JSON com metadados para armazenar na ativação do usuário.
</ParamField>

#### **Resposta  (200 OK)**

```json theme={null}
{
  "id": "b6724bc8-7ad9-4ca0-b143-7c896fcbb6fe",
  "license_key_id": "508176f7-065a-4b5d-b524-4e9c8a11ed63",
  "label": "hello",
  "meta": {
    "ip": "84.19.145.194"
  },
  "created_at": "2024-09-02T13:48:13.251621Z",
  "modified_at": null,
  "license_key": {
    "id": "508176f7-065a-4b5d-b524-4e9c8a11ed63",
    "organization_id": "fda84e25-7b55-4d67-916d-60ead04ff61f",
    "user_id": "d910050c-be66-4ca0-b4cc-34fde514f227",
    "benefit_id": "32a8eda4-56cf-4a94-8228-792d324a519e",
    "key": "1C285B2D-6CE6-4BC7-B8BE-ADB6A7E304DA",
    "display_key": "****-E304DA",
    "status": "granted",
    "limit_activations": 3,
    "usage": 0,
    "limit_usage": 100,
    "validations": 0,
    "last_validated_at": null,
    "expires_at": "2026-08-30T08:40:34.769148Z"
  }
}
```

### Validar Chaves de Licença

Para cada sessão do seu aplicativo, biblioteca ou API premium, recomendamos que você valide a chave de licença do usuário usando o endpoint
[`/v1/customer-portal/license-keys/validate`](/api-reference/customer-portal/license-keys/validate).

```bash theme={null}
curl -X POST https://api.norbaas.sh/v1/customer-portal/license-keys/validate
-H "Content-Type: application/json"
-d '{
  "key": "1C285B2D-6CE6-4BC7-B8BE-ADB6A7E304DA",
  "organization_id": "fda84e25-7b55-4d67-916d-60ead04ff61f",
  "activation_id": "b6724bc8-7ad9-4ca0-b143-7c896fcbb6fe",
  "conditions": { "major_version": 1 },
  "increment_usage": 15
}'
```

<ParamField path="key" type="string" required>
  Substitua pela chave de licença do usuário (fornecida como entrada no seu aplicativo).
</ParamField>

<ParamField path="organization_id" type="string" required>
  Substitua pelo ID da sua organização, encontrado em suas configurações.
</ParamField>

<ParamField path="activation_id" type="string">
  O ID da ativação a ser validado - obrigatório caso o limite de ativações esteja habilitado e usado (acima).
</ParamField>

<ParamField path="conditions" type="object">
  No caso de instâncias de ativação. O mesmo objeto JSON exato usado no registro da ativação.
</ParamField>

<ParamField path="increment_usage" type="integer">
  Caso você queira incrementar o uso durante a validação.
</ParamField>

#### **Resposta (200 OK)**

```json theme={null}
{
  "id": "508176f7-065a-4b5d-b524-4e9c8a11ed63",
  "organization_id": "fda84e25-7b55-4d67-916d-60ead04ff61f",
  "user_id": "d910050c-be66-4ca0-b4cc-34fde514f227",
  "benefit_id": "32a8eda4-56cf-4a94-8228-792d324a519e",
  "key": "1C285B2D-6CE6-4BC7-B8BE-ADB6A7E304DA",
  "display_key": "****-E304DA",
  "status": "granted",
  "limit_activations": 3,
  "usage": 15,
  "limit_usage": 100,
  "validations": 5,
  "last_validated_at": "2024-09-02T13:57:00.977363Z",
  "expires_at": "2026-08-30T08:40:34.769148Z",
  "activation": {
    "id": "b6724bc8-7ad9-4ca0-b143-7c896fcbb6fe",
    "license_key_id": "508176f7-065a-4b5d-b524-4e9c8a11ed63",
    "label": "hello",
    "meta": {
      "ip": "84.19.145.194"
    },
    "created_at": "2024-09-02T13:48:13.251621Z",
    "modified_at": null
  }
}
```

Validar `benefit_id` em caso de múltiplas chaves de licença

É necessário fornecer o `organization_id` para evitar casos de uso indevido de chaves de licença Norbaas entre diferentes organizações. Caso contrário, uma chave de licença válida para uma organização poderia ser utilizada em outra.

No entanto, você deve validar e delimitar as chaves de licença de forma mais específica dentro da sua organização, se necessário. Oferece mais de um tipo de chave de licença? Certifique-se de validar o identificador único `benefit_id` nas respostas.
