Panellicense

Set up PayPal Payments Standard in Blesta with refunds

How to install and configure PayPal Payments Standard in Blesta, locate the Classic API credentials, and enable refunds from the admin panel.

BlAll Blesta articlesTutorials & how-tos4 min readUpdated 2026-05-16
blestapaypalpayment-gatewayrefundsipn
schema: HowToschema: FAQPage

PayPal Payments Standard is the redirect-style PayPal flow — customer clicks pay, lands on PayPal, comes back to Blesta with an IPN confirmation. It works on day one with no API keys. The friction is refunds: to issue a refund from inside Blesta (instead of logging into PayPal manually for every one), the gateway needs Classic API credentials, which PayPal has buried behind a multi-click menu since the NVP/SOAP deprecation drama.

This guide covers the full install, the exact PayPal menu path to find the Classic API signature, and the IPN configuration. Already running Stripe Payments? PayPal can sit alongside it as a second gateway with no interaction.

Install the gateway

In Blesta admin go to Settings → Company → Payment Gateways → Available, find PayPal Payments Standard, and install. Open Manage on the new entry.

At minimum, enter:

  • PayPal Email Address — the receiving business account
  • Sandbox — toggle on for staging, off for production

Save. Customers can now pay invoices via the PayPal redirect. Refunds and capture-on-Blesta features will not work yet — that needs the API credentials below.

Find the Classic API credentials

PayPal supports two API styles: REST (modern, OAuth2, what their docs push you toward) and Classic (NVP/SOAP, username/password/signature). Blesta's PayPal Payments Standard gateway uses Classic. REST credentials will not work — you will get cryptic auth errors when trying to refund.

The path to request the signature is buried. As of 2026:

  1. Log in at paypal.com with the business account.
  2. Click the gear icon (top right) → Account Settings.
  3. In the left sidebar: Account access.
  4. Find API access → click Update.
  5. Under NVP/SOAP API integration (Classic) click Manage API credentials.
  6. Choose Request API signature (not certificate). Confirm.

PayPal generates three values:

  • API Username (looks like business_api1.example.com)
  • API Password (random alphanumeric)
  • Signature (long random string starting with A...)

Paste all three into the Blesta gateway config screen (API Username, API Password, Signature fields) and save.

Configure the IPN URL

PayPal sends Instant Payment Notification callbacks to confirm completed transactions. Blesta's IPN endpoint pattern is:

https://billing.example.com/callback/gw/<company_id>/paypal_payments_standard/

<company_id> is 1 on a single-company install.

In PayPal: Account Settings → Notifications → Instant payment notifications → Update → Choose IPN settings. Paste the URL, set Receive IPN messages to enabled, save.

You do not need to subscribe to specific message types — IPN is a single endpoint that receives all transaction events. PayPal does not have the Stripe-style "subscribe to all events" footgun.

Test a transaction

Toggle the gateway into Sandbox mode, create a $1 test invoice, and pay it from the client area using a PayPal sandbox buyer account (create one at developer.paypal.com). Confirm:

  1. Customer is redirected to sandbox.paypal.com, completes payment, redirects back.
  2. Blesta invoice flips to Paid within ~30 seconds (IPN is slower than Stripe's webhook).
  3. Billing → Transactions records the transaction with PayPal's transaction ID.

If the invoice does not update, PayPal's IPN history in the merchant dashboard shows whether the callback was sent and what HTTP status Blesta returned. A 200 with no state change usually means the IPN URL has a typo or the <company_id> is wrong.

Once verified, toggle Sandbox off and re-test with a $1 live transaction. Real money, but you can refund it immediately to confirm the refund flow.

Issue a refund from Blesta

With the Classic API credentials saved, refunds work from the Blesta admin: Billing → Invoices → [invoice] → Transactions → Refund. Enter the amount (full or partial), confirm. The gateway calls PayPal's RefundTransaction NVP method, PayPal returns success, and Blesta marks the transaction refunded.

If the refund button is missing or returns "gateway does not support refunds", the API credentials are missing or incorrect — re-check that you used Classic (signature) not REST.

Why can I not refund a PayPal transaction from Blesta?+
The PayPal Payments Standard gateway needs Classic API credentials (username, password, signature) to issue refunds. REST credentials do not work. Request a signature under Account Settings → Account access → API access → NVP/SOAP API integration.
What is the PayPal IPN URL for Blesta?+
https://your-billing-domain/callback/gw/<company_id>/paypal_payments_standard/ — company_id is 1 on a single-company install. Set it under PayPal's Instant Payment Notifications screen.
Does Blesta's PayPal gateway need REST or Classic API credentials?+
Classic (NVP/SOAP) with a signature. PayPal's UI defaults toward REST, but Blesta's PayPal Payments Standard module only speaks Classic for capture and refund operations.
How long does the PayPal IPN take to mark an invoice paid?+
Usually 10-30 seconds after the customer completes payment, depending on PayPal's queue depth. Anything beyond a minute suggests an IPN configuration problem — check IPN History in the PayPal merchant dashboard.

Next steps

how to
Set up Stripe Payments in Blesta without the rounding bug
How to install the Stripe Payments gateway in Blesta, set the payment_intent webhook correctly, and avoid the rounded-amount bug from extra events.
4 min read
how to
Block fraudulent hosting orders in Blesta with anti-fraud
Hosting is a carding magnet — instant provisioning plus stolen cards equals chargebacks and a wrecked IP reputation. Wire MaxMind or FraudLabs Pro into Blesta's order system and gate signups on a risk score.
7 min read
how to
Connect Blesta to cPanel/WHM for automatic account provisioning
Wire the cPanel module in Blesta to a WHM server with a scoped API token so new orders create accounts on their own, complete with package mapping, nameserver swap and suspension hooks.
10 min read
how to
Set up the Blesta cron for billing and provisioning
A working Blesta cron configuration — the crontab line, per-task scheduling, how to confirm tasks are firing, and the five failure modes that account for most "Blesta is broken" tickets.
9 min read
how to
Set up EU VAT, VIES validation, and tax rules in Blesta
Blesta gives you two tax levels plus VIES and HMRC VAT-ID validation, but no OSS reporting or GeoIP — here's how to configure tax rules correctly for an EU hosting business.
7 min read
how to
Connect Blesta to Plesk for automatic subscription provisioning
Wire the Plesk module in Blesta to a Plesk server using an API key, map service plans to packages, and get orders creating real subscriptions without manual touch.
12 min read
Switch in an afternoon

Switch from your current reseller — free.

We migrate active cPanel, Plesk, LiteSpeed and CloudLinux licenses from any reseller. We prorate the first month so you never pay twice, and your customers see zero downtime during the swap.