NAV Navbar
API/V1/PRODUCTION

Introduction

This API contains CheckandPlace data.

Authentication

To use the API, a property extension must be created from within the CheckandPlace. The Authorization, EMPLOYEE_TOKEN, STORE_PIN_CODE in the extension settings is expected to be added as token in the API requests headers. All endpoints need Authorization EMPLOYEE_TOKEN STORE_PIN_CODE in headers.

Request Header Information

"Authorization": "Token token"
"EMPLOYEE_TOKEN": "a1n2i3l4i5y6"
"STORE_PIN_CODE": "a1n2i3l4i5y6"
"APP_TYPE": "android"
"APP_VERSION": "1.0.0"
"Accept-Language": "en", "tr"

Response Header Information

"MAJOR_VERSION_UPDATE": "true"
"MINOR_VERSION_UPDATE": "false"

Environments

Environment Documentation URL
Production https://protelas.gitlab.io/protein/checkandplace/checkandplace-apidoc/api/outer/
Uat https://protelas.gitlab.io/protein/checkandplace/checkandplace-apidoc/api/outer/uat/
Qa https://protelas.gitlab.io/protein/checkandplace/checkandplace-apidoc/api/outer/qa/
Environment Documentation URL
Production https://protelas.gitlab.io/protein/checkandplace/checkandplace-apidoc/api/v1/
Uat https://protelas.gitlab.io/protein/checkandplace/checkandplace-apidoc/api/v1/uat/
Qa https://protelas.gitlab.io/protein/checkandplace/checkandplace-apidoc/api/v1/qa/
Environment Documentation URL
Production https://protelas.gitlab.io/protein/checkandplace/checkandplace-apidoc/api/v2/
Uat https://protelas.gitlab.io/protein/checkandplace/checkandplace-apidoc/api/v2/uat/
Qa https://protelas.gitlab.io/protein/checkandplace/checkandplace-apidoc/api/v2/qa/
Environment Documentation URL
Production https://protelas.gitlab.io/protein/checkandplace/checkandplace-apidoc/api/public/
Uat https://protelas.gitlab.io/protein/checkandplace/checkandplace-apidoc/api/public/uat/
Qa https://protelas.gitlab.io/protein/checkandplace/checkandplace-apidoc/api/public/qa/

For example returns menu items request on production environment:

HEADERS Authorization: Token token EMPLOYEE_TOKEN: employee_token STORE_PIN_CODE: pin_code

Anonym Customers

Create Anonym Customer

HTTP Request

POST /api/v1/customers/anonym

Body Parameters

Parameter Default Description Required
nickname String
note String

JSON response body:

{
  "customer": {
    "id": "c91cdaff-5805-451d-83f0-56d3542e6e5a",
    "first_name": "İsimsiz",
    "last_name": "Müşteri 1",
    "name": "İsimsiz Müşteri 1",
    "country_code": null,
    "primary_phone_number": null,
    "small_image_url": null,
    "medium_image_url": null,
    "large_image_url": null,
    "type_id": null,
    "type_name": null,
    "is_default_type": false,
    "is_anonym": true,
    "email": null,
    "blacklist": false,
    "gender": "unknown",
    "gender_as_integer": 0,
    "country": "",
    "nickname": null,
    "allow_sms": true,
    "allow_email": null,
    "note": null
  }
}

Update Anonym Customer

HTTP Request

PATCH /api/v1/customers/:id/nickname

Body Parameters

Parameter Default Description Required
nickname String
note String

JSON response body:

{
  "customer": {
    "id": "c91cdaff-5805-451d-83f0-56d3542e6e5a",
    "first_name": "İsimsiz",
    "last_name": "Müşteri 1",
    "name": "İsimsiz Müşteri 1",
    "country_code": null,
    "primary_phone_number": null,
    "small_image_url": null,
    "medium_image_url": null,
    "large_image_url": null,
    "type_id": null,
    "type_name": null,
    "is_default_type": false,
    "is_anonym": true,
    "email": null,
    "blacklist": false,
    "gender": "unknown",
    "gender_as_integer": 0,
    "country": "",
    "nickname": null,
    "allow_sms": true,
    "allow_email": null,
    "note": null
  }
}

Base

Health Check

HTTP Request

POST api/v1/health-check

JSON response body:


  HTTP/1.1 200 OK

Calendar

Calendar

HTTP Request

GET /api/v1/calendar

Query Parameters

Parameter Default Description Required
revenue_center_id String REQUIRED
start_date String
end_date String

JSON response body:

{
  "off_days": [
    {
      "id": "165f9693-2079-4e6a-86ec-56b17cf58fda",
      "date": "2022-06-07",
      "note": "Kapatıyoruz! 1",
    },
   {
     "id": "baf1b7c1-09a3-4da1-badb-16c7ffaac8b2",
      "date": "2022-06-08",
      "note": "Kapatıyoruz! 2",
    },
   {
     "id": "55523a74-5593-4e47-8572-4791ef575b29",
      "date": "2022-06-09",
      "note": "Kapatıyoruz! 3",
    }
  ],
    "daily_notes": [
    {
      "id": "165f9693-2079-4e6a-86ec-56b17cf58fda",
      "date": "2022-06-07",
      "note": "Günlük Not 1",
    },
   {
     "id": "baf1b7c1-09a3-4da1-badb-16c7ffaac8b2",
      "date": "2022-06-08",
      "note": "Günlük Not 2",
    },
   {
     "id": "55523a74-5593-4e47-8572-4791ef575b29",
      "date": "2022-06-09",
      "note": "Günlük Not 3",
    }
  ]
}

Checks

Hooks

HTTP Request

POST api/v1/checks/hook

JSON request body:

{
  "check_num": 11,
  "check_seq": 12,
  "total": 10,
  "svc_total": 5,
  "cover_count": 3,
  "employee_seq": 25,
  "check_open_time": null,
  "has_product_on_check": null,
  "check_modify_time": null,
  "details": [
    {
      "detail_type": 1,
      "line_item_id": 5,
      "seq": 10,
      "name": "Water",
      "total": 10,
      "object_num": 20,
      "quantity": 1,
      "tax_rate": 18,
      "is_condiment": false,
      "is_combo": false,
      "discount": 0,
      "line_combo_item_id": null,
    },
    {
      "detail_type": 3,
      "line_item_id": 5,
      "name": "Credit Card",
      "total": 10,
      "discount": 0,
    }
  ]
}

JSON response body:


  HTTP/1.1 200 OK

Customer Payments

Create Customer Payment

HTTP Request

POST /api/v1/customers/payment

Body Parameters

Parameter Default Description Required
customer_id String REQUIRED
calendar_id String REQUIRED
charge Decimal REQUIRED

JSON response body:

{
  "sum_of_payments": 10.0
}

Customer Types

Index Customer Types

HTTP Request

GET /api/v1/customer_types

JSON response body:

[
  {
    "id": "8bbeec74-b2bf-48cd-aec1-ac85157752a7",
    "name": "standard",
    "default": true,
    "color": "#000000",
    "priority": 99,
    "organization_id": "3d2c294d-e999-4326-9e25-31869c0164a9"
  }
]

Customers

Index Customers

HTTP Request

GET /api/v1/customers/list

Description

Query Parameters

Parameter Default Description Required
query String name, phone and email
note String
allow_sms Boolean
allow_email Boolean
blacklist Boolean
is_active Boolean
genders []String male, female and unknown
countries []String Example: 'TR', 'US'
create_start_date String Example: 2023/05/20
create_end_date String Example: 2023/05/20
update_start_date String Example: 2023/05/20
update_end_date String Example: 2023/05/20
customer_type_ids [uuid]String
tag_ids [uuid]String
columns []String
emails []String
export_to_mail Boolean
order_by search_keyword String
order_direction asc String
page 1 Number
per_page 50 Number

JSON response body:

{
  "customers": [
    {
      "id": "844f5b3d-9075-45d8-aead-a58f274fe190",
      "first_name": "Alican Naim",
      "last_name": "Gelal",
      "name": "Alican Naim Gelal",
      "country_code": null,
      "primary_phone_number": "7683803579",
      "small_image_url": null,
      "medium_image_url": null,
      "large_image_url": null,
      "type_id": "0dba1599-2f5f-43ea-bd04-52735e70cf1a",
      "type_name": "standard",
      "is_default_type": true,
      "is_anonym": false,
      "email": null,
      "blacklist": false,
      "gender": "male",
      "gender_as_integer": 1,
      "country": "tr",
      "nickname": null,
      "allow_sms": true,
      "allow_email": false,
      "is_active": true,
      "note": null,
      "created_at": "01.01.2020 12:00",
      "updated_at": "01.01.2020 12:00",
      "tags": [],
      "summary_reports": {
        "total_reservation_count": 0,
        "sum_of_payments": 0,
        "total_no_show_count": 0,
        "total_cancel_count": 0,
        "last_visited_at": null,
        "last_visited_revenue_center": null,
        "last_visited_spend": 0
      }
    }
  ],
  "page_information": {
    "has_next_page": false,
    "current_page": 1,
    "total_count": 1,
    "page_count": 1
  }
}

Show Customer

HTTP Request

GET /api/v1/customers/:id

JSON response body:

{
  "id": "3bdd8b4b-4ce8-4078-8ad4-6dc4bc36a084",
  "first_name": "Alican Naim",
  "last_name": "Gelal",
  "name": "Alican Naim Gelal",
  "country_code": null,
  "primary_phone_number": "2819547476",
  "small_image_url": null,
  "medium_image_url": null,
  "large_image_url": null,
  "type_id": "7eca1e94-9c43-40a8-a955-0e7c879f52ab",
  "type_name": "standard",
  "is_default_type": true,
  "is_anonym": false,
  "email": null,
  "blacklist": false,
  "gender": "male",
  "gender_as_integer": 1,
  "country": "tr",
  "nickname": null,
  "allow_sms": true,
  "allow_email": null,
  "is_active": true,
  "note": null,
  "summary": {
    "average_spend": 10,
    "sum_of_payments": 10,
    "last_visited_at": "2022-01-10T15:09:42+03:00",
    "last_visited_table": null,
    "last_visited_revenue_center": "Bahçe",
    "last_visited_spend": 10,
    "last_reservation_source": null,
    "past_reservations_count": 1,
    "future_reservations_count": 0,
    "total_reservations_count": 1,
    "reservations_count": 1,
    "total_no_show_count": 0,
    "total_cancel_count": 0
  },
  "phone_numbers": []
}

Customer History

HTTP Request

GET /api/v1/customers/:id/history

JSON response body:

[
  {
    "whodunnit":"Atakandunnit",
    "event":"create",
    "type":"customer",
    "customer_id":"88e1d31e-9bec-402d-a810-8ec37ccb8fda",
    "at":"2023-06-05T16:23:09.619+03:00"
  },
  {
    "whodunnit":"Atakandunnit",
    "event":"update",
    "type":"customer",
    "at":"2023-06-05T16:23:09.681+03:00",
    "field":"first_name",
    "from":"Atakan",
    "to":"Yunus"
  }
]

Create Customer

HTTP Request

POST /api/v1/customers

Body Parameters

Parameter Default Description Required
first_name String REQUIRED
last_name String REQUIRED
name String REQUIRED
primary_phone_number String REQUIRED
email String
gender String
country String
customer_type_id String
note String
blacklist false Boolean
allow_sms true Boolean
allow_email true Boolean
image File
tag_ids Array(String)

JSON response body:

{
  "customer": {
    "id": "ddcdef93-99a6-4d55-898d-378755fdbc0c",
    "first_name": "Alvina",
    "last_name": "Koss",
    "name": "Alvina Koss",
    "country_code": null,
    "primary_phone_number": "7162580116",
    "small_image_url": null,
    "medium_image_url": null,
    "large_image_url": null,
    "type_id": "b7cd6ee9-aa4b-4f2f-8ed9-e672ef92a6fa",
    "type_name": "vip",
    "is_default_type": false,
    "is_anonym": false,
    "email": "lucas_beahan@rosenbaum.org",
    "blacklist": false,
    "gender": "male",
    "gender_as_integer": 1,
    "country": "tr",
    "nickname": null,
    "allow_sms": true,
    "allow_email": true,
    "is_active": true,
    "note": "Julio Cummings",
    "phone_numbers": [],
    "tags": [
      {
        "id":"27856a73-7a03-4b33-af79-6bbfa96eaea4",
        "name_tr":"Gizli",
        "name_en":"Secret",
        "type":"customer",
        "icon_type":"individual"
      },
      {
        "id":"27856a73-7a03-4b33-af79-6bbfa96eaea4",
        "name_tr":"Gizli",
        "name_en":"Secret",
        "type":"customer",
        "icon_type":"preference"
      },
      {
        "id":"27856a73-7a03-4b33-af79-6bbfa96eaea4",
        "name_tr":"Gizli",
        "name_en":"Secret",
        "type":"customer",
        "icon_type":"allergen"
      }
    ],
  }
}

Update Customer

HTTP Request

PATCH /api/v1/customers/:id

Body Parameters

Parameter Default Description Required
first_name String REQUIRED
last_name String REQUIRED
name String REQUIRED
primary_phone_number String REQUIRED
email String
gender String
country String
customer_type_id String
note String
is_anonym false Boolean
blacklist false Boolean
allow_sms true Boolean
allow_email true Boolean
is_active Boolean
image File
tag_ids Array(String)

JSON response body:

{
  "customer": {
    "id": "3bdd8b4b-4ce8-4078-8ad4-6dc4bc36a084",
    "first_name": "Alican Naim",
    "last_name": "Gelal",
    "name": "Alican Naim Gelal",
    "country_code": null,
    "primary_phone_number": "2819547476",
    "small_image_url": null,
    "medium_image_url": null,
    "large_image_url": null,
    "type_id": "7eca1e94-9c43-40a8-a955-0e7c879f52ab",
    "type_name": "standard",
    "is_default_type": true,
    "is_anonym": false,
    "email": null,
    "blacklist": false,
    "gender": "male",
    "gender_as_integer": 1,
    "country": "tr",
    "nickname": null,
    "allow_sms": true,
    "allow_email": null,
    "is_active": true,
    "note": null,
    "summary": {
      "average_spend": 10,
      "sum_of_payments": 10,
      "last_visited_at": "2022-01-10T15:09:42+03:00",
      "last_visited_table": null,
      "last_visited_revenue_center": "Bahçe",
      "last_visited_spend": 10,
      "last_reservation_source": null,
      "past_reservations_count": 1,
      "future_reservations_count": 0,
      "total_reservations_count": 1,
      "reservations_count": 1,
      "total_no_show_count": 0,
      "total_cancel_count": 0
    },
    "phone_numbers": [],
    "tags": [
        {
          "id":"27856a73-7a03-4b33-af79-6bbfa96eaea4",
          "name_tr":"Gizli",
          "name_en":"Secret",
          "type":"customer",
          "icon_type":"individual"
        },
        {
          "id":"27856a73-7a03-4b33-af79-6bbfa96eaea4",
          "name_tr":"Gizli",
          "name_en":"Secret",
          "type":"customer",
          "icon_type":"preference"
        },
        {
          "id":"27856a73-7a03-4b33-af79-6bbfa96eaea4",
          "name_tr":"Gizli",
          "name_en":"Secret",
          "type":"customer",
          "icon_type":"allergen"
        }
    ],
  }
}

Search Customers

HTTP Request

GET /api/v1/customers/search?query=Christoper

Query Parameters

Parameter Default Description Required
query String name, phone and email REQUIRED

JSON response body:

[
  {
    "id": "3bdd8b4b-4ce8-4078-8ad4-6dc4bc36a084",
    "first_name": "Alican Naim",
    "last_name": "Gelal",
    "name": "Alican Naim Gelal",
    "country_code": null,
    "primary_phone_number": "2819547476",
    "small_image_url": null,
    "medium_image_url": null,
    "large_image_url": null,
    "type_id": "7eca1e94-9c43-40a8-a955-0e7c879f52ab",
    "type_name": "standard",
    "is_default_type": true,
    "is_anonym": false,
    "email": null,
    "blacklist": false,
    "gender": "male",
    "gender_as_integer": 1,
    "country": "tr",
    "nickname": null,
    "allow_sms": true,
    "allow_email": null,
    "is_active": true,
    "note": null,
    "summary": {
      "average_spend": 10,
      "sum_of_payments": 10,
      "last_visited_at": "2022-01-10T15:09:42+03:00",
      "last_visited_table": null,
      "last_visited_revenue_center": "Bahçe",
      "last_visited_spend": 10,
      "last_reservation_source": null,
      "past_reservations_count": 1,
      "future_reservations_count": 0,
      "total_reservations_count": 1,
      "reservations_count": 1,
      "total_no_show_count": 0,
      "total_cancel_count": 0
    },
    "phone_numbers": []
  }
]

Reports Customer

HTTP Request

GET /api/v1/customers/:id/reports

JSON response body:

{
  "customer": {
    "id": "63a678d7-1138-46eb-9ad3-41877c3d304f",
    "first_name": "Alican Naim",
    "last_name": "Gelal",
    "name": "Alican Naim Gelal",
    "country_code": "36",
    "primary_phone_number": "3619681328",
    "small_image_url": null,
    "medium_image_url": null,
    "large_image_url": null,
    "type_id": "e10703e0-8ad0-464d-b9f6-93482371b791",
    "type_name": "standard",
    "is_default_type": true,
    "is_anonym": false,
    "email": null,
    "blacklist": false,
    "gender": "male",
    "gender_as_integer": 1,
    "country": "tr",
    "nickname": null,
    "allow_sms": true,
    "allow_email": null,
    "is_active": true,
    "note": null,
    "reports": {
      "average_spend": 60,
      "sum_of_payments": 666,
      "last_visited_at": "2022-01-03T15:23:30+03:00",
      "last_visited_table": "111",
      "last_visited_revenue_center": "RVC",
      "last_visited_spend": 90,
      "last_reservation_source": "Brynn Rippin",
      "past_reservations_count": 10,
      "future_reservations_count": 2,
      "total_reservations_count": 12,
      "reservations_count": 12,
      "total_no_show_count": 0,
      "total_cancel_count": 1
    },
    "phone_numbers": [
      {
        "id": "06ea53df-c736-4f0c-888c-34ea93b67b57",
        "phone_number": "3619681328",
        "country_code": "36",
        "is_primary": true
      }
    ],
    "tags": []
  }
}

Destroy Customer

HTTP Request

DELETE /api/v1/customers/:id

JSON response body:


  HTTP/1.1 200 OK

In Blacklist

HTTP Request

PATCH /api/v1/customers/:id/in-blacklist

JSON response body:

{
  "customer": {
    "id": "91651814-ca46-48c7-afb0-98708f1830ef",
    "first_name": "Alican Naim",
    "last_name": "Gelal",
    "name": "Alican Naim Gelal",
    "country_code": null,
    "primary_phone_number": "3487749096",
    "small_image_url": null,
    "medium_image_url": null,
    "large_image_url": null,
    "type_id": "49f813a4-252e-4563-8a9c-dc8d65745f62",
    "type_name": "standard",
    "is_default_type": true,
    "is_anonym": false,
    "email": null,
    "blacklist": true,
    "gender": "male",
    "gender_as_integer": 1,
    "country": "tr",
    "nickname": null,
    "allow_sms": true,
    "allow_email": null,
    "is_active": true,
    "note": null,
    "phone_numbers": [
      {
        "id": "00a1433e-04a9-4855-b6b8-7358e8b105ec",
        "phone_number": "3487749096",
        "country_code": null,
        "is_primary": true
      }
    ]
  }
}

Out Blacklist

HTTP Request

PATCH /api/v1/customers/:id/out-blacklist

JSON response body:

{
  "customer": {
    "id": "d534289b-d430-4bf7-97b1-394cb49bbd50",
    "first_name": "Alican Naim",
    "last_name": "Gelal",
    "name": "Alican Naim Gelal",
    "country_code": null,
    "primary_phone_number": "7327762896",
    "small_image_url": null,
    "medium_image_url": null,
    "large_image_url": null,
    "type_id": "781db06d-066d-45b3-a311-9214cda69eb6",
    "type_name": "standard",
    "is_default_type": true,
    "is_anonym": false,
    "email": null,
    "blacklist": false,
    "gender": "male",
    "gender_as_integer": 1,
    "country": "tr",
    "nickname": null,
    "allow_sms": true,
    "allow_email": null,
    "is_active": true,
    "note": null,
    "phone_numbers": [
      {
        "id": "f5a03d05-5982-4498-aabb-62afe02b97b2",
        "phone_number": "7327762896",
        "country_code": null,
        "is_primary": true
      }
    ]
  }
}

Reservations Customer

HTTP Request

POST /api/v1/customers/:id/reservations

Body Parameters

Parameter Default Description Required
type String
start_date String
end_date String

JSON response body:

