Public API (v1)

Download OpenAPI specification:Download

License: Proprietary

Overview

The API endpoints are developed around RESTful principles secure via the OAuth2.0 protocol.

Beyond the entry points, the API also provides a line of communication into your system via webhooks.

For testing purposes, we offer a staging environment. Also, more detailed information about the business rules and workflows can be found on the Documentation Section

Versioning

Each API is versioned individually, but we follow these rules:

  • Non breaking changes (eg: adding new fields) are added in the current version without previous communication
  • Breaking changes (fields removal, semantic changed or schema update) have the version incremented
  • Users will be notified about new versions and will be given time to migrate (the time will be set on a case by case basis)
  • Once users migrate to the new version, we will deprecate the old ones
  • Once there is a new version for an API, we won't accept new integrations targeting old versions

API General Definitions

The APIs use resource-oriented URLs communicating, primarily, via JSON and leveraging the HTTP headers, response status codes, and verbs.

To exemplify how the API is to be consumed, consider a fake GET resource endpoint invocation below:

curl --request GET 'https://{{public-api-url}}/v1/resource/123' \
--header 'Authorization: Bearer 34fdabeeafds=' --header 'X-Store-Id: 321'
Header Description
Authorization Standard HTTP header is used to associate the request with the originating invoker. The content of this header is a Bearer token generated from you client_secret, defined in the API Auth guide.
X-Store-Id The ID of the store in your system this call acts on behalf of.

All resource endpoints expect the Authorization header, the remaining headers are explicitly stated in the individual endpoint documentation section.

With these headers, the system will:

  • Validate the client token, making sure the call is originating from a trusted source.
  • Validate that the Application has the permission to access the v1/resource/{id} resource via the Application's pre-configured scopes.
  • Translate your X-Store-Id to our internal store ID (e.g. AAA).
  • Validate and retrieve resource AAA, that is associated to your Application via store id 321.

POST/PUT methods will look similar to the GET calls, but they'll take in a body in the HTTP request (default to the application/json content-type).

curl --location --request POST 'https://{{public-api-url}}/v1/resource' \
--header 'Authorization: Bearer 34fdabeeafds=' --header 'X-Store-Id: 321'
--data '{"foo": "bar"}'

API Authentication/Authorization

OAuth2.0

