> ## Documentation Index
> Fetch the complete documentation index at: https://doc.convo.co.in/llms.txt
> Use this file to discover all available pages before exploring further.

# Set Up and Send WhatsApp Commerce Catalogues in Convo

> Connect your product catalogue to WhatsApp, add products, and send interactive shopping messages to customers using Convo's catalogue API.

WhatsApp Commerce Catalogues bring your product inventory directly into the chat window. Customers can browse product cards with images, prices, and descriptions — and add items to a shopping cart — without ever leaving WhatsApp. Convo's catalogue API lets you create and manage that inventory programmatically, connect it to your WhatsApp Business Account (WABA), and send interactive product messages that turn conversations into conversions.

<Note>
  WhatsApp supports several catalogue verticals beyond retail: `commerce`, `destinations`, `hotels`, `flights`, `home_listings`, and `vehicle_offers`. Choose the vertical that best matches your industry when creating a catalogue.
</Note>

***

## Getting Started with Catalogues

<Steps>
  <Step title="Create a catalogue">
    Create a new catalogue container. This registers the catalogue in Meta's Commerce Manager and associates it with your Convo project.

    ```text theme={null}
    POST https://connect.api-wa.co/project-apis/v1/project/{project_id}/create-catalog
    ```

    | Header                     | Value               |
    | -------------------------- | ------------------- |
    | `X-API-WA-Project-API-Pwd` | `YOUR_API_PASSWORD` |
    | `Content-Type`             | `application/json`  |

    ```json theme={null}
    {
      "name": "Summer Collection 2024",
      "vertical": "commerce",
      "default_image_url": "https://example.com/default-product.jpg"
    }
    ```

    The response includes the new `catalog_id`. Save it — you'll need it for every subsequent step.
  </Step>

  <Step title="Connect to WhatsApp (WABA)">
    Link your catalogue to your WhatsApp Business Account so products become visible on your WhatsApp profile and in interactive messages.

    ```text theme={null}
    POST https://connect.api-wa.co/project-apis/v1/project/{project_id}/connect-meta-catalog
    ```

    ```json theme={null}
    {
      "catalogueId": "738763614338341"
    }
    ```

    A catalogue can only be connected to one WABA at a time. Only one catalogue can be active per WABA.
  </Step>

  <Step title="Add products">
    Add individual products to the catalogue. Each product needs a unique `retailer_id` — this is what you reference in interactive messages when you want to surface a specific item.

    ```text theme={null}
    POST https://connect.api-wa.co/project-apis/v1/project/{project_id}/create-product
    ```

    ```json theme={null}
    {
      "catalogId": "738763614338341",
      "name": "Premium T-Shirt",
      "category": "Clothing",
      "currency": "INR",
      "price": "89900",
      "retailer_id": "tshirt-001",
      "image_url": "https://example.com/tshirt.jpg",
      "description": "100% cotton premium T-shirt",
      "url": "https://example.com/products/tshirt-001",
      "brand": "MyBrand",
      "sale_price": "69900"
    }
    ```

    | Field         | Description                                                            |
    | ------------- | ---------------------------------------------------------------------- |
    | `price`       | Price in the **smallest currency unit** (paise for INR, cents for USD) |
    | `sale_price`  | Optional discounted price, also in smallest currency unit              |
    | `retailer_id` | Your internal SKU or product ID — must be unique within the catalogue  |
    | `url`         | Product page URL opened when a customer taps "View on website"         |
  </Step>

  <Step title="Send a product message">
    Send an interactive product card directly in a conversation. The recipient sees the product image, name, price, and an **Add to Cart** button.

    ```text theme={null}
    POST https://connect.api-wa.co/project-apis/v1/project/{project_id}/messages
    ```

    ```json theme={null}
    {
      "to": "917089379345",
      "type": "interactive",
      "messaging_product": "whatsapp",
      "recipient_type": "individual",
      "interactive": {
        "type": "product",
        "body": {
          "text": "Here's what you were looking at:"
        },
        "action": {
          "catalog_id": "738763614338341",
          "product_retailer_id": "tshirt-001"
        }
      }
    }
    ```
  </Step>
</Steps>

***

## Multi-Product Messages

A `product_list` message lets you display multiple products grouped into labelled sections in a single message — perfect for sending a "you might also like" carousel or a category browse view.

```json theme={null}
{
  "to": "917089379345",
  "type": "interactive",
  "messaging_product": "whatsapp",
  "recipient_type": "individual",
  "interactive": {
    "type": "product_list",
    "header": {
      "type": "text",
      "text": "Summer Picks Just for You"
    },
    "body": {
      "text": "Browse our latest arrivals and tap any product to learn more."
    },
    "footer": {
      "text": "Free shipping on orders above ₹999"
    },
    "action": {
      "catalog_id": "738763614338341",
      "sections": [
        {
          "title": "Tops",
          "product_items": [
            {"product_retailer_id": "tshirt-001"},
            {"product_retailer_id": "polo-002"}
          ]
        },
        {
          "title": "Bottoms",
          "product_items": [
            {"product_retailer_id": "jeans-010"},
            {"product_retailer_id": "shorts-011"}
          ]
        }
      ]
    }
  }
}
```

You can include up to **30 products** across a maximum of **10 sections** in a single `product_list` message.

***

## Sync Catalogue

If you manage your product inventory directly in Meta's Commerce Manager (or via a third-party feed), use the sync endpoint to pull those changes into Convo.

**Sync catalogue metadata and product listings**:

```text theme={null}
GET https://connect.api-wa.co/project-apis/v1/project/{project_id}/sync-catalogue
```

This endpoint returns the updated state of your catalogue after the sync completes. Run it after any bulk product import in Commerce Manager to make the new items available for messaging.