{
  "reservations": [
    {
      "id": "00143a2a-c0ca-4918-850f-5bd9b53f249e",
      "type": "reservation",
      "status": "init",
      "guest_count": 5,
      "child_cover": 0,
      "male_cover": 0,
      "female_cover": 0,
      "note": "Süper olsun bak!",
      "organization_type": "birthday",
      "organization_type_as_integer": 0,
      "occupied_seat_count": 0,
      "date": "2022-01-24T15:39:53+03:00",
      "estimated_discharged_at": "2022-01-24T15:39:53+03:00",
      "date_as_string": "2022-01-24",
      "first_date": "2022-01-24T15:39:53+03:00",
      "created_at": "2022-01-10T15:39:53+03:00",
      "arrival_state": "walkin",
      "source_detail": null,
      "is_dining": false,
      "confirmation_source": null,
      "is_getting_paid": null,
      "hotel_room_number": null,
      "is_hotel_customer": false,
      "has_provision_confirmation": false,
      "provision_status": "has_not_provision_confirmation",
      "make_a_reservation": false,
      "customer_id": "d94518a6-7969-426a-9961-93501dc801ad",
      "table_id": null,
      "table_ids": [],
      "revenue_center_id": null,
      "parent_revenue_center_id": null,
      "child_revenue_center_id": null,
      "revenue_center_name": null,
      "child_revenue_center_name": null,
      "table": null,
      "tables": [],
      "customer": {
        "id": "d94518a6-7969-426a-9961-93501dc801ad",
        "first_name": "Alican Naim",
        "last_name": "Gelal",
        "name": "Alican Naim Gelal",
        "country_code": "241",
        "primary_phone_number": "2410879677",
        "small_image_url": null,
        "medium_image_url": null,
        "large_image_url": null,
        "type_id": "38d7f843-ad15-482d-b432-4ce54da6f75e",
        "type_name": "standard",
        "is_default_type": true,
        "is_anonym": false,
        "email": null,
        "blacklist": false,
        "gender": "male",
        "gender_as_integer": 1,
        "country": "tr",
        "nickname": null,
        "allow_sms": true,
        "allow_email": null,
        "is_active": true,
        "note": null
      },
      "check": null,
      "store": {
        "id": "1f65665a-859f-4318-ba18-96aefcf2ba4f",
        "name": "Store"
      },
      "charge": 10
    },
  ],
  "page_information": {
    "has_next_page": false,
    "current_page": 1,
    "total_count": 2,
    "page_count": 1
  }
}

Search With Product

HTTP Request

GET /api/v1/customers/search_with_product/:product_seq

Query Parameters

Parameter Default Description Required
product_seq String REQUIRED
page Number
per_page 50 Number

JSON response body:

{
  "customers": [
    {
      "id": "2a358392-7438-4c93-b09c-1e8c749da6ec",
      "name": "Nikki Kunde",
      "type": "normal",
      "total_amount": 10,
      "total_quantity": 1,
      "primary_phone_number": "8071074565",
      "store": {
        "id": "54828dfb-dc17-48ef-af3e-56d1e9cad61c",
        "name": "Doromco"
      }
    }
  ],
  "total_count": 1,
  "current_page": 1,
  "is_next_page": false
}

HTTP Request

POST /api/v1/customers/sitting_search

Query Parameters

Parameter Default Description Required
query String REQUIRED
page Number
per_page 50 Number

JSON response body:

{
  "customers": [
    {
      "id": "57f92c29-ff58-4f54-b94a-2ac26feea69c",
      "first_name": "Alican Naim",
      "last_name": "Gelal",
      "name": "Alican Naim Gelal",
      "country_code": null,
      "primary_phone_number": "7286593259",
      "small_image_url": null,
      "medium_image_url": null,
      "large_image_url": null,
      "type_id": "4e7560f4-5c96-4da6-983c-abb56b7b8911",
      "type_name": "standard",
      "is_default_type": true,
      "is_anonym": false,
      "email": null,
      "blacklist": false,
      "gender": "male",
      "gender_as_integer": 1,
      "country": "tr",
      "nickname": null,
      "allow_sms": true,
      "allow_email": null,
      "is_active": true,
      "note": null,
      "phone_numbers": [
        {
          "id": "2f4d61c2-f707-4c6e-9785-55d6bbe96d2d",
          "phone_number": "7286593259",
          "country_code": null,
          "is_primary": true
        }
      ],
      "reservations": [
        {
          "id": "dd9c1cbd-901f-4f12-a42d-7693a7e2ab1f",
          "type": "reservation",
          "status": "sitting",
          "guest_count": 5,
          "child_cover": 0,
          "male_cover": 0,
          "female_cover": 0,
          "note": "Süper olsun bak!",
          "organization_type": "birthday",
          "organization_type_as_integer": 0,
          "occupied_seat_count": 0,
          "date": "2022-01-10T15:42:56+03:00",
          "estimated_discharged_at": "2022-01-10T15:42:56+03:00",
          "date_as_string": "2022-01-10",
          "first_date": "2022-01-10T15:42:56+03:00",
          "created_at": "2022-01-10T15:42:56+03:00",
          "arrival_state": "walkin",
          "source_detail": null,
          "is_dining": false,
          "confirmation_source": null,
          "is_getting_paid": null,
          "hotel_room_number": null,
          "is_hotel_customer": false,
          "has_provision_confirmation": false,
          "provision_status": "has_not_provision_confirmation",
          "make_a_reservation": false,
          "customer_id": "57f92c29-ff58-4f54-b94a-2ac26feea69c",
          "table_id": "23c696f3-759a-400c-bdbd-02868bb01134",
          "table_ids": [
            "23c696f3-759a-400c-bdbd-02868bb01134"
          ],
          "revenue_center_id": "7a8e11b0-1fc0-45bf-9436-fdb93e0a330f",
          "parent_revenue_center_id": "7a8e11b0-1fc0-45bf-9436-fdb93e0a330f",
          "child_revenue_center_id": null,
          "revenue_center_name": "RVC",
          "child_revenue_center_name": null,
          "table": {
            "id": "23c696f3-759a-400c-bdbd-02868bb01134",
            "name": "111",
            "plan": "data",
            "capacity": 10,
            "parent_id": null,
            "revenue_center_id": "7a8e11b0-1fc0-45bf-9436-fdb93e0a330f"
          },
          "tables": [
            {
              "id": "23c696f3-759a-400c-bdbd-02868bb01134",
              "name": "111",
              "plan": "data",
              "capacity": 10,
              "parent_id": null,
              "revenue_center_id": "7a8e11b0-1fc0-45bf-9436-fdb93e0a330f"
            }
          ]
        },
      ]
    }
  ],
  "total_count": 1,
  "current_page": 1,
  "is_next_page": false
}

Dashboard

Summary Report Dashboard

HTTP Request

GET /api/v1/dashboard/summary_report

Query Parameters

Parameter Default Description Required
revenue_center_id String
slot_id String
date String

JSON response body:

{
  "summary_report": [
    {
      "total_reservation": 7,
      "total_guest": 35,
      "total_cancel_reservation": 1,
      "total_cancel_guest": 5,
      "total_noshow_reservation": 1,
      "total_noshow_guest": 5,
      "total_amount": 806,
      "with_reservation": 6,
      "with_reservation_guest": 30,
      "walkin_reservation": 1,
      "walkin_reservation_guest": 5,
    }
  ]
}

Daily Report Dashboard

HTTP Request

GET /api/v1/dashboard/daily_report

Query Parameters

Parameter Default Description Required
revenue_center_id String
slot_id String
date String

JSON response body:

{
  "daily_report": [
    {
      "hour": "00",
      "total_guest": 0,
      "occupancy_rate": 0,
      "slot_id": null,
      "color": null
    },
    {
      "hour": "01",
      "total_guest": 0,
      "occupancy_rate": 0,
      "slot_id": null,
      "color": null
    },
    {
      "hour": "02",
      "total_guest": 0,
      "occupancy_rate": 0,
      "slot_id": null,
      "color": null
    },
    {
      "hour": "03",
      "total_guest": 0,
      "occupancy_rate": 0,
      "slot_id": "1bc183b5-8c58-42e7-8694-9e0c834709db",
      "color": null
    },
    {
      "hour": "04",
      "total_guest": 0,
      "occupancy_rate": 0,
      "slot_id": "1bc183b5-8c58-42e7-8694-9e0c834709db",
      "color": null
    },
    {
      "hour": "05",
      "total_guest": 0,
      "occupancy_rate": 0,
      "slot_id": "1bc183b5-8c58-42e7-8694-9e0c834709db",
      "color": null
    },
    {
      "hour": "06",
      "total_guest": 0,
      "occupancy_rate": 0,
      "slot_id": "1bc183b5-8c58-42e7-8694-9e0c834709db",
      "color": null
    },
    {
      "hour": "07",
      "total_guest": 0,
      "occupancy_rate": 0,
      "slot_id": "1bc183b5-8c58-42e7-8694-9e0c834709db",
      "color": "#F0D4DF"
    },
    {
      "hour": "08",
      "total_guest": 5,
      "occupancy_rate": 9,
      "slot_id": "1bc183b5-8c58-42e7-8694-9e0c834709db",
      "color": "#F0D4DF"
    },
    {
      "hour": "09",
      "total_guest": 5,
      "occupancy_rate": 9,
      "slot_id": "1bc183b5-8c58-42e7-8694-9e0c834709db",
      "color": "#F0D4DF"
    },
    {
      "hour": "10",
      "total_guest": 5,
      "occupancy_rate": 9,
      "slot_id": "1bc183b5-8c58-42e7-8694-9e0c834709db",
      "color": "#F0D4DF"
    },
    {
      "hour": "11",
      "total_guest": 5,
      "occupancy_rate": 9,
      "slot_id": "1bc183b5-8c58-42e7-8694-9e0c834709db",
      "color": "#F0D4DF"
    },
    {
      "hour": "12",
      "total_guest": 45,
      "occupancy_rate": 82,
      "slot_id": "1bc183b5-8c58-42e7-8694-9e0c834709db",
      "color": "#F0D4DF"
    },
    {
      "hour": "13",
      "total_guest": 5,
      "occupancy_rate": 9,
      "slot_id": null,
      "color": "#E3F5DA"
    },
    {
      "hour": "14",
      "total_guest": 5,
      "occupancy_rate": 9,
      "slot_id": null,
      "color": "#E3F5DA"
    },
    {
      "hour": "15",
      "total_guest": 0,
      "occupancy_rate": 0,
      "slot_id": null,
      "color": "#E3F5DA"
    },
    {
      "hour": "16",
      "total_guest": 0,
      "occupancy_rate": 0,
      "slot_id": null,
      "color": "#E3F5DA"
    },
    {
      "hour": "17",
      "total_guest": 0,
      "occupancy_rate": 0,
      "slot_id": null,
      "color": "#E3F5DA"
    },
    {
      "hour": "18",
      "total_guest": 0,
      "occupancy_rate": 0,
      "slot_id": null,
      "color": "#E3F5DA"
    },
    {
      "hour": "19",
      "total_guest": 0,
      "occupancy_rate": 0,
      "slot_id": null,
      "color": "#DFEFFA"
    },
    {
      "hour": "20",
      "total_guest": 0,
      "occupancy_rate": 0,
      "slot_id": null,
      "color": "#DFEFFA"
    },
    {
      "hour": "21",
      "total_guest": 0,
      "occupancy_rate": 0,
      "slot_id": null,
      "color": "#DFEFFA"
    },
    {
      "hour": "22",
      "total_guest": 0,
      "occupancy_rate": 0,
      "slot_id": null,
      "color": "#DFEFFA"
    },
    {
      "hour": "23",
      "total_guest": 0,
      "occupancy_rate": 0,
      "slot_id": null,
      "color": "#DFEFFA"
    }
  ],
  "summary_report": [
    {
      "total_occupancy_rate": 136,
      "total_guest": 75,
      "total_init_guest": 40,
      "total_sitting_guest": 5,
      "total_done_guest": 5
    }
  ]
}

Weekly Report Dashboard

HTTP Request

GET /api/v1/dashboard/weekly_report

Query Parameters

Parameter Default Description Required
revenue_center_id String
slot_id String
date String

JSON response body:

{
  "weekly_report": [
    {
      "day": "1",
      "day_name": "Friday",
      "total_reservation": 1,
      "total_guest": 5
    },
    {
      "day": "2",
      "day_name": "Saturday",
      "total_reservation": 1,
      "total_guest": 5
    },
    {
      "day": "3",
      "day_name": "Sunday",
      "total_reservation": 1,
      "total_guest": 5
    },
    {
      "day": "4",
      "day_name": "Monday",
      "total_reservation": 1,
      "total_guest": 5
    },
    {
      "day": "5",
      "day_name": "Tuesday",
      "total_reservation": 1,
      "total_guest": 5
    },
    {
      "day": "6",
      "day_name": "Wednesday",
      "total_reservation": 1,
      "total_guest": 5
    },
    {
      "day": "7",
      "day_name": "Thursday",
      "total_reservation": 1,
      "total_guest": 5
    }
  ]
}

Daily Notes

Show

HTTP Request

GET /api/v1/daily-notes

Query Parameters

Parameter Default Description Required
revenue_center_id String REQUIRED
date String REQUIRED

JSON response body:

{
  "note": "Classified Information"
}

Daily Notes

HTTP Request

POST /api/v1/daily-notes

Body Parameters

Parameter Default Description Required
revenue_center_id String REQUIRED
date String REQUIRED
note String

JSON response body:

{
  "note": "Classified Information"
}

Devices

Create Device

HTTP Request

POST /api/v1/devices

Body Parameters

Parameter Default Description Required
name String REQUIRED
identifier String REQUIRED
platform other String
brand String
model String
serial_number String
device_version String
store_id String REQUIRED

platform other, web, android, ios

JSON response body:


  HTTP/1.1 201 Created

Feedbacks

Create Feedback

HTTP Request

POST /api/v1/feedbacks

Body Parameters

Parameter Description Required
title String REQUIRED
body String REQUIRED
contact_me Boolean REQUIRED

JSON request body:

{
  "title": "Soru sormak istiyorum",
  "body": "Geri bildirim body.",
  "contact_me": true
}

JSON response body:


  HTTP/1.1 200 OK

Locks

Create Locks

HTTP Request

POST /api/v1/locks

Body Parameters

Parameter Default Description Required
reservation_start_date String REQUIRED
reservation_end_date String REQUIRED
table_ids Array(String) REQUIRED

JSON request body:

{
  "start_at": "2020-01-01 02:00:00 +0300",
  "end_at": "2020-01-01 04:00:00 +0300",
  "table_ids": ["b1e4db74-f452-4245-a2f6-d5461867be2f"]
}

JSON response body:

[
  {
    "id": "94d0bd06-e9ae-47c9-b598-f1be832ca8f6",
    "store_id": "7cc81560-1b4e-4afc-85b4-55c00c5135b6",
    "reservation_start_date": "2020-01-01T02:00:00+03:00",
    "reservation_end_date": "2020-01-01T04:00:00+03:00",
    "created_at": "2020-01-01T00:00:00+03:00",
    "updated_at": "2020-01-01T00:00:00+03:00",
    "unlocked_at": "2020-01-01T00:10:00+03:00",
    "table_id": "4983fa8d-e7c5-4121-8527-5dfb864cbc1b",
    "user": {
      "id": "bcc60842-d08b-4328-9a59-9c805e0c1c7e",
      "name": "Dong Gottlieb"
    },
    "table": {
      "id": "4983fa8d-e7c5-4121-8527-5dfb864cbc1b",
      "revenue_center_id": "e4376ac3-540d-402a-8fd5-4e9eeefa6e8e",
      "child_revenue_center_id": null
    }
  }
]

Extend Locks

HTTP Request

PATCH /api/v1/locks/extend

Body Parameters

Parameter Default Description Required
lock_ids Array(String) REQUIRED

JSON response body:

[
  {
    "id": "ef269193-9b90-4e8e-b615-ad2da9e72a29",
    "store_id": "63882e9f-c00e-4fb9-888e-594a1e658fe5",
    "reservation_start_date": "2022-01-10T17:56:12+03:00",
    "reservation_end_date": "2022-01-10T19:56:12+03:00",
    "created_at": "2022-01-10T15:56:12+03:00",
    "updated_at": "2022-01-10T15:56:12+03:00",
    "unlocked_at": "2022-01-10T16:06:12+03:00",
    "table_id": "74dc6855-e2b8-4237-9b02-7bba2707831e",
    "user": {
      "id": "55a6bd41-ec06-4056-a275-6f20e3b9ba38",
      "name": "Lilliam Harber"
    },
    "table": {
      "id": "74dc6855-e2b8-4237-9b02-7bba2707831e",
      "revenue_center_id": "2448b980-9985-474a-a62d-cd696e8074fd",
      "child_revenue_center_id": null
    }
  }
]

Update Lock

HTTP Request

PATCH /api/v1/locks/:id

Body Parameters

Parameter Default Description Required
reservation_start_date REQUIRED
reservation_end_date REQUIRED

JSON response body:

{
  "id": "b54a7ec6-e4d1-44ef-97c1-9dcf84bc4f69",
  "store_id": "4837081e-4148-4dc1-987f-919915ff16a1",
  "reservation_start_date": "2022-01-10T20:57:18+03:00",
  "reservation_end_date": "2022-01-10T18:57:18+03:00",
  "created_at": "2022-01-10T15:57:18+03:00",
  "updated_at": "2022-01-10T15:57:18+03:00",
  "unlocked_at": "2022-01-10T16:07:18+03:00",
  "table_id": "944af9d7-45d3-46b1-9ff1-12180ea6ad47",
  "user": {
    "id": "4ee39395-bcf0-4f39-87b3-5c5bb6138b59",
    "name": "Mildred Leannon"
  },
  "table": {
    "id": "944af9d7-45d3-46b1-9ff1-12180ea6ad47",
    "revenue_center_id": "0a3696da-c2d3-4674-8298-564599a6ecee",
    "child_revenue_center_id": null
  }
}

Destroy Lock

HTTP Request

DELETE /api/v1/locks

Body Parameters

Parameter Default Description Required
lock_ids Array(String) REQUIRED

JSON request body:

{
  "lock_ids": ["b1e4db74-f452-4245-a2f6-d5461867be2f"]
}

JSON response body:

{
  "status": true
}

Off Days

Index Off Days

HTTP Request

GET /api/v1/off-days

Query Parameters

Parameter Default Description Required
type String (past, future) REQUIRED
revenue_center_id String REQUIRED
page 1 Number
per_page 50 Number

JSON response body:

{
  "off_days": [
    {
      "id": "165f9693-2079-4e6a-86ec-56b17cf58fda",
      "date": "2022-06-07",
      "end_date": null,
      "days": [],
      "type": "not_repeat",
      "note": "Kapatıyoruz! 1",
      "active_for_reservations": true,
      "active_for_online": true,
      "active_for_requests": true
    },
   {
     "id": "baf1b7c1-09a3-4da1-badb-16c7ffaac8b2",
      "date": "2022-06-08",
      "end_date": null,
      "days": [],
      "type": "not_repeat",
      "note": "Kapatıyoruz! 2",
      "active_for_reservations": true,
      "active_for_online": true,
      "active_for_requests": true
    },
   {
     "id": "55523a74-5593-4e47-8572-4791ef575b29",
      "date": "2022-06-09",
      "end_date": "2022-06-18",
      "days": [0, 1, 2, 3, 4, 5, 6],
      "type": "repeat",
      "note": "Kapatıyoruz! 3",
      "active_for_reservations": true,
      "active_for_online": true,
      "active_for_requests": true
    }
  ],
  "page_information": {
    "has_next_page": false,
    "current_page": 1,
    "total_count": 3,
    "page_count": 1
  }
}

Calendar Off Days

HTTP Request

GET /api/v1/off-days/calendar

Query Parameters

Parameter Default Description Required
revenue_center_id String REQUIRED
start_date String
end_date String

JSON response body:

{
  "off_days": [
    {
      "id": "165f9693-2079-4e6a-86ec-56b17cf58fda",
      "date": "2022-06-07",
      "note": "Kapatıyoruz! 1",
    },
   {
     "id": "baf1b7c1-09a3-4da1-badb-16c7ffaac8b2",
      "date": "2022-06-08",
      "note": "Kapatıyoruz! 2",
    },
   {
     "id": "55523a74-5593-4e47-8572-4791ef575b29",
      "date": "2022-06-09",
      "note": "Kapatıyoruz! 3",
    }
  ]
}

Create Off Day

HTTP Request

POST /api/v1/off-days

Body Parameters

Parameter Default Description Required
revenue_center_id String REQUIRED
date String REQUIRED
end_date String
days String
type String REQUIRED
note String
active_for_reservations Boolean
active_for_online Boolean
active_for_requests Boolean

JSON response body:

{
  "off_days": {
    "id": "165f9693-2079-4e6a-86ec-56b17cf58fda",
    "date": "2022-06-07",
    "end_date": null,
    "days": [],
    "type": "not_repeat",
    "note": "Kapatıyoruz! 1",
    "active_for_reservations": true,
    "active_for_online": true,
    "active_for_requests": true
  }
}

Update Off Day

HTTP Request

PATCH /api/v1/off-days/:id

Body Parameters

Parameter Default Description Required
date String
end_date String
days String
type String
note String
active_for_reservations Boolean
active_for_online Boolean
active_for_requests Boolean

JSON response body:

{
  "off_days": {
    "id": "165f9693-2079-4e6a-86ec-56b17cf58fda",
    "date": "2022-06-07",
    "end_date": null,
    "days": [],
    "type": "not_repeat",
    "note": "Kapatıyoruz! 1",
    "active_for_reservations": true,
    "active_for_online": true,
    "active_for_requests": true
  }
}

Destroy Off Day

HTTP Request

DELETE /api/v1/off-days/:id

JSON response body:


  HTTP/1.1 200 OK

Organizations

Index Organizations

HTTP Request

GET /api/v1/organizations

JSON response body:

[
  {
    "id": "a42129cb-aade-4a1b-90c2-25b8b5367f70",
    "name": "Quigley, Hettinger and Goodwin",
    "slug": "current",
    "host": "https://current.api.checkandplace.com",
    "is_favorite": true
  },
  {
    "id": "a42129cb-aade-4a1b-90c2-25b8b5367f70",
    "name": "Reichel-Runolfsso",
    "slug": "current",
    "host": "https://current.api.checkandplace.com",
    "is_favorite": false
  }
]

