Paypal IPN set "no account" as default - paypal

I have a working paypal IPN, but ive been wondering: can I somehow set the "I have no paypal account" as the default choice when a customer is directed to paypal?

Short anwer: No, don't do that.
Long answer:
PayPal sets this dynamically based on customer information, primarily the cookie. In other words, people who have logged into PayPal on that device/browser before generally see that option presented first; people who have not are presented content that features the non-PayPal-login more prominently. This is done (primarily) to increase conversion for you (ie get the highest percentage of people to complete the payment & buy from you). Trying to defeat PayPal's code here would usually be counterproductive.
That said, there are also differences in how PayPal's screens are presented between various PayPal products (e.g. Payflow looks different from Express Checkout which looks different from Website Payments Standard) due in part to the mix of payment methods supported by each of these products, and also in part to expected customer mix with each of these. Some of these products also vary their behavior somewhat based on account settings or button/api parameters, again with the goal of being as effective for you as possible. But those parameters are product-specific and the question did not specify which PayPal product you are using.
As an example of variation between (and within) products:
Website Payments Standard (WPS) was designed to allow a merchant to accept payments from everyone, as the merchant's "sole solution." Express Checkout was originally designed to be used alongside a merchant's existing or separate credit card collection page, by merchant who would directly bill credit cards through a separate product (PayPal's DoDirectPayment or another processor). So PayPal's first WPS page was designed to present well to buyers with just credit cards or buyers with PayPal accounts. But a buyer would only be sent to the Express Checkout screen if they proactively chose to use PayPal rather than entering a credit card directly on the merchant's page, so PayPal's first Express Checkout screen could be aimed directly at PayPal account holders to generate the most intuitive buyer experience and highest conversion. Since that original version (ten years ago, in 2005!), however, Express Checkout has become more integrated into "PayPal Pro" and can also used as a sole solution, like WPS. For that usage it now supports an option that includes collecting card payments without a PayPal account.
PayPal also offers Payflow, Hosted Sole Solution, Adaptive Payments, and more payment flows.... each of which offers some slightly-different balances of buyer experience (and merchant experience/requirements -- e.g. some of these give the merchant access to credit card numbers and require PCI and merchant banking agreements, etc etc).

Related

PayPal adaptive guest payment requirements

We are using the adaptive payment API to setup a payment between 2 of our users. The receiver user has a paypal account, the source (the one who pays) doesn't. We don't use any chained or parallel payments just simple tranffer from A to B.
We'd like to allow the source to pay with credit/debit card. The problem is that in some cases its allowed, and in some it isn't.
We found this document about the subject but it looks outdated, since in the limitations section it says:
Cannot be made to a personal or un-registered PayPal account
I have a personal account and it works with that but with my colleague's personal account (different country) it doesn't.
Not available if the API caller passes an email address in the request
envelope.
This is very vague. Pass where? We use the email address in the pay request but it works in some cases.
Could anyone give some up-to-date info about this subject?
Guest payments are only made available to certain countries no matter which PayPal product you are using (PayPal Payments Standard, PayPal Express Checkout, Adaptive Payments). So if a buyer is in a country that requires a PayPal account, then they will only see the option to "Login to PayPal" or "Create Account" when they land of the PayPal checkout page. Unfortunately there is not a list of countires in our documentation to show which countries allow guest payments and which don't.
Here are my findings together with PP_MSI_Colin's answer:
Documentations
Guest payment - integration guide (UI is different now)
Guest payment - adaptive payment
Account optional settings
Requirements
Upgrade to business or premium account.
Make sure the email address is verified.
Make sure that on this settings page the Paypal account optional setting is ON.
Limitations, exceptions
In EU, this option is limited to 10 payments/card
In some countries (tested in Hungary) a personal account can also receive guest payments.
In some countries it is always disabled. No official list found.
Logic
Even if it is enabled for a user, it is up to Paypal if they show it or not. Where its enabled it also depends on the paying user. If Paypal finds (from cookies, etc) that the user has a paypal account they don't show credit card option. To test it try to pay in an incognito window. PayPal’s fraud prevention measures can also cause the guest checkout to not be displayed in certain scenarios
Limitations for making guest payments via PayPal adaptive payments are documented here:
Guest payments cannot be made to a personal or un-registered PayPal account

Paypal Rest API Payment or Braintree Payments

I used the Paypal NVP API (Express checkout) for a long time and it worked fine. I'm now developing a new project and wanted to use the 'new' Rest API that Paypal recommends for new projects. I, however, find the documentation rather imprecise at some points and often contradictory.
I'm using their sandbox to test the payments and I noticed that the payments work fine, except that once I log in to the Paypal Buyer account, I can only select the PayPal balance to pay.
Is this a limitation of the Rest API? I want to clarify that I am based outside the US and I do not want to accept credit card payments on my own website (well, if there is no other solution, I would accept it). I'd rather have the user get redirected to the PayPal page and provide his credit card information over there. I do, however, want to give the option to the user to at least select from PayPal balance or credit card. (As I'm used to from the NVP API)
UPDATE
In the meantime, I've done a lot of additional research. On the PHP SDK page, they've added the following notice:
Important: The PayPal REST API no longer supports new direct credit card integrations. Please instead consider Braintree Direct; which is, PayPal's preferred integration solution for accepting direct credit card payments in your mobile app or website. Braintree, a PayPal service, is the easiest way to accept credit cards, PayPal, and many other payment methods.
How should I understand the direct credit card integration? Is that the credit card payment on the PayPal website after being redirected onto that page or do they mean credit card payments where the card number is provided on ones own website?
I've got the impression, PayPal is entirely shifting to Braintree Payments. Even on the official PayPal Developer website, they propose Express Checkout for quick (client side only) integrations and Braintree Direct for other payments.
This is what I need:
PHP integration of the API calls
Payment methods: PayPal balance, Different Credit Cards
eventually recurring payments
I do not need:
Third party invoicing
client management
shipping address management
So my concrete questions would be:
What's the difference between Braintree and PayPal payment methods (since they belong to the same organisation)?
Should I use PayPal Rest API or Braintree solutions in my case?
What are those PayPal limitations that they list on their website?
Has nobody got any experience in this domain? Even partial answers are welcome!
I have partial answer, as I am also in the process of choosing between BrainTree, PayPal Rest API, and Express checkout.
I'm here to answer "How should I understand the direct credit card integration?"
I'm no expert on the subject, but during my recent work at the area of integration with checkout systems, I've learned this:
One of the types of credit-cards is called "direct credit card". It means that it is directly connected with a bank account - when it is billed, the money is instantly transfered from the connected bank-account to the merchant. This is different than how most credit-cards work - most will only charge the bank-acoount at the beginninng of the next month.
I've come accross situations where direct cards behave differently than regular credit-cards.
For instance - the checkout-system I integrate with doesn't allow to monthly-bill a direct card. direct card on a monthly payment plan have to be billed manually.
So for me, the PayPal announcement you qouted means a lot - I need to support direct credit cards, hence I'm choosing BrainTree. Thanks!
Note to moderators:
I originally wanted to post this as a comment to the question, becuase I thought it would help the OP. I don't have enough reputation to comment, so I posted an Answer.

