PayPal Billing Agreements facilitate automatic recurring payments within the Blesta Billing system this gateway works with the plugin to allow for token storage and on demand billing.
From £19.99 - View Pricing
This purchase bundles 2 extensions
What PayPal Billing Agreements gives you
Bill and take payment in any of 24 PayPal currencies, including USD, EUR, GBP, AUD, CAD, JPY, CNY and SGD.
Configure it independently for each brand on a multi-company install, so every company runs with its own settings.
Every staff and client label ships in editable language files, ready to translate into any language or reword to match your brand.
Issue a full or partial refund straight from the transaction in your admin area and it is sent to the payment provider for you, with no need to open their dashboard.
Switch on the companion plugin's demo mode and the whole connect-and-charge flow runs from bundled sample data, so you can walk every screen before you have a PayPal API account.
The gateway has no settings of its own to fill in. Enable it, tick the currencies you want to accept, and it uses the PayPal API credentials already entered on the companion plugin.
Clients approve a PayPal billing agreement a single time, and from then on their invoices can be settled against it without them logging in to PayPal and approving a payment all over again.
With the companion plugin in place, invoices set to auto-debit are charged against each client's stored agreement on a daily schedule, and clients are emailed ahead of an upcoming charge and again once it succeeds or fails.
A client who already has an agreement sees a Pay button that charges it immediately, while a client who does not is offered a Setup button that walks them through connecting one, so nobody reaches a dead end on the payment page.
Installs alongside its companion manager plugin, which stores each client's payment details, holds your provider credentials and does the charging, so the two together give you on-demand and recurring billing with nothing to build yourself.

Let a client approve a PayPal billing agreement once, then charge their invoices to it on demand, with the PayPal Billing Agreements Manager plugin doing the work behind it.
Asking a client to log in to PayPal and approve every single invoice gets old fast, and it is a dead end for recurring billing. This gateway gives a client a Pay button that charges a PayPal billing agreement they approved once, and a Setup button when they have not connected one yet, so nobody hits a wall on the payment page. It installs alongside the PayPal Billing Agreements Manager plugin, which holds your PayPal API credentials and does the actual charging, storage and recurring billing - this gateway itself has nothing to configure beyond which currencies you accept.
Installing and updating extensions can now be done automatically through the Blesta Club Subscription Manager - this is the recommended way going forward.

Upload the extension folder into your Blesta installation so it lands under your Blesta directory at:
components/gateways/nonmerchant/paypal_billing_agreements_gateway/
For example, on a typical install: /var/www/html/blesta/components/gateways/nonmerchant/paypal_billing_agreements_gateway/
This gateway has no credential fields of its own - everything PayPal-related is entered on the companion plugin.
You're ready to go - see the usage guide for a walkthrough of day-to-day use.
Installing and updating extensions can now be done automatically through the Blesta Club Subscription Manager - this is the recommended way going forward.

Upgrading works just like installing: upload the new files over the old ones, then run the upgrade from the same page you installed it on.
Update both halves together, manager plugin first. This gateway and the PayPal Billing Agreements Manager plugin are released in lockstep, and running mismatched versions is not supported. As of v2.0.0 the gateway refuses to install, upgrade or process a refund while the manager plugin is on an older version, so upload and upgrade the manager plugin before the gateway.