Add Favorite Organization

HTTP Request

POST /api/v1/organizations/:id/add_favorite

JSON response body:


  HTTP/1.1 201 Created

Remove Favorite Organization

HTTP Request

POST /api/v1/organizations/:id/remove_favorite

JSON response body:


  HTTP/1.1 204 No Content

Phone Numbers

Create Phone Number

HTTP Request

POST /api/v1/customers/:id/phone_numbers

Body Parameters

Parameter Default Description Required
phone_number String REQUIRED

JSON response body:

{
  "customer": {
    "id": "1bc183b5-8c58-42e7-8694-9e0c834709db",
    "first_name": "Geoffrey",
    "last_name": "Kirlin",
    "primary_phone_number": "905778547899",
    "type_id": "cc83edda-90af-40ea-925b-b0967ec7ec17",
    "country_code": "90",
    "email": null,
    "blacklist": true,
    "is_anonym": false,
    "gender": "male",
    "country": "tr",
    "nickname": null,
    "allow_sms": true,
    "note": "Not",
    "phone_numbers": [
      {
        "id": "bc3330c5-25a5-47bf-9733-b01101b82a26",
        "phone_number": "905075961837",
        "country_code": "90",
        "is_primary": true
      },
      {
        "id": "944256c0-e149-42ae-84d2-53c9aad450ff",
        "phone_number": "905778547899",
        "country_code": "90",
        "is_primary": true
      }
    ]
  }
}

Update Phone Number

HTTP Request

PATCH /api/v1/customers/:id/phone_numbers/:phone_number_id

Body Parameters

Parameter Default Description Required
phone_number String REQUIRED
set_primary Boolean

JSON response body:

{
  "customer": {
    "id": "1bc183b5-8c58-42e7-8694-9e0c834709db",
    "first_name": "Geoffrey",
    "last_name": "Kirlin",
    "primary_phone_number": "905778547899",
    "type_id": "cc83edda-90af-40ea-925b-b0967ec7ec17",
    "country_code": "90",
    "email": null,
    "blacklist": true,
    "is_anonym": false,
    "gender": "male",
    "country": "tr",
    "nickname": null,
    "allow_sms": true,
    "note": "Not",
    "phone_numbers": [
      {
        "id": "bc3330c5-25a5-47bf-9733-b01101b82a26",
        "phone_number": "905075961837",
        "country_code": "90",
        "is_primary": true
      },
      {
        "id": "944256c0-e149-42ae-84d2-53c9aad450ff",
        "phone_number": "905778547899",
        "country_code": "90",
        "is_primary": true
      }
    ]
  }
}

Destroy Phone Number

HTTP Request

DELETE /api/v1/customers/:id/phone_numbers/:phone_number_id

JSON response body:

{
  "customer": {
    "id": "bc3330c5-25a5-47bf-9733-b01101b82a26",
    "first_name": "Geoffrey",
    "last_name": "Kirlin",
    "primary_phone_number": "905075961837",
    "type_id": "cc83edda-90af-40ea-925b-b0967ec7ec17",
    "email": null,
    "blacklist": true,
    "is_anonym": false,
    "gender": "male",
    "country": "tr",
    "nickname": null,
    "allow_sms": true,
    "note": "Not",
    "phone_numbers": [
      {
        "id": "cc83edda-90af-40ea-925b-b0967ec7ec17",
        "phone_number": "905075961837",
        "is_primary": true
      }
    ]
  }
}

Products

Search Product

HTTP Request

GET /api/v1/products/search/:query

Query Parameters

Parameter Default Description Required
query String REQUIRED

JSON response body:

{
  "product": [
    {
      "seq": 16000,
      "name": "Patates Kızartması"
    }
  ],
  "total_count": 1
}

Payments

Create Payment

HTTP Request

POST /api/v1/payments

Body Parameters

Parameter Default Description Required
calendar_id String(uuid) REQUIRED
amount guest * amount Float
phone_number String
email String
send_sms true String
send_email true String
language TR String

JSON response body:


  HTTP/1.1 201 Created

Update Payment

HTTP Request

PATCH /api/v1/payments/:id

Body Parameters

Parameter Default Description Required
amount guest * amount Float
phone_number String
email String
send_sms true String
send_email true String
language TR String

JSON response body:


  HTTP/1.1 200 OK

Destroy Payment

HTTP Request

DELETE /api/v1/payments/:id

JSON response body:


  HTTP/1.1 200 OK

Reasons

Index Reasons

HTTP Request

GET /api/v1/reasons

Query Parameters

Parameter Default Description Required
type reservation String

type reservation, request

JSON response body:

[
  {
    "id": "a278c386-7558-4709-8733-068b598ac801",
    "name": "Guest Cancel",
    "active": true,
    "type": "reservation",
    "kind": "cancel",
    "store_id": "952d6c7c-1b55-413a-8c7d-4d709183d7cf"
  },
  {
    "id": "99afaa47-453f-4cc6-9239-a9c535720393",
    "name": "Store Cancel",
    "active": true,
    "type": "reservation",
    "kind": "cancel",
    "store_id": "952d6c7c-1b55-413a-8c7d-4d709183d7cf"
  },
  {
    "id": "3907f1a2-645a-4828-848a-5bd3a0ebbf8c",
    "name": "Guest No-show",
    "active": true,
    "type": "reservation",
    "kind": "cancel",
    "store_id": "952d6c7c-1b55-413a-8c7d-4d709183d7cf"
  }
]

References

Index References

HTTP Request

GET /api/v1/references

Query Parameters

Parameter Default Description Required
query String (name, phone)

JSON response body:

{
  "references": [
    {
      "id": "ea0418f1-fd2a-4e22-9655-4be4436afc31",
      "organization_id": "8695ee8f-f4c0-41e3-b040-a1d85dcd291b",
      "name": "Brock",
      "phone_number": "6309564004",
      "email": "brock@turner.co",
      "note": "Yaratıcı not"
    },
    {
      "id": "906b817c-164d-4a7b-a411-6718da199507",
      "organization_id": "8695ee8f-f4c0-41e3-b040-a1d85dcd291b",
      "name": "Darrel",
      "phone_number": "9649594087",
      "email": "darrel_morar@schultz.com",
      "note": "Yaratıcı not"
    },
    {
      "id": "ec473935-fe96-47d7-a5c9-4701089b61c2",
      "organization_id": "8695ee8f-f4c0-41e3-b040-a1d85dcd291b",
      "name": "Yoko",
      "phone_number": "9998549327",
      "email": "yoko@shanahan.org",
      "note": "Yaratıcı not"
    }
  ]
}

Show Reference

HTTP Request

GET /api/v1/references/:id

JSON response body:

{
  "reference": {
    "id": "ea0418f1-fd2a-4e22-9655-4be4436afc31",
    "organization_id": "8695ee8f-f4c0-41e3-b040-a1d85dcd291b",
    "name": "Brock",
    "phone_number": "6309564004",
    "email": "brock@turner.co",
    "note": "Yaratıcı not"
  }
}

Create Reference

HTTP Request

POST /api/v1/references

Body Parameters

Parameter Default Description Required
name String REQUIRED
phone_number String
email String
note String

JSON response body:

{
  "reference": {
    "id": "ea0418f1-fd2a-4e22-9655-4be4436afc31",
    "organization_id": "8695ee8f-f4c0-41e3-b040-a1d85dcd291b",
    "name": "Brock",
    "phone_number": "6309564004",
    "email": "brock@turner.co",
    "note": "Yaratıcı not"
  }
}

Update Reference

HTTP Request

PATCH /api/v1/references/:id

Body Parameters

Parameter Default Description Required
name String
phone_number String
email String
note String

JSON response body:

{
  "reference": {
    "id": "ea0418f1-fd2a-4e22-9655-4be4436afc31",
    "organization_id": "8695ee8f-f4c0-41e3-b040-a1d85dcd291b",
    "name": "Brock",
    "phone_number": "6309564004",
    "email": "brock@turner.co",
    "note": "Yaratıcı not"
  }
}

Reports

Reservations Reports

HTTP Request

POST /api/v1/reports/reservations

Description

Body Parameters

Parameter Default Description Required
order_by String
order_direction String
statuses []Number
columns []String
emails []String
report_to_mail Boolean
type String
query String
start_at String
end_at String
page Number
per_page 50 Number
revenue_center_id String
slot_id String
customer_type_ids [uuid]String
tag_ids [uuid]String

JSON request body:

{
  "by": "date",
  "direction": "desc",
  "statuses": [0, 1, 2, 3, 4, 5, 6, 7],
  "type": "customer",
  "query": "Troy Monahan",
  "columns": ["customer", "revenue_center"],
  "emails": ["test@mail.com", "mail@protel.com"],
  "report_to_mail": true,
  "start_at": null,
  "end_at": null,
  "page": 1,
  "per_page": 50,
  "revenue_center_id": null,
}

JSON response body:

{
  "reservations": [
    {
      "store": "Store",
      "date": "2020-01-01T00:00:00.000+03:00",
      "estimated_discharged_at": "2020-01-01T01:30:00.000+03:00",
      "customer": "Troy Monahan",
      "hotel_room_number": null,
      "primary_phone_number": "2507491118",
      "revenue_center": "RVC",
      "child_revenue_center": null,
      "guest_count": 5,
      "table": null,
      "note": "Süper olsun bak!",
      "status": "init",
      "reason": null,
      "source": "Web Request",
      "created_by": null
    },
    {
      "store": "Store",
      "date": "2020-01-01T00:00:00.000+03:00",
      "estimated_discharged_at": "2020-01-01T01:30:00.000+03:00",
      "customer": "Troy Monahan",
      "hotel_room_number": null,
      "primary_phone_number": "2507491118",
      "revenue_center": "RVC",
      "child_revenue_center": null,
      "guest_count": 5,
      "table": null,
      "note": "Süper olsun bak!",
      "status": "confirm",
      "reason": null,
      "source": "Web Request",
      "created_by": null
    },
    {
      "store": "Store",
      "date": "2020-01-01T00:00:00.000+03:00",
      "estimated_discharged_at": "2020-01-01T01:30:00.000+03:00",
      "customer": "Troy Monahan",
      "hotel_room_number": null,
      "primary_phone_number": "2507491118",
      "revenue_center": "RVC",
      "child_revenue_center": null,
      "guest_count": 5,
      "table": null,
      "note": "Süper olsun bak!",
      "status": "partial",
      "reason": null,
      "source": null,
      "created_by": null
    },
    {
      "store": "Store",
      "date": "2020-01-01T00:00:00.000+03:00",
      "estimated_discharged_at": "2020-01-01T01:30:00.000+03:00",
      "customer": "Troy Monahan",
      "hotel_room_number": null,
      "primary_phone_number": "2507491118",
      "revenue_center": "RVC",
      "child_revenue_center": null,
      "guest_count": 5,
      "table": null,
      "note": "Süper olsun bak!",
      "status": "sitting",
      "reason": null,
      "source": null,
      "created_by": null
    },
    {
      "store": "Store",
      "date": "2020-01-01T00:00:00.000+03:00",
      "estimated_discharged_at": "2020-01-01T01:30:00.000+03:00",
      "customer": "Troy Monahan",
      "hotel_room_number": null,
      "primary_phone_number": "2507491118",
      "revenue_center": "RVC",
      "child_revenue_center": null,
      "guest_count": 5,
      "table": null,
      "note": "Süper olsun bak!",
      "status": "never_show_up",
      "reason": null,
      "source": null,
      "created_by": null
    },
    {
      "store": "Store",
      "date": "2020-01-01T00:00:00.000+03:00",
      "estimated_discharged_at": "2020-01-01T01:30:00.000+03:00",
      "customer": "Troy Monahan",
      "hotel_room_number": null,
      "primary_phone_number": "2507491118",
      "revenue_center": "RVC",
      "child_revenue_center": null,
      "guest_count": 5,
      "table": null,
      "note": "Süper olsun bak!",
      "status": "left",
      "reason": null,
      "source": null,
      "created_by": null
    },
    {
      "store": "Store",
      "date": "2020-01-01T00:00:00.000+03:00",
      "estimated_discharged_at": "2020-01-01T01:30:00.000+03:00",
      "customer": "Troy Monahan",
      "hotel_room_number": null,
      "primary_phone_number": "2507491118",
      "revenue_center": "RVC",
      "child_revenue_center": null,
      "guest_count": 5,
      "table": null,
      "note": "Süper olsun bak!",
      "status": "cancel",
      "reason": null,
      "source": "Web Request",
      "created_by": null
    },
    {
      "store": "Store",
      "date": "2020-01-01T00:00:00.000+03:00",
      "estimated_discharged_at": "2020-01-01T01:30:00.000+03:00",
      "customer": "Troy Monahan",
      "hotel_room_number": null,
      "primary_phone_number": "2507491118",
      "revenue_center": "RVC",
      "child_revenue_center": null,
      "guest_count": 5,
      "table": null,
      "note": "Süper olsun bak!",
      "status": "done",
      "reason": null,
      "source": null,
      "created_by": null
    }
  ],
  "page_information": {
    "has_next_page": false,
    "current_page": 1,
    "total_count": 8,
    "page_count": 1,
  },
  "filterable_fields": {
    "statuses": {
      "init": 0,
      "confirm": 1,
      "partial": 2,
      "sitting": 3,
      "never_show_up": 4,
      "left": 5,
      "cancel": 6,
      "done": 7
    },
    "revenue_centers": {
      "RVC": "c5608cb9-7705-4f84-939f-2a721845ccc0"
    }
  }
}

Calendars Reports

HTTP Request

GET /api/v1/reports/calendars

Description

Query Parameters

Parameter Default Description Required
ends_at String REQUIRED
starts_at String REQUIRED
page Number
per_page 50 Number
revenue_center_ids []String
make_a_reservation String
only_upcoming String

JSON response body:

{
  "calendars": [
    {
      "values": [
        "21.01.2018",
        "00:00",
        "Roxann Ebert",
        "Walkin",
        5,
        "111",
        "RVC",
        null,
        "Yeni",
        "",
        "Süper olsun bak!",
        "21.01.2018 00:00",
        null,
        null,
        null,
        null,
        null
      ],
      "id": "92f8d41a-a2f0-4b33-a7da-7bbf97642681",
      "status": "init",
      "icons": {
        "customer_type_id": "23dd8d54-ab5d-4f58-97c1-48fac9397690",
        "blacklist": false,
        "is_hotel_customer": false,
        "provision_information": "has_not_provision_confirmation",
        "is_confirmation_source_sms": false,
        "organization_type": true,
        "is_dining": false,
        "is_not_dining": true
      }
    }
  ],
  "header": [
    {
      "label": "Rez. Tarih",
      "width": "medium"
    },
    {
      "label": "Saat",
      "width": "small"
    },
    {
      "label": "Ad Soyad",
      "width": "large"
    },
    {
      "label": "Tipi",
      "width": "large"
    },
    {
      "label": "Kişi",
      "width": "small"
    },
    {
      "label": "Masa",
      "width": "small"
    },
    {
      "label": "RVC",
      "width": "medium"
    },
    {
      "label": "Oda",
      "width": "small"
    },
    {
      "label": "Statü",
      "width": "medium",
      "style": true
    },
    {
      "label": "Silinen Kayıt",
      "width": "medium"
    },
    {
      "label": "Not",
      "width": "large"
    },
    {
      "label": "Oluşturma Tarihi",
      "width": "medium"
    },
    {
      "label": "İptal Edilme Tarihi",
      "width": "medium"
    },
    {
      "label": "İptal Eden Kullanıcı",
      "width": "medium"
    },
    {
      "label": "İptal Sebebi",
      "width": "large"
    },
    {
      "label": "Kaynak",
      "width": "medium"
    },
    {
      "label": "Oluşturan",
      "width": "large"
    }
  ],
  "is_next_page": false,
  "total_count": 1,
  "current_page": 1
}

Reservation Requests

Index Reservation Requests

HTTP Request

POST api/v1/reservations

Description

order_by
date
guest_count
customers.search_keyword
pancar_revenue_centers.name

order_direction asc, desc

JSON request body:

{
  "customer": "Fermin Reinger",
  "status": "waiting",
  "revenue_center_id": "699aadbd-a764-4d4f-8dcd-31a7fece1b98",
  "emails": ["test@mail.com", "mail@protel.com"],
  "order_by": "date",
  "order_direction": "asc",
  "page": 1,
  "per_page": 50,
}

JSON response body:

{
  "reservation_requests": [
    {
      "id": "92fe9f10-49dd-4bc6-8406-6a3a08f4e85b",
      "customer_id": "341cd6fc-a5be-448d-84ce-fca909be700c",
      "customer_name": "Yunus Bulut",
      "customer_type_name": "standard",
      "customer_blacklist": false,
      "customer_country_code": "20",
      "primary_phone_number": "2069237467",
      "reference": {
        "id": "ea0418f1-fd2a-4e22-9655-4be4436afc31",
        "organization_id": "8695ee8f-f4c0-41e3-b040-a1d85dcd291b",
        "name": "Brock",
        "phone_number": "6309564004",
        "email": "brock@turner.co",
        "note": "Yaratıcı not"
      },
      "date": "03.01.2021",
      "time": "00:00",
      "passing_time": {"year": 0, "month": 1, "day": 3, "hour": 14, "minute": 54},
      "day": "Pazar",
      "guest_count": 5,
      "note": "Masada güller olsun!",
      "status": "Bekleyen",
      "created_at": "2021-01-01T00:00:00+03:00",
      "tags": [
        {
          "id":"27856a73-7a03-4b33-af79-6bbfa96eaea4",
          "name_tr":"Gizli",
          "name_en":"Secret",
          "type":"reservation",
          "icon_type":"generic"
        }
      ],
      "revenue_center_id": "504ce16c-b220-44d2-a74f-3b7a133db238",
      "revenue_center_name": "RVC"
    }
  ],
  "page_information": {
    "has_next_page": false,
    "current_page": 1,
    "total_count": 1,
    "page_count": 1
  }
}

Reservation Request History

HTTP Request

GET /api/v1/reservation-requests/:id/history

JSON response body:

[
  {
    "whodunnit":"Atakandunnit",
    "event":"create",
    "type":"reservation-request",
    "reservation_request_id":"88e1d31e-9bec-402d-a810-8ec37ccb8fda",
    "at":"2023-06-05T16:23:09.619+03:00"
  },
  {
    "whodunnit":"Atakandunnit",
    "event":"update",
    "type":"reservation-request",
    "at":"2023-06-05T16:23:09.681+03:00",
    "field":"date",
    "from":"2023-06-05T16:23:09.601+03:00",
    "to":"2023-06-07T16:23:09.679+03:00"
  }
]

Create Reservation Request

HTTP Request

POST api/v1/reservation-requests

Body Parameters

Parameter Default Description Required
date String REQUIRED
guest_count Number REQUIRED
note String
customer_id String REQUIRED
reference_id String
revenue_center_id String REQUIRED
tag_ids Array(String)
allergen_or_intolerance Boolean

JSON response body:

{
  "id": "5fafcbab-c013-4853-a91c-a0f498ed50ba",
  "customer_id": "75be3343-293e-435e-bff3-00d3fc1a932c",
  "customer_name": "Wilbur Parisian",
  "customer_type_name": "standard",
  "customer_blacklist": false,
  "customer_country_code": "90",
  "primary_phone_number": "905552223311",
  "reference": {
    "id": "ea0418f1-fd2a-4e22-9655-4be4436afc31",
    "organization_id": "8695ee8f-f4c0-41e3-b040-a1d85dcd291b",
    "name": "Brock",
    "phone_number": "6309564004",
    "email": "brock@turner.co",
    "note": "Yaratıcı not"
  },
  "date": "13.01.2022",
  "time": "12:08",
  "day": "Perşembe",
  "guest_count": 5,
  "note": "Masada güller olsun!",
  "status": "Onaylanan",
  "created_at": "2022-01-11T12:08:14+03:00",
  "tags": [
    {
      "id":"27856a73-7a03-4b33-af79-6bbfa96eaea4",
      "name_tr":"Gizli",
      "name_en":"Secret",
      "type":"reservation",
      "icon_type":"generic"
    }
  ],
  "revenue_center_id": "3d8effb0-71df-47f0-bc64-0baa9ab27023",
  "revenue_center_name": "RVC"
}

Update Reservation Request

HTTP Request

PATCH api/v1/reservation-requests/:id

Body Parameters

Parameter Default Description Required
date String REQUIRED
guest_count Number REQUIRED
note String
customer_id String REQUIRED
reference_id String
revenue_center_id String REQUIRED
tag_ids Array(String)
allergen_or_intolerance Boolean

JSON response body:

{
  "id": "5fafcbab-c013-4853-a91c-a0f498ed50ba",
  "customer_id": "75be3343-293e-435e-bff3-00d3fc1a932c",
  "customer_name": "Wilbur Parisian",
  "customer_type_name": "standard",
  "customer_blacklist": false,
  "customer_country_code": "90",
  "primary_phone_number": "905552223311",
  "reference": {
    "id": "ea0418f1-fd2a-4e22-9655-4be4436afc31",
    "organization_id": "8695ee8f-f4c0-41e3-b040-a1d85dcd291b",
    "name": "Brock",
    "phone_number": "6309564004",
    "email": "brock@turner.co",
    "note": "Yaratıcı not"
  },
  "date": "13.01.2022",
  "time": "12:08",
  "day": "Perşembe",
  "guest_count": 5,
  "note": "Masada güller olsun!",
  "status": "Onaylanan",
  "created_at": "2022-01-11T12:08:14+03:00",
  "tags": [
    {
      "id":"27856a73-7a03-4b33-af79-6bbfa96eaea4",
      "name_tr":"Gizli",
      "name_en":"Secret",
      "type":"reservation",
      "icon_type":"generic"
    }
  ],
  "revenue_center_id": "3d8effb0-71df-47f0-bc64-0baa9ab27023",
  "revenue_center_name": "RVC"
}

