Paypal rejected reference transaction feature - paypal

PayPal rejected reference transactions feature for client account. They told us we can still use recurring transactions but not reference transactions feature.
Whole project coding is did using reference transaction with first creating billing agreement id and use that billing id for future transactions.
What will be the options here?

For unique transaction id for recurring payment try to use parameters PROFILEID in combination with PROFILEREFERENCE

Related

Reference Transactions without Paypal Account

For a new project I want to get rid of paypal subscriptions as users tend to subscribe multiple times and then dispute all payments.
Instead I want to use reference transactions to bill the clients when necessary.
Now with the regular checkout or subscriptions users didn't have to have a Paypal account to purchase. They could just enter credit card details and start the subscriptions.
With reference transactions I can only see a paypal login page where a user gives permission for the reference transaction.
Is there a way to enable reference transactions for users without a Paypal account that just have a credit card? Or is there something similar that could achieve this?
In order to use Reference Transactions PayPal Accounts are required and not allowed for Guest Checkout option (no work around).
The alternative to this would be to upgrade using Payflow APIs where a PNREF is used in this scenario on future payments. Or BrainTree's future payments using vault. These options are direct Credit Card processing only.
Recap - PayPal accounts needed for PayPal Reference Transactions
Payments Pro has a reference transaction system. Typically you run an authorization for $1 and then void it. Then you can run a reference transaction on the previous transaction ID.
Payments Pro is a subscription service.

PayPal PayFlow - converting existing transaction into Recurring Payment Profile

I'm a bit confused about PayPal Payflow Recurring Billing
I read in the documentation that I can convert an existing transaction into a recurring payment profile.
This means that I can send my user to the ExpressCheckout page where she makes a "zero dollar" one time transaction, and then, PayPal sends me back the transaction ID (PNREF) which I can use as ORIGID value when I'm creating the new profile?
And if its correct, it means that I don't have to handle credit card and other sensitive information, because basically the user types her details on the PayPal hosted checkout page?
Yes, you can use a completed transaction to create a recurring billing profile, but it cannot be an auth transaction (zero dollars or otherwise). Quote from the documentation:
IMPORTANT: You can use only a Sale or Delayed Capture transaction as a
template for a profile.
https://www.paypalobjects.com/webstatic/en_US/developer/docs/pdf/pp_payflowpro_recurringbilling_guide.pdf

Per-user / per-quantity recurring billing. What are alternatives to Stripe?

I am looking for alternatives to stripe's per-user pricing subscription : I need :
to charge my user a recurring payment which depends on the number of user accounts he has
to be able to change the number of users via an API, with customer validation is ok, but ideally without changing a plan nor creating a new type of plan. Check status, cancel, etc. via the API too.
Ideally with no up-front charge = fee + percentage of transaction
I found out that stripe might be a good option (see per-user pricing here https://stripe.com/docs/subscriptions) and unfortunately Paypal does not seem to offer this kind of feature (plans can only be increased by 20% each 180 days or you need to cancel previous profile and create a new one). Or am I mistaking about Paypal ?
What alternatives would exist for such needs?
What you want are Reference Transactions, in which case you run an original authorization or sale transaction, and then in the future you'd run DoReferenceTransaction with the original transaction ID and any new amount you need to process. It will process immediately without any redirection or additional authorization required at that point.
If you use reference transactions with Payments Pro (direct credit cards) then all you need to do is save the original auth or sale transaction ID to your database so that you can pull it out for the user when you need to process a future payment using DoReferenceTransaction.
For PayPal payments you'll use Express Checkout w/ Billing Agreements, which will give you back a billing agreement ID. In that case, the billing agreement ID is what you'd pass into future calls to DoReferenceTransaction.
In either case you'll need to build your own system to lookup payments that need to be processed each day and loop through them making a call to DoReferenceTransaction for each one.

Paypal Billing Agreement with Do DIrect Payment/CreditCard

I have been working on Reference Transactions. Is it possible to create a Billing Agreement using Do Direct Payment as it is not returning any token in the response ??
Thanks
There is no billing agreement that gets created with the DoDirectPayment API. In order to charge the buyer again, all you have to do is make the API call for a reference transaction and pass over the previous successful transaction id. Express Checkout would be the API that you would want to use if you want to set up a billing agreement.

Recurring payment using reference transaction

Is it possible to Create a Recurring Payment Profile using DoReferenceTransaction or is there any other way to set up recurring payment when I've got "billing agree" from customer and REFERENCEID - an id of customer's previous transaction.
Thanks
You can set
RECURRING
field of DoReferenceTransaction API call, but first you need a billing agreement with buyer.
I recommend doing recurring payment with CreateRecurringPaymentsProfile call.
API is here.
I've got billing agreement with buyer ("billing agreement ID") - according to reference transaction api .
I also can do transactions with DoReferenceTransaction like:
$nvpstr="&L_AMT0=".$itemamt."&L_QTY0=1&AMT=".(string)$amt."&ITEMAMT=".(string)$itemamt."&CALLBACKTIMEOUT=4&REFERENCEID=B-6J7244599E964634T&ReturnUrl=".$returnURL."&CANCELURL=".$cancelURL ."&CURRENCYCODE=".$currencyCodeType."&PAYMENTACTION=".$paymentType;
$resArray=hash_call("DoReferenceTransaction",$nvpstr);
However I still don't know how to set up recurring payment using reference transaction cause in API link you gave me, there is a note that Credit Card ACCT number is required - but I don't want to store client's card numbers in my database (I am using express checkout).