Rippling Partner Applications listed in the Rippling App Shop can register a webhook URL to receive event-triggered notifications when relevant changes occur in a customer's Rippling tenant. Rippling makes an HTTP POST to the Webhook URL configured under Integration > Webhook > Webhook URL with a form-encoded body containing event_name, company_id, company_primary_email, and the resource id when applicable. Both unauthenticated and Bearer-token authenticated webhooks are supported (Basic auth is not). Events are emitted with an approximate five-minute delay, and partners can expect to receive one or multiple events in certain situations. This AsyncAPI describes the documented partner webhook surface only; the in-tenant Developer app custom-object webhooks (Created, Updated, Deleted) are operator-configured against tenant-specific custom objects and have no fixed event catalog, so they are not enumerated as discrete messages here.
View SpecView on GitHubHRHCMPayrollITIdentitySCIMDevicesSpend ManagementAsyncAPIEventsWebhooks
Channels
/
publishreceiveRipplingPartnerEvent
Receive a partner webhook event from Rippling
Single partner webhook channel. Rippling POSTs form-encoded event notifications to the configured Webhook URL whenever one of the supported Rippling tenant events occurs.
Messages
✉
EmployeeCreated
Employee Created
Sent when an employee has been provisioned access to the partner app in Rippling. Recommended event for user-management integrations.
✉
EmployeeUpdated
Employee Updated
Sent when an employee already provisioned to the partner app has information changed or updated on the employee object.
✉
EmployeeDeleted
Employee Deleted
Sent when an employee has had their access removed from the partner app in Rippling, whether through termination, access-rule changes, or manual admin removal. Recommended event for user-management integrations.
✉
EmployeeHired
Employee Hired
Sent when an employee has been hired into a company in Rippling. A hired employee is not necessarily provisioned to the partner app — that depends on the configured Access Rules.
✉
EmployeeTerminated
Employee Terminated
Sent when an employee has been terminated from a company in Rippling.
✉
GroupCreated
Group Created
Sent when a group has been created in the customer's Rippling tenant.
✉
GroupUpdated
Group Updated
Sent when a group has been updated in the customer's Rippling tenant.
✉
GroupDeleted
Group Deleted
Sent when a group has been deleted in the customer's Rippling tenant.
✉
CompanyUpdated
Company Updated
Sent when company-level information has been updated in Rippling.
✉
CompanyDeleted
Company Deleted
Sent when a Rippling customer has uninstalled the partner app. The id field equals the company_id in this case.
✉
CustomInfoFieldCreated
Custom Info Field Created
Sent when a new custom info field has been created in the customer's Rippling tenant.
✉
CustomInfoFieldUpdated
Custom Info Field Updated
Sent when a custom info field has been updated in the customer's Rippling tenant.
✉
CustomInfoFieldDeleted
Custom Info Field Deleted
Sent when a custom info field has been deleted in the customer's Rippling tenant.
✉
FourOhOneKDeductionsUpdated
401(k) Deductions Updated
Sent when 401(k) deduction information has been updated in the customer's Rippling tenant.
✉
LeaveRequestCreated
Leave Request Created
Sent when a leave request has been created, regardless of status. Fires for pre-approved admin-created requests and for pending employee requests alike.
✉
LeaveRequestUpdated
Leave Request Updated
Sent when a leave request has been updated. Updates include changes to startDate, endDate, numMinutes, startDateStartTime, endDateEndTime, or status.
✉
LeaveRequestDeleted
Leave Request Deleted
Sent when a leave request has been deleted or cancelled, regardless of prior status, whether by admin or employee.
Servers
https
partner{webhookUrl}
The partner-hosted webhook endpoint configured in the Rippling App Shop integration settings (Integration > Webhook > Webhook URL). Rippling delivers events to this URL via HTTP POST with an approximate five-minute lag.
asyncapi: 2.6.0
info:
title: Rippling Partner Webhooks
description: >-
Rippling Partner Applications listed in the Rippling App Shop can register a
webhook URL to receive event-triggered notifications when relevant changes
occur in a customer's Rippling tenant. Rippling makes an HTTP POST to the
Webhook URL configured under Integration > Webhook > Webhook URL with a
form-encoded body containing event_name, company_id, company_primary_email,
and the resource id when applicable. Both unauthenticated and Bearer-token
authenticated webhooks are supported (Basic auth is not). Events are emitted
with an approximate five-minute delay, and partners can expect to receive
one or multiple events in certain situations. This AsyncAPI describes the
documented partner webhook surface only; the in-tenant Developer app
custom-object webhooks (Created, Updated, Deleted) are operator-configured
against tenant-specific custom objects and have no fixed event catalog, so
they are not enumerated as discrete messages here.
version: '1.0.0'
contact:
name: Rippling Partner Support
url: https://developer.rippling.com/
email: partner.support@rippling.com
license:
name: Proprietary
externalDocs:
description: Rippling Partner Webhooks Guide
url: https://developer.rippling.com/documentation/developer-portal/v2-guides/webhooks
servers:
partner:
url: '{webhookUrl}'
protocol: https
description: >-
The partner-hosted webhook endpoint configured in the Rippling App Shop
integration settings (Integration > Webhook > Webhook URL). Rippling
delivers events to this URL via HTTP POST with an approximate five-minute
lag.
variables:
webhookUrl:
description: >-
Fully qualified HTTPS URL of the partner endpoint that will receive
Rippling webhook deliveries.
security:
- bearerAuth: []
- {}
channels:
/:
description: >-
Single partner webhook channel. Rippling POSTs form-encoded event
notifications to the configured Webhook URL whenever one of the supported
Rippling tenant events occurs.
bindings:
http:
type: request
method: POST
publish:
operationId: receiveRipplingPartnerEvent
summary: Receive a partner webhook event from Rippling
description: >-
Rippling publishes form-encoded event notifications to the partner's
configured Webhook URL when one of the supported events fires inside a
customer tenant. Authentication, when configured, is delivered as a
Bearer token in the Authorization header provided by the partner during
app configuration.
message:
oneOf:
- $ref: '#/components/messages/EmployeeCreated'
- $ref: '#/components/messages/EmployeeUpdated'
- $ref: '#/components/messages/EmployeeDeleted'
- $ref: '#/components/messages/EmployeeHired'
- $ref: '#/components/messages/EmployeeTerminated'
- $ref: '#/components/messages/GroupCreated'
- $ref: '#/components/messages/GroupUpdated'
- $ref: '#/components/messages/GroupDeleted'
- $ref: '#/components/messages/CompanyUpdated'
- $ref: '#/components/messages/CompanyDeleted'
- $ref: '#/components/messages/CustomInfoFieldCreated'
- $ref: '#/components/messages/CustomInfoFieldUpdated'
- $ref: '#/components/messages/CustomInfoFieldDeleted'
- $ref: '#/components/messages/FourOhOneKDeductionsUpdated'
- $ref: '#/components/messages/LeaveRequestCreated'
- $ref: '#/components/messages/LeaveRequestUpdated'
- $ref: '#/components/messages/LeaveRequestDeleted'
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: >-
Optional Bearer token authentication. Partners may supply Rippling with
a static bearer token during integration configuration; Rippling then
attaches it as Authorization: Bearer <TOKEN> on every webhook delivery.
Basic authentication is not supported.
messages:
EmployeeCreated:
name: employee.created
title: Employee Created
summary: >-
Sent when an employee has been provisioned access to the partner app in
Rippling. Recommended event for user-management integrations.
contentType: application/x-www-form-urlencoded
payload:
$ref: '#/components/schemas/EmployeeEventPayload'
EmployeeUpdated:
name: employee.updated
title: Employee Updated
summary: >-
Sent when an employee already provisioned to the partner app has
information changed or updated on the employee object.
contentType: application/x-www-form-urlencoded
payload:
$ref: '#/components/schemas/EmployeeEventPayload'
EmployeeDeleted:
name: employee.deleted
title: Employee Deleted
summary: >-
Sent when an employee has had their access removed from the partner app
in Rippling, whether through termination, access-rule changes, or
manual admin removal. Recommended event for user-management
integrations.
contentType: application/x-www-form-urlencoded
payload:
$ref: '#/components/schemas/EmployeeEventPayload'
EmployeeHired:
name: employee.hired
title: Employee Hired
summary: >-
Sent when an employee has been hired into a company in Rippling. A
hired employee is not necessarily provisioned to the partner app — that
depends on the configured Access Rules.
contentType: application/x-www-form-urlencoded
payload:
$ref: '#/components/schemas/EmployeeEventPayload'
EmployeeTerminated:
name: employee.terminated
title: Employee Terminated
summary: >-
Sent when an employee has been terminated from a company in Rippling.
contentType: application/x-www-form-urlencoded
payload:
$ref: '#/components/schemas/EmployeeEventPayload'
GroupCreated:
name: group.created
title: Group Created
summary: >-
Sent when a group has been created in the customer's Rippling tenant.
contentType: application/x-www-form-urlencoded
payload:
$ref: '#/components/schemas/GroupEventPayload'
GroupUpdated:
name: group.updated
title: Group Updated
summary: >-
Sent when a group has been updated in the customer's Rippling tenant.
contentType: application/x-www-form-urlencoded
payload:
$ref: '#/components/schemas/GroupEventPayload'
GroupDeleted:
name: group.deleted
title: Group Deleted
summary: >-
Sent when a group has been deleted in the customer's Rippling tenant.
contentType: application/x-www-form-urlencoded
payload:
$ref: '#/components/schemas/GroupEventPayload'
CompanyUpdated:
name: company.updated
title: Company Updated
summary: >-
Sent when company-level information has been updated in Rippling.
contentType: application/x-www-form-urlencoded
payload:
$ref: '#/components/schemas/CompanyEventPayload'
CompanyDeleted:
name: company.deleted
title: Company Deleted
summary: >-
Sent when a Rippling customer has uninstalled the partner app. The id
field equals the company_id in this case.
contentType: application/x-www-form-urlencoded
payload:
$ref: '#/components/schemas/CompanyEventPayload'
CustomInfoFieldCreated:
name: custom_info_field.created
title: Custom Info Field Created
summary: >-
Sent when a new custom info field has been created in the customer's
Rippling tenant.
contentType: application/x-www-form-urlencoded
payload:
$ref: '#/components/schemas/BaseEventPayload'
CustomInfoFieldUpdated:
name: custom_info_field.updated
title: Custom Info Field Updated
summary: >-
Sent when a custom info field has been updated in the customer's
Rippling tenant.
contentType: application/x-www-form-urlencoded
payload:
$ref: '#/components/schemas/BaseEventPayload'
CustomInfoFieldDeleted:
name: custom_info_field.deleted
title: Custom Info Field Deleted
summary: >-
Sent when a custom info field has been deleted in the customer's
Rippling tenant.
contentType: application/x-www-form-urlencoded
payload:
$ref: '#/components/schemas/BaseEventPayload'
FourOhOneKDeductionsUpdated:
name: 401_deductions.updated
title: 401(k) Deductions Updated
summary: >-
Sent when 401(k) deduction information has been updated in the
customer's Rippling tenant.
contentType: application/x-www-form-urlencoded
payload:
$ref: '#/components/schemas/BaseEventPayload'
LeaveRequestCreated:
name: leave_request.created
title: Leave Request Created
summary: >-
Sent when a leave request has been created, regardless of status. Fires
for pre-approved admin-created requests and for pending employee
requests alike.
contentType: application/x-www-form-urlencoded
payload:
$ref: '#/components/schemas/LeaveRequestEventPayload'
LeaveRequestUpdated:
name: leave_request.updated
title: Leave Request Updated
summary: >-
Sent when a leave request has been updated. Updates include changes to
startDate, endDate, numMinutes, startDateStartTime, endDateEndTime, or
status.
contentType: application/x-www-form-urlencoded
payload:
$ref: '#/components/schemas/LeaveRequestEventPayload'
LeaveRequestDeleted:
name: leave_request.deleted
title: Leave Request Deleted
summary: >-
Sent when a leave request has been deleted or cancelled, regardless of
prior status, whether by admin or employee.
contentType: application/x-www-form-urlencoded
payload:
$ref: '#/components/schemas/LeaveRequestEventPayload'
schemas:
BaseEventPayload:
type: object
description: >-
Form-encoded base payload shared by every Rippling partner webhook
delivery. Rippling POSTs application/x-www-form-urlencoded parameters
— fields listed below appear as repeated form parameters in the body.
required:
- event_name
- company_id
- company_primary_email
properties:
event_name:
type: string
description: The name of the event being delivered.
enum:
- employee.created
- employee.updated
- employee.deleted
- employee.hired
- employee.terminated
- group.created
- group.updated
- group.deleted
- company.updated
- company.deleted
- custom_info_field.created
- custom_info_field.updated
- custom_info_field.deleted
- 401_deductions.updated
- leave_request.created
- leave_request.updated
- leave_request.deleted
company_id:
type: string
description: Rippling ID of the company, as a string.
company_primary_email:
type: string
format: email
description: Email address of the primary company admin.
id:
type: string
description: >-
Rippling ID of the employee, group, custom info field, leave
request, or other resource the event refers to, if applicable.
example:
event_name: company.updated
id: 656992806f26d6caeaffff9f
company_id: 656992806f26d6caeaffff9f
company_primary_email: ripplingpartnerms+testcompany123@gmail.com
EmployeeEventPayload:
allOf:
- $ref: '#/components/schemas/BaseEventPayload'
- type: object
description: >-
Form-encoded payload for employee.* events. The id field is the
Rippling employee id.
properties:
event_name:
type: string
enum:
- employee.created
- employee.updated
- employee.deleted
- employee.hired
- employee.terminated
id:
type: string
description: Rippling employee id.
example:
event_name: employee.created
id: 656992816f26d6caea00072c
company_id: 656992806f26d6caeaffff9f
company_primary_email: ripplingpartnerms+testcompany123@gmail.com
GroupEventPayload:
allOf:
- $ref: '#/components/schemas/BaseEventPayload'
- type: object
description: >-
Form-encoded payload for group.* events. The id field is the
Rippling group id.
properties:
event_name:
type: string
enum:
- group.created
- group.updated
- group.deleted
id:
type: string
description: Rippling group id.
example:
event_name: group.created
id: 6617fe6d45810a5e2fa0f6dd
company_id: 656992806f26d6caeaffff9f
company_primary_email: ripplingpartnerms+testcompany123@gmail.com
CompanyEventPayload:
allOf:
- $ref: '#/components/schemas/BaseEventPayload'
- type: object
description: >-
Form-encoded payload for company.* events. For company.deleted the
id field matches company_id and indicates the customer has
uninstalled the partner app.
properties:
event_name:
type: string
enum:
- company.updated
- company.deleted
id:
type: string
description: Rippling company id (equal to company_id).
example:
event_name: company.deleted
id: 656992806f26d6caeaffff9f
company_id: 656992806f26d6caeaffff9f
company_primary_email: ripplingpartnerms+testcompany123@gmail.com
LeaveRequestEventPayload:
allOf:
- $ref: '#/components/schemas/BaseEventPayload'
- type: object
description: >-
Form-encoded payload for leave_request.* events. The id field is
the Rippling leave request id. Updates fire on changes to
startDate, endDate, numMinutes, startDateStartTime, endDateEndTime,
or status.
properties:
event_name:
type: string
enum:
- leave_request.created
- leave_request.updated
- leave_request.deleted
id:
type: string
description: Rippling leave request id.
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.