PayPal Customers are charged even after Subscriptions are Cancelled (screenshot included) - paypal

in the past few weeks we have seen our customers be charged AFTER they have cancelled their subscription in PayPal.
Example:
Customer goes to our website and adds subscription with 30 day trial
to cart.
Customer is redirected to PayPal for authorization.
Customer is redirected back to our website.
...10 days pass...
Customer cancels their subscription/trial
...30 day trial ends...
Customer is charged even though the subscription/trial is cancelled
Actual Example:
Customer cancels subscription on January 17 but is still charged February 16. See screenshot:
Any ideas what's going on here?

Related

Double Payment in PayPal Subscriptions

I have a problem with PayPal recurring payment because my recurring payment is set in MONTHLY but after registration, I encounter double payment. The date of my registration is July 27, 2020, but instead of the next payment will be due next month PayPal. They charge me on the next day of my registration.
Please see the below image for the email from PayPal of my transaction today.
If you set an "Every 1 month" cycle PayPal Subscription to bill immediately, the first payment will bill on the following day.
If you have a setup_fee, it will bill immediately at checkout time.
If both are happening, then you need to get rid of either the setup_fee, or the first cycle of billing.
The way you get rid of the first cycle of billing is to begin with a trial sequence of 1 month that is 1 cycle long (and has no charge)
Then, after the 1 month trial, the regular periods of billing every 1 month can begin.

PayPal subscription not working properly when one account has been used for two users

We have tested with a personal account in sandbox and live for three users for paypal subscription.After purchasing three subscription we cancelled one of them and continue with other two.So after one day, two of those should renew the subscription and continue and another one should not renew.For example those three accounts are A(purchase time: 4apr 2.30pm ),B(purchase time: 4apr 3pm),C(purchase time: 4apr 3.30pm,cancel time:4apr 3.45pm). Say we have cancelled account C. So on 5 apr at 2.30 pm A should renew,at 3 pm B should renew and 3.30pm C should cancel.But the problem we are facing is that those renew and cancellation process are not happening at the correct time.A is not renewed at exact 5apr 2.30pm. B is not renewed at exact 5apr 3pm.C is not cancelled at exact 5apr 3.30pm.All those actions are fired around 5apr 4.30pm(which is not right).So that is an time error.We set notify url in the paypal form and also in the business account for renewal functionality in database.
Here is the paypal form which we are using.
Note: We have used a single paypal account for all those three users.
So if any one have a solution for this please post here.Thanks in advance.
PayPal doesn't guarantee that subscription payments will happen at a particular time of day -- only that they will happen on the day that they're supposed to. Likewise, it's virtually impossible to predict exactly what time a subscription payment will take place.
If you need payments to happen at a particular time of day, you might consider establishing a billing agreement with the buyer and running a reference transaction against the billing agreement at the proper time. More information on billing agreements is available here: https://developer.paypal.com/docs/classic/express-checkout/integration-guide/ECReferenceTxns/

How Do Payments Occur for Reactivated PayPal Recurring Profiles?

Consider the following scenario. A PayPal recurring profile is set to bill Smith $10 on the 6th of each month.
In April, Smith's credit card expires and the recurring profile is automatically suspended.
Smith then lets his subscription lapse for a few months.
Then on September 25th he reactivates the profile (either through his PayPal account or my website via API).
Will I receive the payment of $10 immediately upon the reactivation, and a new schedule will be automatically set up to bill Smith on the 25th of each month, or will he be charged only on October 6th, as per the original schedule?
Thanks.
From the PayPal Payments Standard development guide, it indicates that by default if the subscription payment fails, PayPal will try again 3 days later, then a final attempt 5 days after that. If all three attempts fail, then the subscription is canceled.
The subscription is not suspended, so if the customer comes back several months later, they will be setting up a new profile, so you would receive the $10 on Sept 25, and the new billing cycle will be the 25th.
If the subscription was suspended by you (the seller) and then reactivated later, then it will resume on the next scheduled payment attempt. If the subscription is suspended by PayPal due to failed payment attempts then it cannot be reactivated.
Here is a little more information on payments that are failing from PayPal's Documentation:
To avoid overlapping payments, there are no reattempts if another payment for the same subscription is scheduled within 14 days of the failed payment.
If a payment fails, notification emails are sent to both you and your subscriber.

