Webhook Events
All events that can be delivered via webhooks.
Order Events
order.created
Triggered when a new order is placed.
{
"event": "order.created",
"data": {
"id": 1,
"order_number": "ORD-2025-001",
"status": "pending",
"payment_status": "pending",
"total": "29.99",
"customer": {
"id": 1,
"email": "player@example.com"
},
"items": [
{
"product_id": 1,
"product_name": "VIP Rank",
"quantity": 1,
"price": "29.99"
}
],
"created_at": "2025-01-20T14:30:00Z"
}
}order.paid
Triggered when payment is successfully received.
{
"event": "order.paid",
"data": {
"id": 1,
"order_number": "ORD-2025-001",
"status": "pending",
"payment_status": "paid",
"total": "29.99",
"payment_method": "stripe",
"paid_at": "2025-01-20T14:32:00Z"
}
}order.completed
Triggered when order is fully delivered.
{
"event": "order.completed",
"data": {
"id": 1,
"order_number": "ORD-2025-001",
"status": "completed",
"completed_at": "2025-01-20T14:35:00Z"
}
}order.refunded
Triggered when an order is refunded.
{
"event": "order.refunded",
"data": {
"id": 1,
"order_number": "ORD-2025-001",
"status": "refunded",
"refund_amount": "29.99",
"refund_reason": "Customer request",
"refunded_at": "2025-01-21T10:00:00Z"
}
}Subscription Events
subscription.created
Triggered when a new subscription is created.
{
"event": "subscription.created",
"data": {
"id": 1,
"product_id": 5,
"product_name": "VIP Monthly",
"status": "active",
"customer": {
"id": 1,
"email": "player@example.com"
},
"price": "9.99",
"interval": "month",
"current_period_start": "2025-01-20T00:00:00Z",
"current_period_end": "2025-02-20T00:00:00Z"
}
}subscription.renewed
Triggered when a subscription renews.
{
"event": "subscription.renewed",
"data": {
"id": 1,
"status": "active",
"renewed_at": "2025-02-20T00:00:00Z",
"current_period_end": "2025-03-20T00:00:00Z"
}
}subscription.cancelled
Triggered when a subscription is cancelled.
{
"event": "subscription.cancelled",
"data": {
"id": 1,
"status": "cancelled",
"cancelled_at": "2025-01-25T10:00:00Z",
"ends_at": "2025-02-20T00:00:00Z"
}
}subscription.expired
Triggered when a subscription period ends.
{
"event": "subscription.expired",
"data": {
"id": 1,
"status": "expired",
"expired_at": "2025-02-20T00:00:00Z"
}
}Customer Events
customer.created
Triggered when a new customer account is created.
{
"event": "customer.created",
"data": {
"id": 1,
"email": "player@example.com",
"username": "Player123",
"created_at": "2025-01-20T14:30:00Z"
}
}Payment Events
payment.failed
Triggered when a payment attempt fails.
{
"event": "payment.failed",
"data": {
"order_id": 1,
"order_number": "ORD-2025-001",
"error": "card_declined",
"message": "Your card was declined",
"failed_at": "2025-01-20T14:31:00Z"
}
}Discord Events
discord.role.assign
Triggered when a Discord role needs to be assigned (alternative to polling).
{
"event": "discord.role.assign",
"data": {
"id": 1,
"operation": "assign",
"guild_id": "123456789012345678",
"discord_user_id": "987654321098765432",
"role_id": "111222333444555666",
"role_name": "VIP",
"order_id": 42,
"order_number": "ORD-2025-042",
"customer": {
"id": 1,
"email": "player@example.com"
},
"created_at": "2025-01-20T14:30:00Z"
}
}discord.role.remove
Triggered when a Discord role needs to be removed.
{
"event": "discord.role.remove",
"data": {
"id": 2,
"operation": "remove",
"guild_id": "123456789012345678",
"discord_user_id": "555666777888999000",
"role_id": "111222333444555666",
"role_name": "VIP",
"subscription_id": 15,
"reason": "subscription_expired",
"created_at": "2025-01-20T14:35:00Z"
}
}Using Webhooks vs Polling
While you can receive Discord operations via webhooks, we recommend using the Discord Agent polling approach for greater reliability. Polling handles network issues, retries, and ordering automatically.
Event Summary
| Event | Description |
|---|---|
order.created | New order placed |
order.paid | Payment received |
order.completed | Order fulfilled |
order.refunded | Order refunded |
subscription.created | New subscription |
subscription.renewed | Subscription renewed |
subscription.cancelled | Subscription cancelled |
subscription.expired | Subscription ended |
customer.created | New customer |
payment.failed | Payment failed |
discord.role.assign | Discord role assignment queued |
discord.role.remove | Discord role removal queued |
