Webhooks
Вихідні вебхуки AOA: платформа сама повідомляє вашу систему про оплати, повернення та скасування подій.
Вебхук — це коли ми самі надсилаємо запит вам, щойно щось стається: квиток оплачено, кошти повернено, подію скасовано. Вам не треба опитувати нас у циклі.
Найважливіше — скасування подій
Опитування статусу замовлення покриває оплату, але не те, що стається згодом. Подію можуть скасувати через тиждень після покупки — а ніхто не опитує статус давно купленого квитка. Без вебхука ваша система про це просто не дізнається.Потрібен API-ключ із дозволом webhooks:write. Зареєструйте адресу, куди слати запити, і перелічіть події:
curl -X POST https://aoa.com.ua/api/v1/webhooks \
-H "Authorization: Bearer aoa_live_…" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/hooks/aoa",
"events": ["order.paid", "event.cancelled"]
}'{
"data": {
"id": "8f3c1a92-…",
"url": "https://example.com/hooks/aoa",
"events": ["order.paid", "event.cancelled"],
"secret": "whsec_9Kq2mR7vXp4nT8wL5yB1zC4d",
"createdAt": "2026-07-30T12:00:00.000Z"
}
}Секрет показується один раз
Полеsecret повертається тільки у відповіді на створення — далі ми зберігаємо його зашифрованим і показати повторно не можемо. Збережіть його одразу: ним ви перевіряєте підпис кожного запиту.Один ключ може мати до 10 адрес — зручно, коли тестове й бойове середовища слухають різні хости.
https і порт 443 або 8443.localhost, 10.x, 192.168.x, 169.254.x — відхиляються. Перевірка робиться і при реєстрації, і перед кожною доставкою: якщо домен пізніше почне резолвитись у внутрішню адресу, ми припинимо на нього слати.POST /hooks/aoa HTTP/1.1
Content-Type: application/json
AOA-Signature: t=1800000000,v1=5f2a…
AOA-Delivery-Id: 3d9f7c21-…
AOA-Event-Type: order.paid
{
"id": "3d9f7c21-…",
"type": "order.paid",
"createdAt": "2026-07-30T12:00:00.000Z",
"data": {
"paymentId": "d3f1a2b4-…",
"eventId": "a1b2c3",
"status": "SUCCESS",
"amountMinor": 90000,
"currency": "UAH",
"attendeeId": "clx9attendee01"
}
}| Заголовок | Призначення |
|---|---|
AOA-Signature | Підпис тіла. Обовʼязково перевіряйте — див. Перевірка підпису |
AOA-Delivery-Id | Ідентифікатор доставки. При повторі той самий — за ним дедуплікуйте |
AOA-Event-Type | Тип події — дублює поле type в тілі, зручно для маршрутизації |
AOA-Delivery-Id.Ми повторюємо доставку з наростаючими паузами: через хвилину, 5 хвилин, 30 хвилин, 2 години і 6 годин. Разом близько девʼяти годин — цього вистачає, щоб пережити нічний деплой чи аварію.
Якщо адреса не відповідає дуже довго, ми вимикаємо її автоматично, щоб не тримати чергу мертвих запитів. Те саме стається одразу, без повторів, якщо адреса почала резолвитись у внутрішню мережу — причина буде видна у полі lastError останньої доставки.
Побачити стан можна у GET /api/v1/webhooks — поле disabledAt. Увімкнути назад:
curl -X PATCH https://aoa.com.ua/api/v1/webhooks/{id} \
-H "Authorization: Bearer aoa_live_…" \
-H "Content-Type: application/json" \
-d '{"isActive": true}'Писати обробник не обовʼязково: вебхуки AOA працюють з Make, Zapier і n8n напряму. Готові рецепти — Make, Zapier, n8n.