Set up a paid app

Paid apps are a way for your business to generate revenue from apps installed by our customers via the Zendesk Marketplace. We use Stripe for accepting and managing online payments. This section shows you how to get set up on Stripe.

Getting Started

Step 1 - Connect to the Zendesk Stripe application

To collect payments for your apps in the App Marketplace, you need to connect a Stripe account to our Zendesk Stripe application. Follow the steps below.

Click the URL below to connect to Zendesk’s Stripe application using OAuth:

https://support.zendesk.com/apps/oauth/stripe/authorize

If you already have an existing Stripe account, sign in by clicking the following link:

stripe_setup

Note: If you already use Stripe for your business, we recommend setting up a new Stripe account to receive the payments for your Zendesk apps. Connecting to the Zendesk Stripe App allows us to make transactions on your behalf. It also gives us access to transactional data in your Stripe account. If you want your non-Zendesk transactions to stay private, you should set up a new Stripe account.

If you don't have a Stripe account or want to create a new one, you'll need to answer some initial questions about your bank and business to create the account.

After completing the OAuth flow, you’ll receive a Stripe Integration ID. Keep a copy of the ID handy because you’ll need to submit it as part of the app submission process.

stripe_setup_1

Your new Stripe account is now connected to the Zendesk Stripe application.

Step 2 - Set up an app payment plan

Each app you sell needs to be set up as a product in Stripe with a unique payment plan. You can choose from three payment types:

  • One-time payment
  • Per account/per month payments
  • Per agent/per month payments

If you want to sell your app based on a monthly subscription, you need to set up a payment plan in Stripe as described below. You don’t need to set up a plan for one-time payments. However, you do need to send us the amount you want to charge for your app. This information is captured when you submit the app for approval.

To set up a plan for monthly payments:

  1. Sign in to your Stripe dashboard.
  2. Click Products under the Billing heading.
  3. Click New.

    stripe_setup_2

  4. Enter your product name and click Create product.

    stripe_setup_2

  5. Provide the following information to set up your payment plan:

    • Plan nickname: A plan nickname. For example, Time Tracker Plus.
    • Price per unit: Cost per unit.
    • Important: For Currency, select USD - US Dollar.
    • Billing interval: Select monthly.
    • Trial period: If you plan to offer a free trial period, include the number of days.

    stripe_setup_3

After creating your payment plan, you need to tell us: * the unique identifier, so we can associate the plan with your app. * if the payment plan is per account or per agent per month.

stripe_setup_3

Step 3 - Set up Stripe to send your customers an app purchase receipt

To ensure customers receive an email receipt after purchasing your app:

  1. Sign in to your Stripe dashboard.
  2. Click Business Settings > Customer emails.

    stripe_setup_5

  3. Select the two Email Customers check boxes, and then click Done. Note: If you use your own invoicing/receipting system, make sure you uncheck these options to ensure customers do not receive two receipts.

Step 4 - Customize your receipt

You can easily customize the email receipt sent to your customers.

  1. Sign in to your Stripe dashboard.
  2. Click Business Settings.

    stripe_setup_7

  3. In the Public information section, ensure your business information is correct.

  4. Click Business Settings > Customer emails.

  5. Customize your design and click Save design.

    stripe_setup_5

Step 5 - Ensure your customer's app subscriptions aren't canceled

Ideally, a customer's app subscription should never be canceled due to lack of payment. Stripe's default action after a period of non-payment is to cancel the subscription. Doing this means that the customer cannot update their payment details on the App Manage page of their Zendesk account without creating a whole new subscription in Stripe. This means that any coupon codes the customer has used will not be applied to the new subscription.

To ensure subscriptions are never canceled, please update your subscription settings:

  1. Sign in to your Stripe dashboard.
  2. Click Billing > Settings.
  3. In the Invoices charged automatically > Custom dunning rules section, ensure the drop-down option for Then finally is set to mark the subscription as unpaid, and click Save.

    subscription_1

If a customer has an unpaid invoice, Zendesk disables their app until they update their credit card and the invoice is successfully paid.

Step 6 - Set up Stripe to support Strong Customer Authentication

