What exactly is the 'recurring' PayPal IPN variable? - paypal

For PayPal subscriptions, the IPN variable recurring "Indicates whether regular rate recurs (1 is yes, blank is no)."
https://developer.paypal.com/webapps/developer/docs/classic/ipn/integration-guide/IPNandPDTVariables/#id091EB0901HT
I'm not sure what this means. Looking at my log, it is always 1 for subscriptions. When is it not 1?

You may want to check out the meaning of the corresponding parameter src in the HTML vairables for PayPal buttons - that may help understanding what does recurring mean.
src - Subscription payments recur unless subscribers cancel their subscriptions before the end of the current billing cycle or you limit the number of times that payments recur with the value that you specify for srt.
Allowable values are:
0 — subscription payments do not recur,
1 — subscription payments recur. The default is 0.
For subscriptions the value of recurring will always be 1, and for instant payments it will return blank.

Related

SagePay Token Integration PayPal Token

It's not clear from the SagePay docs if the Token integration works for PayPal transactions.
It doesn't appear to.
The token docs state that:
If you wish to register this transaction as the first in a series of
regular payments, this field should be set to 1.
If you do not have a
PayPal account set up for use via Sage Pay, then this field is not
necessary and should be omitted or set to 0.
0 = This is a normal
PayPal transaction, not the first in a series of payments (default)
1
= This is the first in a series of PayPal payments. Subsequent payments can be taken using TxType=REPEAT.
Questions:
To repeat a SagePay PayPal transaction is it necessay to use the REPEAT transaction type outlined in the shared protocol guidelines documentation.
As SagePay archive transactions after two years, is there a way that we could increase the life of a subscription beyond two years?
Is the token supplied by SagePay in the notification for a PayPal transaction useful?
Yes
You could possibly switch to repeating the repeat (if that makes sense! Not sure if it would work though)
Not really. You handle everything through the Sage Pay interface, so you don't need anything from Pay Pal

PayPal double payment

I need to charge a credit card 50% on booking and the rest of 50% on a later date. Is there any other option beside recurring payment? This is only a two time payment so not like any subscription.
Any suggestions are welcome, I feel like recurring payments option is to complicated for this and as I know a recurring payment has no obligation to be paid.
A reference transaction could do this. It would work like this
You charge your customer the initial booking fee. You record the transaction ID from Paypal.
Within 90 days (not sure if this has changed) you would then call (in the Classic API anyways) DoReferenceTransaction with your original transaction ID. Note that you WILL have to accept that the CVV2 (which neither you nor Paypal can store due to PCI compliance) will not match (at least in my experience). It's not a huge risk since the first transaction likely had to pass that check but it is a caveat.

Paypal - Adaptive Payments

Given a market place that has buyers and sellers exchanging goods. What is the best way to allow a buyer to make a purchase and with hold the money from the seller until the shipment has been received?
Chain payments force the primary recipient to be receive the majority payout. But if that is the case, we end up being force to pay the seller at point of sale instead of what the shipment is complete.
Buyer - pays the total amount
MarketPlace - receives percentage
Seller - receives majority of sale (after delivery confirmed)
Any thoughts on how to accomplish our goal with Paypal?
Thanks!
There are lots of things you can do and any of them could be the best solution. It seems like you are already on the right track with is adaptive payments. The type of adaptive payment I would go for would be a delayed chained payment. A delayed chained payment as described by paypal is
Delayed Chained Payments
By default, payments to all receivers in a chained payment are
immediate. However, you can choose to delay a payment to a secondary
receiver. For example, as primary receiver, you may require secondary
receivers to perform some action, such as shipping goods or waiting
for expiration of a return period, before making payment. To complete
the payment, you must explicitly execute a payment to secondary
receivers after the sender pays you. The payment must occur within 90
days, after which you cannot complete the payment as part of the
original chained payment.
You can find more info about this about a quarter of the way down the page here.
Hope this helps!
p.s. checkout their samples included with their sdk for the classic api here.

