---
title: "Update a reservation's details"
method: PUT
path: "/api/v1/restaurants/{restaurant_id}/reservations/{reservation_id}"
tags: ["Reservation"]
---

# Update a reservation's details

`PUT /api/v1/restaurants/{restaurant_id}/reservations/{reservation_id}`

## Request

- Base URL: `https://gotable.app`
- URL: `https://gotable.app/api/v1/restaurants/{restaurant_id}/reservations/{reservation_id}`
- Auth: HTTP bearer

## Path parameters

- `restaurant_id` integer, required
- `reservation_id` integer, required

## Request body

- object
  - `date` string, date, nullable: Required for reservations without a type or "Reservation" type. Can be omitted for "WalkIn" reservations.
  - `time` string, nullable: Time (HH:MM) of reservation. Required for reservations without a type or "Reservation" type.
  - `party_size` integer: Number of guests in the party.
  - `guest_name` string, nullable: Primary guest's name
  - `guest_email` string, nullable: Primary guest's email address
  - `guest_telephone` string, nullable: Primary guest's telephone
  - `comments` string, nullable: Primary guest's comments for the reservation.
  - `duration_in_minutes` integer, nullable: The duration of the reservation in minutes
  - `table_ids` integer[], nullable: IDs of tables to assign to this reservation. Any ID that doesn't belong to this restaurant is silently dropped.
  - `table_lock` boolean, nullable: Set to true to pin the assigned tables and prevent auto-reassignment.

## Response `200`

With a valid API token

- Reservation
  - `id` integer: The unique ID of the reservation
  - `offer_id` integer, nullable: The unique ID of the offer this reservation is booked under
  - `restaurant_id` integer: The unique ID of the restaurant
  - `created_at` string, datetime: The datetime the reservation was created
  - `updated_at` string, datetime: The datetime the reservation was last updated
  - `date` string, date: Reservation date (YYYY-MM-DD)
  - `time` string: Reservation time (HH:MM)
  - `duration_in_minutes` integer: The duration of the reservation in minutes
  - `starts_at` string, datetime: The datetime of the start of the reservation in ISO 8601 format
  - `ends_at` string, datetime: The datetime of the end of the reservation in ISO 8601 format
  - `party_size` integer: Number of guests in the party
  - `state` 'pending' | 'rejecting' | 'rejected' | 'confirmed' | 'checked_in' | 'checked_out' | 'cancelling' | 'cancelled' | 'expired' | 'pushed' | 'reconfirmed' | 'skipped': Current status of the reservation
  - `guest_name` string, nullable: Primary guest's name
  - `guest_email` string, nullable: Primary guest's email address
  - `guest_telephone` string, nullable: Primary guest's telephone
  - `comments` string, nullable: Primary guest's comments for the reservation.
  - `tags` string[]: An array of tags for the reservation.
  - `invited_guests` InvitedGuest[]: An array of invited guests belonging to this reservation
    - `primary` boolean: Whether or not this is the owner of the reservation
    - `guest_id` integer, nullable: The unique ID of the guest if a guest profile exists
    - `name` string, nullable: Invited guest's name
    - `email` string, nullable: Invited guest's email address
    - `access_token` string, nullable: Access token used by invited guest to authorize access to the reservation
    - `links` Link[]: An array of links useful for this reservation
      - `href` string: The URL to the related resource.
      - `method` 'GET' | 'POST' | 'PUT' | 'DELETE': The HTTP method that should be used to follow the link.
      - `rel` string: The relationship of this link to the current resource.
  - `tables` TablePreview[]: An array of tables assigned to this reservation
    - `id` integer: The unique ID of the table
    - `label` string: Indentifying human readable table name
    - `section` string, nullable: Restaurant section, room or group this table belongs to
  - `table_ids` integer[]: An array of table IDs of the tables assigned to this reservation.
  - `table_lock` boolean: A boolean that determines if tables for this reservation will be pinned. When set to true, tables will not be assigned or reassigned by the auto-allocation system.
  - `payment` Payment
    - `amount` object
      - `cents` integer: Amount in cents
      - `currency_iso` string: Currencycode for payment as defined in ISO 4217
    - `provider` string: Payment provider identifier
    - `state` string: Current status of the payment
  - `notes` NotePreview[]: An array of notes attached to this reservation
    - `id` integer: The unique ID of the note
    - `author_id` integer: The unique Account ID of the author of the note
    - `author_name` string: The name of the author of the note
    - `content` string: The HTML content of the note
  - `links` Link[]: An array of links useful for this reservation
    - `href` string: The URL to the related resource.
    - `method` 'GET' | 'POST' | 'PUT' | 'DELETE': The HTTP method that should be used to follow the link.
    - `rel` string: The relationship of this link to the current resource.

## Other responses

- `401`: With an invalid API token
- `403`: With an unauthorized API token
- `404`: With a non-existant Reservation ID
- `422`: With invalid data

---

[API](https://skmtc.dev/gotable/apis/gotable-api-v1.md) · [All operations](https://skmtc.dev/gotable/apis/gotable-api-v1/llms.txt) · [OpenAPI document](https://skmtc.dev/gotable/apis/gotable-api-v1/revisions/abe658488f5b?raw)