The Authorization API is based on the OAuth2.0 protocol, supporting the (Client Credentials)[https://datatracker.ietf.org/doc/html/rfc6749#section-4.4] and the (Authorization Code)[https://datatracker.ietf.org/doc/html/rfc6749#section-4.1] flows. Resources expect a valid token sent as a Bearer token in the HTTP Authorization header.

Scopes

Scopes must be configured by our internal team to be enabled for an app. Once the scopes are configured they can be enabled on the Application Settings Page in Developer Portal. Each endpoint requires a given scope that can be verified on each endpoint documentation. When generating an OAuth2.0 token multiple scopes can be requested.

Authorization Code Flow

To perform this flow, the authorization code flow must be enabled in the Application Settings Page in Developer Portal. When enabling the flow it is mandatory to provide a redirect URI pointing to your application. Once the flow is complete we will redirect the user to this URI passing the 'code' and 'state' parameters. The Authorization Code flow provides a temporary code that the client application can exchange for an access token. To start the flow the application must request the user authorization. This is done by sending a request to https://{{public-api-url}}/v1/auth/oauth2/authorize. Example

curl --location 'https://{{public-api-url}}/v1/auth/oauth2/authorize?client_id=[CLIENT_ID]&redirect_uri=[REDIRECT_URI]&response_type=code&scope=organization.read&state=8A9D16B4C3E25F6A'

This call will return a 302 redirecting the user to our authorization page. If the user approves the application, we will redirect to configured URI passing the authorization code in the query parameter 'code'. The 'state' parameter is also sent to ensure the source of the data. With the authorization code, the client application can generate the token.

Client Credentials Flow

The client_credentials flow does not require any steps before generating the token. Once your application is ready, and the client_id and client_secret are available, the token can be generated by following the instructions in the next section.

Generate Token

To generate the token, use the Client ID and Client Secret (provided during onboarding), and optionally the authorization code obtained after performing the Authorization Code flow, to the Token Auth endpoint endpoint. The result of this invocation is a token that is valid for a pre-determined time or until it is manually revoked.

The access token obtained will be sent as a Bearer value of the Authorization HTTP header.

Client credentials in the request-body and HTTP Basic Auth are supported.

Request Example for client_credentials

curl --location --request POST 'https://{{public-api-url}}/v1/auth/token' \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data-urlencode 'scope=ping' \
  --data-urlencode 'grant_type=client_credentials' \
  --data-urlencode 'client_id=[APPLICATION_ID]' \
  --data-urlencode 'client_secret=[CLIENT_SECRET]'

Request Example for authorization_code

curl --location --request POST 'https://{{public-api-url}}/v1/auth/token' \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data-urlencode 'scope=ping' \
  --data-urlencode 'grant_type=authorization_code' \
  --data-urlencode 'client_id=[APPLICATION_ID]' \
  --data-urlencode 'client_secret=[CLIENT_SECRET]' \
  --data-urlencode 'code=[code]' \
  --data-urlencode 'redirect_uri=[redirect_uri]'

Response Example

{
  "access_token": "oMahtBwBbnZeh4Q66mSuLFmk2V0_CLCKVt0aYcNJlcg.yditzjwCP7yp0PgR6AzQR3wQ1rTdCjkcPeAMuyfK-NU",
  "expires_in": 2627999,
  "scope": "ping orders.create",
  "token_type": "bearer"
}

Token Usage

The token provided in field access_token is used to authenticate when consuming the API endpoints. Send the token value in the Authorization header of every request. The token expiration time is represented in the field expired_in, in seconds. Currently, all tokens are valid for 30 days and should be stored and re-used while still valid.

Note that occasionally, a 401 error may be returned for a valid token due to an internal service issue. Such occurrences should be rare. To prevent exposing potential vulnerabilities to attackers, the Public API does not disclose other types of errors in the authentication flow if for any reason the token can't be validated (when it's a valid token then it's ok to return 5XX or other 4XX though - such as 403). In such scenarios, although the internal auth flow avoids retries to prevent attacks, if the token is known to be valid and not expired, a retry with a backoff interval by the client is advised. Another option is to request a new token.

Example

curl --location --request GET 'https://{{public-api-url}}/v1/ping' \
  --header 'Authorization: Bearer <access_token>' \
  --header 'X-Store-Id: <storeId>'
Security Scheme Type OAuth2
clientCredentials OAuth Flow
Token URL: /v1/auth/token
Scopes:
  • catalog -

    Permission to interact with product inventory for existing stores.

  • delivery.provider -

    Permission to provide delivery services for existing orders.

  • finance -

    Permission to provide financial data for orders/stores.

  • manager.menus -

    Permission to manage menus.

  • manager.orders -

    Permission to manage orders.

  • manager.storefront -

    Permission to manage storefront.

  • menus.async_job.read -

    Permission to read the status of a menu upsert job.

  • menus.entity_suspension -

    Permission to notify the result of a menu entity availability update, after being requested by a webhook event.

  • menus.get_current -

    Permission to send the current state of a menu, after being requested by a webhook event.

  • menus.publish -

    Permission to notify the result of a publish menus operation for a given store.

  • menus.read -

    Permission to read the current menus for a given store.

  • menus.upsert -

    Permission to create/update menus for a given store.

  • menus.upsert_hours -

    Permission to notify the receiving of the upsert hours menu event, after being requested by a webhook event.

  • orders.create -

    Permission to create new order for a given store.

  • orders.read -

    Permission to read orders and connected data.

  • orders.update -

    Permission to create and update new orders for a given store.

  • ping -

    Permission to ping the system.

  • reports.generate_report -

    Permission to request reports for given store(s) and period of time.

  • reviews.reply -

    Permission to reply to reviews.

  • storefront.store_pause_unpause -

    Permission to notify the result of a pause/unpause operation, after being requested by a webhook event.

  • storefront.store_availability -

    Permission to send the current state of store.

  • storefront.store_hours_configuration -

    Permission to send the current store hours configuration.

  • stores.manage -

    Permission to onboard stores and update the identifier.

  • callback.error.write -

    Token has permission to send failed webhook event results.

  • manager.loyalty -

    Permission to interact with loyalty services.

  • direct.orders -

    Permission to interact with direct order services.

  • store.read -

    Permission to query store information.

authorizationCode OAuth Flow
Authorization URL: /v1/auth/oauth2/authorize
Token URL: /v1/auth/token
Scopes:
  • organization.read -

    Permission to read data for organization/brands/stores on behalf of a user.

  • organization.service_integration -

    Permission to manage the your integration with a given store on behalf of a user.

Webhook

The Public API is able to send notifications to your system via HTTP POST requests.

Every webhook is signed using HMAC-SHA256 that is present in the header X-HMAC-SHA256, and you can also authenticate the requests using Basic Auth, Bearer Token or HMAC-SHA1 (legacy). Please, refer to Webhook Authentication Guide for more details.

Please work with your Account Representative to setup your Application's Webhook configurations.

Example Base-URL = https://{{your-server-url}}/webhook

Notification Schema

Name Type Description
eventId string Unique id of the event.
eventTime string The time the event occurred.
eventType string The type of event (e.g. create_order).
metadata.storeId string Id of the store for which the event is being published.
metadata.applicationId string Id of the application for which the event is being published.
metadata.resourceId string The external identifier of the resource that this event refers to.
metadata.resourceHref string The endpoint to fetch the details of the resource.
metadata.payload object The event object which will be detailed in each Webhook description.

Notification Request Example

curl --location --request POST 'https://{{your-server-url}}/webhook' \
--header 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36' \
--header 'Authorization: MAC <hash signature>' \
--header 'Content-Type: application/json' \
--data-raw '{
   "eventId": "123456",
   "eventTime": "2020-10-10T20:06:02:123Z",
   "eventType": "orders.new_order",
   "metadata": {
      "storeId": "755fd19a-7562-487a-b615-171a9f89d669",
      "applicationId": "e22f94b3-967c-4e26-bf39-9e364066b68b",
      "resourceHref": "https://{{public-api-url}}/v1/orders/bf9f1d81-f213-496e-a026-91b6af44996c",
      "resourceId": "bf9f1d81-f213-496e-a026-91b6af44996c",
      "payload": {}
   }
}

Expected Response

The partner application should return an HTTP 200 response code with an empty response body to acknowledge receipt of the webhook event.

Rate Limiting

Please, refer to Rate Limiting Guide for more details.

Error codes

The APIs use standard HTTP status codes to indicate the success or failure of a request. Error codes are divided into two categories: 4XX codes for client-side errors and 5xx codes for server-side errors.

4XX Client-Side Errors

Client-side errors are indicated by status codes in the 4xx range. These errors are typically the result of a problem with the request made by your application. If a client-side error occurs, our API will return a response that includes an appropriate error message. This message will provide information about the cause of the error. The aim of these messages is to assist you in identifying and resolving the issue. For example, if you submit a request with missing or invalid parameters, you might receive a 400 Bad Request error with a message indicating which parameters were missing or incorrect.

5XX Server-Side Errors

Server-side errors are represented by status codes in the 5xx range. These errors suggest a problem with our server, not with your application's request. Server-side errors are typically transient, meaning they are temporary. If a server-side error occurs, we recommend that the client retries the same request with the exact same parameters. For example, if you get a 500 Internal Server Error, it's possible that our server is suffering a temporary problem. In such cases, retrying the request after a short delay is often successful. If you continually receive server-side errors, reach out to our support team for further assistance.

Account Pairing

Endpoints to manage store onboarding and status

Complete Store Onboarding

RATE LIMIT: 2 per minute

The asynchronous callback of the Upsert Store Webhook. The partner application will use this endpoint to inform if the store data and credentials provided through the Upsert Store Webhook were enough to create/update and validate the store. If informing success, the Store ID must be provided to complete the store onboarding process. If informing failure, use the Error Message field to provide details about the problem.

Authorizations:
OAuth2.0 (stores.manage)
header Parameters
X-Application-Id
required
string (ApplicationId)
Example: 5045c1c3-694f-4392-b43b-e765cd89c8b8

The plain-text Application ID, provided at partner onboarding, also available on Developer Portal.

X-Event-Id
required
string
Example: cf0ce51b-d74e-40d3-b177-1925ab4edc0c

Unique identifier of the event that this callback refers to.

Request Body schema: application/json
success
required
boolean

Indicates if the partner application successfully created and validated the credential provided through the Upsert Store Webhook.

storeId
string or null

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters.

object or null

The error response object.

Responses

Request samples

Content type
application/json
{
  • "success": true,
  • "storeId": "partner-store-unique-identifier",
  • "errorMessage": {
    }
}

Response samples

Content type
application/json
{
  • "message": "The request body is invalid.",
  • "details": [
    ]
}

Update Store Status

RATE LIMIT: 2 per minute

The partner application should call this endpoint when needing to change the status of a store that already completed the onboarding process.

Authorizations:
OAuth2.0 (stores.manage)
header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

Request Body schema: application/json
status
required
string
Enum: "ACTIVE" "SUSPENDED" "INVALID"

The new status of the store. ACTIVE: store ready to perform operations again; SUSPENDED: temporarily disables the store; INVALID: current credentials will no longer work, new credentials needed.

message
string or null

Optional message to explain the reason of the status update.

Responses

Request samples

Content type
application/json
{
  • "status": "SUSPENDED",
  • "message": "Authentication is failing with current credentials. Suspending store while the retry process is in progress."
}

Response samples

Content type
application/json
{
  • "message": "The request body is invalid.",
  • "details": [
    ]
}

Auth

Endpoints to handle token management.

Generate token

Client credentials in the request-body and HTTP Basic Auth are supported.

Request Body schema: application/x-www-form-urlencoded
client_id
string <uuid>

The ID of the client (also known as the Application ID).

client_secret
string

The secret of the client.

grant_type
required
string
Enum: "client_credentials" "authorization_code"

The OAuth2.0 grant types supported.

scope
required
string

The scope to request, multiple scopes are passed delimited by a space character.

code
string or null

The authorization code obtained from the server when performing the authorization code flow. It is required to exchange the code for an access token that will be used to perform actions on behalf of a user.

redirect_uri
string or null

The redirect URI that was included in the initial authorization request. The value must be an exact match of the previously used URI, otherwise the request will be rejected.

code_verifier
string or null

If the code_challenge parameter was included in the initial authorization requests, the application must now provide the code verifier. The value is the plaintext string that was used to calculate the hash that was previously sent in the code_challenge parameter.

Responses

Response samples

Content type
application/json
{
  • "access_token": "oMahtBwBbnZeh4Q66mSuLFmk2V0_CLCKVt0aYcNJlcg.yditzjwCP7yp0PgR6AzQR3wQ1rTdCjkcPeAMuyfK-NU",
  • "expires_in": 2627999,
  • "scope": "ping orders.create",
  • "token_type": "bearer"
}

OAuth 2.0 Authorize Endpoint

Request a user's authorization to perform action on their behalf

query Parameters
client_id
required
string

The ID of the client (also known as the Application ID).

redirect_uri
required
string

The URI to where the user should be redirected when the flow is successfully completed. It must be previously registered at Developer Portal in the application settings.

response_type
required
string

Specifies the expected response type. Only "code" is accepted.

scope
required
string

The scope to request, multiple scopes are passed delimited by a space character.

state
required
string

Can be used to store request-specific data. The server will return the unmodified state value back to the application.

code_challenge
string

A code verifier generated by the client application transformed by applying a cryptographic hash function, such as SHA-256, and encoding the result using URL-safe Base64 encoding.

code_challenge_method
string

Method used to transform the code verifier. The most common method is "S256", which stands for SHA-256.

Responses

Response samples

Content type
application/json
{
  • "message": "The request body is invalid.",
  • "details": [
    ]
}

Callback

Endpoints for callback management.

Publish callback error

RATE LIMIT: 16 per minute

This is the generalized callback error that should be used to return failures for all webhooks, unless otherwise specified. See failed event flow for details.

Authorizations:
OAuth2.0 (callback.error.write)
header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

X-Event-Id
required
string
Example: cf0ce51b-d74e-40d3-b177-1925ab4edc0c

Unique identifier of the event that this callback refers to.

Request Body schema: application/json
errorCode
string
Enum: "CANCELLED" "UNKNOWN" "INVALID_ARGUMENT" "FAILED_PRECONDITION" "DEADLINE_EXCEEDED" "NOT_FOUND" "PERMISSION_DENIED" "ALREADY_EXISTS" "RESOURCE_EXHAUSTED" "ABORTED" "OUT_OF_RANGE" "UNIMPLEMENTED" "INTERNAL" "UNAVAILABLE" "DATA_LOSS" "UNAUTHENTICATED"

Errors that occur processing the webhook, modeled after Google's gRPC error codes. For callback errors responding to menu-related webhooks, any error with status code in: "INVALID_ARGUMENT", "FAILED_PRECONDITION", "NOT_FOUND", "PERMISSION_DENIED", "ALREADY_EXISTS", "UNIMPLEMENTED", "DATA_LOSS", "UNAUTHENTICATED" will be considered fatal and will fail the operation without retrying.

errorMessage
string or null

Additional information about the error. This message will be displayed to the user, so ideally it should be friendly.

Responses

Request samples

Content type
application/json
{
  • "errorCode": "NOT_FOUND",
  • "errorMessage": "The store was not found."
}

Response samples

Content type
application/json
{
  • "message": "The request body is invalid.",
  • "details": [
    ]
}

Delivery

Endpoints to manage delivery.

Update delivery status

RATE LIMIT: 8 per minute

Authorizations:
OAuth2.0 (delivery.provider)
path Parameters
deliveryReferenceId
required
string
Example: 295f76b4-5725-4bf5-a8ab-97943dbdc3b4

A unique identifier of the delivery in a UUID format.

Request Body schema: application/json
deliveryStatus
string (DeliveryStatus)
Enum: "REQUESTED" "ALLOCATED" "PICKED_UP" "COMPLETED" "CANCELED" "ARRIVED_AT_PICKUP" "ARRIVED_AT_DROP_OFF"

The status of the delivery.

estimatedDeliveryTime
string or null <date-time>

The expected delivery time.

estimatedPickupTime
string or null <date-time>

The expected pickup time.

object or null (Person)

The recipient information.

object or null (Location)

Latitude and longitude of the address.

createdAt
string <date-time>

The time that the update was created.

object or null (VehicleInformation)
currencyCode
string or null 3 characters

The 3-letter currency code (ISO 4217) to use for all monetary values.

object (DeliveryCost)

Delivery cost details.

providerDeliveryId
string or null

The provider's internal identifier for the delivery used for tracking purposes.

object or null (DropoffInfo)

Delivery dropoff details.

deliveryTrackingUrl
string or null

Delivery tracking url.

Responses

Request samples

Content type
application/json
{
  • "deliveryStatus": "REQUESTED",
  • "estimatedDeliveryTime": "2007-12-03T10:15:30+01:00",
  • "estimatedPickupTime": "2007-12-03T10:15:30+01:00",
  • "courier": {
    },
  • "location": {
    },
  • "createdAt": "2007-12-03T10:15:30+01:00",
  • "vehicleInformation": {
    },
  • "currencyCode": "EUR",
  • "cost": {
    },
  • "providerDeliveryId": "string",
  • "dropoffInfo": {
    },
  • "deliveryTrackingUrl": "string"
}

Response samples

Content type
application/json
{
  • "message": "The request body is invalid.",
  • "details": [
    ]
}

Notify the result of a request delivery quote event

RATE LIMIT: 8 per minute

Authorizations:
OAuth2.0 (delivery.provider)
path Parameters
deliveryReferenceId
required
string
Example: 295f76b4-5725-4bf5-a8ab-97943dbdc3b4

A unique identifier of the delivery in a UUID format.

header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

X-Event-Id
required
string
Example: cf0ce51b-d74e-40d3-b177-1925ab4edc0c

Unique identifier of the event that this callback refers to.

Request Body schema: application/json
minPickupDuration
integer <int32> >= 0

Minimum time required for courier to arrive at pickup location in minutes It is an estimation.

maxPickupDuration
integer or null <int32>

Maximum time that the courier's arrival at pick up location can be delayed. If not provided, it will default to 60 minutes or minPickUpDuration, whichever is greater. This value is an estimation and expressed in minutes.

object or null (Distance)

Delivery distance.

currencyCode
string 3 characters

The 3-letter currency code (ISO 4217) to use for all monetary values.

object (DeliveryCost)

Delivery cost details.

provider
string or null

Delivery Service Provider Slug.

Array of objects or null (FulfillmentPathEntity)

List of entities involved in the fulfillment processing path.

createdAt
string <date-time>

The time that the quote was created.

accountBalance
number or null

The remaining account balance of the requester for the delivery provider.

Responses

Request samples

Content type
application/json
{
  • "minPickupDuration": 5,
  • "maxPickupDuration": 10,
  • "deliveryDistance": {
    },
  • "currencyCode": "EUR",
  • "cost": {
    },
  • "provider": "doordash",
  • "fulfillmentPath": [
    ],
  • "createdAt": "2007-12-03T10:15:30+01:00",
  • "accountBalance": 1068.32
}

Response samples

Content type
application/json
{
  • "message": "The request body is invalid.",
  • "details": [
    ]
}

Notify the result of an accept delivery event

RATE LIMIT: 8 per minute

Authorizations:
OAuth2.0 (delivery.provider)
path Parameters
deliveryReferenceId
required
string
Example: 295f76b4-5725-4bf5-a8ab-97943dbdc3b4

A unique identifier of the delivery in a UUID format.

header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

X-Event-Id
required
string
Example: cf0ce51b-d74e-40d3-b177-1925ab4edc0c

Unique identifier of the event that this callback refers to.

Request Body schema: application/json
object or null (Distance)

Delivery distance.

currencyCode
string 3 characters

The 3-letter currency code (ISO 4217) to use for all monetary values.

object (DeliveryCost)

Delivery cost details.

Array of objects or null (FulfillmentPathEntity)

List of entities involved in the fulfillment processing path.

estimatedDeliveryTime
string or null <date-time>

The expected delivery time.

estimatedPickupTime
string or null <date-time>

The expected pickup time.

confirmedAt
string <date-time>

The time that the request was accepted.

deliveryTrackingUrl
string or null

URL to a web page that tracks the delivery.

providerDeliveryId
string or null

The provider's internal identifier for the delivery used for tracking purposes.

Responses

Request samples

Content type
application/json
{
  • "deliveryDistance": {
    },
  • "currencyCode": "EUR",
  • "cost": {
    },
  • "fulfillmentPath": [
    ],
  • "estimatedDeliveryTime": "2007-12-03T10:15:30+01:00",
  • "estimatedPickupTime": "2007-12-03T10:15:30+01:00",
  • "confirmedAt": "2007-12-03T10:15:30+01:00",
  • "deliveryTrackingUrl": "www.example.com",
  • "providerDeliveryId": "string"
}

Response samples

Content type
application/json
{
  • "message": "The request body is invalid.",
  • "details": [
    ]
}

Notify the result of a cancel delivery event

RATE LIMIT: 8 per minute

Authorizations:
OAuth2.0 (delivery.provider)
path Parameters
deliveryReferenceId
required
string
Example: 295f76b4-5725-4bf5-a8ab-97943dbdc3b4

A unique identifier of the delivery in a UUID format.

header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

X-Event-Id
required
string
Example: cf0ce51b-d74e-40d3-b177-1925ab4edc0c

Unique identifier of the event that this callback refers to.

Request Body schema: application/json
canceledAt
string <date-time>

The time that the request was cancelled.

Responses

Request samples

Content type
application/json
{
  • "canceledAt": "2007-12-03T10:15:30+01:00"
}

Response samples

Content type
application/json
{
  • "message": "The request body is invalid.",
  • "details": [
    ]
}

Publish delivery callback error

RATE LIMIT: 16 per minute

Authorizations:
OAuth2.0 (callback.error.write)
header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

X-Event-Id
required
string
Example: cf0ce51b-d74e-40d3-b177-1925ab4edc0c

Unique identifier of the event that this callback refers to.

Request Body schema: application/json
errorCode
string
Enum: "CANCELLED" "UNKNOWN" "INVALID_ARGUMENT" "FAILED_PRECONDITION" "DEADLINE_EXCEEDED" "NOT_FOUND" "PERMISSION_DENIED" "ALREADY_EXISTS" "RESOURCE_EXHAUSTED" "ABORTED" "OUT_OF_RANGE" "UNIMPLEMENTED" "INTERNAL" "UNAVAILABLE" "DATA_LOSS" "UNAUTHENTICATED"

Errors that occur processing the webhook, modeled after Google's gRPC error codes. For callback errors responding to menu-related webhooks, any error with status code in: "INVALID_ARGUMENT", "FAILED_PRECONDITION", "NOT_FOUND", "PERMISSION_DENIED", "ALREADY_EXISTS", "UNIMPLEMENTED", "DATA_LOSS", "UNAUTHENTICATED" will be considered fatal and will fail the operation without retrying.

errorMessage
string or null

Additional information about the error. This message will be displayed to the user, so ideally it should be friendly.

Responses

Request samples

Content type
application/json
{
  • "errorCode": "NOT_FOUND",
  • "errorMessage": "The store was not found."
}

Response samples

Content type
application/json
{
  • "message": "The request body is invalid.",
  • "details": [
    ]
}

Notify the result of an update delivery request event

RATE LIMIT: 8 per minute

Authorizations:
OAuth2.0 (delivery.provider)
path Parameters
deliveryReferenceId
required
string
Example: 295f76b4-5725-4bf5-a8ab-97943dbdc3b4

A unique identifier of the delivery in a UUID format.

header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

X-Event-Id
required
string
Example: cf0ce51b-d74e-40d3-b177-1925ab4edc0c

Unique identifier of the event that this callback refers to.

Request Body schema: application/json
currencyCode
string or null 3 characters

The 3-letter currency code (ISO 4217) to use for all monetary values.

object (DeliveryCost)

Delivery cost details.

Responses

Request samples

Content type
application/json
{
  • "currencyCode": "EUR",
  • "cost": {
    }
}

Response samples

Content type
application/json
{
  • "message": "The request body is invalid.",
  • "details": [
    ]
}

Finance

Endpoints to handle financial data.

Post financial transactions

Post financial data related to a given order.

Authorizations:
OAuth2.0 (finance)
header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

Request Body schema: application/json
required
object (OrderIdentifierFinance)

The external identifiers of the order.

id
required
string

External financial transaction identifier.

pending
required
boolean

Whether the transaction can be updated in the future.

currencyCode
required
string 3 characters

The 3-letter currency code (ISO 4217) to use for all monetary values in this order.

createdAt
required
string <date-time>

The date (in UTC) when the financial transaction was created.

customerId
string or null

Customer identifier.

notes
string or null

General notes about the financial transaction.

type
required
string
Enum: "PAYMENT" "ADJUSTMENT" "CANCELLATION" "MISC"

Financial transaction operation type.

object (PayoutInfo)
Array of objects or null (OrderItemInformation)

Detailed financial per order item.

Array of objects or null (OrderIssue)

List of issues that might have happened with the order.

required
object (FinancialData)

Breakdown of order values. Represents total values, fees, discounts, and any possible adjustments that may happen in the order value.

Breakdown lists can be used to represent aggregate values (e.g. order total value) or, when available, can accurately represent the values of each item/fee/tax/charges related to the order.

All objects in breakdown lists have a required property "subType". Allowed values are:

VALUE: represent the net value of the order/item/fee. Should be used in the following cases:

  • when the amount does not contain taxes or VAT
  • when tax/VAT is a known value, in that case, the list must contain an object with subtype TAX or VAT representing this value.

TAX: represent the tax value for the order/item/fee. Should be used when tax amount is available, in that case, this information should be part of the breakdown list with the "VALUE" as the net amount, example below:

  "breakdown": [
      {
          "name": "Item 1",
          "value": 10,
          "subType": "VALUE"
      },
      {
          "name": "Item 1 - Tax",
          "value": 2,
          "subType": "TAX"
      }
  ]

VAT: represents the amount for value-added tax. Should be used when the order/item/fee contains VAT. In that case, this information should be part of the breakdown list with the "VALUE" as net amount, example below:

  "breakdown": [
      {
          "name": "Item 1",
          "value": 12,
          "subType": "VALUE"
      },
      {
          "name": "Item 1 - Tax",
          "value": 2,
          "subType": "VAT"
      }
  ]

VALUE_WITH_TAX: represents the gross value of the order/item/fee. Should be used when the value includes tax/VAT and values related to taxation are not available.

  "breakdown": [
      {
          "name": "Item 1",
          "value": 12,
          "subType": "VALUE_WITH_TAX"
      }
  ]

Responses

Request samples

Content type
application/json
{
  • "orderIdentifiers": {
    },
  • "id": "string",
  • "pending": true,
  • "currencyCode": "EUR",
  • "createdAt": "2007-12-03T10:15:30+01:00",
  • "customerId": "string",
  • "notes": "string",
  • "type": "PAYMENT",
  • "payout": {
    },
  • "orderItems": [
    ],
  • "issues": [
    ],
  • "data": {
    }
}

Response samples

Content type
application/json
{
  • "message": "The request body is invalid.",
  • "details": [
    ]
}

Post a financial invoice

Post a financial invoice containing payout and financial data for orders in a given period of time.

Authorizations:
OAuth2.0 (finance)
header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

Request Body schema: application/json
sourceService
string or null

Describes the source of the order, typically from a food ordering marketplace.

required
object (InvoicePayoutInfo)
required
Array of objects (SimpleFinancialTransaction) [ items ]

List of financial transactions related to this invoice.

currencyCode
string 3 characters

The 3-letter currency code (ISO 4217) to use for all monetary values in this order.

Responses

Request samples

Content type
application/json
{
  • "sourceService": "ubereats",
  • "payout": {
    },
  • "financialTransactions": [
    ],
  • "currencyCode": "EUR"
}

Response samples

Content type
application/json
{
  • "message": "The request body is invalid.",
  • "details": [
    ]
}

Inventory

Endpoints to interact with product inventory.

List inventory summaries

RATE LIMIT: 32 per minute

List inventory summaries by the requested parameters.

Authorizations:
OAuth2.0 (catalog)
query Parameters
limit
string <= 200
Example: limit=5

Max number of entities to retrieve

token
string
Example: token=CgwI09+kjQYQwOvF2AM=/(urlencoded:CgwI09%2BkjQYQwOvF2AM%3D)

Opaque token used for paging. Query parameters must be URL encoded.

header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

Responses

Response samples

Content type
application/json
{
  • "inventorySummaries": [
    ],
  • "nextToken": "H12MAF2fFaFFFa"
}

List shipments

RATE LIMIT: 8 per minute

List shipments by the requested parameters.

Authorizations:
OAuth2.0 (catalog)
query Parameters
limit
string <= 50
Example: limit=5

Max number of entities to retrieve

token
string
Example: token=CgwI09+kjQYQwOvF2AM=/(urlencoded:CgwI09%2BkjQYQwOvF2AM%3D)

Opaque token used for paging. Query parameters must be URL encoded.

header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

Responses

Response samples

Content type
application/json
{
  • "shipments": [
    ],
  • "nextToken": "H12MAF2fFaFFFa"
}

Create shipment

RATE LIMIT: 32 per minute

Create a new shipment.

Authorizations:
OAuth2.0 (catalog)
header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

Request Body schema: application/json
required
object (ShipmentDeliveryInfo)

Delivery information for a shipment.

required
Array of objects (CreateShipmentLineItem) [ items ]

A list of the shipment line items.

Responses

Request samples

Content type
application/json
{
  • "deliveryInfo": {
    },
  • "lineItems": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "18695c43-c670-4c57-a714-e0d7b215db20"
}

Menus Manager

Endpoints for applications managing menus related data and operations.

Get the menus for a store

RATE LIMIT: 8 per minute

Authorizations:
OAuth2.0 (menus.read)
header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

Responses

Response samples

Content type
application/json
{
  • "photos": {},
  • "categories": {
    },
  • "modifierGroups": {
    },
  • "menus": {
    },
  • "items": {
    }
}

Get the async menu job status

RATE LIMIT: 8 per minute

Authorizations:
OAuth2.0 (menus.async_job.read)
path Parameters
jobId
required
string
Example: 295f76b4-5725-4bf5-a8ab-97943dbdc3b4

The unique identifier of the job.

header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

Responses

Response samples

Content type
application/json
{
  • "jobReference": {
    },
  • "jobType": "PUBLISH",
  • "publishJobState": {
    }
}

Get the publish-targets for a store

RATE LIMIT: 2 per minute

Authorizations:
OAuth2.0 (manager.menus)
header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

Responses

Response samples

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

Publish menus to targets for a store

RATE LIMIT: 2 per minute

Authorizations:
OAuth2.0 (manager.menus)
header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

Request Body schema: application/json
menuPublishTargets
Array of strings

MenuPublishTargets to publish to.

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "requestSubmitted": true,
  • "jobId": "9d222c6d-893e-4e79-8201-3c9ca16a0f39",
  • "menuPublishTargets": {
    }
}

