Events
Warning: Events are fire-once and will not be retried if delivery fails.
We send POST requests to your webhook endpoint when events occur on a lane.
Event Types
| Event | Description |
|---|---|
purchaseRequest | Customer requested a purchase from the lane |
help | Customer requested staff assistance |
carrierHit | The carrier/trolley was shot and returned home |
sessionCreated | A new session was created |
sessionStarted | Customer entered the lane and session timer began |
sessionPaused | Session was paused (e.g., during a ceasefire) |
sessionResumed | Session was resumed after a pause |
sessionStopped | A session ended |
sessionModified | Session duration was modified |
Tip: Build your system to gracefully handle unknown event types. We may add new events in the future.
Simple Events
help
Customer requested staff assistance from the lane.
{
"event": "help",
"session_id": "uuid",
"lane_id": "uuid"
}
carrierHit
The carrier/trolley was shot and returned home. Some ranges charge extra for carrier strikes.
{
"event": "carrierHit",
"session_id": "uuid",
"lane_id": "uuid"
}
Session Lifecycle Events
Sessions can be created, started, paused, resumed, stopped, or modified from both your API and the SRA Control Screen. When session state changes occur, we send an event so you can sync your records.
Payload:
{
"event": "sessionCreated",
"session_id": "uuid",
"lane_id": "uuid"
}
The event field will be one of: sessionCreated, sessionStarted, sessionPaused, sessionResumed, sessionStopped, or sessionModified.
Tip: If you receive a session event for a
session_idnot in your system, queryGET /sessionsto sync your records.
Note: A stopped session will no longer appear in the
/sessionsAPI response.
Purchase Request Events
When a customer requests a purchase from the lane:
{
"event": "purchaseRequest",
"session_id": "uuid",
"lane_id": "uuid",
"items": [
{ "id": "time", "qty": 60 },
{ "id": "TARGET-123", "qty": 2 },
{ "id": "AMMO-380", "qty": 1 }
]
}
Expected Responses
Success (2xx status):
{
"success": true,
"trace_id": "your-trace-id"
}
Failure (non-2xx status):
{
"error": "Detailed error for logging",
"user_message": "Message to display to customer",
"trace_id": "your-trace-id"
}
Note: The
user_messagefield is not yet implemented. The plan is to display this message to the customer and return them to the cart on failure.