Understanding webhook event payloads is crucial for building robust integrations with Rise. This guide provides comprehensive documentation for all event types, their data structures, and field specifications.

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:
{
  "object": "event",
  "created": 1751590453,
  "request_id": "req-1751590452487",
  "event_type": "payment.sent",
  "event_version": "1.0",
  "idempotency_key": "85420805-0b5e-4b11-b7f4-c6f05db7120b",
  // Event-specific data goes here
}

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

object
string
required
The type of object this webhook represents (always “event”)
created
number
required
The Unix timestamp when the event was created
event_type
string
required
The type of event (e.g., payment.sent)
event_version
string
required
Schema version for the event
request_id
string
Request tracking identifier
idempotency_key
string
required
Key to prevent duplicate processing

Data types and formats

Rise webhooks use consistent data types across all events:
  • 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...)
Important: All monetary amounts in blockchain context are transmitted as strings to prevent JSON number precision issues. Fiat amounts are typically in cents as integers.

Complete event example

Here’s how a complete webhook event looks when delivered to your endpoint:
{
  "object": "event",
  "created": 1751590453,
  "request_id": "req-1751590452487",
  "event_type": "payment.sent",
  "event_version": "1.0",
  "idempotency_key": "85420805-0b5e-4b11-b7f4-c6f05db7120b",
  "payment": {
    "nanoid": "pa-xyz789abc123456",
    "onchain_id": "67890",
    "group_onchain_id": "12345",
    "invoice_nanoid": "iv-def456ghi789012",
    "creation_transaction": "tx-abc123def456789",
    "process_transaction": "tx-def456ghi789012",
    "created_at": "2024-01-15T10:30:00.000Z",
    "updated_at": "2024-01-15T10:35:00.000Z",
    "pay_at_time": "1705312200",
    "pay_type": "1",
    "token": {
      "address": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174",
      "name": "USD Coin",
      "symbol": "USDC",
      "decimals": 6
    },
    "recipients": [
      {
        "nanoid": "pa-xyz789abc123456",
        "email": "contractor@example.com",
        "name": "John Doe",
        "entity_type": "user"
      }
    ],
    "amount": "1000000000",
    "amount_cents": 100000,
    "invoice_type": "time_entry",
    "invoice_description": "Development work for Q1 2024",
    "role_description": "Senior Frontend Developer",
    "currency": "USD",
    "payment_group": {
      "nanoid": "pg-abc123def456789",
      "onchain_id": "12345",
      "created_at": "2024-01-15T10:30:00.000Z",
      "updated_at": "2024-01-15T10:30:00.000Z"
    }
  }
}
This example shows the complete structure with envelope fields at the top level and event-specific data flattened into the root object.

Event Categories

Rise webhooks are organized into the following categories based on their purpose and context:

Quick Reference


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.
Getting started: If you’re building a payment integration, start with Payment Events. For wallet funding notifications, check Deposit Events.