Synchronize store menu with POS menu

RATE LIMIT: 2 per minute

Authorizations:
OAuth2.0 (manager.menus)
header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

Request Body schema: application/json
shouldPublishChanges
boolean or null

Whether or not to publish changes to external services after bulk resolution.

useCustomOptions
boolean or null

If true, use customBulkResolutionOptions instead of menu configuration.

object or null (CustomBulkResolutionOptions)

Responses

Request samples

Content type
application/json
{
  • "shouldPublishChanges": true,
  • "useCustomOptions": true,
  • "customBulkResolutionOptions": {
    }
}

Response samples

Content type
application/json
{
  • "jobId": "9d222c6d-893e-4e79-8201-3c9ca16a0f39"
}

Suspend menu entities targets for a store

RATE LIMIT: 16 per minute

Authorizations:
OAuth2.0 (manager.menus)
header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

Request Body schema: application/json
entityIds
required
Array of strings

Entity IDs to suspend. These should be the IDs as you represent them in your system.

note
required
string

The reason you are suspending the items.

required
object (SuspensionStatus)

The type of suspension this will be.

Responses

Request samples

Content type
application/json
{
  • "entityIds": [
    ],
  • "note": "Out of item",
  • "status": {
    }
}

Response samples

Content type
application/json
{
  • "jobReference": {
    },
  • "jobType": "PUBLISH",
  • "publishJobState": {
    }
}

