Webhook events
Rinne sends webhooks for the following events:Transaction events
transaction.created: New transaction createdtransaction.status-changed: Transaction status updated
Affiliation events
affiliation.created: New affiliation createdaffiliation.status-changed: Affiliation status updated
Company events
company.created: New company createdcompany.status-changed: Company status updated
Banking events
cashout.created: New cashout request createdcashout.status-changed: Cashout status updatedinternal-transfer.created: New internal transfer createdinternal-transfer.status-changed: Internal transfer status updated
Webhook payload structure
All webhooks follow a consistent structure:Common fields
id: Unique event identifiertype: Event type (e.g.,transaction.status-changed)version: Event schema versiontimestamp: When the event occurred (ISO 8601)source: Service that generated the eventcompany_id: Company associated with the eventcorrelation_id: ID for tracking related eventspayload: Event-specific data
Setting up webhooks
Contact Rinne support to configure your webhook endpoint URL. We’ll create a webhook configuration for your organization.Webhook endpoint requirements
Your endpoint must:- Accept POST requests
- Respond with 2xx status code within 5 seconds
- Use HTTPS (required for production)
- Handle duplicate events (idempotency)
Webhook security
Rinne uses Svix for webhook delivery, which provides:- Request signing for verification
- Automatic retries with exponential backoff
- Webhook dashboard for monitoring
- Replay functionality for testing
Verifying webhook signatures
Verify that webhooks are from Rinne by checking the signature:Handling webhook events
Transaction status changed
Affiliation status changed
Webhook dashboard
Access your webhook dashboard to:- View webhook delivery history
- Replay failed webhooks
- Test webhook endpoints
- Monitor delivery success rates
Retry behavior
If your endpoint returns an error or times out, Rinne automatically retries:- Immediate retry
- After 5 seconds
- After 5 minutes
- After 30 minutes
- After 2 hours
- After 5 hours
- After 10 hours
- After 24 hours
Best practices
Respond quickly
Respond quickly
Return a 200 status code immediately, then process the webhook asynchronously. Don’t perform long-running operations in the webhook handler.
Handle duplicates
Handle duplicates
Use the event
id to track processed events and ignore duplicates. Webhooks may be delivered more than once.Verify signatures
Verify signatures
Always verify webhook signatures to ensure requests are from Rinne.
Use correlation IDs
Use correlation IDs
Use
correlation_id to track related events across different webhook types.Monitor webhook health
Monitor webhook health
Regularly check your webhook dashboard for failed deliveries and fix issues promptly.

