{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"Getting Started","description":"Developer documentation for the WHMCS API — the","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"getting-started","__idx":0},"children":["Getting Started"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"sample-module","__idx":1},"children":["Sample Module"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Email"]}," notification module that ships with WHMCS is not encoded so the source code is viewable. We recommend using this as a starting point for a custom module. This module can be found in the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/modules/notifications/Email"]}," directory."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"choosing-a-name","__idx":2},"children":["Choosing a Name"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Notification Modules are stored in the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/modules/notifications/"]}," directory."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Each module has its own subdirectory within which all files relating to that module should be stored."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["At its simplest, a notification module is a PHP file containing a class that implements the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://docs.whmcs.com/classes/7.4/WHMCS/Module/Contracts/NotificationModuleInterface.html"},"children":["NotificationModuleInterface"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To get started creating a new notification module, follow the steps below."]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"em","attributes":{},"children":["Choose a name"]}," for your module. Module names should be a single word, consisting of only letters and numbers. Names must begin with a letter, and must be unique."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"em","attributes":{},"children":["Create a new directory"]}," using your desired module name."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"em","attributes":{},"children":["Create a new file"]}," within the directory with the filename ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Yourmodulename.php"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"em","attributes":{},"children":["Add the following code"]}," to the file, replacing all instances of ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Yourmodulename"]}," with the name of your module as appropriate."]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"<?php\n\nnamespace WHMCS\\Module\\Notification\\Yourmodulename;\n\nuse WHMCS\\Module\\Contracts\\NotificationModuleInterface;\n\n/**\n * Yourmodulename\n *\n * @copyright Copyright (c) WHMCS Limited 2005-2017\n * @license http://www.example.com/\n */\nclass Yourmodulename implements NotificationModuleInterface\n{\n}\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For more information on the NotificationModuleInterface, please refer to https://docs.whmcs.com/classes/7.4/WHMCS/Module/Contracts/NotificationModuleInterface.html"]}]},"headings":[{"value":"Getting Started","id":"getting-started","depth":1},{"value":"Sample Module","id":"sample-module","depth":2},{"value":"Choosing a Name","id":"choosing-a-name","depth":2}],"frontmatter":{"title":"Getting Started","seo":{"title":"Getting Started"}},"lastModified":"2026-08-03T17:00:42.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/notification-providers/getting-started","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}