{"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":"p","attributes":{},"children":["The first step in creating a module for WHMCS is determining which type of module you wish to create:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/provisioning-modules/"},"children":["Provisioning Modules"]}]}," - Provisioning Modules, also referred to as Product or Server Modules, allow you to create modules to allow for the provisioning and management of products and services. ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/provisioning-modules/"},"children":["Learn more"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/addon-modules/"},"children":["Addon Modules"]}]}," - Addon Modules allow you to create modules and extensions that provide client and/or admin area output and that are not directly linked to individual products and services. ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/addon-modules/"},"children":["Learn more"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/payment-gateways/"},"children":["Payment Gateway Modules"]}]}," - Gateway Module allow you to connect WHMCS with additional payment and credit card processors for processing and capturing payments. Payment gateway modules include:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Third Party Gateways — A customer leaves the site to pay and returns when the payment process completes."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Merchant Gateways — A customer enters credit card details without leaving WHMCS and payment is processed via an API."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Tokenised Gateways — Credit card details are entered either within or outside of WHMCS and a token is generated and stored for future billing needs."]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/mail-providers/"},"children":["Mail Provider Modules"]}]}," - Mail Provider Modules allow you to create modules to add custom mail providers within WHMCS. ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/mail-providers/"},"children":["Learn more"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/domain-registrars/"},"children":["Registrar Modules"]}]}," - Registrar Modules, also referred to as Domain Modules, allow you to create modules to allow for the registration and management of domains within WHMCS. ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/domain-registrars/"},"children":["Learn more"]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Sample modules demonstrating usage and functionality are made available for all types of modules via the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://github.com/whmcs"},"children":["WHMCS GitHub page"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"recommended-reading","__idx":1},"children":["Recommended Reading"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/modules/code-samples/"},"children":["Code Samples"]}," - We make sample code available for each of our module types via GitHub."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/modules/style-guide/"},"children":["Style Guide"]}," - Recommended programming style and best practices for developing with WHMCS."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/modules/module-class-autoloading"},"children":["Module Class Autoloading"]}," — Enable automatic class loading in WHMCS modules."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/hooks/"},"children":["Hooks Guide"]}," - Hooks allow you to execute your own code when events occur inside WHMCS."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/api/"},"children":["API Guide"]}," - The API allows you to perform operations and actions within WHMCS."]}]}]},"headings":[{"value":"Getting Started","id":"getting-started","depth":1},{"value":"Recommended Reading","id":"recommended-reading","depth":2}],"frontmatter":{"title":"Getting Started","seo":{"title":"Getting Started"}},"lastModified":"2026-08-04T14:47:26.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/modules/getting-started","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}