Paypal Merchant Rate pricing info via REST API - paypal

I looked over the documentation here https://developer.paypal.com/docs/api/ but I'm still not finding the right request that will return what tier of Merchant Rate a particular user has.
For reference: Paypal can charge $.30/transaction and (2.7%, 2.5%, or 2.3%) of the dollar-value of a transaction. I'd like to request the current tier a particular merchant is being charged so I can run an estimated calculation on newly authorized or pending authorization transactions in my app before Paypal actually finishes processing and charging the fee.
The other option (more painful) is to run a reverse calculation on the most recently completed transaction* to identify the most recent fees being charged, then store that as the current tier and update it on a schedule.
Anyone tried to get this info or found a workaround successfully?
*example calculation
If the most recently completed gross transaction amount was 100,
Fees charged were 3, net settlement was 97
Then 3.00 - .30 = $2.70
2.70/100 = .027
Therefore, current fee tier is 2.7 percent + .30
Then, I'd store that info.

Related

How to charge prorated rate on paypal subscription?

Trying to set up a subscription via paypal rest API. I am looking on a solution on how to modify the subscription and charge the specific fee in 1 checkout. I found a way to change the quantity on the subscription, but the problem paypal does not prorate.
So for example, if user subscribes today with 10x of product and then changes the subscription to 20x of product, the paypal will not charge the prorated fee. So how to handle that?
This is an official msg from paypal:
The new price is effective starting on the next billing cycle. Proration and one-time fees aren't automatically supported. If you want to prorate the difference at the time the plan changes or charge one-time fees, you need to do these manually. https://developer.paypal.com/docs/subscriptions/customize/revise-subscriptions/
How do I charge it manually?
How do I charge it manually?
Use setup_fee to simply add an additional fee, or use a 1 cycle trial period to modify the amount of the first payment, which can be lower or higher.

Paypal auto renewal and maximum limit

We are building a web application where a company can buy a license which costs $300 and extra users which cost $10 for one year. Suppose company bought a license and 10 users. They will pay $300+$100 = $400.
After some months if the company wants to buy extra users, they can buy those but they will have to pay remaining days cost at the prorated basis. Like if they buy 1 extra user after 6 months, they will have to pay $5.
So after the license is expired, we want that to be auto-renewed with license cost and users cost for next year which will be $400+$10 = $410. Is there any API for such renewal process?
Also, we are using Paypal API based approach in the application and hence for payment, we need not go to Paypal's gateway. Can I know the maximum limit for such transaction? Is it $10,000?
By default PayPal's limit is $10k but you can call and request they raise that limit.
For what you've outlined it would be best to use Reference Transactions. This way you won't have any limitations on when you process a payment or what amount to process.
For regular PayPal payments you'll need to setup a billing agreement and use the billing agreement ID in future reference transaction requests. For direct credit card you don't need a billing agreement.

Paypal what is the different between future payments and orders

I have an IOS application that allow customers to purchase items, the items are available in about a week or 2. I'm trying to understand which payment method is fit my needs.
I read the documentation of Paypal mobile sdk and Paypal rest api and I don't understand what is the different between :
1.Future Payment - https://developer.paypal.com/docs/integration/mobile/make-future-payment/
2.Place and Order - https://developer.paypal.com/docs/integration/direct/create-process-order/
Does fureture payment place the funds on hold ?
Future Payment
Lets you set up a system where you can charge a PayPal account on demand. No funds are held, you're just given a token to process future charges, after the client authorizes it. This used to be called a Billing Agreement under Classic.
Orders
Basically lets you charge an authorization up to 10 times (up to 115% of the total amount). You can run this as an authorization to hold funds up to 29 days.

How can I find the Amazon FPS fee assessed for a transaction?

My application uses Amazon FPS to charge a user. After setting up a pipeline and receiving a token, I then issue a Pay request with that token. The response contains a Transaction ID and a Transaction Status.
http://docs.aws.amazon.com/AmazonFPS/latest/FPSAdvancedGuide/Pay.html
Then I wait to receive an Instant Payment Notification, which has several fields, including the total transaction amount.
http://docs.aws.amazon.com/AmazonFPS/latest/FPSAdvancedGuide/APPNDX_IPN.html
For this transaction, Amazon FPS subtracts a fee from the money my account receives. I need to record the fee for the application's bookkeeping.
Where can I find the amount of this fee?
I could attempt to calculate it, but with rounding that seems error-prone. Additionally, Amazon's fee schedule varies with scale: higher-volume applications are charged lower rates. Attempting to reproduce that math accurately sounds like a disaster waiting to happen.
According to the documentation, no fee information is sent in an IPN - as you've discovered.
The only way to get the transaction fee is to call GetTransaction. This call returns a TransactionDetail which has an FPSFees property.

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.