Keys
Gerar keys
Gera keys de um produto e desconta do seu saldo.
POST
/keysPermissão do token: Gerar keys keys:generategasta créditos
Cobra o preço da duração escolhida vezes a quantidade. Sem saldo suficiente, nada é gerado nem cobrado.
Idempotency-Key obrigatória
Toda chamada leva o cabeçalho Idempotency-Key, um código único por pedido. Repetindo com o mesmo código, você recebe as mesmas keys sem pagar de novo. Por quê?
Cabeçalhos
| Cabeçalho | Obrigatório | Descrição |
|---|---|---|
Idempotency-Key | Sim | Um código único por pedido (um UUID serve). Até 100 caracteres: letras, números e _ - : . |
Content-Type | Sim | application/json |
Corpo (JSON)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
product_id | número | Sim | O produto, da lista de produtos. |
quantity | número | Sim | Quantas keys gerar, de 1 a 50. |
days | número | Não | A duração, entre os plans do produto. Sem ele, 30 dias. Se o produto não tiver plano de 30 dias, days é obrigatório. |
O preço é sempre calculado do nosso lado, pela duração e pela quantidade. Qualquer outro campo no corpo é ignorado.
Resposta
| Campo | O que é |
|---|---|
generation_id | O id deste lote. Aparece no extrato como reference_id. |
keys[].key_code | A key para entregar ao cliente. |
keys[].user_id | O id da key na API (para consultar e resetar HWID). |
days | A duração das keys geradas. |
credits_spent | Quanto foi cobrado no total. |
balance | O seu saldo depois da cobrança. |
Repetição do mesmo pedido
Repetindo com a mesma Idempotency-Key e o mesmo corpo, a resposta traz as mesmas keys e não cobra de novo. Ela vem com "idempotent_replay": true em data e o cabeçalho Idempotent-Replayed: true.
Erros
| HTTP | Quando | O que fazer |
|---|---|---|
402 | Saldo insuficiente. Nada foi gerado nem cobrado. | errors.balance traz o seu saldo. Compre créditos e tente de novo. |
403 | O token não tem a permissão Gerar keys. | Crie um token com ela. |
409 | A Idempotency-Key já foi usada num pedido diferente, ou o primeiro pedido ainda está rodando. | Pedido novo: use um código novo. Mesmo pedido: espere alguns segundos e repita. |
422 | Dados inválidos, Idempotency-Key ausente ou fora do formato, produto indisponível, ou duração que o produto não tem. | A message diz o que corrigir. Duração errada traz as opções em errors.days. |
429 | Passou do limite. | Espere os segundos de Retry-After e tente de novo. |
500 | Falha do nosso lado ao gerar. | Os créditos voltam para o saldo (errors.credits_refunded diz quanto). Repita com a mesma Idempotency-Key. Se a mensagem falar em estorno parcial, ou se continuar falhando, fale com o suporte. |