Remote · AsyncAPI Specification

Remote Webhooks

Version 2026-05-22

Remote emits webhook events for nearly every state change across its Companies, Employments, Contractors, Payroll, Billing, Time Off, Timesheets, Benefits, Identity Verification, and SSO surfaces. All events POST a signed JSON envelope to a customer-provided HTTPS URL. Webhooks must be verified using the `X-Remote-Signature` header per Remote's documentation.

View Spec View on GitHub Global PayrollEmployer of RecordContractor ManagementContractor of RecordPEOHRISRecruitingBenefitsEmploymentHuman ResourcesComplianceWorkforceMCPAI AgentsPayrollAsyncAPIEventsWebhooks

Channels

company.activated
subscribe
Triggered when a company becomes active.
company.archived
subscribe
company.eor_hiring.additional_information_required
subscribe
company.eor_hiring.reserve_payment_requested
subscribe
company.eor_hiring.no_reserve_payment_requested
subscribe
company.eor_hiring.referred
subscribe
company.eor_hiring.verification_completed
subscribe
company.manager_created
subscribe
company.manager_updated
subscribe
company.manager_deleted
subscribe
contract_amendment.submitted
subscribe
contract_amendment.review_started
subscribe
contract_amendment.done
subscribe
contract_amendment.canceled
subscribe
contract_amendment.deleted
subscribe
contract_document.status_changed
subscribe
custom_field.value_updated
subscribe
employment.account.updated
subscribe
employment.employment_agreement.available
subscribe
employment_company_structure_node.updated
subscribe
employment_contract.active_contract_updated
subscribe
employment_contract.adjusted_during_onboarding
subscribe
employment.administrative_details.updated
subscribe
employment.details.updated
subscribe
employment.work_email.updated
subscribe
employment.personal_information.updated
subscribe
employment.eor_hiring.proof_of_payment_accepted
subscribe
employment.no_longer_eligible_for_onboarding_cancellation
subscribe
employment.onboarding.started
subscribe
employment.onboarding.completed
subscribe
employment.onboarding.cancelled
subscribe
employment.onboarding_task.completed
subscribe
employment.probation_completion_letter.submitted
subscribe
employment.probation_completion_letter.completed
subscribe
employment.probation_completion_letter.cancelled
subscribe
employment.probation_period_extension.submitted
subscribe
employment.probation_period_extension.completed
subscribe
employment.probation_period_extension.cancelled
subscribe
employment.probation.period_ending_reminder_sent
subscribe
employment.start_date.changed
subscribe
employment.user_status.activated
subscribe
employment.user_status.deactivated
subscribe
employment.user_status.initiated
subscribe
employment.user_status.invited
subscribe
employment.eor_hiring.invoice_created
subscribe
expense.created
subscribe
expense.approved
subscribe
expense.declined
subscribe
expense.deleted
subscribe
expense.reimbursed
subscribe
expense.submitted
subscribe
expense.updated
subscribe
identity_verification.verification_required
subscribe
incentive.created
subscribe
incentive.processing_started
subscribe
incentive.paid
subscribe
incentive.updated
subscribe
incentive.deleted
subscribe
offboarding.submitted
subscribe
offboarding.review_started
subscribe
offboarding.submitted_to_payroll
subscribe
offboarding.completed
subscribe
offboarding.deleted
subscribe
payslip.released
subscribe
sso_configuration.enabled
subscribe
sso_configuration.updated
subscribe
sso_configuration.disabled
subscribe
timeoff.requested
subscribe
timeoff.approved
subscribe
timeoff.cancellation_requested
subscribe
timeoff.date_changed
subscribe
timeoff.updated
subscribe
timeoff.declined
subscribe
timeoff.canceled
subscribe
timeoff.started
subscribe
timeoff.taken
subscribe
timesheet.submitted
subscribe
travel_letter.requested
subscribe
travel_letter.approved_by_manager
subscribe
travel_letter.approved_by_remote
subscribe
travel_letter.declined_by_manager
subscribe
travel_letter.declined_by_remote
subscribe
work_authorization.requested
subscribe
work_authorization.approved_by_manager
subscribe
work_authorization.approved_by_remote
subscribe
work_authorization.declined_by_manager
subscribe
work_authorization.declined_by_remote
subscribe
work_authorization.cancelled
subscribe
benefit_renewal_request.created
subscribe
billing_document.issued
subscribe

Messages

