> For the complete documentation index, see [llms.txt](https://help.citrusad.com/retail-media-interface/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.citrusad.com/retail-media-interface/integration/pt-br/data-api/catalog-products-2/syncing-products-via-api.md).

# Sincronizando produtos via API

## Sincronização padrão de produtos

Assim que seu catálogo for criado, você poderá sincronizar produtos com ele. O exemplo abaixo descreve um contexto padrão para sincronizar produtos:

```http
POST $BASE_URL/v1/catalog-products?teamId=<YOUR_TEAM_ID> HTTP/1.1
accept: application/json
content-type: application/json
Authorization: Basic <API_KEY>
{
    "catalogProducts": [
        {
            "catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
            "gtin": "23556578965543",
            "inventory": 50,
            "price": "19.99",
            "tags": [
                 "imageurl:https://your.image.host.com/image.jpg","name:Covergirl Clean 120 Creamy Natural Liquid Foundation30mL"
            ],
            "filters": [
                 "category:Health&Beauty","category:Grocery","brand:Covergirl","Special_Flag:0"
            ]
        }
    ]
}
```

Se for bem-sucedido, o seguinte objeto será retornado:

```json
{
    "catalogProducts": [
        {
            "teamId": "e8158f9b-bbb9-49fb-93fe-3ad481ca8450",
            "catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
            "gtin": "23556578965543",
            "inventory": 50,
            "price": 19.99,
            "tags": [
                 "imageurl:https://your.image.host.com/image.jpg",
                 "name:Covergirl Clean 120 Creamy Natural Liquid Foundation30mL"
            ],
            "filters": [
                 "category:Health&Beauty",
              	 "category:Grocery",
              	 "brand:Covergirl",
              	 "Special_Flag:0"
            ],
            "groups": [],
            "profit": null
        }
    ]
}
```

Neste contexto, valores vazios ou nulos para grupos e lucro podem ser ignorados.

## Sincronizando informações de localização

Você também pode sincronizar filtros para vários locais onde seus produtos estão na loja. Isso é útil para a otimização das informações do seu produto no nível da loja/localização.

```http
POST $BASE_URL/v1/catalog-products?teamId=<YOUR_TEAM_ID> HTTP/1.1
accept: application/json
content-type: application/json
Authorization: Basic <API_KEY>
{
    "catalogProducts": [
        {
            "catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
            "gtin": "23556578965543",
            "inventory": 50,
            "price": "19.99",
            "tags": [
                 "imageurl:https://your.image.host.com/image.jpg","name:Covergirl Clean 120 Creamy Natural Liquid Foundation30mL"
            ],
            "filters": [
                 "category:Health&Beauty","category:Grocery","brand:Covergirl","Special_Flag:0","location:123","location:ABC"
            ]
        }
    ]
}
```

Se for bem-sucedido, o seguinte objeto será retornado:

```json
{
    "catalogProducts": [
        {
            "teamId": "e8158f9b-bbb9-49fb-93fe-3ad481ca8450",
            "catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
            "gtin": "23556578965543",
            "inventory": 50,
            "price": 19.99,
            "tags": [
                 "imageurl:https://your.image.host.com/image.jpg",
                 "name:Covergirl Clean 120 Creamy Natural Liquid Foundation30mL"
            ],
            "filters": [
                 "category:Health&Beauty",
              	 "category:Grocery",
              	 "brand:Covergirl",
              	 "Special_Flag:0",
              	 "location:123",
              	 "location:ABC"
            ],
            "groups": [],
            "profit": null
        }
    ]
}
```

## Sincronizando informações de HFSS

Na sua sincronização de produtos, você precisará enviar um filtro de `hfss:true` or `hfss:false`. Isso permite que a Epsilon Retail Media filtre nossa interface adequadamente.

```json
POST $BASE_URL/v1/catalog-products?teamId=<YOUR_TEAM_ID> HTTP/1.1
accept: application/json
content-type: application/json
Authorization: Basic <API_KEY>
{
    "catalogProducts": [
        {
            "catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
            "gtin": "23556578965543",
            "inventory": 50,
            "price": "19.99",
            "tags": [
                 "imageurl:https://your.image.host.com/image.jpg","name:Covergirl Clean 120 Creamy Natural Liquid Foundation30mL"
            ],
            "filters": [
                 "hfss:true","category:Health&Beauty","category:Grocery","brand:Covergirl","Special_Flag:0","location:123","location:ABC"
            ]
        }
    ]
}
```

{% hint style="info" %}
Precisa saber mais sobre o HFSS?

Consulte a publicação do Governo do Reino Unido aqui: <https://www.gov.uk/government/publications/restricting-promotions-of-products-high-in-fat-sugar-or-salt-by-location-and-by-volume-price/restricting-promotions-of-products-high-in-fat-sugar-or-salt-by-location-and-by-volume-price-implementation-guidance>
{% endhint %}

## Sincronizando múltiplos produtos

Se você estiver sincronizando múltiplos produtos, poderá sequenciar até 100 por requisição.

Um exemplo de contexto para sincronizar dois produtos é descrito abaixo:

```http
POST $BASE_URL/v1/catalog-products?teamId=<YOUR_TEAM_ID> HTTP/1.1
accept: application/json
content-type: application/json
Authorization: Basic <API_KEY>
{
    "catalogProducts": [
        {
            "catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
            "gtin": "23556578965543",
            "inventory": 50,
            "price": "19.99",
            "tags": [
                 "imageurl:https://your.image.host.com/image.jpg",
                 "name:Covergirl Clean 120 Creamy Natural Liquid Foundation30mL"
            ],
            "filters": [
                 "category:Health&Beauty",
              	 "category:Grocery",
              	 "brand:Covergirl",
              	 "Special_Flag:0"
            ],
            "profit": "1.50"
        },
        {
            "catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
            "gtin": "23556578965738",
            "inventory": 26,
            "price": "8.50",
            "tags": [
                "imageurl:https://your.image.host.com/image.jpg",
                "name:Kelloggs Froot Loops Breakfast Cereal 500g"
            ],
            "filters": [
                "brand:Kelloggs",
                "category:Pantry",
                "category:BreakfastFoods",
                "category:Cereals",
                "Special_Flag:0"
            ],
            "profit": "0.50"
        }
    ]
}
```

Se for bem-sucedido, o seguinte objeto será retornado:

```json
{
    "catalogProducts": [
        {
            "gtin": "23556578965543",
            "catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
            "price": 19.99,
            "teamId": "e8158f9b-bbb9-49fb-93fe-3ad481ca8450",
            "groups": [],
            "tags": [
                 "imageurl:https://your.image.host.com/image.jpg",
                 "name:Covergirl Clean 120 Creamy Natural Liquid Foundation30mL"
            ],
            "filters": [
                 "category:Health&Beauty",
              	 "category:Grocery",
              	 "brand:Covergirl",
              	 "Special_Flag:0"
            ],
            "inventory": 50,
            "profit": 1.50,
            "tags": [
                "Natural",
                "Lasting",
                "Dry Skin",
                "Beige"
            ]
        },
        {
            "gtin": "23556578965736688",
            "catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
            "price": 8.50,
            "teamId": "e8158f9b-bbb9-49fb-93fe-3ad481ca8450",
            "groups": [],
            "tags": [
                "imageurl:https://your.image.host.com/image.jpg",
                "name:Kelloggs Froot Loops Breakfast Cereal 500g"
            ],
            "filters": [
                "brand:Kelloggs",
                "category:Pantry",
                "category:BreakfastFoods",
                "category:Cereals",
                "Special_Flag:0"
            ],
            "inventory": 26,
            "profit": 0.50,
            "tags": [
                "Pantry",
                "BreakfastFoods",
                "Cereals",
                "Kelloggs"
            ]
        }
    ]
}
```

## Atualizando o inventário de produtos

Para atualizar o inventário de um produto, você precisará re-sincronizar o produto com a Epsilon Retail Media. Em sua sincronização, sinalize o inventário do produto para `0`. Um exemplo é descrito abaixo:

```http
POST $BASE_URL/v1/catalog-products?teamId=<YOUR_TEAM_ID> HTTP/1.1
accept: application/json
content-type: application/json
Authorization: Basic <API_KEY>
{
    "catalogProducts": [
        {
            "catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
            "gtin": "23556578965543",
            "inventory": 0,
            "price": "19.99",
            "tags": [
                 "imageurl:https://your.image.host.com/image.jpg","name:Covergirl Clean 120 Creamy Natural Liquid Foundation30mL"
            ],
            "filters": [
                 "category:Health&Beauty","category:Grocery","brand:Covergirl","Special_Flag:0"
            ]
        }
    ]
}
```

<br>

## Atualizando imagens de produtos

Epsilon armazena URLs de imagens em cache para garantir um desempenho consistente e reduzir requisições ao seu servidor de imagens. Se você atualizar uma imagem sem alterar sua URL, deverá disparar explicitamente uma atualização na Epsilon. Para fazer isso:

* Remova a image\_url existente do produto.
* Reenvie a mesma image\_url assim que a atualização for concluída.

Como alternativa, se o seu servidor de imagens der suporte, você poderá forçar uma atualização anexando uma string de consulta (por exemplo, uma versão ou carimbo de data/hora) à URL existente. Isso fará com que Epsilon para recarregar a imagem..

{% hint style="info" %}
As imagens são usadas apenas na interface do usuário

As imagens dos produtos não são exibidas nas respostas dos anúncios. Quaisquer atualizações de imagem afetam apenas como o produto aparece na Epsilon interface do usuário enquanto ocorre a atualização do cache.
{% endhint %}

## Recuperando produtos

Assim que você tiver um produto em seu catálogo, poderá desejar recuperar as informações atuais dele mais tarde.

Para fazer isso, você pode fazer uma solicitação HTTP **GET** com o formato de URL de **`v1/catalog-products/catalogId/<PRODUCT_CODE>`**. O endpoint é capaz de aceitar um código de produto por solicitação. Uma solicitação de modelo está descrita abaixo:

```http
GET $BASE_URL/v1/catalog-products/<CATALOG_ID>/<PRODUCT_CODE> HTTP/1.1
accept: application/json
content-type: application/json
Authorization: Basic <API_KEY>
```

Você deve receber as informações atuais ingeridas no Epsilon Retail Media sistema para o código do produto. Um exemplo está abaixo

{% hint style="info" %}
O envio de uma atualização de produto não é instantâneo no Epsilon Retail Media sistema, pode levar um curto período de tempo para o Epsilon Retail Media ingerir totalmente uma atualização de produto. Não se preocupe se as informações de um produto não forem atualizadas instantaneamente ao recuperar os detalhes.
{% endhint %}

## Excluindo produtos

Para remover um produto do seu catálogo, envie uma solicitação HTTP DELETE usando o seguinte formato quando o produto não for mais necessário.

### Parâmetros da solicitação

O endpoint aceita um código de produto por solicitação, normalmente seu ID GTIN.

```http
DELETE $BASE_URL/v1/catalog-products/<CATALOG_ID>/<PRODUCT_CODE> HTTP/1.1
accept: application/json
content-type: application/json
Authorization: Basic <API_KEY>
```

### Excluindo produtos com ID de vendedor

Se o produto incluir um ID de vendedor, especifique-o como um parâmetro de consulta ao excluir o produto:

```http
DELETE $BASE_URL/v1/catalog-products/<CATALOG_ID>/<PRODUCT_CODE>?sellerId=abc123> HTTP/1.1
accept: application/json
content-type: application/json
Authorization: Basic <API_KEY>
```

### Tempo de processamento

A exclusão do produto pode levar entre 30 minutos e uma hora para ser processada.

{% hint style="info" %}
Importante

Se um produto estiver fora de estoque, defina seu inventário como 0 em vez de excluí-lo. Excluir um produto remove a capacidade de os anunciantes o selecionarem na Epsilon Retail Media plataforma, mesmo quando ele estiver novamente em estoque.
{% endhint %}

### Tratamento de erros

Se você receber um erro de "produto não encontrado", provavelmente significa que o produto não foi ingerido no Epsilon Retail Media sistema.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://help.citrusad.com/retail-media-interface/integration/pt-br/data-api/catalog-products-2/syncing-products-via-api.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
