# customer.pending\_cancellation

## `customer.pending_cancellation`

#### Payload Structure

```js
{
  "payload": {
    "createdAt": "2025-05-30T11:20:43.043Z",
    "merchantId": "inveterate",
    "detail": {
      "nextSegmentId": null,
      "cancellationSource": "CUSTOMER",
      "switchToFreeTier": null,
      "cancelRequest": {
        "createdAt": "2025-05-30T11:20:36.919Z",
        "cancelDate": "2025-06-30T11:00:00Z",
        "nextSegmentId": null,
        "cancellationSource": "CUSTOMER",
        "merchantId": "inveterate",
        "billingTierId": "6a538edc",
        "switchToFreeTier": false,
        "contractId": "23578214531",
        "customerId": "7733576892547",
        "cancelToken": "15ae1f74-9555-456a-b003-da5ec076a48e",
        "updatedAt": "2025-05-30T11:20:40.234Z",
        "status": "PENDING_CANCELLATION"
      },
      "effectiveCancellationDate": "2025-06-30T11:00:00Z"
    },
    "updatedAt": "2025-05-30T11:20:43.043Z",
    "customerId": "7733576892547"
  },
  "metadata": {
    "id": "de453003ee3da27b9ac7543cb49f5e77",
    "retryCount": 0,
    "shopDomain": "inveterate.myshopify.com",
    "topic": "customer.pending_cancellation",
    "version": "2025-06",
    "triggerredAt": "2025-05-30T11:20:44.093Z"
  }
}
```

#### Payload Fields

**payload**

* `createdAt` (string): ISO timestamp when the event was created
* `merchantId` (string): Merchant identifier
* `customerId` (string): Customer identifier
* `updatedAt` (string): ISO timestamp when the event was last updated
* `detail` (object): Additional details about the pending cancellation
  * `nextSegmentId` (string|null): ID of the next segment (if applicable)
  * `cancellationSource` (string): Who initiated the cancellation (e.g., "CUSTOMER")
  * `switchToFreeTier` (boolean|null): Whether switching to free tier instead of complete cancellation
  * `effectiveCancellationDate` (string): ISO timestamp when the cancellation will take effect
  * `cancelRequest` (object): Detailed information about the cancellation request
    * `createdAt` (string): When the cancellation request was created
    * `cancelDate` (string): When the cancellation will be effective
    * `nextSegmentId` (string|null): Next segment ID
    * `cancellationSource` (string): Source of cancellation
    * `merchantId` (string): Merchant identifier
    * `billingTierId` (string): ID of the billing tier being cancelled
    * `switchToFreeTier` (boolean): Whether to switch to free tier
    * `contractId` (string): Contract ID being cancelled
    * `customerId` (string): Customer identifier
    * `cancelToken` (string): Unique cancellation token
    * `updatedAt` (string): When the request was last updated
    * `status` (string): Current status (e.g., "PENDING\_CANCELLATION")

**metadata**

* `id` (string): Unique event identifier
* `retryCount` (number): Number of retry attempts for this event
* `shopDomain` (string): Shopify domain of the merchant
* `topic` (string): Event topic name
* `version` (string): API version
* `triggerredAt` (string): ISO timestamp when the event was triggered
