Aller au contenu principal

Créer une licence

POST /api/reseller/licenses

Génère une nouvelle clé de licence pour l'un de vos scripts. C'est l'appel à brancher sur votre webhook « paiement confirmé ».

Paramètres

ChampTypeRequisDéfautNotes
scriptIdstringouiLe script à débloquer. Doit vous appartenir.
maxSlotsnumbernon1Serveurs simultanés autorisés.
notestringnon""Note interne. Indiquez-y votre numéro de commande.
discordIdstringnonnullL'identifiant Discord de votre client.
expiresAtchaîne ISO 8601nonnullnull = sans expiration.
prefixstringnon"LIC"Préfixe de la clé générée, par ex. NXG-….

La clé est toujours générée côté serveur — vous ne pouvez pas la fournir.

Requête

curl -X POST https://api.nexalab.fr/api/reseller/licenses \
-H "X-Reseller-Key: $RESELLER_KEY" \
-H "Content-Type: application/json" \
-d '{
"scriptId": "nx-garage",
"maxSlots": 2,
"note": "Commande #1042",
"discordId": "987654321098765432",
"expiresAt": "2027-01-01T00:00:00.000Z",
"prefix": "NXG"
}'

Réponse 200 OK

{
"ok": true,
"license": {
"key": "NXG-8F3A-B1C0-D4E5",
"scriptId": "nx-garage",
"maxSlots": 2,
"note": "Commande #1042",
"discordId": "987654321098765432",
"expiresAt": "2027-01-01T00:00:00.000Z",
"revoked": false,
"createdAt": "2026-07-28T12:00:00.000Z"
}
}

Transmettez license.key à votre client.

Renseignez toujours note

Enregistrez votre numéro de commande ou de facture dans note dès la création. Lorsqu'une rétrofacturation arrive des semaines plus tard, retrouver le paiement correspondant à une clé fait la différence entre une suspension en cinq secondes et une recherche manuelle.

Cet appel prend un instant

Créer une licence prépare également le téléchargement du client. Attendez-vous à ce qu'il soit plus lent que les autres points d'accès — prévoyez un délai d'attente généreux (30 s) et évitez de le déclencher dans un cycle requête/réponse serré si vous pouvez le mettre en file d'attente.

Exemples

À vie, un seul serveur — le cas courant :

{ "scriptId": "nx-garage", "note": "Commande #1042" }

Abonnement mensuel :

{
"scriptId": "nx-garage",
"note": "Abo #88 — renouvellement mensuel",
"discordId": "987654321098765432",
"expiresAt": "2026-08-28T00:00:00.000Z"
}

Clé personnalisée avec un pack deux serveurs :

{ "scriptId": "nx-garage", "prefix": "NXG", "maxSlots": 2, "note": "Commande #1103" }

Erreurs

StatuterrorCause
400missing_fieldsscriptId n'a pas été fourni.
403forbiddenClé revendeur manquante, invalide ou compte désactivé.
404script_not_foundScript inconnu, ou qui ne vous appartient pas.

Idempotence

Il n'existe pas de clé d'idempotence. Une requête réessayée crée une seconde licence. Protégez-vous contre les doubles générations en enregistrant la clé renvoyée avec votre numéro de commande avant d'accuser réception du webhook de paiement, et en sautant l'appel si cette commande possède déjà une clé.