Approve Reservation Request

HTTP Request

PATCH api/v1/reservations/:id/approve

JSON response body:

{
  "id": "5fafcbab-c013-4853-a91c-a0f498ed50ba",
  "customer_id": "75be3343-293e-435e-bff3-00d3fc1a932c",
  "customer_name": "Wilbur Parisian",
  "customer_type_name": "standard",
  "customer_blacklist": false,
  "customer_country_code": null,
  "primary_phone_number": "1254525551",
  "reference": null,
  "date": "13.01.2022",
  "time": "12:08",
  "day": "Perşembe",
  "guest_count": 5,
  "note": "Masada güller olsun!",
  "status": "Onaylanan",
  "created_at": "2022-01-11T12:08:14+03:00",
  "tags": [
    {
      "id":"27856a73-7a03-4b33-af79-6bbfa96eaea4",
      "name_tr":"Gizli",
      "name_en":"Secret",
      "type":"reservation",
      "icon_type":"generic"
    }
  ],
  "revenue_center_id": "3d8effb0-71df-47f0-bc64-0baa9ab27023",
  "revenue_center_name": "RVC"
}

Reject Reservation Request

HTTP Request

PATCH api/v1/reservations/:id/reject

Body Parameters

Parameter Default Description Required
reason_id String

JSON response body:

{
  "id": "467819d2-ecf3-4477-8ed5-7ba17de753b1",
  "customer_id": "600fe1f2-f5c6-4288-a6e7-8e25c6e398e7",
  "customer_name": "Lavette Mante",
  "customer_type_name": "standard",
  "customer_blacklist": false,
  "customer_country_code": null,
  "primary_phone_number": "5200107867",
  "reference": null,
  "date": "13.01.2022",
  "time": "12:09",
  "day": "Perşembe",
  "guest_count": 5,
  "note": "Masada güller olsun!",
  "status": "Reddedilen",
  "created_at": "2022-01-11T12:09:12+03:00",
  "tags": [
    {
      "id":"27856a73-7a03-4b33-af79-6bbfa96eaea4",
      "name_tr":"Gizli",
      "name_en":"Secret",
      "type":"reservation",
      "icon_type":"generic"
    }
  ],
  "revenue_center_id": "4e149fa4-87e7-4d19-b537-c06ebb3d58ef",
  "revenue_center_name": "RVC"
}

Reservation Request Count

HTTP Request

GET /api/v1/reservation-requests/count

Query Parameters

Parameter Default Description Required
revenue_center_id String(uuid) REQUIRED

JSON response body:

{
  "reservation_request_count": 250,
},

Reservations

Index Reservations

HTTP Request

GET /api/v1/calendars

Query Parameters

Parameter Default Description Required
type reservation String
slot_id String REQUIRED
revenue_center_id String
page Number
per_page Number

JSON response body:

{
  "calendars": [
    {
      "id": "0d0bfd47-3074-4511-a559-8d2ea1a5188c",
      "type": "reservation",
      "status": "init",
      "guest_count": 5,
      "male_cover": 0,
      "female_cover": 0,
      "child_cover": 0,
      "note": "Süper olsun bak!",
      "organization_type": "birthday",
      "organization_type_as_integer": 0,
      "tags": [
        {
          "id":"27856a73-7a03-4b33-af79-6bbfa96eaea4",
          "name_tr":"Gizli",
          "name_en":"Secret",
          "type":"reservation",
          "icon_type":"generic"
        }
      ],
      "occupied_seat_count": 0,
      "date": "2017-08-15T11:30:00+03:00",
      "estimated_discharged_at": "2017-08-15T13:00:00+03:00",
      "date_as_string": "2017-08-15",
      "first_date": "2017-08-15T11:30:00+03:00",
      "created_at": "2021-10-01T10:30:01+03:00",
      "arrival_state": "walkin",
      "source_detail": null,
      "is_dining": false,
      "confirmation_source": null,
      "is_getting_paid": null,
      "hotel_room_number": null,
      "is_hotel_customer": false,
      "has_provision_confirmation": false,
      "provision_status": "has_not_provision_confirmation",
      "make_a_reservation": false,
      "customer_id": "b6dfe8be-518a-45b3-a14a-88220ef7caf7",
      "table_id": null,
      "table_ids": [],
      "revenue_center_id": "566fa679-c190-4c4d-8cd4-6219e3a3f0a2",
      "parent_revenue_center_id": "566fa679-c190-4c4d-8cd4-6219e3a3f0a2",
      "child_revenue_center_id": null,
      "source": "Alvin Becker",
      "table": null,
      "tables": [],
      "customer": {
        "id": "b6dfe8be-518a-45b3-a14a-88220ef7caf7",
        "first_name": "Noah",
        "last_name": "Schinner",
        "name": "Noah Schinner",
        "country_code": null,
        "primary_phone_number": "3337677842",
        "small_image_url": null,
        "medium_image_url": null,
        "large_image_url": null,
        "type_id": "acec4708-f0e3-41cd-9c8a-1b3580441e66",
        "type_name": "standard",
        "is_default_type": true,
        "is_anonym": false,
        "email": null,
        "blacklist": false,
        "gender": "male",
        "gender_as_integer": 1,
        "country": "tr",
        "allow_sms": true,
        "allow_email": null,
        "note": null
      },
      "reference": {
        "id": "ea0418f1-fd2a-4e22-9655-4be4436afc31",
        "organization_id": "8695ee8f-f4c0-41e3-b040-a1d85dcd291b",
        "name": "Brock",
        "phone_number": "6309564004",
        "email": "brock@turner.co",
        "note": "Yaratıcı not"
      },
    },
  ],
  "sitting_count": 0,
  "reservations_count": 1,
  "waitings_count": 3,
  "tables_count": 0,
  "page_information": {
    "has_next_page": false,
    "current_page": 1,
    "total_count": 1,
    "page_count": 1
  }
}

View Calendar Reservations

HTTP Request

GET /api/v1/reservations/view-calendar

Query Parameters

Parameter Default Description Required
date String REQUIRED
interval Number Example 15-30-60
revenue_center_id String

JSON response body:

{
  "revenue_centers": {
    "04440cc6-fe36-4ada-a674-17a0b77704e2": {
      "id": "04440cc6-fe36-4ada-a674-17a0b77704e2",
      "name": "R1",
      "guest_count": 90,
      "occupancy_rate": 150,
      "average_time_for_reservation": 90,
      "tables": {
        "d90b8747-1fd7-4c7c-8182-a893ad47f0d1": {
          "id": "d90b8747-1fd7-4c7c-8182-a893ad47f0d1",
          "name": "1P",
          "capactiy": 20,
          "reservations": {
            "0d13b9ae-f678-443a-aed9-48e4f90311d5": {
              "id": "0d13b9ae-f678-443a-aed9-48e4f90311d5",
              "status": "init",
              "guest_count": 10,
              "note": "Süper olsun bak!",
              "date": "2020-01-01T00:00:00+03:00",
              "estimated_discharged_at": "2020-01-01T01:30:00+03:00",
              "hotel_room_number": null,
              "tags": [
                {
                  "id":"27856a73-7a03-4b33-af79-6bbfa96eaea4",
                  "name_tr":"Gizli",
                  "name_en":"Secret",
                  "type":"reservation",
                  "icon_type":"generic"
                }
              ],
              "created_at": "2020-01-01T00:00:00+03:00",
              "assigned_at": "2020-01-01T00:00:00+03:00",
              "table_id": "d90b8747-1fd7-4c7c-8182-a893ad47f0d1",
              "revenue_center_id": "04440cc6-fe36-4ada-a674-17a0b77704e2",
              "parent_revenue_center_id": "04440cc6-fe36-4ada-a674-17a0b77704e2",
              "customer": {
                "id": "262a303e-916c-471c-a7a1-b129c33a113b",
                "name": "Daren Hartmann",
                "country_code": null,
                "primary_phone_number": "7446356527",
                "is_anonym": false,
                "blacklist": false
              },
              "reference": {
                "id": "ea0418f1-fd2a-4e22-9655-4be4436afc31",
                "organization_id": "8695ee8f-f4c0-41e3-b040-a1d85dcd291b",
                "name": "Brock",
                "phone_number": "6309564004",
                "email": "brock@turner.co",
                "note": "Yaratıcı not"
              },
              "tables": [
                {
                  "id": "d90b8747-1fd7-4c7c-8182-a893ad47f0d1",
                  "name": "1P",
                  "capacity": 20
                }
              ]
            },
            "af6274dc-5fb9-4fd5-8647-01311457de52": {
              "id": "af6274dc-5fb9-4fd5-8647-01311457de52",
              "status": "init",
              "guest_count": 10,
              "note": "Süper olsun bak!",
              "date": "2020-01-01T00:00:00+03:00",
              "estimated_discharged_at": "2020-01-01T01:30:00+03:00",
              "hotel_room_number": null,
              "tags": [],
              "created_at": "2020-01-01T00:00:00+03:00",
              "assigned_at": "2020-01-01T00:00:00+03:00",
              "table_id": "d90b8747-1fd7-4c7c-8182-a893ad47f0d1",
              "revenue_center_id": "04440cc6-fe36-4ada-a674-17a0b77704e2",
              "parent_revenue_center_id": "04440cc6-fe36-4ada-a674-17a0b77704e2",
              "customer": {
                "id": "262a303e-916c-471c-a7a1-b129c33a113b",
                "name": "Daren Hartmann",
                "country_code": null,
                "primary_phone_number": "7446356527",
                "is_anonym": false,
                "blacklist": false
              },
              "tables": [
                {
                  "id": "d90b8747-1fd7-4c7c-8182-a893ad47f0d1",
                  "name": "1P",
                  "capacity": 20
                }
              ]
            },
            "8de76b16-38c5-42bf-9a37-76057c60ce04": {
              "id": "8de76b16-38c5-42bf-9a37-76057c60ce04",
              "status": "init",
              "guest_count": 10,
              "note": "Süper olsun bak!",
              "date": "2020-01-01T00:00:00+03:00",
              "estimated_discharged_at": "2020-01-01T01:30:00+03:00",
              "hotel_room_number": null,
              "tags": [],
              "created_at": "2020-01-01T00:00:00+03:00",
              "assigned_at": "2020-01-01T00:00:00+03:00",
              "table_id": "d90b8747-1fd7-4c7c-8182-a893ad47f0d1",
              "revenue_center_id": "04440cc6-fe36-4ada-a674-17a0b77704e2",
              "parent_revenue_center_id": "04440cc6-fe36-4ada-a674-17a0b77704e2",
              "customer": {
                "id": "262a303e-916c-471c-a7a1-b129c33a113b",
                "name": "Daren Hartmann",
                "country_code": null,
                "primary_phone_number": "7446356527",
                "is_anonym": false,
                "blacklist": false
              },
              "tables": [
                {
                  "id": "d90b8747-1fd7-4c7c-8182-a893ad47f0d1",
                  "name": "1P",
                  "capacity": 20
                }
              ]
            }
          },
          "lockeds": {}
        }
      },
      "child_revenue_centers": {
        "702013ba-08a7-4f24-aeeb-2fab53f6b8c1": {
          "id": "702013ba-08a7-4f24-aeeb-2fab53f6b8c1",
          "name": "RC",
          "guest_count": 180,
          "occupancy_rate": 300,
          "average_time_for_reservation": 90,
          "tables": {
            "4f78f85d-6c5d-45a2-87ec-b308f833d8ab": {
              "id": "4f78f85d-6c5d-45a2-87ec-b308f833d8ab",
              "name": "1C",
              "capactiy": 20,
              "reservations": {
                "3aff47e5-321c-43fc-b9f8-9bde265f637c": {
                  "id": "3aff47e5-321c-43fc-b9f8-9bde265f637c",
                  "status": "init",
                  "guest_count": 20,
                  "note": "Süper olsun bak!",
                  "date": "2020-01-01T00:00:00+03:00",
                  "estimated_discharged_at": "2020-01-01T01:30:00+03:00",
                  "hotel_room_number": null,
                  "tags": [],
                  "created_at": "2020-01-01T00:00:00+03:00",
                  "assigned_at": "2020-01-01T00:00:00+03:00",
                  "table_id": "4f78f85d-6c5d-45a2-87ec-b308f833d8ab",
                  "revenue_center_id": "702013ba-08a7-4f24-aeeb-2fab53f6b8c1",
                  "parent_revenue_center_id": "04440cc6-fe36-4ada-a674-17a0b77704e2",
                  "customer": {
                    "id": "262a303e-916c-471c-a7a1-b129c33a113b",
                    "name": "Daren Hartmann",
                    "country_code": null,
                    "primary_phone_number": "7446356527",
                    "is_anonym": false,
                    "blacklist": false
                  },
                  "tables": [
                    {
                      "id": "4f78f85d-6c5d-45a2-87ec-b308f833d8ab",
                      "name": "1C",
                      "capacity": 20
                    }
                  ]
                }
              },
              "lockeds": {}
            }
          }
        }
      }
    }
  },
  "meta": {
    "time_series": [
      {
        "starts": "00:00",
        "ends": "01:00",
        "guest_count": 36,
        "reservation_count": 36,
        "capacity": 240
      },
      {
        "starts": "01:00",
        "ends": "02:00",
        "guest_count": 0,
        "reservation_count": 0,
        "capacity": 240
      },
      {
        "starts": "22:00",
        "ends": "23:00",
        "guest_count": 0,
        "reservation_count": 0,
        "capacity": 240
      },
      {
        "starts": "23:00",
        "ends": "00:00",
        "guest_count": 0,
        "reservation_count": 0,
        "capacity": 240
      }
    ],
    "occupancy_rate": 263,
    "reservation_status_statistics": {
      "total_guest": 630,
      "total_upcoming_guest": 630,
      "total_on_table_guest": 0,
      "total_done_guest": 0
    }
  }
}

View List Reservations

HTTP Request

GET /api/v1/reservations/view-list

Query Parameters

Parameter Default Description Required
date String REQUIRED
interval Number Example 15-30-60
revenue_center_id String
slot_id String
order_by date String (date, customer, table, guest_count)
order_direction asc String (asc, desc)

JSON response body:

{
  "revenue_centers": [
    {
      "id": "f937a3ae-32d0-4414-b72f-e61a0af7f613",
      "name": "R1",
      "parent_name": null,
      "average_reservation_time": null,
      "guest_count": 90,
      "reservations": [
        {
          "id": "97e578aa-6e3d-4cf2-856f-60ddab2d1179",
          "status": "init",
          "guest_count": 10,
          "occupied_seat_count": 0,
          "male_cover": 0,
          "female_cover": 0,
          "child_cover": 0,
          "note": "Süper olsun bak!",
          "date": "2020-01-01T00:00:00+03:00",
          "estimated_discharged_at": "2020-01-01T01:30:00+03:00",
          "hotel_room_number": null,
          "tags": [
            {
              "id":"27856a73-7a03-4b33-af79-6bbfa96eaea4",
              "name_tr":"Gizli",
              "name_en":"Secret",
              "type":"reservation",
              "icon_type":"generic"
            }
          ],
          "created_at": "2020-01-01T00:00:00+03:00",
          "assigned_at": "2020-01-01T00:00:00+03:00",
          "table_id": "93de0396-a1df-48ea-a448-b654de3bd385",
          "revenue_center_id": "f937a3ae-32d0-4414-b72f-e61a0af7f613",
          "parent_revenue_center_id": "f937a3ae-32d0-4414-b72f-e61a0af7f613",
          "customer": {
            "id": "91006dc2-034d-40be-b157-72eb6c76bbe2",
            "name": "Phillip Rowe",
            "country_code": null,
            "primary_phone_number": "2597997665",
            "is_anonym": false,
            "blacklist": false
          },
          "reference": {
            "id": "ea0418f1-fd2a-4e22-9655-4be4436afc31",
            "organization_id": "8695ee8f-f4c0-41e3-b040-a1d85dcd291b",
            "name": "Brock",
            "phone_number": "6309564004",
            "email": "brock@turner.co",
            "note": "Yaratıcı not"
          },
          "tables": [
            {
              "id": "93de0396-a1df-48ea-a448-b654de3bd385",
              "name": "1P",
              "capacity": 20
            }
          ]
        }
      ]
    }
  ],
  "meta": {
    "occupancy_rate": 263,
    "reservation_status_statistics": {
      "total_guest": 630,
      "total_upcoming_guest": 630,
      "total_on_table_guest": 0,
      "total_done_guest": 0
    }
  }
}

Show Reservations

HTTP Request

GET /api/v1/reservations/:id

JSON response body:

{
  "id": "09ff23bf-c265-4aa6-a8c1-ae381dfbbf78",
  "type": "reservation",
  "status": "init",
  "guest_count": 5,
  "occupied_seat_count": 0,
  "male_cover": 0,
  "female_cover": 0,
  "child_cover": 0,
  "note": "Süper olsun bak!",
  "organization_type": "birthday",
  "tags": [
    {
      "id":"27856a73-7a03-4b33-af79-6bbfa96eaea4",
      "name_tr":"Gizli",
      "name_en":"Secret",
      "type":"reservation",
      "icon_type":"generic"
    }
  ],
  "occupied_seat_count": 0,
  "date": "2021-04-16T13:15:59+03:00",
  "estimated_discharged_at": "2021-04-16T14:45:59+03:00",
  "date_as_string": "2021-04-16",
  "first_date": "2021-04-16T13:15:59+03:00",
  "created_at": "2021-04-16T13:15:59+03:00",
  "arrival_state": "walkin",
  "source_detail": null,
  "is_dining": false,
  "confirmation_source": null,
  "is_getting_paid": null,
  "hotel_room_number": null,
  "is_hotel_customer": false,
  "has_provision_confirmation": false,
  "provision_status": "has_not_provision_confirmation",
  "make_a_reservation": false,
  "customer_id": "e0b85eb2-f7d6-4cff-b8a4-d15872061226",
  "table_id": "999ebe53-ee80-4a59-a53e-590ac4fd82fe",
  "table_ids": [
    "999ebe53-ee80-4a59-a53e-590ac4fd82fe"
  ],
  "revenue_center_id": "627fd73a-2ec9-4397-8e10-7e2d8e9b0ebd",
  "table": {
    "id": "999ebe53-ee80-4a59-a53e-590ac4fd82fe",
    "name": "111",
    "plan": null,
    "capacity": 0,
    "parent_id": null,
    "revenue_center_id": "627fd73a-2ec9-4397-8e10-7e2d8e9b0ebd",
    "merged_capacity": 0
  },
  "tables": [
    {
      "id": "999ebe53-ee80-4a59-a53e-590ac4fd82fe",
      "name": "111",
      "plan": null,
      "capacity": 0,
      "parent_id": null,
      "revenue_center_id": "627fd73a-2ec9-4397-8e10-7e2d8e9b0ebd",
      "merged_capacity": 0
    }
  ],
  "customer": {
    "id": "e0b85eb2-f7d6-4cff-b8a4-d15872061226",
    "name": "Khadijah Johnson",
    "first_name": "Khadijah",
    "last_name": "Johnson",
    "nickname": null,
    "country_code": null,
    "primary_phone_number": "5474830456",
    "type_id": "99eadcad-ce38-4fdf-9405-5ac0ea15bbab",
    "is_anonym": false,
    "email": null,
    "blacklist": false,
    "gender": "male",
    "country": "tr",
    "allow_sms": true,
    "note": null
  },
  "check": null,
  "reason": null
}

Reservation History

HTTP Request

GET /api/v1/reservations/:id/history

JSON response body:

[
  {
    "whodunnit":"Atakandunnit",
    "event":"create",
    "type":"reservation",
    "calendar_id":"88e1d31e-9bec-402d-a810-8ec37ccb8fda",
    "at":"2023-06-05T16:23:09.619+03:00"},
  {
    "whodunnit":"Atakandunnit",
    "event":"update",
    "type":"reservation",
    "at":"2023-06-05T16:23:09.681+03:00",
    "field":"date",
    "from":"2023-06-05T16:23:09.601+03:00",
    "to":"2023-06-07T16:23:09.679+03:00"
  },
  {
    "whodunnit":"Atakandunnit",
    "event":"update",
    "type":"reservation",
    "at":"2023-06-05T16:23:09.760+03:00",
    "field":"tables",
    "from":"",
    "to":"T1, T2"
  },
  {
    "whodunnit":"Atakandunnit",
    "event":"create",
    "type":"prepayment",
    "payment_id":"3bd63e39-f912-422f-8ad7-af8fbcfa9a0e",
    "at":"2023-06-05T16:23:10.031+03:00"
  }
]

Create Reservation

HTTP Request

POST /api/v1/calendars

Body Parameters

Parameter Default Description Required
date String REQUIRED
estimated_discharged_at String
note String
plate String
organization_type String
tag_ids Array(String)
guest_count Number REQUIRED
is_waiting Boolean
is_dining Boolean
hotel_room_number String
source_detail String
customer_id String REQUIRED
reference_id String
revenue_center_id String REQUIRED
table_id String
source_id String
has_provision_confirmation Boolean
make_a_reservation Boolean
allergen_or_intolerance Boolean
reservation_request_id String

JSON response body:

{
  "id": "34c436cc-f64d-4c8e-9a3c-10f928deb743",
  "type": "reservation",
  "status": "init",
  "guest_count": 6,
  "occupied_seat_count": 0,
  "male_cover": 0,
  "female_cover": 0,
  "child_cover": 0,
  "note": "Voluptate rerum et perspiciatis.",
  "organization_type": "birthday",
  "tags": [
    {
      "id":"27856a73-7a03-4b33-af79-6bbfa96eaea4",
      "name_tr":"Gizli",
      "name_en":"Secret",
      "type":"reservation",
      "icon_type":"generic"
    }
  ],
  "revenue_center_id": "0cbdde16-1737-4b63-a167-fac056f17949",
  "occupied_seat_count": 0,
  "date": "2021-10-01T13:41:16+03:00",
  "first_date": "2021-10-01T13:41:16+03:00",
  "created_at": "2021-10-01T13:41:16+03:00",
  "arrival_state": "vale",
  "source": "Riley Frami",
  "source_detail": null,
  "is_dining": true,
  "table_id": "8852108c-7d0d-4cad-9b43-5b22b29dc588",
  "table_ids": [
    "8852108c-7d0d-4cad-9b43-5b22b29dc588"
  ],
  "confirmation_source": null,
  "is_getting_paid": null,
  "hotel_room_number": null,
  "is_hotel_customer": false,
  "has_provision_confirmation": false,
  "provision_status": "has_not_provision_confirmation",
  "make_a_reservation": true,
  "customer": {
    "id": "abf24fca-b8bb-4b83-bbee-b77f7dc35ebb",
    "first_name": "Ladawn",
    "last_name": "Torp",
    "country_code": null,
    "primary_phone_number": "8339843568",
    "type_id": "5537edaa-1106-402c-82b7-b4655eb32144",
    "is_anonym": false,
    "email": null,
    "blacklist": false,
    "gender": "male",
    "country": "tr",
    "nickname": null,
    "allow_sms": true,
    "note": null
  },
  "reference": null,
  "store": {
    "id": "005b4073-3325-46f4-9bd0-08af16ec5a1c",
    "name": "Store"
  }
}

Update Reservation

HTTP Request

PATCH /api/v1/calendars/:id

Body Parameters

Parameter Default Description Required
date String
estimated_discharged_at String
note String
plate String
status String
organization_type String
tag_ids Array(String)
guest_count Number
occupied_seat_count Number
male_cover Number
female_cover Number
child_cover Number
is_waiting Boolean
is_dining Boolean
hotel_room_number String
source_detail String
customer_id String
reference_id String
revenue_center_id String
table_id String
source_id String
make_a_reservation Boolean
allergen_or_intolerance Boolean

JSON response body:

{
  "id": "87e5f888-85ea-47d6-bff5-b3f2e90ebee4",
  "type": "reservation",
  "status": "cancel",
  "guest_count": 7,
  "occupied_seat_count": 0,
  "male_cover": 0,
  "female_cover": 0,
  "child_cover": 0,
  "note": "Necessitatibus laborum id asperiores.",
  "organization_type": "birthday",
  "tags": [
    {
      "id":"27856a73-7a03-4b33-af79-6bbfa96eaea4",
      "name_tr":"Gizli",
      "name_en":"Secret",
      "type":"reservation",
      "icon_type":"generic"
    }
  ],
  "revenue_center_id": "1697ab90-6df9-443b-9b0b-482675d0fa5d",
  "occupied_seat_count": 9,
  "date": "2020-01-01T00:00:00+03:00",
  "first_date": "2020-01-01T00:00:00+03:00",
  "created_at": "2020-01-01T00:00:00+03:00",
  "arrival_state": "walkin",
  "source": "Coy Stiedemann",
  "source_detail": "Aşkın Bey",
  "is_dining": true,
  "table_id": null,
  "table_ids": [],
  "confirmation_source": null,
  "is_getting_paid": null,
  "hotel_room_number": null,
  "is_hotel_customer": false,
  "has_provision_confirmation": false,
  "provision_status": "has_not_provision_confirmation",
  "make_a_reservation": false,
  "customer": {
    "id": "7dd1dc04-9678-472f-b39e-c6db025c459e",
    "first_name": "Dustin",
    "last_name": "Brekke",
    "country_code": null,
    "primary_phone_number": "8034775864",
    "type_id": "8ce29ae8-e0b2-4db5-a180-7e0dcf54870d",
    "is_anonym": false,
    "email": null,
    "blacklist": false,
    "gender": "male",
    "country": "tr",
    "nickname": null,
    "allow_sms": true,
    "note": null
  },
  "reference": null,
  "store": {
    "id": "c435cc71-3485-4c8b-93ca-c9a42ae690b6",
    "name": "Store"
  }
}

Upcoming Reservations

HTTP Request

GET /api/v1/calendars/upcoming

Query Parameters

Parameter Default Description Required
start_date String REQUIRED
end_date String REQUIRED
customer_name String
revenue_center_id String
query String
page Number
per_page 50 Number
order_by date String (date, customer, revenue_center, guest_count, table)
order_direction asc String (asc, desc)

JSON response body:

{
  "calendars": [
    {
      "id": "78817ab2-7bde-4082-903c-9b046f08bd2d",
      "type": "reservation",
      "status": "init",
      "guest_count": 5,
      "male_cover": 0,
      "female_cover": 0,
      "child_cover": 0,
      "note": "Süper olsun bak!",
      "organization_type": "birthday",
      "tags": [],
      "revenue_center_id": "b7a705e6-e424-45ff-8ed0-63f948f7194e",
      "occupied_seat_count": 0,
      "date": "2017-08-16T00:00:00+03:00",
      "first_date": "2017-08-16T00:00:00+03:00",
      "created_at": "2021-10-01T13:19:14+03:00",
      "arrival_state": "walkin",
      "source": "Fr. Kip Bergstrom",
      "source_detail": null,
      "is_dining": false,
      "table_id": "e3f93460-494c-4285-8267-119da3322632",
      "table_ids": [
        "e3f93460-494c-4285-8267-119da3322632",
        "a669f7b4-3f6c-472d-82ac-cf287d508af7"
      ],
      "confirmation_source": null,
      "is_getting_paid": null,
      "hotel_room_number": null,
      "is_hotel_customer": false,
      "has_provision_confirmation": false,
      "provision_status": "has_not_provision_confirmation",
      "make_a_reservation": false,
      "customer": {
        "id": "cd3f5c72-00af-4305-b1a3-d27e20a7ff28",
        "first_name": "Tomika",
        "last_name": "Bogan",
        "country_code": "95",
        "primary_phone_number": "9565779458",
        "type_id": "f822fad1-9f13-44df-9d56-c7fce0f6216a",
        "is_anonym": false,
        "email": null,
        "blacklist": false,
        "gender": "male",
        "country": "tr",
        "nickname": null,
        "allow_sms": true,
        "note": null
      },
      "reference": {
        "id": "cd3f5c72-00af-4305-b1a3-d27e20a7ff28",
        "organization_id": "cd3f5c72-00af-4305-b1a3-d27e20a7ff28",
        "name": "Ali Veli Konya",
        "country_code": "95",
        "phone_number": "9565779458",
        "email": "test@test.com",
        "note": "not"
      },
      "table": {
        "id": "e3f93460-494c-4285-8267-119da3322632",
        "name": "111",
        "plan": null,
        "capacity": 0,
        "parent_id": null,
        "revenue_center_id": "b7a705e6-e424-45ff-8ed0-63f948f7194e",
        "merged_capacity": 0
      },
      "tables": [
        {
          "id": "e3f93460-494c-4285-8267-119da3322632",
          "name": "111",
          "plan": null,
          "capacity": 0,
          "parent_id": null,
          "revenue_center_id": "b7a705e6-e424-45ff-8ed0-63f948f7194e",
          "merged_capacity": 0
        },
        {
          "id": "a669f7b4-3f6c-472d-82ac-cf287d508af7",
          "name": "111",
          "plan": null,
          "capacity": 0,
          "parent_id": null,
          "revenue_center_id": "b7a705e6-e424-45ff-8ed0-63f948f7194e",
          "merged_capacity": 0
        }
      ],
      "any_provision": false,
      "revenue_center_name": "Bahçe",
      "child_revenue_center_name": "Salon"
    }
  ],
  "total_reservation_count": 1,
  "current_page": 1,
  "is_next_page": false
}

Group By Day

HTTP Request

GET /api/v1/calendars/group-by-day

Query Parameters

Parameter Default Description Required
start_date String
query String
with_reservations Boolean
revenue_center_id String

JSON response body:

[
  {
    "date": "2020/01/01",
    "day": "Çarşamba (Bugün)",
    "guest_count": 10,
    "occupancy_rate": 17,
    "available_capacity": 50
  },
  {
    "date": "2020/01/08",
    "day": "Çarşamba",
    "guest_count": 20,
    "occupancy_rate": 33,
    "available_capacity": 40
  }
]

Check-in Reservation

HTTP Request

PATCH /api/v1/reservations/:id/check-in

Body Parameters

Parameter Default Description Required
occupied_seat_count Integer
male_cover Number
female_cover Number
child_cover Number
will_not_come Boolean

JSON response body:

{
  "id": "7b4f8bcb-6e1b-4ca9-80e6-c4f33eaa7f1c",
  "type": "reservation",
  "status": "sitting",
  "guest_count": 5,
  "male_cover": 0,
  "female_cover": 0,
  "child_cover": 0,
  "note": "Süper olsun bak!",
  "organization_type": "birthday",
  "tags": [],
  "occupied_seat_count": 0,
  "date": "2021-01-12T12:55:10+03:00",
  "estimated_discharged_at": "2021-01-12T14:25:10+03:00",
  "date_as_string": "2021-01-12",
  "first_date": "2021-01-12T12:55:10+03:00",
  "created_at": "2021-01-12T12:55:10+03:00",
  "arrival_state": "walkin",
  "source_detail": null,
  "is_dining": false,
  "confirmation_source": null,
  "is_getting_paid": null,
  "hotel_room_number": "1010",
  "is_hotel_customer": false,
  "has_provision_confirmation": false,
  "provision_status": "has_not_provision_confirmation",
  "make_a_reservation": false,
  "customer_id": "6ff55535-a6b5-44df-b186-7beb35b210c5",
  "table_id": "16404f39-2533-4ebe-be11-d07bf6d65bbb",
  "table_ids":[
    "16404f39-2533-4ebe-be11-d07bf6d65bbb"
  ],
  "revenue_center_id": "481aee71-65c5-4b71-8ad8-baac94ba93b9",
  "revenue_center_name": "RVC"
}

Check-out Reservation

HTTP Request

PATCH /api/v1/reservations/:id/check-out

Parameter Default Description Required
charge Number

JSON response body:

{
  "id": "9e491ad6-8a6f-4bfd-a02b-d13170178110",
  "type": "reservation",
  "status": "done",
  "guest_count": 5,
  "male_cover": 0,
  "female_cover": 0,
  "child_cover": 0,
  "note": "Süper olsun bak!",
  "organization_type": "birthday",
  "organization_type_as_integer": 0,
  "tags": [],
  "occupied_seat_count": 0,
  "date": "2021-08-24T09:48:01+03:00",
  "estimated_discharged_at": "2021-08-24T11:18:01+03:00",
  "date_as_string": "2021-08-24",
  "first_date": "2021-08-24T09:48:01+03:00",
  "created_at": "2021-08-24T09:48:01+03:00",
  "arrival_state": "walkin",
  "source_detail": null,
  "is_dining": false,
  "confirmation_source": null,
  "is_getting_paid": null,
  "hotel_room_number": null,
  "is_hotel_customer": false,
  "has_provision_confirmation": false,
  "provision_status": "has_not_provision_confirmation",
  "make_a_reservation": false,
  "customer_id": "b919fabc-a050-4f71-8d2b-1e6eb27c56b5",
  "table_id": "35af26c0-30f5-45d2-8643-e3d2e266f0ec",
  "table_ids": [
    "35af26c0-30f5-45d2-8643-e3d2e266f0ec"
  ],
  "revenue_center_id": "d9eba29b-2ca5-4dc2-9c48-88a8f9c4dc1d",
  "parent_revenue_center_id": "d9eba29b-2ca5-4dc2-9c48-88a8f9c4dc1d",
  "child_revenue_center_id": null,
  "table": {
    "id": "35af26c0-30f5-45d2-8643-e3d2e266f0ec",
    "name": "111",
    "plan": null,
    "capacity": 5,
    "parent_id": null,
    "revenue_center_id": "d9eba29b-2ca5-4dc2-9c48-88a8f9c4dc1d"
  },
  "tables": [
    {
      "id": "35af26c0-30f5-45d2-8643-e3d2e266f0ec",
      "name": "111",
      "plan": null,
      "capacity": 5,
      "parent_id": null,
      "revenue_center_id": "d9eba29b-2ca5-4dc2-9c48-88a8f9c4dc1d"
    }
  ],
  "customer": {
    "id": "b919fabc-a050-4f71-8d2b-1e6eb27c56b5",
    "first_name": "Phoebe",
    "last_name": "Nicolas",
    "name": "Phoebe Nicolas",
    "country_code": null,
    "primary_phone_number": "5255235657",
    "small_image_url": null,
    "medium_image_url": null,
    "large_image_url": null,
    "type_id": "af399c10-c426-42ed-b3be-094f00d4b834",
    "type_name": "standard",
    "is_default_type": true,
    "is_anonym": false,
    "email": null,
    "blacklist": false,
    "gender": "male",
    "gender_as_integer": 1,
    "country": "tr",
    "allow_sms": true,
    "allow_email": null,
    "note": null
  },
  "check": null,
  "reason": null
}

Undo-Check-in Reservation

HTTP Request

PATCH /api/v1/reservations/:id/undo-check-in

JSON response body:

{
  "id": "7b4f8bcb-6e1b-4ca9-80e6-c4f33eaa7f1c",
  "type": "reservation",
  "status": "init",
  "guest_count": 5,
  "male_cover": 0,
  "female_cover": 0,
  "child_cover": 0,
  "note": "Süper olsun bak!",
  "organization_type": "birthday",
  "tags": [],
  "occupied_seat_count": 0,
  "date": "2021-01-12T12:55:10+03:00",
  "estimated_discharged_at": "2021-01-12T14:25:10+03:00",
  "date_as_string": "2021-01-12",
  "first_date": "2021-01-12T12:55:10+03:00",
  "created_at": "2021-01-12T12:55:10+03:00",
  "arrival_state": "walkin",
  "source_detail": null,
  "is_dining": false,
  "confirmation_source": null,
  "is_getting_paid": null,
  "hotel_room_number": "1010",
  "is_hotel_customer": false,
  "has_provision_confirmation": false,
  "provision_status": "has_not_provision_confirmation",
  "make_a_reservation": false,
  "customer_id": "6ff55535-a6b5-44df-b186-7beb35b210c5",
  "table_id": "16404f39-2533-4ebe-be11-d07bf6d65bbb",
  "table_ids":[
    "16404f39-2533-4ebe-be11-d07bf6d65bbb"
  ],
  "revenue_center_id": "481aee71-65c5-4b71-8ad8-baac94ba93b9",
  "revenue_center_name": "RVC"
}

Confirm Reservation

HTTP Request

PATCH /api/v1/reservations/:id/confirm

JSON response body:

{
  "id": "9e491ad6-8a6f-4bfd-a02b-d13170178110",
  "type": "reservation",
  "status": "confirm",
  "guest_count": 5,
  "male_cover": 0,
  "female_cover": 0,
  "child_cover": 0,
  "note": "Süper olsun bak!",
  "organization_type": "birthday",
  "organization_type_as_integer": 0,
  "tags": [],
  "occupied_seat_count": 0,
  "date": "2021-08-24T09:48:01+03:00",
  "estimated_discharged_at": "2021-08-24T11:18:01+03:00",
  "date_as_string": "2021-08-24",
  "first_date": "2021-08-24T09:48:01+03:00",
  "created_at": "2021-08-24T09:48:01+03:00",
  "arrival_state": "walkin",
  "source_detail": null,
  "is_dining": false,
  "confirmation_source": null,
  "is_getting_paid": null,
  "hotel_room_number": null,
  "is_hotel_customer": false,
  "has_provision_confirmation": false,
  "provision_status": "has_not_provision_confirmation",
  "make_a_reservation": false,
  "customer_id": "b919fabc-a050-4f71-8d2b-1e6eb27c56b5",
  "table_id": "35af26c0-30f5-45d2-8643-e3d2e266f0ec",
  "table_ids": [
    "35af26c0-30f5-45d2-8643-e3d2e266f0ec"
  ],
  "revenue_center_id": "d9eba29b-2ca5-4dc2-9c48-88a8f9c4dc1d",
  "parent_revenue_center_id": "d9eba29b-2ca5-4dc2-9c48-88a8f9c4dc1d",
  "child_revenue_center_id": null,
  "table": {
    "id": "35af26c0-30f5-45d2-8643-e3d2e266f0ec",
    "name": "111",
    "plan": null,
    "capacity": 5,
    "parent_id": null,
    "revenue_center_id": "d9eba29b-2ca5-4dc2-9c48-88a8f9c4dc1d"
  },
  "tables": [
    {
      "id": "35af26c0-30f5-45d2-8643-e3d2e266f0ec",
      "name": "111",
      "plan": null,
      "capacity": 5,
      "parent_id": null,
      "revenue_center_id": "d9eba29b-2ca5-4dc2-9c48-88a8f9c4dc1d"
    }
  ],
  "customer": {
    "id": "b919fabc-a050-4f71-8d2b-1e6eb27c56b5",
    "first_name": "Phoebe",
    "last_name": "Nicolas",
    "name": "Phoebe Nicolas",
    "country_code": null,
    "primary_phone_number": "5255235657",
    "small_image_url": null,
    "medium_image_url": null,
    "large_image_url": null,
    "type_id": "af399c10-c426-42ed-b3be-094f00d4b834",
    "type_name": "standard",
    "is_default_type": true,
    "is_anonym": false,
    "email": null,
    "blacklist": false,
    "gender": "male",
    "gender_as_integer": 1,
    "country": "tr",
    "allow_sms": true,
    "allow_email": null,
    "note": null
  },
  "check": null,
  "reason": null
}

Cancel Reservation

HTTP Request

PATCH /api/v1/reservations/:id/cancel

JSON response body:

{
  "store_id": "97ce3a99-e83f-4894-8cc6-d590cb739599",
  "id": "bfcf358f-c952-4edd-a03f-220c7d36650a",
  "reason_id": "9f342c61-5c7c-4d27-ae64-104e795795a1",
  "table_id": null,
  "revenue_center_id": null,
  "organization_id": "ac2984d6-7e61-423b-b627-1248a1d62c5e",
  "customer_id": "cb69fbea-a7bb-42ed-9a87-563b8dc04eed",
  "guest_count": 5,
  "status": "cancel",
  "female_cover": 0,
  "male_cover": 0,
  "child_cover": 0,
  "first_date": "2021-01-13T09:54:48.255+03:00",
  "discharged_at": null,
  "estimated_discharged_at": "2021-01-13T09:54:48.255+03:00",
  "note": "Süper olsun bak!",
  "organization_type": "birthday",
  "tags": [],
  "created_at": "2021-01-13T09:54:48.396+03:00",
  "updated_at": "2021-01-13T09:54:49.195+03:00",
  "occupied_seat_count": 0,
  "date": "2021-01-13T09:54:48.255+03:00",
  "arrival_state": "walkin",
  "is_deleted": false,
  "assigned_at": null,
  "source_detail": null,
  "job_id": "f432078aa7c422175b4d4f32",
  "is_dining": false,
  "source_id": "80636b45-32a0-4ea2-aa85-e11d989303bc",
  "child_revenue_center_id": null,
  "is_getting_paid": null,
  "survey_sent_at": null,
  "type": "reservation",
  "confirmation_source": null,
  "confirmed_at": null,
  "slug": "cf6d8191",
  "has_provision_confirmation": false,
  "hotel_room_number": "1010",
  "user_id": null,
  "confirmation_job_id": null,
  "make_a_reservation": false
}

Batch Check Out

HTTP Request

PATCH /api/v1/calendars/batch_check_out

Body Parameters

Parameter Default Description Required
revenue_center_ids []String REQUIRED

JSON response body:


  HTTP/1.1 200 OK

Delay

HTTP Request

PATCH /api/v1/calendars/:id/delay

JSON response body:


  HTTP/1.1 204 No Content

Delayed Reservations

HTTP Request

GET /api/v1/calendars/delayed_calendars

JSON response body:

{
  "calendars": [
    {
      "table_id": "null",
      "id": "7f56a2fc-3591-4742-b952-63708c51608b",
      "status": "waiting",
      "type": "reservation",
      "calendar_id": "7f56a2fc-3591-4742-b952-63708c51608b",
      "guest_count": 5,
      "note": "Süper olsun bak!",
      "organization_type": "birthday",
      "tags": [],
      "calendar_status": "waiting",
      "revenue_center_id": "null",
      "occupied_seat_count": 0,
      "date": "2018-05-17T10:00:00+03:00",
      "first_date": "2018-05-07T14:34:25+03:00",
      "arrival_state": "walkin",
      "source": "Jace Spinka DDS",
      "source_detail": "null",
      "is_dining": false,
      "is_getting_paid": false,
      "hotel_room_number": "null",
      "is_hotel_customer": false,
      "has_provision_confirmation": false,
      "provision_status": "success",
      "customer": {
        "id": "8395670e-3f00-4d5e-879b-2973bdc48433",
        "first_name": "Chad",
        "last_name": "Kemmer",
        "primary_phone_number": "2965183817",
        "type_id": "cc83edda-90af-40ea-925b-b0967ec7ec17",
        "country_code": "90",
        "email": "null",
        "blacklist": false,
        "is_anonym": false,
        "gender": "male",
        "country": "tr",
        "nickname": "null"
      }
    }
  ]
}

