PayPal API to access trasactional data - paypal

I would like to extract transaction data from my customer's PayPal account. He has given me the API username, p/w, and signature. In addition, we created a live 'application' on developer.paypal.com so now I have a ClientID and Secret.
I have the asp.net/c# RestAPiSample code. Which (REST or SOAP) API(s) should I call to get "sales" data (i.e., payments from his customers to his paypal account? Basically I am trying to create some additional reports using the sales data.
Thanks.

Your customer's paypal account credentials can be used with Merchant SDK. You can use the API 'getTransactionDetails' to fetch his customers sales records.
But the new live account you have created (ClientID and ClientSecret) can only be used with the new REST APIs and its is not related to your customers account. If you want your customers sales records you can use the Payment.List(...) method which returns a PaymentHistory object.

Related

Integrating Paypal Payment and Invoicing APIs

I have been manually issuing invoices to charge my clients for services using Paypal.
Now I am creating an interface to allow them to purchase the services automatically on my website.
I also want to show them a history of their purchases. However, I cannot show a history of paid invoices using the Transaction Search API; I need to use the Invoicing > Search Invoices API.
I have used the Paypal Payments API to manage the payment side of new products, which now correctly produces an itemised transaction and allows the customer to checkout. But this does not produce an invoice.
How can I simultaneously produce an invoice (i.e which can be retrieved by the Invoicing API to show previous payments) and allow the customer to pay it? It seems like the Invoicing API works around the idea of sending an invoice to client by email, but this is unnecessary. I want them to pay it immediately (and already have the Payment API setup for this).
So what would a useful workflow be?: Use my Paypal Payment API to receive and authorise the payment, and on authorisation, use the Invoicing API to produce an invoice which reflects this and then updates the invoice status to paid? Or am I missing something easier here?
The Invoicing API is not meant to be mixed or used with any other API. It is for generating invoices to be sent by email or in link form.
General ecommerce payment processing (without invoice links) is entirely separate, there is no crossover. You should ensure you are using the current v2/checkout/orders API to receive new payments, not older v1 APIs.
As far as displaying a list of previous purchases to your customers, you shouldn't reply on PayPal for this (except perhaps in the case of invoices since this is part of the point of offloading invoice management to PayPal). But for normal web purchases, PayPal is not a database -- it is a payment processing service. Keep track of all your own order information, and simply store PayPal transaction IDs when they complete for your own accounting records -- but the ID you reference with the customer should be your own unique order ID, which you can pass to PayPal in your purchase_units[0].invoice_id when you create an order for checkout approval.

Using API or customer permission, Is it possible to get payment from customer account any time?

Using API or customer permission, Is it possible to get payment from customer account any time ?
Actually I have one cloth store,
When my custom make payment first time while purchasing something using paypal wallet/account, i will have set of permission from his paypal account,
Using that i need a functionality when that person buy second time, there account will be auto debited, using their saved paypal token
Is Paypal provide this type of any services or API ?
If yes then tell me some more details i.e. how it works and what is require for that i.e token, API key or any other.
You can refer to the link below for the details to see if this payment method meet your requirement.
https://developer.paypal.com/docs/integration/direct/billing-plans-and-agreements/?mark=billing%20agreement

How can I obtain a token to charge authorized PayPal accounts as needed?

