Skip to main content

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

EventDescription
purchaseRequestCustomer requested a purchase from the lane
helpCustomer requested staff assistance
carrierHitThe carrier/trolley was shot and returned home
sessionCreatedA new session was created
sessionStartedCustomer entered the lane and session timer began
sessionPausedSession was paused (e.g., during a ceasefire)
sessionResumedSession was resumed after a pause
sessionStoppedA session ended
sessionModifiedSession 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_id not in your system, query GET /sessions to sync your records.

Note: A stopped session will no longer appear in the /sessions API 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_message field is not yet implemented. The plan is to display this message to the customer and return them to the cart on failure.