Reservation Notification

Show Reservation Sms

HTTP Request

GET /api/v1/reservations/:id/sms

Accept-Language: tr, en

JSON response body:

{
  "sms_text": "Değerli müşterimiz, Doromco şubemizde 01/03/22 tarihinde, 12:00 saatinde 5 kişilik rezervasyon kaydınız bulunmaktadır. Rezervasyon kaydınızı onaylamak için lütfen tıklayınız: "
}

Create Reservation Notification

HTTP Request

POST /api/v1/reservations/:id/notify

JSON response body:


  HTTP/1.1 200 OK

Revenue Centers

Get Revenue Centers

HTTP Request

GET /api/v1/revenue_centers

JSON response body:

{
  "revenue_centers": [
    {
      "id": "ac2c8c6f-656c-43cf-9807-872dd37a2553",
      "name": "RVC",
      "grid_size_x": 4,
      "grid_size_y": 4,
      "average_time_for_reservation": 90,
      "interval_time_for_reservation": 15,
      "work_start_time": "07:00",
      "work_end_time": "23:00",
      "today_work_start_at": "2022-06-08T07:00:00.000+03:00",
      "today_work_end_at": "2022-06-09T03:00:00.000+03:00",
      "allow_reservation_request": true,
      "allow_online_reservation": true,
      "integration_source": "simpra",
      "tables_count": 20,
      "store_pin_code": 8721,
      "store_id": "1b0ff384-9c1e-4f4b-8b22-98b71ddcc414",
      "store_name": "Store",
      "child_revenue_centers": []
    },
    {
      "id": "cd159f14-da34-4df8-bde8-1307d0652661",
      "name": "RVC",
      "grid_size_x": 4,
      "grid_size_y": 4,
      "average_time_for_reservation": 90,
      "interval_time_for_reservation": 15,
      "work_start_time": "20:00",
      "work_end_time": "03:00",
      "today_work_start_at": "2022-06-08T07:00:00.000+03:00",
      "today_work_end_at": "2022-06-09T03:00:00.000+03:00",
      "allow_reservation_request": true,
      "allow_online_reservation": true,
      "integration_source": null,
      "tables_count": 12,
      "store_pin_code": 3335,
      "store_id": "1b0ff384-9c1e-4f4b-8b22-98b71ddcc414",
      "store_name": "Store",
      "child_revenue_centers": [
        {
          "id": "fbe49a6c-cbf7-491c-98cd-750518833102",
          "name": "RVC",
          "grid_size_x": 4,
          "grid_size_y": 4,
          "average_time_for_reservation": 90,
          "interval_time_for_reservation": 15,
          "work_start_time": "07:00",
          "work_end_time": "23:00",
          "today_work_start_at": "2022-06-08T07:00:00.000+03:00",
          "today_work_end_at": "2022-06-09T03:00:00.000+03:00",
          "allow_reservation_request": true,
          "allow_online_reservation": true,
          "integration_source": null,
          "tables_count": 12,
          "store_pin_code": 3335,
          "store_id": "1b0ff384-9c1e-4f4b-8b22-98b71ddcc414",
          "store_name": "Store",
        },
        {
          "id": "952192e1-15c2-4ead-9748-9ee2e402b5a0",
          "name": "RVC",
          "grid_size_x": 4,
          "grid_size_y": 4,
          "average_time_for_reservation": 90,
          "interval_time_for_reservation": 15,
          "work_start_time": "07:00",
          "work_end_time": "23:00",
          "today_work_start_at": "2022-06-08T07:00:00.000+03:00",
          "today_work_end_at": "2022-06-09T03:00:00.000+03:00",
          "allow_reservation_request": true,
          "allow_online_reservation": true,
          "integration_source": null,
          "tables_count": 12,
          "store_pin_code": 3335,
          "store_id": "1b0ff384-9c1e-4f4b-8b22-98b71ddcc414",
          "store_name": "Store",
        }
      ]
    },
  ],
  "page_information": {
    "has_next_page": false,
    "current_page": 1,
    "total_count": 1,
    "page_count": 1
  },
}

Show Revenue Center

HTTP Request

GET /api/v1/revenue_centers/:id

JSON response body:

{
  "revenue_center": {
    "id": 8768,
    "name": "Bahçe",
    "grid_size_x": 5,
    "grid_size_y": 5,
    "interval_time_for_reservation": 15,
    "work_start_time": "07:00",
    "work_end_time": "23:00",
    "today_work_start_at": "2022-06-08T07:00:00.000+03:00",
    "today_work_end_at": "2022-06-09T03:00:00.000+03:00",
    "allow_reservation_request": true,
    "allow_online_reservation": true,
    "integration_source": null,
    "tables_count": 12,
    "store_pin_code": 3335,
    "store_id": "1b0ff384-9c1e-4f4b-8b22-98b71ddcc414",
    "store_name": "Store",
    "child_revenue_centers": [
      {
        "id": "bc3330c5-25a5-47bf-9733-b01101b82a26",
        "name": "Bahçecik",
        "grid_size_x": 4,
        "grid_size_y": 4,
        "interval_time_for_reservation": 15,
        "work_start_time": "07:00",
        "work_end_time": "23:00",
        "today_work_start_at": "2022-06-08T07:00:00.000+03:00",
        "today_work_end_at": "2022-06-09T03:00:00.000+03:00",
        "allow_reservation_request": true,
        "allow_online_reservation": true,
        "store_pin_code": 3930,
        "tables_count": 0,
        "children": []
      }
    ]
  }
}

Create Revenue Center

HTTP Request

POST /api/v1/revenue_centers

Body Parameters

Parameter Default Description Required
name String REQUIRED
average_reservation_time Number REQUIRED
interval_time_for_reservation Number REQUIRED
work_start_time String REQUIRED
work_end_time String REQUIRED
allow_reservation_request Boolean
allow_online_reservation Boolean
grid_size_x Number
grid_size_y Number
slot Object

Slot will be created after rvc if slot param is passed.

JSON request body:

{
  "name": "Center of Revenue",
  "average_reservation_time": 60,
  "interval_time_for_reservation": 30,
  "work_start_time": "08:00",
  "work_end_time": "23:00",
  "allow_reservation_request": true,
  "allow_online_reservation": true,
  "slot": {
    "name": "Awesome Slot",
    "start_time": "08:00",
    "end_time": "09:00",
    "capacities": [
      {
        "start_time": "08:00",
        "capacity": 0
      },
      {
        "start_time": "08:30",
        "capacity": 20
      }
    ],
    "online_capacities": [
      {
        "start_time": "08:00",
        "capacity": 0
      },
      {
        "start_time": "08:30",
        "capacity": 20
      }
    ],
    "request_capacities": [
      {
        "start_time": "08:00",
        "capacity": 0
      },
      {
        "start_time": "08:30",
        "capacity": 20
      }
    ]
  }
}

JSON response body:

{
  "revenue_center": {
    "id": "b9a6a876-84a3-4c31-8f11-eff3164c6ebc",
    "name": "Center of Revenue",
    "grid_size_x": 5,
    "grid_size_y": 5,
    "average_time_for_reservation": 60,
    "interval_time_for_reservation": 30,
    "work_start_time": "08:00",
    "work_end_time": "23:00",
    "today_work_start_at": "2022-12-13T08:00:00.000+03:00",
    "today_work_end_at": "2022-12-13T23:00:00.000+03:00",
    "allow_reservation_request": true,
    "allow_online_reservation": true,
    "is_active": true,
    "integration_source": null,
    "tables_count": 0,
    "store_pin_code": 3293,
    "store_id": "65b6a8ba-d500-4511-9536-d9c544728aa6",
    "store_name": "Store",
    "child_revenue_centers": [],
    "slots": [
      {
        "id": "ffc041c7-a281-448d-bf15-5246f5aa84af",
        "name": "Awesome Slot",
        "start_time": "08:00",
        "end_time": "09:00",
        "color": null,
        "capacities": [
          {
            "start_time": "08:00",
            "capacity": 0
          },
          {
            "start_time": "08:30",
            "capacity": 20
          }
        ],
        "online_capacities": [
          {
            "start_time": "08:00",
            "capacity": 0
          },
          {
            "start_time": "08:30",
            "capacity": 20
          }
        ],
        "request_capacities": [
          {
            "start_time": "08:00",
            "capacity": 0
          },
          {
            "start_time": "08:30",
            "capacity": 20
          }
        ],
        "revenue_center_id": "b9a6a876-84a3-4c31-8f11-eff3164c6ebc",
        "store_id": null,
        "store_pin_code": null
      }
    ]
  }
}

Update Revenue Center

HTTP Request

PATCH /api/v1/revenue_centers/:id

Body Parameters

Parameter Default Description Required
name String
grid_size_x Number
grid_size_y Number
average_reservation_time Number
interval_time_for_reservation Number
work_start_time String
work_end_time String
allow_reservation_request Boolean
allow_online_reservation Boolean

JSON response body:

{
  "revenue_center": {
    "id": 8768,
    "name": "Bahçe",
    "grid_size_x": 5,
    "grid_size_y": 5,
    "interval_time_for_reservation": 15,
    "work_start_time": "07:00",
    "work_end_time": "23:00",
    "today_work_start_at": "2022-06-08T07:00:00.000+03:00",
    "today_work_end_at": "2022-06-09T03:00:00.000+03:00",
    "allow_reservation_request": true,
    "allow_online_reservation": true,
    "integration_source": null,
    "tables_count": 12,
    "store_pin_code": 3335,
    "store_id": "1b0ff384-9c1e-4f4b-8b22-98b71ddcc414",
    "store_name": "Store",
    "child_revenue_centers": [
      {
        "id": "bc3330c5-25a5-47bf-9733-b01101b82a26",
        "name": "Bahçecik",
        "grid_size_x": 4,
        "grid_size_y": 4,
        "interval_time_for_reservation": 15,
        "work_start_time": "07:00",
        "work_end_time": "23:00",
        "today_work_start_at": "2022-06-08T07:00:00.000+03:00",
        "today_work_end_at": "2022-06-09T03:00:00.000+03:00",
        "allow_reservation_request": true,
        "allow_online_reservation": true,
        "store_pin_code": 3930,
        "tables_count": 0,
        "children": []
      }
    ]
  }
}

Destroy Revenue Center

HTTP Request

DELETE /api/v1/revenue_centers/:id

JSON response body:


  HTTP/1.1 200 OK

Revenue Center Insert At

HTTP Request

POST /api/v1/revenue_centers/:id/insert

Body Parameters

Parameter Default Description Required
position Number REQUIRED

JSON response body:


  HTTP/1.1 200 OK

Reviews

Index Reviews

HTTP Request

POST /api/v1/reviews

Description

Body Parameters

Parameter Default Description Required
start_at String
end_at String
status String (read, unread)
score Number
revenue_center_id String
customer String
customer_id String
customer_type_ids [uuid]String
order_by String
order_direction String
page Number
per_page 50 Number
emails []String
export_to_mail Boolean

JSON request body:

{
  "status": "read",
  "type": "customer",
  "customer": "Troy Monahan",
  "customer_id": null,
  "emails": ["test@mail.com", "mail@protel.com"],
  "export_to_mail": true,
  "order_by": "date",
  "order_direction": "desc",
  "page": 1,
  "per_page": 50,
}

JSON response body:

{
  "reviews": [
    {
      "id":"83684401-e565-445e-adb3-77a05b6f306a",
      "status":"unread",
      "platform":"checkandplace",
      "created_at":"28.02.2024 12:00",
      "calendar_date":"01.03.2024 12:00",
      "feedback":"Bu not harika bir review notudur!",
      "score":5,
      "food":4,
      "service":3,
      "setting":2,
      "customer_name":"Everett Schmitt",
      "revenue_center_name":"RVC1"
    }
  ],
  "page_information": {
    "has_next_page":false,
    "current_page":1,
    "total_count":1,
    "page_count":1
  },
  "averages": {
    "score":5.0, 
    "food":4.0, 
    "service":3.0, 
    "setting":2.0
  }
}

Search

Search Integration

HTTP Request

POST /api/v1/search/integration

Body Parameters

Parameter Default Description Required
type String for example: suite8 REQUIRED
query String name, phone and room number

JSON request body:

  {
    "type": "suite8",
    "query": "1018",
  }

JSON response body:

[
  {
    "name": "ABACI,AHMET ANIL",
    "room": "1018",
    "guest_count": 6,
    "arrival": "25/02/202",
    "departure": " / 27/03/",
    "payment": ""
  },
  {
    "name": "ABACI,AHMET",
    "room": "1018",
    "guest_count": 6,
    "arrival": "25/02/202",
    "departure": " / 27/03/",
    "payment": ""
  }
]

JSON request body:

  {
    "type": "opera",
    "query": "112",
  }

JSON response body:

[
  {
    "name": "Alican Akınay",
    "room": "109",
    "status": "CHECKED OUT",
    "arrival": "2016-12-01T09:36:00",
    "departure": "2016-12-06T16:22:00",
  },
  {
    "name": "Alican Akınay",
    "room": "112",
    "status": "CHECKED IN",
    "arrival": "2016-12-03T14:22:00",
    "departure": "2016-12-07T00:00:00",
  },
]

Search Reservations

HTTP Request

POST /api/v1/search/reservations

Body Parameters

Parameter Default Description Required
page 1 Number
per_page 50 Number
start_at String REQUIRED
end_at String REQUIRED
type customer String for example: room_number, customer or room_number
query String name, phone and room number
order_by date String (date, guest_count, table, customer)
order_direction asc String (asc, desc)
statuses Array(String) (init, confirm, partial, sitting, never_show_up, left, cancel, done)

JSON response body:

{
  "reservations": [
    {
      "id": "21493af3-9c31-425d-947d-2bfb2cc7c0b6",
      "type": "reservation",
      "status": "never_show_up",
      "guest_count": 5,
      "child_cover": 0,
      "male_cover": 0,
      "female_cover": 0,
      "note": "Süper olsun bak!",
      "organization_type": "birthday",
      "occupied_seat_count": 0,
      "date": "2021-02-10T13:12:23+03:00",
      "estimated_discharged_at": "2021-02-10T14:42:23+03:00",
      "date_as_string": "2021-02-10",
      "first_date": "2021-02-10T13:12:23+03:00",
      "created_at": "2021-02-10T13:12:23+03:00",
      "arrival_state": "walkin",
      "source_detail": null,
      "is_dining": false,
      "confirmation_source": null,
      "is_getting_paid": null,
      "hotel_room_number": "1010",
      "is_hotel_customer": false,
      "has_provision_confirmation": false,
      "provision_status": "has_not_provision_confirmation",
      "make_a_reservation": false,
      "customer_id": "6278c48c-b0ce-4336-bb8f-d374043e2ad1",
      "table_id": null,
      "table_ids": [],
      "revenue_center_id": "08df79e8-3295-4058-8825-076d40ef8efb",
      "table": null,
      "tables": [],
      "customer": {
        "id": "6278c48c-b0ce-4336-bb8f-d374043e2ad1",
        "name": "Jeffrey Prosacco",
        "first_name": "Jeffrey",
        "last_name": "Prosacco",
        "nickname": null,
        "country_code": "90",
        "primary_phone_number": "905552221133",
        "type_id": "0afb4e97-37b3-4106-a02e-76455c0fa078",
        "is_anonym": false,
        "email": null,
        "blacklist": false,
        "gender": "male",
        "country": "tr",
        "allow_sms": true,
        "note": null
      }
    },
    {
      "id": "7f979640-c843-42e8-a991-505058f3ba3a",
      "type": "reservation",
      "status": "init",
      "guest_count": 5,
      "child_cover": 0,
      "male_cover": 0,
      "female_cover": 0,
      "note": "Süper olsun bak!",
      "organization_type": "birthday",
      "occupied_seat_count": 0,
      "date": "2021-02-10T13:12:23+03:00",
      "estimated_discharged_at": "2021-02-10T14:42:23+03:00",
      "date_as_string": "2021-02-10",
      "first_date": "2021-02-10T13:12:23+03:00",
      "created_at": "2021-02-10T13:12:23+03:00",
      "arrival_state": "walkin",
      "source_detail": null,
      "is_dining": false,
      "confirmation_source": null,
      "is_getting_paid": null,
      "hotel_room_number": "1010",
      "is_hotel_customer": false,
      "has_provision_confirmation": false,
      "provision_status": "has_not_provision_confirmation",
      "make_a_reservation": false,
      "customer_id": "6278c48c-b0ce-4336-bb8f-d374043e2ad1",
      "table_id": null,
      "table_ids": [],
      "revenue_center_id": "08df79e8-3295-4058-8825-076d40ef8efb",
      "table": null,
      "tables": [],
      "customer": {
        "id": "6278c48c-b0ce-4336-bb8f-d374043e2ad1",
        "name": "Jeffrey Prosacco",
        "first_name": "Jeffrey",
        "last_name": "Prosacco",
        "nickname": null,
        "country_code": "90",
        "primary_phone_number": "905552221133",
        "type_id": "0afb4e97-37b3-4106-a02e-76455c0fa078",
        "is_anonym": false,
        "email": null,
        "blacklist": false,
        "gender": "male",
        "country": "tr",
        "allow_sms": true,
        "note": null
      }
    }
  ],
  "page_information": {
    "has_next_page": false,
    "current_page": 1,
    "total_count": 2,
    "page_count": 1,
  },
}

Search Customers

HTTP Request

POST /api/v1/search/customers

Body Parameters

Parameter Default Description Required
query String REQUIRED
page Number
per_page 50 Number

JSON request body:

{
  "customers": [
    {
      "id": "27a14424-237b-459f-8f3d-e7e5bedd5ca0",
      "first_name": "Alican Naim",
      "last_name": "Gelal",
      "name": "Alican Naim Gelal",
      "country_code": "27",
      "primary_phone_number": "2777994485",
      "small_image_url": null,
      "medium_image_url": null,
      "large_image_url": null,
      "type_id": "1b691f67-5557-4a52-b380-754010241b9f",
      "type_name": "standard",
      "is_default_type": true,
      "is_anonym": false,
      "email": null,
      "blacklist": false,
      "gender": "male",
      "gender_as_integer": 1,
      "country": "tr",
      "allow_sms": true,
      "allow_email": false,
      "is_active": true,
      "note": null
    }
  ],
  "page_information": {
    "has_next_page": false,
    "current_page": 1,
    "total_count": 1,
    "page_count": 1
  }
}

Sessions

Login

HTTP Request

POST /api/v1/login

Body Parameters

Parameter Description Required
email String REQUIRED
password String REQUIRED

JSON request body:

{
  "email": "anil1@iyidogan.com",
  "password": "987654"
}

JSON response body:

{
  "id": "f6f4cbcd-7733-4d1a-9205-d8f550d2b533",
  "first_name": "Jordan",
  "last_name": "Feil",
  "email": "anil1@iyidogan.com",
  "role": "normal",
  "is_active": true,
  "token": "a6560ec45f42cd124e78e269",
  "stores": [
    {
      "id": "4ea53a78-2c13-4e9a-82ba-49e4f0cb5666",
      "name": "Store",
      "pin_code": 2796,
      "organization_id": "61ed2caa-a1ff-4803-9fbf-c511b427c6bf",
      "start_time": "2021-02-02T07:00:00+03:00",
      "end_time": "2021-02-02T23:59:59+03:00",
      "is_favorite": false
    }
  ],
  "organizations": [
    {
      "id": "61ed2caa-a1ff-4803-9fbf-c511b427c6bf",
      "name": "Current",
      "slug": "current",
      "host": "http://current.checkandplace.com",
      "is_favorite": false
    }
  ]
}

Logout

HTTP Request

POST /api/v1/logout

JSON response body:

{
  "info": [
    {
      "message": "Oturum kapatıldı",
      "code": 203,
      "key": ""
    }
  ]
}

Sign Up

Create Sign Up

HTTP Request

POST /api/v1/sign-up

Body Parameters

Parameter Default Description Required
first_name String REQUIRED
last_name String REQUIRED
primary_phone_number String REQUIRED
email String REQUIRED
password String REQUIRED
country String REQUIRED
store_name String REQUIRED
web_site String

JSON response body:


  HTTP/1.1 200 OK

Slots

Index Slots

HTTP Request

GET /api/v1/slots

JSON response body:

{
  "slots": [
    {
      "id": "7b92897e-7604-49de-b634-a644865936ed",
      "name": "Sabah",
      "start_time": "08:00",
      "end_time": "09:00",
      "color": "#FEE0DB",
      "capacities": [
        { "start_time": "08:00", "capacity": 0 },
        { "start_time": "08:15", "capacity": 10 },
        { "start_time": "08:30", "capacity": 20 },
        { "start_time": "08:45", "capacity": 10 },
      ],
      "online_capacities": [
        { "start_time": "08:00", "capacity": 20 },
        { "start_time": "08:15", "capacity": 0 },
        { "start_time": "08:30", "capacity": 15 },
        { "start_time": "08:45", "capacity": 0 },
      ],
      "revenue_center_id": "6ccca446-23fc-443b-8a9f-c2eb3f057aab",
      "store_id": "08255975-6cca-4c23-b594-6ed75ced13bc",
      "store_pin_code": "3700",
    }
  ]
}

Create Slot

HTTP Request

POST /api/v1/slots

Body Parameters

Parameter Default Description Required
revenue_center_id String REQUIRED
name String
start_time String
end_time String
capacities Array
online_capacities Array

