Some fairly basic questions as I don't seem to be able to find simple answers in API documentation.
I have a shop selling magazines + other items.
Currently selling individual items or in groups and charging using PayPal REST API.
We want to add subscriptions - which I gather means using their Billing Plan + Billing Agreement. Have some Questions:
Does every sale need it's own Plan + Agreement ? (Or can I just
pre set-up 4 plans (different postage options), and add all the
agreements to one of those 4 plans)
I can't see a list of acceptable Frequency values- Is "Yearly" an option?
Do I specifically need to call "Bill outstanding agreement amounts" i.e. "POST /v1/payments/billing-agreements//bill-balance" to charge it in a years time - or should it in theory be charged automatically?
To check it's been paid - I need to search for transactions - right ? ("GET /v1/payments/billing-agreements//transactions? start_date=yyyy-mm-dd&end_date=yyyy-mm-dd")
Thanks.
Let me answer one by one:
A Billing Plan (or a Billing Agreement) is an agreement made between the seller and a specific buyer. The answer at this question is yes: every sale needs its plan.
Yes, yearly is a valid option. The variable “frequency” accepts the following value: WEEK, DAY, YEAR, MONTH. Please, find here our REST API Reference: https://developer.paypal.com/docs/api/#billing-plans-and-agreements.
Buyer will be charged yearly (for example) automatically. You need to call “Bill outstanding agreement amounts” only if there is an outstanding amount to resolve. For example, if a payment failed.
Yes, you are right. Please note, dates should be in this: yyyy-MM-ddTHH:mm:ssZ. Here our documentation: https://developer.paypal.com/docs/rest/api/payments.billing-agreements/
If you need more information, please let me know.
Related
Sorry, if this topic is too unspecific, but actually I did not know where ask else. If this question is not ok, please feel free to close it.
My question is, if it is possible to execute / approve multiple billing agreements from one user at one purchase at paypal?
We created a shop where the user can buy different virtual products for different periods. If a user buys 2 or more products we want to create for each product a billing agreement (i.e. 12 months). If I understand the paypal API correctly, every product (subscription / billing agreement) has to be approved independently.
Is there a way to let the user approve the billing agreement once for all products at all? Or can we create a billing plan with multiple products in it?
Thanks for your help in advance.
According to PayPal, it is not possible to accomplish this using the latest version of the SDKs. It should be possible, however, to accomplish this using the currently-deprecated SOAP version of SDKs. There are several API calls related to the creation of Billing Agreements, but two calls that are required for basic situations: SetExpressCheckout and CreateRecurringPaymentsProfile. All of the supporting documentation for this calls using the SOAP API clearly state that there is a limit of 10 billing agreements per transaction. For example, this is taken from the documentation from CreateRecurringPaymentsProfile:
RecurringPayments | ProfileDetails
(Required) You can include up to 10 recurring payments profiles
per request. The order of the profile details must match the order
of the billing agreement details specified in the SetExpressCheckout
request.
I am in the process of attempting this with the PHP SDK using Express Checkout specifically and I will provide an update on whether I can in fact get this working.
I apologize that this is not as clear an answer as it should be, but the documentation surrounding this question provided by the developers is directly conflicting and IMO there should be some explanation of that here.
I would like to ask you about regular payment in paypal using billing plans. I use the PHP library from paypal (REST API) to create billing plans and agreement for users but I have some problems:
I have two plans: STANDARD and PRO. What when the user buys a standard plan and after some time will be want to switch to another? What with the old subscription? I don't see the option to cancel subscription via REST API. Should I create a personal billing plan for every user and in this case update this changes?
My plans include some additional parameters like: ,,How many people can use one account" - and this parameter influences on the final price. I don't know what I should do to get regular payments with flexible parameters.
Should I create a billing plan for every user and then create an agreement for this personal billing plan? What if user paid for 12 months and after 9 months will want to change some parameters - then I should upgrade price in the billing price (for stability in the next billing cycle) and to get this difference in plan costs I should create the normal payment by http://paypal.github.io/PayPal-PHP-SDK/sample/doc/payments/CreatePaymentUsingPayPal.html?
Cheers!
Hi fellow developpers,
I want to use REST API Billing Plans and Agreement to do the following application:
Create a recurring payment based on user's selected Billing Plan which includes a 30 days free trial.
The user can select from a month by month plan which costs $X or a yearly plan which costs $Y.
Both plans include a free 30 trial
Recurring payments should start automatically at the end of the 30 days trial
Now, I know I can create those 2 billing plans with respective amount/period/cycle, etc. My question is about the trial:
->> Can I create & execute a billing agreement based on the selected billing plan with a startDate that would be in 30 days from now ??
I saw the trial example in Paypal docs for the SOAP API but I really want to use the REST API and there is no clear answer right now!
Thanks guys!
Jean
I'm not sure if this is correct or not, but I think that you would to include two PaymentDefinition objects in your plan. You'd include an additional PaymentDefinition for the trial and set the . Like such:
PaymentDefinition paymentDefinition = new PaymentDefinition();
paymentDefinition.setName("NAME");
paymentDefinition.setType("TRIAL");
paymentDefinition.setFrequency("DAY");
paymentDefinition.setFrequencyInterval("30");
paymentDefinition.setCycles("1");
Currency currency = new Currency();
currency.setCurrency("USD");
currency.setValue("0.00");
paymentDefinition.setAmount(currency);
I have recently been given the task to create a proof of concept that we can create adaptive payments within our system, but I have come to a stumbling block - just one!
When the API call is fired off to set up the pre-approval, the returned data does not extend past the 12 month period, regardless of if I go past that date.
I have read online that the limit is 12 months, but then I checked my own pre-approved list and I have an active pre-approved payment set up with Skype, from 2009, that is still active, so I figured it must be possible, so I called paypal.
They informed me that you can do it with Express Checkout, but for the life of me, I can not find how to allow periods of more than 12 months.
So the main question is: Does anybody know how to allow dates for the end date, to extend past the 12 months period?
The secondary question is: Express Checkout appears to be a separate payment system, so how are they linked in this instance?
Adaptive and Express Checkout (aka Pro) are separate payment products, both built on top of PayPal's core payment processing. The APIs and the specific features of the two products differ but they both result in similar PayPal payments, meaning things like how money is drawn from the sender's account is all shared.
But the two products create different billing agreements and features definitely vary between the two products.
I'm not familiar enough with the Adaptive product to comment on agreement length time limits and whether they could be changed; you already had PayPal on the phone, and they would be the people to ask.
But the Pro product definitely does not have any such limits.
Most of the big integrations (Skype, iTunes, Netflix, etc) are with Pro, so it should be a Pro billing agreement that you have with Skype :-).
You said that your requirement was to make adaptive payments. I'm not sure if you need specific features of Adaptive Payments (e.g. split payments?) but if not, I would recommend switching to Pro.
Indefinite period billing authorizations are now available via Braintree.
I am trying to use the Recurring payment API offered by PayPal.
I have a scenario which I am not able to address directly. It goes like this.
We have a website where we sell some services. Now the services are charged per user license. A user can buy/cancel user license in between. We want to offer the customer a recurring billing option. We have to notice here that the amount may vary each billing cycle based on the number of user licenses the customer uses during that cycle.
Is there any way I can achieve this using PayPal recurring Payment API's.
I realize this is a very old post, but it still shows up for Google searches, so I thought I'd add:
Paypal does allow you to do this now, using their new adaptive payments api.
Authorize.net also has a service that might work called Customer Information Manager.
The recurring payment option is a fixed amount that the customer pre-agrees to pay each month (or period). To do what you're trying to do, a customer would have to pre-agree to pay whatever amount you decide to charge at a later time. This means pre-authorizing an unknown payment amount, which will not be allowed by any payment service.
Your only options are:
Bill the variable amount each month (i.e. no subscription).
Set up a subscription where the monthly amount is the maximum that could potentially be billed, and then refund the difference each month.
Good luck with #2 - I would never agree to such a thing as a customer, personally.
What you're looking for is covered in the UK by the Direct Debit system, however given the potential for abuse it's very tightly controlled and there are a lot of restrictions and regulations governing it.
I'd strongly suggest you just set up a monthly invoicing system that just bills the client each month.
I don't know its meaning full or not as it is a very old post.
Instead of creating recurring profile on PayPal Server, You can store the customer's credit card on the PayPal using REST API: https://developer.paypal.com/docs/api/#vault then every month you can fetch it and charge it like recurring Payment Or When client is no longer with the services then just remove its card from PayPal.
I suppose Authorize.net SIM method also does the same.
Hope this make sense.