Credit Card Options in Paypal Express Checkout

I have setup the express checkout process integration in asp.net mvc. When user is redirected to paypal website after submission, there is only option to login using paypal or sign up new account. There is no option to pay using credit card ?
Am i using right API for this?
By default Express Checkout is for PayPal accountholder payments; originally you would pair this with some other product for credit card payments (such as collecting the card information on your site and calling PayPal DirectPay or some other card processing partner).
PayPal also has several somewhat-similar products that collect the card information on their site (so you don't have to) and do that as well as accountholder payments; these vary in whether they end up giving you access to the credit card information (more flexible, but means you have to safely handle the card information and meet industry regulations, including vetting) or you do not ever see the card, just the money (simpler). This is often called some form of "guest checkout."
And eventually PayPal did add a guest checkout option to Express Checkout called "Account Optional." So you can use Express Checkout and get a guest checkout experience. See this link:
PayPal: express checkout pay without account
So in short you can get this from EC if you configure things for it, although some other PayPal products might be a better fit depending upon your particular requirements.

Easiest way to add PayPal to existing Stripe billing flow

I have an educational website that uses 'Stripe Connect' to accept payments from students, and split the payments between myself (the platform provider) and the teachers (content-creators).
Payments to teachers are currently handled through Stripe. Whenever a student purchases content, the teacher automatically receives the payment directly into their Stripe account. I retain a portion of the transaction directly into my Stripe account. It's an easy system and works nicely.
The problem is that students want to pay with PayPal.
So, I would like to add PayPal as a payment option for students, without forcing content-creators to connect two separate accounts--one for when viewers pay with PayPal, and another for when viewers pay with Stripe. The only idea I have so far, is to deposit all PayPal payments to one PayPal account, then manually "payout" teachers into their Stripe accounts every week.
But is there an automated way to do this? Stripe says they don't accept payments from PayPal.
Any ideas/help would be appreciated. Thanks!
Adaptive payments does support chained payments, as Andrew says in his answer; it would work very much like what you describe having set up with Stripe.
However, this will not meet your requirements of having both PayPal and Stripe payments arrive in a single teacher account. Unfortunately, Stripe & PayPal see each other as competitors and to my knowledge neither one has built a tidy product to consolidate "their" payments into the other company's account.
If you are willing to move away from Stripe, PayPal does provide many solutions that consolidate "raw" credit card payments and PayPal account payments into a single receiver account, including through Adaptive Payments as cited by Andrew.
I would add that Braintree, having been purchased by PayPal, provides perhaps the most Stripe-like integration for a product that would accomplish this goal. However, I do not believe that the Braintree SDK will do the chained payments for you; you might have to do some work to make that happen on your end (take the first payment, then calculate and make payouts either weekly as you mentioned or per-incoming-transaction).
A couple other things to think about: if you split some payments into delayed fulfillment but others are chained inside one payments provider you will need to support two very different flows; you may find it easier (for both you and your content providers) to select one model and run everything through that model.
Also, instead of payments going to you & then chained to the content providers you could have payments to go directly to the content providers and then trigger billing (either invoicing or automatically collected via recurring payments) from the content providers to you for your cut.
The best pattern depends largely upon how you want the legal & financial responsibilities to lie: are you providing the good or service and people are paying you for it, making you like a retail store or distributor for producers? Or are content providers providing the good or service being paid for to the students, and you are like a marketplace/facilitator/advertising venue? This question becomes significant as soon as someone is unsatisfied with something they have bought :).
You can use the Adaptive Payments platform with PayPal to split payments just like you're doing with Stripe. Specifically, you'd use the Pay API setup as a chained payment with a secondary receiver.
If you happen to be working with PHP my class library for PayPal will make all of the API calls very simple for you.

