Integrations

Kajabi

Comprehensive guide to connecting your Kajabi membership site with CheckoutJoy payment processing, including checkout widgets, custom pages, and webhook configuration

Overview

Seamlessly sell your Kajabi products using CheckoutJoy's powerful checkout solutions. Whether you prefer custom checkout pages or embedded widgets, our integration makes it easy to enhance your sales process while maintaining full control over your customer experience.

CheckoutJoy connects with Kajabi through secure webhook technology, automatically granting access to your offers when customers complete their purchase.

Watch this quick demo to see the integration in action:

Which Integration Option Is Right for You?

CheckoutJoy offers multiple sales channels to integrate with your Kajabi site, each with its own set of features. Select the option that best aligns with your business needs and technical requirements:

Sales ChannelPlansDescription
Simple Buy-Now ButtonEssentialIntended for simple use cases where you need payment processor support for Kajabi checkouts. The payment button is embedded directly on the Kajabi checkout page, and will process the payment through the selected payment processor. This option doesn't include any of our other features.
Checkout WidgetEssential / ProA fully featured, embeddable checkout widget that can be added to any page in Kajabi. It can either be embedded inline or as a popup. learn more
Custom Checkout PageProA fully featured, hosted checkout page that essentially replaces your Kajabi checkout pages. Customers are taken to the hosted checkout page instead of the default Kajabi checkout pages. learn more

Feature Comparison

Compare the features available with each integration option to determine which best suits your business needs:

FeatureSimple Buy-Now ButtonCheckout WidgetCustom Checkout Page
Payment Processor Support *
Stripe Alternative Payment Methods
PayPal Credit Card Support
Multiple Payment Processors
Multi-Currency Support
Coupon Management
Sales Tax Calculation
Quaderno Integration

* Note: The Simple Buy-Now Button doesn't support Stripe or PayPal since these are already offered natively by Kajabi.

Setting Up Your Integration

Getting started with the CheckoutJoy-Kajabi integration is straightforward. Follow these steps to ensure a seamless connection between your platforms.

Webhook Integration

The quickest way to connect CheckoutJoy with your Kajabi products is through webhook integration. This method uses Kajabi's webhook system to:

  • Automatically grant access to your products when a customer completes payment
  • Revoke access when a subscription is canceled or payment fails

When adding your Kajabi offers to CheckoutJoy, you'll need to provide two essential webhook URLs:

  • Offer Activation URL: Grants access to your product after successful payment
  • Deactivation URL: Revokes access when a subscription ends or payment fails

We'll show you exactly where to find these URLs in the sections below.

API Key Integration (New Feature)

For enhanced automation, CheckoutJoy now integrates with the new Kajabi API (released in 2025). This advanced integration enables:

  • Automatic customer creation in Kajabi
  • Seamless offer granting after successful purchases
  • Improved data synchronization between platforms

To use this feature, you'll need to:

  1. Enable the API feature in your Kajabi account settings
  2. Create a User API Key with appropriate permissions

For detailed instructions, refer to Kajabi's official API guide.

How Each Integration Option Works

Checkout Widget

The Checkout Widget is our most flexible solution that can be embedded anywhere on your Kajabi site:

  • Easy Installation: Simply add a Custom Code section to any Kajabi page and paste our widget code
  • Full Feature Set: Access all CheckoutJoy features including multiple currencies, coupons, and tax calculation
  • Customizable Display: Choose between inline embedding or popup modal formats
  • Seamless Experience: Keep customers on your site throughout the checkout process

Perfect for: Course creators who want to maintain their branded experience while offering advanced payment options.

Custom Checkout Page

Our hosted checkout pages provide a complete replacement for Kajabi's default checkout experience:

  • Professional Design: Fully responsive, conversion-optimized checkout pages
  • Hosted Solution: We handle all the technical aspects of payment processing
  • Complete Feature Set: All CheckoutJoy features are available, including abandoned cart recovery
  • Simple Implementation: Just redirect your CTA buttons to your custom checkout URL

To implement: Update your call-to-action buttons to point to your CheckoutJoy checkout page URL instead of the default Kajabi offer URL.

Simple Buy-Now Button (Legacy Option)

This lightweight option embeds directly into your existing Kajabi checkout pages:

  • Alternative Payment Methods: Offer payment options beyond Kajabi's default Stripe and PayPal
  • Minimal Setup: Just add our code snippet to your Kajabi checkout settings
  • Familiar Experience: Customers stay within the standard Kajabi checkout flow
  • Global Payment Support: Accept payments via Klarna, GiroPay, iDEAL, and more

