Understanding event payloads
Every webhook event follows a consistent structure with three main components:Event envelope
All webhook events are wrapped in a standard envelope:Envelope Fields
Consistent metadata present in all events for tracking and processing
Event Payload
Event-specific data that varies by event type and contains the actual business data
Envelope 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 (e.g.,
payment.sent)string
required
Schema version for the event — see Event versions
string
Request tracking identifier
string
required
Key to prevent duplicate processing
Event versions
event_version is the version of that event’s payload schema. Each event type is versioned independently, so two events delivered to the same endpoint can be on different versions.
Versions start at 2.0, not 1.0. Version 1.0 belongs to the legacy v1 webhooks, whose payloads have a different shape and signing scheme entirely. To keep the two from being confused, every event on the current v2 webhooks starts at 2.0 — including events introduced long after v2 shipped, such as invite.expired and invite.rejected. A 2.0 therefore does not mean an event has been revised once; it means it is the first version of that event on v2.
From there, an event’s version moves independently as its payload changes:
Always branch on
event_type and event_version when you handle an event. A new version of an event you already consume can change the payload, and reading event_version is how you notice.Data types and formats
Rise webhooks use consistent data types across all events:- String Formats
- Numeric Formats
- Nanoids - 15-character identifiers with prefixes (e.g.,
co-abc123def456789) - ISO-8601 timestamps - UTC timestamps (e.g.,
2024-01-15T10:30:00.000Z) - Email addresses - Valid email format
- Currency codes - 3-letter ISO codes (e.g.,
USD,EUR) - Blockchain addresses - 42-character hex addresses (e.g.,
0x1234...)
Complete event example
Here’s how a complete webhook event looks when delivered to your endpoint:Event Categories
Rise webhooks are organized into the following categories based on their purpose and context:Payment Events
Events related to payment processing, including payment group creation and individual payment completion
Deposit Events
Events triggered when funds are deposited into company accounts from external sources
Invite Events
Events covering the full invitation lifecycle — acceptance, rejection, and expiry
Security Events
Events related to account security, fraud detection, and compliance monitoring
Quick Reference
Payment Events
Payment Events
- payment.group.created - Payment group created with multiple payments
- payment.sent - Individual payment processed and sent
Deposit Events
Deposit Events
- deposit.received - Funds deposited to company account
Invite Events
Invite Events
- invite.accepted - Team member invitation accepted
- invite.rejected - Team member invitation declined by the invitee
- invite.expired - Team member invitation lapsed after 90 days without a response
Security Events
Security Events
- withdraw_account.duplicated_detected - Duplicate withdrawal account detected
Implementation Tips
Field reference tip: Each event category page contains complete field documentation and payload examples. Bookmark the relevant category pages for quick reference while building your webhook handlers.
