Webhook Setup
Webhooks deliver Rabisu events (VPS provisioned, suspended, credit added, product changed) to your module instantly. This is far faster than polling and removes delay. The cron still remains as a fallback.
Receiver URL
The module includes a standalone webhook receiver:
https://<reseller-root>/modules/addons/rabisu/webhook.php
Step 1 — Register with Rabisu
Register this URL with the Rabisu Reseller API (POST /webhooks). Copy the returned
secret — it is shown only once. Recommended subscription:
{
"url": "https://<reseller-root>/modules/addons/rabisu/webhook.php",
"event_types": ["service.*", "product.*", "credit.added"]
}
Step 2 — Enter the secret in the module
Paste the returned secret into Addon Modules > Rabisu > Configure > "Webhook Secret". The module verifies the signature of incoming requests with this secret.
Signature verification
Rabisu sends an X-Rabisu-Signature: sha256=<hmac> header on every request. The
module verifies it against the raw body with HMAC-SHA256 in constant time. An invalid
signature → 401 (Rabisu treats this as permanent and does not retry).
Handled events
| Event | What the module does |
|---|---|
service.created | Links service_id to the local record, sets status active, then writes IP + root password + hostname to the WHMCS service |
service.suspended/unsuspended/terminated | Updates the local service status |
product.price_changed | Updates cost, queues a price-increase decision |
product.stock_changed | Opens/closes the product for ordering |
product.disabled | Hides the product |
Troubleshooting
- No webhooks arriving → check the last webhook time and signature error counter in the sync health panel on the Reporting tab.
- Rising signature errors → ensure the Webhook Secret in the addon matches the secret of the Rabisu registration (register a new endpoint on Rabisu if needed).
- If an endpoint fails 5 times in a row, Rabisu auto-deactivates it; once fixed,
reactivate it on Rabisu with
PATCH /webhooks/{id}.