JSON request body:

{
  "revenue_center_id": "6ccca446-23fc-443b-8a9f-c2eb3f057aab",
  "name": "Sabah",
  "start_time": "08:00",
  "end_time": "09:00",
  "capacities": [
    { "start_time": "08:00", "capacity": 0 },
    { "start_time": "08:15", "capacity": 10 },
    { "start_time": "08:30", "capacity": 20 },
    { "start_time": "08:45", "capacity": 10 },
  ],
  "online_capacities": [
    { "start_time": "08:00", "capacity": 20 },
    { "start_time": "08:15", "capacity": 0 },
    { "start_time": "08:30", "capacity": 15 },
    { "start_time": "08:45", "capacity": 0 },
  ],
}

JSON response body:

{
  "slot": {
    "id": "7b92897e-7604-49de-b634-a644865936ed",
    "name": "Sabah",
    "start_time": "08:00",
    "end_time": "09:00",
    "color": "#FEE0DB",
    "capacities": [
      { "start_time": "08:00", "capacity": 0 },
      { "start_time": "08:15", "capacity": 10 },
      { "start_time": "08:30", "capacity": 20 },
      { "start_time": "08:45", "capacity": 10 },
    ],
    "online_capacities": [
      { "start_time": "08:00", "capacity": 20 },
      { "start_time": "08:15", "capacity": 0 },
      { "start_time": "08:30", "capacity": 15 },
      { "start_time": "08:45", "capacity": 0 },
    ],
    "revenue_center_id": "6ccca446-23fc-443b-8a9f-c2eb3f057aab",
    "store_id": "08255975-6cca-4c23-b594-6ed75ced13bc",
    "store_pin_code": "3700",
  }
}

Update Slot

HTTP Request

PATCH /api/v1/slots/:id

Body Parameters

Parameter Default Description Required
name String
start_time String
end_time String
capacities Array
online_capacities Array

JSON request body:

{
  "name": "Sabah",
  "start_time": "08:00",
  "end_time": "09:00",
  "capacities": [
    { "start_time": "08:00", "capacity": 0 },
    { "start_time": "08:15", "capacity": 10 },
    { "start_time": "08:30", "capacity": 20 },
    { "start_time": "08:45", "capacity": 10 },
  ],
  "online_capacities": [
    { "start_time": "08:00", "capacity": 20 },
    { "start_time": "08:15", "capacity": 0 },
    { "start_time": "08:30", "capacity": 15 },
    { "start_time": "08:45", "capacity": 0 },
  ],
}

JSON response body:

{
  "slot": {
    "id": "7b92897e-7604-49de-b634-a644865936ed",
    "name": "Sabah",
    "start_time": "08:00",
    "end_time": "09:00",
    "color": "#FEE0DB",
    "capacities": [
      { "start_time": "08:00", "capacity": 0 },
      { "start_time": "08:15", "capacity": 10 },
      { "start_time": "08:30", "capacity": 20 },
      { "start_time": "08:45", "capacity": 10 },
    ],
    "online_capacities": [
      { "start_time": "08:00", "capacity": 20 },
      { "start_time": "08:15", "capacity": 0 },
      { "start_time": "08:30", "capacity": 15 },
      { "start_time": "08:45", "capacity": 0 },
    ],
    "revenue_center_id": "6ccca446-23fc-443b-8a9f-c2eb3f057aab",
    "store_id": "08255975-6cca-4c23-b594-6ed75ced13bc",
    "store_pin_code": "3700",
  }
}

Destroy Slot

HTTP Request

DELETE /api/v1/slots/:id

JSON response body:


  HTTP/1.1 200 OK

Slots Capacities

HTTP Request

GET /api/v1/slots/capacities

Query Parameters

Parameter Default Description Required
revenue_center_id String REQUIRED
date String REQUIRED

JSON response body:

{
  "slots": [
    {
      "name": "Slot1",
      "hours": [
        {
          "hour": "08:00",
          "guest_count": 1,
          "capacity": 10
        },
        {
          "hour": "09:00",
          "guest_count": 5,
          "capacity": 15
        }
      ],
      "total_guest_count": 6,
      "total_capacity": 25
    },
    {
      "name": "Slot2",
      "hours": [
        {
          "hour": "10:00",
          "guest_count": 15,
          "capacity": 10
        },
        {
          "hour": "11:00",
          "guest_count": 7,
          "capacity": 10
        },
        {
          "hour": "12:00",
          "guest_count": 0,
          "capacity": 8
        },
        {
          "hour": "13:00",
          "guest_count": 8,
          "capacity": 0
        }
      ],
      "total_guest_count": 30,
      "total_capacity": 28
    }
  ]
}

Sources

Create Source

HTTP Request

POST /api/v1/sources

Body Parameters

Parameter Default Description Required
name String REQUIRED

JSON response body:

{
  "source": {
    "id": "a3e4f344-588a-4f7e-8694-36c74d85b20a",
    "name": "Hilton Hotel"
  }
}

Search Source

HTTP Request

GET /api/v1/sources/search

Query Parameters

Parameter Default Description Required
name String REQUIRED

JSON response body:

{
  "sources": [
    {
      "id": "a3e4f344-588a-4f7e-8694-36c74d85b20a",
      "name": "Hotel Nahita"
    },
    {
      "id": "944256c0-e149-42ae-84d2-53c9aad450ff",
      "name": "Hilton Hotel"
    }
  ]
}

Store Extensions

Update Store Extensions Settings

HTTP Request

PATCH /api/v1/store-extensions/settings

Body Parameters

Parameter Default Description Required
session_id String(uuid) REQUIRED
user_id Current user String(uuid) REQUIRED

JSON response body:


  HTTP/1.1 200 OK

Stores

Index Stores

HTTP Request

GET /api/v1/organizations/:organization_id/stores

JSON response body:

{
  "id": "0155644c-0347-4e1a-b5cc-9fc6e2dc7c49",
  "name": "Store",
  "pin_code": 7560,
  "organization_id": "600cef7a-5fef-4ec2-9573-5be07511e9ee",
  "start_time": "2021-05-18T07:00:00+03:00",
  "end_time": "2021-05-18T23:59:59+03:00",
  "country": "Turkey",
  "is_favorite": false,
  "settings": {
    "suite8_integration_feature": true,
    "opera_integration_feature": true,
    "micros_integration_feature": true,
    "simpra_integration_feature": false,
    "simpra_pms_integration_feature": false,
  },
  "sms_options": {
    "confirmation_sms": false,
    "reservation_sms": false,
    "table_information_sms": false,
    "delayed_reservation_sms": false,
    "survey_sms": false,
    "payment_sms": false
  }
}

Show Store

HTTP Request

GET /api/v1/stores

JSON response body:

{
  "api_endpoint": "http://52.59.21.36:3700",
  "mail_feature": true,
  "valet_service_feature": false,
  "blacklist_feature": true,
  "customer_charge": false,
  "anonym_customer_feature": true,
  "anonym_customer_nickname_feature": true,
  "micros_integration_feature": true,
  "can_data_sync_from_micros": true,
  "can_create_check_from_micros": true,
  "customer_gender_feature": true,
  "customer_source_feature": true,
  "customer_nationality_feature": true,
  "is_dining_feature": true,
  "average_reservation_time": 90,
  "show_store_information": false,
  "opera_integration_feature": true,
  "opera_api_url": "https://",
  "suite8_integration_feature": true,
  "suite8_api_url": "https://",
  "interval_time_for_reservation": "half",
  "features": {
    "manual_sms_feature": true,
    "manual_email_feature": true,
    "sms": {
      "is_active": false,
      "reservation": [
        "0155644c-0347-4e1a-b5cc-9fc6e2dc7c49"
      ],
      "confirmation": [
        "0155644c-0347-4e1a-b5cc-9fc6e2dc7c49",
        "0155644c-0347-4e1a-b5cc-9fc6e2dc7c49"
      ],
      "table_information": [
        "0155644c-0347-4e1a-b5cc-9fc6e2dc7c49",
        "0155644c-0347-4e1a-b5cc-9fc6e2dc7c49"
      ],
      "reservation_request": [
        "0155644c-0347-4e1a-b5cc-9fc6e2dc7c49",
        "0155644c-0347-4e1a-b5cc-9fc6e2dc7c49"
      ],
      "delayed_reservation": [
        "0155644c-0347-4e1a-b5cc-9fc6e2dc7c49",
        "0155644c-0347-4e1a-b5cc-9fc6e2dc7c49"
      ],
      "delayed_reservation_duration": 34,
      "survey_sending": true,
      "survey_url": "http://example.survey.com",
      "survey_customer_types": [
        "4f7a8306-5da2-48da-bdd8-53061215c86e"
      ]
    },
    "email": {
      "information": [
        "0155644c-0347-4e1a-b5cc-9fc6e2dc7c49"
      ],
      "confirmation": [
        "0155644c-0347-4e1a-b5cc-9fc6e2dc7c49",
        "0155644c-0347-4e1a-b5cc-9fc6e2dc7c49"
      ],
      "no_show": [
        "0155644c-0347-4e1a-b5cc-9fc6e2dc7c49",
        "0155644c-0347-4e1a-b5cc-9fc6e2dc7c49"
      ],
      "table_information": [
        "0155644c-0347-4e1a-b5cc-9fc6e2dc7c49",
        "0155644c-0347-4e1a-b5cc-9fc6e2dc7c49"
      ],
      "reservation_request": [
        "0155644c-0347-4e1a-b5cc-9fc6e2dc7c49",
        "0155644c-0347-4e1a-b5cc-9fc6e2dc7c49"
      ],
      "survey": [
        "4f7a8306-5da2-48da-bdd8-53061215c86e"
      ],
      "survey_url": "http://example.survey.com",
      "survey_sending": true,
    },
    "email_to_store": {
      "new_booking": true,
      "update_booking": true,
      "cancelled": true,
      "incompleted": true,
      "new_request": true,
    },
    "calendar_delay": {
      "is_active": false,
      "customer_types": [
        "normal",
        "vip"
      ],
      "snooze_duration": 64
    },
    "provision": {
      "is_active": true,
      "amount": 5,
      "currency": "TRY"
    }
  },
  "customer_types": [
    {
      "id": "4f7a8306-5da2-48da-bdd8-53061215c86e",
      "name": "standard",
      "priority": 99,
      "color": "#000000"
    }
  ],
  "crm_segment_integration": false,
  "group_by_customer_type": false,
  "valet_branch_id": 1,
  "can_activate_sms_integration": true
}

Update Store

HTTP Request

PATCH /api/v1/stores

JSON request body:

{
  "features": {
    "manual_sms_feature": true,
    "sms": {
      "is_active": false,
      "confirmation": [
        "3b1cb1fb-6975-44fb-8763-f9e4b7d78ce1"
      ],
      "reservation": [
        "3b1cb1fb-6975-44fb-8763-f9e4b7d78ce1",
        "76f82c2b-874a-4fce-bce7-a5ac7fa87f5e"
      ],
      "table_information": [
        "76f82c2b-874a-4fce-bce7-a5ac7fa87f5e"
      ],
      "reservation_request": [
        "0155644c-0347-4e1a-b5cc-9fc6e2dc7c49",
      ],
      "delayed_reservation": [
        "76f82c2b-874a-4fce-bce7-a5ac7fa87f5e"
      ],
      "delayed_reservation_duration": 64,
      "survey_sending": false,
      "survey_url": "https://",
      "survey_customer_types": [
        "76f82c2b-874a-4fce-bce7-a5ac7fa87f5e",
        "3b1cb1fb-6975-44fb-8763-f9e4b7d78ce1"
      ]
    },
    "manual_email_feature": true,
    "email": {
      "information": [
        "0155644c-0347-4e1a-b5cc-9fc6e2dc7c49"
      ],
      "confirmation": [
        "0155644c-0347-4e1a-b5cc-9fc6e2dc7c49",
        "0155644c-0347-4e1a-b5cc-9fc6e2dc7c49"
      ],
      "no_show": [
        "0155644c-0347-4e1a-b5cc-9fc6e2dc7c49",
        "0155644c-0347-4e1a-b5cc-9fc6e2dc7c49"
      ],
      "table_information": [
        "0155644c-0347-4e1a-b5cc-9fc6e2dc7c49",
        "0155644c-0347-4e1a-b5cc-9fc6e2dc7c49"
      ],
      "reservation_request": [
        "0155644c-0347-4e1a-b5cc-9fc6e2dc7c49",
      ],
      "survey": [
        "4f7a8306-5da2-48da-bdd8-53061215c86e"
      ],
      "survey_url": "http://example.survey.com",
      "survey_sending": true,
    },
    "email_to_store": {
      "new_booking": true,
      "update_booking": true,
      "cancelled": true,
      "incompleted": true,
      "new_request": true,
    },
    "calendar_delay": {
      "is_active": false,
      "customer_types": [
        "3b1cb1fb-6975-44fb-8763-f9e4b7d78ce1"
      ],
      "snooze_duration": 64
    },
    "provision": {
      "is_active": false,
      "amount": 50,
      "currency": "TRY"
    }
  }
}

JSON response body:

{
  "api_endpoint": "http://52.59.21.36:3700",
  "mail_feature": true,
  "valet_service_feature": false,
  "blacklist_feature": true,
  "customer_charge": false,
  "anonym_customer_feature": true,
  "anonym_customer_nickname_feature": true,
  "micros_integration_feature": true,
  "can_data_sync_from_micros": true,
  "can_create_check_from_micros": true,
  "customer_gender_feature": true,
  "customer_source_feature": true,
  "customer_nationality_feature": true,
  "is_dining_feature": true,
  "average_reservation_time": 90,
  "show_store_information": false,
  "opera_integration_feature": true,
  "opera_api_url": "https://",
  "suite8_integration_feature": true,
  "suite8_api_url": "https://",
  "interval_time_for_reservation": "half",
  "features": {
    "manual_sms_feature": true,
    "sms": {
      "is_active": false,
      "reservation": [
        "0155644c-0347-4e1a-b5cc-9fc6e2dc7c49"
      ],
      "confirmation": [
        "0155644c-0347-4e1a-b5cc-9fc6e2dc7c49",
        "0155644c-0347-4e1a-b5cc-9fc6e2dc7c49"
      ],
      "table_information": [
        "0155644c-0347-4e1a-b5cc-9fc6e2dc7c49",
        "0155644c-0347-4e1a-b5cc-9fc6e2dc7c49"
      ],
      "delayed_reservation": [
        "0155644c-0347-4e1a-b5cc-9fc6e2dc7c49",
        "0155644c-0347-4e1a-b5cc-9fc6e2dc7c49"
      ],
      "reservation_request": [
        "0155644c-0347-4e1a-b5cc-9fc6e2dc7c49",
      ],
      "delayed_reservation_duration": 34,
      "survey_sending": true,
      "survey_url": "http://example.survey.com",
      "survey_customer_types": [
        "4f7a8306-5da2-48da-bdd8-53061215c86e"
      ]
    },
    "manual_email_feature": true,
    "email": {
      "information": [
        "0155644c-0347-4e1a-b5cc-9fc6e2dc7c49"
      ],
      "confirmation": [
        "0155644c-0347-4e1a-b5cc-9fc6e2dc7c49",
        "0155644c-0347-4e1a-b5cc-9fc6e2dc7c49"
      ],
      "no_show": [
        "0155644c-0347-4e1a-b5cc-9fc6e2dc7c49",
        "0155644c-0347-4e1a-b5cc-9fc6e2dc7c49"
      ],
      "table_information": [
        "0155644c-0347-4e1a-b5cc-9fc6e2dc7c49",
        "0155644c-0347-4e1a-b5cc-9fc6e2dc7c49"
      ],
      "reservation_request": [
        "0155644c-0347-4e1a-b5cc-9fc6e2dc7c49",
      ],
      "survey": [
        "4f7a8306-5da2-48da-bdd8-53061215c86e"
      ],
      "survey_url": "http://example.survey.com",
      "survey_sending": true,
    },
    "email_to_store": {
      "new_booking": true,
      "update_booking": true,
      "cancelled": true,
      "incompleted": true,
      "new_request": true,
    },
    "calendar_delay": {
      "is_active": false,
      "customer_types": [
        "normal",
        "vip"
      ],
      "snooze_duration": 64
    },
    "provision": {
      "is_active": true,
      "amount": 5,
      "currency": "TRY"
    }
  },
  "customer_types": [
    {
      "id": "4f7a8306-5da2-48da-bdd8-53061215c86e",
      "name": "standard",
      "priority": 99,
      "color": "#000000"
    }
  ],
  "crm_segment_integration": false,
  "group_by_customer_type": false,
  "valet_branch_id": 1,
  "can_activate_sms_integration": true
}

Add Favorite Store

HTTP Request

POST /api/v1/stores/:id/favorites

JSON response body:


  HTTP/1.1 201 Created

Remove Favorite Store

HTTP Request

DELETE /api/v1/stores/:id/favorites

JSON response body:


  HTTP/1.1 204 No Content

Table Plan Objects

All Objects

HTTP Request

GET /api/v1/table-plan-objects/all

JSON response body:

{
  "table_plan_object_definitions": [
    {
      "id": "ceb03001-4ecc-4299-b82e-e3d72549ec5a",
      "name": "Object 1",
      "image_url": "http://localhost:3000/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBbEFCIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--28a33ff46b16e9f9cef9306b68e90ad62529fdba/image.png"
    },
    {
      "id": "127ee5ef-eba2-414b-b174-3d3241246cd7",
      "name": "Object 2",
      "image_url": "http://localhost:3000/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBbEVCIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--5009dc49cb88418fdec03168c26d1094950e9bec/image.png"
    },
    {
      "id": "72da4b57-910b-42af-b35e-e0e776b00daa",
      "name": "Object 3",
      "image_url": "http://localhost:3000/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBbElCIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--b98f47f3308334a9a23336ec6af625d6d7f528df/image.png"
    }
  ]
}

Index Table Plan Objects

HTTP Request

GET /api/v1/table-plan-objects

Query Parameters

Parameter Default Description Required
revenue_center_id String REQUIRED

JSON response body:

{
  "table_plan_objects": [
    {
      "id": "46e4b0be-beb9-4c2c-b70d-46bebc321ab4",
      "plan": "{\"column\":0,\"row\":0}",
      "name": "Object 4",
      "image_url": "http://localhost:3000/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBazBCIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--b471b14c904adab22c1e6d2f8d79620fc5d0641d/image.png"
    },
    {
      "id": "b4761490-2d41-439f-abf5-7a6f99990a33",
      "plan": "{\"column\":1,\"row\":1}",
      "name": "Object 5",
      "image_url": "http://localhost:3000/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBazRCIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--4f433d8fc7381594f8902576e1b01d37f33dcfd2/image.png"
    }
  ]
}

Create Table Plan Object

HTTP Request

POST /api/v1/table-plan-objects

Body Parameters

Parameter Default Description Required
revenue_center_id String REQUIRED
table_plan_object_definition_id String REQUIRED
plan String REQUIRED

JSON request body:

{
  "revenue_center_id": "6ccca446-23fc-443b-8a9f-c2eb3f057aab",
  "table_plan_object_definition_id": "9cagf446-23fc-453b-8a9f-c2eb10s57aab",
  "plan": "{\"column\": 10, \"row\": 5}",
}

JSON response body:

{
  "table_plan_object": {
    "id": "46333707-fa51-4ce8-9719-73f5d7e569b3",
    "plan": "{\"column\": 10, \"row\": 5}",
    "name": "Object 1",
    "image_url": "http://localhost:3000/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBazhCIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--2674c8de261cf69c539c035c90b8497ab44dcb49/image.png"
  }
}

Update Table Plan Object

HTTP Request

PATCH /api/v1/table-plan-objects/:id

Body Parameters

Parameter Default Description Required
table_plan_object_definition_id String REQUIRED
plan String REQUIRED

JSON request body:

{
  "table_plan_object_definition_id": "9cagf446-23fc-453b-8a9f-c2eb10s57aab",
  "plan": "{\"column\": 10, \"row\": 5}",
}

JSON response body:

{
  "table_plan_object": {
    "id": "46333707-fa51-4ce8-9719-73f5d7e569b3",
    "plan": "{\"column\": 10, \"row\": 5}",
    "name": "Object 1",
    "image_url": "http://localhost:3000/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBazhCIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--2674c8de261cf69c539c035c90b8497ab44dcb49/image.png"
  }
}

Destroy Table Plan Object

HTTP Request

DELETE /api/v1/table-plan-objects/:id

JSON response body:


  HTTP/1.1 200 OK

Tables

Index Tables

HTTP Request

POST /api/v1/tables

Body Parameters

Parameter Default Description Required
revenue_center_id String(uuid)
page 1 Number
per_page 50 Number

JSON response body:

{
  "tables": [
    {
      "id": "b59b1126-bbb5-407a-a847-f414474723a4",
      "name": "0",
      "plan": null,
      "temporary_plan": null,
      "capacity": 0,
      "parent_id": null,
      "revenue_center_id": "b262ffd5-83f2-4e53-a28d-11aecc864fc3"
    },
    {
      "id": "6099ddec-2884-4a37-a917-455a150e298e",
      "name": "1",
      "plan": null,
      "temporary_plan": null,
      "capacity": 0,
      "parent_id": null,
      "revenue_center_id": "b262ffd5-83f2-4e53-a28d-11aecc864fc3"
    },
    {
      "id": "7b7a5f3b-dc1c-4cee-b8c8-2d5326f02dd7",
      "name": "2",
      "plan": null,
      "temporary_plan": null,
      "capacity": 0,
      "parent_id": null,
      "revenue_center_id": "b262ffd5-83f2-4e53-a28d-11aecc864fc3"
    }
  ],
  "total_count": 3,
  "current_page": 1,
  "is_next_page": false,
  "page_count": 1
}