I have a white labeling Shopify app that bills store owners who install my app whenever orders for my vendor are created in their store. Currently I use Authorize.net as a payment processor. Store owners perform an initial setup whereby they authorize their credit card using a web form I provide. This provides me with a customer profile ID and a customer payment profile ID for the store owner, and I use these two ids to charge their credit card via Authorize.Net for each and every order that is placed through their store for when the order contains one or more of my white label products.
So essentially I have Authorize.Net tokens for each store, and I use those tokens to charge store owners' credit cards as orders come in through their store, and each order has a different charge amount (this is not a recurring payment that is of the same amount each time). Here is some sample code.
I'd like to use PayPal as a backup payment processor and reproduce this same functionality. I'm looking through PayPal's API as well as the Node SDK, and I am not sure how to accomplish the same thing with PayPal. I essentially want to obtain a token tied to the store owner's account which I can use to charge the seller for each order, and each order can have a different charge amount.
Can someone point me in the right direction?
Turns out that what I wanted seems to be Reference Transactions.
For documentation see https://developer.paypal.com/docs/classic/express-checkout/integration-guide/ECReferenceTxns/.
For an example see this project which uses the paypal-ec2 Node package.
The flow for the example project mentioned above appears to be as follows:
Create Billing Agreement with seller
Visit Express Checkout page
http://localhost:3000/checkout/callback_success is called
Receive token
Redirect to payment URL (which uses token received)
Receive token
Create a billing agreement
(no redirection or confirmation happens)
Receive and store a billing agreement token in database
You now have the ability to process payments in the future for arbitrary transaction amounts using the Billing Agreement ID

Braintree - create customer with Paypal details

We are studying the feasibility of using Braintree as a payment gateway for one of our client.
One of our requirement is to create a persistent customer with specific payment method/s (paypal, credit/debit etc) using
Braintree Java API.
This registered customer account will then be debited and amount transferred to the client's account as and when need arises.
We have following queries.
Is there any constraint/limitation as to the country to which the customer can belong to? For example, can we create a
customer in Braintree who is a resident of India or China? Can Braintree transfer amount from a customer's account in India
to client/merchant's account in USA and vice versa?
In Braintree sandbox account we can create a new customer with credit card as a payment method. How can we
create a customer with Paypal as a payment method in sandbox?
I have gone through the Braintree Customer.create() Java API. Using Customer.create() API we can create a new customer
with credit card details. But how can we create a new customer with Paypal details using API call? Where can we provide customer's
Paypal account details while calling Customer.create()?
Once customer is created and payment method details verified by customer can subsequent amount transfers from customer to
client/merchant's account happen without customer have to authorize each transaction?
Thanks.
I try to answer your questions but I'm not Braintree ninja.
I think yes but there would be some charges on top of normal fees (known as currency conversion charges).
You can't create paypal as payment method in sandbox (I don't know the reason) but you can in production account.
When users choose Paypal as payment, after successful authentication a token is returned that you can save in database for future transactions (without authentication).
I didn't get your last question, let me answer what I understood(I guess you mean authentication again or providing details again). If customer agrees to have payment method vaulted then no, they won't have to authorize transactions in future as long as they don't cancel their payment method.
Update: Forgot to answer the first part of your question No. 1, as per their FAQs Braintree accepts payments from almost everywhere.

Paypal Classic API: Test accounts

I need to simulate a buyer transaction in my paypal sandbox environment. Essentially, a buyer is a user that decides to subscribe to my service, which is done using the Paypal NVP API method: DoDirectPayment.
Reading the documentation, I gather that a buyer in this case will essentially be a Personal account, and basically to make any kind of api call, I require API credentials. However, the PAYPAL Developer website does not show any kind of API credentials for this personal account :
I do have a business account, and that does state the corresponding API credentials. The link I am referring to is :
https://www.x.com/developers/paypal/documentation-tools/ug_sandbox#credentials
where it states that the API credentials are specified for all accounts.
The only rationale I have behind this are :
a) personal accounts do not get API credentials,
b) I need to simulate a DoDirectPayment API with my business account API credentials, but documentation states that to simulate a buyer transaction I must use a personal account.
c) I need to set API credentials manually somehow.
Any leads?
You would use your API credentials from your business account in the API call. As for the buyer, you would not be paying with a PayPal account if you are using the DoDirectPayment API. You would be using a credit card. You should be able to use any of the card numbers below to test with. I juse use a Mod 10 check to generate the card numbers. You can just use any valid future date for the exp date, and use 123 for the card security code.
Visa
4539261585419872
4532063588063153
4024007125711126
4916126222581496
4916335290325039
4929693226575720
4916573003035640
4485204470227566
4024007102338976
4024007148183980