Orders API - Overview

Contents

Introduction

RBI’s Orders API is designed to allow guests to place orders using RBI mobile apps. Guests use the RBI app to select a restaurant, add items to cart and pay for the order, and the RBI platform communicates with the restaurant’s POS system throughout the journey.

The high-level guest actions are mapped in the table below:

Guest Action

POS Action

Document

Guest Action

POS Action

Document

Guest select restaurants

  • Share store availability.

[Link to Restaurants]

Guest navigates through menu

  • Provide updated pricing & availability per store.

Orders API - Menu Management

Guest goes to checkout

  • Calculate order price.

Order API - Checkout | Price webhook and endpoint

Guest pays for the order

  • By default, no action needed.

[link to payments]

Order is placed

  • Commit order to the POS.

  • Provide order statuses.

Order API - Checkout | Commit webhook and endpoint

Guest / Driver collects the order

  • Fire the order to the kitchen.

Order API - Checkout | Fire webhook & endpoint

How do you interact with the API?

Our ordering API uses endpoints and webhooks, which follow this principle:

  • We broadcast all changes that impact orders via our webhooks.

  • We make available all information on orders via our endpoints.

  • Some webhooks require actions to be performed by the POS via our endpoints.

 

Calculate basket price

Direct integration

When a guest loads the checkout page, the RBI mobile app communicates with the RBI platform to request the basket price by indicating the full basket contents. In turn, the RBI platform sends the full basket contents to the POS using the Price Order Webhook.

The POS must have previously developed the ability to accept calls from the Price Order Webhook, and respond with a call to the Price Webhook Callback (using the callbackUrl parameter sent with the original request).

 

With a translation service

Calls to the Price Order Webhook send the full basket contents under the cart request parameter. This parameter has a standard format, which must be translated to the format that each POS expects to receive. Typically this is accomplished with a service such as Khumbu. In case a translation service is used, communication between systems happens as follows:

Place order

Work in progress