> ## 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.

# ChartMogul Webhook Setup Guide

> Configure ChartMogul 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/chartmogul#getting-started) on the ChartMogul connector page.

## Send MRR movements to StackOne

ChartMogul delivers events through a **Webhook** destination. Add one that points at this account's Native Webhook URL, and ChartMogul sends every real-time MRR movement to StackOne.

**1. Retrieve StackOne Native Webhook URL**

The **Native Webhook URL** is generated once an account has been linked.

<ul>
  <li>Open the linked account in StackOne.</li>
  <li>Copy the value from **Native Webhook URL**.</li>
  <li>The URL contains a secure per-account key, so treat it like a secret.</li>
</ul>

**2. Sign in to ChartMogul**

Sign in to your [ChartMogul account](https://app.chartmogul.com), then open the destinations settings.

<ul>
  <li>Click **Settings** (the gear icon) in the left navigation bar.</li>
  <li>Under **Data & Integrations**, click **Destinations**.</li>
</ul>

![ChartMogul Settings page with the Settings gear icon and the Destinations link highlighted](https://mintcdn.com/stackone-60/0AAdGQ9slsj2hKd9/connectors/chartmogul/images/events-open-destinations.png?fit=max\&auto=format\&n=0AAdGQ9slsj2hKd9\&q=85\&s=469b1f331b5884aa15c25efc1547eb1e)

**3. Add a destination**

On the **Destinations** page, click **ADD DESTINATION**.

![ChartMogul Destinations page with the ADD DESTINATION button highlighted](https://mintcdn.com/stackone-60/0AAdGQ9slsj2hKd9/connectors/chartmogul/images/events-add-destination.png?fit=max\&auto=format\&n=0AAdGQ9slsj2hKd9\&q=85\&s=7afae80edd3a23f35c6f32133b28afc2)

**4. Select Webhook**

In **Select a type of Destination**, click **Webhook**.

![ChartMogul Select a type of Destination dialog with the Webhook tile highlighted](https://mintcdn.com/stackone-60/0AAdGQ9slsj2hKd9/connectors/chartmogul/images/events-select-webhook.png?fit=max\&auto=format\&n=0AAdGQ9slsj2hKd9\&q=85\&s=ccff8e09f0b65c0019c94d313a329cae)

**5. Configure the webhook endpoint**

Complete the **Webhook Endpoint** form, then click **SAVE**.

<ul>
  <li>**Name** — a unique name for the destination, for example `StackOne Integration`.</li>
  <li>**URL** — paste the Native Webhook URL you copied from StackOne.</li>
  <li>**Include custom attributes in webhook payload** — optional. Turn it on to add the customer's custom attributes to each payload.</li>
</ul>

![ChartMogul Webhook Endpoint form with the Name field, the URL field and the SAVE button highlighted](https://mintcdn.com/stackone-60/0AAdGQ9slsj2hKd9/connectors/chartmogul/images/events-configure-webhook.png?fit=max\&auto=format\&n=0AAdGQ9slsj2hKd9\&q=85\&s=2bd2ff0e500377ade60e9ff448b22a5e)

**6. Confirm the destination is active**

The new destination appears in the **Destinations** table with **Frequency** set to **Real-time** and **Status** set to **Active**.

<ul>
  <li>**Last Export Status** shows **Never Exported** until the first MRR movement is sent.</li>
  <li>If StackOne does not return a 2xx response, ChartMogul retries the delivery up to 17 times and then marks it as failed.</li>
  <li>To edit or delete the destination later, click the settings icon at the end of its row.</li>
</ul>

![ChartMogul Destinations table with the new StackOne Integration webhook row highlighted, showing Real-time and Active](https://mintcdn.com/stackone-60/0AAdGQ9slsj2hKd9/connectors/chartmogul/images/events-destination-active.png?fit=max\&auto=format\&n=0AAdGQ9slsj2hKd9\&q=85\&s=fb3e65643dd86c4834e960f53030e458)

## Available webhook events

ChartMogul sends one webhook per real-time MRR movement, and a Webhook destination always sends every movement type. Only events enabled in StackOne are delivered to your StackOne webhook.

**1. MRR movement events**

Events fired when a customer's monthly recurring revenue (MRR) changes.

<ul>
  <li>**MRR Movement New Business** (`mrr_movement.new_biz`) — Fired when a new subscription adds MRR for a customer.</li>
  <li>**MRR Movement Expansion** (`mrr_movement.expansion`) — Fired when a subscription change increases a customer's MRR, for example an upgrade or a quantity increase.</li>
  <li>**MRR Movement Contraction** (`mrr_movement.contraction`) — Fired when a subscription change decreases a customer's MRR, for example a downgrade or a quantity decrease.</li>
  <li>**MRR Movement Churn** (`mrr_movement.churn`) — Fired when a cancellation removes a customer's MRR.</li>
  <li>**MRR Movement Reactivation** (`mrr_movement.reactivation`) — Fired when a previously churned customer starts paying again.</li>
</ul>

## Delivery format

Details of how ChartMogul delivers events to StackOne.

**1. One MRR movement per request**

Each request is a single JSON object for one MRR movement. Its `type` is always `mrr_movement`, and `movement_type` (`new_biz`, `expansion`, `contraction`, `churn` or `reactivation`) tells StackOne which event it is.

<ul>
  <li>ChartMogul only sends real-time movements. Data imported a day or more late (for example from App Store Connect or Google Play) does not trigger a webhook.</li>
  <li>No webhook is sent when a change does not alter MRR, when historical MRR changes (merging customers, editing MRR, connecting subscriptions), or when the movement is below 0.5% of total MRR or five cents.</li>
  <li>Requests carry no signature. The per-account key in the Native Webhook URL identifies the account.</li>
</ul>

## 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.