How do I handle non-recurring Paypal subscriptions? Subscription expires immediately

I'm working on a site that does non-recurring subscriptions, currently testing it on Paypal Sandbox. Let's say duration is 1 week (t3 = W, p3 = 1). I didn't include src and srt variables in the form. From what little information I have read related to this, a non-recurring subscription counts as a one-off and immediately expires the subscription. I want it to still lapse the duration and subscr_eot be called one week later. The application is run on Java/JSP.
This sounds like it needs to be handled on your side, not on PayPal's.
You receive a payment for your services, and attach an expiration date to that user in your database. He's only allowed to log into your site before his account expires.
So, I now devided the fee into two parts: eg, the one year fee is $10, than I charge $9.95 as the one year trial amount a1, and $0.05 as a non-recurring daily fee (a3) for only one day.
Seems that does it... at least the EOT is not immediately send...
Just have to explain your customers that this awkward payment plan is because of a Paypal peculiarity...

Subscriptions with Paypal IPN

I am adding subscriptions to a site using Paypal IPN which works very well, I can successfully create a new subscription and verify it. The subscription has a two week free trial. The guide was unfortunately a little vague on subscription statuses.
At the moment, the users account gets subscribed status once subscr_signup or subscr_payment is received and gets removed when either subscr_cancel or subscr_failed is received. I believe this is correct but it's best to make sure.
Also what is subscr_eot? the IPN guide describes it as "subscription’s end-of-term." Does this get triggered after the trial period is over?
subscr_eot is sent when a user's last paid interval has expired. subscr_cancel is sent as soon as the use cancels the subscription - for example:
User signs up on day 1 for a subscription which is billed once a month.
subscr_signup is sent immediately, subscr_payment is sent as soon as payment goes through (usually immediately as well).
On day 13, the user cancels. subscr_cancel is immediately sent, although the user has technically paid through to day 30. Cancelling at this point is up to you.
On day 30, subscr_eot is sent - the user has cancelled, and this is the day which his last payment paid until.
Not much changes with trial subscriptions - if a user cancels before a trial subscription is up, subscr_cancel is sent immediately, and subscr_eot is sent at the end of the trial.
Also, one interesting detail is how subscr_eot works with subscr_failed.
It looks like subscr_eot comes after the FINAL subscr_failed. So if in your account you set it to automatically retry failed payments 3 times, then it should go like this:
first failed payment => subscr_failed
second failed payment => subscr_failed
third failed payment => subscr_failed and subscr_eot
so basically in your code you can set subscr_failed to trigger an email like
hi user,
please take moment to check
your payment info, you may need to
update the credit card expiration
date, etc. You still have access,
we'll try again in a few days.
And setup subscr_eot to actually turn their subscription off and trigger an email like
Sorry, we still havent' gotten payment
and have taken your profile down. You
can still reactivate it by logging in and updating your payment info
Basically this is the "nice" way of doing it so customers have a grace period, and their account isn't shut off unexpectedly just because of an expired credit card or something like that.
The thread posted by Chris has been updated recently.
Sometime in 2010, PayPal stopped using subscr_eot when a user cancelled their account. After a number of complaints, they reinstated this, but took 6 months to do so. All this means is that you can once again handle your subscription notifications as described by Peter in the accepted answer.
From a PayPal representative:
subscr_cancel means the profile is
canceled and there will not be future
payments. However, if the buyer has
already paid for the current billing
cycle as they are charged up-front,
then you can use the subscr_eot to
terminate the profile.
Still unsure what happens in the event of multiple failed payment attempts, however. PayPal documentation at the moment is terrible.
It depends on the account if it is new or not whether subscr_eot gets sent, which is kinda beyond me?
I haven't found the proper way to manage subscriptions yet. Calculating the dates on the server could go wrong very fast if there is a delay in payment.