Atriomail sells custom-domain email to resellers, agencies, MSPs and hosting providers at $1.39 per mailbox per month, with 15 GB of storage included in each mailbox. The WHMCS provisioning module uses your API key to carry the service actions you run in WHMCS through to Atriomail, where it creates an Atriomail account for each WHMCS client and an email domain for each service. Version 3.1.1 was rebuilt in 2026 and tested end to end in a WHMCS 9 install against the live platform.
This page is the short reference, checked against the module's code for version 3.1.1 on September 17, 2026. For the longer explanation of how orders, billing and the client area fit together, read the full WHMCS module guide.
At a glance
| Item | Detail |
|---|---|
| Module | AtrioMail WHMCS provisioning module, version 3.1.1 |
| WHMCS version | WHMCS 9. WHMCS 8 is not supported. |
| Product type | Shared Hosting or Reseller Hosting (WHMCS's Hosting Account and Reseller Account types) |
| Service actions | Create, Suspend, Unsuspend, Terminate and Change Package, plus a Test Connection check |
| Client area pages | Dashboard, Mailboxes, Aliases, Catch-all and My Domains |
| Billing in WHMCS | Recurring WHMCS charges at your retail prices, once Price per mailbox and Price per 5GB storage block are set, updated when clients add or remove mailboxes or storage in the client area. Changes made in the Atriomail panel or through the API do not sync into WHMCS billing on their own. |
| Where to get it | The Plugins page in your Atriomail control panel. It is also listed on the WHMCS Marketplace as "AtrioMail". |
| Installation | Upload files to WHMCS. No shell access needed. |
What the module does
When a client orders an Atriomail product in WHMCS, the module creates the client's Atriomail account and email domain. It creates the first mailbox, with the username and password the client entered at checkout, only if the domain clears Atriomail's automated security check during the order. The Atriomail API reports each new domain's state as screening, review, ready or rejected, and the WHMCS admin tab shows it.
The table below is the complete list of service actions the module supports.
| Action | What happens on Atriomail |
|---|---|
| Create | Creates the client's Atriomail account and email domain, and the first mailbox if the domain clears the security check during the order. |
| Suspend | Deactivates the client's domain on Atriomail. |
| Unsuspend | Reactivates the client's domain. |
| Terminate | Deletes the domain with its mailboxes and aliases, and removes the recurring charges the module added in WHMCS. Deletion is permanent. |
| Change Package | Updates the domain's mailbox and storage limits from the product's settings. A downgrade below current usage is refused. |
| Test Connection | Checks, from the WHMCS server screen, that WHMCS can reach Atriomail with your API key. |
The product's Included mailboxes and Base storage (GB) settings become caps on the Atriomail domain: how many mailboxes it can have, and how much storage all its mailboxes can use in total. Every mailbox takes at least 15 GB of that total, so the defaults (Included mailboxes 5, Base storage 15 GB) leave room for only one mailbox. Step 8 of the installation walkthrough below explains how to size them. Requests over a cap are refused, and a cap cannot be lowered below current usage.
Terminate cannot be undone. If a client is moving to another provider rather than closing down, copy their mail out before you terminate. Atriomail mailboxes use standard IMAP, so any IMAP migration tool can do it.
What clients see in the WHMCS client area
Each Atriomail service in the WHMCS client area has five pages, linked from an AtrioMail card in the sidebar. Within the product's limits, clients can do the following without leaving WHMCS:
- Dashboard: setup progress, the MX, SPF and Amazon SES records to add at their DNS host, verification status, IMAP and SMTP settings for mail apps, and usage. The Dashboard displays the records; it does not publish them.
- Mailboxes: add and delete mailboxes, change mailbox passwords, and add or remove 5 GB storage blocks.
- Aliases: add and manage aliases on the domain.
- Catch-all: set a catch-all address for the domain.
- My Domains: clients with several Atriomail services see all their domains on one page.
Aliases and catch-all addresses can be added once the same domain has at least one mailbox.
Clients open their Atriomail control panel from the client area with a single-use sign-in link that is valid for 60 seconds. The link signs them in to the control panel only; it does not sign them in to webmail. The Dashboard's Open Webmail button, and the Webmail link in the sidebar card, take clients to the webmail page, where they still sign in with the mailbox address and password. The sign-in link is not SAML or OpenID Connect.
If a domain is still not verified, the client gets reminder emails 1 and 3 days after the security check, and a notice when the domain goes live. These emails need the WHMCS daily cron to run.
What WHMCS admins get
- A setup checklist on the product page. The product's Other tab shows the AtrioMail: Setup Checklist, with one row for each part of the setup, above the AtrioMail: Storage Add-on Pricing field.
- A per-service tab. Each service shows the linked Atriomail account and domain, the domain's state and verification status, the mailbox list with usage, and the last API error.
- Service buttons. The buttons include Re-check verification, Re-sync / Re-provision, and Resend welcome email. Re-sync / Re-provision runs the Create steps again and reuses the account and domain already linked to the service. Resend welcome email sends the welcome email set on the product in WHMCS, or WHMCS's standard welcome email for the product type if none is set, so set your own on the product; the module does not create email templates.
- Mailbox password reset. The service tab has a picker to reset a mailbox password: choose the mailbox and click Save Changes. The new password is shown once.
- Safer logs. The module never writes your Atriomail API key to the WHMCS module log, and it masks passwords. The last API error comes from that log. If the service tab shows no log data, open Configuration > System Logs, go to the Module Log and turn module logging on while you investigate (WHMCS recommends switching it off again afterwards).
How billing works
What Atriomail charges you
Atriomail bills you, the account holder, not your clients: $1.39 per mailbox per month with 15 GB included in each mailbox, and $0.60 per extra 5 GB block per month. Extra storage is billed on the mailbox size you set, not on how much mail is stored. A mailbox is billed until it is deleted, and suspending a service in WHMCS does not delete its mailboxes. Full details are on the pricing page.
What WHMCS charges your clients
You set your own resale prices; Atriomail does not decide what you charge. On the product's Module Settings tab you enter two monthly retail prices: Price per mailbox and Price per 5GB storage block. The module bills them as recurring WHMCS charges: Price per mailbox for every mailbox on the service, including the first one created with the order, and Price per 5GB storage block for each 5 GB block, or part of one, that a mailbox has above its included 15 GB. The module creates these charges once the first mailbox exists, keeps one recurring charge for mailboxes and one for extra storage on each service, and updates them when clients add or remove mailboxes or storage in the client area. Terminate removes both.
The help text under Price per mailbox in WHMCS says mailboxes are billed after the first, but version 3.1.1 bills the first mailbox too. If you also price the WHMCS product itself to cover a mailbox, clients pay for that mailbox twice.
The charges are titled "AtrioMail mailboxes" and "AtrioMail extra storage", each followed by the domain name, so the AtrioMail name is visible on your clients' invoices.
Only client-area changes reach WHMCS billing. Changes made in the Atriomail panel or through the API do not sync into WHMCS billing on their own, and Atriomail still bills you for those mailboxes. If you adjust a client's WHMCS billing by hand, edit the existing "AtrioMail mailboxes" or "AtrioMail extra storage" charge rather than adding a new one. The next time the client adds or removes a mailbox or storage in the client area, the module recalculates the matching charge from every mailbox on the domain, including mailboxes made outside WHMCS.
The AtrioMail: Storage Add-on Pricing field on the product's Other tab is a separate setting from those two prices. It generates the Additional Storage (GB) configurable option for your product in 5 GB steps up to 100 GB, in every currency and billing cycle, writing the same amount in each currency with no exchange-rate conversion. The Setup Checklist needs that option priced, but in version 3.1.1 a size a client picks in this option at checkout is not applied to their Atriomail storage, while WHMCS still charges for it. Hide the option in WHMCS or talk to us before you offer it (step 9). Storage that clients add after the order, on the Mailboxes page, is billed at Price per 5GB storage block.
As plain arithmetic, before card fees, support time and any white-label fee: at a $5.00 resale price, each mailbox leaves $3.61 a month above wholesale, about 72 percent. On a 200-mailbox book that is $722 a month.
White-label branding is a separate paid add-on, with a one-time setup fee and a monthly subscription per branded domain. For details, contact us or email sales@atriomail.com.
Requirements
- WHMCS 9. The module was tested end to end in a WHMCS 9 install. WHMCS 8 is not supported.
- Access to your WHMCS files. The module installs by uploading files, with no shell access needed.
- An Atriomail account. Creating one is free and needs no card. Mailboxes are billed from the first one.
- An Atriomail API key. Keys are created in the control panel, shown in full once and stored hashed. They can have an expiry date and can be switched off or regenerated. A key carries the full permissions of the account that created it, so keep it inside WHMCS.
- A Shared Hosting or Reseller Hosting product. These are WHMCS's Hosting Account and Reseller Account types. The module's Setup Checklist accepts only these, because they always collect the client's domain at checkout, and the module needs it.
- The WHMCS daily cron. The client reminder and go-live emails depend on it.
Where to get the module
Account holders download the module from the Plugins page in the Atriomail control panel. The Plugins page carries the latest build and shows its version number.
The module is also listed on the WHMCS Marketplace as "AtrioMail", as a free module in the Provisioning Modules category, marked compatible with WHMCS 9.0. The Marketplace listing can lag behind the Plugins page, so when the version numbers differ, install the build from the Plugins page.
How to install the Atriomail WHMCS module
Install the Atriomail WHMCS provisioning module on WHMCS 9: create an API key, upload the files, add the server, set up the product and clear the Setup Checklist.
These steps follow the module's own code and screens for version 3.1.1. Field names are the ones WHMCS shows once the module is installed.
Create an Atriomail API key
Sign in to the Atriomail control panel, open Settings > API Keys and create a key. Copy it straight away: the full key is shown only once and is stored hashed. If you lose it, click Regenerate and copy the new key.
Download the module from the Plugins page
In the same control panel, open Tools > Plugins and click Download plugin on the WHMCS card. Extract the zip file. It contains one folder,
Atriomail, with the module's own install guide and changelog inside it. The card's Documentation button opens the same guide. It is out of date in places, so where it differs from this page, follow this page.Upload the module folder
Upload the
Atriomailfolder tomodules/servers/in your WHMCS installation, so thatmodules/servers/exists withAtriomail/ Atriomail.php hooks.php,libandtemplatesnext to it. A file manager or SFTP is enough; no shell access is needed.Copy hooks.php into includes/hooks/
Copy
modules/servers/a second time intoAtriomail/ hooks.php includes/hooks/, for example asincludes/hooks/atriomail-hooks.php, and leave the original where it is. Without this copy the Setup Checklist and the storage pricing field never appear on the product page, and WHMCS shows no error. The same file also adds the AtrioMail card in the client area sidebar and the daily reminder emails, so keep both copies in place.Add the Atriomail server
In WHMCS, open the Servers page (Configuration > System Settings > Servers; the module's own messages call it Setup > Products/Services > Servers) and add a new server. If WHMCS first shows a short form, click Go to Advanced Mode to see every field. Give the server a name and set Hostname to
system.atriomail.com. Under Server Details, set Module to AtrioMail, leave Username blank and paste your API key into Password. Password is the only field the module reads the key from, so leave Access Hash empty. Tick Secure so the module connects over HTTPS, then save. WHMCS marks the default server for each module with an asterisk on the Servers list and needs a default for automatic setup, so check that your Atriomail server is marked.Run Test Connection
Click Test Connection next to the Module field. A success means WHMCS reached Atriomail with your key. Test Connection does not check the Secure box, and without Secure the module does not send your API key over HTTPS, so confirm Secure is ticked before you save. If the test fails, the message "AtrioMail rejected the API key" means the key is invalid, expired or switched off. Other messages usually mean Hostname is not exactly
system.atriomail.com: a name that cannot be reached reports that the module could not reach AtrioMail, and an address such as atriomail.com, or a pasted control panel URL, reports an unexpected response or a record it could not find. Repeated failed attempts with a wrong key are temporarily locked out, and the module then shows a "Too many requests" message, so wait a few minutes before you test again.Create the product
Open the Products/Services page (Configuration > System Settings > Products/Services) and create a new product. On its Details tab, set Product Type to Shared Hosting (Reseller Hosting also works). WHMCS stores these internally as the Hosting Account and Reseller Account types, which is why the checklist's hint calls Shared Hosting "Hosting Account". The module's Setup Checklist accepts only these two types, because they always collect a domain at checkout, and the module needs that domain.
Fill in the Module Settings tab
On the product's Module Settings tab, set Module Name to AtrioMail. Four fields appear: Included mailboxes (default 5), Base storage (GB) (default 15), Price per mailbox and Price per 5GB storage block (both blank by default). Included mailboxes is the most mailboxes the Atriomail domain can have, not a number of free mailboxes. Base storage (GB) is the total storage for the whole domain, and every mailbox takes at least 15 GB of it. With the defaults of 5 and 15, only one mailbox fits, and a client's second mailbox or any extra storage block is refused, so set Base storage to at least 15 GB times Included mailboxes (75 GB for 5 mailboxes). Storage blocks that clients add come out of the same total. If either of these two fields is blank or 0, the module sets no per-domain limit for it on Atriomail, and every mailbox is still billed. The first mailbox gets Base storage divided by Included mailboxes (at least 15 GB), and anything above 15 GB on a mailbox is billed in 5 GB blocks, so a larger Base storage makes the first mailbox bigger and adds storage charges from the order. Price per mailbox is your monthly retail price for every mailbox on the service, including the first one created with the order (the field's help text says after the first, but version 3.1.1 bills the first one too). Price per 5GB storage block is your monthly retail price for each of those blocks. Blank means not configured, and clients cannot add mailboxes or storage until the matching price is set; 0.00 means you charge nothing for them. The same tab holds WHMCS's own automatic setup choices, which decide when Create runs: when the order is placed, when the first payment is received, when you accept a pending order, or never (you run it yourself). Click Save Changes before you open the Other tab: the AtrioMail sections there appear only after the product has been saved with Module Name set to AtrioMail.
Price the storage add-on on the Other tab
Open the product's Other tab. In the AtrioMail: Storage Add-on Pricing field, enter your price per 5 GB per month (for example 1.50) and click Save Changes at the bottom of the page. Saving generates the Additional Storage (GB) configurable option in 5 GB steps up to 100 GB, adds it to the product, and prices it in every currency and billing cycle. The same amount is written in each currency, with no exchange-rate conversion, and longer billing cycles are plain multiples of the monthly price. The field keeps showing the current price, so every later Save Changes on this product regenerates the tiers and overwrites any prices you edited by hand. If you edit tier prices for other currencies or cycles, clear this field before you save the product again. The Setup Checklist needs this option priced, but in version 3.1.1 a size a client picks in this option at checkout is not applied to their Atriomail storage, while WHMCS still charges for it. So do not offer it on the order form: after saving, hide the Additional Storage (GB) option under Configurable Options in WHMCS (check that it no longer shows on your order form), or talk to us before you offer it. This price is separate from Price per 5GB storage block: storage that clients add after the order, on the Mailboxes page, is billed at Price per 5GB storage block.
Clear the Setup Checklist
On the same Other tab, the AtrioMail: Setup Checklist shows seven rows: API key valid, Server configured, Product module wiring, Domain Required enabled, Custom fields present, Storage add-on priced, and WHMCS & PHP version. If Custom fields present is red, tick Create them when I click Save Changes under it, then click Save Changes. These fields hold the mailbox username and password that clients enter at checkout, plus the values the module uses to track each service. Domain Required enabled has no one-click fix: set Product Type on the Details tab instead (step 7). Work through the red rows until all seven are green; the table below covers each row that can turn red. A green Storage add-on priced row only means the tiers have prices; it does not mean the option is safe to show on your order form (see step 9).
If a checklist row stays red or Create fails
| What you see | What to do |
|---|---|
| The Setup Checklist and storage pricing field are missing from the Other tab | Save the product with Module Name set to AtrioMail (step 8). If they are still missing, copy hooks.php into includes/hooks/ (step 4). The page loads normally without that copy, so this is easy to miss. |
| API key valid is red | The key may have expired, been switched off or been regenerated. Regenerate it under Settings > API Keys and paste the new key into the server's Password field. If you have more than one Atriomail server, the checklist tests the first one you added. |
| Server configured is red | Check that a server exists with its Module set to AtrioMail. |
| Domain Required enabled is red | Set Product Type to Shared Hosting or Reseller Hosting on the Details tab. The checklist's own hint calls the first one Hosting Account. |
| Custom fields present stays red after ticking the box | The box only takes effect when you click Save Changes on the same page load. |
| Storage add-on priced is red | Enter a price above 0.00 in the storage pricing field and save. Saving regenerates every billing cycle at once. |
| Create fails with "No API key is configured on this server" | The service's server has no key in its Password field, or the service has no Atriomail server assigned. Check the server's Password field, and check that your Atriomail server is marked as the default on the Servers list. |
| Create fails with a message about the email address | The WHMCS client's email address already belongs to an Atriomail account that was not created through your account. For test orders, use a client email address that has no Atriomail account yet, not your own sign-in address. |
Limits and things it does not do
- WHMCS 9 only. WHMCS 8 is not supported.
- The first mailbox depends on the security check. If the domain has not cleared Atriomail's security check during the order, the module does not create the first mailbox then, and it does not create it later on its own, even though the WHMCS activity log entry for the order says it will. Once the domain is ready, click Re-sync / Re-provision on the admin tab to run the Create steps again and create it.
- No Change Password sync. WHMCS's own Change Password action is not connected to Atriomail. Clients change mailbox passwords on the Mailboxes page, and admins can reset one from the service tab.
- No native Login to Control Panel button. The module does not provide WHMCS's built-in login button. Clients use the single-use sign-in link inside the module's own client area pages.
- No webmail sign-in. The single-use link signs clients in to the Atriomail control panel only. The client area's Open Webmail button takes them to the webmail page, where they still sign in with the mailbox address and password.
- DNS is displayed, not published. The Dashboard lists the records a domain needs, and the module does not write them at any DNS host. Automatic mail DNS is a separate feature of the Atriomail panel, built for Cloudflare and Namecheap, and it is not part of the module. See connecting Cloudflare and Namecheap for mail DNS.
- No usage sync into WHMCS. Mail usage is not synced into WHMCS, and changes made in the Atriomail panel or through the API do not sync into WHMCS billing on their own.
- The AtrioMail name shows in WHMCS. The recurring charges are titled "AtrioMail mailboxes" and "AtrioMail extra storage", and the module's client area sidebar card is labelled AtrioMail. The module's client area pages and the reminder emails it sends to clients also mention AtrioMail.
- The default limits fit one mailbox. A new product starts at 5 included mailboxes and 15 GB base storage. Base storage is the total for the whole domain and every mailbox takes at least 15 GB, so with the defaults a client's second mailbox, or any extra storage block, is refused. Set Base storage to at least 15 GB times Included mailboxes. If either field is blank or 0, the module sets no per-domain limit for it on Atriomail, and every mailbox is still billed.
- Storage picked at checkout. In version 3.1.1 a size a client picks in the Additional Storage (GB) option at checkout is not applied to their Atriomail storage, while WHMCS still charges for it. Hide that option in WHMCS or talk to us before you offer it. Clients can add storage after the order on the Mailboxes page, billed at Price per 5GB storage block.
- API rate limit. The module calls the Atriomail REST API with your key, and the API allows up to 30 requests per minute. Client-area page views from all your clients count toward that allowance (one Dashboard view can use five requests), so a busy client area can briefly show a "Too many requests" message.
- No Blesta equivalent. There is no working Atriomail integration for Blesta today; a Blesta setup would have to be built on the REST API.
When to use the REST API instead
If you bill clients in another system or run your own portal, the Atriomail REST API is the route. It uses an API key sent in the X-API-KEY header and covers domains, mailboxes, forwarders, catch-alls, mailbox storage, customer accounts, IMAP migration jobs, DNS record checks and single-use sign-in links. It does not cover everything in the panel. Any automation tool that can send HTTPS requests with a custom header can call it; the n8n page shows this with n8n's generic HTTP Request node.
Related pages
- All Atriomail integrations, with what each one does and where it stops.
- Selling email in WHMCS, the long-form guide to this module.
- The free DNS checker, to see whether a client domain's MX, SPF, DKIM and DMARC records exist and are well formed (it reads public DNS, and DKIM uses the selector you type).
- The email glossary, for terms such as MX, SPF, DKIM and catch-all.
Questions before you install? Email support@atriomail.com during business hours, or contact us.