General dev

Webhook Payload Builder

Runs locally

Use Webhook Payload Builder

What it does

Get a small JSON body to post to your webhook endpoint while you build or debug it: a GitHub push, a Stripe payment event or a generic test event.

It runs entirely in your browser: nothing you enter is uploaded.

Example

Stripe payment event

Input
Choose Stripe Payment in the Template menu and press Generate.
Output (captured 2026-10-20)
{
  "event": "push",
  "repository": {
    "full_name": "owner/repo",
    "html_url": "https://github.com/owner/repo"
  },
  "pusher": {
    "name": "username",
    "email": "user@example.com"
  },
  "commits": [
    {
      "id": "abc123",
      "message": "Fix bug",
      "timestamp": "2026-10-20T17:12:11.790Z"
    }
  ]
}

An event of type payment_intent.succeeded with a random evt_ ID and a payment intent of 2000 in usd with status succeeded.

FAQ

Are these the real GitHub and Stripe payload formats?

They are shortened samples with a few fields each. The GitHub sample has repository, pusher and one commit plus an event field that GitHub itself sends in the X-GitHub-Event header instead, and the Stripe sample is a bare event with one payment intent; use the providers' test events when your code needs more fields.

Does it sign the payload?

No, so receivers that verify signatures will reject the sample. GitHub signs the raw body with HMAC-SHA256 (X-Hub-Signature-256) and Stripe signs the timestamp, a dot and the body (Stripe-Signature); compute that with your test secret, for example in the HMAC Generator.

Is anything sent to my endpoint?

No. The JSON is only shown in your browser and nothing is sent anywhere; post it yourself with curl or a command from the HTTP Request Builder.