Webhooks
Receive real-time notifications about Pinch events by configuring webhooks in your application.
Webhooks let you receive instant notifications whenever something happens in the Pinch system. When an Event occurs, Pinch sends an HTTP POST request to the URI you configured when creating the Webhook.
All Webhook payloads follow a common structure. See the Events page for the full list of Event types and their specific payloads.
{
"Id": "evt_XXXXXXXXXXXXXXXX",
"Type": "event-type-name",
"EventDate": "2026-04-10T12:34:56.789Z",
"Metadata": { },
"Data": { }
}
During development, you can use https://webhook.site/ to inspect incoming Webhook requests from Pinch in real time.
Verifying webhooks
By default, your Webhook endpoint is publicly accessible — anyone can send a POST request to it, not just Pinch. You must verify every incoming request to ensure it genuinely came from Pinch.
When you create a Webhook, Pinch returns a secret value (format: whsec_...). Pinch includes a pinch-signature header on every delivery that looks like this:
pinch-signature: t=1619577772,v2=e5db053264a6657a563bf7a9e1ec18bb914b816663ea0e2f8deca9edc876a4gt=— the Unix timestamp of when the request was sentv2=— an HMAC-SHA256 signature of{timestamp}.{request body}using your Webhook secret
To verify the signature manually:
- Extract
tandv2from thepinch-signatureheader. - Construct the signed payload string:
{t}.{raw request body}. - Compute
HMAC-SHA256({signedPayload}, webhookSecret). - Compare your computed value to
v2. If they match, the request is genuine. - Check that
tis within an acceptable time window (the .NET SDK uses 5 minutes by default) to protect against replay attacks.
If you are using the .NET SDK, call VerifyWebhook() — it handles all of the above for you. See WebhookClient.cs for the full implementation.
Webhook Formats
Webhooks can be delivered in two JSON formats:
1. PascalCase (default):
{
"Id": "evt_XXXXXXXXXXXXXXXX",
"EventDate": "2026-04-10T12:00:00.000Z",
"Data": { }
}2. camelCase:
{
"id": "evt_XXXXXXXXXXXXXXXX",
"eventDate": "2026-04-10T12:00:00.000Z",
"data": { }
}Updated 14 days ago
