Paypal preapproval key validity - paypal

We are using Paypal pre-approval API on our site. According to this
https://developer.paypal.com/webapps/developer/docs/classic/api/adaptive-payments/Preapproval_API_Operation/
"Ending date cannot be later than one year from the starting date".
How can we implement pre-approval payments to be valid more than one year?
Is it possible? Is there necessary to request pre-approval key again after one year? Or is it possible to do automatically?

You have to talk to PayPal about getting that limit lifted. From your link:
Note: You must specify a value unless you have specific permission from PayPal to omit this value.
If you omit this value then the preapproval will not expire. If you can't get approved for this feature then you will need to reauthorize every year, as currently there is no way to refresh a key.

Related

How to set up a PayPal monthly payment with varying amounts

I'm currently building a Flutter application with an unusual subscription model. The idea is that depending on how the user uses the app, they would seamlessly be charged a different amount of money each month. I plan to use PayPal, and I've looked into their REST API, this is what I found: https://developer.paypal.com/docs/api/payments.billing-agreements/v1/#definition-agreement_details
In this API endpoint, I'm assuming I can setup a Billing Agreement for each user of a specific amount_range, where once the user agrees to the payment, I'd be allowed to seamlessly charge each user a varying amount, within that range.
Am I correct in my conclusion?
Would this be the best approach?
if not, can you point me in the right direction for how to achieve what I'm trying to do?
I do not want to use the deprecated API. it's very important to be using REST API.
Thank you very much.
The Billing Agreement API you link to is deprecated.
Using the current PayPal Subscriptions, if you create a unique Plan for each subscriber, you can update that Plan > 10 days before their next billing date, and they will receive an email notification of the new amount.
You can use webhooks to keep track of active subscriptions and the last time you've been successfully paid for one.
If you need an internal ID for reconciliation, set the parameter custom_id when you first create the subscription; its value will be returned in webhook events for that subscription.

How long is a payment executable?

When I create a payment and locally store the paymentId and payerId, is it possible to execute the payment two months later?
I want to allow a free testing phase for an application and execute only if the user still wants to use the product after two months.
Basically, PayPal guarantees to capture the funds up to 3 days from the day of authorization. I remember we had to automatically approve PayPal orders that required manual review or we would lose them after the 3-day authorization period.
Looking at their documentation they explain that an authorization can be re-authorized in a 29 day period.
Check their autorization period and honor period documentation here:
https://developer.paypal.com/docs/classic/paypal-payments-standard/integration-guide/authcapture/#honor-period-and-authorization-period
Having said that, I believe that the capability you're looking for is called a "billing agreement" or "reference transaction". It allows to create an agreement with the shopper (on a 0$ payment) that can be charged at a later time. This feature requires special underwriting by PayPal, and is not easily approved. See documentation here:
https://developer.paypal.com/docs/classic/express-checkout/integration-guide/ECReferenceTxns/

Charge Paypal users without letting them enter their password again

We want to offer payments using paypal within our web-app concept. A few days ago i took my first ride using uber in Germany. They provide to add paypal as payment method and after every ride i just can pay using paypal without entering my credentials again.
How to implement a payment process like this?
We want our users to add paypal as payment method and then - X days aftersignup (eg. when we found the right product for him) we want to start the subscription.
The thing is that these X days varies from user to user so we cant use a billing agreement with a fixed start date and due to the fact its a subscription model we cant use just a single payment authorization.
I found the solution: Paypal calls this feature "Adaptive Payments". You can read it here: Adaptive Payments API Reference

Paypal: Is there a way to check a cart right before a user pays?

Is there any way currently for Paypal's API to send my site an authorization request before completing a user's payment?
I think the answer here would be that there is no way to do this, but one can set "authorization" as a cart parameter instead of "sale". This still leaves the question of how to complete the authorization in the callback.
May be this would clarify your doubt up to a certain extent.
Authorization & Capture starts when your buyer authorizes a payment amount during checkout.
For example, you can use the PayPal Express Checkout API with the PAYMENTACTION element set to Authorization or Order.
After your buyer completes checkout, you can then use the payment’s transaction ID with Authorization & Capture APIs. You can:
Capture either a partial amount or the full authorization amount.
Authorize a higher amount, up to 115% of the originally authorized amount (not to exceed an increase of $75 USD).
Void a previous authorization.

Get Transactions associated with a Recurring Payment Profile in Paypal

I have gone through nearly all the question related to Recurring Payment using Paypal and have not found a solution to my problem.
We are implementing a system that is subscription based on a monthly basis (fixed amount). We do not want to store CC details for security reasons, hence we are trying to use Website Payments Pro from Paypal.
Once a user agrees to recurring payments, we are creating a RecurringPaymentProfile for that user and are storing the returned Profile_Id for the user.
Now we need to get information about all the transactions related to this Recurring Profile_Id. This information is available when we login to the Paypal account but this needs to be automated so that the application is aware of all the payments and also of the current subscription of the user.
We have found two methods (possibly) to implement this.
1. IPN (Instant Payment Notification, for this we will have to create a service to listen to notifications, which seems to be cumbersome and is more informational than we require)
2. TransactionSearch (but this returns transactions for the Paypal account and not Profile_Id)
Since we just want to know the transaction history associated with the Recurring Profile and whether this months payment was successful (implying the user is active member), what is the best method to implement this ?
Thanks,
You're looking for the GetRecurringPaymentsProfileDetails API Operation. This operation will allow you to view a majority of the details associated with a recurring payment profile using a valid PROFILEID.
Relevant detail fields you may be interested in:
LASTPAYMENTDATE
The date of the last successful payment received for
this profile, in YYYY-MM-DD format.
LASTPAYMENTAMT
The amount of the last successful payment received for this profile.
FAILEDPAYMENTCOUNT
The total number of failed billing cycles for this profile.
NEXTBILLINGDATE
The next scheduled billing date, in YYYY-MM-DD format.
NUMCYCYLESCOMPLETED
The number of billing cycles completed in the
current active subscription period. A billing cycle is considered
completed when payment is collected or after retry attempts to collect
payment for the current billing cycle have failed.