Encoders & Utilities

Webhook Tester

Генерує унікальний URL, приймає будь-які HTTP-запити і показує метод, headers, query і body наживо.

Generates a new bin with a unique receiver URL. Solve the captcha to continue.

How it works

  • All HTTP methods are accepted (GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS).
  • Text bodies are stored up to 10 KB; larger bodies are truncated. Binary bodies (images, files, octet-stream) are replaced with a 1 KB stub plus SHA-256 of the original.
  • A bin keeps the 10 most recent requests; older entries are dropped automatically (FIFO).
  • Bins live for 24 hours after their last activity. View opens, receive hits, all reset the timer.
  • Recognized signature headers (GitHub, Stripe, Slack, Shopify, Twilio) are highlighted, but never verified — we do not know your secret.

Про цей інструмент

Webhook Tester дає вам публічну URL в один клік, що захоплює будь-який HTTP-запит, надісланий до неї — метод, заголовки, query-параметри, body (текст або binary), timestamps і source-IP. URL живе 24 години; запити стримляться у ваш браузер у реальному часі через Server-Sent Events, тож ви бачите вхідні hits у момент, коли вони приземляються, без polling. Кожна унікальна URL приватна (128-bit random-токен у path), тож лише ті, з ким ви її поділилися, можуть на неї постити.

Усе захоплене показується side-by-side: raw request-line, headers, parsed query, body з авто-детекцією JSON / XML / form-encoded / plain text. Заголовки на кшталт X-Hub-Signature, Stripe-Signature або будь-який HMAC-style verification можна інспектувати для дебагу signing-схем. Можна також налаштувати response — змінити status-код, додати response-headers або відправити JSON-body — щоб симулювати продакшн-endpoint і підтвердити, що ваш producer обробляє non-2xx-відповіді правильно.

Коли використовувати цей інструмент

  • Інтеграція з third-party API. Stripe, GitHub, Twilio, Slack — кожен з них потребує публічного callback-URL для розробки; цей інструмент дає вам один без налаштування тунелів.
  • Дебаг webhook-payloads. Побачте точні байти, що sender продукує, заголовки і все, перш ніж писати власний consumer.
  • Тестування retry-поведінки. Виставте response 500 і підтвердьте, що producer ретраїть; перемкніть на 200 і підтвердьте, що зупиняється.
  • Відтворення проблеми. Захопіть failing webhook-payload, потім replay-ніть його з curl-еквівалента у свій local dev-сервер.

Про persistence і приватність

Захоплені запити зберігаються 24 години, потім видаляються. Сама URL лишається активною в цьому вікні — діліться обережно, бо будь-хто з нею може постити будь-що на неї. Для чутливих інтеграцій (продакшн payment webhooks) використовуйте tunnel-to-localhost-інструмент (ngrok, cloudflared tunnel) — payload лишається цілком на вашій локальній машині. Цей інструмент для розробки і тестування, не для реального продакшн-трафіку.

Часті запитання

Як довго моя webhook-URL лишається активною?

24 години з моменту створення. Захоплені запити тримаються в тому ж вікні і потім авто-видаляються. Якщо потрібна довша URL, перестворіть її з тієї ж сторінки (вона дає свіжий токен) і оновіть sender. Для постійних інтеграцій хостуйте малий endpoint самі або використайте tunnelling-інструмент, що цільяться у ваш local dev-сервер.

Чи можна бачити вхідні запити в реальному часі?

Так — сторінка підписується на Server-Sent Events (SSE) з нашого backend, тож кожен новий запит з'являється в таблиці, як тільки приходить, типово в межах мілісекунд. Refresh, якщо треба; історія також зберігається server-side у 24-годинному вікні, тож reload дістає повний список.

Чи безпечно це для продакшн webhook-секретів?

Ні — захоплені payloads сидять на наших серверах 24 години і теоретично можуть бути прочитані нами. Для продакшн webhooks з секретами (Stripe payment events, GitHub repository tokens) використовуйте tunnel-to-localhost-інструмент (ngrok, cloudflared tunnel), щоб payload ніколи не покидав ваш ноутбук. Цей інструмент для dev / staging / one-off дебагу тест-event.

Чи можна кастомізувати response?

Так — виставте status-code (200, 201, 204, 4xx, 5xx), додайте response-headers (наприклад, Content-Type: application/json) і напишіть response-body. Корисно для підтвердження, що ваш producer обробляє error-responses правильно. Багато webhook-senders ретраять на 5xx; конфігурація 500 тут — найпростіший спосіб верифікувати retry-поведінку без чіпання продакшн-коду.