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 a payment plan for your app

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 will be 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. Give your product a name and click Create product

    stripe_setup_2

  5. In the next step you will set up a payment plan for your new product. Provide the following information:

    • Plan nickname, example: Time Tracker Plus
    • Cost
    • Important: Select USD for the Currency
    • Select monthly for the Interval
    • 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 provide us with the unique identifier so we can associate the plan with your app. You'll also need to tell us if the payment plan is per account or per agent per month.

stripe_setup_3

Step 3 - Set up Stripe to send your customers a receipt when they purchase your app

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 will mean 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 for Then finally is set to Mark subscription unpaid, and then 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.

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 will be 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 will still need to enter their credit card details when installing an app with a free trial. Once the trial period is over, the customer will automatically be 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 will give 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 will take 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 will be 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 will transfer 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 will be 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 transfers Stripe attempts to make 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


Up next: Register your organization