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
- Open Webhooks in the dashboard and choose Create webhook.
- Paste the HTTPS address that should receive the messages. A private-network or localhost address is refused when you save.
- Tick the events you care about. You can change them later.
- 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.
