Skip to main content

Terminate the service via the WHMCS module hook (asynchronous)

DELETE 

/services/:id

WhmcsApiClient::moduleTerminate is called. The WHMCS provisioning queue runs the Virtualizor delvs job async (~60s queue + ~30s delvs). For this reason the response returns HTTP 202 Accepted; the reseller then tracks it with GET /services/{id}/status.

Idempotency-Key: REQUIRED (without the header, 400 missing_idempotency_key). Destructive op + double-click protection. A repeat request with the same key within 24 hours returns the cached response — a 2nd delvs is not queued.

Rate limit: Default bucket (60 rpm).

Body: {"confirm": true} STRICT bool === true. Truthy values (1, "true", "yes") are rejected → 400 invalid_terminate_request.

vps_id null: SKIP (allowed). A cleanup scenario for pending/whitelabel services — WHMCS moduleTerminate does not look at vps_id, it works by serviceid.

Side effect: mod_reseller_provisions.status='terminated' is set + the service.terminated event (status='skipped') is written to the webhook queue.

Request

Responses

Termination scheduled (async — WHMCS queue + Virtualizor delvs)

Response Headers
    X-RateLimit-Limit

    The per-minute limit defined for this key

    X-RateLimit-Remaining

    Number of requests remaining in the current window

    X-RateLimit-Reset

    Unix epoch of the start of the next window (UTC seconds)