Unsuspend menu entities targets for a store

RATE LIMIT: 16 per minute

Authorizations:
OAuth2.0 (manager.menus)
header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

Request Body schema: application/json
entityIds
Array of strings

Entity IDs to unsuspend. These should be the IDs as you represent them in your system.

note
string

The reason you are unsuspending the items.

Responses

Request samples

Content type
application/json
{
  • "entityIds": [
    ],
  • "note": "Item back in stock"
}

Response samples

Content type
application/json
{
  • "jobReference": {
    },
  • "jobType": "PUBLISH",
  • "publishJobState": {
    }
}

Bootstrap menus for a store

RATE LIMIT: 2 per minute

Authorizations:
OAuth2.0 (manager.menus)
header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

Request Body schema: application/json
templateName
required
string

Name for the bootstrapped template menu

externalServiceSlug
required
string

The external service from which to bootstrap menu data

enableTemplate
boolean or null

Whether or not to enable the template at the bootstrapped store

stationId
string or null

The id of the station to which to assign bootstrapped items, unnecessary for brick and mortar

posSlug
string or null

The slug for the POS to connect to

Responses

Request samples

Content type
application/json
{
  • "templateName": "My Store's Menu",
  • "externalServiceSlug": "ubereats-api",
  • "enableTemplate": true,
  • "stationId": "9cc4bb5e-bc97-40d9-af28-c02ef1483610",
  • "posSlug": "pos-slug"
}

Response samples

Content type
application/json
{
  • "jobReference": {
    },
  • "jobType": "PUBLISH",
  • "publishJobState": {
    }
}

Orders Manager

Endpoints for applications managing order related data and operations.

Notify the result of a Create Order event

RATE LIMIT: 32 per minute

Authorizations:
OAuth2.0 (manager.orders)
header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

X-Event-Id
required
string
Example: cf0ce51b-d74e-40d3-b177-1925ab4edc0c

Unique identifier of the event that this callback refers to.

Responses

Response samples

Content type
application/json
{
  • "message": "The request body is invalid.",
  • "details": [
    ]
}

Fetch order feed for a store

Authorizations:
OAuth2.0 (manager.orders)
query Parameters
limit
required
string
Example: limit=5

Max number of orders to retrieve

token
string
Example: token=CgwI09+kjQYQwOvF2AM=/(urlencoded:CgwI09%2BkjQYQwOvF2AM%3D)

Opaque token used for paging. Query parameters must be URL encoded.

minDateTime
string
Example: minDateTime=2023-07-20T10:15:30-05:00

Minimum date/time filter in ISO 8601 format with time zone. Limited to the past 20 days.

maxDateTime
string
Example: maxDateTime=2023-08-15T10:15:30-05:00

Maximum date/time filter in ISO 8601 format with time zone.

header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

Responses

Response samples

Content type
application/json
{
  • "orders": [
    ],
  • "offsetToken": "H12MAF2fFaFFFa"
}

Fetch order with Manager Info

Authorizations:
OAuth2.0 (manager.orders)
path Parameters
orderId
required
string
Example: 295f76b4-5725-4bf5-a8ab-97943dbdc3b4

A unique identifier of the order in a UUID format.

source
required
string
Example: ubereats

Describes the source of the order, typically from a food ordering marketplace.

header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

Responses

Response samples

Content type
application/json
{
  • "order": {
    },
  • "injectionState": "UNKNOWN",
  • "orderCancelDetails": {
    },
  • "injectionEvent": "UNKNOWN",
  • "orderIssues": {
    }
}

Request order re-injection

RATE LIMIT: 32 per minute

Authorizations:
OAuth2.0 (manager.orders)
path Parameters
source
required
string
Example: ubereats

Describes the source of the order, typically from a food ordering marketplace.

orderId
required
string
Example: 295f76b4-5725-4bf5-a8ab-97943dbdc3b4

A unique identifier of the order in a UUID format.

header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

Responses

Response samples

Content type
application/json
{
  • "message": "The request body is invalid.",
  • "details": [
    ]
}

Request order confirmation

RATE LIMIT: 32 per minute

Authorizations:
OAuth2.0 (manager.orders)
path Parameters
source
required
string
Example: ubereats

Describes the source of the order, typically from a food ordering marketplace.

orderId
required
string
Example: 295f76b4-5725-4bf5-a8ab-97943dbdc3b4

A unique identifier of the order in a UUID format.

header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

Request Body schema: application/json
estimatedPrepTimeMinutes
integer or null

Estimated order preparation time in minutes.

Responses

Request samples

Content type
application/json
{
  • "estimatedPrepTimeMinutes": 15
}

Response samples

Content type
application/json
{
  • "message": "The request body is invalid.",
  • "details": [
    ]
}

Request order cancelation

RATE LIMIT: 32 per minute

Authorizations:
OAuth2.0 (manager.orders)
path Parameters
source
required
string
Example: ubereats

Describes the source of the order, typically from a food ordering marketplace.

orderId
required
string
Example: 295f76b4-5725-4bf5-a8ab-97943dbdc3b4

A unique identifier of the order in a UUID format.

header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

Request Body schema: application/json
cancellationReason
required
string
Enum: "REASON_UNKNOWN" "DUPLICATE_ORDER" "UNAVAILABLE_ITEM" "FRAUDULENT_EATER" "RESTAURANT_INTERNAL_ISSUE" "KITCHEN_CLOSED" "CUSTOMER_CALLED_TO_CANCEL" "RESTAURANT_TOO_BUSY" "CANNOT_COMPLETE_CUSTOMER_REQUEST" "UNACCEPTED_ORDER" "RESTAURANT_CANCELED" "AUTOMATICALLY_CANCELED" "LATE_DELIVERY" "COURIER_NOT_FOUND" "CUSTOMER_NOT_FOUND" "UNABLE_TO_DELIVER" "ALL_ITEMS_OUT_OF_STOCK" "ALL_ITEMS_EXPIRED" "ALL_ITEMS_DAMAGED" "LABOR_UNAVAILABLE" "REASON_OTHER"

The reason for cancellation.

object or null (Person)

The recipient information.

Responses

Request samples

Content type
application/json
{
  • "cancellationReason": "REASON_UNKNOWN",
  • "cancelingParty": {
    }
}

Response samples

Content type
application/json
{
  • "message": "The request body is invalid.",
  • "details": [
    ]
}

Mark an order as ready to pickup

RATE LIMIT: 32 per minute

Authorizations:
OAuth2.0 (manager.orders)
path Parameters
source
required
string
Example: ubereats

Describes the source of the order, typically from a food ordering marketplace.

orderId
required
string
Example: 295f76b4-5725-4bf5-a8ab-97943dbdc3b4

A unique identifier of the order in a UUID format.

header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

Responses

Response samples

Content type
application/json
{
  • "message": "The request body is invalid.",
  • "details": [
    ]
}

Create a packaging component

RATE LIMIT: 32 per minute

Authorizations:
OAuth2.0 (manager.orders)
path Parameters
source
required
string
Example: ubereats

Describes the source of the order, typically from a food ordering marketplace.

orderId
required
string
Example: 295f76b4-5725-4bf5-a8ab-97943dbdc3b4

A unique identifier of the order in a UUID format.

header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

Responses

Response samples

Content type
application/json
{
  • "orderComponentId": "69f60a06-c335-46d9-b5a1-97f1a211c514",
  • "orderComponentOrderId": "69f60a06-c335-46d9-b5a1-97f1a211c514"
}

Mark an order as fulfilled

RATE LIMIT: 32 per minute

Authorizations:
OAuth2.0 (manager.orders)
path Parameters
source
required
string
Example: ubereats

Describes the source of the order, typically from a food ordering marketplace.

orderId
required
string
Example: 295f76b4-5725-4bf5-a8ab-97943dbdc3b4

A unique identifier of the order in a UUID format.

header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

Responses

Response samples

Content type
application/json
{
  • "message": "The request body is invalid.",
  • "details": [
    ]
}

Mark a dine-in (open-tab) order as closed

Marks an open-tab dine-in order as closed. The closing party is always the merchant/POS (system). RATE LIMIT: 32 per minute

Authorizations:
OAuth2.0 (manager.orders)
path Parameters
source
required
string
Example: ubereats

Describes the source of the order, typically from a food ordering marketplace.

orderId
required
string
Example: 295f76b4-5725-4bf5-a8ab-97943dbdc3b4

A unique identifier of the order in a UUID format.

header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

Responses

Response samples

Content type
application/json
{
  • "message": "The request body is invalid.",
  • "details": [
    ]
}

Update order customer items

Updates customer items for a dine-in order (quantity change, price adjustment, or add item). Only supported when integration slug is d2c-eater-website, order fulfillment type is dine-in, and the order tab is open (order is modifiable). Modifying party and modification request ID are set by the endpoint. RATE LIMIT: 8 per minute

Authorizations:
OAuth2.0 (manager.orders)
path Parameters
source
required
string
Example: ubereats

Describes the source of the order, typically from a food ordering marketplace.

orderId
required
string
Example: 295f76b4-5725-4bf5-a8ab-97943dbdc3b4

A unique identifier of the order in a UUID format.

header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

Request Body schema: application/json
currencyCode
string or null 3 characters

3-letter currency code (ISO 4217) for monetary values in this request (e.g. delta in price_adjusted, item/modifier prices in item_added). If omitted, USD is used.

required
Array of objects or objects or objects (CustomerItemModification) non-empty [ items ]

List of modifications to apply (quantity change, price adjustment, or item added).

Responses

Request samples

Content type
application/json
{
  • "currencyCode": "USD",
  • "customerItemModifications": [
    ]
}

Response samples

Content type
application/json
{
  • "message": "The request body is invalid.",
  • "details": [
    ]
}

Update order prep time

RATE LIMIT: 32 per minute

Authorizations:
OAuth2.0 (orders.update)
path Parameters
source
required
string
Example: ubereats

Describes the source of the order, typically from a food ordering marketplace.

orderId
required
string
Example: 295f76b4-5725-4bf5-a8ab-97943dbdc3b4

A unique identifier of the order in a UUID format.

header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

Request Body schema: application/json
prepTimeMinutes
required
integer

The requested preparation time to transition the order to.

Responses

Request samples

Content type
application/json
{
  • "prepTimeMinutes": 0
}

Response samples

Content type
application/json
{
  • "message": "The request body is invalid.",
  • "details": [
    ]
}

Storefront Manager

Endpoints for applications managing storefront related data and operations.

Request pausing storefronts of a store

RATE LIMIT: 8 per minute

Authorizations:
OAuth2.0 (manager.storefront)
header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

Request Body schema: application/json
start
string or null <date-time>

Start time for the pause. Executed immediately if not set.

end
string or null <date-time>

Time when the pause should expire. If not provided, uses the default which is 4 AM at store timezone.

comment
string or null

Comment for the pause

reason
string (PauseReason)
Enum: "STORE_MAINTENANCE" "OTHER"

Reason for pausing the storefronts

Responses

Request samples

Content type
application/json
{
  • "start": "2007-12-03T10:15:30+01:00",
  • "end": "2007-12-03T10:15:30+01:00",
  • "comment": "Some comment",
  • "reason": "STORE_MAINTENANCE"
}

Response samples

Content type
application/json
{
  • "requestId": "string"
}

Request unpausing storefronts of a store

RATE LIMIT: 8 per minute

Authorizations:
OAuth2.0 (manager.storefront)
header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

Request Body schema: application/json
comment
string or null

Comment for the unpause

Responses

Request samples

Content type
application/json
{
  • "comment": "Some comment"
}

Response samples

Content type
application/json
{
  • "requestId": "string"
}

Get the process status details of a pause request

