Location Management
Location Retrieval
When a merchant connects to Stream, we will fetch all available locations from your platform using the Get Locations endpoint. This allows merchants to select which locations they want to connect to Stream.
Location Properties
Each location should include essential information:
- Unique
provider_idto identify the location - Name and address details
- Preparation time in minutes
prep_time_minutes(optional) - Connection status to stream
connection_status(optional). This can be used to stop Stream from requesting catalog information during ingest processing.
Location Operational Status Management (Obligatory)
Stream provides functionality for merchants to manage their location statuses through our platform. This can effectively disable/enable connected channels for a location.
Status Updates
When a location's status changes in your POS system (e.g., temporary closure, service interruption), you should notify Stream by sending a request to the Location Status Update Notification (POS -> Stream via Webhook) endpoint with the updated status information.
Example location status update payload:
{
"type": "location.status.updated",
"object": {
"location_id": "test_location_123",
"status": "active" | "inactive" ,
"paused_until": 1707772800000, // Optional: Unix timestamp in milliseconds
}
}
Location Integration Connection Status (Optional)
If opted in, we will send connection status updates to your platform to help you recognize and manage Stream's connection state. This allows your platform to:
- Control webhook delivery: Use the connection status to determine whether to send webhooks to Stream
- Update platform UI: Display accurate connection status in your system (connected/disconnected)
- Customize user experience: Show appropriate CTA text on SSO buttons and other integration touchpoints
Note: These requests are only sent when Stream initiates the connection status change. No request is sent when your POS triggers the change itself.
How connection_status affects connection requests
Before marking a location connected, Stream reads connection_status from each location in the Get Locations response:
online— Stream treats the location as already connected and will not send a redundantPUTto mark it connected again.offline(or omitted when not connected) — After ingest completes successfully, Stream sendsPUT /stream-pos/v1/location/connectionto mark the location connected.
Your platform must return connection_status accurately on Get Locations. If a location is not connected to Stream, return offline (or omit the field) so Stream can send the PUT when it is ready. If you return online for a location that is not actually connected, Stream will skip the PUT and your platform may never receive the signal to start sending webhooks.
After you handle a connection or disconnection request, update the value you return on subsequent Get Locations calls so Stream and your platform stay in sync.
Connection Endpoints:
PUT /stream-pos/v1/location/connection- Indicates the location should be connected to Stream. Your platform should begin sending webhooks for events likecatalog.location.updated,order.created, etc. Stream only sends this when Get Locations reports the location as not alreadyonline. EndpointDELETE /stream-pos/v1/location/connection- Indicates the location should be disconnected from Stream. Your platform should stop sending webhooks and update the connection status in your UI. Endpoint