Skip to main content

Prerequisites

Before continuing, you should have already completed the following for this connector:
1

Configure the Connector

Enable the connector and set up its connector profile in your project. See Managing Connectors.

Connector Profile

Gusto - OAuth 2.0
2

Link an Account

Connect an account using StackOne Hub or Auth Link.

Link Account

Gusto - OAuth 2.0

How webhooks are set up

There is no manual webhook setup in Gusto — it is fully automatic. On connection, StackOne calls Gusto’s POST /v1/webhook_subscriptions endpoint to create one subscription covering all supported resource types, pointing at a Native Webhook URL unique to this connection. StackOne generates and registers this URL for you — there is nothing to copy or paste. Gusto then performs a one-time verification: it sends the subscription’s verification_token to that URL, and StackOne automatically confirms it via PUT /v1/webhook_subscriptions/{uuid}/verify, moving the subscription from pending to verified. Disconnecting the account deletes the subscription. (Subscription management uses Gusto’s system-level access token, obtained from your app’s client credentials — no additional configuration is required.)

Available webhook events

Each delivery carries the granular event in the top-level event_type field (e.g. company.provisioned), the affected resource in resource_uuid, and a unix timestamp. Events are grouped by resource type below; only the events you enable in StackOne are dispatched.

1

Review company and payroll events

Fired across company lifecycle and payroll processing.

  • Company (company.*) — provisioned, deprovisioned, updated, onboarded, approved, suspended, and more.
  • Payroll (payroll.*) — created, calculated, submitted, processed, paid, reversed, cancelled, and more.
  • PaySchedule (pay_schedule.*) — created, updated.
  • ExternalPayroll (external_payroll.*) — created, updated, deleted.
2

Review employee and contractor events

Fired for worker records and their sub-resources.

  • Employee (employee.*) — created, updated, onboarded, terminated, rehired, deleted, and more.
  • Contractor (contractor.*) — created, updated, onboarded, deactivated, reactivated, deleted.
  • ContractorPayment (contractor_payment.*) — created, cancelled.
  • ContractorPaymentGroup (contractor_payment_group.*) — created, cancelled.
  • HomeAddress (employee.home_address.*) / WorkAddress (employee.work_address.*) — created, updated, deleted.
  • EmployeeJobCompensation (employee_job_compensation.*) — created, updated, deleted.
3

Review benefits, banking, and document events

Fired for benefits, bank accounts, and documents/forms.

  • CompanyBenefit (company_benefit.*) / EmployeeBenefit (employee_benefit.*) — created, updated, deleted.
  • BankAccount (company.bank_account.*) — created, updated, deleted.
  • FastAchConfig (fast_ach_config.*) — activated, deactivated.
  • Document (document.*) / Form (form.*) — created, updated, signed.
  • GeneratedDocument (generated_document.*) — generated, failed.
  • Signatory (signatory.*) — created, updated, deleted, marked_for_invite.
4

Review location, time-off, and notification events

Fired for locations, time-off requests, and platform notifications.

  • Location (location.*) — created, updated.
  • TimeOffRequest (time_off_request.*) — created, updated, deleted.
  • Notification (notification.*) — platform alerts such as information requests and invalid SSN (created, resolved).

Understand the delivery format

Gusto sends each event as an HTTP POST with a JSON body containing uuid, event_type (the firing event, e.g. employee.created), entity_type and entity_uuid (the specific record that changed — e.g. an Employee or Payroll), resource_type and resource_uuid (the owning resource, which is always the Company), and timestamp (unix seconds). StackOne routes on entity_type and maps event_type to the event type, entity_uuid to the record id, and timestamp to the event time.

Verify delivery authenticity

Gusto signs each delivery with an X-Gusto-Signature header — an HMAC-SHA256 of the payload computed with your subscription’s verification token. StackOne authorizes each delivery using the secret token embedded in the per-connection webhook URL, so no extra configuration is required on your side.

Verify

Your Connector should now be able to receive and process events. Try triggering an event and you should see an Event appear in the Connector logs.