Understanding the Differences of Each

Over the years PayPal has grown into a vast array of payment options that can often puzzle merchants and developers alike.  One area of this arena that is often accompanied by such confusion involves safely billing customers using previously saved billing information.  In the past this could be very tricky and would involve heavy security in order to ensure PCI compliance and a friendly environment for your customers. PayPal has opened doors to many different roads with easy solutions at the end.

Recurring Payments

PayPal’s Recurring Payments system is a subscription-based platform that provides the ability for developers to easily create automated payments of a static amount at given intervals. It is available with Standard Subscription buttons, Express Checkout and the Website Payments Pro API’s.  It is an excellent tool that makes it very easy to automatically bill for services without the need to save the user’s credit card information in your own database.

The most important thing to remember about Recurring Payments is that the same amount of money will be charged for each period that is included in the profile.  You can include a one-time, initial payment when creating a new profile; however, the recurring amount will always be the same.

To help understand when the use of Recurring Payments might be suit your needs I’ll provide some example scenarios.  Each of the samples provided will include the scenario as well as how it would be setup in an NVP API request.

  • Web Hosting Provider
    • Setup Fee: $50.00
      • INITAMT=50.00
    • Recurring Payment: $9.99/mo until canceled.
  • Cable Service Provider
    • Installation Fee:  $100.00
      • INITAMT=100.00
    • Trial Period: $39.99/mo for the first 6 months.
    • Regular Payment: $79.99/mo until canceled. 

Again, the thing to remember about recurring payments is that the regular amount to be charged (AMT) will always be the same amount.  If you need to charge variable amounts each period you will need to consider one of the other options we’re about to get into.

NOTE: While the amount of the profile will be the same each period, you do have the ability to update the profile to a different amount.  There is no limit on this with profiles created using Payments Pro, however, if the profile is created with Express Checkout you will be limited to a 20% increase every 180 days.

Reference Transactions

Reference Transactions seem to cause the most confusion for people based on the questions I get through X.com and my own web site.  They can be used with both Express Checkout and Payments Pro, but the reasons for the doing so would be a little bit different. 

Reference Transactions and Express Checkout

When you create an Express Checkout flow within your checkout system you can include a billing agreement within your SetExpressCheckout call.  This allows the buyer to agree to future billing without the need to go through the Express Checkout procedure again.  This makes it very easy to include one-click upsells in email newsletters or on the web site for future orders from repeat customers which can improve conversion rates in your web store.

Keep in mind that the reference transactions feature is not enabled on Express Checkout by default.  In order to utilize it with Express Checkout the merchant will need to apply for it and get approved.  Make sure this is done prior to doing any development work in order to avoid problems when you launch.

Reference Transactions and Payments Pro

The same benefit of one-click, easy checkout with reference transactions applies to Payments Pro and direct credit cards, too.  A larger benefit, though, is that merchants can worry less about PCI compliance.

In the past, if you wanted to provide the ability to rebill existing billing information you would have to save that information in your own database.  Many merchants carelessly did so without understanding PCI compliance, and others were forced to spend additional money on heavy security measures for their servers in order to remain compliant.

PayPal helps to solve this issue.  When transactions are processed through PayPal’s system they actually store the billing information on their servers.  Of course, PayPal has high-end servers with security to match, and they are completely PCI compliant.

How it Works

In order to utilize the system one must simply create a DoReferenceTransaction API request.  This request will include the transaction/authorization ID of a previous transaction along with a new amount to process.  PayPal’s system will use the original transaction ID to lookup the billing information in their system and process the new amount accordingly.

One thing to keep in mind while working with reference transactions within the Payments Pro platform (DoDirectPayment) is that even PayPal does NOT store credit card security digits (CSV/CVV2) in their system.  As such, if your PayPal profile is set to block payments where this is not provided your reference transaction call will not work.  There are a couple of ways around this issue.

  • Update your account profile to allow transactions where CSC is not included.
    • I prefer to set my Fraud Filters to “Review” so that it will accept any payment that does not provide CSC info, but it will flag it in my PayPal profile and return FMF details back in API calls as well.  This way I can send necessary notification to my shipping department or salesperson to check up on the order and ensure it’s a good one prior to letting it ship.
  • Store nothing about the credit card except for the CSC code in your database.  Then pass it along in your DoReferenceTransaction request.
    NOTE:  This is not the recommended method of handling reference transactions, but if you choose to do so a good tip is to name your database field something that does not refer to credit cards or CSC codes.

