Ryde Developers
Español Dashboard ryde.us.com

Ryde One is the transaction entitlement

OAuth authorization does not grant transaction authority. An active Ryde One membership does.

API version v1 · View as Markdown

A customer connecting their Ryde account to your application authorizes you to act for them. It does not, by itself, entitle them to transact through external software. That entitlement is Ryde One, the customer's own paid membership — held by the customer, never by the developer.

One membership cannot cover many customers. The entitlement is checked against the individual whose token you are holding, on every transacting call. There is no application-level or organization-level substitute.

What a non-member can do

Read, quote and track — never create. The rule is deliberately generous on the read side, so an agent can demonstrate real value and then explain the membership, rather than hitting a wall before it can say anything useful.

CapabilityNo Ryde OneActive Ryde One
Connect a Ryde account
Check membership status
Search merchants and read menus
See ride options and fare quotes
Price a basket or a delivery
Find providers and read availability
Track an existing ride, order or booking
Retrieve an existing receipt
Cancel something already in progress
Request a new ride
Place a food order
Request a new delivery
Book a service provider
Create a task
Autonomous spending without confirmationplanned

The refusal

403, not 401 — the token is fine, so refreshing it or re-running OAuth will not help and will only trap the customer in a loop. The body carries everything you need to route them to a fix.

HTTP/1.1 403 Forbidden
X-Ryde-Request-ID: req_9f2c41ab7d0e4c58

{
  "error": {
    "code": "RYDE_ONE_REQUIRED",
    "message": "An active Ryde One membership is required to create this transaction.",
    "request_id": "req_9f2c41ab7d0e4c58",
    "details": {
      "requested_action": "food.order",
      "membership_status": "none",
      "join_url": "https://www.ryde.us.com/one"
    }
  }
}

Handle it as a product moment, not an error. The customer has just been shown a real basket and a real price; the only thing missing is the membership. Surface join_url and offer to continue afterwards.

A membership that lapses mid-transaction

A membership expiring never strands a customer. Once a ride, order, booking or task exists, reading it, tracking it, fetching its receipt and CANCELLING it all keep working regardless of membership state. Only creating something NEW is refused. Getting out of a transaction is not a privilege.

Ryde evaluates the entitlement against the clock, not a stored flag, and it fails closed. Membership status also appears as an advisory claim on the access token for your UI, but the platform never trusts that claim for the gate — it re-reads the live state on every transacting call, so a token minted a few minutes ago cannot buy a ride the membership no longer covers.