When a customer selects your custom payment option, CheckoutJoy securely processes the transaction through your connected payment processor in a popup window.

What Happens After a Successful Checkout

When your customer completes their purchase through CheckoutJoy, our system automatically:

  1. Processes the payment through your selected payment processor
  2. Adds the customer to your Kajabi customer database
  3. Activates access to the purchased offer in Kajabi
  4. Redirects the customer to your configured Offer Thank You page

Customer Communication

Kajabi automatically sends appropriate emails based on the customer's status:

Customer TypeEmails Received
New Members• Member welcome email with system-generated password
• Offer grant confirmation email
Existing Members• Offer grant confirmation email only

This ensures a smooth onboarding experience while maintaining your existing Kajabi email communication flow.

Essential Webhook Configuration

For your integration to work properly, you'll need to configure three critical elements in Kajabi. These settings ensure customers gain access to your products after purchase and are directed to the right page after checkout.

Activation Webhook URL

The Activation Webhook is essential for granting customers access to your products after successful payment. Without this, customers won't receive access to what they've purchased.

Where to find it: In your Kajabi offer settings under More Actions > Webhooks


How to find the Kajabi activation webhook URL

Deactivation Webhook URL

The Deactivation Webhook automatically revokes access when:

  • A customer cancels their subscription
  • A recurring payment fails
  • A subscription period ends

This ensures only paying customers maintain access to your content.

Where to find it: In your Kajabi offer settings under More Actions > Webhooks


How to find the Kajabi deactivation webhook URL

Thank You Page URL

The Thank You Page URL determines where customers are redirected after completing their purchase. A well-designed thank you page can:

  • Confirm the purchase was successful
  • Provide next steps for accessing the product
  • Offer additional resources or upsells

Where to find it: At the bottom right of your Kajabi Offer configuration page


How to find the Kajabi thank you page URL

Implementing Your Checkout Solution

Once you've configured your webhooks, you're ready to add the CheckoutJoy checkout functionality to your Kajabi site. Follow these steps to get up and running quickly.

Adding the Simple Buy-Now Button

For the Simple Buy-Now Button option, you'll need to add a small code snippet to your Kajabi settings:

<script src="https://cdn.checkoutjoy.com/cj-kajabi.js"></script>
<script>
    CheckoutJoy.render({
        key: 'YOUR_KEY_HERE',
    });
</script>

Where to Add Your Code

The most efficient way to implement the button is through Kajabi's Checkout Tracking Code section:

Adding CheckoutJoy payment methods to Kajabi checkout settings

Step-by-Step Implementation

  1. Copy the code snippet from your CheckoutJoy Dashboard under Kajabi Integration Settings
  2. Replace YOUR_KEY_HERE with your unique API key
  3. In Kajabi, navigate to Settings > Checkout Settings
  4. Scroll down to the Checkout Tracking Code section
  5. Paste your code into the Footer Tracking Code field
  6. Click Save to apply your changes

Verifying Your Integration

After saving your changes:

  • Visit any of your offer checkout pages
  • Refresh the page to load your new payment button
  • You should see your CheckoutJoy payment options in the checkout area

Important: Your payment buttons will only appear if you've added your Kajabi Offer to your CheckoutJoy account.

Congratulations! You've successfully integrated CheckoutJoy with your Kajabi site, giving your customers more payment options and enhancing your checkout experience.

API integration vs. webhook integration

CheckoutJoy supports two ways to connect to Kajabi: the Kajabi API (recommended) and the legacy offer-webhook integration.

API IntegrationWebhook Integration
Setup timeSlightly more (need to create an API key in Kajabi)Faster — paste two webhook URLs
Offer linkingDirect — pick the Kajabi offer from a dropdownManual — copy/paste activation + deactivation webhook URLs
Kajabi offer_id in outgoing webhooksYes — passes through to your downstream systemsNo — only CheckoutJoy's internal product ID is available
Requires Kajabi planKajabi PRO (API access is gated by plan tier)Available on any plan that supports webhooks
Recommended forLong-term setup, multi-system integrations, anything that needs to map back to Kajabi's offer IDsQuick start, single-system setups, or accounts that can't upgrade to Kajabi PRO

If you have access to Kajabi PRO, use the API integration. The webhook integration is fully supported and remains a reliable fallback, but the API path is more robust and propagates more metadata downstream.

Multi-currency on Kajabi