Under Settings > Company > Payment Gateways, PayPal Billing Agreements appears in your Installed list once enabled. Its Manage page has no credential fields - it only tells you that credentials belong on the companion plugin - and a set of currency checkboxes. Tick every currency you want clients to be able to pay in; a client only sees this gateway as an option for invoices in a currency you have ticked here.
Open the transaction under Billing > Transactions, choose to issue a refund, and enter the amount. The refund is sent to PayPal immediately and logged under Tools > Logs > Gateway alongside PayPal's response, so a failed refund can be traced.
When a client opens an unpaid invoice and goes to make a payment, PayPal Billing Agreements appears as one of the options under Other Payment Options. Choosing it and continuing shows a Setup Billing Agreements button, since no agreement is connected yet. Clicking it sends the client to PayPal to log in and approve the agreement; PayPal then returns them to Blesta with the connection confirmed.
Once an agreement is connected, choosing PayPal Billing Agreements on an invoice shows a Pay With Billing Agreements button instead. Clicking it charges the invoice to the stored agreement immediately - no trip to PayPal - and the client lands on a confirmation page showing the amount, currency and invoices paid.
What PayPal Billing Agreements Manager gives you
Runs on Blesta's cron with no manual upkeep, so everything stays up to date on its own.
Gives both your staff and your clients a purpose-built interface in their own area of Blesta.
Configure it independently for each brand on a multi-company install, so every company runs with its own settings.
Every staff and client label ships in editable language files, ready to translate into any language or reword to match your brand.
Viewing agreements, cancelling them and charging a client are separate permissions, so you can let support staff look without letting them take money.
A built-in demo mode runs the whole extension from bundled sample data, so you can trial every screen and action before you have an account or API key.
A billing action on the client profile walks your staff through choosing a currency, ticking open invoices or entering another amount, reviewing the total, and taking the payment there and then.
Choose the currency used for the zero-amount authorisation sent when a client connects an agreement, for the rare PayPal account that rejects your company default, and flip the whole plugin into PayPal's sandbox for testing.
Once a client's own auto-debit attempt limit is used up, automatic billing pauses and a single action-required email is sent instead of another failure notice every night. Any successful payment clears the pause automatically.
If a client revokes the agreement from inside PayPal, the next charge attempt recognises it, clears the dead agreement out of Blesta and emails the client a reconnect invitation, instead of retrying something that can never succeed.
Refunds you issue and reversals raised against a payment are received from PayPal and recorded against the original transaction as a refund or a return, so what Blesta shows matches your PayPal balance without anyone reconciling by hand.
A staff page lists every connected agreement with the client, agreement ID, payer name, email, status and country, filterable on each of those fields, flagging any agreement whose automatic billing is paused and offering a one-click cancel.
Ready-made templates warn the client about an upcoming charge and confirm a successful one, report a failed attempt, tell them billing has been paused, and ask them to reconnect PayPal. Every one is editable in Blesta's own email template editor.
From their own area of your client portal a client clicks Connect PayPal Account, approves the agreement at PayPal, and comes straight back. The page then shows the agreement with their PayPal name and email, and a button to cancel it whenever they want.
A scheduled task collects every invoice due for auto-debit, groups them by client and currency, charges the stored agreement and applies the payment to those invoices immediately, so paid invoices close the same night instead of waiting on a notification from PayPal.
Your PayPal API username, password and signature are checked against PayPal the moment you save them, in live or sandbox mode, and PayPal's own message is shown if they are wrong. They are then stored encrypted, so a typo is caught immediately rather than on the first failed charge.
Install it alongside the PayPal Billing Agreements Gateway, which gives clients the payment option at checkout and holds the list of currencies you accept. This plugin does the real work behind it, storing each client's billing agreement, charging it, recording the payments and handling everything PayPal sends back. The two are released together and should always be updated together.

Let clients connect their PayPal account once, then bill their invoices automatically every night without asking them to log in again.
Chasing PayPal payments by hand, or asking a client to approve every single invoice at PayPal, does not scale. This plugin is the working half of the PayPal Billing Agreements pair: it stores each client's connected PayPal billing agreement, holds your PayPal API credentials, charges agreements on demand or automatically overnight, and records every payment, refund and reversal back into Blesta. Install it alongside the PayPal Billing Agreements Gateway, which gives clients the Pay/Setup button on their invoices and lists the currencies you accept - this plugin does everything behind that button.
Installing and updating extensions can now be done automatically through the Blesta Club Subscription Manager - this is the recommended way going forward.

Upload the extension folder into your Blesta installation so it lands under your Blesta directory at:
plugins/paypal_billing_agreements_manager/
For example, on a typical install: /var/www/html/blesta/plugins/paypal_billing_agreements_manager/
You're ready to go - see the usage guide for a walkthrough of day-to-day use.
Installing and updating extensions can now be done automatically through the Blesta Club Subscription Manager - this is the recommended way going forward.

Upgrading works just like installing: upload the new files over the old ones, then run the upgrade from the same page you installed it on.
Update both halves together, update this plugin first. This plugin and the PayPal Billing Agreements Gateway are released in lockstep, and running mismatched versions is not supported.