Adaptive Payments VS Website Payments Pro for our online marketplace

We are a UK-based marketplace site that wants to never force buyers to sign up for paypal. We allow users to set up customized stores through our site, and our second requirement is that these users be able to become sellers with only a basic paypal account. When a buyer makes a purchase, we are the primary receiver, taking 15% and passing on the entire paypal fees to the secondary receiver (user), as well as all the remainder of the transaction. My question is: What's the best solution paypal offers for this? It seems that chained payments would be, but if I understand correctly the Website Payments Pro system is the only one that guarantees that buyers outside the UK wouldn't need a paypal account. Is there a way to take the money in ourselves with Website Payments Pro and use the API so it transfers the 85% (minus the fees) to the user's paypal account?
It depends on what approach you want to take.
I would prefer Chained Payments as it allows guest checkout (credit card payments outside a PayPal account) with certain restrictions and will easily allow the user to receive the funds and automatically forwards the 15% cut to your account. This removes the need to collect funds outside of the payment flow. This means no invoicing or no lost dues!
Website Payments Pro only offers credit card payments however you would also need to offer Express Checkout for PayPal payments as well. You also have the flexibility of hosting the order form so you control what the users see. The downside is you'd have to collect funds from the user outside the payments. Such as monthly invoicing, billing agreements or manual processing.
Here is the criteria we use to allow guest checkout. Please keep in mind these are due to rules and regulations, not PayPal's choosing.
The credit card has a lifetime limit of 10 purchases outside a PayPal account
The user's email address must not be attached to an existing PayPal account
I don't have a direct answer for you but hopefully this helps make your decision.