Extension Stability & Support Contract
Explicit guarantees for third-party developers
Contract for third-party developers
WHMDC core is distributed in an encoded format. You cannot inspect internals. This page defines what you can safely build against.
What is guaranteed stable
The following are part of the public API and are backward-compatible:
- Hooks – All hooks documented in the Hooks Reference. Hook names, parameter order, and payload structure are stable.
- REST API – All endpoints under
/api/v1/documented in the API Reference. Request/response schemas are stable. - ModuleInterface – Gateway, server, registrar, and SMS provider modules implementing ModuleInterface. Method signatures and return formats are stable.
- Addons –
modules/addons/withmodule.jsonandhooks.php. Discovery and loading behaviour is stable. - Outgoing webhooks – Event names, payload format, and signature verification. Documented events are stable.
What is versioned
The REST API uses path versioning: /api/v1/. Breaking changes will be released under a new path (e.g. /api/v2/). The current version remains supported until the deprecation period ends.
Breaking changes – how we handle them
- API endpoints: Deprecation notice in release notes; endpoint marked deprecated in docs; minimum 12 months before removal.
- Hooks: Deprecation notice in release notes; replacement hook available; minimum 6 months before removal.
- ModuleInterface: New methods may be added (optional); existing method signatures will not change without a new major version.
What is not part of the public API
Anything not documented here is not supported. Do not rely on:
- Undocumented hooks, endpoints, or parameters
- Internal class names, file paths, or database schema beyond what is documented
- Behaviour inferred from experimentation rather than documentation
What we do not support
- Modifying core PHP files (they are encoded)
- Direct database writes to core tables (use the API or documented helpers)
- Internal or undocumented routes
Summary
Build against what is documented. We will not break documented behaviour without deprecation notice and a minimum notice period. Undocumented behaviour is not a contract.
Was this helpful?