We are setting up our marketplace transactions with PayPal and thus want to use chained payments for simple processing and to prevent being a funds aggregator.
As we want to capture buyers payment method once (upfront) and allow them to buy services from sellers later without entering their payment details every time, PayPal has 2 options: 1) pre-approvals, or 2) billing agreements.
However since buyers should also be able to pay with credit card, we can only use option 2) billing agreements.
Is our understanding correct that billing agreements are not compatible with chained payments?
Also, if they are not compatible, how can we go about it to allow for:
- Users to pay with credit card
- Not have them enter the credit card details every time at the time of purchase
- Use chained payments (prevent funds aggregation which would happen if we receive funds first and payout in a second operation)?
Thanks!
Preapproved Payments is part of the Adaptive Payments platform. Depending on what you're doing with the transaction when the time comes to submit a payment with a preapproval profile you may use a simple payment, parallel payment, or chained payment.
What you're after, billing agreements, is part of the Express Checkout API or Payments Pro. The actual term for what you'll be working with is Reference Transactions.
If you process a credit card directly over Payments Pro (either sale or auth) then you can simply use that transaction ID you get back with the DoReferenceTransaction API at any point in the future to process another transaction automatically.
If you process the original sale or authorization with Express Checkout, that's where you need to include billing agreement parameters in your SetExpressCheckout request to create that billing agreement, but then you'd still use the DoReferenceTransaction API to process future payments.
Related
We use the Braintree Dropin UI with paypal enabled.
It works fine except for one thing: if the user has a balance at paypal, it does not give them the option to pay with their Paypal balance. They can pay with any payment method they have registered with paypal (CC, bank account), but not with their balance.
Is there a special option in the dropin UI for this? Something we need to setup in the BT control panel?
Full disclosure: I work at Braintree. If you have any further questions, feel free to contact support.
If you're using our PayPal Vault flow, buyers won't be able to choose balance as a funding source, however, PayPal will always use the balance first with all future transactions. Braintree PayPal Vault flow uses PayPal's Billing Agreements feature and PayPal requires customers to have a funding source other than PayPal balance during the Billing Agreement sign up process to ensure costs can always be covered.
With that said, once a customer goes through the PayPal Vault flow, PayPal will always use the balance first to complete payments in future, so when using the Vaulted payment method, PayPal checks if the user has any funds in the balance and other funding sources such as credit cards are only used if the user's balance can't cover the payment. They should be able to use their balance if they have sufficient funds on subsequent charges.
Let me first explain how our web site works.
Buyer purchase a service on our marketplace via PayPal, and then wait for approval from service provider
If provider doesn't approve or time lapse, then we (the marketplace) refund to buyer
If provider approves, then we (the marketplace) hold the payment until the service is provided by the provider
If there is no dispute between buyer and seller after 3 days, we will pay the fee (deduct marketplace fee) to the service provider.
Initially I was thinking to perform all the above manually, but after researching more about PayPal, I found that adaptive payments could have automate some of our processes.
Adaptive payment version:
Buyer make a preapproved payment to us (the marketplace)
If provider doesn't approve, then we (the marketplace) just cancel the payment
If provider approved,then we (the marketplace) execute the preapproved payment, and then go through delayed chained payment
3 days after the service is done, and no dispute, execute the delayed chained payment to pay provider
However, there are some limitation in this:
Our buyer may buy the service more than 90 days ahead, but delayed chained payment only hold the payment for 90 days.
While it is possible for us to manually send the fund to provider, but it is possible to write some code to automate the lapsed delayed chained payment?
After googling about preapproved payment, some site owner complained that when they actually execute the payment, many buyer actually don't have sufficient fund or for some other reason that can fail the payment.
Is there any solution to lock in buyer payment first, then proceed it after service provider approves the request. So we (the marketplace) can hands off on the refund part.
You can use Paypal adaptive payment.
First execute pay call with actionType of PAY_PRIMARY and wait for 3 day to pay to your secondary receiver (Provider).
Here is link to paypal documentation
We want to offer a online service that uses a credit system.
Initially we want to offer x amount of credits as a free trial. To activate this trial the user agrees to a subscription via PayPal (but does not pay anything at that time)
1) Is it possible to set up using Preapproval API, if not is there a better suited API
2) Can it be setup through PayPal so that the user does not need an existing PayPal account or to create a new one. If there is a way to do this other than preapproval API please let me know as well.
3) We want the billing to be automatic when the user credits run out. Therefore there is no set time, e.g 1 month, when each user is charged. Is this possible?
Any help would be very much appreciated, thanks
You have a few different options:
Reference Transactions (no cost requires approval from PayPal)
Enhanced Recurring Billing/Automatic Payments (cannot be used with a Pro or Advanced Accounts) Has a cost associated with it ($19.99 monthly)
Recurring Billing with PayPal Payments Pro Payflow or PayPal Payments Advanced. Has a cost associated with it ($10.00 monthly in addition to the cost of the Payflow/Advanced account)
Here are the details from the three different options:
Reference Transactions, which does require that you call into PayPal Customer Support and that your account is approved for this feature.
Reference transactions does allow for guest checkout billing.
From the PayPal Documentation, Recurring payments using reference transactions enable you to handle payments for varying amounts of money on a varying schedule.
Reference Transaction Guide
Enhanced Recurring Billing/Automatic Billing
If you do not plan to uses PayPal Payments Pro or Advanced at any time you can get setup with Enhanced Recurring Billing/ Automatic Billing
Automatic Billing Guide
From the PayPal Documentation:
You can create Automatic Billing buttons for your website by using a tool on the PayPal website. If you're a power user, you can write the HTML code for PayPal hosted Automatic Billing buttons yourself.
With Automatic Billing buttons, buyers agree to pay you automatically when you bill them, up to a limit that they choose. You set the parameters for the limits they choose. Automatic billing allows Guest Checkout, so you can bill a credit card.
PayPal Payments Pro Payflow/Advanced
For PayPal Payments Pro Payflow/Advanced you can setup Recurring Billing as well. Payflow Pro allows you to process credit cards directly. Here is the information on Recurring Billing through Payflow:
Payflow Recurring Billing
I am building a project that might be a bit complicated and I have to use paypal for this.
There are many users in the app and they can be receivers, payers or both. The receivers/sellers provide certain services and the payers have to pay their sellers monthly. So if the user agrees to pay, the paypal will charge him monthly and automatically. The users need to register as paypal member and get authorized from paypal beforehand so I can use their emails for the transactions in the app.
I am thinking of using paypal express checkout with recurring apis, but I am not sure if it is the right decision and no clue if it is working. Any suggestions? thanks.
You could use either Express Checkout, Subscriptions w/ Website Payments Standard, or Enhanced Recurring Payments w/ Website Payments Standard. Either one of these would allow you to set up recurring payments. Enhanced Recurring Payments is the only one that would have a monthly charge associated with it. Express Checkout and Subscriptions w/ Website Payments Standard would not have a monthly charge. However, Enhanced Recurring Payments allows the buyer to sign up for a subscription without having to have a PayPal account, and they can just use their credit card. Express Checkout and Subscriptions w/ Website Payments Standard require the buyer to have a PayPal account. They can still be billed via credit card, but they have to have the credit card attached to their PayPal account. The subscription would bill the PayPal account, and the PayPal account would pull the funds from the credit card on the account.
With a PayPal account, your users can receive or send funds based on the country these accounts are located in.
I am using the 'reference transactions' of the Paypal express checkout api to set up a recurring billing scenario for our customers. I have chosen this method since the amount billed per month will vary and there is no initial payment when entering into the billing agreement.
My question is, can I use the paypal IPN to detect when the user cancels this? I know that if the customer enters into this agreement they have the power to log into their own Paypal account and cancel the agreement. What variables should I be listening for through the IPN?
Whilst I see mention of recurring payments and recurring payment profiles in the IPN documentation these are not actually the same as setting up a recurring billing scenario via reference transactions (recurring payments and reference transactions are in two different parts of the general paypal api documentation).
Enable IPN in your PayPal account , then PayPal will notify you via IPN about the Billing agreement cancel from the customer.
If you include IPN with SetExpressCheckout, it will not work with Reference Transaction. You need to Enable IPN on PayPal site.