After completing this unit, you’ll be able to:
- Identify the high-level tasks required to set up Checkout.
- Describe coupon configuration options.
- Explain how Checkout supports value-added tax (VAT).
Set Up Checkout
We designed Checkout with simplicity in mind. For the most part, you set up and maintain Checkout in one place, the Publishing Console in the Partner Community. There are exceptions to this rule, such as creating subscription payment plans, which you do on the Stripe website. But for the tasks you perform most often, you use the Pricing tab (1) in the Publishing Console (2).
It can be tricky to remember which site to use for each task. So, let’s make that crystal clear.
- Upload a managed package: In the Publishing Console, upload the managed package that contains your solution.
- Enable Checkout on your listing: In the Publishing Console, set the listing pricing type to Paid, using Checkout.
- Set up a Stripe account: From the Publishing Console, create your Stripe account and connect it to your business bank account.
Set up either subscription or one-time payment plans:
- In Stripe, create and configure subscription plans.
- Per user per month
- Per company per month
- Per user per year
- Per company per year
- In the Publishing Console, create and configure one-time payment plans.
- Per user
- Per company
- In Stripe, create and configure subscription plans.
- Enable payment plans on your listing: In the Publishing Console, choose from your list of subscription and one-time plans.
- Select which payment methods to accept on your listing: In the Publishing Console, choose credit card and either ACH or SEPA payment methods.
Winablement Corp. is ready to set up Checkout for its solution. Winablement's admin, Norman, logs in to the Publishing Console to edit an existing listing. He created the listing several months ago, so he first confirms that he already uploaded the managed package. To enable Checkout on this listing, he navigates to the pricing tab and sets its pricing type to Paid, using Checkout.
Next, he creates Winablement’s Stripe account. Also on the Pricing tab, he clicks Set Up Stripe. He takes a minute to enter bank account info and other details and submits his answers. Now that Winablement has a Stripe account, Winablement has the option to enable Checkout on its listings. Next step, payment plans.
Winablement offers subscription payment plans. To set up a subscription plan, Norman clicks the Manage Plans in Stripe link in the Publishing Console. In Stripe, he creates a per-user per-month subscription plan. Winablement only offers subscription plans, so Norman doesn’t create a one-time payment plan. One-time plans are infrequently used, most often for Lightning components.
He returns to the Publishing Console to confirm that the new per-user per-month plan appears in the Subscription Plans list. It’s in the list, but it isn’t assigned to the solution listing. He checks a checkbox and that task is complete.
The last step is choosing which payment methods to offer for this listing. Norman sets it up so customers can pay with credit cards and, since Winablement is based in Spain, European bank accounts.
That covers the high-level setup tasks. Let’s explore other important Checkout features.
Offer Flexible Pricing with Coupons
As you market and sell your AppExchange solution, you sometimes discover that one price does not fit all customers or all occasions. You need a way to offer flexible pricing, such as a discount for customers buying 100 or more licenses. Coupons are a simple way to adjust the amount you charge your customers. You can set up coupons in Stripe and use them to custom-price your solutions.
Here are the kinds of coupons available.
- Invoice: You can apply these coupons to every invoice or to only the ones you select.
- Duration: These coupons are valid for a certain time period, such as 3 months, or you can set them up to expire on a specific date.
- Amount: With these coupons, you can reduce a customer’s invoice by a percentage or by a flat amount.
- Subscription: You can apply these coupons to every subscription a customer has or to a subset of subscriptions.
- Customer: These coupons are valid for all of your customers or for a subset of customers.
- Reuse: Customers can use these coupons more than once, up to a maximum number of times that you can set.
You can create a coupon based on one option or on a combination of options.
Winablement Corp. is about to launch a new version of its app. Daniela, the marketing director, wants a combo coupon in time for the launch to encourage existing customers to upgrade. She asks Norman, Winablement’s Salesforce admin, to create one. At Daniela’s request, Norman sets up the coupon so that existing customers who upgrade can redeem the coupon to get a 15% discount for the first 3 months of their subscription.
After 2 months, Winablement is ready to end the promotion. Norman logs in to Stripe and gets ready to delete the coupon. But then he has a moment of uncertainty. What happens to customers currently receiving the discount? What if a customer has 1 month left on its 3-month discount? Norman can breathe a sigh of relief: Deleting a coupon means it can’t be redeemed for future subscriptions or customers. But the discount remains in effect for customers who already redeemed the coupon.
Part of managing your online business is knowing how to properly handle taxes such as the value-added tax (VAT). If your company is required to collect VAT, you can provide your VAT ID and VAT percentage in the Publishing Console. Checkout uses that information and your company’s location to calculate VAT amounts. Checkout adds those amounts to customer invoices for subscription plan payments. VAT isn’t supported for one-time payments.
Checkout collects VAT on your behalf and deposits the taxes into your bank account. Your company is still responsible for VAT registration, maintaining required data, and distributing the taxes to tax authorities. We can’t take any of those responsibilities off your plate, but Checkout makes VAT calculation and collection significantly easier.
Payment Error Handling
Handling online payments is fast and easy—most of the time. Occasionally things go awry and customer payments fail. Checkout can help you enact your plan for gracefully handling payment errors.
That’s because Checkout alerts you when a payment fails. For credit card payments, notification is immediate. It can take up to 5 business days for ACH payments to fail, and up to 14 business days for SEPA payments. If you find out a payment failed, let your customer know immediately. The sooner they know, the sooner they can correct any issues on their end.
If you use the CMA, you can configure it to send an email notification to your customer when a payment fails. Make sure that the email includes a link to where the customer can update their payment information.
How Checkout Works with the LMA
Checkout is integrated with the License Management App (LMA) to fully automate licensing. You read that right—fully automated licensing. When customers purchase your Checkout-enabled AppExchange solution, they get the license to run the solution. You never have to update license settings manually. Even when customers buy, upgrade, renew, or make other subscription changes, Checkout automatically updates their licenses in the LMA. Makes you want to do your happy dance, doesn’t it? Yeah, us too.
For new purchases, when a customer installs your solution, the LMA creates a license record in your partner business org. If the customer uses the My Account page in AppExchange to update a subscription, the LMA updates the license record. You can view the update on the Stripe website or in the CMA.
What if you have a forgetful moment and inadvertently add a customer to a plan using the Stripe website? AppExchange can’t associate the customer with your solution or provision licenses through the LMA.
To keep Checkout and the LMA in sync, customers must purchase your solution on AppExchange, and your solution has to be Checkout enabled. The customer must also submit changes, such as adding or removing seats, in AppExchange. That’s how AppExchange knows to associate the customer with your solution.
There is one exception—subscription plan changes. To keep the LMA in sync with Checkout, you must switch customers’ subscriptions in Stripe.
So, stick to these rules and keep on dancing.