Skip to main content
Webhooks let Pazy tell your system when something happens, so you don’t have to poll the API. When an event occurs, Pazy sends an HTTPS POST with a signed JSON body to the endpoint you registered. Use webhooks to:
  • Confirm that an invoice payment settled, failed or was reversed, including payments made in large async batches.
  • React to card and UPI transactions as they succeed, fail or get declined.
  • Collect expense receipts as soon as they’re uploaded.
  • Follow expenses through approval and accounting sync.
  • Track payout transactions to the bank.

How it works

1

Something happens in Pazy

For example, an invoice payment settles. Pazy records an event with a unique id.
2

Pazy delivers it

Pazy sends a POST to every endpoint of your organization that is subscribed to that event type. The body is signed with your endpoint’s secret.
3

You verify and acknowledge

Your handler checks the signature, saves the event, and replies with a 2xx status quickly.
4

Pazy retries if needed

Any other response, or no response in time, triggers retries with exponential backoff, up to 5 attempts.

What you need to know first

At-least-once delivery

The same event can arrive more than once. Deduplicate on the event id.

No ordering guarantee

A retried event can arrive after a newer one. Use timestamps and status fields, not arrival order.

Signed requests

Always verify X-Pazy-Webhook-Signature before trusting a payload.

Sandbox supported

Webhooks work in the sandbox too, with the same payloads and signing.

Get started

Set up an endpoint

Request an endpoint, choose events, and meet the URL requirements.

Verify signatures

Working code for Node.js, Python and Go.

Event reference

Every event type with its payload fields and an example.

Troubleshooting

Fix signature failures, missing events and duplicate deliveries.

Webhooks and the API

Webhooks tell you that something changed. They are not a replacement for the API. When you need the full record, use the id in the event to fetch it, for example with Expense Details. Treat the API as the source of truth if you ever suspect you missed an event.