Webhooks in Guides: Events

Symmetry Guides offers webhook events so clients can programmatically receive tax updates in real time. Each webhook includes what changed, when it changed, and which tax it applies to. The webhook is sent to the identified URL in JSON format.

Event Types

Symmetry Guides currently has two webhook event types.

EventDescription
tax_rate.rate_updatedOccurs whenever a tax rate is updated in Symmetry Guides.
tax_rate.tax_createdOccurs whenever a tax rate is added in Symmetry Guides.

Event Payload

The event payload fields are defined as follows:

FieldTypeDescriptionExample
apiVersionstringVersion of the webhook delivery contract."2026-05-23"
eventIdstringUnique identifier for the event, in the format guides-{schema}-{itemIdentifier}."guides-tax_rate-04-000-0000-sit-000_20260101"
eventTypestringThe type of change that occurred, in the format {schema}.{action}."tax_rate.rate_updated"
occurredAtstringTimestamp of when the change occurred (UTC, RFC 3339)."2026-06-08T19:59:39Z"
data.resource.typestringThe content type that changed."tax_rate"
data.resource.idstringUnique identifier for the tax item."04-000-0000-sit-000"
data.resource.titlestringDisplay name of the tax item."AZ SIT - Effective 2026-01-01"
data.resource.effectiveDatestringEffective date of the change (ISO 8601)."2026-01-01"
data.resource.jurisdictionobjectJurisdiction details.
data.resource.jurisdiction.stateFipsstringState FIPS code."4"
data.resource.jurisdiction.abbreviationstringState abbreviation."AZ"
data.changesarrayArray of field-level changes. Included when a prior version exists to compare against; omitted for newly created taxes.
data.changes[].pathstringThe field that changed."res_rate"
data.changes[].opstringThe type of change: add, replace, or remove."replace"
data.changes[].previousnumberThe prior value. Omitted for add operations.2.1
data.changes[].valuenumberThe new value.1.1
data.summarystringHuman-readable description of the change."The rate decreased from 2.1% to 1.1%"

Payload Samples

The fields included in a webhook payload vary depending on the nature of the change. The changes array and jurisdiction details are included when available.

Example: Rate update on an existing tax

This payload is delivered when an existing tax rate is updated. The changes array shows the previous and new values.

{
  "apiVersion": "2026-05-23",
  "eventId": "guides-tax_rate-04-000-0000-sit-000_20260101",
  "eventType": "tax_rate.rate_updated",
  "occurredAt": "2026-06-08T19:59:39Z",
  "data": {
    "resource": {
      "type": "tax_rate",
      "id": "04-000-0000-sit-000",
      "title": "AZ SIT - Effective 2026-01-01",
      "effectiveDate": "2026-01-01",
      "jurisdiction": {
        "stateFips": "4",
        "abbreviation": "AZ"
      }
    },
    "changes": [
      {
        "path": "res_rate",
        "op": "replace",
        "previous": 2.1,
        "value": 1.1
      }
    ],
    "summary": "The rate decreased from 2.1% to 1.1%"
  }
}

Example: New tax added

{
  "apiVersion": "2026-05-23",
  "eventId": "guides-tax_rate-06-000-0000-sit-000_20260102",
  "eventType": "tax_rate.tax_created",
  "occurredAt": "2026-06-15T18:15:14Z",
  "data": {
    "resource": {
      "type": "tax_rate",
      "id": "CA_SIT_20260102",
      "title": "California SIT",
      "effectiveDate": "2026-01-01"
    },
    "changes": [
      {
        "path": "wage_base",
        "op": "add"
      },
      {
        "path": "res_rate",
        "op": "add",
        "value": 1.8
      },
      {
        "path": "non_res_rate",
        "op": "add",
        "value": 2.2
      },
      {
        "path": "tax_id",
        "op": "add",
        "value": "06-000-0000-SIT-000"
      },
      {
        "path": "rate_effective_date",
        "op": "add"
      }
    ],
    "summary": "The rate is 1.8%"
  }
}

Activity

Events can be viewed within the Activity tab in Symmetry Guides. Click the Details button to see a copy of the payload, and click the Retry button to resend a failed webhook.

Jump to top