✉
CompanyEvent
CompanyEvent
✉
ContractAmendmentEvent
ContractAmendmentEvent
✉
ContractDocumentEvent
ContractDocumentEvent
✉
CustomFieldEvent
CustomFieldEvent
✉
EmploymentEvent
EmploymentEvent
✉
ExpenseEvent
ExpenseEvent
✉
IdentityVerificationEvent
IdentityVerificationEvent
✉
IncentiveEvent
IncentiveEvent
✉
OffboardingEvent
OffboardingEvent
✉
PayslipEvent
PayslipEvent
✉
SsoEvent
SsoEvent
✉
TimeOffEvent
TimeOffEvent
✉
TimesheetEvent
TimesheetEvent
✉
TravelLetterEvent
TravelLetterEvent
✉
WorkAuthEvent
WorkAuthEvent
✉
BenefitRenewalEvent
BenefitRenewalEvent
✉
BillingDocumentEvent
BillingDocumentEvent

Servers

https
production https://gateway.remote.com
Remote production gateway

AsyncAPI Specification

Raw ↑
asyncapi: 2.6.0
info:
  title: Remote Webhooks
  version: '2026-05-22'
  description: |
    Remote emits webhook events for nearly every state change across its
    Companies, Employments, Contractors, Payroll, Billing, Time Off,
    Timesheets, Benefits, Identity Verification, and SSO surfaces. All
    events POST a signed JSON envelope to a customer-provided HTTPS URL.
    Webhooks must be verified using the `X-Remote-Signature` header per
    Remote's documentation.

defaultContentType: application/json

servers:
  production:
    url: https://gateway.remote.com
    protocol: https
    description: Remote production gateway

