6

I couldn't find a definitive answer from the PayPal docs on this.

According to the docs:

The PNREF returned in the original transaction is valid in reference transactions for 12 months.

I want to avoid requiring my customers re-enter their credit card information every 12 months.

So what I want to do is to do a zero-dollar authorization to store an initial PNREF, and then update the PNREF value for that customer every time they do a reference transaction. So as long as the customer doesn't go for 12 straight months with no transactions, they won't have to re-enter their card information.

Having trouble finding an answer to whether or not that's possible via Google. Does anyone know if you can use the PNREF from a reference transaction as the ORIGID for another reference transaction?

Travesty3
  • 14,351
  • 6
  • 61
  • 98

3 Answers3

11

Well I went ahead and tried it out, and I am able to use the PNREF of a reference transaction as the ORIGID in another reference transaction.

Now the million dollar question is, will this still work a year after the zero dollar authorization? Guess I'll let you know in about a year...


One year later...

It's been a year, and this has been working successfully for us. We originally save the customer's credit card info using a zero-dollar authorization (ZDA). Later, we do a reference transaction (call it T1) with the ZDA's PNREF as the new transaction's ORIGID.

Some time later, when the customer wants to do another transaction (call it T2), we use T1's PNREF as the new transaction's ORIGID. We then store T2's PNREF for use on the next transaction. So every time we do a transaction, we store the new PNREF for use on the next transaction.

This is how we've been chaining the transactions, and we have confirmed (ourselves and by a representative over the phone) that as long as 12 months doesn't go by without any transactions, we can keep chaining them indefinitely.

Travesty3
  • 14,351
  • 6
  • 61
  • 98
  • 1
    It should be noted that ZDA support depends on your bank/card processor (Elavon/Suntrust/Wellsfarg/whoever). Some do support ZDA's others may not and you have to workaround it with a $1 Authorization transaction followed by an immediate void of the Authorization. The PNREF from the Authorization will be good for the 12 months. – Phil Sayers Dec 14 '13 at 18:28
4

We have the same issue, or wish to do the same thing that Travesty3 had posted, we were pointed to this thread by PayFlow Pro Email Support.

However, before we got that response from their Email Support Team, we had ended up calling PayFlow Pro Phone Support and got the following explanation:

There may not be an easy way to perpetually or "chaining" keep renewing the PNREF. Especially when utilizing the Zero Dollar Authorization (ZDA). While the PNREFs returned by ZDA may work, they only last for a short period of time (+- 14 days). The tech support person who answered our call had consulted a senior tech to confirm this.

Now, apparently PNREFs returned by Delayed Capture or Sale transactions do last 12 months, but these aren't good solutions for us since we don't want to charge the customers' cards without actual purchases.

bfavaretto
  • 71,580
  • 16
  • 111
  • 150
ipekerti
  • 41
  • 2
1

Yes, you can indeed use the PNREF of a reference transaction (ZDA or not) as the ORIGID for a new reference transaction.

One caveat however, if you're using PayPal Payments Pro (thus; PayPal is set as your processor) then I'll need to do some additional checking on this, as I'm not entirely sure whether it's supported in that scenario.
If you're using Payflow Pro with your own processor, then it's definitely supported.

Robert
  • 19,326
  • 3
  • 58
  • 59
  • Thanks for the response. I am using Payflow Pro, and it does work. Based on the documentation, it sounds like all relevant data from the previous transaction is copied over for use in the new transaction, so the new transaction does not rely on the previous transaction to maintain the data. This suggests that I should be able to chain the transactions indefinitely, even more than a year past the original transaction (provided that the customer doesn't go for a full year without any transactions). Are you able to confirm that? – Travesty3 Oct 16 '12 at 14:29
  • No, each PNREF is only available up to 12 months. If you'd attempt it after 12 months, you'd receive API error code 19 ("Original transaction ID not found" - http://www.paypalobjects.com/en_US/vhelp/paypalmanager_help/result_values_for_transaction_declines_or_errors.htm) – Robert Oct 16 '12 at 22:48
  • Yeah, I'm talking about chaining them, though. So every time a customer makes a transaction, we overwrite the PNREF value that we store. For example, say we make the initial transaction (call it A), and then we do a reference transaction (call it B) using A's PNREF as the ORIGID and store B's PNREF. Now if we do a third transaction (call it C), we will use B's PNREF as the ORIGID and store C's PNREF, and so on. C references B, and B references A. So it will only expire if the customer doesn't make any transactions for a year straight. That's what I'm trying to confirm. – Travesty3 Oct 17 '12 at 12:26
  • Yep, that's what I meant to say; there's not a problem doing that. :) – Robert Oct 18 '12 at 00:29