RATE LIMIT: 8 per minute

Authorizations:
OAuth2.0 (manager.storefront)
path Parameters
requestId
required
string
Example: 295f76b4-5725-4bf5-a8ab-97943dbdc3b4

A unique identifier of the order in a UUID format.

header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

Responses

Response samples

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

Get the process status details of an unpause request

RATE LIMIT: 8 per minute

Authorizations:
OAuth2.0 (manager.storefront)
path Parameters
requestId
required
string
Example: 295f76b4-5725-4bf5-a8ab-97943dbdc3b4

A unique identifier of the order in a UUID format.

header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

Responses

Response samples

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

Menus

Endpoints to manage menus.

Upsert menus for a store

RATE LIMIT: 2 per minute

Authorizations:
OAuth2.0 (menus.upsert)
header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

Request Body schema: application/json
required
object (All Categories for the store, indexed by ID)
required
object (All ModifierGroups for the Store, indexed by ID)
required
object (All Menus for the store, indexed by ID)
object (All Items for the store, indexed by ID)

Responses

Request samples

Content type
application/json
{
  • "categories": {
    },
  • "modifierGroups": {
    },
  • "menus": {
    },
  • "items": {
    }
}

Response samples

Content type
application/json
{
  • "jobReference": {
    },
  • "jobType": "PUBLISH",
  • "publishJobState": {
    }
}

Notify the result of a Publish Menu event

RATE LIMIT: 8 per minute

Successful callback response for the publish menu webhook. If an error occurred, please publish a callback error instead. See failed event flow for details.

Authorizations:
OAuth2.0 (menus.publish)
header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

X-Event-Id
required
string
Example: cf0ce51b-d74e-40d3-b177-1925ab4edc0c

Unique identifier of the event that this callback refers to.

Request Body schema: application/json
required
object

A map for entities created by the Upsert containing the IDs of the requested entities mapped to the IDs of entities created by the request. Our system will use the IDs returned in this map to send updates to these entities in future requests. NOTE - A empty map can be used on requestedToCreatedEntityIds to use the same menu IDs that were previously defined.

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "message": "The request body is invalid.",
  • "details": [
    ]
}

Notify the result of a Send Menu event

RATE LIMIT: 4 per minute

Successful callback response for the send menu webhook. If an error occurred, please publish a callback error instead. See failed event flow for details.

Authorizations:
OAuth2.0 (menus.get_current)
header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

X-Event-Id
required
string
Example: cf0ce51b-d74e-40d3-b177-1925ab4edc0c

Unique identifier of the event that this callback refers to.

Request Body schema: application/json
required
object (MenuData)

MenuData contains all menu entities, and their relations.

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "message": "The request body is invalid.",
  • "details": [
    ]
}

Notify the receival of a Upsert Hours Menu event

RATE LIMIT: 8 per minute

Successful callback response for the upsert hours webhook. If an error occurred, please publish a callback error instead. See failed event flow for details.

Authorizations:
OAuth2.0 (menus.upsert_hours)
header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

X-Event-Id
required
string
Example: cf0ce51b-d74e-40d3-b177-1925ab4edc0c

Unique identifier of the event that this callback refers to.

Responses

Response samples

Content type
application/json
{
  • "message": "The request body is invalid.",
  • "details": [
    ]
}

Synchronize store menu with POS menu

This endpoint is used to synchronize the store menu with the connected POS.

Authorizations:
OAuth2.0 (menus.sync)
header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

Request Body schema: application/json
shouldPublishChanges
boolean or null

Whether or not to publish changes to external services after bulk resolution.

useCustomOptions
boolean or null

If true, use customBulkResolutionOptions instead of menu configuration.

object or null (CustomBulkResolutionOptions)

Responses

Request samples

Content type
application/json
{
  • "shouldPublishChanges": true,
  • "useCustomOptions": true,
  • "customBulkResolutionOptions": {
    }
}

Response samples

Content type
application/json
{
  • "jobId": "9d222c6d-893e-4e79-8201-3c9ca16a0f39"
}

Notify the result of an Update Menu Entities Availabilities event

RATE LIMIT: 32 per minute

Successful callback response for the update menu entities availabilities webhook. If an error occurred, please publish a callback error instead. See failed event flow for details.

Authorizations:
OAuth2.0 (menus.entity_suspension)
header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

X-Event-Id
required
string
Example: cf0ce51b-d74e-40d3-b177-1925ab4edc0c

Unique identifier of the event that this callback refers to.

Responses

Response samples

Content type
application/json
{
  • "message": "The request body is invalid.",
  • "details": [
    ]
}

Orders

Endpoints to manage orders for a store.

Create order

RATE LIMIT: 32 per minute

Authorizations:
OAuth2.0 (orders.create)
header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

Request Body schema: application/json
required
object (OrderExternalIdentifiers)

The external identifiers.

currencyCode
required
string 3 characters

The 3-letter currency code (ISO 4217) to use for all monetary values in this order.

status
required
string
Enum: "NEW_ORDER" "CONFIRMED" "PICKED_UP" "CANCELED" "FULFILLED" "PREPARED" "REJECTED" "UNKNOWN"

The status of the order.

Array of objects (Item) <= 100 items [ items ]

Items ordered.

orderedAt
string or null <date-time>

The date (in UTC) when the order was placed by the customer.

object or null (Person)

The recipient information.

customerNote
string or null

An order-level note provided by the customer.

object or null (DeliveryInfo)

Information on order's delivery process.

object (OrderTotal)

Details about values of the order.

object or null (OrderTotalV2)

V2 for details about values of the order, provides richer objects allowing to capture taxes, misc charges, payments more precisely.

Array of objects or null (CustomerPayment)

Details about the payments made by the customer.

object or null (FulfillmentInfo)

Information on order fulfillment.

Array of objects or null or null (PromotionDetails)

[WIP - in development, not supported yet] Details about the promotions applied to this order. The sum of values should be equal to the sum of order total discounts."

Responses

Request samples

Content type
application/json
{
  • "externalIdentifiers": {
    },
  • "currencyCode": "EUR",
  • "status": "NEW_ORDER",
  • "items": [
    ],
  • "orderedAt": "2007-12-03T10:15:30+01:00",
  • "customer": {
    },
  • "customerNote": "Please include extra napkins!",
  • "deliveryInfo": {
    },
  • "orderTotal": {
    },
  • "orderTotalV2": {
    },
  • "customerPayments": [
    ],
  • "fulfillmentInfo": {
    },
  • "promotionsDetails": [
    ]
}

Response samples

Content type
application/json
{
  • "externalIdentifiers": {
    },
  • "storeId": "ckdss-store-id"
}

Update order

RATE LIMIT: 32 per minute

Authorizations:
OAuth2.0 (orders.update)
path Parameters
orderId
required
string
Example: 295f76b4-5725-4bf5-a8ab-97943dbdc3b4

A unique identifier of the order in a UUID format.

header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

Request Body schema: application/json
required
object (OrderExternalIdentifiers)

The external identifiers.

currencyCode
required
string 3 characters

The 3-letter currency code (ISO 4217) to use for all monetary values in this order.

status
required
string
Enum: "NEW_ORDER" "CONFIRMED" "PICKED_UP" "CANCELED" "FULFILLED" "PREPARED" "REJECTED" "UNKNOWN"

The status of the order.

Array of objects (Item) <= 100 items [ items ]

Items ordered.

orderedAt
string or null <date-time>

The date (in UTC) when the order was placed by the customer.

object or null (Person)

The recipient information.

customerNote
string or null

An order-level note provided by the customer.

object or null (DeliveryInfo)

Information on order's delivery process.

object (OrderTotal)

Details about values of the order.

object or null (OrderTotalV2)

V2 for details about values of the order, provides richer objects allowing to capture taxes, misc charges, payments more precisely.

Array of objects or null (CustomerPayment)

Details about the payments made by the customer.

object or null (FulfillmentInfo)

Information on order fulfillment.

Array of objects or null or null (PromotionDetails)

[WIP - in development, not supported yet] Details about the promotions applied to this order. The sum of values should be equal to the sum of order total discounts."

Responses

Request samples

Content type
application/json
{
  • "externalIdentifiers": {
    },
  • "currencyCode": "EUR",
  • "status": "NEW_ORDER",
  • "items": [
    ],
  • "orderedAt": "2007-12-03T10:15:30+01:00",
  • "customer": {
    },
  • "customerNote": "Please include extra napkins!",
  • "deliveryInfo": {
    },
  • "orderTotal": {
    },
  • "orderTotalV2": {
    },
  • "customerPayments": [
    ],
  • "fulfillmentInfo": {
    },
  • "promotionsDetails": [
    ]
}

Response samples

Content type
application/json
{
  • "externalIdentifiers": {
    },
  • "storeId": "ckdss-store-id"
}

Update order status

RATE LIMIT: 32 per minute

Authorizations:
OAuth2.0 (orders.update)
path Parameters
orderId
required
string
Example: 295f76b4-5725-4bf5-a8ab-97943dbdc3b4

A unique identifier of the order in a UUID format.

header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

X-Event-Id
string
Example: cf0ce51b-d74e-40d3-b177-1925ab4edc0c

Optional unique identifier of the event that this callback refers to.

Request Body schema: application/json
orderStatus
required
string
Enum: "PREPARED" "CANCELED" "FULFILLED"

The requested status to transition the order to.

Responses

Request samples

Content type
application/json
{
  • "orderStatus": "PREPARED"
}

Response samples

Content type
application/json
{
  • "message": "The request body is invalid.",
  • "details": [
    ]
}

Update order customer payment

RATE LIMIT: 8 per minute

Notice that this operation do not completely replace the existent customer payment, instead, it overwrites the field if the latest update is a non-null value. If the update value is null, the existent value will continue to be used.

Authorizations:
OAuth2.0 (orders.update)
path Parameters
orderId
required
string
Example: 295f76b4-5725-4bf5-a8ab-97943dbdc3b4

A unique identifier of the order in a UUID format.

header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

Request Body schema: application/json
currencyCode
required
string 3 characters

The 3-letter currency code (ISO 4217) to use for all monetary values in this order.

required
Array of objects (CustomerPayment) [ items ]

The requested customer payment to transition the order to.

object (OrderTotal)

Details about values of the order.

object or null (OrderTotalV2)

V2 for details about values of the order, provides richer objects allowing to capture taxes, misc charges, payments more precisely.

Responses

Request samples

Content type
application/json
{
  • "currencyCode": "EUR",
  • "customerPayment": [
    ],
  • "orderTotal": {
    },
  • "orderTotalsV2": {
    }
}

Response samples

Content type
application/json
{
  • "message": "The request body is invalid.",
  • "details": [
    ]
}

Update order delivery information

RATE LIMIT: 8 per minute

Authorizations:
OAuth2.0 (orders.update)
path Parameters
orderId
required
string
Example: 295f76b4-5725-4bf5-a8ab-97943dbdc3b4

A unique identifier of the order in a UUID format.

header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

Request Body schema: application/json
required
object (RequiredDeliveryInfo)

Information on order's delivery process.

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "message": "The request body is invalid.",
  • "details": [
    ]
}

Upload past orders

RATE LIMIT: 32 per minute; orders must have a status of FULFILLED, REJECTED, or CANCELED

Authorizations:
OAuth2.0 (orders.create)
header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

Request Body schema: application/json
required
Array of objects (Order) <= 100 items [ items ]

The past orders you are trying to upload

Responses

Request samples

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

Response samples

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

Organization

Endpoints to interact with with organizations/brands/stores and with integration connections.

Get organization

Gets the organization managed by the user.

Authorizations:
OAuth2.0 (organization.read)

Responses

Response samples