Now that we’ve covered all of the details of reference transactions let’s take a look at an example of how a merchant might utilize Reference Transactions.

  • 3rd Party Shopping Cart Systems
    • Many shopping cart systems charge a commission for using their services.  If the merchant chooses to bill all of the commissions at the end of the month instead of in real-time a variable (changing) amount will need to be charged each month.
      • Using an automated script on the server, one can pull all records from a database that are due to be charged and loop through each to process them using the DoReferenceTransaction API.
    • Email receipts to buyers may include upsell items that would allow the shopper to quickly and easily purchase the item without going all the way a complete checkout again.

Preapproved Payments

Another feature PayPal provides for payment processing is their Preapproved Payments system.  While similar to Reference Transactions, this recent addition to their growing platform provides a variety of new ways to handle payments and provide another option to solutions that don’t exactly fit well with Recurring Payments or Reference Transactions.

Using Preapproved Payments, PayPal users can specify that they would like to authorize an application to submit payments on their behalf without any additional confirmation.  One difference between Preapproved Payments and Reference Transactions is that when the user creates a Preapproved Payment profile they can specify a maximum amount of money that the application can spend on their behalf or within a given time period. 

After a profile is created an application is free to submit payments for that user on their behalf at any time.  Let’s take a look at a few examples of when this might be a good idea.

  • Prepaid Online Game-Play
    • Similar to arcade-style games, many online games charge a fee up-front and then the time you spend playing the game goes against the credits you purchased. 
      • When your credits are maxed out the game would interrupted and you would be forced to purchase more credits (“drop in some more quarters”) prior to continuing.
    • With a Preapproval profile, a user may specify that they’d like to allow the game to automatically charge them $10.00 at a time up to a maximum of $100.
      • When the original $10.00 credit is maxed out the system could automatically bill an additional $10.00 without interrupting the game play experience. 

Another example I’d like to provide won’t bullet out so nicely, so I’ll just mention it here.  It’s something I’ve been toying with in my head but I’m simply not going to have the time to develop it any time soon so if you like the idea, run with it!  It’s just a good example of how Preapproved Payments can be used.

I’ll use a rent payment as an example here.  Everybody has to pay rent, mortgage, or whatever the case may be.  It’s generally a drag paying bills, though, and often times that alone can cause people to procrastinate and end up with late payments.  It would be nice if there was more of an incentive (other than no late payment) for people to pay on time.  Also, why not make it fun at the same time?  Imagine the following, which would be easily doable with Preapproved Payments. 

Rather than send a simple bill to a tenant, one could send out an email or a text message to the person informing them that their bill is due along with a link to play some sort of game.  The worm game, or Tetris, or any game really.
The idea would be to provide some sort of incentive to the person if they win or do well in the game.  Maybe free cable TV that month or $20 off their bill.  Again, the incentive could be anything.

The main idea is that the simple act of the playing the game would initiate the rent payment on the back-end.  If you don’t do well in the game your normal payments gets submitted.  If you do accomplish the goal and receive an award, it gets applied to that payment in real-time and the payment, less the prize, is submitted automatically.  This way renters will get some pleasure out of the act of making a payment (as opposed to online bill pay or writing checks) and will have more of an incentive to pay on time as well which benefits the business owner. 

This is just one idea that comes to mind when thinking of all of the possibilities Preapproved Payments provides.  I’m sure you can think of many more!


I hope the information provided helps shed some light on what exactly Recurring Payments, Reference Transactions, and Preapproved Payments are and how to use each.  Between these three features offered by PayPal, merchants and developers should be completely free to solve any payment problems they may face.