Skip to main content
Product and catalog interactive messages use a Meta Commerce catalog you already manage in Meta. GET /v1/catalog/products reads Meta directly. POST /v1/catalog/sync copies the catalog into a local cache that lasts one hour. commerce.catalog_sync is on by default and can be turned off per connection.
Catalog is on the Growth and Pro plans. On a smaller plan you cannot add or change products, or send product messages from the inbox. Test mode is never limited. See Plans and limits.

Shop settings

A WhatsApp shop starts with a catalog in Meta Commerce Manager. Connect the catalog to your number and choose what contacts see. Then add products in LazyApp under Products or with POST /v1/catalog/items (see Manage products), or keep using Commerce Manager, a data feed or your store platform. In the console, open Phone numbers → your number → Advanced → Shop. Over the API:
Scope: messages:send. GET /v1/connections/{connection}/commerce reads the same settings with messages:read. The response:
catalog_link opens your catalog in WhatsApp. Share it anywhere, or send it as a catalog link. Product sends still accept catalog_id in the interactive payload; the saved value is the default for the inbox and for GET /v1/catalog/products.

List products

Optional query params: connection_uuid, phone_number_id, limit, cursor. Required scope: messages:read The connection must have catalog_id set. LazyApp proxies Meta’s catalog products and returns:

Sync products

Required scope: messages:send The response includes catalog_id, synced (how many products were cached), synced_at, and products in the same shape as the list above. The cache lasts one hour. If commerce.catalog_sync is off, the call returns 422.

Send product interactive messages

Use POST /v1/messages with type: interactive. Check messages.product / messages.product_list / messages.catalog on capabilities first.
catalog_message opens the catalog linked to the WABA on Meta. The optional thumbnail is a product retailer id, not the catalog id.

Product carousels

A product carousel shows products as cards the contact swipes through. Check messages.carousel on capabilities.
In the inbox, choose Product carousel as the interactive message type.

Templates with products

Outside the 24-hour window, products go in templates. Create them with these buttons, then fill in the products when you send through template.features: In the template builder, a product card carousel is a carousel with Product as the card type. LazyApp builds each card from the number’s catalog; pass catalog_id on a card to use another one. See Template formats for every card field.
catalog_link from the shop settings is a plain https://wa.me/c/… link. Send it in any text message, or put it in a template URL button. When the contact taps it, WhatsApp opens your catalog.

Inbound orders

When a contact submits a WhatsApp cart, LazyApp stores an inbound message with type order. The structured cart is on content.order:
That content object is included on message.received webhooks. If you set order_handoff_url, LazyApp also posts { "type": "commerce.order", "order": …, "connection": … } to it. To take payment for a cart, send a payment request.