Content type
application/json
{
  • "id": "9208071e-5f7a-444a-b3a7-4a57ff3f614e",
  • "name": "Organization name 1"
}

Get brand

Gets brand by its identifier. The brand needs to belong to the organization managed by the user.

Authorizations:
OAuth2.0 (organization.read)
path Parameters
brandId
required
string
Example: 295f76b4-5725-4bf5-a8ab-97943dbdc3b4

A unique identifier of a brand in a UUID format.

Responses

Response samples

Content type
application/json
{
  • "id": "9208071e-5f7a-444a-b3a7-4a57ff3f614e",
  • "name": "Brand name 1"
}

Get brands of the organization

Gets the list of brands belonging to the organization managed by the user.

Authorizations:
OAuth2.0 (organization.read)
query Parameters
limit
required
string
Example: limit=5

Max number of stores to retrieve

token
string
Example: token=CgwI09+kjQYQwOvF2AM=/(urlencoded:CgwI09%2BkjQYQwOvF2AM%3D)

Opaque token used for paging. Query parameters must be URL encoded.

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "offsetToken": "H12MAF2fFaFFFa"
}

Get store

Gets store by its identifier. The store needs to belong to a brand and organization managed by the user.

Authorizations:
OAuth2.0 (organization.read)
path Parameters
brandId
required
string
Example: 295f76b4-5725-4bf5-a8ab-97943dbdc3b4

A unique identifier of a brand in a UUID format.

storeId
required
string
Example: 295f76b4-5725-4bf5-a8ab-97943dbdc3b4

A unique identifier of a store in a UUID format.

Responses

Response samples

Content type
application/json
{
  • "id": "9208071e-5f7a-444a-b3a7-4a57ff3f614e",
  • "name": "Store name 1",
  • "address": {
    }
}

Get stores of a brand

Gets the list of stores belonging to the given brand.

Authorizations:
OAuth2.0 (organization.read)
path Parameters
brandId
required
string
Example: 295f76b4-5725-4bf5-a8ab-97943dbdc3b4

A unique identifier of a brand in a UUID format.

query Parameters
limit
required
string
Example: limit=5

Max number of stores to retrieve

token
string
Example: token=CgwI09+kjQYQwOvF2AM=/(urlencoded:CgwI09%2BkjQYQwOvF2AM%3D)

Opaque token used for paging. Query parameters must be URL encoded.

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "offsetToken": "H12MAF2fFaFFFa"
}

Get partner application connections of a brand

Gets the list of connections between the partner application and the given Otter stores.

Authorizations:
OAuth2.0 (organization.service_integration)
path Parameters
brandId
required
string
Example: 295f76b4-5725-4bf5-a8ab-97943dbdc3b4

A unique identifier of a brand in a UUID format.

Request Body schema: application/json
storeIds
required
Array of strings[ items non-empty unique ]

The store identifiers in the UUID format, these are the store identifiers created by Otter.

Responses

Request samples

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

Response samples

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

Get partner application connection

Gets the connection between the partner application and an Otter store.

Authorizations:
OAuth2.0 (organization.service_integration)
path Parameters
brandId
required
string
Example: 295f76b4-5725-4bf5-a8ab-97943dbdc3b4

A unique identifier of a brand in a UUID format.

storeId
required
string
Example: 295f76b4-5725-4bf5-a8ab-97943dbdc3b4

A unique identifier of a store in a UUID format.

Responses

Response samples

Content type
application/json
{
  • "storeId": "9208071e-5f7a-444a-b3a7-4a57ff3f614e",
  • "status": "ACTIVE",
  • "channels": [
    ]
}

Create partner application connection

Creates a connection between the partner application and an Otter store.

Authorizations:
OAuth2.0 (organization.service_integration)
path Parameters
brandId
required
string
Example: 295f76b4-5725-4bf5-a8ab-97943dbdc3b4

A unique identifier of a brand in a UUID format.

storeId
required
string
Example: 295f76b4-5725-4bf5-a8ab-97943dbdc3b4

A unique identifier of a store in a UUID format.

Request Body schema: application/json
storeId
required
string

The unique identifier of the store in the partner application. This is the ID, along with the Application ID, used to match the correct store when performing operations.

Responses

Request samples

Content type
application/json
{
  • "storeId": "9208071e-5f7a-444a-b3a7-4a57ff3f614e"
}

Response samples

Content type
application/json
{
  • "message": "The request body is invalid.",
  • "details": [
    ]
}

Delete partner application connection

Deletes the connection between the partner application and an Otter store.

Authorizations:
OAuth2.0 (organization.service_integration)
path Parameters
brandId
required
string
Example: 295f76b4-5725-4bf5-a8ab-97943dbdc3b4

A unique identifier of a brand in a UUID format.

storeId
required
string
Example: 295f76b4-5725-4bf5-a8ab-97943dbdc3b4

A unique identifier of a store in a UUID format.

Responses

Response samples

Content type
application/json
{
  • "message": "The request body is invalid.",
  • "details": [
    ]
}

Ping

Endpoints to ping and test system authentication.

Ping the system

RATE LIMIT: 8 per minute

Authorizations:
OAuth2.0 (ping)
header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

X-Echo-Error
string
Example: ping test error message

The error message to be returned by the endpoint, for testing purposes.

Responses

Response samples

Content type
application/json
{
  • "response": "pong",
  • "currentTime": "2007-12-03T10:15:30+01:00"
}

Reports

Endpoints to reports generation operations

Request status of the report using jobId

RATE LIMIT: 2 per minute

Authorizations:
OAuth2.0 (reports.generate_report)
path Parameters
jobId
required
string (JobId)
Example: 38ab397f-b142-4b06-b70c-40c68a408bea

ID used to track the job created for generating report.

Responses

Response samples

Content type
application/json
{}

Request a business report for multiple stores

Authorizations:
OAuth2.0 (reports.generate_report)
Request Body schema: application/json
reportType
string
Enum: "ORDER_STORES" "ORDER_ITEMS" "PAYOUT_TRANSACTIONS" "RATINGS_AND_REVIEWS"

Type of report to generate

start
string <date>

Report start date

end
string <date>

Report end date

externalStoreIds
Array of strings

List of external store IDs to filter the orders with. At least one value is required. Max is 5000. Fails the requests if one or more invalid external store ID is passed

externalServiceSlugs
Array of strings or null

List of external service slugs to fetch orders from. Default to all services

language
string or null

Language of the report. Ignored by ORDER_STORES report Optional. Falls back to English if empty.

Responses

Request samples

Content type
application/json
{
  • "reportType": "ORDER_STORES",
  • "start": "2021-10-01",
  • "end": "2021-10-01",
  • "externalStoreIds": [
    ],
  • "externalServiceSlugs": [
    ],
  • "language": "string"
}

Response samples

Content type
application/json
{
  • "jobId": "38ab397f-b142-4b06-b70c-40c68a408bea"
}

Reviews

Endpoints for review operations

Reply or schedule a reply to a review

Authorizations:
OAuth2.0 (reviews.reply)
Request Body schema: application/json
reviewId
string

The review ID.

externalStoreId
string

External store ID of the review you are responding to. Fails the requests if invalid external store ID is passed.

serviceSlug
string

The slug of the service for the review.

replyText
string

The reply text.

scheduledAt
number or null <double>

The scheduled timestamp (seconds) to reply to the review.

Responses

Request samples

Content type
application/json
{
  • "reviewId": "review-56e9-46be",
  • "externalStoreId": "order-1fa4-479c",
  • "serviceSlug": "ubereats",
  • "replyText": "Thank you very much.",
  • "scheduledAt": 1697727006
}

Response samples

Content type
application/json
{
  • "replyId": "reply-f34f-4d35"
}

Storefront

Endpoints to manage storefront state

Notify about store availability change

RATE LIMIT: 16 per minute

Authorizations:
OAuth2.0 (storefront.store_availability)
header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

X-Event-Id
string
Example: cf0ce51b-d74e-40d3-b177-1925ab4edc0c

Optional unique identifier of the event that this callback refers to.

Request Body schema: application/json
storeState
string or null
Enum: "OPEN" "OFF_HOUR" "SERVICE_PROVIDER_PAUSED" "OPERATOR_PAUSED" "SERVICE_PROVIDER_PAUSED_COURIERS_UNAVAILABLE" "STORE_UNAVAILABLE" "HOLIDAY_HOUR" "MENU_UNAVAILABLE" "SERVICE_PROVIDER_PAUSED_MISCONFIGURED" "OPEN_FOR_PICKUP_ONLY" "OPEN_FOR_DELIVERY_ONLY" "CLOSED_FOR_UNDETERMINED_REASON"

Represents the current state of a store.

statusChangedAt
string or null <date-time>

The time when the store changed to the current state.

object or null (EventResultMetadata)

Information about the result of a storefront event.

Responses

Request samples

Content type
application/json
{
  • "storeState": "OPEN",
  • "statusChangedAt": "2007-12-03T10:15:30+01:00",
  • "eventResultMetadata": {
    }
}

Response samples

Content type
application/json
{
  • "message": "The request body is invalid.",
  • "details": [
    ]
}

Notify about store hours configuration change

RATE LIMIT: 16 per minute

Authorizations:
OAuth2.0 (storefront.store_hours_configuration)
header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

X-Event-Id
string
Example: cf0ce51b-d74e-40d3-b177-1925ab4edc0c

Optional unique identifier of the event that this callback refers to.

Request Body schema: application/json
object (StoreHoursConfiguration)

The current store hours configuration of a store.

statusChangedAt
string <date-time>

The time when the store hours configuration changed.

object or null (EventResultMetadata)

Information about the result of a storefront event.

Responses

Request samples

Content type
application/json
{
  • "storeHoursConfiguration": {
    },
  • "statusChangedAt": "2007-12-03T10:15:30+01:00",
  • "eventResultMetadata": {
    }
}

Response samples

Content type
application/json
{
  • "message": "The request body is invalid.",
  • "details": [
    ]
}

Notify the result of a pause request event

RATE LIMIT: 8 per minute

Authorizations:
OAuth2.0 (storefront.store_pause_unpause)
header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

X-Event-Id
required
string
Example: cf0ce51b-d74e-40d3-b177-1925ab4edc0c

Unique identifier of the event that this callback refers to.

Request Body schema: application/json
closureId
string

ID required to unpause a store, if available

object (RequiredEventResultMetadata)

Information about the result of a storefront event.

Responses

Request samples

Content type
application/json
{
  • "closureId": "4109d2c9-8bc5-413c-af3e-1c92aa381e41",
  • "eventResultMetadata": {
    }
}

Response samples

Content type
application/json
{
  • "message": "The request body is invalid.",
  • "details": [
    ]
}

Notify the result of an unpause request event

RATE LIMIT: 8 per minute

Authorizations:
OAuth2.0 (storefront.store_pause_unpause)
header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

X-Event-Id
required
string
Example: cf0ce51b-d74e-40d3-b177-1925ab4edc0c

Unique identifier of the event that this callback refers to.

Request Body schema: application/json
object (RequiredEventResultMetadata)

Information about the result of a storefront event.

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "message": "The request body is invalid.",
  • "details": [
    ]
}

Notify about store availability change from the eater side

RATE LIMIT: 16 per minute

Authorizations:
OAuth2.0 (storefront.store_availability)
header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

X-Event-Id
string
Example: cf0ce51b-d74e-40d3-b177-1925ab4edc0c

Optional unique identifier of the event that this callback refers to.

