Home / Developer Reference / Extension Stability & Support Contract

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.
  • Addonsmodules/addons/ with module.json and hooks.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?

Tags: Developer