Skip to main content

Become a Stream POS (0.1)

Download OpenAPI specification:Download

This is a spec for integrating with Stream as a POS. We are prescribing an OAuth System for Location/Catalog Configuration alongside Order Management. Please send any feedback or questions to partner@streamorders.com.

Authorize Endpoint

You will have to build this route into your system. It should render or redirect to a web form that will prompt users to begin oAuth login. Once complete, the web form will redirect them back to us with their authorization code

query Parameters
client_id
required
string
response_type
required
string
Value: "code"
redirect_uri
required
string

Responses

Request Token (Stream –> POS)

You will have to build this endpoint into your system. This is where Stream will send the authorization code we receive after the merchant authorizes us.

Request Body schema: application/json
One of
client_id
required
string

The client ID to be provided to Stream for identifying us.

client_secret
required
string

The client secret to be provided to Stream for security.

code
required
string

The authorization code received from successful authorization.

grant_type
required
string
Default: "authorization_code"
redirect_uri
required
string

The redirect url for authorization.

Responses

Request samples

Content type
application/json
Example
{
  • "client_id": "string",
  • "client_secret": "string",
  • "code": "string",
  • "grant_type": "authorization_code",
  • "redirect_uri": "string"
}

Response samples

Content type
application/json
{
  • "access_token": "string",
  • "refresh_token": "string",
  • "expire_time": 0,
  • "refresh_token_expire_time": 0,
  • "id": "string",
  • "sso_details": {
    }
}

Get Catalog (Stream –> POS via OAuth)

You will have to build this endpoint into your system. This is where Stream will query the entire catalog attached to the OAuth token.

header Parameters
X-Provider-Merchant-Id
string

The ID of the provider integration for the requested catalog. Only for Global Catalog

X-Provider-Location-Id
string

The ID of the provider location for the requested catalog

Authorization
string

The OAuth Bearer token for the merchant. Format will be Bearer <TOKEN>.

Responses

Response samples

Content type
application/json
{
  • "tax_rate": 0,
  • "category": [
    ],
  • "item_family": [
    ],
  • "item": [
    ],
  • "modifier_group": [
    ],
  • "modifier": [
    ],
  • "menu": [
    ],
  • "tax": [
    ]
}

Get Locations (Stream –> POS via OAuth)

You will have to build this endpoint into your system. Stream uses this to present the user with a selection of all locations attached to the OAuth token.

header Parameters
Authorization
required
string

The OAuth Bearer token for the merchant. Format will be Bearer <TOKEN>.

Responses

Response samples

Content type
application/json
{
  • "locations": [
    ]
}

Handle Order Event (Stream -> POS via OAuth)

You will have to build this endpoint into your system. This is how Stream will notify your system with order updates.

header Parameters
Authorization
string

The OAuth Bearer token for the merchant. Format will be Bearer <TOKEN>.

Request Body schema: application/json
One of
type
required
string
Value: "order.created"
required
object (NewOrderEventData)

Responses

Request samples

Content type
application/json
Example
{
  • "type": "order.created",
  • "object": {
    }
}

Response samples

Content type
application/json
{
  • "order": {
    }
}

Handle Webhook Event (POS -> Stream via Webhook Secret)

You will call this endpoint from your system, This is how you will notify Stream with updates.

header Parameters
Stream-Webhook-Signature
string

The HMAC-SHA256 signature of the request body, using the webhook secret as the key.

Request Body schema: application/json
One of
type
required
string
Default: "location.catalog.updated"
required
object (LocationCatalogEventObject)

Responses

Request samples

Content type
application/json
Example
{
  • "type": "location.catalog.updated",
  • "object": {
    }
}