All posts
Guides

Webhooks: be told the moment something changes

A URL you give us, a small JSON message when something happens, and a signature so you can trust it. What to listen for and how to answer.

The Balancely team · 19 Sept 2026 · 5 min readA hand holding a phone showing a notification

Polling is a habit from a world where nothing could tell you anything. A webhook is the other way round: you give us an address, and when an event you chose happens we POST a small JSON message there.

What people use them for

  • Keeping another system in step - marking an order as invoiced the moment the voucher lands.
  • Knowing when a connection goes offline, before a customer does.
  • Triggering a workflow from something that happened in TallyPrime, rather than towards it.

Setting one up

  1. Open Webhooks in the dashboard and choose Create webhook.
  2. Paste the HTTPS address that should receive the messages. A private-network or localhost address is refused when you save.
  3. Tick the events you care about. You can change them later.
  4. Send a test delivery from the webhook's page and watch it arrive.

Trusting what arrives

Every message carries three headers: the event name, a delivery id, and a signature computed from the body with the webhook's secret. Check the signature before you act on anything, and treat the delivery id as the key for "have I seen this before" - a retried message reuses it.

Answer first, work later

Reply 200 as soon as you have stored the message, then do the work. A slow handler looks like a failed one, and a failed delivery is retried - which is exactly what you do not want if the work already happened.

Carry on in the docs

The step-by-step version, with every field and every code.

Webhook reference and signature code
See for yourself

Connect a company in ten minutes

The free plan is enough to run a real workflow end to end, on your own books.

No card needed

About ten minutes

Cancel anytime