XF 2.3 PayPal Legacy vs New PayPal - anyone migrate while supporting legacy subs successfully?

Wutime

Well-known member
Hoping some expert can calm my nerves and shed some light.

I've setup the new PayPal, but all my subscribers are on the legacy system.

Can someone please confirm that my legacy subscribers will continue to process as long as I leave the old IPN online at:

payment_callback.php?_xfProvider=paypal

I notice that the new PayPal system automatically created it's own webhook using:

payment_callback.php?_xfProvider=paypalrest

Am I right to assume that legacy subscriptions will continue to use the old IPN and XenForo will continue to process them on the old IPN?

I've done the following in XF:
  • Kept PayPal Legacy under payment profiles
  • Unchecked "PayPal Legacy" as a user-upgrade purchase option
  • Checked "PayPal" as a user-upgrade purchase option
I've also read some people say this new system has issues; is this still the case? I'm getting weird errors that are bugging me out :oops::p:oops::p:oops:

Screenshot 2025-08-11 at 1.50.43 PM.webp
 
Ahhh, an update and solved.

Leaving this here in case it helps the next person switching from Legacy > the new PayPal in XF 2.3.

TLDR:
  • Legacy subs keep working on IPN at
    • /payment_callback.php?_xfProvider=paypal
  • The new PayPal (Commerce/REST) uses a webhook at
    • /payment_callback.php?_xfProvider=paypalrest
I had both a webhook to paypalrest (correct) and a webhook to paypal (wrong). PayPal was posting each event to both; XF rightly rejected the ?_xfProvider=paypal one, which caused a flood of “Error: Request not validated / Unknown payment profile”.

What I changed:

In PayPal Developer > My Apps (LIVE):
  • Kept only one webhook: ?_xfProvider=paypalrest
  • Deleted the webhook that pointed to ?_xfProvider=paypal (that URL is for Legacy IPN, not webhooks).
In XenForo > Payment profiles > PayPal (new):
  • Left Enable webhook verification ON. (If you’ve been toggling settings, turning it OFF → Save → ON → Save forces XF to refresh the stored Webhook ID.)
  • Left PayPal (Legacy) profile enabled (for existing subs) but unchecked for new purchases.
Account-level IPN in PayPal is still set to ?_xfProvider=paypal (that’s fine for old subs; XF also sets a per-transaction notify_url).

After that:
  • PayPal Events now show 200 OK to paypalrest.
  • The “Request not validated” noise tapered off within ~an hour (old retries). Anything left was just random hits to /payment_callback.php with no _xfProvider—harmless.
Takeaways:

Legacy subs: yes, they continue via IPN at ?_xfProvider=paypal.

New PayPal: make sure only the ?_xfProvider=paypalrest webhook exists in your PayPal app.

If you see “Request not validated / Unknown payment profile,” check that PayPal isn’t also posting to the ?_xfProvider=paypal endpoint (or to sandbox/another app).

Hopefully this spares someone else the headache if they make a mistake or two like I did, or just have some doubts about the transition.
 
I'm still getting a lot of noise in my logs; does anyone do anything to protect the /community/payment_callback.php end point?

I've done tests and things seem to be operating just fine.
 

Attachments

  • Screenshot 2025-08-12 at 2.45.57 AM.webp
    Screenshot 2025-08-12 at 2.45.57 AM.webp
    40.3 KB · Views: 7
Argg, I had to abandon ship and go back to legacy. Too many errors and issues.

If anyone can help I'd appreciate it.
 

Attachments

  • Screenshot 2025-08-12 at 3.23.03 AM.webp
    Screenshot 2025-08-12 at 3.23.03 AM.webp
    56 KB · Views: 3
I'm not sure I can trust deleting the IPN on paypal, live with all the errors, and delete the (legacy) PayPal in xenforo... and trust everything will work moving forward.
 
Back
Top Bottom