gas station payment preapproval process - paypal

I'm relatively new to the PayPal API. I'm looking for a way to achieve pre-approval process like gas stations. I don't know if it's possible. Please give me some ideas good folks!
Problem: In a transaction at time t0, payment sender commits and pre-approves payment up to $X maximum to receiver at t1 where t0 < t1. Depending on actual usage, the amount charged to the sender's account at t1 is $Y where Y <= X.
Example: I walk into a typical US gas station to prepay for $40 worth of gas. I may end up only filling $30 worth, so my account is only charged $30 after the fill.
Q: Is the Adaptive Preapproval payment sufficient to achieve this? Do I need to go through a special authorization process to obtain privilege for using this API?
Many thanks you good folks!

It's just called an authorization, and pretty much all of PayPal's payment products (Classic, Express Checkout, Payflow, Adaptive, REST, etc) support it.

Related

Best way to split a payment using the Smart Payments Button

I am setting up the Paypal integration for a Clients website. He has a page where users can buy stuff that others users sell and he wants the buyers to pay using Paypal, he also wants the payment to be charged a fee, so that a percentage of the payment goes to the website owner and the remainder goes to the seller. For example:
Tom sells shirts at $20 each and i want to buy two, so i would pay $40 plus the 3% of the transaction, that would sum up to $41.2, $40 would go to Tom and $1.2 to the page owner.
How can i do this using Paypal? I have been reading a lot Smart Payments Button describes how to set a payment but the funds go to a single person, i need to set a chained payment, split payment or something alike and their docs seem very fuzzy.
Any help is appreciated.
Thanks!
platform_fees , documented here , is the analogue to chained payments. However, it is only available to PayPal partners -- i.e., probably not your client.
For separate transaction payments to more than one receiver account, there is multi-seller payments.
After completing the Paypal Integration and after tears and pain i can tell that i couldn't use platform_fees.
The implementation is complete and working but i wrote to customer support and to dev support and they just don't want you to use platform_fees so nothing will work along that path.
The solution they provide and the one they want you to use is getting all the money on your account and then splitting it using Payouts to all the clients.
Really bad solution imo but its convenient for them because they charge more transactions instead of allowing you to do everything on a single transaction.

PayPal Rest API Capture AUTHORIZATION_AMOUNT_LIMIT_EXCEEDED

For Express checkout, when I create a payment with intent=authorize.
after calculate shipping and tax, if the shipping + tax is greater than 15% of the original payment amount I got the error "AUTHORIZATION_AMOUNT_LIMIT_EXCEEDED".
It is very common that shipping + tax exceeds 15% of the original total especially for smaller and heavy items. What will be the way to go around it?
thanks,
Additional info:
when I look at classic PayPal express checkout's first step, It's not required to set any amount to log in to PayPal in order to retrieve shipping address, how do we do this with REST API?
https://developer.paypal.com/docs/classic/express-checkout/integration-guide/ECGettingStarted/#id084RM05055Z
That you may consider the PayPal InstantUpdate API, which allows you to update the tax & shipping calculation on the PayPal order review page (with AJAX).
Or alternatively, the common practice is to make the calculation before your payment request API call, on your website checkout flow (when customer fills in the shipping address and select shipping method), submit the precise amount to PayPal and then make the redirection.
You are not getting this error from DoEc, but later when you are later calling DoCapture on the authorization you generated in DoEC, right?
If so, then you are up against one of PayPal's protections for its consumers, which is that they don't allow merchants to get agreement for one price but then charge the buyer a much higher price. This is to avoid bad buyer experiences.
You basically have three options:
1) You can call PayPal CS and ask them to give you special permission to exceed the 115% limit. If you have enough history & volume with PayPal without generating disputes from users, then they may give you this permission. But this permission is usually only extended to large/trusted brands.
2) You can add an estimated tax, shipping and handling charge to the auth in Express Checkout. You would still tell the user that precise tax and shipping will be calculated when the item is shipped and their exact cost will vary. But your estimated charge should get you within 115% of the total. (Note: you usually should be able to get tax precisely at time of sale....)
3) You can decide on a fixed shipping and handling charge that allows you to cover your costs in aggregate and charge that in the EC flow. Yes, on one item that is larger/heavier than you expect you may loose $5, but on another that is smaller & lighter you will come out $5 ahead. This is what most people do.