Beginning in September 2019, many European customers must provide Strong Customer Authentication for their recurring app subscription payments. Please configure Stripe as follows to prompt for this extra step using email when necessary.

  1. Sign in to your Stripe dashboard.
  2. Click Settings > Billing > Automatic collection.
  3. In the Manage payments that require 3D Secure section, ensure the toggle for Send a Stripe-hosted link for cardholders to authenticate when required is set to active, and click Save.

    stripe-psd2

Frequently Asked Questions

Can I provide a trial period to my customers?

Yes, you can create a trial period (in days) when creating a new plan for your product in the Stripe Dashboard. A customer will only be billed once the trial period is over.

The trial period is shown to customers in The Marketplace. The customer can also see how many days they have left on their trial by visiting their App Management page.

Does a customer still need to provide a credit card for an app with a trial period

Yes, a customer still needs to enter their credit card details when installing an app with a free trial. Once the trial period is over, the customer is automatically billed.

Can I provide discounts to my customers?

Yes, you can create coupon codes within your Stripe dashboard and then provide them to your customers, who can redeem them in our Marketplace.

To create a coupon in your Stripe account:

  1. Sign in to the Stripe dashboard.
  2. Click Billing > Coupons in the left hand menu.
  3. Click + New.

stripe_faq_1 stripe_faq_2

  1. Choose whether your coupon will apply a Percent off or an Amount discount.
  2. Ensure the currency is USD - US Dollar
  3. Specify the Duration of your coupon:
    • once
    • over a period of months
    • every month for the period of the subscription
  4. Give your coupon an ID. This is the code that you provide to your customers.
  5. Specify the Max redemptions (optional, default is once).
  6. Specify a Redeem by date if you would like the coupon to expire (optional, default is no expiry).
  7. Click Create coupon to set up your coupon.
Can I create coupons for one-off app purchases?

No, currently coupons are only available for subscription-based plans (per account/per month or per agent/per month).

How do I process a refund for a customer?

You can process a refund in Stripe.

  1. Sign in to the Stripe dashboard.
  2. Search for the email address of the customer. This will show you a list of all payments made by the customer.

    stripe_faq_3

  3. In the Payments section, find the payment you want to refund and click the Payment ID.

  4. On the payment page, click the Refund button.

    stripe_faq_4

  5. Confirm that you want to give a refund and give a reason for the refund.

    stripe_faq_5

After the refund is processed, the Refund button is no longer displayed. The status of the payment will also change to Refunded.

stripe_faq_6

How do I know if a customer has uninstalled our app before refunding them?

Before processing a refund, check that the customer has uninstalled the app they're being refunded for. This is easy when the app is sold on a recurring basis (per account per month, per agent per month).

  1. Sign in to the Stripe dashboard.
  2. Search for the email address of the customer and click into their customer account page.
  3. In the Subscriptions section, you should no longer see the subscription listed. This indicates that the customer has uninstalled the app.
What happens if a customer doesn’t pay their monthly bill or their credit card is not charged successfully?

If a customer's subscription goes into arrears, Stripe takes care of the dunning process based on the settings you configured in the Billing > Settings page. If the Subscription is marked as unpaid or you manually cancel the subscription, the app is locked/disabled in the customer's Zendesk account. The Manage Apps page in Zendesk informs admins that the app has been disabled due to payment problems. To re-enable their app, the customer needs to provide a valid credit card.

How/when do I collect my payment from Stripe?

Stripe transfers funds to your bank account based on the schedule listed in your dashboard.

For example:

  • “Daily — 7 day rolling basis” means that charges processed on March 1st will be grouped together and deposited in your account on March 8th.
  • “Weekly (Monday) — 2 business day rolling basis” means that charges processed before a given Thursday are grouped together and deposited in your account on the following Monday.

Your transfer schedule can be configured to simplify your accounting.

stripe_faq_11

Stripe currently offers the option for funds to be transferred daily, weekly (on a given day), or monthly (on a given day of the month).

You can see all attempted transfers Stripe makes to your bank account via your Stripe dashboard.

Does Zendesk pass the customer's Zendesk domain to Stripe?

Yes, the customer's Zendesk domain is passed as metadata during checkout. The domain is displayed in the customer record in the Stripe dashboard.

stripe_faq_13


Next steps: Register your organization