I have a merchant site.
I wonder if the following scenario is possible :
A customer subscribes a "full shop access" and I can withdraw money from it's paypal account when he purcahses something. He does not have to login to paypal or anything at anytime but the moment he chose "full shop access".
Given that money amount will be differents.
I found a lot of thing about recurrent payment but it's on given periods and given amounts therefore it's not at all what I need.
I just want the customer to say paypal once : "OK, I trust this website, it can get my money anytime he needs to".
So if it's possible, can anyone give me a link to documention about this ?
Regards
1) Create a token using SetExpressCheckout with the L_BILLINGTYPE0 set to MerchantInitiatedBilling
2) Create a billing agreement using CreateBillingAgreement and pass TOKEN for the response after redirecting the user to PayPal.
3) Charge their billing agreement id using DoReferenceTransaction.
This method requires you to get approval from PayPal to use Reference Transactions.
Related
The following link used to allow our customers to pay for an item, or amount due, without an account. We use this when we need to re-evaluate shipping costs and send an automated email to let the customer know and pay the balance due-
https://paypal.com/xclick/business=paypal#ourbusiness.com&item_name='Ordernumber'&amount='amount'
(There are values populating the ' '. )
This link now brings us to a sign in page for Paypal. After sign in, sending payment works fine. There is no "Use Credit Card Option"
The issue is allowing those without Paypal to pay.
In our business account settings we have enabled the "Paypal Account Optional" but it doesn't seem to have any effect on the URL method.
There are other link structures that work similarly. Some are noted in help documents, some from other users-
https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=...
https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=...
Donations aren't what we're going for, but it does allow for payment without an account.
So what's the new URL structure to allow customers to use a credit card to pay for an item without making an account?
Is this still possible?
We require reference transactions via PayPal to bill customers monthly with varying amounts.
e.g. first month is $30, second month may be $35, third month may be $25 etc
So far this seems to be the best approach: https://developer.paypal.com/docs/classic/express-checkout/integration-guide/ECReferenceTxns/
I am using the PayPal recommended SDK from this page: https://developer.paypal.com/docs/classic/api/nvpsoap-sdks/
and using the ExpressCheckout Method. (paypal/merchant-sdk-php installed via composer)
We have a free PayPal business account.
Testing via Sandbox I am able to:
Get a token (SetExpressCheckout) - category->Digital, billingAgreement, Type=Sale
forward customer to sandbox paypal login
Confirm the payment
redirect back to our system (returnUrl)
Process the payment (GetExpressTocket + doExpressCheckout)
Questions:
Does the PayPal business account require any switch/status/upgrade to enable Reference transactions on the live environment?
How do you setup a $0 billing agreement to invoice an amount later in the month? When passing a 0 amount in step 1 above and error is displayed
Item name, amount and quantity are required if item category is
provided, ErrorCode 10003
This contradicts to documentation https://developer.paypal.com/docs/classic/express-checkout/integration-guide/ECReferenceTxns/#setting-up-a-billing-agreement-before-payment which states to set the amount to 0...?
UPDATE: Removing the setting $itemDetails->ItemCategory = 'Digital'; solved the $0 amount issue.
Billing ID is not returned even though I've passed the BillingAgreement data
// Billing agreement details
$billingAgreementDetails = new BillingAgreementDetailsType('MerchantInitiatedBillingSingleAgreement');
$billingAgreementDetails->BillingAgreementDescription = $billingAgreementTxt;
$setECReqDetails->BillingAgreementDetails = array($billingAgreementDetails);
I know there are a few questions within the post but I believe they are all related to the scope of 'Reference Transactions' within PayPal.
I'm looking for recommendations on approach and explanations to the contradictions in documentation. (or if I'm doing something wrong then happy to hear it)
To answer your question:
1) Does the PayPal business account require any switch/status/upgrade to enable Reference transactions on the live environment?
If you are receive an error when calling for Reference Transaction, probably that the setting is turned off in your account. You will need to contact PayPal Business Support team to enable it.
2) Billing ID is not returned.
To setup billing agreement, you will need to pass paymentaction=authorization in SetExpressCheckout request. You will not be able to setup billing agreement if you set the paymentaction as sale.
I want to verify that whether user has entered valid Paypal id or not. If not than user can't do registration. I've also visited this [1]: How can I verify a PayPal ID? question but it doesn't help me :(
You can't find a direct answer because "valid PayPal ID" doesn't have a single fixed meaning. You will need to be more specific as to what you are trying to discover. Then there may or may not be a way to accomplish what you want, since PayPal protects some aspects of their customers' account and identity information for their protection (and for business reasons).
A bit of background that may help you clarify your question, if not necessarily answer it:
Any email (or phone number) can be configured to receive PayPal payments, in many cases even if the email was not attached to a PayPal account at the time the payment was sent. However, not all PayPal products can function in this way (e.g. you cannot make API calls as an account that has not been set up and has not generated API credentials). Are you asking about receiving money, and if so with which product(s)?
Most people can pay through PayPal if sent to a PayPal page, whether they are accountholders or not (depending upon the PayPal product being used). In addition to guest payments and/or direct credit card payments through PayPal, people can set up PayPal accounts when they arrive and immediately pay with them. So collecting email first and refusing to go forward if there is no PayPal account attached to that email would loose you potential customers. It would also "let through" many customers who could not pay, such as people who know an email address but don't own the attached PayPal account. PayPal also intentionally declines to easily answer questions about whether an email has an associated PayPal account in order to make it harder for bad actors to accumulate lists of PayPal accounts (often with associated personal information) for spear phishing campaigns. There are some APIs that allow you to get limited information about a PayPal account but there are limits associated with these APIs; see e.g. GetVerifiedStatus documentation at:
https://developer.paypal.com/docs/classic/api/adaptive-accounts/GetVerifiedStatus_API_Operation/
Note also that Verified has a particular technical meaning in PayPal, and is NOT AT ALL THE SAME as "able to pay you."
If you want to know if someone can log into their PayPal account, and then use that PayPal account to get information about the user (as well as potentially pay you), that's easy: use Login with PayPal. That's what it's for. Naturally this requires the user to login and assent to your use of their information.
If you want to know if someone can take a particular action (e.g. make a payment), at this moment, the only way to be certain is to actionally request that action. You have options short of actually requesting money; if you want to ensure the user has funds and reserve them for you to collect shortly you can request an authorization rather than a sale. If you want to make sure the user can log in, has payment mechanisms and generally looks ready to pay you (but WITHOUT reserving and guaranteeing funds) you can request an Order.
Hopefully one of these things is what you are asking for?
If you have a PayPal AccountID (a PayPal-generated ID rather than an externally-generated identifier like email or phone number) you can pass it to certain APIs (such as the GetVerifiedStatus), so many of the same options above apply.
Requirements state that I build a form that collects user's PayPal login info and charges the user's PayPal account a fixed price without having the user leave the website.
I am beginning to think this is not possible. Can someone kindly suggest a solution that comes close to meeting the requirements? I am not certain what's possible and what's not possible with PayPal.
There isn't a solution for what you are trying to do. In order for the buyer to login and pay with PayPal, they would have to leave your site and go to the PayPal login page. You could set up a billing agreement so that they only have to log into PayPal once. With a billing agreement, you would be able to charge the buyer's PayPal account when you are needing to. You would just need to have the buyer go through the flow initially and get sent over to PayPal to login and agreen to the billing agreement. Then when you want to charge them again in the future, you would just need to reference the billing agreement id.
The closest solution to having the user pay without leaving the website is PayPal digital goods express checkout.
Here is an example to show you how it works:
http://jmsliu.com/1307/integrate-paypal-digital-goods-express-checkout-into-website.html
I need to transfer money form an accountant to some employees using PayPal, from within an internal application. On PayPal website it is specified that a transfer of money is free(inside USA) or that the fee is smaller than for payments (outside USA).
The scenario is:
login as accountant in the internal application
click a button: pay employee
if the accountant is not logged into PayPal, he should be redirected to the PayPal page and login
only after the accountant has logged in, he can do the money transfer
the accountant goes to PayPal and approves the money transfers
I saw the options of using Classic API or Rest API.However, I did't find a call for "transfer money" I have found only "create payment" options and succeeded in implementing the "pay" call using Classic API credentials.
So, how do I transfer money from one account to the other using PayPal. What it's better to use: Rest API or Classic API? How exactly to I use any of the two opetions?
Thanks
Looks like what you are looking for (based on your fee requirements) is "Personal Payments". You can implement Personal Payments using the classic API called "Adaptive Payments". All you need to do is set the PaymentType as "PERSONAL" if your payment use cases qualify as personal payments. You can find out how to use Adaptive Payments APIs here: https://developer.paypal.com/webapps/developer/docs/classic/adaptive-payments/gs_AdaptivePayments/