Request Body schema: application/json
storeState
string or null
Enum: "OPEN" "OFF_HOUR" "SERVICE_PROVIDER_PAUSED" "OPERATOR_PAUSED" "SERVICE_PROVIDER_PAUSED_COURIERS_UNAVAILABLE" "STORE_UNAVAILABLE" "HOLIDAY_HOUR" "MENU_UNAVAILABLE" "SERVICE_PROVIDER_PAUSED_MISCONFIGURED" "OPEN_FOR_PICKUP_ONLY" "OPEN_FOR_DELIVERY_ONLY" "CLOSED_FOR_UNDETERMINED_REASON"

Represents the current state of a store.

statusChangedAt
string or null <date-time>

The time when the store changed to the current state.

object or null (EventResultMetadata)

Information about the result of a storefront event.

Responses

Request samples

Content type
application/json
{
  • "storeState": "OPEN",
  • "statusChangedAt": "2007-12-03T10:15:30+01:00",
  • "eventResultMetadata": {
    }
}

Response samples

Content type
application/json
{
  • "message": "The request body is invalid.",
  • "details": [
    ]
}

Notify about store hours configuration change on eater side

RATE LIMIT: 16 per minute

Authorizations:
OAuth2.0 (storefront.store_hours_configuration)
header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

X-Event-Id
string
Example: cf0ce51b-d74e-40d3-b177-1925ab4edc0c

Optional unique identifier of the event that this callback refers to.

Request Body schema: application/json
object (StoreHoursConfiguration)

The current store hours configuration of a store.

statusChangedAt
string <date-time>

The time when the store hours configuration changed.

object or null (EventResultMetadata)

Information about the result of a storefront event.

Responses

Request samples

Content type
application/json
{
  • "storeHoursConfiguration": {
    },
  • "statusChangedAt": "2007-12-03T10:15:30+01:00",
  • "eventResultMetadata": {
    }
}

Response samples

Content type
application/json
{
  • "message": "The request body is invalid.",
  • "details": [
    ]
}

Notify about store details update

Authorizations:
OAuth2.0 (marketintel.service_integration)
header Parameters
X-Event-Id
string
Example: cf0ce51b-d74e-40d3-b177-1925ab4edc0c

Optional unique identifier of the event that this callback refers to.

Request Body schema: application/json
superRegion
string

Represents a super region geographical mapping.

Array of objects (Marketintel_StoreDetails) >= 0 items [ items ]

Represents a list of stores

Responses

Request samples

Content type
application/json
{
  • "superRegion": "LATAM",
  • "storeDetails": [
    ]
}

Response samples

Content type
application/json
{
  • "message": "The request body is invalid.",
  • "details": [
    ]
}

Loyalty Manager

Endpoints to manage loyalty.

Get enrollment config for a loyalty provider

RATE LIMIT: 8 per minute

Authorizations:
OAuth2.0 (manager.loyalty)
path Parameters
source
required
string
Example: css-loyalty

Loyalty provider source

header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

Responses

Response samples

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

Get user by id

RATE LIMIT: 8 per minute

Authorizations:
OAuth2.0 (manager.loyalty)
path Parameters
source
required
string
Example: css-loyalty

Loyalty provider source

query Parameters
id
required
string
Example: id=somestring

User's id

header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

Responses

Response samples

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

Create a loyalty user

RATE LIMIT: 8 per minute

Authorizations:
OAuth2.0 (manager.loyalty)
path Parameters
source
required
string
Example: css-loyalty

Loyalty provider source

header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

Request Body schema: application/json
required
Array of objects (UserField) [ items ]

The user info fields for the new user.

Responses

Request samples

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

Response samples

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

Search loyalty users

RATE LIMIT: 8 per minute

Authorizations:
OAuth2.0 (manager.loyalty)
path Parameters
source
required
string
Example: css-loyalty

Loyalty provider source

query Parameters
token
string
Example: token=CgwI09+kjQYQwOvF2AM=/(urlencoded:CgwI09%2BkjQYQwOvF2AM%3D)

Opaque token used for paging. Query parameters must be URL encoded.

limit
required
string
Example: limit=5

Max number of items to retrieve (minimum 1, maximum is 10, anything smaller/larger than min/max resets to min/max)

term
required
string
Example: term=john

Used to search for users in the loyalty program. The search is case-sensitive and will match any part of the user's fields.

header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

Responses

Response samples

Content type
application/json
{
  • "users": [
    ],
  • "offsetToken": "H12MAF2fFaFFFa"
}

Compute applicable rewards

Supply both userId and order to get a list of applicable rewards for an order. Supply only userId to get a list of rewards the user can redeem RATE LIMIT: 8 per minute

Authorizations:
OAuth2.0 (manager.loyalty)
path Parameters
source
required
string
Example: css-loyalty

Loyalty provider source

header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

Request Body schema: application/json
userId
required
string

The id of the user.

Order-2 (object) or null

Responses

Request samples

Content type
application/json
{
  • "userId": "someidstring",
  • "order": {
    }
}

Response samples

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

Simulate rewards

Show what the effects will be after applying the selected rewards, and start the rewards transaction, only call this when user selected some reward, otherwise skip this call and use redeemAndAccumulateRewards API call. RATE LIMIT: 8 per minute

Authorizations:
OAuth2.0 (manager.loyalty)
path Parameters
source
required
string
Example: css-loyalty

Loyalty provider source

header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

Request Body schema: application/json
userId
required
string

The id of the user.

required
object (Order-2)
required
Array of objects (SelectedReward) [ items ]

Selected rewards, currently only support one reward, if multiple rewards are passed it will throw an error.

Responses

Request samples

Content type
application/json
{
  • "userId": "someidstring",
  • "order": {
    },
  • "selectedRewards": [
    ]
}

Response samples

Content type
application/json
{
  • "transactionId": "someidstring",
  • "rewardEffect": {
    }
}

Redeem and accumulate rewards

Redeem existing rewards and accumulate new rewards RATE LIMIT: 8 per minute

Authorizations:
OAuth2.0 (manager.loyalty)
path Parameters
source
required
string
Example: css-loyalty

Loyalty provider source

header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

Request Body schema: application/json
userId
required
string

The id of the user.

required
object (Order-2)
required
Array of objects (SelectedReward) [ items ]

Selected rewards, currently only support one reward, if multiple rewards are passed it will throw an error.

Responses

Request samples

Content type
application/json
{
  • "userId": "someidstring",
  • "order": {
    },
  • "selectedRewards": [
    ]
}

Response samples

Content type
application/json
{
  • "transactionId": "someidstring",
  • "rewardEffect": {
    },
  • "accumulatedRewards": [
    ]
}

Refund rewards

RATE LIMIT: 8 per minute

Authorizations:
OAuth2.0 (manager.loyalty)
path Parameters
source
required
string
Example: css-loyalty

Loyalty provider source

header Parameters
X-Store-Id
required
string (StoreId)
Example: partner-store-unique-identifier

The unique identifier of the store in the partner application. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

Request Body schema: application/json
userId
required
string

The id of the user.

orderId
required
string

The id of the order.

Responses

Request samples

Content type
application/json
{
  • "userId": "someidstring",
  • "orderId": "someidstring"
}

Response samples

Content type
application/json
{
  • "transactionId": "someidstring"
}

Direct Orders

Endpoints to get orders directly.

query eater's related history orders

Provide an external eater ID to get a list of order related to that eater.

Authorizations:
OAuth2.0 (direct.orders)
Request Body schema: application/x-www-form-urlencoded
limit
required
number <10>

Max number of orders to retrieve per page

pageToken
string

Opaque token used for paging. Query parameters must be URL encoded.

eaterId
required
string

External eater's Id

source
string

Order placed from which source

Responses

Response samples

Content type
application/json
{
  • "orders": [
    ],
  • "nextPageToken": "H12MAF2fFaFFFa"
}

Store

Endpoints to get store information.

Account Pairing Webhooks

Webhooks to manage store onboarding and status

Upsert Store Webhook

Sent when a store is created or updated in Public API internal systems.
If metadata contains a Store ID, it means a request to update an existent store, otherwise, it's a creation operation.
It provides the store and credentials data needed to validate the store and create a new Store ID in the partner application.
At this point, the store is in onboarding state waiting the partner application to finish the onboarding process by providing the validated Store ID.

Request Body schema: application/json
eventId
string <uuid>

Unique identifier of the event.

eventTime
string <date-time>

Date of event occurrence.

eventType
string

The type of the event.

object

Information about the event.

Responses

Request samples

Content type
application/json
{
  • "eventId": "d6703cc8-9e79-415d-ac03-a4dc7f6ab43c",
  • "eventTime": "2007-12-03T10:15:30+01:00",
  • "eventType": "stores.upsert",
  • "metadata": {
    }
}

Response samples

Content type
application/json
{
  • "message": "The request body is invalid.",
  • "details": [
    ]
}

Remove Store Webhook

Sent when a store is removed from our system. Contains information about the store for which the event was triggered.

Request Body schema: application/json
eventId
string <uuid>

Unique identifier of the event.

eventTime
string <date-time>

Date of event occurrence.

eventType
string

The type of the event.

object

Information about the event.

Responses

Request samples

Content type
application/json
{
  • "eventId": "d6703cc8-9e79-415d-ac03-a4dc7f6ab43c",
  • "eventTime": "2007-12-03T10:15:30+01:00",
  • "eventType": "stores.remove",
  • "metadata": {
    }
}

Response samples

Content type
application/json
{
  • "message": "The request body is invalid.",
  • "details": [
    ]
}

Fetch Credentials (synchronously) Webhook

Synchronously returns the last version of the credentials schema needed to create and validate a store in the partner application. If the request contains the Store ID, it also returns the saved store credentials corresponding to the provided Store ID.

Request Body schema: application/json
eventId
required
string <uuid>

Unique identifier of the event.

eventTime
required
string <date-time>

Date of event occurrence.

eventType
required
string

The type of event.

required
object

Responses

Request samples

Content type
application/json
{
  • "eventId": "d6703cc8-9e79-415d-ac03-a4dc7f6ab43c",
  • "eventTime": "2007-12-03T10:15:30+01:00",
  • "eventType": "stores.fetch_credentials",
  • "metadata": {
    }
}

Response samples

Content type
application/json
{
  • "credentialsSchemaVersion": "1.0",
  • "credentials": [
    ]
}

Delivery Webhooks

Webhooks from the delivery domain.

Update delivery status webhook Webhook

Request Body schema: application/json
eventId
string <uuid>

Unique identifier of the event.

eventTime
string <date-time>

Date of event occurrence.

eventType
string

The type of the event.

object

Information about the event.

Responses

Request samples

Content type
application/json
{
  • "eventId": "d6703cc8-9e79-415d-ac03-a4dc7f6ab43c",
  • "eventTime": "2007-12-03T10:15:30+01:00",
  • "eventType": "delivery.delivery_status_update",
  • "metadata": {
    }
}

Request delivery quotes webhook Webhook

Request Body schema: application/json
eventId
string <uuid>

Unique identifier of the event.

eventTime
string <date-time>

Date of event occurrence.

eventType
string

The type of the event.

object

Information about the event.

Responses

Request samples

Content type
application/json
{
  • "eventId": "d6703cc8-9e79-415d-ac03-a4dc7f6ab43c",
  • "eventTime": "2007-12-03T10:15:30+01:00",
  • "eventType": "delivery.request_quote",
  • "metadata": {
    }
}

Accept delivery webhook Webhook

Request Body schema: application/json
eventId
string <uuid>

Unique identifier of the event.

eventTime
string <date-time>

Date of event occurrence.

eventType
string

The type of the event.

object

Information about the event.

Responses

Request samples

Content type
application/json
{
  • "eventId": "d6703cc8-9e79-415d-ac03-a4dc7f6ab43c",
  • "eventTime": "2007-12-03T10:15:30+01:00",
  • "eventType": "delivery.accept",
  • "metadata": {
    }
}

