Business
Operate a store you are authorized for: read and work its order queue, and manage its catalogue. These are the same routes the Ryde merchant portal and its point of sale call, so a change made here appears on the store's own terminal immediately — there is no separate "API catalogue" to keep in step. Access needs the merchant's own authorization plus their signed Ryde business agreement; a developer cannot accept that agreement on a store's behalf.
Operate a store you are authorized for: read and work its order queue, and manage its catalogue. These are the same routes the Ryde merchant portal and its point of sale call, so a change made here appears on the store's own terminal immediately — there is no separate "API catalogue" to keep in step. Access needs the merchant's own authorization plus their signed Ryde business agreement; a developer cannot accept that agreement on a store's behalf.
Lifecycle
PLACED (the customer has paid, or is paying cash)
|
MERCHANT ACCEPTED ---> REJECTED (a paid order is refunded to the
| customer's Ryde wallet)
PREPARING
|
READY FOR PICKUP (for a delivery order, THIS is what dispatches
| a Ryde courier — couriers accept first-come,
| so there is nothing to assign)
PICKED UP
|
DELIVERED (or COMPLETED, for pickup and dine-in)
Operations
GET /v1/business/orders
Beta Business agreement required Sandbox supported
List the store's orders, newest first. Filter by status or fulfillment, or ask only for active work.
| Operation | list_business_orders |
|---|---|
| Scope | orders.read |
| Entitlement | Business agreement required |
| Idempotency | Not required |
| MCP tool | list_business_orders |
Example request
curl -s 'https://sandbox-api.ryde.us.com/v1/business/orders' \
-H "Authorization: Bearer $RYDE_ACCESS_TOKEN"
GET /v1/business/orders/{order_id}
Beta Business agreement required Sandbox supported
Read one of the store's orders in full, including its line items and status history.
| Operation | get_business_order |
|---|---|
| Scope | orders.read |
| Entitlement | Business agreement required |
| Idempotency | Not required |
| MCP tool | get_business_order |
Example request
curl -s 'https://sandbox-api.ryde.us.com/v1/business/orders/$order_id' \
-H "Authorization: Bearer $RYDE_ACCESS_TOKEN"
POST /v1/business/orders/{order_id}/accept
Beta Business agreement required Sandbox supported
Accept an incoming order. Refused with 402 if a card or wallet order has not been paid yet.
| Operation | accept_business_order |
|---|---|
| Scope | orders.manage |
| Entitlement | Business agreement required |
| Idempotency | Supported |
| MCP tool | accept_business_order |
Example request
curl -sX POST 'https://sandbox-api.ryde.us.com/v1/business/orders/$order_id/accept' \
-H "Authorization: Bearer $RYDE_ACCESS_TOKEN" \
-H 'Content-Type: application/json' \
-d '{ … }'
POST /v1/business/orders/{order_id}/reject
Beta Business agreement required Sandbox supported
Reject an order. A paid order is refunded to the customer's Ryde wallet — or, when the store collected it on its own Stripe account, to the customer's card by the store — and any booked slot is released.
| Operation | reject_business_order |
|---|---|
| Scope | orders.manage |
| Entitlement | Business agreement required |
| Idempotency | Supported |
| MCP tool | reject_business_order |
Example request
curl -sX POST 'https://sandbox-api.ryde.us.com/v1/business/orders/$order_id/reject' \
-H "Authorization: Bearer $RYDE_ACCESS_TOKEN" \
-H 'Content-Type: application/json' \
-d '{ … }'
POST /v1/business/orders/{order_id}/preparing
Beta Business agreement required Sandbox supported
Mark an accepted order as being prepared, so the customer's tracking reflects the kitchen.
| Operation | start_business_order_prep |
|---|---|
| Scope | orders.manage |
| Entitlement | Business agreement required |
| Idempotency | Supported |
| MCP tool | start_business_order_prep |
Example request
curl -sX POST 'https://sandbox-api.ryde.us.com/v1/business/orders/$order_id/preparing' \
-H "Authorization: Bearer $RYDE_ACCESS_TOKEN" \
-H 'Content-Type: application/json' \
-d '{ … }'
POST /v1/business/orders/{order_id}/ready
Beta Business agreement required Sandbox supported
Mark an order ready for collection. For a delivery order this is what dispatches a Ryde courier.
| Operation | mark_business_order_ready |
|---|---|
| Scope | orders.manage |
| Entitlement | Business agreement required |
| Idempotency | Supported |
| MCP tool | mark_business_order_ready |
Example request
curl -sX POST 'https://sandbox-api.ryde.us.com/v1/business/orders/$order_id/ready' \
-H "Authorization: Bearer $RYDE_ACCESS_TOKEN" \
-H 'Content-Type: application/json' \
-d '{ … }'
POST /v1/business/orders/{order_id}/complete
Beta Business agreement required Sandbox supported
Complete a pickup or dine-in order. Refused with 409 while a table check is still open.
| Operation | complete_business_order |
|---|---|
| Scope | orders.manage |
| Entitlement | Business agreement required |
| Idempotency | Supported |
| MCP tool | complete_business_order |
Example request
curl -sX POST 'https://sandbox-api.ryde.us.com/v1/business/orders/$order_id/complete' \
-H "Authorization: Bearer $RYDE_ACCESS_TOKEN" \
-H 'Content-Type: application/json' \
-d '{ … }'
GET /v1/business/catalog/items
Beta Business agreement required Sandbox supported
List the store's catalogue items with their prices, modifiers and availability.
| Operation | list_catalog_items |
|---|---|
| Scope | menu.read |
| Entitlement | Business agreement required |
| Idempotency | Not required |
| MCP tool | list_catalog_items |
Example request
curl -s 'https://sandbox-api.ryde.us.com/v1/business/catalog/items' \
-H "Authorization: Bearer $RYDE_ACCESS_TOKEN"
GET /v1/business/catalog/items/{item_id}
Beta Business agreement required Sandbox supported
Read one catalogue item by its id: price, SKU, barcode, tax treatment, stock and availability.
| Operation | get_catalog_item |
|---|---|
| Scope | menu.read |
| Entitlement | Business agreement required |
| Idempotency | Not required |
| MCP tool | get_catalog_item |
Example request
curl -s 'https://sandbox-api.ryde.us.com/v1/business/catalog/items/$item_id' \
-H "Authorization: Bearer $RYDE_ACCESS_TOKEN"
POST /v1/business/catalog/items
Beta Business agreement required Sandbox supported
Create a catalogue item. It appears immediately in the store's POS and on its Ryde storefront.
| Operation | create_catalog_item |
|---|---|
| Scope | menu.manage |
| Entitlement | Business agreement required |
| Idempotency | Supported |
| MCP tool | create_catalog_item |
Example request
curl -sX POST 'https://sandbox-api.ryde.us.com/v1/business/catalog/items' \
-H "Authorization: Bearer $RYDE_ACCESS_TOKEN" \
-H 'Content-Type: application/json' \
-d '{ … }'
PUT /v1/business/catalog/items/{item_id}
Beta Business agreement required Sandbox supported
Update a catalogue item's name, description, price, category or modifier groups.
| Operation | update_catalog_item |
|---|---|
| Scope | menu.manage |
| Entitlement | Business agreement required |
| Idempotency | Supported |
| MCP tool | update_catalog_item |
Example request
curl -sX PUT 'https://sandbox-api.ryde.us.com/v1/business/catalog/items/$item_id' \
-H "Authorization: Bearer $RYDE_ACCESS_TOKEN" \
-H 'Content-Type: application/json' \
-d '{ … }'
PUT /v1/business/catalog/items/by-sku/{sku}
Beta Business agreement required Sandbox supported
Create or update the catalogue item with this SKU. The SKU is unique within the store, so the same call is safe to repeat.
| Operation | upsert_catalog_item_by_sku |
|---|---|
| Scope | menu.manage |
| Entitlement | Business agreement required |
| Idempotency | Supported |
| MCP tool | upsert_catalog_item_by_sku |
Example request
curl -sX PUT 'https://sandbox-api.ryde.us.com/v1/business/catalog/items/by-sku/$sku' \
-H "Authorization: Bearer $RYDE_ACCESS_TOKEN" \
-H 'Content-Type: application/json' \
-d '{ … }'
PUT /v1/business/catalog/items/{item_id}/availability
Beta Business agreement required Sandbox supported
Take an item off sale or put it back on, without deleting it. The reversible way to 86 something.
| Operation | set_catalog_item_availability |
|---|---|
| Scope | menu.manage |
| Entitlement | Business agreement required |
| Idempotency | Supported |
| MCP tool | set_catalog_item_availability |
Example request
curl -sX PUT 'https://sandbox-api.ryde.us.com/v1/business/catalog/items/$item_id/availability' \
-H "Authorization: Bearer $RYDE_ACCESS_TOKEN" \
-H 'Content-Type: application/json' \
-d '{ … }'
DELETE /v1/business/catalog/items/{item_id}
Beta Business agreement required Sandbox supported
Remove a catalogue item. There is no undo through the API — to take something off sale temporarily, set its availability instead.
| Operation | delete_catalog_item |
|---|---|
| Scope | menu.manage |
| Entitlement | Business agreement required |
| Idempotency | Supported |
| MCP tool | delete_catalog_item |
Example request
curl -sX DELETE 'https://sandbox-api.ryde.us.com/v1/business/catalog/items/$item_id' \
-H "Authorization: Bearer $RYDE_ACCESS_TOKEN" \
-H 'Content-Type: application/json' \
-d '{ … }'
POST /v1/business/catalog/items/batch
Beta Business agreement required Sandbox supported
Add many catalogue items at once, with their categories. Duplicate-safe: an item matched by SKU or barcode is updated (price and description) instead of added twice, a name-only match is skipped unless decided, and mode "replace" retires items missing from the list once confirm_retire equals the count a 409 names.
| Operation | import_catalog_items |
|---|---|
| Scope | menu.manage |
| Entitlement | Business agreement required |
| Idempotency | Supported |
| MCP tool | import_catalog_items |
Example request
curl -sX POST 'https://sandbox-api.ryde.us.com/v1/business/catalog/items/batch' \
-H "Authorization: Bearer $RYDE_ACCESS_TOKEN" \
-H 'Content-Type: application/json' \
-d '{ … }'
GET /v1/business/catalog/export
Beta Business agreement required Sandbox supported
Export the store's sellable catalogue as rows in the fixed template's columns (name, SKU, barcode, category, type, price, tax, cost, stock, warehouse, description). Cost, stock and barcode are filled only for a token with menu.manage.
| Operation | export_catalog |
|---|---|
| Scope | menu.read |
| Entitlement | Business agreement required |
| Idempotency | Not required |
| MCP tool | export_catalog |
Example request
curl -s 'https://sandbox-api.ryde.us.com/v1/business/catalog/export' \
-H "Authorization: Bearer $RYDE_ACCESS_TOKEN"
GET /v1/business/catalog/template
Beta Business agreement required Sandbox supported
The template's columns, the values each accepts, an example row, the row limit and the import modes.
| Operation | get_catalog_template |
|---|---|
| Scope | menu.read |
| Entitlement | Business agreement required |
| Idempotency | Not required |
| MCP tool | get_catalog_template |
Example request
curl -s 'https://sandbox-api.ryde.us.com/v1/business/catalog/template' \
-H "Authorization: Bearer $RYDE_ACCESS_TOKEN"
POST /v1/business/catalog/import/preview
Beta Business agreement required Sandbox supported
Check rows in the template's columns against the catalogue WITHOUT writing: what is new, updated, unchanged, a possible duplicate or an error, per row. Answers a token for the commit.
| Operation | preview_catalog_import |
|---|---|
| Scope | menu.manage |
| Entitlement | Business agreement required |
| Idempotency | Supported |
| MCP tool | preview_catalog_import |
Example request
curl -sX POST 'https://sandbox-api.ryde.us.com/v1/business/catalog/import/preview' \
-H "Authorization: Bearer $RYDE_ACCESS_TOKEN" \
-H 'Content-Type: application/json' \
-d '{ … }'
POST /v1/business/catalog/import/commit
Beta Business agreement required Sandbox supported
Apply a previewed import by its token, in mode merge, add_only or replace. Committing the same token again answers the first result and writes nothing.
| Operation | commit_catalog_import |
|---|---|
| Scope | menu.manage |
| Entitlement | Business agreement required |
| Idempotency | Supported |
| MCP tool | commit_catalog_import |
Example request
curl -sX POST 'https://sandbox-api.ryde.us.com/v1/business/catalog/import/commit' \
-H "Authorization: Bearer $RYDE_ACCESS_TOKEN" \
-H 'Content-Type: application/json' \
-d '{ … }'