Irrespective of credit cards, it's long overdue for XenForo to be doing PayPal stuff via API (I
suggested it in 2011). Their NVP API since been deprecated, but they have APIs that allow you to do "all the things" and eliminate IPNs (which are problematic for a variety of reasons... for example you can't change the IPN URL after the fact if you change the domain of your site). Their new API uses webhooks, and you can choose what events to subscribe to (and change the subscription URL).
One nice thing is that XenForo has abstracted the payment system out to support more than just PayPal (the old days it was only PayPal), and the stuff XenForo has in place already makes it relatively trivial to simply add a new payment handler (I've actually done this and you can leverage the payment_callback.php URL as your webhook destination). The payment handler system already has methods for subscription cancelation (used for other payment providers), so that could finally become a thing for PayPal as well (allowing users to cancel subscriptions without digging through constantly changing locations in PayPal their account).
You can utilize the validateTransaction() method in the payment handler to handle incoming webhook notifications like so:
The payment handler I built it way more than what a normal XenForo site would need/use (for example merchant onboarding you can see right there).... merchants being the site's users if they are selling things on your site.
Back to the original post, yes... you can also do credit card processing on the site itself via PayPal with API calls as long as you have the right type of account (the user never leaves your site or knows anything about PayPal... they are just entering their credit card number on your site).
PayPal API reference
developer.paypal.com