Skip to content

Webhooks

Hear about payments as they happen: add an endpoint in the dashboard, verify what arrives, and test it in the sandbox.


Webhooks send signed events to your server when a payment changes, such as when it succeeds or settles. Your server does not need to keep requesting the payment status.

In the dashboard choose Developer Tools → Webhooks → Add endpoint, in the environment you are working in.

Webhooks before the first endpoint is added.

  • The address must be public HTTPS. From your laptop, use a tunnel.

  • Pick the events you want, or leave the list empty for all of them.

  • You get a signing secret (whsec_…) once. Store it like a password.

    Add an endpoint: its address and the events it receives.

    The signing secret is shown once.

An endpoint belongs to one project or to the whole merchant, and each scope can have up to five. Endpoints are per environment: the ones you add in the sandbox do not receive live events.

The endpoint with its status and the Send test event button.

Baiyar sends a POST with a JSON body. Check the Baiyar-Signature header against the raw body before you trust it (Verify signatures, with code for Node.js and Python), then answer with a 2xx within 10 seconds.

3. Handle duplicate and out-of-order events

Section titled “3. Handle duplicate and out-of-order events”

Events can arrive twice or out of order. Ignore an event id you have seen, and read the payment’s current status instead of assuming a sequence. See Retries, order and duplicates.

Switch to the sandbox and open Developer Tools → Simulations. Send test event sends one webhook.test event. Payment scenarios send success, failure, expiry, out-of-order or duplicate events to your endpoint. The Webhooks page records each delivery and your server’s response. See Test payments.

The Deliveries tab: every delivery and whether it arrived.

One delivery: its attempts, the answer of your server and the body sent.