docs
UAEN
Docs/Платформа/Вебхуки

Вебхуки

Вебхуки дозволяють отримувати повідомлення в реальному часі про завершення обробки документів, замість постійного поллінгу API.

Як працюють вебхуки

  1. Ви вказуєте webhook_url при створенні документа.
  2. Rekognita обробляє документ.
  3. Після завершення Rekognita надсилає POST-запит на ваш URL із результатом.

Налаштування

Вкажіть URL вебхука при відправці документа:

curl -X POST https://api.rekognita.com/v1/documents \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "file=@invoice.pdf" \
  -F "webhook_url=https://your-server.com/webhooks/rekognita"

Формат payload

Rekognita надсилає POST-запит з JSON-тілом:

{
  "event": "document.completed",
  "document_id": "doc_abc123",
  "status": "completed",
  "created_at": "2025-01-15T12:00:00Z",
  "completed_at": "2025-01-15T12:00:03Z",
  "result": {
    "text": "Розпізнаний текст документа...",
    "confidence": 0.991,
    "pages": 1,
    "language": "uk"
  }
}

Типи подій

ПодіяОпис
document.completedДокумент успішно оброблено
document.failedПомилка при обробці документа
document.partialЧастковий результат (для великих документів)

Верифікація запитів

Кожен вебхук містить заголовок X-Rekognita-Signature для перевірки автентичності (HMAC-SHA256):

import crypto from 'crypto';

function verifyWebhook(payload: string, signature: string, secret: string) {
  const expected = crypto
    .createHmac('sha256', secret)
    .update(payload)
    .digest('hex');
  
  return crypto.timingSafeEqual(
    Buffer.from(signature),
    Buffer.from(expected)
  );
}
Безпека. Завжди перевіряйте підпис вебхука. Webhook secret можна знайти у Dashboard → Settings → Webhooks.

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

Якщо ваш сервер не повернув код 2xx, Rekognita повторить запит:

  • 1-ша повторна спроба — через 30 секунд
  • 2-га — через 5 хвилин
  • 3-тя — через 30 хвилин
  • Фінальна — через 2 години
Ваш ендпоінт повинен відповідати протягом 10 секунд. Якщо обробка займає більше часу, збережіть payload та обробіть асинхронно.