Implemented PayPal NVP API

digitalpoint

Well-known member
The PayPal integration XenForo uses is the old school "Website Payments" system that PayPal supports via creating a form and submitting it to PayPal. It works, but PayPal has an exponentially better API now that let you do a LOT more than just blindly take payments.

https://cms.paypal.com/us/cgi-bin/?...t_ID=developer/e_howto_api_nvp_NVPAPIOverview

https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/howto_api_reference

We use it for payments on our website, and it allows quite a bit more functionality... for example the IPN receiver is still used, but it's really just a for notices about future events. The event (payment) happening NOW is done in realtime via a token that's passed back.

You can do a lot of other useful things directly from the XF admin control panel (no need to log into PayPal's site)...

  • Manage recurring subscriptions (we can make an API call to find out if the user has/has not canceled their subscription... and we can edit/cancel if we wanted).
  • Allows you to process refunds (both full and partial).
  • PayPal transaction searching
  • Pre-authorizations (authorize an amount for capture in the future).

The API itself is SUPER easy to use and integrate (see first link in this post).

It could allow advanced things even that end-users could use (for example cancelation of a recurring subscription without needing them to log into PayPal and find their subscription transaction). It could also be used for less vague subscription expiration emails (since we can find out if the user has or has not actually canceled their subscription).

It also allows for better management in the admin control panel directly without needing to flip back and forth between there and PayPal's website.
 
Upvote 116
This suggestion has been implemented. Votes are no longer accepted.
Personally, I expect to see a much different, modular and easy to customize system in the future from XF. As the current implementation seems like a "get it done quick for now" solution. I couldn't even use their code on my donation manager, had to copy what was done in ways. To the point I am using a "it works" way for now and hoping they will implement something better at a later date to use.
 
Aren't they more of a "traditional" merchant account provider (like a normal bank)?
I know. They are at the very top of the foodchain and everything we use (paypal/braintree/etc) are just going up to them.
You can use paypal via paymentech.

I'm still wrapping my head around this. Our payments are one-off and each in the order of $1500 so every 0.01% count.
 
It really just depends on your volume I guess. We had a traditional merchant account and we were getting a very good rate on it as well. But in the end, we just got rid of it and opted for PayPal (even for direct credit card transactions where the buyer has no PayPal account).

The reasons:
  • PayPal's high volume rate (1.9%) is about the same as a normal merchant account when the card holder isn't present.
  • Fairly decent micropayment rates.
  • No monthly/hidden fees.
  • Don't need to deal with chargeback paperwork in the rare time it happens.
  • There is a lot more protection for the seller when you are selling non-tangible goods (software, subscriptions, etc.), which is what we do. In fact PayPal offers no buyer protection when it's a non-tangible good. This is kind of lame on PayPal's part, but for an honest seller it's nice.
  • You don't take on the liability of collecting/storing credit card info. If your servers/records/database is compromised and customer credit card info is stored there, you can be found liable for not only fraudulent charges, but also the cost of replacing cardholder's credit cards with new ones (I don't recall the exact amount, but the "replacement" fee you can be charged is something like $200 per if it had to be replaced because of your records being breached). The liability of knowing someone's credit card info is shifted entirely to PayPal.
  • Their API is absolutely fantastic and is able to do most anything you can dream (and no cost to use it)... normal transactions, refunds (partial and full), subscriptions, order capture (pre-authorize a certain amount for settlement up to a month later... like when you actually ship something), parallel payments (a single payment with multiple recipients), chained payments (customer pays 1 person, but automatically 1 or more third parties get a cut transparently). API even lets you grant a third party the ability to make just certain calls with your PayPal account (without needing to give them the login/password).
Now of course, I would love PayPal to be cheaper, but the reality is that it's pretty fair priced for everything you actually get.
 
2.9% = $0-$3,000/month
2.5% = $3,001-$10,000/month
2.2% = $10,001-$100,000/month
1.9% = $100,000+/month

The rates aren't tiered, so if for example you did $15,000 last month, everything is 2.2% the following month (starting at your first dollar).

But yes... at under $3,000/month, PayPal is pretty expensive... but once you start getting to levels that the hassle of running/having your own merchant account makes sense, the rates also start dropping down. When comparing to a normal merchant account, you also need to not compare their base rate, but rather their rate for "cardholder not present" (unless of course you run a shop where the customer is actually there).
 
We get the 2.2% rate only after we found out about it and apply for it. They don't automatically switch your rate once you hit that revenue level.
Our need is very simple. We use account upgrade to provide access to a private area for our customers. Once they make payment, they get access.
So for every $1500 payment, the fee is around $32.
 
Did you code any PayPal API stuff in to your upgrade, digitalpoint? Would still love to see this appear in XF at some point soon.
 
Cross referencing related threads ...
 
Top Bottom