> 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/cs/data-api/api-overview/oauth-20-authentication.md).

# Autentizace OAuth 2.0

{% hint style="info" %}
OAuth 2.0 je k dispozici pouze na koncovém bodě /ads

Při integraci reportování objednávek přes API budete muset integrovat koncový bod /orders s ověřením Basic a vaším tajným klíčem API.
{% endhint %}

## Klientské ID a Klientský tajný klíč

Tento `client_id` a `client_secret` vám poskytne váš Technical Account Manager. Client Secret je soukromý a neměl by být sdílen.

## Žádost o přístupové tokeny

Chcete-li získat Access Token, musíte odeslat žádost obsahující `client_id` a `client_secret`. Za tímto účelem musí obchodník odeslat požadavek POST na Epsilon Retail Media koncový bod autorizačního serveru:

```http
https://$BASE_URL/v1/oauth2/token
```

{% hint style="info" %}
`/oauth2/token` poskytuje pouze příslušný token. Tyto tokeny budete používat k interakci s různými koncovými body integrace.
{% endhint %}

Váš požadavek bude vyžadovat autorizaci Basic odeslanou prostřednictvím hlavičky požadavku Authorization obsahující kódování obchdoníka `client_id` a `client_secret` zakódované v base64:

`Authorization: "Basic" + base64encode(client_id + ":" + client_secret)`

Budete muset přidat následující parametr pomocí `application/x-www-form-urlencoded` formátu v těle požadavku HTTP:

`grant_type=client_credentials`

Požadavek bude vypadat následovně:

```http
POST https://$BASE_URL/v1/oauth2/token
Content-Type: application/x-www-form-urlencoded
Authorization: Basic <base64 encoded id+key>
grant_type=client_credentials
```

## Přijetí přístupového tokenu

Odpověď bude obsahovat následující informace

* `access_token`: Přístupový token, který se má použít při volání Epsilon Retail Media API
* `expires_in`: Doba v sekundách, než vyprší platnost přístupového tokenu
* `token_type`: Typ vráceného tokenu. V tomto případě to bude vždy Bearer

Níže je uveden příklad odpovědi

```json
{
  "access_token": "xxxxx.yyyyy.zzzzz",
  "expires_in": 3600,
  "token_type": "Bearer"
}
```

## Použití tokenu

Volání vůči Epsilon Retail Media koncovým bodům API lze provést jednoduše přidaným vygenerovaného přístupového tokenu do hlavičky Authorization v požadavku `Authorization: “Bearer “ <access_token>`

```http
POST $BASE_URL/v1/ads/generate HTTP/1.1
accept: application/json
content-type: application/json
Authorization: Bearer <access_token>
{
    "customerId": "wertg5432a",
    "sessionId": "ec9-4e07-881d-3e9",
    "placement": "category",
    "catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
    "productFilters": [
         ["category:Cupboard/Snacks"]
    ],
    "options": {
                             "filterMode": "AndOr"
                             },
    "maxNumberOfAds": 3
}
```

## Chyby požadavku

### Neplatný klient

Pokud je `client_id` or `client_secret` odeslaný v požadavku nesprávný, obdržíte takovouto odpověď:

```json
{
  "error": "invalid_client"
}
```

Ujistěte se, že používáte správné přihlašovací údaje. Zkontrolujte svůj `client_id` a `client_secret` a ujistěte se, že při volání koncového bodu /token používáte autorizaci Basic správně. ##Neplatný požadavek Chyba neplatného požadavku bude vrácena z autorizačního serveru, pokud v požadavku chybí požadovaný parametr, obsahuje neplatnou hodnotu parametru, obsahuje parametr více než jednou nebo je jinak chybně zformulován.

```json
{
  "error": "invalid_request"
}
```

Zajistěte:

* Zahrnout pouze `grant_type=client_credentials` do těla požadavku
* Nastavit správný `Content-Type` do hlavičky požadavku


---

# 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/cs/data-api/api-overview/oauth-20-authentication.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.
