> ## Documentation Index
> Fetch the complete documentation index at: https://www.ayrshare.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Огляд Webhooks

> Кінцеві точки API Webhook для реєстрації webhook для отримання оновлень про події

export const PlansAvailable = ({plans = [], maxPackRequired}) => {
  let displayPlans = plans;
  if (plans && plans.length === 1) {
    const lowerCasePlan = plans[0].toLowerCase();
    if (lowerCasePlan === "business") {
      displayPlans = ["Launch", "Business", "Enterprise"];
    } else if (lowerCasePlan === "premium") {
      displayPlans = ["Premium", "Launch", "Business", "Enterprise"];
    }
  }
  return <Note>
Available on {displayPlans.length === 1 ? "the " : ""}
{displayPlans.join(", ").replace(/\b\w/g, l => l.toUpperCase())}{" "}
{displayPlans.length > 1 ? "plans" : "plan"}.

{maxPackRequired && <span onClick={() => window.open('https://www.ayrshare.com/docs/additional/maxpack', '_self')} className="flex items-center mt-2 cursor-pointer">
 <span className="px-1.5 py-0.5 rounded text-sm" style={{
    backgroundColor: '#C264B6',
    color: 'white',
    fontSize: '12px'
  }}>
   Max Pack required
 </span>
</span>}
</Note>;
};

<PlansAvailable plans={["premium"]} maxPackRequired={false} />

## Що таке Webhook?

Webhook дозволяє отримувати сповіщення, коли відбуваються певні *дії* системи, через виклик URL, який Ви надаєте. Webhook також відомі як "URL Callbacks" або "HTTP push calls". Ваш URL повинен використовувати SSL і починатися з HTTPS.

<Card title="Дії Webhook" icon="link" href="/apis/webhooks/actions" horizontal>
  Перегляньте доступні дії для webhook.
</Card>

### Розуміння Webhook Ayrshare

Webhook класифіковані за конкретною дією і *реєструються на рівні Primary Profile або User Profile*. Будь-які оновлення для Primary або User Profiles спочатку надсилаються до зареєстрованого Webhook для User Profile. Якщо User Profile не має зареєстрованого Webhook, оновлення буде надіслано до зареєстрованого Webhook Primary Profile.

Наприклад:

<ul class="custom-bullets">
  <li>
    Якщо User Profile має зареєстрований Social Action Webhook і від'єднує TikTok,
    буде викликано зареєстрований URL Social Action Webhook для User Profile. Webhook
    Primary Profile *не буде* викликано.
  </li>

  <li>
    Якщо User Profile від'єднує TikTok і *не має* зареєстрованого Social
    Action Webhook, але Primary Profile має зареєстрований Webhook, буде викликано
    зареєстрований URL Social Action Webhook для Primary Profile.
  </li>
</ul>

### Реєстрація Webhook

Зареєструйте Webhook, надавши URL кінцевої точки та тип дії до кінцевої точки POST [`/hook/webhook`](/apis/webhooks/register). Коли дія відбувається, до наданого URL надсилається повідомлення `HTTP POST`.
Наприклад, зареєструйте URL для отримання сповіщень про статус запланованого допису.

URL кінцевої точки Webhook не повинен використовувати перенаправлення і має бути кінцевим URL призначення.

Якщо Ви зареєструєте лише webhook Primary Profile, User Profiles автоматично успадкують webhook Primary Profile.
Щоб мати унікальний webhook для кожного User Profile, Ви повинні зареєструвати webhook для кожного User Profile.

<Note>
  Після отримання Вашим Webhook `HTTP POST`, Ваш сервер **повинен** відповісти
  HTTP-статусом `200`, щоб позначити виклик як успішний. Якщо Ваш сервер
  не відповість протягом 10 секунд, буде зареєстровано відповідь `503`.
</Note>

Ви також можете зареєструвати webhook у Developer Dashboard.

### Повторні спроби Webhook

Якщо HTTP-відповідь Вашого сервера не в діапазоні успіху `200-299`, система автоматично повторить виклик Webhook ще двічі. Перша повторна спроба буде через 5 секунд, а друга — через 30 секунд. Повторні спроби матимуть той самий `hookId` і будуть позначені як спроби повторення.

## Безпека Webhook

Ви можете додати додаткову безпеку, встановивши автентифікацію HMAC як HTTP-запит. Це часто робиться для запобігання атакам відтворення. Ayrshare використовує [HMAC-SHA256](https://en.wikipedia.org/wiki/HMAC) для хешування тіла повідомлення та включає його разом із UNIX timestamp у заголовок POST.

```bash theme={"system"}
X-Authorization-Timestamp : <Unix Timestamp In Seconds>
X-Authorization-Content-SHA256 : <HashedContent>
```

На основі секретного ключа, встановленого при [реєстрації Вашого webhook](/apis/webhooks/register), Ви можете валідувати POST, порівнявши заголовок X-Authorization-Content-SHA256 з хешем SHA256 тіла POST. Секретний ключ використовується для всіх дій webhook, тому встановлення його для однієї дії змінить секрет для всіх дій.

## Журнали Webhook

У Панелі керування Ayrshare Ви можете переглядати [активні webhook](https://app.ayrshare.com/webhooks), бачити деталі надісланого Webhook, статус відповіді Вашого сервера та повторно надсилати Webhook на зареєстрований URL.
Переключіться на конкретний User Profile, щоб переглядати журнали Webhook цього профілю.

### Коди відповідей HTTP

Перший стовпець показує успішну HTTP-відповідь ✔️ (200, 300) від Webhook або невдалу відповідь ✖️ (400, 500).

Переключіться на конкретний user profile, щоб переглядати журнали Webhook цього профілю.

### Відсоток помилок

"Error Rate" з останніх 1 000 дописів можна переглянути на сторінках Actions та Webhook Logs у панелі керування. Будь-яка відповідь webhook від Вашого сервера з кодом 400-500 вважається помилкою.
