Supported Payment Options

  • One-time payments
  • Multiple payments
  • Subscriptions

Adding your account details

In the CheckoutJoy dashboard

  1. Navigate to Settings > Payment Methods
  2. Select your payment processor and click on Add

Finding your API credentials

  1. Log into your Stripe account
  2. Navigate to Developers > API keys
  3. Your keys are listed under the Standard Keys

Setting up webhook notifications

CheckoutJoy needs to be notified by Stripe of any payment events that occur when a customer pays using Stripe. These are events such as successful payment authorizations, completed orders, cancelled subscriptions etc. CheckoutJoy needs this information to record revenue and to manage your customer's access to Kajabi offers.

To do this you need to add the CheckoutJoy webhook API address to your Stripe Webhook configuration.

In your Stripe dashboard,

  • Navigate to Developers > Webhooks
  • Select the Add Endpoint button top right
  • Fill in the form with the following details



  • setup_intent.succeeded

  • payment_intent.created

  • payment_intent.succeeded

  • charge.refunded

  • customer.subscription.created

  • customer.subscription.deleted

  • customer.subscription.trial_will_end

  • customer.subscription.updated

  • invoice.payment_succeeded

  • invoice.payment_failed

  • invoice.paid

  • invoice.payment_action_required

  • invoice.upcoming

Adding additional Payment Methods to your checkout

Stripe supports a whole bunch of payment methods that you can enable to offer your customers a wider range of payment methods. This gives you the option to add Google Pay or Apple Pay for example, or Klarna and SEPA bank transfers as payment options.

These additional payment options can be activated in your Stripe account.

Displaying all payment methods on page load

When using Stripe on checkout pages, all the available payment methods that are offered by Stripe are displayed when the page loads.

Incomplete and Abandoned Payments

You might see an increase in Incomplete or Abandoned payments in your Stripe dashboard after enabling multiple payment methods for Stripe on your checkout pages.

This is because CheckoutJoy needs to create a Payment in Stripe (called a Payment Intent) so that Stripe can load the payment widget (called Stripe Elements) can load the correct payment options for your customer. They need the Payment Intent to determine which of the enabled payment methods in your Stripe account should be displayed to the customer, based on where the customer is from and the currency of the payment.

For example, if you've enabled SEPA Direct Debits as a payment method, it will automatically only display to customers in the EU. Your customer from India will not have that Payment option. Stripe also checks the device type, so Google Pay and Apple Pay is only available on compatible devices. Klarna for example is only available for checkouts in EUR.

The upside of this approach is that all the payment options are shown to the customer, you can have up to 20 different payment options including card, wallets, BNPL, bank transfers which would certainly help to make the sale.

The downside is that it will create confusion in your Stripe dashboard, as cancelled payments are not will not reflect abandoned carts necessarily. If someone just views the checkout page with no intent to purchase there will still be a Payment registered in Stripe because the payment methods are shown to the customer.

By default, a customer has 30 minutes to complete a payment once the checkout page has loaded. After that, CheckoutJoy automatically changes the status of the payment to "abandoned" and cancels the Payment Intent in your Stripe account.

If you don't like the way the new Stripe Elements handles payments in your Stripe account, then we recommend that you disable this feature by delaying the payment initiation or use the Card Only option for Stripe in your checkout sections. Card only payments will only create a payment in your Stripe account once the customer has submitted their card details.

Delaying the Payment Initiation

If you want to Payment Intent when the page loads, you can do this by disabling the Show available payment methods on page load setting in the page's Checkout Settings. Disabling this setting will require the customer to click the Proceed to Payment button to initiate the payment. Your Stripe payment widget will only display after the customer clicks this button.

To enable this checkout flow, do the following steps:

  1. Go to Pages in your CheckoutJoy dashboard
  2. Create a page or Edit the page where you want to change this setting
  3. Go to Settings > Checkout Settings using the left-hand navigation of the Page Builder
  4. Scroll to Payment Methods and uncheck the checkbox to display available payment methods when the page loads.

Delaying striope Payment Initiation
  1. Save and Publish your page.

The checkout flow now has a different flow which requires the customer to click the Proceed to Payment button to initiate the payment widget. The result of this is that there will only be a payment created in Stripe for customers that have the intent to purchase the product, but they will not see all the available payment methods when the page loads.

Delaying striope Payment Initiation
Last updated on September 5, 2022