Kajabi's native checkout pages do not support multi-currency. If you want to charge different buyers in different currencies on Kajabi, you must use either CheckoutJoy's Checkout Widget or Custom Checkout Page — the Simple Buy-Now Button still lives inside Kajabi's checkout and inherits Kajabi's single-currency constraint.

See the Currencies feature doc for how multi-currency and geo-detection work end-to-end.

Frequently asked questions

A buyer completed payment, but Kajabi never granted the offer. What happened?

In the vast majority of cases this is one of three things:

  1. Order stuck in "Pending" status. Automations (offer grant, tag assignment, confirmation email) only fire on completed orders. If the processor never sent the "payment completed" webhook to CheckoutJoy, the order sits in Pending. The fix is almost always a missing or misconfigured webhook in the processor dashboard — see the step-by-step webhook diagnostic in Troubleshooting.
  2. The Kajabi offer-activation URL is misconfigured. Re-check that the activation webhook URL on your Kajabi offer matches what CheckoutJoy generated.
  3. The Kajabi API key has been revoked. If you're on the API integration, an expired or revoked API key prevents the grant. Generate a new key and update it in Settings → Integrations → Kajabi in CheckoutJoy.

Once the underlying issue is fixed, support can replay the grants — buyers don't have to be added manually.

I'm migrating from Kajabi's native order.created webhook to CheckoutJoy webhooks. Will the payload look the same?

No — CheckoutJoy's purchase.completed outgoing webhook has a different shape (see the Webhooks reference). All the equivalent fields are available — customer name and email, billing address, products, custom-field values, payment metadata — but you'll need to remap them. Custom-field variable names can be controlled per checkout, so you can give them names that match what your downstream system already expects.

Does Kajabi's order.created webhook fire when I manually grant an offer?

No. Kajabi's native webhooks only fire on actual purchases, not on offers granted by an admin. If your downstream system needs to react to grants too, you'll need to drive it from CheckoutJoy (where the grant is what kicks off the post-purchase flow in the first place).

Why is my Meta Pixel / Facebook Pixel not firing purchase events?

CheckoutJoy's Meta integration fires events on CheckoutJoy-hosted checkouts (Checkout Widget and Custom Checkout Page). If you're using the Simple Buy-Now Button the checkout still happens on Kajabi's native checkout page — CheckoutJoy can't fire pixel events on that page. Configure Meta events directly inside Kajabi's checkout settings instead, or switch to the Widget / Custom Checkout Page to use CheckoutJoy's pixel integration.

Will my Kajabi financial / subscription dashboards still show my CheckoutJoy sales?

No. Kajabi's built-in financial and subscription reports only include payments processed through Kajabi's own checkout (its native Stripe/PayPal connection). Sales processed by CheckoutJoy don't appear in those Kajabi dashboards.

For revenue and subscription metrics on CheckoutJoy-processed orders, use the CheckoutJoy reports (or your payment processor's dashboard) as the source of truth. The Kajabi customer/access side is still managed correctly — only Kajabi's revenue reports are blind to CheckoutJoy sales.

A returning buyer's offer didn't grant on their second purchase — and they got a default Kajabi welcome email instead of my automation

This is the external_user_id collision pattern. Kajabi assigns each contact an internal external_user_id that's separate from email. When a second offer is granted to the same email, Kajabi requires the original external_user_id to match — but Kajabi's API doesn't expose that ID, so CheckoutJoy can't always reconcile it automatically.

When it fails:

  • CheckoutJoy surfaces an "Action required" notification on the affected orders.
  • The buyer receives Kajabi's default account-creation/welcome emails instead of your offer-grant flow.

To resolve: open Kajabi, find (or add) the contact manually, and grant them access to the offer from inside Kajabi. This is the only path — there's no API workaround.

To reduce the frequency: keep your buyer-facing email canonicalisation consistent (don't strip dots from Gmail addresses, don't aggregate across plus-aliases), so repeat buyers map to the same Kajabi contact on the first attempt.

My Kajabi API key is valid but CheckoutJoy says "invalid token"

If Kajabi itself confirms the API key works but the CheckoutJoy connection still fails, the most likely cause is that you're on Kajabi PRO Legacy (or another older plan tier). Older plans only expose Kajabi's previous-generation API; CheckoutJoy needs the new public API that ships on current Kajabi plans (PRO and above on the new pricing).

CheckoutJoy queries the Kajabi /v1/sites endpoint during setup. On a legacy plan that endpoint isn't available, so the connection can't complete even though the key itself is valid.

To resolve: confirm with Kajabi that your plan includes public API access, or upgrade to a plan that does. The webhook integration remains a working fallback regardless of API plan tier.

Kajabi