channels:
  company.activated:
    description: Triggered when a company becomes active.
    subscribe:
      message: { $ref: '#/components/messages/CompanyEvent' }
  company.archived:
    subscribe:
      message: { $ref: '#/components/messages/CompanyEvent' }
  company.eor_hiring.additional_information_required:
    subscribe:
      message: { $ref: '#/components/messages/CompanyEvent' }
  company.eor_hiring.reserve_payment_requested:
    subscribe:
      message: { $ref: '#/components/messages/CompanyEvent' }
  company.eor_hiring.no_reserve_payment_requested:
    subscribe:
      message: { $ref: '#/components/messages/CompanyEvent' }
  company.eor_hiring.referred:
    subscribe:
      message: { $ref: '#/components/messages/CompanyEvent' }
  company.eor_hiring.verification_completed:
    subscribe:
      message: { $ref: '#/components/messages/CompanyEvent' }
  company.manager_created:
    subscribe:
      message: { $ref: '#/components/messages/CompanyEvent' }
  company.manager_updated:
    subscribe:
      message: { $ref: '#/components/messages/CompanyEvent' }
  company.manager_deleted:
    subscribe:
      message: { $ref: '#/components/messages/CompanyEvent' }
  contract_amendment.submitted:
    subscribe: { message: { $ref: '#/components/messages/ContractAmendmentEvent' } }
  contract_amendment.review_started:
    subscribe: { message: { $ref: '#/components/messages/ContractAmendmentEvent' } }
  contract_amendment.done:
    subscribe: { message: { $ref: '#/components/messages/ContractAmendmentEvent' } }
  contract_amendment.canceled:
    subscribe: { message: { $ref: '#/components/messages/ContractAmendmentEvent' } }
  contract_amendment.deleted:
    subscribe: { message: { $ref: '#/components/messages/ContractAmendmentEvent' } }
  contract_document.status_changed:
    subscribe: { message: { $ref: '#/components/messages/ContractDocumentEvent' } }
  custom_field.value_updated:
    subscribe: { message: { $ref: '#/components/messages/CustomFieldEvent' } }
  employment.account.updated:
    subscribe: { message: { $ref: '#/components/messages/EmploymentEvent' } }
  employment.employment_agreement.available:
    subscribe: { message: { $ref: '#/components/messages/EmploymentEvent' } }
  employment_company_structure_node.updated:
    subscribe: { message: { $ref: '#/components/messages/EmploymentEvent' } }
  employment_contract.active_contract_updated:
    subscribe: { message: { $ref: '#/components/messages/EmploymentEvent' } }
  employment_contract.adjusted_during_onboarding:
    subscribe: { message: { $ref: '#/components/messages/EmploymentEvent' } }
  employment.administrative_details.updated:
    subscribe: { message: { $ref: '#/components/messages/EmploymentEvent' } }
  employment.details.updated:
    subscribe: { message: { $ref: '#/components/messages/EmploymentEvent' } }
  employment.work_email.updated:
    subscribe: { message: { $ref: '#/components/messages/EmploymentEvent' } }
  employment.personal_information.updated:
    subscribe: { message: { $ref: '#/components/messages/EmploymentEvent' } }
  employment.eor_hiring.proof_of_payment_accepted:
    subscribe: { message: { $ref: '#/components/messages/EmploymentEvent' } }
  employment.no_longer_eligible_for_onboarding_cancellation:
    subscribe: { message: { $ref: '#/components/messages/EmploymentEvent' } }
  employment.onboarding.started:
    subscribe: { message: { $ref: '#/components/messages/EmploymentEvent' } }
  employment.onboarding.completed:
    subscribe: { message: { $ref: '#/components/messages/EmploymentEvent' } }
  employment.onboarding.cancelled:
    subscribe: { message: { $ref: '#/components/messages/EmploymentEvent' } }
  employment.onboarding_task.completed:
    subscribe: { message: { $ref: '#/components/messages/EmploymentEvent' } }
  employment.probation_completion_letter.submitted:
    subscribe: { message: { $ref: '#/components/messages/EmploymentEvent' } }
  employment.probation_completion_letter.completed:
    subscribe: { message: { $ref: '#/components/messages/EmploymentEvent' } }
  employment.probation_completion_letter.cancelled:
    subscribe: { message: { $ref: '#/components/messages/EmploymentEvent' } }
  employment.probation_period_extension.submitted:
    subscribe: { message: { $ref: '#/components/messages/EmploymentEvent' } }
  employment.probation_period_extension.completed:
    subscribe: { message: { $ref: '#/components/messages/EmploymentEvent' } }
  employment.probation_period_extension.cancelled:
    subscribe: { message: { $ref: '#/components/messages/EmploymentEvent' } }
  employment.probation.period_ending_reminder_sent:
    subscribe: { message: { $ref: '#/components/messages/EmploymentEvent' } }
  employment.start_date.changed:
    subscribe: { message: { $ref: '#/components/messages/EmploymentEvent' } }
  employment.user_status.activated:
    subscribe: { message: { $ref: '#/components/messages/EmploymentEvent' } }
  employment.user_status.deactivated:
    subscribe: { message: { $ref: '#/components/messages/EmploymentEvent' } }
  employment.user_status.initiated:
    subscribe: { message: { $ref: '#/components/messages/EmploymentEvent' } }
  employment.user_status.invited:
    subscribe: { message: { $ref: '#/components/messages/EmploymentEvent' } }
  employment.eor_hiring.invoice_created:
    subscribe: { message: { $ref: '#/components/messages/EmploymentEvent' } }
  expense.created:
    subscribe: { message: { $ref: '#/components/messages/ExpenseEvent' } }
  expense.approved:
    subscribe: { message: { $ref: '#/components/messages/ExpenseEvent' } }
  expense.declined:
    subscribe: { message: { $ref: '#/components/messages/ExpenseEvent' } }
  expense.deleted:
    subscribe: { message: { $ref: '#/components/messages/ExpenseEvent' } }
  expense.reimbursed:
    subscribe: { message: { $ref: '#/components/messages/ExpenseEvent' } }
  expense.submitted:
    subscribe: { message: { $ref: '#/components/messages/ExpenseEvent' } }
  expense.updated:
    subscribe: { message: { $ref: '#/components/messages/ExpenseEvent' } }
  identity_verification.verification_required:
    subscribe: { message: { $ref: '#/components/messages/IdentityVerificationEvent' } }
  incentive.created:
    subscribe: { message: { $ref: '#/components/messages/IncentiveEvent' } }
  incentive.processing_started:
    subscribe: { message: { $ref: '#/components/messages/IncentiveEvent' } }
  incentive.paid:
    subscribe: { message: { $ref: '#/components/messages/IncentiveEvent' } }
  incentive.updated:
    subscribe: { message: { $ref: '#/components/messages/IncentiveEvent' } }
  incentive.deleted:
    subscribe: { message: { $ref: '#/components/messages/IncentiveEvent' } }
  offboarding.submitted:
    subscribe: { message: { $ref: '#/components/messages/OffboardingEvent' } }
  offboarding.review_started:
    subscribe: { message: { $ref: '#/components/messages/OffboardingEvent' } }
  offboarding.submitted_to_payroll:
    subscribe: { message: { $ref: '#/components/messages/OffboardingEvent' } }
  offboarding.completed:
    subscribe: { message: { $ref: '#/components/messages/OffboardingEvent' } }
  offboarding.deleted:
    subscribe: { message: { $ref: '#/components/messages/OffboardingEvent' } }
  payslip.released:
    subscribe: { message: { $ref: '#/components/messages/PayslipEvent' } }
  sso_configuration.enabled:
    subscribe: { message: { $ref: '#/components/messages/SsoEvent' } }
  sso_configuration.updated:
    subscribe: { message: { $ref: '#/components/messages/SsoEvent' } }
  sso_configuration.disabled:
    subscribe: { message: { $ref: '#/components/messages/SsoEvent' } }
  timeoff.requested:
    subscribe: { message: { $ref: '#/components/messages/TimeOffEvent' } }
  timeoff.approved:
    subscribe: { message: { $ref: '#/components/messages/TimeOffEvent' } }
  timeoff.cancellation_requested:
    subscribe: { message: { $ref: '#/components/messages/TimeOffEvent' } }
  timeoff.date_changed:
    subscribe: { message: { $ref: '#/components/messages/TimeOffEvent' } }
  timeoff.updated:
    subscribe: { message: { $ref: '#/components/messages/TimeOffEvent' } }
  timeoff.declined:
    subscribe: { message: { $ref: '#/components/messages/TimeOffEvent' } }
  timeoff.canceled:
    subscribe: { message: { $ref: '#/components/messages/TimeOffEvent' } }
  timeoff.started:
    subscribe: { message: { $ref: '#/components/messages/TimeOffEvent' } }
  timeoff.taken:
    subscribe: { message: { $ref: '#/components/messages/TimeOffEvent' } }
  timesheet.submitted:
    subscribe: { message: { $ref: '#/components/messages/TimesheetEvent' } }
  travel_letter.requested:
    subscribe: { message: { $ref: '#/components/messages/TravelLetterEvent' } }
  travel_letter.approved_by_manager:
    subscribe: { message: { $ref: '#/components/messages/TravelLetterEvent' } }
  travel_letter.approved_by_remote:
    subscribe: { message: { $ref: '#/components/messages/TravelLetterEvent' } }
  travel_letter.declined_by_manager:
    subscribe: { message: { $ref: '#/components/messages/TravelLetterEvent' } }
  travel_letter.declined_by_remote:
    subscribe: { message: { $ref: '#/components/messages/TravelLetterEvent' } }
  work_authorization.requested:
    subscribe: { message: { $ref: '#/components/messages/WorkAuthEvent' } }
  work_authorization.approved_by_manager:
    subscribe: { message: { $ref: '#/components/messages/WorkAuthEvent' } }
  work_authorization.approved_by_remote:
    subscribe: { message: { $ref: '#/components/messages/WorkAuthEvent' } }
  work_authorization.declined_by_manager:
    subscribe: { message: { $ref: '#/components/messages/WorkAuthEvent' } }
  work_authorization.declined_by_remote:
    subscribe: { message: { $ref: '#/components/messages/WorkAuthEvent' } }
  work_authorization.cancelled:
    subscribe: { message: { $ref: '#/components/messages/WorkAuthEvent' } }
  benefit_renewal_request.created:
    subscribe: { message: { $ref: '#/components/messages/BenefitRenewalEvent' } }
  billing_document.issued:
    subscribe: { message: { $ref: '#/components/messages/BillingDocumentEvent' } }

