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

# Product Create | Webhook Events

> Fires when a new product is added to an account.

The `ProductCreate` event fires each time a new product is saved to an account's catalog. The payload includes the full product definition — name, type, variants, media assets, and availability — enabling you to sync product catalogs to external platforms, invalidate caches, or trigger merchandising workflows automatically.

## Payload

| Field                 | Type      | Description                                                                                                    |
| --------------------- | --------- | -------------------------------------------------------------------------------------------------------------- |
| `_id`                 | `string`  | Unique identifier for the product                                                                              |
| `locationId`          | `string`  | Account ID where the product was created                                                                       |
| `name`                | `string`  | Display name of the product                                                                                    |
| `description`         | `string`  | Full product description                                                                                       |
| `productType`         | `string`  | Product category type (e.g., `PHYSICAL`, `DIGITAL`, `SERVICE`)                                                 |
| `availableInStore`    | `boolean` | Whether the product is visible and purchasable in the storefront                                               |
| `userId`              | `string`  | ID of the user who created the product                                                                         |
| `variants`            | `array`   | Variant dimensions defined for the product (e.g., Size, Color), each with an `id`, `name`, and `options` array |
| `variants[].id`       | `string`  | Unique identifier for the variant dimension                                                                    |
| `variants[].name`     | `string`  | Variant dimension name (e.g., `"Size"`)                                                                        |
| `variants[].options`  | `array`   | Available options for this variant, each with an `id` and `name`                                               |
| `medias`              | `array`   | Media assets attached to the product (images or videos)                                                        |
| `medias[].id`         | `string`  | Unique identifier for the media asset                                                                          |
| `medias[].title`      | `string`  | File name or title of the media asset                                                                          |
| `medias[].url`        | `string`  | Public URL of the media asset                                                                                  |
| `medias[].type`       | `string`  | Media type (e.g., `image`, `video`)                                                                            |
| `medias[].isFeatured` | `boolean` | Whether this asset is the primary/featured image                                                               |
| `statementDescriptor` | `string`  | Short description that appears on customer payment statements                                                  |
| `image`               | `string`  | URL of the primary product image                                                                               |
| `createdAt`           | `string`  | ISO 8601 timestamp when the product was created                                                                |
| `updatedAt`           | `string`  | ISO 8601 timestamp of the most recent update                                                                   |

## Example payload

```json theme={null}
{
  "_id": "655b33a82209e60b6adb87a5",
  "description": "This is a really awesome product",
  "variants": [
    {
      "id": "38s63qmxfr4",
      "name": "Size",
      "options": [{ "id": "h4z7u0im2q8", "name": "XL" }]
    }
  ],
  "medias": [
    {
      "id": "fzrgusiuu0m",
      "title": "product-image.png",
      "url": "https://storage.googleapis.com/hoopai-assets/3SwdhCsvxI8Au3KsPJt6/media/sample.png",
      "type": "image",
      "isFeatured": true
    }
  ],
  "locationId": "3SwdhCsvxI8Au3KsPJt6",
  "name": "Awesome Product",
  "productType": "PHYSICAL",
  "availableInStore": true,
  "userId": "6YAtzfzpmHAdj0e8GkKp",
  "createdAt": "2023-11-20T10:23:36.515Z",
  "updatedAt": "2024-01-23T09:57:04.846Z",
  "statementDescriptor": "abcde",
  "image": "https://storage.googleapis.com/hoopai-assets/3SwdhCsvxI8Au3KsPJt6/media/65af8d5df88bdb4b1022ee90.png"
}
```

## Related

* [Product Update](/api-reference/webhooks/product-update) — fires when a product is modified
* [Product Delete](/api-reference/webhooks/product-delete) — fires when a product is removed
* [Products API](/api-reference/products/overview) — create, retrieve, and manage products programmatically
