Using the Reservations API

API OAuth Reservations Slots Tables Android iOS
About this guide
This guide covers how to use ReceiptRoller's Reservations API (/api/v1/reservations). Because you can operate the same reservation engine as the web dashboard's reservation management over OAuth, you can retrieve, create, and update the status of reservations, and generate reservation slots, from a mobile app or an external reservation system.

Using the Reservations API

Required scopes

ScopePermissions granted
store.reservations.readRead reservations, reservation slots, table info, and statistics
store.reservations.writeCreate, modify, and update the status of reservations; create, generate, and delete reservation slots

Check the box in "API scopes" on the app editing screen, and include the scope in the scope parameter of the authorization URL.

Authentication

This follows the same token conventions as the other v1 APIs.

  • A token bound to a business account — call it as-is
  • A user-scoped token (for native mobile apps) — append ?organizationId= to the query

Endpoints

MethodPathDescription
GET/api/v1/reservations?storeId=List reservations (filter by status, from, to)
GET/api/v1/reservations/{reservationId}Reservation detail
POST/api/v1/reservationsCreate a reservation
PUT/api/v1/reservations/{reservationId}Update reservation details / change status
GET/api/v1/reservations/slotsList reservation slots (by default, today plus 7 days)
POST/api/v1/reservations/slotsCreate a single reservation slot
POST/api/v1/reservations/slots/generateBulk-generate reservation slots from the reservation settings
DELETE/api/v1/reservations/slots/{slotId}Delete a reservation slot
GET/api/v1/reservations/configThe store's reservation settings (slot length, acceptance window, auto-confirmation, custom fields, etc.)
GET/api/v1/reservations/tablesList the reservable seats (tables, private rooms, counters, etc.)
GET/api/v1/reservations/stats?month=Monthly reservation statistics (counts by status; today's / tomorrow's counts)

In every case, specify storeId in the query or the body.

Creating a reservation

POST /api/v1/reservations
Authorization: Bearer {token}
Content-Type: application/json

{
  "storeId": "store-001",
  "customerName": "Taro Yamada",
  "customerPhone": "090-0000-0000",
  "partySize": 4,
  "slotId": "slot-xxxx",
  "note": "Would like a window seat"
}

A reservation created via the API is recorded with bookingSource set to API (if you specify the value explicitly in the request, that value takes precedence).

Updating status

Changing status in the body of PUT /api/v1/reservations/{reservationId} runs the same status-transition processing as the web dashboard. The remaining-seat calculation for reservation slots, along with confirmation and cancellation notifications, behaves the same as operating from the dashboard.

Statuses you can specify:

  • Pending (awaiting approval)
  • Confirmed (confirmed)
  • Completed (visited)
  • Cancelled (cancelled)
  • NoShow (no-show)

Bulk-generating reservation slots

POST /api/v1/reservations/slots/generate generates reservation slots for a specified period in one operation, based on the store's reservation settings (slot length, business hours, regular closing days).

POST /api/v1/reservations/slots/generate
Authorization: Bearer {token}
Content-Type: application/json

{
  "storeId": "store-001",
  "from": "2026-06-15",
  "to": "2026-06-21",
  "perResource": true
}

Setting perResource to true generates reservation slots for each reservable seat (table, private room, counter) registered in the store layout. Use this when you accept reservations per seat.

Retrieving table (seat) information

GET /api/v1/reservations/tables?storeId= returns the reservable resources registered in the store layout.

{
  "items": [
    { "id": "table-01", "name": "Table 1", "type": "table", "typeDisplayName": "Table", "capacity": 4 },
    { "id": "room-01",  "name": "Room A",     "type": "room",  "typeDisplayName": "Private room",     "capacity": 8 }
  ]
}

The id returned here can be specified as-is in the assignedResource of a reservation slot or a reservation. Edit the seat layout itself in the layout editor of the web dashboard.

Related guides

Published: 2026-06-10 Updated: 2026-07-05
このトピックについて
開発者API
機能の詳細を見る
Tags
API (22) OAuth (15) Android (10) iOS (9) Webhook (6) Troubleshooting (5) api (5) App registration (4) POS Integration (4) Reference (4)
Related articles