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
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
- Use header: STORE_PIN_CODE
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
- The path for the
xlsxreport must be/api/v1/customers/list.xlsx - The path for the
csvreport must be/api/v1/customers/list.csv The path for the
pdfreport must be/api/v1/customers/list.pdfcolumns:
["first_name", "last_name", "gender", "country", "primary_phone_number", "email", "tags", "allow_sms", "allow_email", "blacklist", "is_active", "type_name", "note", "created_at", "updated_at", "total_reservation_count", "sum_of_payments", "total_no_show_count", "total_cancel_count", "last_visited_at", "last_visited_revenue_center", "last_visited_spend"]
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 | |
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 | |
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 |
- type
pastorfuture
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
}
Sitting Search
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 |
||
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 |
||
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 |
||
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 |
||
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
- The path for the
xlsxreport must be/api/v1/reports/reservations.xlsx - The path for the
csvreport must be/api/v1/reports/reservations.csv - The path for the
pdfreport must be/api/v1/reports/reservations.pdf
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
- The path for the report must be
/api/v1/reports/calendars.pdf
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
- The path for the report must be
api/v1/reservations.xlsx
| 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
- The path for the
xlsxreport must be/api/v1/reviews - The path for the
csvreport must be/api/v1/reviews - The path for the
pdfreport must be/api/v1/reviews
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 |
|---|---|---|
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 | |
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 |
|---|---|---|
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 |
|---|---|---|
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 |
|---|---|---|
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 | |
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 | |
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 }] }