PayPal Subscription Payment Failed

When a subscription payment fails, PayPal will retry for n times.
What transaction type (subscr_cancel or subscr_eot) is sent back via IPN, after all retries fail?
The specifics depend on the PayPal product you're using, although the logic works similar(`ish) across both Website Payments Standard subscription buttons and Express Checkout Recurring Payments (via the CreateRecurringPaymentsProfile API):
This depends on whether you've set MAXFAILEDPAYMENTS or not. If MAXFAILEDPAYMENTS > 0 is set, it will cancel the subscription after n number of attempts and you'll receive a subscr_cancel. If you have it set to MAXFAILEDPAYMENTS=0, you'll get recurring_payment_skipped and the recurring payment will be marked as having an outstanding balance. If you specify AUTOBILLOUTAMT=AutoBillAmt, the outstanding balance will be added to the next billing cycle.
I would suggest taking a look at https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_html_IPNandPDTVariables#id091EB0901HT which lists all IPN variables, including the ones for recurring payments.
Paypal returns subscr_failed for this case, and the possible return values are:
subscr_signup: subscription sign-up.
subscr_cancel: subscription cancellation.
subscr_failed: subscription payment failure.
subscr_payment: subscription payment.
subscr_eot: subscription’s end-of-term.
subscr_modify: subscription modification.
Please click here for further clarification.

Changing the Amount of a PayPal Subscription

We are using PayPal subscriptions to automatically make ongoing monthly donations. The user initially creates a subscription with some pre-determined monthly donation amount (e.g., say $50/month). This creates a recurring subscription which we process by way of IPN. All good there. But, our interface allows the user to come in and change their monthly donation amount, say from $50/month to $100/month. I am wondering how I can change the PayPal subscription to reflect this new amount?
There is a method in PayPal's NVP API called "UpdateRecurringPaymentsProfile" which says I can update the subscription amount, but unfortunately it says:
For recurring payments with Express Checkout, the payment amount can be increased by no more than 20% every 180 days (starting when the profile is created).
(reference: https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_nvp_r_UpdateRecurringPaymentsProfile)
To be honest, PayPal's API's are quite confusing so I'm not sure if I am using the Express Checkout or not. (We are creating Subscription buttons using the simple Website Payment Standard API).
Will this work? If not, is there an alternative to achieve what we need?
Thanks!
I'm not sure if I am using the Express Checkout or not. (We are creating Subscription buttons using the simple Website Payment Standard API).
I hope rereading the above, you will realize that you answered your own question: You are using Website Payments Standard (WPS) not Express Checkout (EC).
With WPS, you can create a subscription modify button but this is super inflexible and I would not recommend it.
With EC, you can modify subscriptions as well (page 99):
Use the UpdateRecurringPaymentsProfile API to modify a recurring payments profile.
NOTE: You can also modify recurring payments profiles from the PayPal website.
You can only modify the following specific information about an active or suspended profile:
Subscriber name or address
Past due or outstanding amount
Whether to bill the outstanding amount with the next billing cycle
Maximum number of failed payments allowed
Profile description and reference
Number of additional billing cycles
Billing amount, tax amount, or shipping amount
NOTE: You cannot modify the billing frequency or billing period of a profile. You can
modify the number of billing cycles in the profile.
NOTE: For recurring payments with Express Checkout, certain updates, such as billing
amount, are not allowed within 3 days of the scheduled billing date, and an error is
returned.
You can modify the following profile information during the trial period or regular payment
period:
Billing amount (excluding tax and shipping)
Number of billing cycles
With that information out of the way... For the most flexibility:
Look at creating Billing Agreement IDs through Express Checkout. You will need to get Reference Transactions enabled on your PayPal account (talk to merchant support to get this done).
With a BAID, you control when your customers are charged, how much they are charged, and pretty much anything else having to do with the transaction. The drawback is the same as the benefit.. you (see 'have to') control it all.