What functions for recurring payments with different amount?

I need someone to point me in the right direction of what is the best Paypal product to use and the associated functions I need to accomplish my project.
I have a site where a user can signup for a internet phone service with a set monthly fee, lets say $200 for 1000 minutes.
The problem I have is that:
1. The first month is pro-rated so the amount may change.
2. If a user of my site goes over their allotted minutes I will charge them an overage fee in their next billing cycle, so the recurring payment may be different also.
From what I read I need to use adaptive payments is this correct, what functions should I use for creating, capturing and receiving payments.
Please help, I'm really in a bind.
There are many products that will do this. Avoid searching for "Recurring Payments" as that is generally used to refer to specific, relatively fixed payment schedules (like subscriptions) that you set up once with the payment partner (PayPal) and they execute the payments on that schedule for you. These schedules can be configured somewhat flexibly (e.g. free or reduced initial payment) but require that you can state the schedule & amounts in advance.
If you have more variable needs to collect payments from your users then you generally manage the timing and amount of the payments yourself; then you just need a mechanism for billing the user, ie a billing agreement.
PayPal products that support some form of billing agreements include PayPal Reference Transactions, PayPal Adaptive Payments, and the PayPal RESTful Payments suite.
Getting into opinion territory here, but of these three I would recommend either Reference Transaction (as the longest-standing, most mature and widely used solution) or the RESTful payments suite (as the latest and greatest solution) over Adaptive.

How would one take a cut of a transaction with Paypal in an asp.net client to client transaction?

Title probably isn't really light shedding, let me rephrase.
On a platform that i have developed in asp.net, A customer can buy a product from an online seller, both of which are from my DataBase, registered users. Now when the customer makes a transaction, i wish to take a 5% cut from the total transaction amount, and the rest is sent to the online seller. I'm not asking for code to do this, but how is this done the correct way theoretically speaking?
Should the payment go to me first, than i split it into 2 payments 5% for me 95% for the seller, or maybe is there some built-in Paypal feature that enables this?
The Express Checkout API's will give you more freedom to integrate into your application a little more tightly, and the experience for buyers is a little nicer. It allows you to setup a parallel payment where you have multiple receivers on the transaction (with whatever amounts going to each that you specify) but the buyer will be able to see the split during the checkout.
If you want to hide the split you could go with the Adaptive Payments API instead. Within that, you can do parallel or chained payments, or even a delayed chained payment. Chained payments will hide the split from the buyer during checkout, and a delayed chained will be only give the money to the primary receiver until you specify that the secondary payment(s) should be sent by calling the ExecutePayment API.
Yet another option would be to use Payments Standard or Express Checkout to have the money sent to a single account, and then you could forward any payments necessary using the Pay API just for a single payment. This can be automated from within an IPN solution.
I realize that's a pretty broad answer, but it really was a pretty broad question.

Divide Paypal Standard Payments to two separate accounts

I have a Paypal Standard gateway set up which pays the business account specified in the input no problem. I would like to make it so that at the same time, the customer is also paying a fee to the website - so they're paying our Paypal account a fee.
E.g. User buys a product (clicks Buy Now)
Goes to Paypal screen, and when the customer confirms the payment it will send the following money:
£10 - to the sellers account
£1.50 - to our account (fee)
I've heard a few methods such as Chain payments, Parallel payments and x.com says Adaptive payments, but I've not been able to understand the best method for doing this with a Paypal Standard integration.
Can someone point me in the right direction with this? Thanks in advance!
Adaptive Payments is a general term for the API's that handle this sort of thing. Chained Payments and Parallel Payments are under that same umbrella, so to speak.
Both chained and parallel payments will split your payment between multiple accounts like you're after. The primary difference is that the payer will see the split during checkout with a parallel payment, but you can hide that with a chained payment. You can also delay the secondary payment(s) using a chained setup.
If you happen to be working with PHP I'd recommend using my PHP class library for PayPal, which will make all of this very simple for you. I even offer 30 min of free training if you need help getting started, which is generally plenty of time to get you going if you understand how to work with array data.