## Overview

Sync connects your **native catalog** to Meta's **WhatsApp Business Catalog**. Once bound, products
exist in both places and can be kept in **two-way sync**: what you record on the platform is pushed to
Meta, and what exists in Meta's catalog can be imported into the platform.

This is what makes it possible to send native products on WhatsApp, open the catalog inside a
conversation, and receive orders from the customer's cart — all from a single, up-to-date catalog.

## Prerequisites

- A connected, working **WhatsApp (Cloud API) Inbox**.
- A catalog set up in your Meta business account (Business / Commerce Manager).
- The **Catalog & Commerce** module enabled and permission to manage sync sources.
- A native catalog with products recorded (recommended before the first sync).

## Step by step

1. In the **Catalog** area, open the **sync sources** configuration.
2. Create a source of type **WhatsApp Business Catalog (Meta)** and select the Meta catalog to bind.
3. Bind the source to the matching **WhatsApp Cloud inbox** — the access credential is reused
   automatically from that inbox, with no need to enter a separate token.
4. Set the **sync interval** (how often the platform checks Meta's catalog).
5. Run the first sync and review the imported/updated products.
6. From then on, changes flow both ways according to the configured interval, and you can force a
   manual sync whenever you want.

## Settings & options

- **Bound Meta catalog**: which catalog from the business account is connected to the source.
- **Inbox**: the WhatsApp Cloud inbox used for the credential and to send products.
- **Sync interval**: how frequently automatic syncs run.
- **Manual sync**: a button to run the sync right away.
- **Two-way**: products recorded on the platform are published to Meta; Meta products are imported into
  the platform, matching identifiers on each side.

### Publish safely and review validation

Each **sellable variant** is published as its own Meta catalog item. Variants of the same product stay
grouped, but have separate identities so price and availability never bleed between sizes, colors, or
other options.

Before sending, the platform blocks the variant and shows the reason when a Meta requirement is missing:
name, description, **brand**, public HTTPS link, price, currency, or a public HTTPS image at least
500 × 500 pixels. Complete the fields on the product and try again — a local block is never treated as a
synchronized product.

After Meta accepts a batch, it still validates the content asynchronously. Open the product and review
the status on each variant: **Waiting for validation**, **Validated**, **Rejected**, **Publishing
blocked**, or **Inconclusive validation**. Treat an item as available on Meta only after it is
**Validated**; a rejection message points to the field that needs correction. **Inconclusive validation**
means Meta answered without a recognized result. Transient states such as “started” are checked again
for up to four minutes; if **validation timed out** appears, publish the product again and follow the
execution history.

On the way back in, the items of one group return to the **same product**, each as its own variant. The
platform recognizes the product by its group and by each variant identifier, so a re-import updates the
existing product instead of creating a copy.

### Assisted reconciliation of remote items

When editing an outbound or two-way Meta source, **Assisted Meta catalog reconciliation** lists remote
items that do not have a local variant with the same `retailer_id`. It is a review step only:

1. Refresh the list and verify the name and identifier of every potential orphan.
2. Select only items that should really leave the Meta catalog.
3. Click **Request selected removal** and confirm in the dialog.

Nothing is removed by opening or refreshing the list. The platform re-reads the catalog when you submit,
rejects a selection that has changed, and also rejects a batch above the **10%** remote-catalog safety
limit. Even after the request is accepted, Meta validates the batch: the UI says “submitted for
validation”, not “removed”, until the remote confirmation arrives.

## Use cases

- A store that already has a catalog in Meta and wants to bring it into the platform to serve and bill.
- An operation that prefers to record products on the platform and publish them automatically on
  WhatsApp.
- A team that maintains a single catalog and wants to avoid updating prices in two places.

## Tips, limits & best practices

- **Automatic credential**: when you bind the source to the WhatsApp Cloud inbox, the platform uses
  that inbox's credential — you don't need to register a token just for the catalog.
- **Images must be reachable**: the sync downloads product images. If the original image is hosted at
  an address that goes offline, it won't be imported. Keep images in a public, stable HTTPS location;
  use at least 500 × 500 pixels for publishing.
- **Major-unit amounts**: prices stay in major units (4.97 = R$4.97) on both sides.
- Run the first sync outside peak hours so you can review the result calmly.

## Troubleshooting

- **An image is rejected during publication**: when validation permanently rejects a file, publication
  tries the product's next image. If all images are rejected, the error remains and the product is not
  sent with a missing image. Temporary processing unavailability also remains an error; try again
  after it clears. The image safety limits remain in effect.
- **Imported products without images**: the original image may be unreachable; ensure a public address
  and run the sync again (each run re-attempts the image download).
- **Nothing syncs**: confirm the source is bound to a valid WhatsApp Cloud inbox and that the selected
  Meta catalog is the right one.
- **A change didn't appear on the other side**: wait for the sync interval or run a manual sync. For
  publishing, open the variant and check whether Meta validation is waiting, blocked, or rejected; an
  accepted batch response is not yet catalog confirmation.
- **Validation timed out**: Meta did not provide a final result during the automatic checks. Publish the
  product again; if the warning persists, inspect the item in Meta Commerce Manager.
- **An item is not listed in reconciliation**: remote items without a `retailer_id` are never offered
  for automated removal. Locate those items directly in Meta Commerce Manager.

## See also

- [Native catalog: products, categories, images and prices](/hc/ajuda/articles/catalog-commerce-catalogo-nativo-en)
- [Send a product and receive orders in the conversation](/hc/ajuda/articles/catalog-commerce-enviar-produto-pedido-na-conversa-en)
- [Catalog & Commerce overview](/hc/ajuda/articles/catalog-commerce-overview-en)