Where would I find a PayPal users PayPal_id? - paypal

I am working with the PayPal Node.js SDK and I am trying to payout a user. In order to do that I can use either their email, phone number or encrypted PayPal ID. We would prefer to work with encrypted data as much as possible. Where would we find a users paypal_ID?
If any of our code would help us find this information, we can post it just tell us what you need. Thanks in advance to all.

It should be displayed in the account overview page or in the profile. It typically shows your PayPal account email and merchant account ID.
It can also be obtained via the GetPalDetails API, but that's not REST. I'm not sure if REST has an equivalent API yet or not.

Related

PayPal Payouts with encoded user id

I need some help with Paypal Payouts. I am currently using Java SDK and working in sandbox environment.
I am trying to implement a button in my webapp that will enable users to receive monetary awards in their paypal accounts. My first idea was to ask for their email and then - using the SDK create a payout item and send that. All works well, except that when someone types (unintentionally I assume) wrong email, then money are not going to be transferred. That is why I decided that asking the user to login with paypal and then using their paypal id will be much more error-proof.
So I followed the steps described here.
I am successfully able to exchange the authorization code and receive access and refresh tokens. Then I use those to load user info that contains only user_id (login scope is openid).
When I try to create a PayoutItem with recipient type PAYPAL_ID and value - user_id from Userinfo object - the operation is unsuccessful (no error - just the batch result is null).
We do not have and we do not expect to have any transactions from this user - so there is no way to use getTransactionDetails in order to retrieve payer id.
I suspect that user_id is not the correct property to use. However, I cannot find any information on how I can integrate payouts with recipient type PAYPAL_ID combined with paypal login.
Help, please!

Transaction description and app name not showing with PayPal REST API

I am using PayPal Payments REST API to accept payments on some website.
Just now I noticed that both the transaction description as well as the app name (which you configure in developer dashboard) are no longer displayed. Why is this? Some recent change? Or something with my account?
It is very bad as I have a single company PayPal account which I use for various websites and the app name & transaction description is to give the corresponding payment flows their own identity. Currently people abort payments because they don't understand why the details in the payment overview on PayPal are completely different/unrelated from where they initiated payment.
Please see image below for what I mean.
If anyone can confirm this is happening for everyone now and/or refer to some PayPal documentation/statement regarding this topic then please share. I could not find anything on PayPal developer resources.
To display a 'custom' name, you need to create a custom 'Web experience profile'.
I was utilising the PHP SDK so did so by following their sample code.
You can also create a 'Web experience profile' with a direct request to the relevant API endpoint.
Once you have created the profile you simply set the identifier on the Payment object (PHP) like so:
$payment->setIntent("sale")
->setPayer($payer)
->setRedirectUrls($redirectUrls)
->setTransactions(array($transaction))
->setExperienceProfileId($this->config->paypal->experienceId);

PayPal sandbox vs live account

I want to integrate PayPal payments on my client's website.
I logged in my paypal account and created an App to test their REST API. Everything's fine and works good.
Now I have to go live, and here's my question: if I use my API live credentials, when someone makes a purchase the money will be accredited to my paypal account instead of the client's one?
Or do I have to ask my client his paypal credentials to create an App from his account? Or...what else?
Dumb question, I know.
The REST API I'm quite sure only gives you access to accept other peoples credit cards and other peoples paypal-accouts to transfer money to you. So your first question-statement should be correct.
If unsure, or if I might have misunderstood, you can find alot about it on the REST API Reference here.
Well it turns out that I just forgot to do the simplest thing, read the doc:
https://www.paypal.com/cgi-bin/webscr?cmd=p/sell/permissions-outside
Thanks anyway, Marius.

PayPal Permission API

Im building a store where merchants(sellers) can sale their goods to the customers. Im using PayPal Expresscheckout for the payments. I have tested with my own API credentials, and it works fine.
However, to be able to use the ExpressCheckout API's as a specific merchant, i have to get it's permissions.
Can they give me their permissions directly from their profile?
I dont want to implement some special workflow for getting permissions from them.
Should i then store the credentials for each merchant in my own database?
What type of credentials is it? How/Where can merchant get these and send me ?
I have read some Permission API docs, but im not sure i have understood it really, yet. So would be glad to get direct answer from someone who already have experiense with this.
Thank you!
They would need to either provide you with their API credentials from their account, or they would need to grant 3rd party permissions to your API username to be able to execute API calls on their accounts.

Do I need to ask for Personnal Information when using Paypal?

I'm writing a basic ecommerce website and the only payment mean is Paypal.
Users don't have to register however, they will be mailed their product.
As far as I know you to be registered to use Paypal, and therefore Paypal stores your personnal informations (Address, names, etc..)
So my question is do I need to ask to users to enter their personnal informations while it is available on Paypal, and I guess, hope, there is an API to retrieve them.
Thank you
You have to ask for their e-mail addresses where they want the product delivered, as it do not neccesarily matches the one they used on PayPal. You will get an invoice in e-mail form PayPal for accounting purposes that sould do.
If you need customer details, you should look into the Instant Payment Notification feature of PayPal, you basically give a URL on your site, then PayPal POST-s all the details to that script. This way you can be sure that the customer actually payed for the services.
There is an extra setep involved, to verify the details you got in your IPN script as anyone who knows its URL can post anything to your script. Also a good idea to put your it into a random directory like dsf6dfsjj345432f8dsfj5j243826d and publish no liks to it, to minimze the possibility of someone trying to play around with your script.
If I understand your question correctly, you do not need to store a client's details on your end. Paypal just requires pricing, product and an invoice reference. They manage storing and securing customer CC details (for example). You might consider storing some client details (such as email, name, address and so on.... but not CC details).
Paypal will often post back order details, which do include client details (i.e. email, contact, shipping details and so on). I, however, am not entirely sure that they supply an API where this information can queried retrospectively.... maybe someone else can help on this on.
HTH and good luck
Look into their Express Checkout approach. That is designed for "preparing" a transaction which you later on finalize from your end, after you have received the customers shipping address. What you decide to do with that is up to you.