> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stackone.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Chargebee Webhook Setup Guide

> Configure Chargebee to deliver events to StackOne.

## Prerequisites

The connector should already be set up, with a Connector Profile and a Linked Account. See [Getting Started](/connectors/chargebee#getting-started) on the Chargebee connector page.

<section data-guide-section data-guide-scopes="">
  <h2>Copy your Native Webhook URL</h2>

  <p>Before configuring Chargebee, copy the <strong>Native Webhook URL</strong> from this connection in StackOne. This is the address Chargebee will POST events to. You will paste it into the <strong>Webhook URL</strong> field when you add the webhook in the next steps.</p>

  <Steps>
    <Step title="Open the linked account and copy the URL">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>The <strong>Native Webhook URL</strong> is a computed field on the linked account. It is generated once the account has been linked. Keep it private — the URL includes a delivery token.</p>

        <ul>
          <li>Open the linked account in StackOne.</li>
          <li>Copy the value from <strong>Native Webhook URL</strong>.</li>
        </ul>
      </div>
    </Step>
  </Steps>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>Add the webhook in Chargebee</h2>

  <p>Chargebee webhooks are configured per site under Configure Chargebee. Make sure you are on the correct site (a test site for testing, your live site for production) before you begin.</p>

  <Steps>
    <Step title="Open API Keys and Events">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Sign in to your <a href="https://app.chargebee.com/" target="_blank" rel="noopener noreferrer">Chargebee site</a>, then in the left sidebar open <strong>Settings</strong> and select <strong>Configure Chargebee</strong>. On the Configure Chargebee page open <strong>API Keys and Events</strong>, then select the <strong>Webhooks</strong> tab and click <strong>Add Webhook</strong>.</p>

        <img src="https://mintcdn.com/stackone-60/03bB1klfBCOVqNCb/connectors/chargebee/images/events-webhooks-tab.png?fit=max&auto=format&n=03bB1klfBCOVqNCb&q=85&s=dd5d25f3717422ed90f9e28b4fab9b1d" alt="The Webhooks tab under API Keys and Events with the Add Webhook button." width="1648" height="780" data-path="connectors/chargebee/images/events-webhooks-tab.png" />
      </div>
    </Step>

    <Step title="Configure the webhook">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>In the <strong>Create a Webhook</strong> panel, enter a <strong>Webhook Name</strong> (for example, StackOne Integration) and paste the <strong>Native Webhook URL</strong> you copied from StackOne into the <strong>Webhook URL</strong> field. Leave <strong>API version</strong> set to <strong>Version 2</strong>, and leave <strong>Events to Send</strong> as <strong>All Events</strong> (or select only the specific events you want). Leave <strong>Protect webhook URL with basic authentication</strong> off — the unguessable Native Webhook URL is the security boundary. Then click <strong>Create</strong>.</p>

        <ul>
          <li><strong>Webhook Name</strong> — a descriptive name for internal reference (e.g. StackOne Integration).</li>
          <li><strong>Webhook URL</strong> — paste the StackOne Native Webhook URL.</li>
          <li><strong>API version</strong> — keep <strong>Version 2</strong> (this connector expects the v2 payload shape).</li>
          <li><strong>Events to Send</strong> — keep <strong>All Events</strong>, or pick a subset from the dropdown.</li>
          <li><strong>Protect webhook URL with basic authentication</strong> — leave off.</li>
        </ul>

        <img src="https://mintcdn.com/stackone-60/03bB1klfBCOVqNCb/connectors/chargebee/images/events-create-webhook.png?fit=max&auto=format&n=03bB1klfBCOVqNCb&q=85&s=3905a9eca9b8e7448430094f1dc2fff3" alt="The Create a Webhook panel with the Webhook Name, Webhook URL, API version (Version 2), and Events to Send (All Events) fields." width="720" height="567" data-path="connectors/chargebee/images/events-create-webhook.png" />
      </div>
    </Step>
  </Steps>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>Available webhook events</h2>

  <p>Chargebee delivers every change as a single generic event whose `event_type` names what happened, so StackOne exposes one event — <strong>Event</strong> (`chargebee_webhook_event`) — that carries every Chargebee event type. You choose which events are delivered with the <strong>Events to Send</strong> setting above (default <strong>All Events</strong>). The affected resource is included in the payload's `content` field.</p>

  <Steps>
    <Step title="Event">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Fired for every Chargebee event. Inspect the payload's `event_type` to decide how to react and read the affected resource from `content`.</p>

        <ul>
          <li><strong>Event</strong> (`chargebee_webhook_event`) — Fired whenever any Chargebee event occurs, across subscriptions, customers, payments, invoices, credit notes, transactions, payment sources, cards, orders, quotes, product catalog (items, item prices, item families), and coupons.</li>
        </ul>
      </div>
    </Step>

    <Step title="Common event types">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>The `event_type` field carries the specific Chargebee event. Common values include (see the Chargebee documentation for the full list of \~209 event types):</p>

        <ul>
          <li><strong>Subscription</strong> — `subscription_created`, `subscription_activated`, `subscription_changed`, `subscription_cancelled`, `subscription_renewed`, `subscription_paused`, `subscription_resumed`, `subscription_deleted`.</li>
          <li><strong>Customer</strong> — `customer_created`, `customer_changed`, `customer_deleted`.</li>
          <li><strong>Payment</strong> — `payment_succeeded`, `payment_failed`, `payment_refunded`, `payment_initiated`.</li>
          <li><strong>Invoice</strong> — `invoice_generated`, `invoice_updated`, `invoice_deleted`, `pending_invoice_created`.</li>
          <li><strong>Credit note</strong> — `credit_note_created`, `credit_note_updated`, `credit_note_deleted`.</li>
          <li><strong>Transaction</strong> — `transaction_created`, `transaction_updated`, `transaction_deleted`.</li>
          <li><strong>Payment source / card</strong> — `payment_source_added`, `payment_source_updated`, `payment_source_deleted`, `card_expired`, `card_expiry_reminder`.</li>
          <li><strong>Order</strong> — `order_created`, `order_updated`, `order_cancelled`, `order_delivered`.</li>
          <li><strong>Product catalog</strong> — `item_created`, `item_price_created`, `item_family_created` (and their `_updated` / `_deleted` variants).</li>
          <li><strong>Coupon</strong> — `coupon_created`, `coupon_updated`, `coupon_deleted`.</li>
        </ul>
      </div>
    </Step>
  </Steps>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>Delivery format</h2>

  <p>Details of how Chargebee delivers events to StackOne.</p>

  <Steps>
    <Step title="Review the payload format">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Chargebee sends a single JSON event object per HTTP POST (not a batched array). The payload's <strong>event\_type</strong> names the event (for example `subscription_created`), <strong>id</strong> (an `ev_…` value) is the event id, <strong>occurred\_at</strong> is the Unix timestamp, and <strong>content</strong> holds the affected resource(s). Chargebee does not sign webhook deliveries, so the unguessable Native Webhook URL is what keeps the endpoint secure. Events may arrive out of order or more than once — use the event <strong>id</strong> for deduplication.</p>

        <ul>
          <li>On <strong>sandbox (test) sites</strong>, Chargebee notes webhook delivery may be delayed by up to 10–15 minutes depending on system load. This delay does not occur on live sites.</li>
          <li>Chargebee expects a 2XX response and retries with exponential backoff for up to 3 days if it does not receive one.</li>
        </ul>
      </div>
    </Step>
  </Steps>
</section>

## Verify

Your Connector should now be able to receive and process events. Try triggering an event and you should see an Event appear in the Connector logs.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.