Webhooks Pro
Pro: send StoreMaster events to another system, signed, with bounded retries and a visible list of anything that never arrived.
Updated August 26, 2026
Point an endpoint at another system — a warehouse, an internal dashboard, a script on a server you control — and StoreMaster posts each event to it.
This is a handoff, not an automation engine. It delivers an event and retries. It does not branch, transform, schedule or send marketing. A tool built for that is a better place for that.
What arrives
A small JSON envelope: a delivery id, the event name, when it was sent, which site sent it, and the event’s own data.
The data is already redacted before it reaches a webhook — StoreMaster events carry ids, uuids and counts, never an email address, a password, a licence key or a raw customer record. There is no unredacted form to opt into. A webhook URL typed with a mistake in it therefore costs you nothing but noise on somebody else’s server.
Every request is signed
Each endpoint has a secret of your choosing, at least sixteen characters. A webhook without one is refused at save: an unsigned webhook is a URL anyone who learns it can impersonate.
Requests carry:
X-StoreMaster-Signature—sha256=plus an HMAC of the timestamp and the body, keyed with your secret.X-StoreMaster-Timestamp— the moment it was signed, which is also inside the signed string, so your receiver can reject a replayed request without trusting a header it cannot verify.X-StoreMaster-EventandX-StoreMaster-Delivery— the event name and a unique id, so a receiver can make its own handling idempotent.
The secret is never returned by the API, not even to somebody who could read it from the database. A settings screen that echoes a secret back has put it in a browser cache and, eventually, in a screenshot.
Nothing is sent from the request that caused it
An event can fire in the middle of a customer’s checkout. A ten-second wait for somebody else’s server must not become part of that, so deliveries are queued and sent by a background run.
Retries stop
Five attempts, backing off from a minute to about ten hours. After that the delivery becomes a dead letter: a row you can see, with the event, the status code and the error.
Dead letters are never swept away on a timer. They are the only record that something did not arrive, and deleting them automatically is how a store finds out six months late. Delivered rows are cleaned up after a week.
Fix your endpoint and retry a dead letter, and it goes back in the queue with a fresh allowance of attempts.
Choosing events
An endpoint can name the events it wants, or name none and get all of them — the first is what a warehouse system wants and the second is what a dashboard wants.
Diagnostics tells you if an active endpoint uses plain HTTP, and how many deliveries are waiting in the dead-letter list.
Still stuck? Email [email protected].