Overview
Rise supports the following invite-related webhook events:invite.accepted
Invitation accepted and user joined team or company
invite.rejected
Invitation declined by the invitee
invite.expired
Invitation lapsed after 90 days without a response
Some invitations end without a webhook: one you revoke, one superseded by a resend, one dropped when the invitee’s account is deactivated, and one that is set aside during sign-up because its role does not fit the role the invitee joined as. Do not treat “no event yet” as “still pending” indefinitely — reconcile against the invites API if you need the settled state of every invitation you sent.
invite.accepted
When a user accepts an invitation to join a company or team, this event is triggered. This event signals successful completion of the invitation workflow.Field reference
string
required
The type of object this webhook represents (always “event”)
number
required
The Unix timestamp when the event was created
string
required
The type of event that occurred
string
required
The version of the event schema
string
A unique identifier for the API request that triggered this event (optional)
string
required
A unique key to ensure the webhook is processed only once
object
required
Invitation information and details
invite.rejected
When an invitee explicitly declines an invitation, this event is triggered. The invitation is dead and will never be accepted.Field reference
string
required
The type of object this webhook represents (always “event”)
number
required
The Unix timestamp when the event was created
string
required
The type of event that occurred
string
required
The version of the event schema
string
A unique identifier for the API request that triggered this event (optional)
string
required
A unique key to ensure the webhook is processed only once
object
required
Invitation information and details
invite.expired
Invitations are valid for 90 days from the moment they are created. An invitation that is still pending when it passes that deadline lapses, and this event is triggered. Expiry is swept periodically rather than exactly on the 90-day boundary, so expect this event shortly after the invitation lapses rather than to the second. Only invitations that were still pending expire — one that was already accepted or rejected has reached its final state and produces noinvite.expired.
Because the invitee may never have created a Rise account, this payload carries no user_nanoid. That is the only shape difference from the other two invite events.
Field reference
string
required
The type of object this webhook represents (always “event”)
number
required
The Unix timestamp when the event was created
string
required
The type of event that occurred
string
required
The version of the event schema
string
A unique identifier for the API request that triggered this event (optional)
string
required
A unique key to ensure the webhook is processed only once
object
required
Invitation information and details
Implementation Notes
Invitation lifecycle: An invitee can do three things with an invitation, and each emits an event —
invite.accepted when they join, invite.rejected when they decline, and invite.expired when they never respond and it lapses 90 days after it was created. Subscribe to all three to learn the outcome of the invitations you send.Invitations that you end — revoking one, resending one (which cancels the original), or deactivating the invitee’s account — emit no webhook.Role Types
team_admin
team_admin
Full administrative access to team settings, member management, and billing
member
member
Standard team member with access to team resources and functionality
viewer
viewer
Read-only access to team resources without modification privileges
Use Cases
Invite events are commonly used for:- Automated onboarding - Trigger welcome emails, setup guides, or account provisioning
- Access control - Grant appropriate permissions in external systems
- Analytics tracking - Monitor team growth and invitation conversion rates
- Compliance logging - Maintain audit trails of team membership changes
- Chasing stalled invitations - Re-invite or clean up your own records when
invite.expiredorinvite.rejectedtells you an invitation will never convert
Anonymous Invitations
Whenanonymous is true, the invitation was sent to a user who wasn’t previously registered with Rise. These users create an account as part of accepting the invitation.
Account creation: Anonymous invitations trigger both account creation and team membership, so
invite.accepted represents both user registration and team joining. An anonymous invitation that expires never produced an account, which is why invite.expired carries no user_nanoid.