Skip to content
Shahid Malla
Payment gateways In Stock

PayPal Subscription Payment Sync for WHMCS

Finds PayPal subscription payments that never reached WHMCS and applies them to the right unpaid invoice, with doubtful matches held for review.

WHMCS 8.x (confirmed at purchase) PHP 7.4+

What problem does PayPal payment sync solve?

WHMCS learns about PayPal subscription payments through webhooks. If the webhook signature check fails, for example after the API credentials on the PayPal app are changed, the customer is charged in PayPal but the invoice in WHMCS stays unpaid. The service then follows your overdue rules and can be suspended over a bill that was already settled. I built this addon after watching exactly that happen.

How does it match payments to invoices?

It signs in to the PayPal REST API with your own app credentials and reads incoming transactions from PayPal's transaction search for a window you set, 48 hours by default. For each payment it identifies the customer in this order: the subscription ID stored on a WHMCS service, then the payer email against the client email or PayPal email field, then earlier payments it already matched for that payer. It then looks for that client's unpaid PayPal Checkout invoice in the same currency with an amount inside your tolerance.

A match on customer, amount and currency is recorded through WHMCS's own AddInvoicePayment call with the PayPal transaction ID, so your usual paid-invoice automation runs. When the customer is clear but no amount fits, the closest invoice is flagged for your review instead of being paid. A transaction ID is never applied twice.

What is included?

ToolWhat it does
Automatic syncRuns after the WHMCS cron, at most once per interval you set, plus a daily run
Standalone cronToken-protected endpoint for a separate schedule
Review queueApprove or reject flagged matches, with a pending count in the admin menu
Manual syncRun a sync over a date range you choose
Subscription syncPull one subscription's transactions by its ID
Transaction checkLook up one PayPal transaction ID and see why it did or did not match
LogsEvery run, match and failure listed, with purge by age

Who should use it?

It is for WHMCS businesses that bill recurring services through PayPal subscriptions and have seen paid renewals left open, or that want a safety net to catch them before suspension.

What do you need, and what are the limits?

Requirements: WHMCS 8.x with the PayPal Checkout gateway, PHP 7.4 or newer with cURL, a running WHMCS cron, and a PayPal REST app client ID and secret with access to transaction search. A connection test in the settings tab confirms the credentials, and a sandbox mode lets you try it first.

Limits: only unpaid invoices assigned to PayPal Checkout are considered. PayPal's transaction search covers at most 31 days per lookup. A payment from an email that matches no client and no known subscription is listed as unmatched for you to handle by hand.

It costs $49 once for a lifetime license with twelve months of updates and support, an instant download and license key, and a seven-day refund window.

Key features

  • Reads incoming payments from PayPal's transaction search API
  • Customer found by subscription ID, payer email or earlier matches
  • Exact amount and currency matches recorded as payments automatically
  • Near matches held in a review queue to approve or reject
  • Each PayPal transaction ID applied only once
  • Automatic runs after the WHMCS cron with an interval you set
  • Token-protected cron endpoint for a separate schedule
  • Manual sync by date range and single-subscription sync
  • Transaction lookup that explains why a payment did not match
  • Sync logs with purge by age, plus sandbox mode for testing

Why customers buy this module

  • →Customers who paid in PayPal are not suspended over an open invoice
  • →Staff stop checking PayPal by hand for missing renewals
  • →Uncertain matches wait for a person instead of being paid blindly

Frequently asked questions

Does this replace the PayPal gateway in WHMCS?

<p>No. Customers still subscribe and pay through the WHMCS PayPal Checkout gateway. This addon runs beside it and catches the payments its webhook did not record, using data read directly from your PayPal account.</p>

Can it mark the wrong invoice as paid?

<p>It only pays an invoice automatically when the customer is identified and one of their unpaid PayPal invoices matches the currency and the amount within your tolerance, five cents by default. Anything less certain goes to the review queue, where you approve or reject it.</p>

How quickly are missed payments picked up?

<p>After each WHMCS cron run, no more often than the interval you set, 15 minutes by default, looking back 48 hours by default. You can also run a manual sync for any date range or sync one subscription by its ID whenever you need to.</p>

Technical specifications

WHMCS
8.x (confirmed at purchase)
PHP
7.4+
Gateway
WHMCS PayPal Checkout
PayPal API
REST: transaction search and subscriptions
Default schedule
After each WHMCS cron run, at most every 15 minutes
License
Lifetime, 1 year of updates and support included
Delivery
Instant download and license key
Refund window
7 days