Sell object storage on Amazon S3, Cloudflare R2, DigitalOcean Spaces or MinIO — any mix, from one WHMCS module
Sell S3-compatible storage with ZERO egress fees — provisioned, metered and billed in WHMCS
Made and supported by Projektif Digital Ltd. Runs inside PD Modules, the panel every module installs into.
PD Cloudflare R2 lets a hosting company sell S3-compatible object storage with no data-transfer charges. Your customer orders a storage plan in your WHMCS cart, and a private R2 bucket with its own access keys is created in your Cloudflare account within minutes. Because R2 does not charge for standard data transfer out, you can price storage without worrying about customers who download heavily. You set the price, Cloudflare bills you at cost, and the difference is your margin.
It is built for hosts who want to offer backup and file storage that behaves like S3 with every standard tool, without egress bills eating into the margin and without handing out Cloudflare logins.
No egress fee to plan around. You pay Cloudflare for gigabytes stored per month plus write and read operations. A large restore or a busy download produces no transfer bill, so a customer who moves a lot of data costs you the same as one who does not.
EU-only data residency on request. Customers can choose a data location at checkout: Automatic, a regional placement hint in North America, Europe or Asia-Pacific and Oceania, or European Union only. With European Union only, the bucket is created in Cloudflare's EU jurisdiction and its data stays on EU infrastructure.
Isolation enforced by Cloudflare. Each order gets its own bucket and its own API token scoped to that bucket alone. Even a compromised customer token cannot reach other customers' buckets or your Cloudflare account.
Works with the S3 tools customers already use. R2 is S3-compatible, so the AWS CLI, rclone, s3cmd, Cyberduck, cPanel backup destinations and WordPress backup plugins all connect with the values shown in the client area.
You see what the operations cost. Storage and the number of write (Class A) and read (Class B) operations are measured daily for every service, and customers see their own operation counts for the last 30 days.
Only what R2 can really do. R2 has no object versioning, so the module never offers it. Nothing in the interface promises a feature that would only fail.

Bucket management, share links 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.
PD Cloudflare R2 is one paid module with everything included: provisioning, metering, quotas, operation tracking, key rotation, retention and reconcile. There is no free tier. There are no per-gigabyte fees to us: your buckets live in your own Cloudflare account, you pay Cloudflare at cost and set your own sell price.
Quota emails warn at 80% and 100%. On R2, going over quota never pauses uploads, in either quota mode, because an R2 token cannot allow deleting files without also allowing uploads. You see every overage in your admin panel.
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. Terminated data is never purged while the module is unlicensed.
Yours. You connect your own account, and every customer bucket is provisioned into it. You pay the provider at cost, set your sell price in WHMCS, and keep the difference.
Every order gets its own bucket and an R2 token scoped to that bucket alone. One customer's credential cannot reach another's data, and your master credentials stay on your WHMCS server — they are never sent to the customer or stored in the client area.
A daily task measures each service's real usage and writes it into WHMCS's disk-usage fields. Native overage billing, quota warnings and the client-area usage graph then work exactly as they do for hosting products — there is nothing extra to configure.
They are emailed at 80% and again at 100%, and you see the overage in the admin panel. Uploads and downloads keep working: an R2 token cannot allow deleting files without also allowing uploads, so pausing uploads would leave a customer no way to free up space. Raising their plan raises the quota with all data preserved.
Only if you choose that. By default, terminating a service revokes access instantly but keeps the bucket and its contents for a retention window you set. Purging then needs your approval (Manual, the default), and an immediate purge needs the bucket name typed to confirm.
Yes, through the standard WHMCS upgrade/downgrade flow. Quota changes apply with data preserved in both directions; downgrading below current usage never deletes anything; the customer is warned that they are over the new quota.
PHP 8.2+ and a working WHMCS cron. The module talks to Cloudflare R2 over its standard HTTPS API — there is nothing to install on the server and no daemon to run.
PD Object Storage is the flagship covering Amazon S3, Cloudflare R2, MinIO and DigitalOcean Spaces in one module. This edition is the same engine focused on Cloudflare R2 alone — choose it if that is the only backend you sell, and move up to the flagship if you later add another.
Nothing of yours is touched, and nothing is deleted. The module steps down in stages instead: a 14-day grace period where everything still works and you get a renewal reminder, then admin management locks while your customers carry on being served, and only after that do the customer-facing features stop — behind a neutral "temporarily unavailable, please contact support" message that never mentions licensing to your customer. Anything the module provisioned keeps running in your own account throughout, and your data and settings stay exactly where they are. Renewing restores everything immediately.