Let's say I have a service where a user can subscribe for:
$10/Month
$25/Month
$50/Year
Am I correct that to set this up properly with PayPal's API, I should:
Create three Billing Plans - one Billing Plan for each payment tier
Activate each Billing Plan
When a customer subscribes, they create a Billing Agreement under one of the preexisting Billing Plans and go through the authorization process? Thus, multiple customers would have agreements under say the $10/Month Billing Plan?
I'm further confused because, astonishingly, there is no way to use the API to list all of the Agreements: https://github.com/paypal/PayPal-REST-API-issues/issues/5
When a customer subscribes, they create a Billing Agreement under one of the preexisting Billing Plans and go through the authorization process? Thus, multiple customers would have agreements under say the $10/Month Billing Plan?
Yeah, that's right.
Because there is no API to list all of the agreements, so you could create a billing plan every time a customer subscribes. Then you would be able to list all of the billing plans you created.
GET /v1/payments/billing-plans
https://developer.paypal.com/docs/api/payments.billing-plans/v1/#billing-plans_list
Related
what happens when you delete a paypal billing plan, with users who are already subscribed to this plan? does the subscription plan gets cancelled? and one more question would be - let's say a user has moved from a plan to an other one, do they get automatically refunded? or do I need to refund them somehow? thank you!
I have some questions about subscription functionality using REST API. We have implemented recurring payments using "Express Checkout NVP/SOAP Integration" but for us it isn't optimal, because:
Webhooks easier and more usable then IPN messages;
We can't force customers to pay from PayPal balance.
That's why I want to rewrite it with REST API. I think the flow will be like:
User press button and we make the first request to get auth token;
Create billing plan;
Activate billing plan;
Create billing agreement;
Because of we're using PayPal payments here we redirect the customer to approve payment;
Execute billing agreement.
My questions are:
Is this flow correct?
To redirect customer for approving payment we need to make four requests to PayPal API servers, is it normal?
Should I create and activate a billing plan for every customer or I can use one plan for all customers?
If so can I create the plan in the merchant's profile page or I can do it only programmatically?
Let me see if I can answer your questions and provide some samples.
Yes, that flow is correct for the first request. If you already have a plan that you'd like to subscribe people to created, you can skip those billing plan steps. More on that below.
For the REST APIs, yes that's the normal flow for PayPal. Think of the plan as setting up the architecture of the payment that you'd like to offer (such as a subscription plan for a service). You set this up once and then can subscribe many people to that same subscription plan using a billing agreement.
If the details of the plan are the same for each person, then create one plan and then use a billing agreement for each person to subscribe them all to that same plan.
I haven't seen an integration of this with the profile system, but it's an interesting idea. For the time being, as far as I know you'll need to do this programmatically.
I've also created some new quickstart guides on the site that should help through creating the billing plan and agreements:
Billing plans: https://developer.paypal.com/docs/api/quickstart/create-billing-plan/
Billing agreements: https://developer.paypal.com/docs/api/quickstart/create-billing-agreement/
I have a more practical example of this billing plan / agreement integration in a Slack bot payment sample, if that helps: https://developer.paypal.com/docs/api/service-integrations/slack-bot/subscribe/
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!
Is there a way to create postpaid subscription with paypal ? Basically what I want is to charge some amount at the end of the month from user paypal account.
That amount of money depends on how much minutes he spend on our service during that month...
With Payments Standard Subscriptions you can't change the amount billed. Using Recurring Payments through Express Checkout you're able to change the amount but only by 20%.
If you set up a billing agreement through Express Checkout you can use the Reference Transaction API calls to bill a customer whatever amount you need to. There are additional features that need to be enabled on an account to allow you to use Reference Transactions.
In the SetExpressCheckout call you define the billing agreement terms and when you submit the DoExpressCheckoutPayment API call you define the exact same billing terms that you included in the first API call.
I'm trying to implement PayPal on a completely custom shopping cart and have been unable to figure out which API for recurring payments we need.
We ship a physical product every 2, 3, 4, 6 months so shipment and payment have to both happen together. In addition it must be easy for the user to change their shipment date - or add or remove items to their regular shipments without too much stress (either on their part or mine).
I've generally looked at Paypal's recurring billing as more suited to software based subscriptions and I don't think this is the API I need. I'd like to just bill the customer via a billing agreement and then initiate the shipment.
The way Skype does it seems to be ideal - they establish a billing agreement (shown in my PayPal account under 'My account > Profile > Pay List'
but I cannot seem to find that in the SOAP API document.
What is the API I need to create a billing agreement that I can trigger whenever I want. Can this be done with Express Checkout API ?
The API you are looking for is called reference transactions. This allows you to set up a billing agreement with a customer, get back a token, and then use that token to issue charges in the future. It can be done via the Express Checkout API.
You have to contact PayPal customer support to get this activated for your account before you can use it.