Available For Assign

HTTP Request

GET /api/v1/tables/available-for-assign

Query Parameters

Parameter Default Description Required
date String REQUIRED
capacity Number REQUIRED
revenue_center_id String REQUIRED
reservation_time Number

JSON response body:

{
  "tables": [
    {
      "id": "2b019620-75bd-485a-bf8e-80584c37b8cc",
      "name": "111",
      "plan": "data",
      "status": 0,
      "capacity": 2,
      "revenue_center_id": "5fcc3d89-756c-4528-9c34-d5d40e6239be",
      "is_available_for_assign": false
    }
  ]
}

Available Capacities

HTTP Request

GET /api/v1/tables/available_capacities

Query Parameters

Parameter Default Description Required
date String REQUIRED
revenue_center_id String REQUIRED
reservation_time Number

JSON response body:

{
  "total_tables_count": 22,
  "dates": {
    "2018-03-01 00:00:00 +0300": { 
      "available_tables_count": 22, 
      "available_capacity_count": 118 
    },
    "2018-03-01 00:30:00 +0300": { 
      "available_tables_count": 22, 
      "available_capacity_count": 118 
    },
    ...
    "2018-03-01 23:00:00 +0300": { 
      "available_tables_count": 22, 
      "available_capacity_count": 118 
    },
    "2018-03-01 23:30:00 +0300": { 
      "available_tables_count": 22, 
      "available_capacity_count": 118 
    }
  }
}

Available

HTTP Request

GET /api/v1/tables/available

Query Parameters

Parameter Default Description Required
date String REQUIRED
revenue_center_id String REQUIRED

JSON response body:

{
  "available_tables_count": 2,
  "available_capacity_count": 8,
  "total_tables_count": 3,
  "table_groups": [
    {
      "count": 1,
      "capacity": 2
    },
    {
      "count": 0,
      "capacity": 4
    },
    {
      "count": 1,
      "capacity": 6
    }
  ]
}

Split

HTTP Request

PATCH /api/v1/tables/:id/split

Body Parameters

Parameter Default Description Required
calendar_ids []String

JSON response body:


  HTTP/1.1 200 OK

Discharge

HTTP Request

PATCH /api/v1/tables/:id/discharge

Body Parameters

Parameter Default Description Required
table_ids []String

JSON response body:


  HTTP/1.1 200 OK

Assign

HTTP Request

PATCH /api/v1/tables/:id/assign

Body Parameters

Parameter Default Description Required
calendar_id String REQUIRED
will_not_come Boolean REQUIRED
occupied_seat_count Number REQUIRED
male_cover Number REQUIRED
female_cover Number REQUIRED
child_cover Number REQUIRED

either occupied_seat_count or cover informations are required

JSON response body:


  HTTP/1.1 200 OK

Rollback

HTTP Request

PATCH /api/v1/tables/:id/rollback

Body Parameters

Parameter Default Description Required
calendar_ids []String

JSON response body:


  HTTP/1.1 200 OK

Check Update

HTTP Request

PATCH /api/v1/tables/:id/update_check

Body Parameters

Parameter Default Description Required
calendar_id String

JSON response body:


  HTTP/1.1 200 OK

Status

HTTP Request

POST /api/v1/tables/status

Body Parameters

Parameter Default Description Required
revenue_center_id String(uuid) REQUIRED

JSON response body:

{
  "tables": [
    {
      "id": "faade684-7be5-4fcd-907c-da1dd9b8afdc",
      "name": "111",
      "plan": "data",
      "temporary_plan": "data",
      "capacity": 5,
      "merged_capacity": 10,
      "revenue_center_id": "d40df468-42f7-46c5-be29-0054fd67d1cf",
      "total_occupied_seat_count": 5,
      "next_reservation": [
        {
          "table_id": "faade684-7be5-4fcd-907c-da1dd9b8afdc",
          "date": "2021-10-03T12:00:00.000+03:00"
        },
        {
          "table_id": "faade684-7be5-4fcd-907c-da1dd9b8afdc",
          "date": "2021-10-03T14:00:00.000+03:00"
        }
      ],
      "sitting_calendars": [
        {
          "id": "92564e96-a8c8-4efd-8985-c3532b8e576b",
          "status": "sitting",
          "date": "2021-10-03T11:00:00+03:00",
          "is_getting_paid": null,
          "revenue_center_id": null,
          "table_id": null,
          "tables": [
            {
              "id": "faade684-7be5-4fcd-907c-da1dd9b8afdc",
              "name": "111"
            },
            {
              "id": "257ce285-f682-4d28-9c35-b894680943e3",
              "name": "111"
            }
          ],
          "customer": {
            "id": "98f2aceb-f65c-4f90-90f1-bfbff6a98444",
            "type_id": "a0f050c0-5c80-4090-9042-5de3acd10ad4",
            "is_anonym": false,
          },
        }
      ],
    }
  ],
}

Sitting Reservations

HTTP Request

GET /api/v1/tables/:id/sitting-reservations

JSON response body:

{
  "sitting_reservations": [
    {
      "id": "f61378f6-5d7a-4d1d-8ae9-60af88fcdf1f",
      "status": "sitting",
      "guest_count": 5,
      "note": "Süper olsun bak!",
      "revenue_center_id": null,
      "occupied_seat_count": 5,
      "male_cover": 0,
      "female_cover": 0,
      "child_cover": 0,
      "date": "2023-06-07T11:00:00+03:00",
      "assigned_at": null,
      "created_source": "mobil",
      "table_id": null,
      "confirmation_source": null,
      "is_getting_paid": null,
      "hotel_room_number": null,
      "is_hotel_customer": false,
      "make_a_reservation": true,
      "tables": [
        {
          "id": "83590152-0ab9-4ace-9368-637fbc018791",
          "name": "111"
        },
        {
          "id": "68d07494-5d10-496b-affa-2a0ceb94b56e",
          "name": "111"
        }
      ],
      "customer": {
        "id": "b7429e8e-6cb3-49bc-9550-9e5786adcaf3",
        "first_name": "Jay",
        "last_name": "Klein",
        "type_id": "32fc79be-8232-4917-8642-fb2460798595",
        "is_anonym": false,
        "blacklist": false,
        "nickname": null,
        "allow_sms": true,
        "note": null
      },
      "reference": null,
      "reservation_payment": null,
      "provision_payment": null,
    }
  ]
}

Next Reservations

HTTP Request

GET /api/v1/tables/:id/next-reservations

Query Parameters

Parameter Default Description Required
business_date Example: '2023-01-02'

JSON response body:

{
  "next_reservations": [
    {
      "table_id": "c0529b5a-60c4-40f5-9794-40491094d72d",
      "date": "2023-01-01T12:30:00+03:00"
    },
    {
      "table_id": "c0529b5a-60c4-40f5-9794-40491094d72d",
      "date": "2023-01-01T13:00:00+03:00"
    }
  ]
}

Layout

HTTP Request

GET /api/v1/tables/layout/:revenue_center_id

JSON response body:

{
  "revenue_center": {
    "id": "8a96e017-1424-4810-83ce-cd2f1667211b",
    "name": "Bahçe",
    "grid_size_x": 4,
    "grid_size_y": 4,
    "store_pin_code": 6684,
    "tables_count": 1,
    "children": [],
    "tables": [
      {
        "id": "8fd7e7f0-c75f-4132-8806-2d3f92d1d589",
        "name": "111",
        "plan": "data",
        "capacity": 10,
        "parent_id": null,
        "revenue_center_id": "8a96e017-1424-4810-83ce-cd2f1667211b",
        "merged_capacity": 10,
        "store_pin_code": 6684
      }
    ]
  }
}

Save

HTTP Request

POST /api/v1/tables/:id/save

Body Parameters

Parameter Default Description Required
plan String REQUIRED
revenue_center_id String REQUIRED
capacity Number REQUIRED

JSON response body:

{
  "table": {
    "id": "a3e4f344-588a-4f7e-8694-36c74d85b20a",
    "name": "111",
    "plan": "data",
    "capacity": 10,
    "parent_id": "63e94897-b6f7-4d43-b11c-0457d8b788c7",
    "revenue_center_id": "28773fd5-cb15-4581-a1d0-0e70994f7057",
    "merged_capacity": 10
  }
}

Reset

HTTP Request

PATCH /api/v1/tables/reset

Body Parameters

Parameter Default Description Required
table_ids []String

JSON response body:


  HTTP/1.1 200 OK

Revoke

HTTP Request

DELETE /api/v1/tables/:id/revoke

JSON response body:


  HTTP/1.1 200 OK

Tags

Index Tags

HTTP Request

GET /api/v1/tags

JSON response body:

{
  "tags": {
    "reservation": [
      {
        "id": "c511a255-ac8a-452c-a9a7-6bcba1cc85ce",
        "name_tr": "abc",
        "name_en": "Secret",
        "type": "reservation",
        "icon_type": "generic"
      },
      {
        "id": "1570bb78-6245-482b-abac-4193f4bf2d3d",
        "name_tr": "Doğum Günü",
        "name_en": "Birthday",
        "type": "reservation",
        "icon_type": "birthday"
      },
      {
        "id": "05be86e3-1340-4b31-abcb-f40dfd9872ae",
        "name_tr": "zyx",
        "name_en": "Secret",
        "type": "reservation",
        "icon_type": "generic"
      },
      {
        "id": "cd75d730-ea57-411d-8adc-bfc27427fef4",
        "name_tr": "Yıl Dönümü",
        "name_en": "Anniversary",
        "type": "reservation",
        "icon_type": "anniversary"
      },
      {
        "id": "544d197e-d26c-4ec3-b4b1-a93b66765b4a",
        "name_tr": "Özel Etkinlik",
        "name_en": "Special Event",
        "type": "reservation",
        "icon_type": "special_activity"
      },
      {
        "id": "acba9649-ff49-4587-8553-b02d4041f429",
        "name_tr": "Toplantı",
        "name_en": "Meeting",
        "type": "reservation",
        "icon_type": "meeting"
      },
      {
        "id": "5f419592-6370-4c9b-977a-59e26c5d3d00",
        "name_tr": "abc",
        "name_en": "Secret",
        "type": "reservation",
        "icon_type": "generic"
      }
    ],
    "customer": [
      {
        "id": "c511a255-ac8a-452c-a9a7-6bcba1cc85ce",
        "name_tr": "abc",
        "name_en": "Secret",
        "type": "customer",
        "icon_type": "individual"
      },
      {
        "id": "1570bb78-6245-482b-abac-4193f4bf2d3d",
        "name_tr": "tercih",
        "name_en": "pref",
        "type": "customer",
        "icon_type": "preference"
      },
      {
        "id": "05be86e3-1340-4b31-abcb-f40dfd9872ae",
        "name_tr": "yumurta sevez",
        "name_en": "no eggs",
        "type": "customer",
        "icon_type": "allergen"
      }
    ]
  }
}

Users Activation

Activation

HTTP Request

POST /api/v1/employees/activation

Body Parameters

Parameter Default Description Required
password String REQUIRED
activation_code String REQUIRED

JSON response body:

{
  "email": "jay.strosin@rolfson.com"
}

Activation Code

HTTP Request

GET /api/v1/employees/:id/activation_code

JSON response body:

{
  "email": "jay.strosin@rolfson.com"
}

Users Password

Create Password Code

HTTP Request

POST /api/v1/users-password

Body Parameters

Parameter Description Required
email String REQUIRED

JSON request body:

{
  "email": "user@mail.com"
}

JSON response body:

{
  "email": "user@mail.com"
}

Validate Password Code

HTTP Request

GET /api/v1/users-password/validate

Query Parameters

Parameter Description Required
email String REQUIRED
password_code String REQUIRED

JSON response body:

{
  "email": "user@mail.com",
  "password_code": "e32c1c",
}

Update Password

HTTP Request

PATCH /api/v1/users-password

Body Parameters

Parameter Description Required
email String REQUIRED
password_code String REQUIRED
password String REQUIRED
password_confirmation String REQUIRED

JSON request body:

{
  "email": "user@mail.com",
  "password_code": "e32c1c",
  "password": "123456",
  "password_confirmation": "123456"
}

JSON response body:

{
  "email": "user@mail.com"
}

Users

Index Users

HTTP Request

GET /api/v1/employees

JSON response body:

{
  "users": [
    {
      "id": "a3e4f344-588a-4f7e-8694-36c74d85b20a",
      "first_name": "Russell",
      "last_name": "Mann",
      "email": "telly@jacobiabshire.biz",
      "role": "admin",
      "is_active": false,
      "stores": [
        {
          "id": 108,
          "name": "Huqqa Emirgan",
          "pin_code": 6978
        }
      ],
      "organizations": [
        {
          "id": "63e94897-b6f7-4d43-b11c-0457d8b788c7",
          "name": "Huqqa",
          "slug": "huqqa",
          "host": "huqqa.checkandplace.com"
        }
      ],
      "last_login_at": "2017-08-10T07:12:26Z"
    }
  ]
}

Show User

HTTP Request

GET /api/v1/users/:id

JSON response body:

{
  "id": "f6f4cbcd-7733-4d1a-9205-d8f550d2b533",
  "first_name": "Jordan",
  "last_name": "Feil",
  "email": "anil1@iyidogan.com",
  "role": "normal",
  "is_active": true,
  "default_language": "tr",
  "last_login_at": "2021-03-16 15:30:00 +0300",
  "revenue_center_ids": [
    "c93550d2-b24e-48ff-b51e-20dd32ec613e",
    "ea21a55b-d618-48a0-b718-1533e57abc2f",
    "8846e556-28b0-4b1c-a6f4-4bef409572c9"
  ],
}

Current User

HTTP Request

GET /api/v1/current-user

JSON response body:

{
  "id": "7845392b-5adc-41a3-b1ab-905c756cc843",
  "first_name": "Shae",
  "last_name": "Upton",
  "email": "shae@upton.com",
  "role": "normal",
  "is_active": true,
  "default_language": "tr",
  "last_login_at": null,
  "revenue_centers": [
    {
      "id": "339a6210-e9d8-40a2-a327-181ddd4a6b0a",
      "name": "Bahçe",
      "grid_size_x": 4,
      "grid_size_y": 4,
      "average_time_for_reservation": 90,
      "store_id": "0ae1261b-5009-430f-948b-f1ed4dc2b856",
      "store_name": "Store",
      "child_revenue_centers": []
    }
  ]
}

Create User

HTTP Request

POST /api/v1/users

Body Parameters

Parameter Default Description Required
first_name String REQUIRED
last_name String REQUIRED
email String REQUIRED
password String REQUIRED
role normal String
default_language tr String
revenue_center_ids Array(String)

JSON request body:

{
  "first_name": "Jordan",
  "last_name": "Feil",
  "email": "anil1@iyidogan.com",
  "role": "normal",
  "default_language": "tr",
  "password": "password",
}

JSON response body:

{
  "user": {
    "id": "912f1737-391c-43f0-9ae4-bab7d4eefafc",
    "first_name": "Atakan",
    "last_name": "Acar",
    "email": "mail@mail.com",
    "role": "normal",
    "is_active": true,
    "default_language": "tr",
    "last_login_at": "2021-03-16 15:30:00 +0300",
    "revenue_centers": [
      {
        "id": "d6f2807d-9dfe-4280-85ba-a2578392b8d7",
        "name": "Bahçe",
        "grid_size_x": 4,
        "grid_size_y": 4,
        "average_time_for_reservation": 0,
        "interval_time_for_reservation": 15,
        "work_start_time": "00:00",
        "work_end_time": "23:59",
        "today_work_start_at": "2022-07-20T00:00:00.000+03:00",
        "today_work_end_at": "2022-07-20T23:59:00.000+03:00",
        "allow_reservation_request": false,
        "allow_online_reservation": false,
        "integration_source": null,
        "tables_count": 0,
        "store_pin_code": 5338,
        "store_id": "f09564c6-10fc-400d-8e77-de3e014114c6",
        "store_name": "Store",
        "child_revenue_centers": [],
        "children": []
      }
    ]
  }
}

Update User

HTTP Request

PATCH /api/v1/users/:id

Body Parameters

Parameter Default Description Required
first_name String REQUIRED
last_name String REQUIRED
email String REQUIRED
role normal String REQUIRED
is_active false Boolean REQUIRED
default_language tr String REQUIRED
revenue_center_ids Array(String) REQUIRED

JSON request body:

{
  "first_name": "Jordan",
  "last_name": "Feil",
  "email": "anil1@iyidogan.com",
  "role": "admin",
  "is_active": false,
  "default_language": "en",
}

JSON response body:

{
  "id": "f6f4cbcd-7733-4d1a-9205-d8f550d2b533",
  "first_name": "Jordan",
  "last_name": "Feil",
  "email": "anil1@iyidogan.com",
  "role": "admin",
  "is_active": false,
  "default_language": "en",
  "last_login_at": "2021-03-16 15:30:00 +0300",
  "revenue_center_ids": [
    "c93550d2-b24e-48ff-b51e-20dd32ec613e",
    "ea21a55b-d618-48a0-b718-1533e57abc2f",
    "8846e556-28b0-4b1c-a6f4-4bef409572c9"
  ]
}

Destroy User

HTTP Request

DELETE /api/v1/employees/:id

JSON response body:


  HTTP/1.1 200 OK

Web Socket

connection: wss://{app_url}/cable?token={EMPLOYEE_TOKEN}

Channels

StoreChannel

Includes store based data.

Parameter Default Description Required
store_id String REQUIRED

message: store

Reservations::CreateChannel

message: reservations[]

Reservations::UpdateChannel

message: reservations[]

LockedTables::CreateChannel

message: locked_tables[]

LockedTables::UpdateChannel

message: locked_tables[]

LockedTables::RemoveChannel

message: ids[]

Errors

Error Codes

  { info:   [{ message: 'ping', code: 10 }] }
  { errors: [{ message: 'slot_not_found', code: 100 }] }
  { errors: [{ message: 'user_not_found', code: 200}] }
  { errors: [{ message: 'user_not_authorized', code: 201}] }
  { errors: [{ message: 'login_failed', code: 202 }] }
  { info:   [{ message: 'logout_successful', code: 203 }] }
  { errors: [{ message: 'logout_failed', code: 204 }] }
  { errors: [{ message: 'activation_failed', code: 205 }] }
  { errors: [{ message: 'code_expire_time', code: 206 }] }
  { errors: [{ message: 'code_expire_time_passed', code: 207 }] }
  { errors: [{ message: 'user_already_active', code: 208 }] }
  { errors: [{ message: 'customer_not_found', code: 300 }] }
  { errors: [{ message: 'already_exists_customer', code: 301 }] }
  { errors: [{ message: 'anonym_customer_feature_inactive', code: 302 }] }
  { errors: [{ message: 'revenue_center_not_found', code: 400 }] }
  { errors: [{ message: 'phone_number_not_found', code: 500 }] }
  { errors: [{ message: 'exists_customer_phone_number', code: 501 }] }
  { errors: [{ message: 'phone_number_not_deleted', code: 502 }] }
  { errors: [{ message: 'tenant_not_found', code: 600 }] }
  { errors: [{ message: 'store_not_found', code: 700 }] }
  { errors: [{ message: 'table_not_found', code: 800 }] }
  { errors: [{ message: 'child_table_not_found', code: 801 }] }
  { errors: [{ message: 'already_exists_merge', code: 802 }] }
  { errors: [{ message: 'transfer_table_not_found', code: 803 }] }
  { errors: [{ message: 'not_a_parent', code: 804 }] }
  { errors: [{ message: 'reservation_not_found', code: 900 }] }
  { errors: [{ message: 'waiting_not_found', code: 1000 }] }
  { errors: [{ message: 'record_not_found', code: 1100 }] }
  { errors: [{ message: 'already_exists_sitting', code: 1200 }] }
  { errors: [{ message: 'already_table_available', code: 1201 }] }
  { errors: [{ message: 'can_not_assign_table', code: 1202 }] }
  { errors: [{ message: 'can_not_revoke_table', code: 1203 }] }
  { errors: [{ message: 'calendar_not_found', code: 1300 }] }
  { errors: [{ message: 'update_failed', code: 1400 }] }
  { errors: [{ message: 'source_not_found', code: 1500 }] }
  { errors: [{ message: 'already_exists_source', code: 1501 }] }
  { errors: [{ message: 'can_not_be_delayed', code: 1800 }] }
  { info:   [{ message: 'success_provision', code: 1900 }] }
  { errors: [{ message: 'failure_provision', code: 1901 }] }
  { errors: [{ message: 'external_source_not_found', code: 701 }] }
  { errors: [{ message: 'external_customer_not_found', code: 702 }] }
  { errors: [{ message: 'not_connect_external_source', code: 703 }] }

Micros Error Codes

  { errors: [{ message: 'micros_integration_disabled', code: 40 }] }
  { errors: [{ message: 'micros_check_is_not_open', code: 41 }] }
  { errors: [{ message: 'micros_check_is_open', code: 7 }] }
  { errors: [{ message: 'check_is_present', code: 42 }] }
  { errors: [{ message: 'check_is_not_present', code: 43 }] }
  { errors: [{ message: 'request_timeout', code: 408 }] }
  { info:   [{ message: 'micros_integration_enabled', code: 44 }] }

Opera Error Codes

  { errors: [{ message: 'inactive_opera_integration', code: 500 }] }
  { errors: [{ message: 'not_connect_opera_server', code: 501 }] }