Revel Systems website screenshot

Revel Systems

Revel Systems is a cloud iPad-based POS for restaurants and retailers. The Revel Open API exposes products, orders, customers, employees, inventory, schedules, and reporting via a REST interface for partner integrations. The API follows Django Tastypie conventions (objects/meta list envelope, field-lookup filtering) and is complemented by an HMAC-signed webhook channel.

2 APIs 5 Features
POSRestaurantRetailiPad

APIs

Revel Open API

REST API for the Revel POS platform. Exposes products, orders, order items, customers, establishments, employees, schedules, inventory, and reports. Authenticated via API key/se...

Revel Webhooks

Event-driven webhook channel that delivers POS events (order finalized, customer created/updated, stock changes, menu updates, timesheet changes, integration changes, reward car...

Collections

Pricing Plans

Rate Limits

Revel Systems Rate Limits

2 limits

RATE LIMITS

FinOps

Features

Tastypie REST Conventions

List endpoints return an objects array with a meta pagination envelope (total_count, limit, offset, next, previous).

Field-Lookup Filtering

Filter resources with Django-style lookups (e.g. id__lt, created_date__range, name__icontains).

Field Selection and Expansion

Use the fields parameter to limit returned attributes and expand to inline one level of foreign-key relationships.

Batch Retrieval

Retrieve multiple records by ID in a single call using the set/id1;id2;id3 path form.

Signed Webhooks

Real-time event delivery secured with HMAC-SHA1 signatures and per-event-type endpoint registration.

Use Cases

Order Synchronization

Sync finalized orders into accounting, ERP, or analytics systems via the Order resource and order.finalized webhook.

Catalog Management

Create and maintain products, modifiers, and combo sets across establishments.

Customer and Loyalty

Sync customer profiles and loyalty/reward data with marketing and CRM platforms.

Labor and Scheduling

Read and write employee shifts and timesheets via TimeSchedule, TimeScheduleRule, and TimeSheetEntry.

Inventory Monitoring

React to stock-status changes in real time via the inout.stock webhook.

Integrations

Accounting and ERP

Push order and sales data into accounting and ERP systems.

Payments

Establishment-level payment configuration including ACH for US establishments.

Marketing and CRM

Sync customer and loyalty data with marketing platforms.

Event Specifications

Revel Webhooks

Revel Systems delivers event notifications to partner-registered HTTPS endpoints via webhooks. Each event type is delivered by HTTP POST with a JSON body. Requests carry an HMAC...

ASYNCAPI

Semantic Vocabularies

Revel Open Api Context

10 classes · 50 properties

JSON-LD

Revel Webhooks Context

8 classes · 12 properties

JSON-LD

API Governance Rules

Revel Systems API Rules

34 rules · 8 errors 18 warnings 8 info

SPECTRAL

JSON Structure

Revel Open Api Customer List Structure

2 properties

JSON STRUCTURE

Revel Open Api Customer Structure

13 properties

JSON STRUCTURE

Revel Open Api Establishment List Structure

2 properties

JSON STRUCTURE

Revel Open Api Establishment Structure

7 properties

JSON STRUCTURE

Revel Open Api Order List Structure

2 properties

JSON STRUCTURE

Revel Open Api Order Structure

22 properties

JSON STRUCTURE

Revel Open Api Product List Structure

2 properties

JSON STRUCTURE

Revel Open Api Product Structure

19 properties

JSON STRUCTURE

Revel Open Api Time Schedule List Structure

2 properties

JSON STRUCTURE

Revel Open Api Time Schedule Structure

10 properties

JSON STRUCTURE

Revel Webhooks Menu Updated Payload Structure

1 properties

JSON STRUCTURE

Revel Webhooks Ping Payload Structure

1 properties

JSON STRUCTURE

Revel Webhooks Stock Status Payload Structure

4 properties

JSON STRUCTURE

Example Payloads

Revel Open Api Order Example

22 fields

EXAMPLE

Revel Open Api Product Example

19 fields

EXAMPLE

Resources

👥
GitHubOrganization
GitHubOrganization
🔗
LinkedIn
LinkedIn
🔗
Website
Website
🔗
Developer
Developer
💬
FAQ
FAQ
🔗
SpectralRules
SpectralRules
🔗
Vocabulary
Vocabulary
🔗
Plans
Plans
🔗
RateLimits
RateLimits
🔗
FinOps
FinOps

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Revel Open API
  version: 2025.3.0
request:
  auth:
    type: apikey
    key: API-AUTHENTICATION
    value: '{{API-AUTHENTICATION}}'
    placement: header
items:
- info:
    name: Orders
    type: folder
  items:
  - info:
      name: Get Orders
      type: http
    http:
      method: GET
      url: https://{subdomain}.revelup.com/resources/Order/
      params:
      - name: limit
        value: ''
        type: query
        description: Maximum number of objects to return per page. Use `0` to disable pagination.
      - name: offset
        value: ''
        type: query
        description: Zero-based offset of the first object to return.
      - name: fields
        value: ''
        type: query
        description: Comma-separated list of direct resource attributes to return (e.g. `id,name,price`).
      - name: order_by
        value: updated_date
        type: query
        description: Field to sort by. Prefix with `-` for descending.
      - name: id
        value: '1'
        type: query
      - name: uuid
        value: a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d
        type: query
      - name: establishment
        value: '1'
        type: query
      - name: customer
        value: '1'
        type: query
      - name: closed
        value: 'true'
        type: query
      - name: web_order
        value: 'true'
        type: query
      - name: created_date
        value: '2026-06-01T12:00:00Z'
        type: query
      - name: updated_date
        value: '2026-06-01T12:00:00Z'
        type: query
    docs: Returns the list of Order objects. Supports Tastypie field-lookup filtering, field selection, ordering, and offset
      pagination.
  - info:
      name: Create Order
      type: http
    http:
      method: POST
      url: https://{subdomain}.revelup.com/resources/Order/
      body:
        type: json
        data: '{}'
    docs: Creates a new Order object.
  - info:
      name: Get Order
      type: http
    http:
      method: GET
      url: https://{subdomain}.revelup.com/resources/Order/:id/
      params:
      - name: id
        value: ''
        type: path
        description: Numeric resource identifier.
      - name: fields
        value: ''
        type: query
        description: Comma-separated list of direct resource attributes to return (e.g. `id,name,price`).
    docs: Returns a single Order object by its numeric id.
  - info:
      name: Update Order
      type: http
    http:
      method: PATCH
      url: https://{subdomain}.revelup.com/resources/Order/:id/
      params:
      - name: id
        value: ''
        type: path
        description: Numeric resource identifier.
      body:
        type: json
        data: '{}'
    docs: Partially updates an existing Order object.
- info:
    name: Products
    type: folder
  items:
  - info:
      name: Get Products
      type: http
    http:
      method: GET
      url: https://{subdomain}.revelup.com/resources/Product/
      params:
      - name: limit
        value: ''
        type: query
        description: Maximum number of objects to return per page. Use `0` to disable pagination.
      - name: offset
        value: ''
        type: query
        description: Zero-based offset of the first object to return.
      - name: fields
        value: ''
        type: query
        description: Comma-separated list of direct resource attributes to return (e.g. `id,name,price`).
      - name: order_by
        value: sorting
        type: query
      - name: name
        value: Cappuccino
        type: query
      - name: barcode
        value: 0123456789012
        type: query
      - name: sku
        value: CAP-001
        type: query
      - name: category
        value: '1'
        type: query
      - name: active
        value: 'true'
        type: query
      - name: establishment
        value: '1'
        type: query
      - name: display_online
        value: 'true'
        type: query
    docs: Returns the list of Product objects. Supports Tastypie field-lookup filtering, field selection, ordering, and offset
      pagination.
  - info:
      name: Create Product
      type: http
    http:
      method: POST
      url: https://{subdomain}.revelup.com/resources/Product/
      body:
        type: json
        data: '{}'
    docs: Creates a new Product object.
  - info:
      name: Get Product
      type: http
    http:
      method: GET
      url: https://{subdomain}.revelup.com/resources/Product/:id/
      params:
      - name: id
        value: ''
        type: path
        description: Numeric resource identifier.
      - name: fields
        value: ''
        type: query
        description: Comma-separated list of direct resource attributes to return (e.g. `id,name,price`).
    docs: Returns a single Product object by its numeric id.
- info:
    name: Customers
    type: folder
  items:
  - info:
      name: Get Customers
      type: http
    http:
      method: GET
      url: https://{subdomain}.revelup.com/resources/Customer/
      params:
      - name: limit
        value: ''
        type: query
        description: Maximum number of objects to return per page. Use `0` to disable pagination.
      - name: offset
        value: ''
        type: query
        description: Zero-based offset of the first object to return.
      - name: fields
        value: ''
        type: query
        description: Comma-separated list of direct resource attributes to return (e.g. `id,name,price`).
      - name: order_by
        value: example
        type: query
      - name: first_name
        value: Jane
        type: query
      - name: last_name
        value: Doe
        type: query
      - name: email
        value: customer@example.com
        type: query
      - name: phone_number
        value: '+15551234567'
        type: query
      - name: active
        value: 'true'
        type: query
      - name: ref_number
        value: REF-1001
        type: query
      - name: created_date
        value: '2026-06-01T12:00:00Z'
        type: query
      - name: updated_date
        value: '2026-06-01T12:00:00Z'
        type: query
    docs: Returns the list of Customer objects. Supports Tastypie field-lookup filtering, field selection, ordering, and offset
      pagination.
  - info:
      name: Create Customer
      type: http
    http:
      method: POST
      url: https://{subdomain}.revelup.com/resources/Customer/
      body:
        type: json
        data: '{}'
    docs: Creates a new Customer object.
  - info:
      name: Get Customer
      type: http
    http:
      method: GET
      url: https://{subdomain}.revelup.com/resources/Customer/:id/
      params:
      - name: id
        value: ''
        type: path
        description: Numeric resource identifier.
      - name: fields
        value: ''
        type: query
        description: Comma-separated list of direct resource attributes to return (e.g. `id,name,price`).
    docs: Returns a single Customer object by its numeric id.
- info:
    name: Establishments
    type: folder
  items:
  - info:
      name: Get Establishments
      type: http
    http:
      method: GET
      url: https://{subdomain}.revelup.com/resources/Establishment/
      params:
      - name: limit
        value: ''
        type: query
        description: Maximum number of objects to return per page. Use `0` to disable pagination.
      - name: offset
        value: ''
        type: query
        description: Zero-based offset of the first object to return.
      - name: fields
        value: ''
        type: query
        description: Comma-separated list of direct resource attributes to return (e.g. `id,name,price`).
    docs: Returns the list of Establishment (location) objects.
- info:
    name: Scheduling
    type: folder
  items:
  - info:
      name: Get Time Schedules
      type: http
    http:
      method: GET
      url: https://{subdomain}.revelup.com/resources/TimeSchedule/
      params:
      - name: limit
        value: ''
        type: query
        description: Maximum number of objects to return per page. Use `0` to disable pagination.
      - name: offset
        value: ''
        type: query
        description: Zero-based offset of the first object to return.
      - name: fields
        value: ''
        type: query
        description: Comma-separated list of direct resource attributes to return (e.g. `id,name,price`).
      - name: establishment
        value: '1'
        type: query
    docs: Returns the list of TimeSchedule objects representing scheduled employee shifts within an establishment.
  - info:
      name: Create Time Schedule
      type: http
    http:
      method: POST
      url: https://{subdomain}.revelup.com/resources/TimeSchedule/
      body:
        type: json
        data: '{}'
    docs: Creates a new TimeSchedule (employee shift) object.
bundled: true