Skip to content

Tote Online Ordering API (1.0.0)

REST API for 3rd party developers building online ordering integrations with Tote POS convenience stores and fuel stations.

Overview

The Tote Online Ordering API enables partners to:

  • Authenticate via OAuth 2.0 client credentials
  • Browse store locations and business hours
  • Retrieve full menus with nested modifier groups
  • Create and manage shopping carts
  • Submit orders with split payment support
  • Track order fulfillment status
  • Subscribe to webhook events for real-time updates
  • Check item availability and inventory

Base URL

The server URLs below are placeholders. Your actual API base URL, client ID, and client secret are provided during partner onboarding. Contact developer@totepos.com to get started.

Path parameters use snake_case. JSON response fields use snake_case. Schema names use PascalCase. Enum values use SCREAMING_SNAKE_CASE.

Download OpenAPI description
Overview
Tote Developer Support
Languages
Servers
Mock server
https://developers.tote.ai/_mock/online-ordering/spec/openapi
Production (placeholder -- use your assigned base URL)
https://api.tote.ai/v1/online-ordering
Sandbox (placeholder -- use your assigned base URL)
https://sandbox.api.tote.ai/v1/online-ordering

Authentication

OAuth 2.0 client credentials token management.

Operations

Locations

Store locations, hours, and capabilities.

Operations

Carts

Shopping cart creation, item management, pricing, and checkout.

Operations

Orders

Order retrieval, fulfillment tracking, and cancellation.

Operations

Payments

Payment submission, split payments, and refunds.

Operations

Webhook Subscriptions

Webhook subscription management and event delivery.

Operations

Inventory

Item availability and stock status.

Operations

Get item availability for a location

Request

Returns the current availability status for all items at a location. Use this endpoint to check stock before adding items to a cart, or as a polling fallback for the stock.updated webhook event.

Items not returned in this response are not available at this location.

Pagination: Results use cursor-based pagination. Use the cursor parameter from the pagination.next_cursor field to retrieve the next page.

Security
oauth2
Path
location_idstring(uuid)required

Unique identifier for the location.

Query
cursorstring

Opaque cursor for pagination. Obtained from the next_cursor field of a previous response.

limitinteger[ 1 .. 500 ]

Maximum number of results to return per page.

Default 100
curl -i -X GET \
  'https://developers.tote.ai/_mock/online-ordering/spec/openapi/locations/{location_id}/inventory?cursor=string&limit=100' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

A paginated list of inventory items with availability status.

Bodyapplication/json
dataArray of objects(InventoryItem)required

List of items with availability status.

data[].​item_idstring(uuid)required

Unique identifier for the menu item.

data[].​namestringrequired

Item name for display convenience.

data[].​availability_statusstring(AvailabilityStatus)required

Item availability status at a location.

  • IN_STOCK: Item is available for ordering.
  • LOW_STOCK: Item is available but quantities are limited. The threshold for LOW_STOCK is configured server-side per location.
  • OUT_OF_STOCK: Item is not available for ordering. Do not display this item as orderable to customers.
Enum"IN_STOCK""LOW_STOCK""OUT_OF_STOCK"
data[].​updated_atstring(date-time)required

When this item's availability status was last updated.

paginationobject(Pagination)required
pagination.​has_morebooleanrequired

Whether more results exist beyond this page.

pagination.​next_cursorstring or null

Opaque cursor for the next page. Pass as the cursor query parameter. Null when there are no more results.

Response
application/json
{ "data": [ {}, {}, {} ], "pagination": { "has_more": false, "next_cursor": null } }

Events

Webhook event payloads delivered to your subscription URLs.

Webhooks