Skip to main content

Suspend a license

POST /api/reseller/licenses/:key/revoke

Suspends a license, or restores a suspended one. This is the reversible action — reach for it before you reach for delete.

Parameters

FieldTypeDefaultNotes
revokedbooleantruetrue suspends, false restores.

Sending an empty body {} suspends the license.

Suspend

curl -X POST https://api.nexalab.fr/api/reseller/licenses/NXG-8F3A-B1C0-D4E5/revoke \
-H "X-Reseller-Key: $RESELLER_KEY" \
-H "Content-Type: application/json" \
-d '{}'
{ "ok": true, "key": "NXG-8F3A-B1C0-D4E5", "revoked": true }

Restore

curl -X POST https://api.nexalab.fr/api/reseller/licenses/NXG-8F3A-B1C0-D4E5/revoke \
-H "X-Reseller-Key: $RESELLER_KEY" \
-H "Content-Type: application/json" \
-d '{"revoked": false}'
{ "ok": true, "key": "NXG-8F3A-B1C0-D4E5", "revoked": false }

What suspension does

  • The license stops being usable — the customer's script no longer runs.
  • Everything else is preserved: the key, your note, the customer's Discord ID, the slot configuration and the expiry.
  • Restoring returns the license to exactly the state it was in.
Not always instant

Suspension is picked up shortly after you issue it rather than at the same instant, so allow a short delay before confirming to a customer that access has been cut.

When to suspend

ScenarioAction
Chargeback or failed paymentSuspend. Restore if the payment clears.
Dispute under investigationSuspend while you look into it.
Terms-of-service violationSuspend; delete only if permanent.
Subscription simply lapsedDo nothing — let expiresAt handle it.
Customer requests data erasureDelete instead.

Errors

StatuserrorCause
403forbiddenMissing, invalid or disabled reseller key.
404not_foundUnknown license, or it does not belong to you.

The call is idempotent — suspending an already-suspended license is harmless and returns the same response.