Settings > Company > Plugins > Installed > PayPal Billing Agreements Manager > Manage is where your PayPal credentials live: API Username, Password and Signature, the Sandbox toggle, the optional Mock API demo mode, and an optional Setup Currency override for the zero-amount authorization PayPal receives when a client connects an agreement (leave it on Company Default unless your PayPal account rejects that currency). Password and Signature are never shown back to you once saved - leave them blank to keep what is already stored, and only fill them in when you are changing them. Saving makes a real check against PayPal and shows PayPal's own error if something is wrong.
Under Billing > PayPal Billing Agreements in the admin menu, every connected agreement is listed one row per client, showing the client, agreement ID, payer name, payer email, payer status and payer country. Any agreement with automatic billing paused is flagged in the list. Use the filters above the list to search by client, agreement ID, payer, payer email, payer status or payer country, and click Cancel on a row to cancel that client's agreement at PayPal and remove it from Blesta - you're asked to confirm first.
Open a client's profile and choose Bill With Billing Agreements among the account actions. The wizard walks through three steps: pick the currency to bill in, then tick the open invoices to pay and/or enter another amount, then review the client and payment details before confirming. Confirming charges the client's stored agreement immediately and applies the payment to the invoices you selected.
Clients reach their own PayPal Billing Agreements page from the client area menu. Before connecting, it explains that no billing agreement is set up yet and offers a Connect PayPal Account button; clicking it sends the client to PayPal to log in and approve the agreement, then brings them back to Blesta.
Once connected, the same page shows the Billing Agreement Details: the agreement ID, the PayPal name and email on file, and a Cancel Billing Agreement button. Cancelling asks for confirmation, then removes the agreement at PayPal and from Blesta - the client would need to connect again before their invoices could be charged automatically or with the Pay button on an invoice.
Once an agreement is connected, PayPal Billing Agreements appears as a payment option on the client's invoices, letting them pay with one click instead of returning to PayPal. See the companion gateway's usage guide for that screen.
v3.0.0 - 2026-09-15
PHP 8.2 - 8.4 · Blesta 6.x
Requires Blesta 6.0 or later; Blesta 5.x installs stay on v2.x
The billing agreements list, the Bill Client wizard and the plugin settings page have been redesigned for the Blesta 6 admin interface, including dark mode
v2.0.0 - 2026-09-11
PHP 7.2 - 7.4, 8.1 - 8.4 · Blesta 5.x
Fixed the stored PayPal API password and signature being shown in plain text on the Manage page, where anyone with access to the page could read them off the screen, capture them in a screenshot or a screen share, or have a browser save them; both fields are now masked and left blank, and saving without retyping them keeps the credentials you already have
Automatic billing now pauses for a client after too many consecutive failed charges (using your existing Auto Debit Attempts setting), sending one final action-required email instead of a failure notice every day
A successful payment, by the client or by staff, automatically resumes paused automatic billing
When a billing agreement is cancelled on PayPal's side, it is now removed automatically and the client is emailed to reconnect, instead of failing every night
Refunds and reversals (chargebacks) issued from the PayPal dashboard are now recorded in Blesta
PayPal API credentials are now verified when you save them on the Manage page, so typos and sandbox/live mismatches are caught immediately
Added an optional Setup Currency override for the initial agreement authorization, defaulting to your company's default currency
The client and staff billing agreement pages now show when automatic billing is paused
Fixed the billing agreement list accepting a tampered filter that could show records belonging to another company
Fixed a serious issue where simply loading a link could charge a client's stored PayPal agreement: paying is now a confirmed form submission that cannot be triggered by a page a client merely visits, and the amount is now sealed by the gateway so it cannot be altered before the charge
Fixed the charged amount having no upper limit when no invoices were selected, which let an arbitrary sum be taken and booked as unapplied credit
Fixed a double-click or a back-and-resubmit on the pay button taking the payment twice
Fixed the nightly automatic billing run charging clients who had turned Automatically Pay Invoices off
Fixed the PayPal connection step accepting a confirmation token issued to a different client, which could attach one client's PayPal account to another
Fixed being sent to an external site after authorizing at PayPal when the return address had been tampered with
Fixed the billing agreement list returning a server error when the page number in the address was not a number
Fixed a server error when the invoice list in a payment link was malformed
Fixed the nightly billing task being registered again on every update, which sent the upcoming-charge email once per registration
Fixed uninstalling leaving the plugin's automation schedule behind
The client billing agreement page now respects each contact's Payment Accounts permission: a contact whose account holder has not given them access to Payment Accounts can no longer view, connect or cancel the account's stored PayPal agreement. Paying an invoice with an agreement that is already connected is unchanged
Fixed the payment success page showing only "Your payment is being processed" with no Amount, Currency or Invoices listed below it
Fixed the Transaction ID being blank on the payment confirmation page after a successful charge, even though the payment itself was recorded correctly
Fixed the connected PayPal account's name, email, country and ID never being saved when a billing agreement was set up
Fixed the admin Make a Payment wizard hiding the Other Amount field and the Next/Back buttons whenever a client had no open invoices, making it impossible for staff to charge an arbitrary amount in that case
Fixed charging a client using only the Other Amount field (no invoice selected) failing with PayPal's "Order total is invalid" error
Requires PayPal Billing Agreements Gateway v2.0.0 - update both together
v1.1.0 - 2025-03-04
PHP 7.2 - 7.3, 8.1 - 8.4 · Blesta 5.x
Added support for refunds
Sponsored by: Springracks, https//springracks.com
v1.0.0 - 2024-09-22
PHP 7.2 - 7.3, 8.1 - 8.4 · Blesta 5.x
Blesta Club release
Get exactly what you need and want.
Value: £42.3
They're bundled as a single purchase - each one is required for full functionality.
Not sure whether to lease or own? Our FAQ explains how the licence types differ.
What our customers say
(0 customer reviews)
It is possible to leave a review only if you have purchased this extension or a Club tier which contains it.
We reserve the right to alter wording or formatting for presentation.
We will discuss any changes made and offer the option to withdraw review text if the changes can't be agreed on.
It may take up to 1 hour for a review to appear or update due to caching.
More extensions to explore
Gateway
Integrate Cryptomus for cryptocurrency payment processing.
PHP 8.2 - 8.4 · Blesta 6.x
Gateway
Integrate Dual PayPal Payment Buttons for handling multiple payment accounts.
PHP 8.2 - 8.4 · Blesta 6.x
Gateway
Integrate PayPal Payment Buttons for simple payment processing.
PHP 8.2 - 8.4 · Blesta 6.x