Webhook Payload Formatter

Runs in browser API Testing

Paste a webhook body to pretty-print it, detect the provider and event type, highlight important fields (ids, amounts, timestamps) and convert timestamps to readable dates. Runs locally.

Privacy: This tool runs entirely in your browser. Your input never leaves your device.
Loading tool…

How to use Webhook Payload Formatter

  1. Paste the webhook body (and, if you have them, the request headers).
  2. The payload is formatted immediately; read the overview and the important-field table.
  3. Use the timestamp table to sanity-check event times and the tree to navigate large payloads.

Webhook Payload Formatter features

  • Pretty-prints JSON, decodes form-encoded bodies, keeps XML readable
  • Detects the provider and event type from body and optional headers
  • Highlights ids, event types, statuses, amounts, currencies, emails and URLs
  • Converts Unix (seconds/milliseconds) and ISO timestamps with relative time
  • Tree view, optional key sorting, size stats, live formatting

Webhook Payload Formatter example

Stripe payment_intent.succeeded

Input:

{"id":"evt_1PZx…","type":"payment_intent.succeeded","created":1725184800,"data":{"object":{"amount":19900,"currency":"sar","status":"succeeded"}}}

Output:

Provider: Stripe · Event: payment_intent.succeeded · Event id: evt_1PZx…
$.data.object.amount  amount  19900  199.00 if the value is in minor units
$.created  timestamp  1725184800 → 2024-09-01T10:40:00.000Z (about a year ago)

Frequently asked questions about Webhook Payload Formatter

What gets highlighted?

Event types, ids, statuses, amounts (with a minor-units hint), currencies, timestamps (converted to ISO 8601 and relative time), emails, names, references and URLs. Secret-looking values are masked in the table.

Can it handle form-encoded webhooks?

Yes — Twilio-style application/x-www-form-urlencoded bodies are decoded into JSON before formatting.

Does it detect the provider from the body alone?

Often: Stripe events, GitHub payloads, GitLab, PayPal, Slack, Shopify and Twilio have recognisable shapes. Adding the request headers makes detection reliable.

Is my payload uploaded?

No — formatting and detection run locally in your browser.