Cancel delivery webhook Webhook

Request Body schema: application/json
eventId
string <uuid>

Unique identifier of the event.

eventTime
string <date-time>

Date of event occurrence.

eventType
string

The type of the event.

object

Information about the event.

Responses

Request samples

Content type
application/json
{
  • "eventId": "d6703cc8-9e79-415d-ac03-a4dc7f6ab43c",
  • "eventTime": "2007-12-03T10:15:30+01:00",
  • "eventType": "delivery.cancel",
  • "metadata": {
    }
}

Update delivery request webhook Webhook

Request Body schema: application/json
eventId
string <uuid>

Unique identifier of the event.

eventTime
string <date-time>

Date of event occurrence.

eventType
string

The type of the event.

object

Information about the event.

Responses

Request samples

Content type
application/json
{
  • "eventId": "d6703cc8-9e79-415d-ac03-a4dc7f6ab43c",
  • "eventTime": "2007-12-03T10:15:30+01:00",
  • "eventType": "delivery.update_request",
  • "metadata": {
    }
}

Orders Manager Webhooks

Webhooks from manager orders domain.

Order creation webhook Webhook

Request Body schema: application/json
eventId
string <uuid>

Unique identifier of the event.

eventTime
string <date-time>

Date of event occurrence.

eventType
string

The type of the event.

object

Information about the event.

Responses

Request samples

Content type
application/json
{
  • "eventId": "d6703cc8-9e79-415d-ac03-a4dc7f6ab43c",
  • "eventTime": "2007-12-03T10:15:30+01:00",
  • "eventType": "orders.new_order",
  • "metadata": {
    }
}

Order update webhook Webhook

Request Body schema: application/json
eventId
string <uuid>

Unique identifier of the event.

eventTime
string <date-time>

Date of event occurrence.

eventType
string

The type of the event.

object

Information about the event.

Responses

Request samples

Content type
application/json
{
  • "eventId": "d6703cc8-9e79-415d-ac03-a4dc7f6ab43c",
  • "eventTime": "2007-12-03T10:15:30+01:00",
  • "eventType": "orders.update",
  • "metadata": {
    }
}

Order confirm notification webhook Webhook

Request Body schema: application/json
eventId
string <uuid>

Unique identifier of the event.

eventTime
string <date-time>

Date of event occurrence.

eventType
string

The type of the event.

object

Information about the event.

Responses

Request samples

Content type
application/json
{
  • "eventId": "d6703cc8-9e79-415d-ac03-a4dc7f6ab43c",
  • "eventTime": "2007-12-03T10:15:30+01:00",
  • "eventType": "orders.confirm",
  • "metadata": {
    }
}

Order Ready status notification webhook Webhook

Request Body schema: application/json
eventId
string <uuid>

Unique identifier of the event.

eventTime
string <date-time>

Date of event occurrence.

eventType
string

The type of the event.

object

Information about the event.

Responses

Request samples

Content type
application/json
{
  • "eventId": "d6703cc8-9e79-415d-ac03-a4dc7f6ab43c",
  • "eventTime": "2007-12-03T10:15:30+01:00",
  • "eventType": "orders.order_ready",
  • "metadata": {
    }
}

Order Handed Off status notification webhook Webhook

Request Body schema: application/json
eventId
string <uuid>

Unique identifier of the event.

eventTime
string <date-time>

Date of event occurrence.

eventType
string

The type of the event.

object

Information about the event.

Responses

Request samples

Content type
application/json
{
  • "eventId": "d6703cc8-9e79-415d-ac03-a4dc7f6ab43c",
  • "eventTime": "2007-12-03T10:15:30+01:00",
  • "eventType": "orders.order_handed_off",
  • "metadata": {
    }
}

Order Fulfilled status notification webhook Webhook

Request Body schema: application/json
eventId
string <uuid>

Unique identifier of the event.

eventTime
string <date-time>

Date of event occurrence.

eventType
string

The type of the event.

object

Information about the event.

Responses

Request samples

Content type
application/json
{
  • "eventId": "d6703cc8-9e79-415d-ac03-a4dc7f6ab43c",
  • "eventTime": "2007-12-03T10:15:30+01:00",
  • "eventType": "orders.order_fulfilled",
  • "metadata": {
    }
}

Menus Webhooks

Webhooks from menus domain.

Menu publish webhook Webhook

Webhook to trigger a menu publish. If successful, we expect a menu publish callback. If an error occurred, please publish a callback error instead.

Request Body schema: application/json
eventId
string <uuid>

Unique identifier of the event.

eventTime
string <date-time>

Date of event occurrence.

eventType
string

The type of the event.

object

Information about the event.

Responses

Request samples

Content type
application/json
{
  • "eventId": "d6703cc8-9e79-415d-ac03-a4dc7f6ab43c",
  • "eventTime": "2007-12-03T10:15:30+01:00",
  • "eventType": "menus.menu_publish",
  • "metadata": {
    }
}

Send menu webhook Webhook

Webhook to trigger a send menu. If successful, we expect a menu send callback. If an error occurred, please publish a callback error instead.

Request Body schema: application/json
eventId
string <uuid>

Unique identifier of the event.

eventTime
string <date-time>

Date of event occurrence.

eventType
string

The type of the event.

object

Information about the event.

Responses

Request samples

Content type
application/json
{
  • "eventId": "d6703cc8-9e79-415d-ac03-a4dc7f6ab43c",
  • "eventTime": "2007-12-03T10:15:30+01:00",
  • "eventType": "menus.send_menu",
  • "metadata": {
    }
}

Update menu entities availabilities webhook Webhook

Webhook to trigger an entities availabilities update. If successful, we expect an update menu entities availabilities callback. If an error occurred, please publish a callback error instead.

Request Body schema: application/json
eventId
string <uuid>

Unique identifier of the event.

eventTime
string <date-time>

Date of event occurrence.

eventType
string

The type of the event.

object

Information about the event.

Responses

Request samples

Content type
application/json
{
  • "eventId": "d6703cc8-9e79-415d-ac03-a4dc7f6ab43c",
  • "eventTime": "2007-12-03T10:15:30+01:00",
  • "eventType": "menus.update_menu_entities_availabilities",
  • "metadata": {
    }
}

Upsert menu hours webhook Webhook

Webhook to trigger a menu hours update. If successful, we expect a menu upsert hours callback. If an error occurred, please publish a callback error instead.

Request Body schema: application/json
eventId
string <uuid>

Unique identifier of the event.

eventTime
string <date-time>

Date of event occurrence.

eventType
string

The type of the event.

object

Information about the event.

Responses

Request samples

Content type
application/json
{
  • "eventId": "d6703cc8-9e79-415d-ac03-a4dc7f6ab43c",
  • "eventTime": "2007-12-03T10:15:30+01:00",
  • "eventType": "menus.upsert_hours",
  • "metadata": {
    }
}

Orders Webhooks

Webhooks from orders domains.

Intent to cancel order webhook Webhook

Request Body schema: application/json
eventId
string <uuid>

Unique identifier of the event.

eventTime
string <date-time>

Date of event occurrence.

eventType
string

The type of the event.

object

Information about the event.

Responses

Request samples

Content type
application/json
{
  • "eventId": "d6703cc8-9e79-415d-ac03-a4dc7f6ab43c",
  • "eventTime": "2007-12-03T10:15:30+01:00",
  • "eventType": "orders.cancel_order",
  • "metadata": {
    }
}

Order status update webhook Webhook

Request Body schema: application/json
eventId
string <uuid>

Unique identifier of the event.

eventTime
string <date-time>

Date of event occurrence.

eventType
string

The type of the event.

object

Information about the event.

Responses

Request samples

Content type
application/json
{
  • "eventId": "d6703cc8-9e79-415d-ac03-a4dc7f6ab43c",
  • "eventTime": "2007-12-03T10:15:30+01:00",
  • "eventType": "orders.order_status_update",
  • "metadata": {
    }
}

Pos injection state update webhook Webhook

Request Body schema: application/json
eventId
string <uuid>

Unique identifier of the event.

eventTime
string <date-time>

Date of event occurrence.

eventType
string

The type of the event.

object

Information about the event.

Responses

Request samples

Content type
application/json
{
  • "eventId": "d6703cc8-9e79-415d-ac03-a4dc7f6ab43c",
  • "eventTime": "2007-12-03T10:15:30+01:00",
  • "eventType": "orders.pos_injection_state_update",
  • "metadata": {
    }
}

Ping Webhooks

Webhooks to ping and test the system integration.

Ping webhook Webhook

Used to validate the integration without side effects

Request Body schema: application/json
eventId
string <uuid>

Unique identifier of the event.

eventTime
string <date-time>

Date of event occurrence.

eventType
string

The type of the event.

object

Information about the event.

Responses

Request samples

Content type
application/json
{
  • "eventId": "d6703cc8-9e79-415d-ac03-a4dc7f6ab43c",
  • "eventTime": "2007-12-03T10:15:30+01:00",
  • "eventType": "ping.ping",
  • "metadata": {
    }
}

Reports Webhooks

Webhooks from the reports generation operations

Report generated webhook Webhook

Request Body schema: application/json
eventId
string <uuid>

Unique identifier of the event.

eventTime
string <date-time>

Date of event occurrence.

eventType
string

The type of the event.

object

Information about the event.

Responses

Request samples

Content type
application/json
{
  • "eventId": "d6703cc8-9e79-415d-ac03-a4dc7f6ab43c",
  • "eventTime": "2007-12-03T10:15:30+01:00",
  • "eventType": "reports.report_generated",
  • "metadata": {
    }
}

Storefront Webhooks

Webhooks from storefront domain.

Pause store webhook Webhook

Request Body schema: application/json
eventId
string <uuid>

Unique identifier of the event.

eventTime
string <date-time>

Date of event occurrence.

eventType
string

The type of the event.

object

Information about the event.

Responses

Request samples

Content type
application/json
{
  • "eventId": "d6703cc8-9e79-415d-ac03-a4dc7f6ab43c",
  • "eventTime": "2007-12-03T10:15:30+01:00",
  • "eventType": "storefront.pause_store",
  • "metadata": {
    }
}

Unpause store webhook Webhook

Request Body schema: application/json
eventId
string <uuid>

Unique identifier of the event.

eventTime
string <date-time>

Date of event occurrence.

eventType
string

The type of the event.

object

Information about the event.

Responses

Request samples

Content type
application/json
{
  • "eventId": "d6703cc8-9e79-415d-ac03-a4dc7f6ab43c",
  • "eventTime": "2007-12-03T10:15:30+01:00",
  • "eventType": "storefront.unpause_store",
  • "metadata": {
    }
}

Get store availability webhook Webhook

Request Body schema: application/json
eventId
string <uuid>

Unique identifier of the event.

eventTime
string <date-time>

Date of event occurrence.

eventType
string

The type of the event.

object

Information about the event.

Responses

Request samples

Content type
application/json
{
  • "eventId": "d6703cc8-9e79-415d-ac03-a4dc7f6ab43c",
  • "eventTime": "2007-12-03T10:15:30+01:00",
  • "eventType": "storefront.get_store_availability",
  • "metadata": {
    }
}

Get store hours configuration webhook Webhook

Request Body schema: application/json
eventId
string <uuid>

Unique identifier of the event.

eventTime
string <date-time>

Date of event occurrence.

eventType
string

The type of the event.

object

Information about the event.

Responses

Request samples

Content type
application/json
{
  • "eventId": "d6703cc8-9e79-415d-ac03-a4dc7f6ab43c",
  • "eventTime": "2007-12-03T10:15:30+01:00",
  • "eventType": "storefront.get_store_hours",
  • "metadata": {
    }
}