OAuth 2.0 client credentials token management.
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.
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
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.
Request
Returns a paginated list of locations accessible to your API credentials. Use the online_ordering_enabled field to filter locations that accept online orders.
Pagination: Results are returned in pages. Use the cursor parameter from the pagination.next_cursor field to retrieve the next page.
- Mock serverhttps://developers.tote.ai/_mock/online-ordering/spec/openapi/locations
- Production (placeholder -- use your assigned base URL)https://api.tote.ai/v1/online-ordering/locations
- Sandbox (placeholder -- use your assigned base URL)https://sandbox.api.tote.ai/v1/online-ordering/locations
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://developers.tote.ai/_mock/online-ordering/spec/openapi/locations?limit=20&cursor=string' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>'A paginated list of locations.
List of locations.
Two-letter state code (e.g., "TX").
Store phone number in E.164 format (e.g., "+15125551234").
Latitude in decimal degrees (WGS 84 datum). Null if the location has not been geocoded. Use with longitude for store locator features and distance calculations.
Longitude in decimal degrees (WGS 84 datum). Null if the location has not been geocoded.
IANA timezone identifier for this location. Used to interpret business_hours and daily_sales_start_time/end_time fields.
Whether this location currently accepts online orders. Only locations with online_ordering_enabled=true should be displayed to customers.
Default estimated preparation time in minutes for orders at this location. Used to compute estimated_ready_at on orders when no item-specific prep time applies. Null if the location has not configured a default.
Minimum order subtotal required per handoff mode. If a customer's cart subtotal is below the minimum for their selected handoff mode, the server automatically applies a SMALL_ORDER fee covering the shortfall rather than blocking the order. Null if no minimums are configured.
Keys are lowercase handoff mode identifiers. Only modes with minimums are present -- absence means no minimum for that mode.
{ "data": [ { … }, { … } ], "pagination": { "has_more": true, "next_cursor": "eyJpZCI6ImIyYzNkNGU1LWY2YTctODkwMS1iY2RlLWYxMjM0NTY3ODkwMSJ9" } }
- Mock serverhttps://developers.tote.ai/_mock/online-ordering/spec/openapi/locations/{location_id}
- Production (placeholder -- use your assigned base URL)https://api.tote.ai/v1/online-ordering/locations/{location_id}
- Sandbox (placeholder -- use your assigned base URL)https://sandbox.api.tote.ai/v1/online-ordering/locations/{location_id}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://developers.tote.ai/_mock/online-ordering/spec/openapi/locations/{location_id}' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>'The requested location.
Latitude in decimal degrees (WGS 84 datum). Null if the location has not been geocoded. Use with longitude for store locator features and distance calculations.
Longitude in decimal degrees (WGS 84 datum). Null if the location has not been geocoded.
IANA timezone identifier for this location. Used to interpret business_hours and daily_sales_start_time/end_time fields.
Whether this location currently accepts online orders. Only locations with online_ordering_enabled=true should be displayed to customers.
Default estimated preparation time in minutes for orders at this location. Used to compute estimated_ready_at on orders when no item-specific prep time applies. Null if the location has not configured a default.
Minimum order subtotal required per handoff mode. If a customer's cart subtotal is below the minimum for their selected handoff mode, the server automatically applies a SMALL_ORDER fee covering the shortfall rather than blocking the order. Null if no minimums are configured.
Keys are lowercase handoff mode identifiers. Only modes with minimums are present -- absence means no minimum for that mode.
{ "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "name": "QuickStop #247", "address": { "street": "4521 Congress Ave", "city": "Austin", "state": "TX", "postal_code": "78745", "country": "US" }, "phone": "+15125551234", "timezone": "America/Chicago", "online_ordering_enabled": true, "business_hours": [ { … }, { … }, { … }, { … }, { … }, { … }, { … } ] }