PayPal Rest API Capture AUTHORIZATION_AMOUNT_LIMIT_EXCEEDED - paypal

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.

Related

PayPal Authorization & Capture and retaining a service tax

I am working on the paypal integration for rental website. I have completed the integration for the payment. Now I am struck on one point: my concern is, I have completed the payment process using Authorization & Capture, now I have to write code to apply service tax on the payment. The service tax will go to the business owners account and rest payment will get returned to the end user's account. How can I implement this?
Reference URL that I have used::
https://developer.paypal.com/docs/api/quickstart/capture-payment/
Thank you
I see several possible designs:
Design #1: You authorize the payment and do not capture it, or do a partial capture for the service tax, holding it in a pending state (pendingreason=authorization) for up to 29 days, and capture any remaining desired amount (just service tax or full pending balance) within 29 days.
Design #2: You capture the full amount at checkout time, and do a partial refund (minus the service tax) within about 180 days, or whatever the refund term is on your PayPal account.
Design #3: You implement Order-Authorization-Capture, also known as AS2, which is even more complex but can give you a longer window than 29 days if PayPal enables this on your account. They must enable it, you don't get it by default.
A disadvantage of Design #1 is that authorizations do not hold funds on the customer's funding source for long -- so after some days, they will no longer be reserved, and a future capture on e.g. day 29 may fail.
A disadvantage of Design #2 is that you may incur some fee for doing that partial refund. I am not certain what the fees are for partial refund, but PayPal refunds are not as free as they used to be.
The disadvantages of Design #3 are that it is more complex to implement and you also need the help of someone experienced on the PayPal business support or account administration side to turn on features like a window longer than 29 days, or multiple captures per order.
So, those are some tradeoffs to consider.

Is it possible to have a user agree to an amount, then take a deposit up front?

I'm trying to create a process where a user would agree to a full amount ($100), but only have to pay a 20% deposit up-front ($20) at the time. Then at a later time, trigger the remainder of the full amount ($80) to be billed.
Would this be possible to do with PayPal? I would like to avoid the user having to come back into PayPal to fulfill the final payment.
Oh well,PayPal has this one useful product which they named it as Billing Agreement - Reference Transaction where you can set up an agreement with the buyer using Express Checkout. In this case, you set up an agreement with purchase of $20% (assumed $20)of the full amount, and then after a later time, you billed the customer using the agreement you established to charge the remainder 80% (assumed $80).
This is the link where you can get more understanding what I just suggested above.
Reference Transaction - Billing Agreement : https://developer.paypal.com/docs/classic/express-checkout/integration-guide/ECReferenceTxns/

Express checkout shipping rates missing

Unless I'm missing something there doesn't seem to be a way to calculate shipping based on the customers address using the latest express checkout.
I'm aware that it can be done using the old legacy nvp instant api callback.
Just seems to be slightly ridiculous to not have this if this is the case.
It's one of those things to account for. Sales tax is another - also dependent on "where".
You'll get the address after a Paypal user "accepts" (aka "approves") your Paypal payment request. You can make adjustments not exceeding 115% of the original total of the payment originally requested.
Usually ok for sales taxes, but depending on your needs, may not work for shipping (e.g. can't do "flat" shipping rates, international shipping or if US, outside of continental US) so may need to account for it in your checkout flow e.g.
ask user for zip/country (data you can use for "estimate") prior to payment flows
perhaps restrict and/or make adjustments, if needed (along the 115% limit).
Hth...
I've made contact with Paypal who have advised they are working on a solution similar to the instant callback api that will work on the latest express UI.

Paypal Adaptive Payments Sales Tax

Using Paypal's Adaptive Payments API, I am selling physical items that require a ship to address - on the Paypal purchase page I inform Paypal to have the customer select an address. If I have sales tax rules set up on my merchant account, how do I get Adaptive Payments to add sales tax to the order - I hand it the subtotal, and based on the state in the address the user selects, it calculates and adds the sales tax to that subtotal for a grand total?
Isn't this the entire point of Paypal - customer provides this information to Paypal, and then provides me only the information I need for the transaction?
You're right but AFAIK, since PayPal does not want to keep tax rates which differ for countries and type of goods you ship. So, you can either try using
GetShippingAddresses
api call before executing the payment, and add
totalTax
information during
SetPaymentsOptions
call..
Doesn't seem to be able to compute this on its own - I ended up keeping a hack of a solution in place. Prompt the user to provide the state to which the goods will be shipped to, and then calculate the tax on my own before sending the order total (subtotal + tax) to the Paypal workflow. Disappointing, IMO.

Recurring Payments in PayPal

I am trying to use the Recurring payment API offered by PayPal.
I have a scenario which I am not able to address directly. It goes like this.
We have a website where we sell some services. Now the services are charged per user license. A user can buy/cancel user license in between. We want to offer the customer a recurring billing option. We have to notice here that the amount may vary each billing cycle based on the number of user licenses the customer uses during that cycle.
Is there any way I can achieve this using PayPal recurring Payment API's.
I realize this is a very old post, but it still shows up for Google searches, so I thought I'd add:
Paypal does allow you to do this now, using their new adaptive payments api.
Authorize.net also has a service that might work called Customer Information Manager.
The recurring payment option is a fixed amount that the customer pre-agrees to pay each month (or period). To do what you're trying to do, a customer would have to pre-agree to pay whatever amount you decide to charge at a later time. This means pre-authorizing an unknown payment amount, which will not be allowed by any payment service.
Your only options are:
Bill the variable amount each month (i.e. no subscription).
Set up a subscription where the monthly amount is the maximum that could potentially be billed, and then refund the difference each month.
Good luck with #2 - I would never agree to such a thing as a customer, personally.
What you're looking for is covered in the UK by the Direct Debit system, however given the potential for abuse it's very tightly controlled and there are a lot of restrictions and regulations governing it.
I'd strongly suggest you just set up a monthly invoicing system that just bills the client each month.
I don't know its meaning full or not as it is a very old post.
Instead of creating recurring profile on PayPal Server, You can store the customer's credit card on the PayPal using REST API: https://developer.paypal.com/docs/api/#vault then every month you can fetch it and charge it like recurring Payment Or When client is no longer with the services then just remove its card from PayPal.
I suppose Authorize.net SIM method also does the same.
Hope this make sense.