Pre-approved/Subcriptions Payments in Adaptive payments in PHP - paypal

I am really struggling a lot with the steps of "HOW TO DEDUCT MONEY WHEN A USER PRE-APPROVED/SUBSCRIBED" and the same amount of money will get deducted every month of the year that the user has subscribed.
For Example, In Renting process for a property.
And i also got to know that adaptive payment in paypal supports monthly subscription ?
Thanks in advance.

You make a call to the Preapproval API to create the preapproval profile and get the preapproval key.
Then you can make calls to the Pay API using the preapproval key and the money will be transferred immediately without further approval at that point.
So in your case you would need to put together a cron job or something on the server that would automatically pull payments that should be made each day and hit the Pay API for each one.

Related

How much time paypal takes to complete transaction

I am integrating PayPal in my iOS app.
I don't have any idea about what time its take complete the transaction.
Means if a customer has made a purchase then after how much time the certain amount is deducted from customer's account and transferred to mine?
Instant. The money is in your PayPal account before PayPal responds to the API call. (Presuming you request instant payments, that is, instead of just placing an order or auth etc.)

Is there a way to create postpaid subscription with paypal?

Is there a way to create postpaid subscription with paypal ? Basically what I want is to charge some amount at the end of the month from user paypal account.
That amount of money depends on how much minutes he spend on our service during that month...
With Payments Standard Subscriptions you can't change the amount billed. Using Recurring Payments through Express Checkout you're able to change the amount but only by 20%.
If you set up a billing agreement through Express Checkout you can use the Reference Transaction API calls to bill a customer whatever amount you need to. There are additional features that need to be enabled on an account to allow you to use Reference Transactions.
In the SetExpressCheckout call you define the billing agreement terms and when you submit the DoExpressCheckoutPayment API call you define the exact same billing terms that you included in the first API call.

Paypal RESTful API: Is there a method to store a "Paypal" payment like a credit card?

I'd like to store a Paypal transaction for a long term authorization (greater than 28 days) to be finally captured when an item ships. (That way, there's no risk as no money has exchanged hands at that point.) It's easy to do with credit cards by indefinitely storing the credit card via the vault and charging it when the time comes, but is there a method to indefinitely store a Paypal account to be charged when the time comes?
Right now, the only way I see that possible is through Preapproval in the Adaptive Payments API, but is there a method to do the same in the RESTful API? If not, is it planned? Is/will it be exactly like the current Preapproval API where it might fail because it uses the exact funding source or will it be more guaranteed? (I understand if a credit card is full, or user deletes their Paypal account, but that should be a very rare event.)
More Info: The full amount is known to the consumer in advance, the general timeframe is known to the consumer in advance but not the exact date, the event or item could be cancelled so authorizations could be voided (therefore no money ever exchanges hands), and the money will go directly to me and not in escrow or chained with any other Paypal account.
yes it is in the works. It would be more like a long term OAuth access-token than a vault id for credit cards - since it's a user's approval to charge their PayPal account in the future. I will try to find the exact release plan but AFAIK it's some time around July time frame.

PayPal PreApproved Payments

I am using PayPal PreApproved payments for my crowd funding website, where project backers are only charged if the project is successfully backed.
I am worried that high rate of payments will fail when the PayPal API tries to collect the funds when a project is successful:
a backer might not have any funds in their PayPal account
a backer might close their account once the project is successful (to intentionally stop payment)
a backer might remove/cancel their preapproved payment
etc...
There are a number of ways that the payment could fail which would mean that the project owner would not get their funds.
Can anyone suggest a way of tightening or securing payments. Please note, that PayPal will only allow you to use PreApproved payments for crowdfunding. Please also note that project owners need to be able to receive the funds from my site. Sometimes, these funds can be as small as $10 or up to $10,000 so we need to use PayPal to pay them as there is not other method of getting the funds to the project owner
I've implemented Paypal Adaptive payments and used them for payments at http://www.wethetrees.com and we had the exact problems you are describing. The capture rate is almost random, we were down to 35% with one campaign and had to manually send all backers invoices.
When capturing we had backers with closed/unauthorized accounts, insufficient funds, unavailable payment methods etc. We switched to just doing direct capture for a while, which is great since we get 100% of all pledges, but Paypal closed our account without notice when one of our campaigns mentioned the word "Cuba".
The solution in the end was to scrap Paypal so now we're using Wepay and Dwolla, and we're considering Bitpay (Bitcoin) as well. Seems to like Paypal wants to kill crowdfunding or doesn't understand it. Anything less than a 90% capture rate is totally unacceptable and will cause projects to fail.
Preapproval isn't the only thing they'll allow you to use. That's just one part of the Adaptive Payments API, but you could go with a delayed chained payment, too.
This way your account can be treated sort of like an Escrow. You can use the Pay API to create payments in the system that are split between receivers accordingly. Only the primary receiver would get paid at first, though, and then you can call ExecutePayment to submit the secondary payments from the primary account within 90 days.
This way the primary account holds all of the funds so they're available to pay out when the goal is reached. If the goal is not reached the payments could be refunded.

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.