PD Azure Blob Storage for WHMCS

PD Azure Blob Storage — Sell Azure Object Storage as a Native WHMCS Product

Sell Azure Blob Storage under your own brand — provisioned, metered and billed in WHMCS

Made and supported by Projektif Digital Ltd. Runs inside PD Modules, the panel every module installs into.

Object Storage

PD Azure Blob Storage lets a hosting company sell Microsoft Azure Blob Storage as its own product. Your customer orders a storage plan in your WHMCS cart, and a dedicated Azure storage account and container are created in your subscription within minutes, each with its own access token. The customer manages their storage from your client area, you set the price, Azure bills you at cost, and the difference is your margin.

It is built for hosts who run on Microsoft's cloud, or whose customers ask for Azure-based backup and file storage, and who want to offer it without giving anyone an Azure login or building the tooling around it.

Why hosts choose PD Azure Blob Storage

Real Azure storage, isolated by Azure. Every order gets its own storage account and container, plus an access token that Azure itself restricts to that one container. A customer cannot read, write or list any other storage in your subscription, even if they somehow obtained another customer's token.

Customers never need an Azure account. They see a container name, an endpoint and a token in your client area. Setup in Azure is a one-time job for you; after that every order provisions itself.

More than thirty regions. Customers choose where their data lives at checkout, from Azure regions across six continents. You can sell UK, European, American and Asian storage from one product.

Works with the tools Azure users already have. The module speaks Azure's own Blob API natively, with no S3 shim in between. Customers get ready-made setups for AzCopy, rclone, Azure Storage Explorer and Cyberduck, and the official Azure SDKs work out of the box.

Usage that bills itself. A daily sweep records each customer's storage and file count into WHMCS, so native overage billing, quota warnings and the usage graph work with nothing extra to configure.

Guided when Azure gets in the way. If your Azure subscription has not enabled its storage service yet, the module detects it and walks you through the fix. When your Azure app secret is about to expire it warns you 60, 30 and 7 days ahead, and if it has expired you get a clear message instead of a cryptic error.

How it works

  1. Connect your Azure subscription. Run one Cloud Shell command to create a service principal with the Contributor role, then paste its tenant, client ID, secret and subscription ID into a WHMCS server record. Test Connection verifies it before you save.
  2. Create your products. Create a WHMCS product of type Other with this module and generate the cart options: Storage Quota, Region and Versioning. Set your prices on them.
  3. Your customer orders. They pick a quota and a region and pay. A storage account, a container and a scoped token are created, and their page shows progress until it is ready, usually within a couple of minutes.
  4. You get paid, they manage it. WHMCS keeps billing as usual, with usage measured daily. Upgrades and downgrades use WHMCS's normal flow and keep the customer's data.

What you get in WHMCS

Selling and pricing

  • Cart options generated in one click: Storage Quota, Region and Versioning, priced however you like
  • Choose which options customers see; anything you hide uses your product's default, and your prices are kept
  • Soft quota mode (the default) warns but keeps uploads working; hard mode pauses uploads at 100% while downloads and deleting keep working
  • Customers are emailed at 80% and again at 100% of their quota, and you can copy those emails to your administrators
  • Usage is written into WHMCS's disk-usage fields, so native overage billing works
  • A name prefix you choose makes your brand part of every container name
  • Default region, quota and versioning for products that do not offer a choice at checkout

Provisioning you can trust

  • Each service gets its own storage account and container, with names generated to Azure's rules and guaranteed unique
  • Azure's default limit of about 250 storage accounts per subscription and region produces a guided message, not a raw failure
  • A failed setup is never shown as done: the customer sees a plain message and the exact error is kept in your Activity log
  • Suspension changes access within about 30 seconds, and the customer's existing token keeps working when you unsuspend
  • Moving a customer to a smaller plan than they already use never deletes anything
  • One Azure subscription can serve several installs, each under its own prefix

Running it day to day

  • Clients & Storage shows every service with its client, state, access mode, quota percentage, usage and last measurement
  • Set any service to read and write, read-only or disabled without changing the customer's credential or touching their data
  • Rotate a customer's token in one click, with the old one stopped immediately
  • Retention lists terminated services with a countdown to purge eligibility and what was stored at termination, with approve and hold controls
  • Reconcile compares your Azure subscription with WHMCS and flags orphan containers, missing containers and stray storage accounts. It only reports and never changes anything
  • A health report covers the licence, Azure connection, services, metering and the secret-expiry countdown