components:
  messages:
    CompanyEvent: { payload: { $ref: '#/components/schemas/Envelope' } }
    ContractAmendmentEvent: { payload: { $ref: '#/components/schemas/Envelope' } }
    ContractDocumentEvent: { payload: { $ref: '#/components/schemas/Envelope' } }
    CustomFieldEvent: { payload: { $ref: '#/components/schemas/Envelope' } }
    EmploymentEvent: { payload: { $ref: '#/components/schemas/Envelope' } }
    ExpenseEvent: { payload: { $ref: '#/components/schemas/Envelope' } }
    IdentityVerificationEvent: { payload: { $ref: '#/components/schemas/Envelope' } }
    IncentiveEvent: { payload: { $ref: '#/components/schemas/Envelope' } }
    OffboardingEvent: { payload: { $ref: '#/components/schemas/Envelope' } }
    PayslipEvent: { payload: { $ref: '#/components/schemas/Envelope' } }
    SsoEvent: { payload: { $ref: '#/components/schemas/Envelope' } }
    TimeOffEvent: { payload: { $ref: '#/components/schemas/Envelope' } }
    TimesheetEvent: { payload: { $ref: '#/components/schemas/Envelope' } }
    TravelLetterEvent: { payload: { $ref: '#/components/schemas/Envelope' } }
    WorkAuthEvent: { payload: { $ref: '#/components/schemas/Envelope' } }
    BenefitRenewalEvent: { payload: { $ref: '#/components/schemas/Envelope' } }
    BillingDocumentEvent: { payload: { $ref: '#/components/schemas/Envelope' } }
  schemas:
    Envelope:
      type: object
      required: [event_type, event_id, created_at, data]
      properties:
        event_type: { type: string, description: Event name in dotted form. }
        event_id: { type: string, format: uuid }
        created_at: { type: string, format: date-time }
        company_id: { type: string, format: uuid }
        data:
          type: object
          additionalProperties: true

Work with this as data

Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for asyncapi

4 MCP tools reach this
  • find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/remote-webhooks-asyncapi"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.