Events reference
Every webhook delivery is an HTTP POST with a JSON body. This page documents
the events you can subscribe to and the shape of what Ziptax sends.
Event catalog
rate.updated is the only event available today. More event types are coming
soon.
Payload schema
All events share the same top-level shape: event, timestamp, and data.
Example: rate.updated
Notification granularity
Your account’s Granularity Level controls how
much location detail each rate.updated notification carries:
- State/Province (the default): the payload identifies the tax authority
that changed —
localityandcode— as shown above. - Postal code (Enterprise plans only): the payload additionally includes
postalcodeList, the postal codes affected by the change.
Example: rate.updated at Postal code granularity
Treat postalcodeList as optional in your parser: it never appears at
State/Province granularity, and a notification may omit it when postal-code
detail is not available for a given change. Everything else in the payload is identical
across granularity levels.
Field reference
locality, code, and postalcodeList identify where rates changed. To
get the new rate values, call the Ziptax rate API for
those locations. The webhook body is a trigger, not the rate data itself.
Tax authority values
locality is always one of two values, and code is the two-letter code of the
state, province, or territory within that locality:
The complete set of locality and code combinations Ziptax can send is listed
below. Expand the table to browse it, or use the button to copy the full table
as CSV without expanding.
Show all tax authority values (69)
The timestamp in the example uses a space separator and a Z suffix
(YYYY-MM-DD HH:mm:ss.SSSZ) and should be treated as UTC. If you need to parse
it programmatically, normalize it yourself (for example, replace the space with
T) rather than assuming a strict ISO-8601 string.
Delivery mechanics
- Deliveries are HTTP
POSTrequests. - The header
Content-Type: application/jsonis set, with the JSON body shown above. - Your endpoint should respond quickly with a
2xxstatus to acknowledge receipt.
For details on delivery status, retries, and timeouts, see Test & monitor. Some production delivery behavior (retry policy, production timeouts, source IP ranges) is not yet documented. Contact support if you need those specifics for your integration.