Prerequisites
The connector should already be set up, with a Connector Profile and a Linked Account. See Getting Started on the Deel connector page.Automatic webhook subscription
StackOne creates and manages the Deel webhook subscription automatically when the account is connected, and deletes it when the account is disconnected. There is nothing to configure in Deel.
Token and scope requirements
The connection must be able to manage webhooks in Deel.
- API Token connections need an Organization token with the
webhooks:readandwebhooks:writescopes. - OAuth 2.0 connections need the
webhooks:readandwebhooks:writescopes granted on the Deel app.
Select events in StackOne
Enable the webhook events you want on the Deel connector in StackOne. StackOne registers one organization-wide subscription, named StackOne, for exactly those events and re-creates it when the selection changes.
Available webhook events
The following Deel events can be enabled. Only events selected in StackOne are included in the subscription, and Deel does not deliver events that are not subscribed.
People events
Events on worker and employee records.
- Employee Created Contractor (
employee.created.contractor) — Fired when a contractor’s contract has been signed and the worker record has been created - Employee Created Direct (
employee.created.direct) — Fired when a direct employee record is created - Employee Created EOR (
employee.created.eor) — Fired when an EOR employee record is created - Employee Updated Direct (
employee.updated.direct) — Fired when direct employee information is updated - Profile KYC Changed (
profile.kyc.changed) — Fired when a profile’s KYC status changes - Worker Created (SCIM) (
worker.created) — Fired when a worker record is created through SCIM provisioning - Worker Profile Created (
worker.v2.created) — Fired when a worker profile is created - Worker Profile Deleted (
worker.v2.deleted) — Fired when a worker profile is deleted - Worker Profile Updated (
worker.v2.updated) — Fired when a worker profile’s data changes, covering profile, contract, compensation, address, phone, custom fields, or position
Contracts events
Events on contractor, EOR and Global Payroll contracts.
- Contract Amended (
contract.amended) — Fired when a contract amendment is applied - Contract Created (
contract.created) — Fired when a contractor or EOR contract is created - Contract Duplicated (
contract.duplicated) — Fired when a contract is duplicated - Contract Sign Team Member Invited (
contract.sign.team-member-invited) — Fired when a team member is invited into a contract-signing flow - Contract Status Updated (
contract.status.updated) — Fired whenever a contract’s status changes - Contract Terminated (
contract.terminated) — Fired when a contract termination is completed, for contractor, EOR, and Global Payroll contracts
Onboarding events
Events on worker onboarding progress.
- Onboarding Checklist Updated (
onboarding.checklist.updated) — Fired when an individual onboarding checklist step changes status - Onboarding Status Updated (
onboarding.status.updated) — Fired when a worker’s overall onboarding status changes, for example moving from invited, to onboarding, to complete
Time Off & Timesheets events
Events on time-off requests and timesheets.
- Time Off Created (
time-off.created) — Fired when a time-off request is created - Time Off Deleted (
time-off.deleted) — Fired when a time-off request is deleted - Time Off Reviewed (
time-off.reviewed) — Fired when a time-off request is reviewed - Time Off Updated (
time-off.updated) — Fired when a time-off request is updated - Timesheet Created (
timesheet.created) — Fired when a timesheet is created - Timesheet Reviewed (
timesheet.reviewed) — Fired when a timesheet is reviewed
Payroll & Payments events
Events on invoice adjustments, payment statements, payslips and tax documents.
- Invoice Adjustment Created (
invoice-adjustment.created) — Fired when an invoice adjustment is created, covering categories such as bonus, commission, deduction, expense, overtime, time off, and VAT - Invoice Adjustment Pending For Approval (
invoice-adjustment.pending-for-approval) — Fired when an invoice adjustment requires approval - Invoice Adjustment Reviewed (
invoice-adjustment.reviewed) — Fired when an invoice adjustment is reviewed - Payment Statement Initiated (
payment.statement.initiated) — Fired when a payment statement is initiated - Payment Statement Marked Paid (
payment.statement.mark-paid) — Fired when a payment statement is marked as paid - Payslip Document Deleted (
payslip.document.deleted) — Fired when a published payslip document is deleted - Tax Document Available (
tax.document.available) — Fired when a tax document is published - Tax Document Deleted (
tax.document.deleted) — Fired when a published tax document is deleted
EOR & Global Payroll events
Events specific to Employer of Record and Global Payroll workers.
- EOR Amendment Status Updated (
eor.amendment.status.updated) — Fired when an EOR amendment’s status changes - EOR Payslips Available (
eor.payslips.available) — Fired when one or more EOR payslips become available - EOR Project Assignment Check-in Created (
eor.project-assignment-checkin.created) — Fired when a recurring check-in for an EOR project assignment is created and becomes available to complete - EOR Project Assignment Created (
eor.project-assignment.created) — Fired when a project assignment for an EOR contract is created and ready for the client to review - EOR Quote Created (
eor.quote.created) — Fired when an EOR quote is created - GP Payslips Available (
gp.payslips.available) — Fired when one or more Global Payroll payslips become available - GP Termination Confirmed (
gp.termination.confirmed) — Fired when a Global Payroll termination is confirmed
ATS events
Events from Deel ATS. Requires the ATS feature on the Deel organization.
- ATS Application Created (
ats.application.created) — Fired when a candidate application is created in Deel ATS - ATS Application Transitioned (
ats.application.transitioned) — Fired when a candidate application moves between interview stages - ATS Job Posting Publication Created (
ats.job-posting-publication.created) — Fired when a job posting begins publication to a specific job board - ATS Job Posting Publication Updated (
ats.job-posting-publication.updated) — Fired when a job-board publication is updated - ATS Job Posting Created (
ats.job-posting.created) — Fired when a job posting is created in Deel ATS, ahead of any job-board publication - ATS Job Posting Updated (
ats.job-posting.updated) — Fired when a job posting is updated
IT Assets events
Events on IT assets and IT equipment orders.
- IT Asset Archived (
it-asset.archived) — Fired when an IT asset is archived, removing it from active assignment - IT Asset Created (
it-asset.created) — Fired when an IT asset is created - IT Asset Location Updated (
it-asset.location-updated) — Fired when an IT asset’s location changes - IT Order Created (
it-order.created) — Fired when an IT order is created - IT Order Updated (
it-order.updated) — Fired when an IT order is updated
Immigration events
Events on immigration cases.
- Immigration Case Process Status Updated (
immigration.case.process.status.update) — Fired when an immigration case process’s status changes - Immigration Case Renewal Created (
immigration.case.renewal.created) — Fired when an expiring immigration document causes a renewal case to be created automatically
Learning events
Events on Deel Engage learning journeys.
- Engage Learning Journeys Assignments Created (
engage.learning.journeys.assignments.created) — Fired when a learning-journey assignment is created - Engage Learning Journeys Assignments Reminded (
engage.learning.journeys.assignments.reminded) — Fired when a reminder is sent for a learning-journey assignment
Background Checks events
Events on background checks.
- Background Check Result Available (
bgcheck.result.available) — Fired when a background-check result becomes available
Delivery format
Details of how Deel delivers events to StackOne.
JSON payloads
Deel sends one event per HTTP POST. The event type is in data.meta.event_type, the organization in data.meta.organization_id, the affected record in data.resource, and the delivery time in timestamp. StackOne uses the changed record’s ID from data.resource as the event ID.
- Some events, such as payslip and tax document events, carry a list of records in
data.resourceinstead of a single record.
Signature verification
Deel signs each delivery with the x-deel-signature header, a hex HMAC-SHA256 of POST followed by the raw body, using the subscription’s signing key.
Retries and auto-disable
Deel retries failed deliveries with backoff for about a day and may deliver an event more than once. After 10 consecutive failed deliveries Deel disables the subscription; reconnecting the account in StackOne or changing the event selection re-creates it.