Changing the Amount of a PayPal Subscription
Asked Answered
I

1

18

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!

Isar answered 3/10, 2011 at 21:13 Comment(0)
F
6

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.

Ferne answered 31/8, 2012 at 6:38 Comment(3)
Thanks SgtPooki for the info on BAID, that may ultimately be what we need, although it's a significantly more complicated integration. That being said, I don't think some of your remarks are correct. First of all, we ARE using Express Checkout in additional to WPS, namely the UpdateRecurringPaymentsProfile to cancel the profiles systemtically. Also you said it is possible to modify the billing amount, but that is still restricted to the 20% every 180 days limitation.Isar
just because you are submitting an API call does not mean you are using EC. UpdateRecurringPaymentsProfile is not an EC API call, it's a Recurring Payments API call. EC API calls only include SetExpressCheckout, GetExpressCheckoutDetails, and DoExpressCheckoutPayment. There are many API calls that can be used against EC/WPS/WPP/PPP/PPA/PFP/PFL/AA/AP API calls that are not necessarily part of that particular products API calls. Just trying to clarify things for you.Ferne
Thanks for clarifying that. So ya, I'm not using EC but I'm also not just using WPS either. So I guess the answer to the main question is NO, the amount of a subscription or recurring payment can NOT be changed through any means (except for the 20% every 180 days rule).Isar

© 2022 - 2024 — McMap. All rights reserved.