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

# Ecom360 Webhook

> Configure the Cashfree Ecom360 webhook to push abandoned checkout payloads to your WhatsApp service provider for automated retargeting on Shopify and OCC.

Configure Ecom360 webhook notifications to send data directly to your WhatsApp Business Service Provider (BSP). Once set up, the webhook sends structured JSON payloads to the BSP’s callback URL whenever a customer abandons a checkout.

The payload includes customer contact details, cart contents, a dynamic link to resume checkout, and other relevant metadata. This enables BSPs to automatically trigger WhatsApp messages for timely retargeting.

This setup supports both Shopify and Cashfree OCC checkout flows. After configuration, the process runs automatically with no manual input required.

## Setting up webhook notifications for WhatsApp provider

Follow these steps to subscribe to the `abandonedCheckout` webhook topic:

1. Get the callback URL where you want to receive event notifications from the webhook consumer (e.g., business service providers such as Spur, LimeChat, Gupshup, Whitespeed, or BiteSpeed).

2. Generate the webhook key using the below steps:

   * Go to the [Ecom Dashboard](https://brands.zecpe.com/login).

   * Enter the callback URL.

   * Generate the webhook key.

3. Share the generated webhook key to the webhook consumer.

4. Share the [integration steps](/payments/checkout/abandoned-checkout#integration-steps) with the WhatsApp provider.

### Integration steps

The **Ecom 360 Webhook** monitors key events, such as abandoned checkouts, in real time. When a merchants subscribes to this webhook, it receives structured JSON payloads containing customer and order details. This allows businesses to automate actions such as sending reminders or promotional offers.

#### Subscribing to a webhook topic

To subscribe to the `abandonedCheckout` topic, provide the following details:

* **Topic name**: `abandonedCheckout`
* **Callback URL**: The URL where you want to receive event notifications.
* **Webhook version**: `v1`
* **Secret key**: Cashfree Payments provides this key to verify the authenticity of received events.

After subscribing, the webhook sends real-time notifications to the specified callback URL when an event occurs.

#### Sample webhook event payload

When the `abandonedCheckout` event triggers, the webhook sends the following payload:

```json theme={"dark"}
{
  "event": "ABANDONED_CHECKOUT",
  "data": {
    "cart_id": "cart_123456",
    "store_url": "my-store.myshopify.com",
    "platform": "SHOPIFY",
    "cart_token": "abc123token",
    "email": "customer@example.com",
    "phone": "+1234567890",
    "abandoned_checkout_url": "https://my-store.myshopify.com/checkouts/abc123token",
    "original_total_price": 10000,
    "total_price": 8500,
    "total_discount": 1500,
    "utm_parameters": {
      "fbclid": "fbclid_123",
      "utm_campaign": "summer_sale"
    },
    "line_items": [
      {
        "product_id": "prod_001",
        "variant_id": "var_001",
        "sku": "SKU001",
        "price": 5000,
        "quantity": 2,
        "gram": 200,
        "title": "T-Shirt - Blue"
      },
      {
        "product_id": "prod_002",
        "variant_id": "var_002",
        "sku": "SKU002",
        "price": 3000,
        "quantity": 1,
        "gram": 150,
        "title": "Cap - Black"
      }
    ],
    "promotions": [
      {
        "code": "WELCOME10",
        "value": 1000
      },
      {
        "code": "SUMMER2025",
        "value": 500
      }
    ],
    "customer": {
      "email": "customer@example.com",
      "first_name": "John",
      "last_name": "Doe",
      "shipping_address": {
        "first_name": "John",
        "last_name": "Doe",
        "address1": "123 Elm Street",
        "address2": "Apt 4B",
        "city": "New York",
        "province": "NY",
        "country": "US",
        "zip": "10001",
        "phone": "+1234567890",
        "name": "John Doe",
        "province_code": "NY",
        "country_code": "US"
      }
    }
  }
}
```

#### Webhook headers

Each webhook request includes the following headers to help businesses identify and validate the request:

| **Header key**        | **Description**                                    |
| --------------------- | -------------------------------------------------- |
| `x-store-url`         | Specifies the store URL associated with the event  |
| `x-webhook-topic`     | Indicates the subscribed topic                     |
| `x-webhook-version`   | Displays the webhook version                       |
| `x-webhook-signature` | Provides the HMAC signature to verify authenticity |
| `x-request-id`        | Assigns a unique identifier for the request        |
| `User-Agent`          | Identifies the request as `Ecom360-v1`             |
| `Content-Type`        | Defines the payload format (`application/json`)    |

<Note>
  **Note**: For assistance with setup or further inquiries, contact your Cashfree Payments Account Manager or fill out the [Support Form](https://merchant.cashfree.com/merchants/landing?env=prod\&raise_issue=1)
</Note>