What your customers get

  • A storage dashboard with endpoint, container, region, access mode and live usage against their quota, plus recent activity
  • An access token they can reveal and copy whenever they need it, and rotate in one click
  • Versioning, so overwritten or deleted files can be recovered
  • Automatic clean-up rules to delete files after a number of days
  • Browser access (CORS) rules for web apps, with no Azure portal access needed
  • Expiring share links for downloading or uploading a file, with no account needed on the other side
  • Ready-made setups for AzCopy, rclone, Azure Storage Explorer, Cyberduck and the Azure SDKs, with the endpoint, storage account name, container and token already filled in
  • Usage history for the last 30 days, with a Refresh now button
The customer's storage page in your client area: endpoint, container, region, usage against quota and recent activity
The customer's storage page in your client area: endpoint, container, region, usage against quota and recent activity
Versioning, automatic clean-up and browser access, managed by the customer without touching Azure
Versioning, automatic clean-up and browser access, managed by the customer without touching Azure
Connect your tools: AzCopy, rclone, Storage Explorer, Cyberduck and SDK examples, pre-filled for the customer's container
Connect your tools: AzCopy, rclone, Storage Explorer, Cyberduck and SDK examples, pre-filled for the customer's container

Share links, container management and storage settings are each a switch on the product. Turn one off and it disappears from the customer's page and its actions are refused. The pages render on WHMCS's Six, Twenty-One and Nexus themes and are fully translatable.

Security built in

  • Your Azure credentials are stored encrypted on your WHMCS server and never appear on a customer page.
  • Each customer's access token is stored encrypted and restricted by Azure to their container only.
  • Share links stop working the moment access is restricted by suspension or a quota pause, or when the token is rotated or revoked.
  • Nothing is sent to us: customer container names, tokens, files and usage go only to Azure and to your own WHMCS.
  • Nothing is deleted without your approval in the default purge mode, and an immediate purge requires the container name to be typed.

One product, every feature

PD Azure Blob Storage is one paid module with everything included: provisioning, metering, quotas, versioning, clean-up rules, CORS, share links, retention and reconcile. There is no free tier. There are no per-gigabyte fees to us: your storage lives in your own Azure subscription, you pay Microsoft at cost and set your own sell price. Removing the module removes its own tables cleanly.

If your subscription ever lapses, nothing is deleted. You get a 14-day grace period with everything working, then admin management locks while customers keep being served, and only after that do customer features pause behind a neutral message. Usage collection keeps running, and no data is purged while the module is unlicensed.

Requirements

  • WHMCS 9 or later on PHP 8.2 or later, with the ionCube Loader
  • An active Azure subscription, a Microsoft Entra app registration with the Contributor role, and the Microsoft.Storage provider registered (a one-time step per subscription)
  • The WHMCS cron running, for the daily usage sweep
  • PD Modules, the free control panel every PD module installs into

Questions

Do I need my own Microsoft Azure account?

Yes. You connect your Azure credentials once and every client's container is provisioned into your storage account — Microsoft bills you, you bill your client through WHMCS, and the difference is your margin.

How is each customer isolated?

Every order provisions its own container and a scoped credential that can reach only that container. Your master credentials never leave your server.

How does billing work?

A daily usage sweep writes real storage usage into WHMCS's disk-usage fields, so native overage billing, quota warnings and the usage graph work with no extra setup.

What happens when a customer hits their quota?

Uploads pause while downloads keep working, so nothing is lost — the client just tops up or upgrades to continue.

Is data ever deleted automatically?

No. Suspension makes the container read-only and termination retains data for a window you set; permanent purges are approval-gated with a typed confirmation.

Can customers upgrade or downgrade?

Yes, through WHMCS's normal Upgrade/Downgrade flow, with data preserved in both directions.

What’s new in 0.1.42

  • Fixed: the Products screen listed nothing when the products were there. It now finds every product this module provisions, whichever billing system you run.

Get your website online with PD Hosting

UK hosting, domains and support from a real team. From a first site to a full server.

Terms and Conditions  ·  Privacy Policy

PD Hosting is the trading name of Projektif Digital Ltd, registered in England and Wales, company number 12482555.

PD Hosting
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.