Updating a recurring payment profile created by express using UpdateRecurringPaymentsProfile call - paypal

On my website I have to plans of $95 and $195 among which user can switch in between a billing cycle.
I am using Paypal Express checkout API to create recurring accounts. But as express checkout has a limitation that only an increment of 20% is allowed within a period of 180days, plan switching is not possible in my website.
My queries are:
Is there a way to update to $195 from $95 with Express Checkout
API?
Is there a way to cancel existing account and create a new
account with increased amount?
Can I use UpdateRecurringPaymentsProfile() to update details of a recurring
account created using Express Checkout?
Thanks in Advance

1) Updating from $95 to $195 would be more than a 20% increase and would fail.
2) Yes, you can cancel a profile and create a new one with the new pricing info. This can be done manually or via the API using ManageRecurringPaymentsProfileStatus. Then you would create the new one accordingly.
3) You can, but you won't be able to increase the amount more than 20% like you mentioned. If that's what you need to do you'll have to cancel and create a new one.
Note that if you were to use Payments Pro to create the profiles instead of Express Checkout there would be no limit on the amount increase. You can raise as much as you need to as often as you need to. Payments Pro + Recurring Billing is going to run $50 or $60 per month, though, on top of the transaction fees you'll pay.

Related

Regular payment in Paypal using billing plans

I would like to ask you about regular payment in paypal using billing plans. I use the PHP library from paypal (REST API) to create billing plans and agreement for users but I have some problems:
I have two plans: STANDARD and PRO. What when the user buys a standard plan and after some time will be want to switch to another? What with the old subscription? I don't see the option to cancel subscription via REST API. Should I create a personal billing plan for every user and in this case update this changes?
My plans include some additional parameters like: ,,How many people can use one account" - and this parameter influences on the final price. I don't know what I should do to get regular payments with flexible parameters.
Should I create a billing plan for every user and then create an agreement for this personal billing plan? What if user paid for 12 months and after 9 months will want to change some parameters - then I should upgrade price in the billing price (for stability in the next billing cycle) and to get this difference in plan costs I should create the normal payment by http://paypal.github.io/PayPal-PHP-SDK/sample/doc/payments/CreatePaymentUsingPayPal.html?
Cheers!

Per-user / per-quantity recurring billing. What are alternatives to Stripe?

I am looking for alternatives to stripe's per-user pricing subscription : I need :
to charge my user a recurring payment which depends on the number of user accounts he has
to be able to change the number of users via an API, with customer validation is ok, but ideally without changing a plan nor creating a new type of plan. Check status, cancel, etc. via the API too.
Ideally with no up-front charge = fee + percentage of transaction
I found out that stripe might be a good option (see per-user pricing here https://stripe.com/docs/subscriptions) and unfortunately Paypal does not seem to offer this kind of feature (plans can only be increased by 20% each 180 days or you need to cancel previous profile and create a new one). Or am I mistaking about Paypal ?
What alternatives would exist for such needs?
What you want are Reference Transactions, in which case you run an original authorization or sale transaction, and then in the future you'd run DoReferenceTransaction with the original transaction ID and any new amount you need to process. It will process immediately without any redirection or additional authorization required at that point.
If you use reference transactions with Payments Pro (direct credit cards) then all you need to do is save the original auth or sale transaction ID to your database so that you can pull it out for the user when you need to process a future payment using DoReferenceTransaction.
For PayPal payments you'll use Express Checkout w/ Billing Agreements, which will give you back a billing agreement ID. In that case, the billing agreement ID is what you'd pass into future calls to DoReferenceTransaction.
In either case you'll need to build your own system to lookup payments that need to be processed each day and loop through them making a call to DoReferenceTransaction for each one.

Paypal Recurring Payments using express checkout

We want to use Paypal Recurring payments using express checkout. We need to cater to the described usecase
My existing package is $49/month and the next available package is $99/month. When user upgrades the package can I change their billing amount to $99/month using express checkout?
API documentation says "You can increase the profile amount by only 20% in each 180-day interval after you create the profile." Is there any workaround for this?
Looking forward to your reply.
Regards,
Richa Singh
Unfortunately, there is no way around that limitation unless you're using Payments Pro. With Pro profiles there is no limit.
With Express Checkout the only way to handle this sort of thing is to kill their existing profile and create a new one for them.
You can cancel the existing profile using ManageRecurringPaymentsProfile and then walk the user through the process of creating a new profile accordingly.
It's not ideal, but that's the only way to do it with Express Checkout.

PayPal Subscription IPN and other

I am wondering is this even possible or is there a simple way to do this. I am building a file-sharing site like Droplr or CloudApp and by fun chance unlike those two sites I do not offer fixed pricing, instead I offer pay-per-use billing on the amount of storage the customer uses up. But there is a small yearly fee for plans.
So lets say customer selects Tier 1 - Basic Plan. The plan allows for 5GB max file size, $5/yr fee and $1.00/gb
How would I go about charging the customer for this? Sure the first $5/yr can processed fairly easy and added to PayPal subscription and recurring payments, but should there be 2nd subscription for the storage?
I would recommend taking a look at the Adaptive Payments API, specifically Preapproval and Pay.
That will allow people to setup preapproved payments with you based on criteria set when the profile is created. Then you can charge them at any time with variable amounts as long as they fall within the profile's criteria.
Another option would be to utilize Reference Transactions (DoReferenceTransaction) after running an original Auth or Sale through Express Checkout or Payments Pro.

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.