Paddle Billing for Joomla
PaddleSubs turns every Paddle purchase into an Access Subscription: Joomla user groups granted for exactly as long as the customer has paid for, then renewed, reminded and expired on schedule. Paddle handles the checkout, sales tax and invoices.
Joomla 5.4 and 6 · PHP 8.2+ · Paddle Billing sandbox and live
How it works
Paddle owns the catalogue, the checkout and the money. PaddleSubs keeps Joomla in step with it.
Add your Paddle API key and client-side token. Start in Paddle's sandbox and switch to live when your products are ready.
Products and prices live in Paddle. In Joomla you choose the user groups a purchase adds or removes, and how long access lasts: days, a fixed date or a lifetime.
Customers sign in or register on your product page and pay in Paddle's checkout. Paddle sells as merchant of record, so sales tax, receipts and payment methods are handled there.
Paddle's webhooks create the Access Subscription. Joomla's Scheduled Tasks activate it, send reminders before it ends and take the groups away when it expires.
Features
Show part of an article only to customers of certain products, combining them with AND and OR.
Unlock lessons or chapters by how long a customer has had access, or how long they have left.
Price tags read the current price from Paddle, localised to the visitor's country and currency if you choose.
Customers see their Access Subscriptions and renew them on your site, and manage payment methods, invoices and Subscriptions in Paddle's billing portal.
Emails before access ends and after it has ended, written as Joomla Mail Templates you can edit and translate.
Coupon codes kept in step with Paddle, plus levels that discount moving a customer up to a higher tier.
Dashboard statistics use Paddle's payout figures, so each product shows what you earned after Paddle's fee, refunds and credits.
Webhooks are queued and processed in order, and customer and administrator lists render from local records if Paddle can't be reached.
Selling software?
Make a product licensed and every purchase becomes a license. The quantity bought in Paddle is the number of sites it covers.
POST /api/index.php/v1/paddlesubs/activations
Authorization: Bearer <Joomla API token>
{ "user_id": 42, "product_id": 7,
"identifier": "www.example.com" }
A refusal is a 409 with a reason your code can act on:
Built the Joomla way
No parallel membership system to learn. Access is Joomla user groups, and the moving parts are Joomla's own.
Moving from Akeeba Subscriptions?
The import carries existing purchases over as Access Subscriptions. Customers keep their accounts, passwords and access, and nothing about them is sent to Paddle.
Questions
A Joomla 5.4 or 6 site on PHP 8.2 or later with MySQL, and a Paddle Billing account. Paddle's sandbox is free to use while you set up and test.
No. PaddleSubs is an independent Joomla extension. It is not affiliated with or endorsed by Paddle; it uses Paddle Billing's public API.
Both. A one-time purchase grants access for the period you set. A Subscription renews in Paddle, and each renewal extends the customer's access.
Prices, payments and card details stay in Paddle. Your site stores the Paddle IDs it needs, the links to Joomla users, and the Access Subscriptions themselves.
"Sync from Paddle" catches up customers, transactions and access in one step. It is also how you connect a Paddle account that already has sales.
You choose per product: start another period straight away, start where the current access ends, or add seats as a separate license.
Set up your products, run test purchases and watch Access Subscriptions appear before a single real payment is taken.