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 withPOST /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:
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
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
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
UsePOST /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. Checkmessages.carousel on capabilities.
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 throughtemplate.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 links
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 withtype order. The structured cart is on content.order:
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.