{"swagger":"2.0","info":{"description":"","title":"QuandooAPIDocumentation"},"host":"public-api.prod.quandoo.com","tags":[{"name":"status"},{"name":"customers"},{"name":"merchants"},{"name":"reservation-enquiries"},{"name":"availabilities"},{"name":"reservations tags"},{"name":"reservation-settings"},{"name":"preorder"},{"name":"reservations"},{"name":"reviews"},{"name":"validations"}],"security":[{"API_TOKEN":[]}],"paths":{"/v1/status":{"get":{"tags":["status"],"summary":"Provides information on the status of the service","description":"","operationId":"getStatusByGet_1","produces":["application/json"],"parameters":[],"responses":{"200":{"description":"OK"},"500":{"description":"Internal server error"}}},"head":{"tags":["status"],"summary":"Provides information on the status of the service","description":"","operationId":"getStatusByHead_1","parameters":[],"responses":{"200":{"description":"OK"},"500":{"description":"Internal server error"}}}},"/v1/customers/{customerId}":{"get":{"tags":["customers"],"summary":"Get customer Data","description":"This endpoint allows an agent to get customer information by id.  \nCustomer id both in the request and response are agent-specific. The agent needs to be authenticated.\n\nThe endpoint will return `HTTP 404 - Not Found` if the customer with the specified id could not be found.\nIt will return `HTTP 403 - Forbidden` if the agent is not authenticated or the agent doesn't have permissions.\n\n####Request:\n* **customerId**: Agent-specific ID of the customer\n\n####Response:\nThe response contains the following data of the customer as explained below:\n* **id**: The agent-dependent identifier of the customer \n* **email**: The given email of this customer. _Optional_\n* **firstName**: First name of the customer. _Optional_\n* **lastName**: Last name of the customer. _Optional_\n* **gender**: The given gender of the customer (one of MALE, FEMALE, OTHER or UNDEFINED). _Optional_\n* **phoneNumber**: The ID of the merchant at which this reservation was made\n* **mobileNumber**: The ID of the customer to which this reservation belongs\n* **country**: 2-letter ISO country code of the customer, e.g. DE\n* **links**: Related links that can be followed based on this response\n* **subscriptions**: The newsletter subscriptions, e.g. QUANDOO, MERCHANT\n\nExample curl:\n```\ncurl https://{host}/v{X}/customers/9ffb3466-3562-42cc-add1-92a46a2f0902\n```\n\nExample response: \n```\n{\n  \"id\": \"9ffb3466-3562-42cc-add1-92a46a2f0902\",\n  \"firstName\": \"Gaius\",\n  \"lastName\": \"Octavius\",\n  \"gender\": \"male\",\n  \"email\": \"c2f22117-6148-45b8-ae79-41eda25eae67augustus@spqr.com\",\n  \"phoneNumber\": \"+4917312345678\",\n  \"country\": \"DE\",  \n  \"links\": [\n    {\n      \"href\": \"http://localhost:39250/v1/customers/9ffb3466-3562-42cc-add1-92a46a2f0902/reservations\",\n      \"method\": \"GET\",\n      \"rel\": \"get-customer-reservations\"\n    }\n  ],\n  \"subscriptions\": [\n    {\n      \"id\": \"QUANDOO\"\n    }\n  ]\n}\n```\n","operationId":"getCustomer_1","parameters":[{"name":"customerId","in":"path","description":"Id of the customer","required":true,"type":"string"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/CustomerResponse"}},"400":{"description":"Bad request","schema":{"$ref":"#/definitions/ErrorResponse"}},"403":{"description":"Access denied","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"Customer not found","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/ErrorResponse"}}},"security":[{"API_TOKEN":[]}]}},"/v1/customers/{customerId}/reservations":{"get":{"tags":["customers"],"summary":"Get customer reservations","description":"This endpoint allows an agent to get reservations of a customer. The results will be filtered by agent id. \nCustomer id in the request and reservation IDs in response are agent-specific. The agent needs to be authenticated.\n\nThe endpoint will return `HTTP 404 - Not Found` if the customer with the specified id could not be found.\nIt will return `HTTP 403 - Forbidden` if the agent is not authenticated or the agent doesn't have permissions.\n\n####Request:\n* **customerId**: Agent-specific ID of the customer\n\n####Response:\nThe response will be a _list_ of reservations. Each reservation has the fields explained below:\n* **id**: The agent-dependent unique id of the reservation\n* **number**: Quandoo internal identifier of the reservation.\n* **quandooId**: The public id of this reservation on quandoo system.\n* **status**: The status of the reservation eg. CREATED, CONFIRMED, CUSTOMER CANCELED etc.\n* **startTime**: The start time of the reservation. Format: `yyyy-MM-ddTHH:mm:ssZ`\n* **endTime**: The end time of the reservation. Format: `yyyy-MM-ddTHH:mm:ssZ`\n* **capacity**: The capacity (people count) of the reservation\n* **merchantId**: The ID of the merchant at which this reservation was made.\n* **customerId**: The public ID of the customer to which this reservation belongs\n* **promoCode**: The promotion code associated with this reservation. Optional.\n* **extraInfo**: extra information that the customer provided for the reservation. Optional.\n* **links**: Related links that can be followed based on this response.\n* **createdAt**: The date the reservation was created. Format: `yyyy-MM-ddTHH:mm:ssZ`\n* **updatedAt**: The date the reservation was last updated. Format: `yyyy-MM-ddTHH:mm:ssZ`\n\nExample curl:\n```\ncurl https://{host}/v{X}/customers/ce0706ff-a95d-4229-a220-d21dcd175342/reservations\n```\n\nExample response: \n```\n{\n  \"reservations\": [\n    {\n      \"id\": \"07f53b36-3f48-11e5-a151-feff819cdc9f\",\n      \"number\": 8734957,\n      \"quandooId\": \"07f53b36-3f48-11e5-a151-feff819cdc9f\",\n      \"status\": \"CREATED\",\n      \"startTime\": \"2015-06-22T12:00:00+00:00\",\n      \"endTime\": \"2015-06-22T13:00:00+00:00\",\n      \"capacity\": 4,\n      \"merchantId\": 1384,\n      \"customerId\": \"ce0706ff-a95d-4229-a220-d21dcd175342\",\n      \"promocode\": \"SOME_CAMPAIGN_CODE\",\n      \"extraInfo\": \"request for baby chair\",\n      \"links\": [\n        {\n          \"href\": \"https://{host}/v{X}/reservations/07f53b36-3f48-11e5-a151-feff819cdc9f\",\n          \"method\": \"GET\",\n          \"rel\": \"self\"\n        },\n        {\n          \"href\": \"https://{host}/v{X}/reservations/07f53b36-3f48-11e5-a151-feff819cdc9f\",\n          \"method\": \"PATCH\",\n          \"rel\": \"update\"\n        }\n      ],\n      \"createdAt\": \"2015-06-01T15:21:54Z\",\n      \"updatedAt\": \"2015-06-01T18:45:30Z\"\n    },\n    {\n      \"id\": \"d8f53b36-3f48-11e5-a151-feff819cdc7a\",\n      \"number\": 8734958,\n      \"quandooId\": \"d8f53b36-3f48-11e5-a151-feff819cdc7a\",\n      \"status\": \"CONFIRMED\",\n      \"startTime\": \"2015-06-22T12:00:00+00:00\",\n      \"endTime\": \"2015-06-22T13:00:00+00:00\",\n      \"capacity\": 3,\n      \"merchantId\": 1384,\n      \"customerId\": \"ce0706ff-a95d-4229-a220-d21dcd175342\",\n      \"promocode\": \"SOME_CAMPAIGN_CODE\",\n      \"links\": [\n        {\n          \"href\": \"https://{host}/v{X}/reservations/d8f53b36-3f48-11e5-a151-feff819cdc7a\",\n          \"method\": \"GET\",\n          \"rel\": \"self\"\n        },\n        {\n          \"href\": \"https://{host}/v{X}/reservations/d8f53b36-3f48-11e5-a151-feff819cdc7a\",\n          \"method\": \"PATCH\",\n          \"rel\": \"update\"\n        }\n      ],\n      \"createdAt\": \"2015-06-01T15:21:54Z\",\n      \"updatedAt\": \"2015-06-01T18:45:30Z\"\n    }\n  ]\n}\n```\n","operationId":"getReservations_1","parameters":[{"name":"customerId","in":"path","description":"Id of the customer","required":true,"type":"string"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/ReservationDataList"}},"400":{"description":"Bad request","schema":{"$ref":"#/definitions/ErrorResponse"}},"403":{"description":"Access denied","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"Customer not found","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/ErrorResponse"}}},"security":[{"API_TOKEN":[]}]}},"/v1/merchants/{merchantId}/similar":{"get":{"tags":["merchants"],"summary":"Allows to get a merchant by id and find similar merchants","description":"This endpoint allows to receive detailed information for a particular merchant in the system and for restaurants that are similar to this one.\nA merchant is similar if all the following conditions are met:\n1. Location: the recommended merchants are within 30 km radius from the main merchant\n2. The similar merchants are bookable online\n3. The similar merchants have the main cuisine in common\n\nThis merchant should be specified by their identifier **merchantId**, which is mandatory.\nThe endpoint can take optional request header **Accept-Language**.\nThis header is used to determine correct locale and has an effect on translation of merchant's entity fields, that may be omitted.\n\nThe expected value of the header **Accept-Language** should contain language and can contain country, e.g. \"de_DE\" or \"de\". Locale by default is \"en_GB\".\n\nThe endpoint returns status `HTTP 200` if the request is successful. In a successful requests the specified merchant was found.\n\nIf the merchant has no products allowed for a web search, i.e. is not bookable, response data with `HTTP 200` is returned, but the field `merchant` is not set. Instead, the merchant search message is set.\n\nThe endpoint will return status `HTTP 404` if the merchant, specified by identifier, was not found.\n\nExample curl:\n```\ncurl  -H 'X-Quandoo-AuthToken: {INSERT_KEY_HERE}' -H 'Accept-Language: de_DE' 'https://{host}/v{X}/merchants/11/similar'\n```\n\nExample responses:\n`merchant bookable`\n```\n{\n    \"merchant\": {\n        \"id\":11,\n        \"name\":\"Test merchant\",\n        \"phoneNumber\":\"+27113901837\",\n        \"currency\":\"ZAR\",\n        \"locale\":\"en_ZA\",\n        \"timezone\":\"Africa/Johannesburg\",\n        \"location\":{\n            \"coordinates\":{\n                \"latitude\":33.9,\n                \"longitude\":18.4\n            },\n            \"address\":{\n                \"street\":\"Tamerlan street\",\n                \"number\":\"6A\",\n                \"zipcode\":\"10787\",\n                \"city\":\"Cape Town\",\n                \"country\":\"ZAF\"\n            }\n        },\n        \"reviewScore\": \"5.3\",\n        \"tagGroups\":[\n            {\n                \"type\":\"CUISINE\",\n                \"tags\":[\n                    {\n                        \"id\":25,\n                        \"name\":\"Testküche Hauptkategorie\"\n                    },\n                    {\n                        \"id\":28,\n                        \"name\":\"Test cuisine\"\n                    }\n                ]\n            }\n        ],\n        \"images\":[\n            {\n                \"url\":\"https://dci5ez2ey8tr9.cloudfront.net/8e4d1063-9171-40b1-94b7-5e9337591a90/7_sld.jpg\"\n            }\n        ],\n        \"documents\":[],\n        \"links\":[\n            {\n                \"href\":\"https://{host}/{path}?aid=16\",\n                \"method\":\"GET\",\n                \"rel\":\"DETAILS\"\n            },\n            {\n                \"href\":\"https://{host}/{path}?aid=16&countryId=NLD\",\n                \"method\":\"GET\",\n                \"rel\":\"WIDGET\"\n            },\n            {\n                \"href\":\"https://{host}/{path}/details?aid=16&countryId=NLD\",\n                \"method\":\"GET\",\n                \"rel\":\"WIDGET_DETAILS\"\n            }\n        ],\n        \"bookable\": true,\n        \"openingTimes\": {\n          \"standardOpeningTimes\": {\n            \"SATURDAY\": [\n              {\n                \"start\": \"09:00:00\",\n                \"end\": \"20:00:00\"\n              }\n            ],\n            \"SUNDAY\": [\n              {\n                \"start\": \"09:00:00\",\n                \"end\": \"18:00:00\"\n              }\n            ]\n          }\n        },\n        \"ccvEnabled\": true,\n        \"chain\": {\n           \"id\": 1,\n           \"name\": \"Test chain\"\n        }\n    },\n   \"recommendedMerchants\": {\n        \"merchants\": [\n            {\n                \"id\":12,\n                \"name\":\"similar merchant\",\n                \"phoneNumber\":\"+27113901838\",\n                \"currency\":\"ZAR\",\n                \"locale\":\"en_ZA\",\n                \"timezone\":\"Africa/Johannesburg\",\n                \"location\":{\n                    \"coordinates\":{\n                        \"latitude\":33.8,\n                        \"longitude\":18.4\n                    },\n                    \"address\":{\n                        \"street\":\"Tamerlan street\",\n                        \"number\":\"5A\",\n                        \"zipcode\":\"10787\",\n                        \"city\":\"Cape Town\",\n                        \"country\":\"ZAF\"\n                    }\n                },\n                \"reviewScore\": \"5.3\",\n                \"tagGroups\":[\n                    {\n                        \"type\":\"CUISINE\",\n                        \"tags\":[\n                            {\n                                \"id\":25,\n                                \"name\":\"Testküche Hauptkategorie\"\n                            },\n                            {\n                                \"id\":28,\n                                \"name\":\"Test cuisine\"\n                            }\n                        ]\n                    }\n                ],\n                \"images\":[\n                    {\n                        \"url\":\"https://dci5ez2ey8tr9.cloudfront.net/8e4d1063-9171-40b1-94b7-5e9337591a90/7_sld.jpg\"\n                    }\n                ],\n                \"documents\":[],\n                \"links\":[\n                    {\n                        \"href\":\"https://{host}/{path}?aid=16\",\n                        \"method\":\"GET\",\n                        \"rel\":\"DETAILS\"\n                    },\n                    {\n                        \"href\":\"https://{host}/{path}?aid=16&countryId=NLD\",\n                        \"method\":\"GET\",\n                        \"rel\":\"WIDGET\"\n                    },\n                    {\n                        \"href\":\"https://{host}/{path}/details?aid=16&countryId=NLD\",\n                        \"method\":\"GET\",\n                        \"rel\":\"WIDGET_DETAILS\"\n                    }\n                ],\n                \"bookable\": true,\n                \"openingTimes\": {\n                  \"standardOpeningTimes\": {\n                    \"SATURDAY\": [\n                      {\n                        \"start\": \"09:00:00\",\n                        \"end\": \"20:00:00\"\n                      }\n                    ],\n                    \"SUNDAY\": [\n                      {\n                        \"start\": \"09:00:00\",\n                        \"end\": \"18:00:00\"\n                      }\n                    ]\n                  }\n                },\n                \"ccvEnabled\": true,\n                \"chain\": {\n                   \"id\": 1,\n                   \"name\": \"Test chain\"\n                }\n            }\n        ],\n        \"size\": 1,\n        \"offset\": 0,\n        \"limit\": 10\n    }\n}\n```\n\n`merchant not bookable`\n```\n{\n    \"merchantSearchMessage\": \"MERCHANT_NOT_BOOKABLE\",\n    \"recommendedMerchants\": {\n        \"limit\": 10,\n        \"merchants\": [...],\n        \"offset\": 0,\n        \"size\": 0\n    }\n}\n```","operationId":"searchSimilar_1","produces":["application/json"],"parameters":[{"name":"merchantId","in":"path","description":"merchantId","required":true,"type":"integer","format":"int32"},{"name":"sort","in":"query","description":"Sort order. Default sorting will be by proximity.","required":false,"type":"string","default":"CLOSEST","enum":["CLOSEST"]},{"name":"limit","in":"query","description":"Max number of merchant recommendations to return.","required":false,"type":"integer","default":10,"format":"int32"},{"name":"Accept-Language","in":"header","description":"Locale.<br>Format:<br>&lt;language code&gt;[_&lt;country code&gt;]","required":false,"type":"string","default":"en_GB"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/MerchantWithRecommendationsDto"}},"404":{"description":"Merchant not found error","schema":{"$ref":"#/definitions/ErrorResponse"}}},"security":[{"API_TOKEN":[]}]}},"/v1/merchants/{merchantId}":{"get":{"tags":["merchants"],"summary":"Allows to get a merchant by id","description":"This endpoint allows to receive detailed information on a particular merchant in the system. This merchant should be specified by their identifier **merchantId**, which is mandatory. The endpoint can take optional request header **Accept-Language**. This header is used to determine correct locale and has an effect on translation of merchant's entity fields, that may be omitted.\n\nThe expected value of the header **Accept-Language** should contain language and can contain country, e.g. \"de_DE\" or \"de\". Locale by default is \"en_GB\".\n\nThe endpoint returns status `HTTP 200` if the request is successful.\nThe endpoint will return status `HTTP 404` if the merchant, specified by identifier, was not found or has no products, allowed for a web search. \n\nExample curl:\n```\ncurl  -H 'X-Quandoo-AuthToken: {INSERT_KEY_HERE}' -H 'Accept-Language: de_DE' 'https://{host}/v{X}/merchants/11'\n```\n\nExample response:\n```\n{\n    \"id\":11,\n    \"name\":\"Test merchant\",\n    \"phoneNumber\":\"+27113901837\",\n    \"currency\":\"ZAR\",\n    \"locale\":\"en_ZA\",\n    \"timezone\":\"Africa/Johannesburg\",\n    \"location\":{\n        \"coordinates\":{\n            \"latitude\":33.9,\n            \"longitude\":18.4\n        },\n        \"address\":{\n            \"street\":\"Tamerlan street\",\n            \"number\":\"6A\",\n            \"zipcode\":\"10787\",\n            \"city\":\"Cape Town\",\n            \"country\":\"ZAF\"\n        }\n    },\n    \"reviewScore\": \"5.3\",\n    \"tagGroups\":[\n        {\n            \"type\":\"CUISINE\",\n            \"tags\":[\n                {\n                    \"id\":25,\n                    \"name\":\"Testküche Hauptkategorie\"\n                },\n                {\n                    \"id\":28,\n                    \"name\":\"Test cuisine\"\n                }\n            ]\n        }\n    ],\n    \"images\":[\n        {\n            \"url\":\"https://dci5ez2ey8tr9.cloudfront.net/8e4d1063-9171-40b1-94b7-5e9337591a90/7_sld.jpg\"\n        }\n    ],\n    \"documents\":[],\n    \"links\":[\n        {\n            \"href\":\"https://{host}/{path}?aid=16\",\n            \"method\":\"GET\",\n            \"rel\":\"DETAILS\"\n        },\n        {\n            \"href\":\"https://{host}/{path}?aid=16&countryId=NLD\",\n            \"method\":\"GET\",\n            \"rel\":\"WIDGET\"\n        },\n        {\n            \"href\":\"https://{host}/{path}/details?aid=16&countryId=NLD\",\n            \"method\":\"GET\",\n            \"rel\":\"WIDGET_DETAILS\"\n        }\n    ],\n    \"bookable\": true,\n    \"openingTimes\": {\n      \"standardOpeningTimes\": {\n        \"SATURDAY\": [\n          {\n            \"start\": \"09:00:00\",\n            \"end\": \"20:00:00\"\n          }\n        ],\n        \"SUNDAY\": [\n          {\n            \"start\": \"09:00:00\",\n            \"end\": \"18:00:00\"\n          }\n        ]\n      }\n    },\n    \"ccvEnabled\": true,\n    \"chain\": {\n       \"id\": 1,\n       \"name\": \"Test chain\"\n    }\n}\n```","operationId":"search_2","produces":["application/json"],"parameters":[{"name":"merchantId","in":"path","description":"merchantId","required":true,"type":"integer","format":"int32"},{"name":"Accept-Language","in":"header","description":"Locale.<br>Format:<br>&lt;language code&gt;[_&lt;country code&gt;]","required":false,"type":"string","default":"en_GB"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/MerchantDetailsDto"}},"404":{"description":"Merchant not found error","schema":{"$ref":"#/definitions/ErrorResponse"}}},"security":[{"API_TOKEN":[]}]}},"/v1/merchants":{"get":{"tags":["merchants"],"summary":"Allows to get merchant information by parameters","description":"###Description\n\nThis endpoint is used to search merchants by a set of parameters.\nFor each merchant in the result there is information about location, language and tags that describe this merchant's basic characteristics, there is also a set of images selected by the merchant.\n\n####Possible query parameters:\n\n##Mandatory geo parameters (at least one of two options must be provided)\n\n* **place**: Filter for merchant on a country, city or district whose name matches the parameter. (if the parameter does not match any city or district on the system it is ignored)\n* **centerPoint**: Filter merchants within the circle defined by center on centerPoint and radius defined by radius parameter (if not informed defaults to 10). Center point has the format LATITUDE,LONGITUDE with both parameters as numbers with . as decimal separator (e.g `centerPoint=52.547928,13.4085728`)\n\n* **query**: Filter merchants using text similarity on a number of merchant fields like name, description, categories and tags\n* **placeIds**: DEPRECATED. Filter for merchant by id of place. Semicolon separated integer value.\n* **radius**: The radius of the circle to filter merchants in **kilometers**. Defaults to 10 and is only used if *centerPoint* is also informed\n* **bookable**: Boolean value, if informed true means that only merchants that are online bookable will be returned and false means that only merchants that are NOT online bookable will be returned\n* **tags**: Filter out merchants with the selected tags text. Semicolon separated text value. All or nothing field: if a tag is not found, the query will fail. Cannot be used in conjunction with 'tagIds' parameter.\n* **tagIds**: Filter out merchants with the selected tag ids. Semicolon separated text value. All or nothing field: if a tag is not found, the query will fail. Cannot be used in conjunction with 'tags' parameter.\n* **reviewScoreMax**: Filter out merchants with review score higher than the one informed.\n* **onlyWithAttributes**: This field only accepts the value **documents** for now. If informed only merchants with documents will be returned. You need to have required permissions to use this filter\n* **capacity**: Number of people. In order to be effective, \"place\", \"date\" and \"fromTime\" must also be set.\n* **date**: Date of the desired reservation in merchants' time zone. Format: yyyy-MM-dd. Availability search is only activated if \"place\" is specified.\n* **fromTime**: Beginning of the desired reservation time frame in merchants' time zone. Format: HH:mm. Consider a 3h buffer for the time (0.5h before the given time and 2.5h after)\n* **offset**: Number of merchants to skip on the result. Defaults to 0\n* **limit**: Maximum number of merchants to return. Defaults to 100 and cannot be more than 100.\n* **ivrNumber**: Filter out merchants with phone number.\n\n\n####Result fields for Merchant object:\n\n* **id**: Id of the merchant\n* **name**: Name of the merchant\n* **phoneNumber**: The phone number of the merchant\n* **currency**: Currency of the merchant in the ISO 4217 letter format\n* **locale**: Locale used to communicate with this merchant\n* **timezone**: Canonical Timezone name\n* **location**: Location of the merchant, contains both an geo located point and an address if available\n* **reviewScore**: Review score of the merchant\n* **tagGroups**: Tags (grouped) about relevant merchant characteristics\n* **images**: Group of images selected by the merchant\n* **documents**: Group of documents released by this merchant (e.g seasonal menus )\n* **links**: Links for other pages or api operations for this merchant\n* **bookable**: The flag indicates whether the merchant is bookable or not\n* **openingTimes**: Group of opening times: restaurant opening times for this merchant. Time range beginning may be greater than the end time of the range, when this range goes beyond the day when it was started, e.g. 19:00:00 - 02:00:00\n* **ccvEnabled**: If true, credit card information is required when creating a reservation\n* **chain**: Merchant chain information, if any\n* **ivrRedirectNumber**: The IVR forwarding phone number, requires permission\n* **shortDescription**: Merchant short description, requires permission\n* **longDescription**: Merchant long description, requires permission\n\n\n###Authenticated use of the api:\n* Field `documents` is only accessible for authorized callers and will be empty otherwise.\n* Queries with parameter `onlyWithAttributes` are only allowed for authorized callers and will return `HTTP 403` for unauthorized requests\n\n#####How?\nIn order to make an authenticated call the caller must send a header name `X-Quandoo-AuthToken` with the token obtained from contact with Quandoo.\n\n###Pagination of the result:\n\nThe result contains the fields `size` with the number of all merchants that matched the informed parameters, `offset` and `limit` defining which merchants from the complete list are on this response,\nand the caller can use query parameters `offset` and `limit` to get different merchants on the result list\n\n###Examples:\n\nExample curl:\n```\ncurl -H 'X-Quandoo-AuthToken: INSERT_KEY_HERE' 'https://{host}/v{X}/merchants?query=Zim&place=Berlin&amp;centerPoint=52.5479288%2C13.4085728&radius=10&bookable=true&reviewScoreMax=200&onlyWithAttributes=documents&offset=0&limit=100'\n```\n\nExample response:\n```\n{\n  \"merchants\": [\n    {\n      \"id\": 215,\n      \"name\": \"a-merchant-Zim\",\n      \"phoneNumber\": \"+49153153153\",\n      \"currency\": \"EUR\",\n      \"locale\": \"de_DE\",\n      \"timezone\": \"Europe/Berlin\",\n      \"location\": {\n        \"coordinates\": {\n          \"latitude\": 55,\n          \"longitude\": 12\n        },\n        \"address\": {}\n      },\n      \"reviewScore\": \"5.3\",\n      \"tagGroups\": [\n        {\n          \"type\": \"CUISINE\",\n          \"tags\": [\n            {\n              \"id\": 63,\n              \"name\": \"Testküche Hauptkategorie\"\n            },\n            {\n              \"id\": 66,\n              \"name\": \"Test cuisine\"\n            }\n          ]\n        }\n      ],\n      \"images\": [],\n      \"documents\": [\n        {\n          \"name\": \"Main Menu\",\n          \"url\": \"https://d2s6u6f7snurg9.cloudfront.net/partner/uploads/MD-document-3ec1dc15-1b69-463f-bdd2-c060b9bf844d.pdf\",\n          \"format\": \"pdf\",\n          \"description\": \"Seasonal Main Menu\"\n        }\n      ],\n      \"links\": [\n        {\n          \"href\": \"https://{host}/{path}?aid=16\",\n          \"method\": \"GET\",\n          \"rel\": \"DETAILS\"\n        },\n        {\n          \"href\": \"https://{host}/{path}?aid=16&countryId=NLD\",\n          \"method\": \"GET\",\n          \"rel\": \"WIDGET\"\n        },\n        {\n          \"href\": \"https://{host}/{path}/details?aid=16&countryId=NLD\",\n          \"method\": \"GET\",\n          \"rel\": \"WIDGET_DETAILS\"\n        }\n      ],\n      \"bookable\": true,\n      \"ccvEnabled\": true,\n      \"chain\": {\n        \"id\": 1,\n        \"name\": \"Test chain\"\n      },\n      \"ivrRedirectNumber\": \"+49153153153\",\n      \"shortDescription\": \"Test short description\",\n      \"longDescription\": \"Test long description\",\n    },\n    {\n      \"id\": 219,\n      \"name\": \"another merchants Zim\",\n      \"phoneNumber\": \"+49154154154\",\n      \"currency\": \"EUR\",\n      \"locale\": \"de_DE\",\n      \"timezone\": \"Europe/Berlin\",\n      \"location\": {\n        \"coordinates\": {\n          \"latitude\": 52,\n          \"longitude\": 13\n        },\n        \"address\": {\n          \"street\": \"Wintersteinstr.\",\n          \"number\": \"15\",\n          \"zipcode\": \"10587\",\n          \"city\": \"Berlin\",\n          \"country\": \"DEU\"\n        }\n      },\n      \"reviewScore\": \"4.7\",      \n      \"tagGroups\": [\n        {\n          \"type\": \"CUISINE\",\n          \"tags\": [\n            {\n              \"id\": 79,\n              \"name\": \"Testküche Hauptkategorie\"\n            },\n            {\n              \"id\": 82,\n              \"name\": \"Test Japanese\"\n            }\n          ]\n        },\n        {\n          \"type\": \"PRICE\",\n          \"tags\": [\n            {\n              \"id\": 84,\n              \"name\": \"Test expensive\"\n            }\n          ]\n        }\n      ],\n      \"images\": [\n        {\n          \"url\": \"https://dci5ez2ey8tr9.cloudfront.net/1482eec7-e585-4821-b096-8a9941e0d2eb/25_sld.jpg\"\n        }\n      ],\n      \"documents\": [],\n      \"links\": [\n        {\n          \"href\": \"https://{host}/{path}?aid=16\",\n          \"method\": \"GET\",\n          \"rel\": \"DETAILS\"\n        },\n        {\n          \"href\": \"https://{host}/{path}?aid=16&countryId=NLD\",\n          \"method\": \"GET\",\n          \"rel\": \"WIDGET\"\n        },\n        {\n          \"href\": \"https://{host}/{path}/details?aid=16&countryId=NLD\",\n          \"method\": \"GET\",\n          \"rel\": \"WIDGET_DETAILS\"\n        }\n      ],\n      \"bookable\": true,\n      \"openingTimes\": {\n        \"standardOpeningTimes\": {\n          \"SATURDAY\": [\n            {\n              \"start\": \"09:00:00\",\n              \"end\": \"20:00:00\"\n            }\n          ],\n          \"SUNDAY\": [\n            {\n              \"start\": \"09:00:00\",\n              \"end\": \"18:00:00\"\n            }\n          ]\n        }\n      },\n      \"ccvEnabled\": true,\n      \"chain\": {\n        \"id\": 1,\n        \"name\": \"Test chain\"\n      },\n      \"ivrRedirectNumber\": \"+49153153153\",\n      \"shortDescription\": \"Test short description\",\n      \"longDescription\": \"Test long description\",\n    }\n  ],\n  \"size\": 2,\n  \"offset\": 0,\n  \"limit\": 100\n}\n```","operationId":"search","produces":["application/json"],"parameters":[{"name":"query","in":"query","description":"Search query for a merchant name","required":false,"type":"string"},{"name":"place","in":"query","description":"Search query for a place (country, city or district) name: the most relevant places, if any, are taken as a filter","required":false,"type":"string"},{"name":"placeIds","in":"query","description":"DEPRECATED. Filter by place found by id. Semicolon separated.","required":false,"type":"string"},{"name":"centerPoint","in":"query","description":"Search with coordinates and radius. \"radius\" argument can be set, otherwise default value of 10 km will be used.<br>Format:<br>53.1222,13.0303<br>where latitude=53.1222, longitude=13.0303","required":false,"type":"string"},{"name":"radius","in":"query","description":"Radius for coordinate-based search","required":false,"type":"integer","default":10,"format":"int32"},{"name":"bookable","in":"query","description":"Filter only bookable merchants","required":false,"type":"boolean"},{"name":"tags","in":"query","description":"Filter by tags found by text. The value can be either in English or in the specific locale. Semicolon separated. All or nothing behaviour: if one single tag is not found, the whole request fails. Cannot be used in combination with 'groupedTagIds' parameter.","required":false,"type":"string"},{"name":"tagIds","in":"query","description":"Filter by tags found by id. Semicolon separated. All or nothing behaviour: if one single tag id is not found, the whole request fails. Cannot be used in combination with 'tags' parameter.","required":false,"type":"string"},{"name":"reviewScoreMax","in":"query","description":"Filter by max review score (100 - 600)","required":false,"type":"integer","format":"int32"},{"name":"onlyWithAttributes","in":"query","description":"Search with attributes specified only. Attribute \"documents\" is currently supported, requires permission","required":false,"type":"string"},{"name":"capacity","in":"query","description":"Number of people. In order to be effective, \"date\" and \"fromTime\" must also be set.","required":true,"type":"integer","default":2,"format":"int32"},{"name":"date","in":"query","description":"Date of the desired reservation in merchants' time zone. Format: yyyy-MM-dd. Availability search is only activated if \"place\" is specified.","required":false,"type":"string","format":"date","x-example":"2019-01-11"},{"name":"fromTime","in":"query","description":"Beginning of the desired reservation time frame in merchants' time zone. Format: HH:mm. Consider a 3h buffer for the time (0.5h before the given time and 2.5h after)","required":false,"type":"string","x-example":"20:00"},{"name":"offset","in":"query","description":"offset","required":false,"type":"integer","default":0,"format":"int32"},{"name":"limit","in":"query","description":"limit","required":false,"type":"integer","default":100,"format":"int32"},{"name":"Accept-Language","in":"header","description":"language","required":false,"type":"string"},{"name":"ivrNumber","in":"query","description":"ivrNumber","required":false,"type":"string"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/MerchantDetailsDtoList"}},"400":{"description":"Bad request","schema":{"$ref":"#/definitions/ErrorResponse"}}},"security":[{"API_TOKEN":[]}]}},"/v1/merchants/{merchantId}/customers":{"get":{"tags":["customers"],"summary":"Get a list of Customers of a merchant","description":"This endpoint allows a third party to get a list of customers of a merchant.\nThe list is filtered, showing only the customers that the third party system has access.\nCustomer id is agent-specific if the customer was created by the agent. The agent needs to be authenticated.\n\nThe endpoint will return `HTTP 404 - Not Found` if the merchant with the specified id could not be found.\nIt will return `HTTP 403 - Forbidden` if the agent is not authenticated or the agent doesn't have permissions.\n\n####Request:\n* **merchantId**: Identifier of the merchant\n* **offset**: sets the starting element to be returned. Defaults to 0 when unset or malformed.\n* **limit**: maximum number of results to be returned. Value must be between 1 and 100. Defaults to 100 when unset, malformed or outside bounds.\n* **modifiedSince**: earliest date time of time window in UTC. Format: yyyy-MM-dd HH:mm:ss\n* **modifiedUntil**: latest date time of time window in UTC. Format: yyyy-MM-dd HH:mm:ss\n\n####Response:\nThe response contains the following data of the customer as explained below:\n* **id**: The agent-dependent identifier of the customer \n* **title**: The title of the customer. _Optional_\n* **firstName**: First name of the customer. _Optional_\n* **lastName**: Last name of the customer. _Optional_\n* **email**: The given email of this customer. _Optional_\n* **gender**: The given gender of the customer (one of MALE, FEMALE, OTHER or UNDEFINED). _Optional_\n* **phoneNumber**: The phone number of the customer. _Optional_\n* **mobileNumber**: The mobile phone number of the customer. _Optional_\n* **locale**: The locale of the customer.\n* **links**: Related links that can be followed based on this response\n* **subscriptions**: The newsletter subscriptions, e.g. QUANDOO, MERCHANT\n* **statistics**: The customer statistics: number of successful, cancelled and no-show reservations\n* **createdAt**: The date the customer was created. Format: yyyy-MM-ddTHH:mm:ssZ\n* **updatedAt**: The date the customer was last updated. Format: yyyy-MM-ddTHH:mm:ssZ\n\nExample curl:\n```\ncurl https://{host}/v{X}/merchants/1234/customers\n```\n\nExample response: \n```\n{\n  \"result\": [\n    {\n      \"id\": \"9ffb3466-3562-42cc-add1-92a46a2f0902\",\n      \"customerRef\": \"9ffb3466-3562-42cc-add1-92a46a2f0902\",\n      \"marketingFlags\": [\n        {\n          \"marketingSettingType\": \"NEWSLETTERS\",\n          \"marketingSettingStatus\": \"INACTIVE\"\n        },\n        {\n          \"marketingSettingType\": \"PROMO_CODES\",\n          \"marketingSettingStatus\": \"ACTIVE\"\n        }\n      ],\n      \"title\": \"Mr.\",\n      \"firstName\": \"John\",\n      \"lastName\": \"Doe\",\n      \"email\": \"test@quandoo.de\",\n      \"phoneNumber\": \"+493012345678\",\n      \"mobileNumber\": \"+17712345678\",\n      \"locale\": \"de_DE\",\n      \"links\": [\n        {\n          \"href\": \"http://localhost:39250/v1/customers/9ffb3466-3562-42cc-add1-92a46a2f0902/reservations\",\n          \"method\": \"GET\",\n          \"rel\": \"get-customer-reservations\"\n        }\n      ],\n      \"subscriptions\": [\n        {\n          \"id\": \"QUANDOO\"\n        }\n      ],\n      \"statistics\": {\n        \"reservationSuccessfulCount\": 8,\n        \"reservationCancelledCount\": 5,\n        \"reservationNoShowCount\": 2\n      },\n      \"createdAt\": \"2018-11-22T18:42:16Z\",\n      \"updatedAt\": \"2018-11-30T18:16:02Z\"\n    }\n  ],\n  \"offset\": 0,\n  \"limit\": 100\n}\n```\n","operationId":"getCustomersOfMerchant_1","produces":["application/json"],"parameters":[{"name":"merchantId","in":"path","description":"Id of the merchant","required":true,"type":"integer","format":"int32"},{"name":"offset","in":"query","description":"offset","required":false,"type":"integer","default":0,"format":"int32"},{"name":"limit","in":"query","description":"limit","required":false,"type":"integer","default":100,"format":"int32"},{"name":"modifiedSince","in":"query","description":"modifiedSince. Format: yyyy-MM-dd HH:mm:ss","required":false,"type":"string","format":"date-time","x-example":"2018-01-01 00:00:00"},{"name":"modifiedUntil","in":"query","description":"modifiedUntil. Format: yyyy-MM-dd HH:mm:ss","required":false,"type":"string","format":"date-time","x-example":"2018-03-01 00:00:00"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/CustomerDataList"}},"400":{"description":"Bad request","schema":{"$ref":"#/definitions/ErrorResponse"}},"403":{"description":"Access denied","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"Customer not found","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/ErrorResponse"}}},"security":[{"API_TOKEN":[]}]}},"/v1/reservation-enquiries":{"put":{"tags":["reservation-enquiries"],"summary":"Create reservation enquiries","description":"This endpoint allows to create a reservation enquiry for a certain capacity, start and end time. It also requires certain customer information. All optional fields can be either omitted or set to null. The endpoint is idempotent, which means sending the same request twice will not create another reservation enquiry. For that purpose the client is required to generate an agent-specific unique ID for each request.\n\nThe endpoint will return status `HTTP 400` should any of the required parameters be missing or formatted incorrectly. See schema for details. \n\n####Request:\nThe request needs to have 3 objects: reservation enquiry, customer and tracking information.\n\n* **reservationEnquiry**: Information about the merchant and the enquiry.\n  * **id**: The unique identifier of the reservation enquiry for the calling agent (Agent dependent field) or NULL if the agent identifier should be created. Optional.\n  * **merchantId**: The ID of the merchant at which this enquiry will be made. **Required**.\n  * **capacity**: The capacity (people count) of the reservation enquiry. **Required**.\n  * **startDateTime**: The start date and time when the customer wants to make a reservation. Format: yyyy-MM-ddTHH:mm:ssZ. **Required**.\n  * **endDateTime**: The expected date and time for the reservation to end accordingly to the customer. Format: yyyy-MM-ddTHH:mm:ssZ. **Required**.\n  * **message**: A free-text message to the merchant. Max of 5000 characters. **Required**.\n\n* **customer**: Information on the customer making the reservation.\n  * **id**: Identifier of the customer for the calling agent. Agent dependent field. Optional.\n  * **firstName**: The first name of the customer. Optional.\n  * **lastName**: The last name of the customer. Optional.\n  * **emailAddress**: The email address of the customer. **Required**.\n  * **phoneNumber**: The phone number of the customer. Without country code, since it will be assumed from the country field. Example: 030120765890. **Required**.\n  * **locale**: The locale of the customer. E.g. de_DE. **Required**.\n  * **country**: The 2 letter ISO country of the customer. E.g DE. **Required**\n  * **subscriptions**: List of requested subscriptions e.g. QUANDOO, MERCHANT. Optional.\n\n* **tracking**: Third party information used to track customer and reservation enquiry.\n  * **agent**: The id of the agent creating this reservation enquiry. **Required**.\n  * **cookie**: Cookie information to be stored with this reservation. Optional.\n\n####Response:\nThe response returns information on the created reservation enquiry and the customer along with relevant links to follow.\n\n* **reservationEnquiry**: Information on the created reservation enquiry.\n  * **id**: Agent-specific id set for the reservation enquiry.\n\n* **customer**: Information on the customer.\n  * **id**: Agent-specific id set for the customer.\n\n* **links**: Related links that can be followed based on this response.\n\nExample curl:\n```\ncurl -H \"Content-Type: application/json\" -X POST -d '\n{\n  \"reservationEnquiry\": {\n    \"id\": \"07f53b36-3f48-11e5-a151-feff819cdc9f\",\n    \"merchantId\": 15,\n    \"capacity\": 10,\n    \"startDateTime\": \"2015-06-22T12:00:00+00:00\",\n    \"endDateTime\": \"2015-06-22T17:00:00+00:00\",\n    \"message\": \"Customer specific message\"\n  },\n  \"customer\": {\n        \"id\": \"659b9f4b-cd1a-4dc9-a5c3-8ef6bacbade5\",\n        \"firstName\": \"Hans\",\n        \"lastName\": \"Wurst\",\n        \"emailAddress\": \"hans.wurst@foo.bar\",\n        \"phoneNumber\": \"017312345678\",\n        \"locale\": \"de_DE\",\n        \"country\": \"DE\",\n        \"subscriptions\": [\n          {\n              \"id\": \"QUANDOO\"\n          },\n          {\n              \"id\": \"MERCHANT\"\n          }\n      ]\n    },\n    \"tracking\": {\n        \"agent\": {\n          \"id\": 3\n        },\n        \"cookie\": {\n            \"tracking\": \"ff819cdc9\",\n            \"referenceId\": \"07f53b36\"\n        }\n    }\n}' https://{host}/v{X}/reservation-enquiries\n```\n\nExample response:\n```\n{\n  \"reservationEnquiry\": {\n    \"id\": \"07f53b36-3f48-11e5-a151-feff819cdc9f\"\n  },\n  \"customer\": {\n    \"id\": \"2cc29cba-1e1f-4af6-8184-386e19c891ec\"\n  },\n  \"links\": [\n    {\n      \"href\": \"https://{host}/v{X}/merchants/15\",\n      \"method\": \"GET\",\n      \"rel\": \"get-merchant\"\n    },\n    {\n      \"href\": \"https://{host}/v{X}/merchants/15/reservation-settings\",\n      \"method\": \"GET\",\n      \"rel\": \"reservation-settings\"\n    },\n    {\n      \"href\": \"https://{host}/v{X}/merchants/15/availabilities\",\n      \"method\": \"GET\",\n      \"rel\": \"availability_days\"\n    },\n    {\n      \"href\": \"https://{host}/v{X}/merchants/15/availabilities/2015-06-22/times\",\n      \"method\": \"GET\",\n      \"rel\": \"availability\"\n    }\n  ]\n}\n```","operationId":"createReservationEnquiry_1","consumes":["application/json"],"produces":["application/json"],"parameters":[{"in":"body","name":"body","description":"Reservation enquiry data","required":true,"schema":{"$ref":"#/definitions/MerchantReservationEnquiryData"}}],"responses":{"200":{"description":"Reservation enquiry successfully created","schema":{"$ref":"#/definitions/CreatedReservationEnquiryData"}},"400":{"description":"Bad request","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Internal Server Error","schema":{"$ref":"#/definitions/ErrorResponse"}}},"security":[{"API_TOKEN":[]}]}},"/v1/reservation-enquiries/{reservationEnquiryId}":{"get":{"tags":["reservation-enquiries"],"summary":"Get reservation enquiry by id","description":"This endpoint allows an agent to get an reservation enquiry by id. The id is agent-specific. The agent needs to be authenticated.\n\nThe endpoint will return `HTTP 404 - Not Found` if the reservation enquiry with the specified id could not be found.\n\nIt will return `HTTP 403 - Forbidden` if the agent is not authenticated, if the agent doesn't have permissions or the reservation enquiry doesn't belong to the authenticated agent.\n\n####Request:\n* **reservationEnquiryId**: Agent-specific ID of the requested reservation enquiry\n\n####Response:\n* **id**: The agent-dependent unique id of the reservation enquiry\n* **merchantId**: The ID of the merchant at which this reservation enquiry was made\n* **customerId**: The ID of the customer to which this reservation enquiry belongs\n* **capacity**: The capacity (people count) of the reservation enquiry\n* **startDateTime**: The start date time of the reservation enquiry. Format: yyyy-MM-ddTHH:mm:ssZ\n* **endDateTime**: The end date time of the reservation enquiry. Format: yyyy-MM-ddTHH:mm:ssZ\n* **status**: The status of the reservation enquiry which can be one of:  NEW, IN_PROGRESS, ACCEPTED or REJECTED\n\nExample curl:\n```\ncurl https://{host}/v{X}/reservation-enquiries/07f53b36-3f48-11e5-a151-feff819cdc9f\n```\n\nExample response:\n```\n{\n  \"id\": \"07f53b36-3f48-11e5-a151-feff819cdc9f\",\n  \"merchantId\": 1384,\n  \"customerId\": \"35fff464-142c-48ac-a0c6-ed72a1615664\",\n  \"capacity\": 4,\n  \"startTime\": \"2015-06-22T12:00:00+00:00\",\n  \"endTime\": \"2015-06-22T13:00:00+00:00\",\n  \"status\": \"NEW\"\n}\n```","operationId":"getReservationEnquiry_1","parameters":[{"name":"reservationEnquiryId","in":"path","description":"Id of the reservation enquiry","required":true,"type":"string"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/GetReservationEnquiryData"}},"400":{"description":"Bad request","schema":{"$ref":"#/definitions/ErrorResponse"}},"403":{"description":"Access denied","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"Reservation enquiry not found","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/ErrorResponse"}}},"security":[{"API_TOKEN":[]}]},"patch":{"tags":["reservation-enquiries"],"summary":"Update status of reservation enquiry by id","description":"This endpoint allows to update the status of a reservation enquiry with the given ID. The allowed status transitions are as following:\n\n* NEW --> IN_PROGRESS --> {ACCEPTED/REJECTED}\n* ACCEPTED <--> REJECTED\n\nThe endpoint will return `HTTP 404 - Not Found` if the reservation enquiry with the specified id could not be found.\n\nThe endpoint will return `HTTP 400 - Bad Request` if the specified status is wrong.\n\nThe endpoint will return `HTTP 409 - Conflict` if the status change is invalid.\n\nThe endpoint will return `HTTP 403 - Forbidden` if the agent is not authenticated, if the agent doesn't have permissions or the reservation enquiry \ndoesn't belong to the authenticated agent.\n\n####Request:\n* **reservationEnquiryId**: Agent-specific ID of the requested reservation enquiry\n* **reservationEnquiryData**: The new enquiry status\n","operationId":"updateReservationEnquiry_1","parameters":[{"name":"reservationEnquiryId","in":"path","description":"Id of the reservation enquiry","required":true,"type":"string"},{"in":"body","name":"body","description":"New reservation enquiry status","required":true,"schema":{"$ref":"#/definitions/UpdateReservationEnquiryData"}}],"responses":{"200":{"description":"OK"},"400":{"description":"Bad request","schema":{"$ref":"#/definitions/ErrorResponse"}},"403":{"description":"Access denied","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"Invalid reservation enquiry status transition","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/ErrorResponse"}}},"security":[{"API_TOKEN":[]}]}},"/v1/reservation-enquiries/{reservationEnquiryId}/messages":{"get":{"tags":["reservation-enquiries"],"summary":"Get all messages of a reservation enquiry","description":"This endpoint allows an agent to get all messages of a reservation enquiry. The id of the reservation enquiry is agent-specific. The agent needs to be authenticated.\n\nThe endpoint will return `HTTP 404 - Not Found` if the reservation enquiry with the specified id could not be found.\n\nIt will return `HTTP 403 - Forbidden` if the agent is not authenticated, if the agent doesn't have permissions or the reservation enquiry doesn't belong to the authenticated agent.\n\n####Request:\n* **reservationEnquiryId**: Agent-specific ID of the requested reservation enquiry\n\n####Response:\nThe response will contain a _list_ of messages. Each one containing the following fields:\n* **senderType**: If this message was sent by the customer or by the merchant \n* **creationDate**: The date time that this message was created. Format: yyyy-MM-ddTHH:mm:ssZ\n* **message**: The text of the message itself.\n\nExample curl:\n```\ncurl https://{host}/v{X}/reservation-enquiries/07f53b36-3f48-11e5-a151-feff819cdc9f/messages\n```\n\nExample response:\n```\n{\n  \"messages\": [\n    {\n      \"senderType\": \"CUSTOMER\",\n      \"message\": \"Customer specific message\",\n      \"creationDate\": \"2018-05-04T09:26:53Z\"\n    }\n  ]\n}\n```","operationId":"getMessagesForReservationEnquiry_1","parameters":[{"name":"reservationEnquiryId","in":"path","description":"Id of the reservation enquiry","required":true,"type":"string"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/ReservationEnquiryMessageList"}},"400":{"description":"Bad request","schema":{"$ref":"#/definitions/ErrorResponse"}},"403":{"description":"Access denied","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"Reservation enquiry not found","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/ErrorResponse"}}},"security":[{"API_TOKEN":[]}]}},"/v1/merchants/{merchantId}/availabilities":{"get":{"tags":["availabilities"],"summary":"Get merchant availability days","description":"This endpoint returns days which a customer can select for his reservation. The response is based on when the merchant is known to be open. It is not guaranteed that they have available times for reservation. The days are returned starting from the first available day up to the merchant-defined limit, but never more than 365 days.\n\n####Request parameters:\n* **merchantId**: Id of the merchant. Path parameter.\n* **agentId**: Id of the agent making the request\n* **capacity**: Specifies the number of people in reservation. Availability days will be returned based on this capacity.\n\n####Response:\nThe response returns availability days that could be selected for reservation. \n* **days**: List of availability days that could be reserved. Format: yyyy-MM-dd \n* **links**: Related links that can be followed based on this response.\n\n####Example curl:\n```\ncurl https://{host}/v{X}/merchants/15/availabilities?agentId=3&capacity=4\n```\n\n\n####Example response:\n```\n{\n  \"days\": [\n    \"2017-01-01\",\n    \"2017-01-02\",\n    \"2017-01-03\",\n     ...\n  ],\n  \"links\": [\n    {\n      \"href\": \"https://{host}/v{X}/merchants/15\",\n      \"method\": \"GET\",\n      \"rel\": \"parent\"\n    },\n    {\n      \"href\": \"https://{host}/v{X}/merchants/15/reservation-settings\",\n      \"method\": \"GET\",\n      \"rel\": \"settings\"\n    },\n    {\n      \"href\": \"https://{host}/v{X}/merchants/15/availabilities/2017-01-01/times\",\n      \"method\": \"GET\",\n      \"rel\": \"availabilities\"\n    }\n  ]\n}\n```","operationId":"availabilityDays_1","parameters":[{"name":"merchantId","in":"path","description":"Id of the merchant","required":true,"type":"integer","format":"int32"},{"name":"agentId","in":"query","description":"Id of the agent","required":true,"type":"integer","format":"int32"},{"name":"capacity","in":"query","description":"Number of people","required":false,"type":"integer","format":"int32"}],"responses":{"200":{"description":"Merchant availabilities response","schema":{"$ref":"#/definitions/MerchantAvailabilityDaysDto"}},"400":{"description":"Bad request","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"Agent not found error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/v1/merchants/{merchantId}/availabilities/{date}/times":{"get":{"tags":["availabilities"],"summary":"Get merchant availability time slots","description":"This endpoint returns availability time slots which can be reserved for a given capacity.\n\n####Request parameters:\n* **merchantId**: Id of the merchant. Path parameter.\n* **date**: Specifies date of the desired reservation. Format: `yyyy-MM-dd`. Path parameter.\n* **fromTime**: Beginning of the desired reservation time frame. Format: `HH:mm`. Optional.\n* **toTime**: End of the desired reservation time frame. Format: `HH:mm`. Optional.\n* **agentId**: Id of the agent making the request\n* **capacity**: Specifies the number of people in reservation. Availabilities will be returned based on this capacity. If not provided, the default value is 2.\n* **areaId**: Restricts availabilities to a certain area. Optional.\n    \n####Response:\nThe response returns availability time slots that could be reserved, along with the areas it is associated with and contains information on how much should be paid if the reservation is cancelled by a client. \n\n* **timeSlots**: List of available time slots.\n  * **areaIds**: List of areas for which this time slot can be reserved.\n  * **dateTime**: Date and time of the available slot. Format: `yyyy-MM-dd'T'HH:mm:ssZ`\n  * **occupancy**: Occupancy of the available time slot. This is an integer between `0` and `100`.\n  * **vaultSettingsId**: ID of the vault setting, if there is any. See: `vaultSettings`\n* **vaultSettings**: Credit card vault settings representing the fees to be paid in case of cancellation.\n  * **id**: ID of the setting as shown in `timeSlots`.\n  * **fee**: Fee to be paid in case of cancellation. Currency is defined by merchant. See reservation-settings.\n  * **feeType**: Type of fee to be paid. Can be `PER_PERSON` or `PER_RESERVATION`.\n  * **feePercentageForTime**: Fee percentage depending of the time of cancellation. Format: `\"{hoursStart}-{hoursEnd}\": {percentage}` , where hours are the number of hours before the visit.\n* **links**: Related links that can be followed based on this response.\n\n####Example curl:\n```\ncurl https://{host}/v{X}/merchants/15/availabilities/2017-11-09/times?capacity=2&areaId=24&agentId=3&fromTime=10:45&toTime=12:45\n```\n\n\n####Example response:\n```\n{ \n    \"timeSlots\": [ \n        { \n            \"areaIds\": [33532, 33533], \n            \"dateTime\": \"2017-09-27T10:45:00+01:00\", \n            \"occupancy\": 0, \n            \"vaultSettingId\": \"284d701f-f79a-4efa-9859-fd09851dfdce\"\n        }, \n        ... \n    ], \n    \"vaultSettings\": [ \n         { \n            \"id\": \"284d701f-f79a-4efa-9859-fd09851dfdce\", \n             \"fee\": \"10.00\", \n             \"feeType\": \"PER_PERSON\", \n             \"feePercentageForTime\": \n                { \n                  \"0-12\":100, \n                  \"12-24\":50, \n                  \"24-48\":20 \n                } \n         } \n     ], \n    \"links\": [\n      {\n        \"href\": \"https://{host}/v{X}/merchants/15\",\n        \"method\": \"GET\",\n        \"rel\": \"parent\"\n      },\n      {\n        \"href\": \"https://{host}/v{X}/merchants/15/reservation-settings\",\n        \"method\": \"GET\",\n        \"rel\": \"reservation-settings\"\n      },\n      {\n        \"href\": \"https://{host}/v{X}/merchants/reservations\",\n        \"method\": \"PUT\",\n        \"rel\": \"create-reservation\"\n      }\n    ]\n} \n```","operationId":"availabilityOptions_1","parameters":[{"name":"merchantId","in":"path","description":"Id of the merchant","required":true,"type":"integer","format":"int32"},{"name":"agentId","in":"query","description":"Id of the agent","required":true,"type":"integer","format":"int32"},{"name":"capacity","in":"query","description":"Number of people","required":true,"type":"integer","default":2,"format":"int32"},{"name":"date","in":"path","description":"Date of the desired reservation. Format: yyyy-MM-dd","required":true,"type":"string","format":"date","x-example":"2018-01-25"},{"name":"fromTime","in":"query","description":"Beginning of the desired reservation time frame. Format: HH:mm","required":false,"type":"string","x-example":"10:45"},{"name":"toTime","in":"query","description":"End of the desired reservation time frame. Format: HH:mm","required":false,"type":"string","x-example":"12:45"},{"name":"areaId","in":"query","description":"Id of the area","required":false,"type":"integer","format":"int32"}],"responses":{"200":{"description":"Merchant availabilities response","schema":{"$ref":"#/definitions/MerchantAvailabilityDtoList"}},"400":{"description":"Bad request","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"Agent type not found error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/v1/merchants/{merchantId}/reservations":{"get":{"tags":["merchants"],"summary":"Get merchant reservations","description":"This endpoint allows an agent to get reservations of a merchant. The results will be filtered by agent id. \nReservation IDs in response are agent-specific. The agent needs to be authenticated.\n\nThe endpoint will return `HTTP 404 - Not Found` if the merchant with the specified id could not be found.\nIt will return `HTTP 403 - Forbidden` if the agent is not authenticated or the agent doesn't have permissions.\n\n####Request:\n* **merchantId**: ID of the merchant\n* **offset**: sets the starting element to be returned. Defaults to 0 when unset or malformed.\n* **limit**: maximum number of results to be returned. Value must be between 1 and 100. Defaults to 100 when unset, malformed or outside bounds.\n* **earliest**: earliest date time of time window in UTC. Format: yyyy-MM-dd HH:mm:ss\n* **latest**: latest date time of time window in UTC. Format: yyyy-MM-dd HH:mm:ss\n\n\n####Response:\nThe response will be a _list_ of reservations. Each reservation has the fields explained below:\n* **id**: The public id of the reservation\n* **number**: Quandoo internal identifier of the reservation.\n* **quandooId**: The public id of this reservation on quandoo system.\n* **status**: The status of the reservation eg. CREATED, CONFIRMED, CUSTOMER CANCELED etc.\n* **startTime**: The start time of the reservation. Format: `yyyy-MM-ddTHH:mm:ssZ`\n* **endTime**: The end time of the reservation. Format: `yyyy-MM-ddTHH:mm:ssZ`\n* **capacity**: The capacity (people count) of the reservation\n* **merchantId**: The ID of the merchant at which this reservation was made.\n* **customerId**: The public ID of the customer to which this reservation belongs\n* **promoCode**: The promotion code associated with this reservation. Optional.\n* **extraInfo**: extra information that the customer provided for the reservation. Optional.\n* **links**: Related links that can be followed based on this response.\n* **createdAt**: The date the reservation was created. Format: `yyyy-MM-ddTHH:mm:ssZ`\n* **updatedAt**: The date the reservation was last updated. Format: `yyyy-MM-ddTHH:mm:ssZ`\n\nExample curl:\n```\ncurl https://{host}/v{X}/merchants/32489/reservations\n```\n\nExample response: \n```\n{\n  \"reservations\": [\n    {\n      \"id\": \"07f53b36-3f48-11e5-a151-feff819cdc9f\",\n      \"number\": 8734957,\n      \"quandooId\": \"07f53b36-3f48-11e5-a151-feff819cdc9f\",\n      \"status\": \"CREATED\",\n      \"startTime\": \"2015-06-22T12:00:00+00:00\",\n      \"endTime\": \"2015-06-22T13:00:00+00:00\",\n      \"capacity\": 4,\n      \"merchantId\": 1384,\n      \"customerId\": \"ce0706ff-a95d-4229-a220-d21dcd175342\",\n      \"promocode\": \"SOME_CAMPAIGN_CODE\",\n      \"extraInfo\": \"request for baby chair\",\n      \"links\": [\n        {\n          \"href\": \"https://{host}/v{X}/reservations/07f53b36-3f48-11e5-a151-feff819cdc9f\",\n          \"method\": \"GET\",\n          \"rel\": \"self\"\n        },\n        {\n          \"href\": \"https://{host}/v{X}/reservations/07f53b36-3f48-11e5-a151-feff819cdc9f\",\n          \"method\": \"PATCH\",\n          \"rel\": \"update\"\n        }\n      ],\n      \"createdAt\": \"2015-06-01T15:21:54Z\",\n      \"updatedAt\": \"2015-06-01T18:45:30Z\"\n    },\n    {\n      \"id\": \"d8f53b36-3f48-11e5-a151-feff819cdc7a\",\n      \"number\": 8734958,\n      \"quandooId\": \"d8f53b36-3f48-11e5-a151-feff819cdc7a\",\n      \"status\": \"CONFIRMED\",\n      \"startTime\": \"2015-06-22T12:00:00+00:00\",\n      \"endTime\": \"2015-06-22T13:00:00+00:00\",\n      \"capacity\": 3,\n      \"merchantId\": 1384,\n      \"customerId\": \"ce0706ff-a95d-4229-a220-d21dcd175342\",\n      \"promocode\": \"SOME_CAMPAIGN_CODE\",\n      \"links\": [\n        {\n          \"href\": \"https://{host}/v{X}/reservations/d8f53b36-3f48-11e5-a151-feff819cdc7a\",\n          \"method\": \"GET\",\n          \"rel\": \"self\"\n        },\n        {\n          \"href\": \"https://{host}/v{X}/reservations/d8f53b36-3f48-11e5-a151-feff819cdc7a\",\n          \"method\": \"PATCH\",\n          \"rel\": \"update\"\n        }\n      ],\n      \"createdAt\": \"2015-06-01T15:21:54Z\",\n      \"updatedAt\": \"2015-06-01T18:45:30Z\"\n    }\n  ],\n  offset:0,\n  limit:100\n}\n```\n","operationId":"getReservations_2","parameters":[{"name":"merchantId","in":"path","description":"Id of the merchant","required":true,"type":"integer","format":"int32"},{"name":"offset","in":"query","description":"Skip first n reservations","required":false,"type":"integer","default":0,"format":"int32"},{"name":"limit","in":"query","description":"limit","required":false,"type":"integer","default":100,"format":"int32"},{"name":"earliest","in":"query","description":"earliest date time of time window in UTC. Format: yyyy-MM-dd HH:mm:ss","required":false,"type":"string","format":"date-time","x-example":"2018-01-01 00:00:00"},{"name":"latest","in":"query","description":"latest date time of time window in UTC. Format: yyyy-MM-dd HH:mm:ss","required":false,"type":"string","format":"date-time","x-example":"2018-03-01 00:00:00"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/MerchantReservationDataList"}},"400":{"description":"Bad request","schema":{"$ref":"#/definitions/ErrorResponse"}},"403":{"description":"Access denied","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"Merchant not found error","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/ErrorResponse"}}},"security":[{"API_TOKEN":[]}]}},"/v1/merchants/{merchantId}/reservation_tags":{"get":{"tags":["reservations tags"],"summary":"Get merchant reservation tags","description":"This endpoint returns all active reservation tags for a merchant.\n####Request:\n* **merchantId**: merchant's ID. Taken as a path parameter.\n\n####Response:\n* **id**: reservation tag's ID.\n* **name**: tag's name. Default tag names are usually translated to merchant's locale.\n* **merchantId**: merchant's ID.\n\nIt will return `HTTP 403 - AUTHENTICATION_ERROR` if the user is not authenticated.\n\nExample response:\n```\n{\n    \"reservationTags\": [\n        {\n            \"id\": 5,\n            \"name\": \"Birthday\",\n            \"merchantId\": 3\n        },\n        {\n            \"id\": 51,\n            \"name\": \"With Children\",\n            \"merchantId\": 3\n        }\n    ]\n}\n```\n\n\nExample curl:\n```\ncurl -H \"Content-Type: application/json\" -X GET  https://{host}/v{X}/merchants/{merchantId}/reservation_tags\n```\n","operationId":"getReservationTags_1","parameters":[{"name":"merchantId","in":"path","description":"Id of the merchant","required":true,"type":"integer","format":"int32"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/ReservationTagsDto"}},"403":{"description":"Access denied","schema":{"$ref":"#/definitions/ErrorResponse"}},"400":{"description":"Bad request","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"Agent not found error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/v1/merchants/{merchantId}/reviews":{"get":{"tags":["merchants"],"summary":"Retrieves customer reviews for a merchant, specified by reviewId","description":"This endpoint retrieves customer reviews for a particular merchant with rating, description, locale, date & the customer's information.This merchant should be specified by their identifier **merchantId**, which is mandatory.\n\nSupports pagination via offset & limit parameters in the request.\n\n`offset` allows skipping the first n reviews.\n`limit` makes sure the response contains a maximum of n reviews.\n\nIf not supplied, offset will be 0 and limit will be 10\n\n####Response:\n\n* **customer**: block contains link to customer's profile image, customer's first name & first letter of customer's last name.\n* **rating**: a value between 1 and 6, where 1 represents the worst rating and 6 represents the best.\n* **description**: the review description entered by the customer.\n* **locale**: represents the language settings of the customer, in the format: <language code>_<country code>\n* **date**: represents the date of the review, with the format: yyyy-MM-dd\n\nExample curl:\n```\ncurl https://{host}/v{X}/merchants/15/reviews?offset=10&limit=5\n```\n\nExample response:\n```\n{\n   reviews: [\n     {\n           customer: {\n                firstName: \"Hans\",\n                lastName: \"W\",\n                profileImage: {\n                    url: \"https://www...\"\n                },\n           },\n           rating: 1,\n           description: \"Foo bar\",                \n           locale: \"de_DE\",\n           date: \"2017-07-21\"\n     }\n   ],\n   offset: 10,\n   limit: 5,\n   size: 1\n}\n```","operationId":"getReviews_1","produces":["application/json"],"parameters":[{"name":"merchantId","in":"path","required":true,"type":"integer","format":"int32"},{"name":"offset","in":"query","description":"Skip first n reviews","required":false,"type":"integer","default":0,"format":"int32"},{"name":"limit","in":"query","description":"Max number of reviews to be retrieved","required":false,"type":"integer","default":10,"format":"int32"}],"responses":{"200":{"description":"Review response","schema":{"$ref":"#/definitions/ReviewDtoList"}},"400":{"description":"Bad request","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"Merchant not found error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/v1/merchants/{merchantId}/reservation-settings":{"get":{"tags":["reservation-settings"],"summary":"Get merchant reservation settings","description":"This endpoint provides all data that is required to initiate the reservation flow and is not part of the search endpoint.\n\nExample curl:\n```\ncurl https://{host}/v{X}/merchants/15/reservation-settings\n```\n\nExample response: \n```\n{\n  \"areaIds\": [\n    {\n      \"id\": 2,\n      \"name\": \"Garden\",\n      \"priority\": 10\n    }\n  ],\n  \"areaSelectionRequired\": true,\n  \"capacities\": [\n    1,\n    2,\n    3,\n    4,\n    5,\n    6\n  ],\n  \"links\": [\n    {\n      \"href\": \"https://{host}/v{X}/merchants/15\",\n      \"method\": \"GET\",\n      \"rel\": \"parent\"\n    },\n    {\n      \"href\": \"https://{host}/v{X}/merchants/15/availabilities\",\n      \"method\": \"GET\",\n      \"rel\": \"availability_days\"\n    },\n    {\n      \"href\": \"https://{host}/v{X}/merchants/15/availabilities/2017-01-01/times\",\n      \"method\": \"GET\",\n      \"rel\": \"availability\"\n    }\n  ],\n  \"merchantNewsletterSelectionRequired\": true,\n  \"minimumCapacityForEnquiries\": 10,\n  \"onlineReservationInterval\": 60,\n  \"reservationEnquiryEnabled\": true,\n  \"specialTerms\": \"This is any custom string for special terms\",\n  \"automaticConfirmation\": true,\n  \"ccvEnabled\": true\n}\n```\n","operationId":"reservationSettings_1","parameters":[{"name":"merchantId","in":"path","description":"Id of the merchant","required":true,"type":"integer","format":"int32"}],"responses":{"200":{"description":"Reservation settings response","schema":{"$ref":"#/definitions/MerchantReservationSettingsDto"}},"400":{"description":"Bad request","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"Merchant not found error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/v1/reservations/{reservationId}":{"get":{"tags":["reservations"],"summary":"Get reservation by id","description":"This endpoint allows an agent or a user to get a reservation by id. The id is either agent-specific or a public id. The agent/user needs to be authenticated.\n\nThe endpoint will return `HTTP 404 - Not Found` if the reservation with the specified id could not be found.\n\nIt will return `HTTP 403 - Forbidden` if the agent/user is not authenticated, if the agent/user doesn't have permissions, if the reservation doesn't belong to the authenticated agent or if the user doesn't have permissions to see objects from the merchant owner of the reservation\n\n####Request:\n* **reservationId**: Agent-specific or public ID of the requested reservation\n\n####Response:\n* **id**: Agent-specific or public ID of the requested reservation\n* **number**: Quandoo internal identifier of the reservation\n* **quandooId**: The public id of this reservation on quandoo system.\n* **status**: The status of the reservation eg. CREATED, CONFIRMED, CUSTOMER CANCELED etc.\n* **startTime**: The start time of the reservation. Format: `yyyy-MM-ddTHH:mm:ssZ`\n* **endTime**: The end time of the reservation. Format: `yyyy-MM-ddTHH:mm:ssZ`\n* **capacity**: The capacity (people count) of the reservation\n* **merchantId**: The ID of the merchant at which this reservation was made.\n* **customerId**: The public ID of the customer to which this reservation belongs\n* **promoCode**: The promotion code associated with this reservation. Optional.\n* **extraInfo**: extra information that the customer provided for the reservation. Optional.\n* **links**: Related links that can be followed based on this response.\n* **reservationTags**: A list of reservation tag IDs.\n* **createdAt**: The date the reservation was created. Format: `yyyy-MM-ddTHH:mm:ssZ`\n* **updatedAt**: The date the reservation was last updated. Format: `yyyy-MM-ddTHH:mm:ssZ`\n\nExample curl:\n```\ncurl https://{host}/v{X}/reservations/07f53b36-3f48-11e5-a151-feff819cdc9f\n```\n\nExample response:\n```\n{\n  \"id\": \"07f53b36-3f48-11e5-a151-feff819cdc9f\",\n  \"number\": 1092454812,\n  \"quandooId\": \"07f53b36-3f48-11e5-a151-feff819cdc9f\",\n  \"status\": \"CREATED\",\n  \"startTime\": \"2015-06-22T12:00:00+00:00\",\n  \"endTime\": \"2015-06-22T13:00:00+00:00\",\n  \"capacity\": 4,\n  \"merchantId\": 1384,\n  \"customerId\": \"35fff464-142c-48ac-a0c6-ed72a1615664\",\n  \"promocode\": \"SOME_CAMPAIGN_CODE\",\n  \"extraInfo\": \"request for baby chair\",\n  \"links\": [\n    {\n      \"href\": \"https://{host}/v{X}/reservations/07f53b36-3f48-11e5-a151-feff819cdc9f\",\n      \"method\": \"PATCH\",\n      \"rel\": \"update\"\n    }\n  ],\n  \"createdAt\": \"2015-06-01T15:21:54Z\",\n  \"updatedAt\": \"2015-06-01T18:45:30Z\"\n}\n```","operationId":"getReservation_1","parameters":[{"name":"reservationId","in":"path","description":"Id of the reservation","required":true,"type":"string"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/ReservationData"}},"400":{"description":"Bad request","schema":{"$ref":"#/definitions/ErrorResponse"}},"403":{"description":"Access denied","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"Reservation not found","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/ErrorResponse"}}},"security":[{"API_TOKEN":[]}]},"patch":{"tags":["reservations"],"summary":"Update reservation by id","description":"This endpoint allows an agent to update a reservation by id. The id is agent-specific. The agent needs to be authenticated.\n####Request:\n* **reservationId**: Agent-specific ID of the requested reservation. Taken as a path parameter.\n* **reservation.status**: New status for the reservation. When is present then all parameters below should be omitted!\n* **reservation.capacity**: The capacity (people count) of the reservation.\n* **reservation.areaId**: The ID of the area this reservation should be in.\n* **reservation.dateTime**: The date and time when the reservation will take place. Format: yyyy-MM-ddTHH:mm:ssZ.\n* **reservation.reservationTags** list of reservation tag IDs. Null value is treated as no value.\n* **reservation.extraInfo** additional text information about the reservation.\n\n  The next JSON will be treated as follows:\n  - { } - **extraInfo** will not be updated\n  - { “extraInfo”:null } - **extraInfo** will not be updated\n  - { “extraInfo”:“some text”} - **extraInfo** will be updated with provided text\n  - { “extraInfo”:“”} - **extraInfo** will be assigned an empty string\n\nFor updating status request body should contain  only reservation.status.\nValid status values depend on the current status of reservation and can be `CUSTOMER_CANCELED` or `RECONFIRMED`.\n* `CUSTOMER_CANCELED` is valid if current status is one of the below:\n    * CREATED\n    * CONFIRMED\n    * AUTOMATIC_CONFIRMED\n    * NOTIFICATION_REQUESTED\n    * NOTIFIED\n    * RECONFIRMED\n* `MERCHANT_CANCELED` is valid if current status is one of the below:\n    * CONFIRMED\n    * AUTOMATIC_CONFIRMED\n    * NOTIFICATION_REQUESTED\n    * NOTIFIED\n    * RECONFIRMED\n* `RECONFIRMED` is valid if current status is one of the below:\n    * CONFIRMED\n    * AUTOMATIC_CONFIRMED\n    * NOTIFICATION_REQUESTED\n    * NOTIFIED\n\nIf reservation.status field is not present then reservation data will be updated and reservation's status will be reset.\nDepending on `Automatic confirmation for online reservations` setting, reservation's status will be set to CREATED or AUTOMATIC_CONFIRMED.\n\n####Response:\nThe endpoint will return `HTTP 200 - OK` if update was successful.\nIt will return `HTTP 404 - Not Found` error if the reservation with the specified id could not be found.\nIt will return `HTTP 403 - Forbidden` error if the agent is not authenticated, if the agent doesn't have permissions or the reservation doesn't belong to the \nauthenticated agent.\nIt will return `HTTP 409 - Conflict` error if reservation has menu, made by IOVOX, has conflict in status, time or other conflicts.\n\nExample curl:\n```\ncurl -H \"Content-Type: application/json\" -X PATCH -d '\n{\n  \"reservation\": {\n    \"status\": \"CUSTOMER_CANCELED\"\n  }\n}\n' https://{host}/v{X}/reservations/07f53b36-3f48-11e5-a151-feff819cdc9f\n```\n","operationId":"updateReservation_1","parameters":[{"name":"reservationId","in":"path","description":"Id of the reservation","required":true,"type":"string"},{"in":"body","name":"body","description":"New reservation data","required":true,"schema":{"$ref":"#/definitions/UpdateReservationData"}}],"responses":{"200":{"description":"OK"},"400":{"description":"Bad request","schema":{"$ref":"#/definitions/ErrorResponse"}},"403":{"description":"Access denied","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"Reservation not found","schema":{"$ref":"#/definitions/ErrorResponse"}},"409":{"description":"No matching table(s) found","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/ErrorResponse"}}},"security":[{"API_TOKEN":[]}]}},"/v1/reservations":{"put":{"tags":["reservations"],"summary":"Create reservations","description":"This endpoint allows to create a reservation for a certain capacity, date and time. It also requires certain customer information. All optional fields can be either omitted or set to null. The endpoint is idempotent, which means sending the same request twice will not create another reservation. For that purpose the client is required to generate an agent-specific unique ID for the reservation.\n\nThe endpoint will return status `HTTP 409` should the reservation option specified by the given parameters not be bookable anymore.\nThe endpoint will return status `HTTP 400` should any of the required parameters be missing or formatted incorrectly. See schema for details. \n\n####Request:\nThe request needs to have 3 objects for reservation, customer and tracking information.\n\n* **reservation**: Information about the reservation.\n  * **id**: The identifier of the reservation for the calling agent (Agent-dependent field). Optional.\n  * **merchantId**: The ID of the merchant at which this reservation will be made. **Required**.\n  * **capacity**: The capacity (people count) of the reservation. **Required**.\n  * **areaId**: The ID of the area this reservation should be in. Optional.\n  * **dateTime**: The date and time when the reservation will take place (local time). Format: yyyy-MM-ddTHH:mm:ss. **Required**\n  * **extraInfo**: Any extra information that the customer likes to provide. Optional.\n  * **promoCode**: A promotion code which should be used with this reservation. Optional.\n  * **creditCardVaultSettingsId**: A credit card vault settings to be used by this reservation. Optional.\n  * **recurringCardDetailId**:A customer credit card reference to be used if credit card vault should be applied. Optional.\n  * **reservationTags**: A list of reservation tag IDs. Optional.\n\n* **customer**: Information on the customer making the reservation.\n  * **id**: Identifier of the customer for the calling agent. Agent dependent field. Optional.\n  * **firstName**: The first name of the customer. Optional.\n  * **lastName**: The last name of the customer. **Required**\n  * **emailAddress**: The email address of the customer. **Required**.\n  * **phoneNumber**: The phone number of the customer. Without country code, since it will be assumed from the country field. Example: 030120765890. **Required**.\n  * **locale**: The locale of the customer. E.g. de_DE. **Required**.\n  * **country**: The 2 letter ISO country of the customer. E.g DE. **Required**\n  * **subscriptions**: List of requested subscriptions e.g. QUANDOO, MERCHANT. Optional.\n\n* **tracking**: Third party information used to track customer and reservations.\n  * **agent**: The id of the agent creating this request and partner references if any. **Required**.\n  * **cookie**: Cookie information to be stored with this reservation. Optional.\n\n####Response:\nThe response returns information on the created reservation and the customer along with relevant links to follow.\n\n* **reservation**: Information on the created reservation.\n  * **id**: Agent-specific id set for the reservation.\n  * **number**: Quandoo internal identifier of the reservation.\n  * **reservationNumber**: Quandoo long internal identifier of the reservation. Provided when **number** is not provided. \n  * **status**: Status for the created reservation. eg. \"CREATED\"\n  * **quandooId**: Quandoo public identifier for the reservation.  \n\n* **customer**: Information on the customer making the reservation.\n  * **id**: Agent-specific id set for the customer.\n\n* **links**: Related links that can be followed based on this response.\n\nExample curl:\n```\ncurl -H \"Content-Type: application/json\" -X POST -d '\n{\n    \"reservation\": {\n        \"id\": \"07f53b36-3f48-11e5-a151-feff819cdc9f\",\n        \"merchantId\": 15,\n        \"capacity\": 2,\n        \"areaId\": 1,\n        \"dateTime\": \"2015-06-22T12:00:00+00:00\",\n        \"extraInfo\": \"Some text\",\n        \"promoCode\": \"PROMO123\",\n    },\n    \"customer\": {\n        \"id\": \"659b9f4b-cd1a-4dc9-a5c3-8ef6bacbade5\",\n        \"firstName\": \"Hans\",\n        \"lastName\": \"Wurst\",\n        \"emailAddress\": \"hans.wurst@foo.bar\",\n        \"phoneNumber\": \"017312345678\",\n        \"locale\": \"de_DE\",\n        \"country\": \"DE\",\n        \"subscriptions\": [\n          {\n              \"id\": \"QUANDOO\"\n          },\n          {\n              \"id\": \"MERCHANT\"\n          }\n      ]\n    },\n    \"tracking\": {\n        \"agent\": {\n          \"id\": 3\n        },\n        \"cookie\": {\n            \"tracking\": \"ff819cdc9\",\n            \"referenceId\": \"07f53b36\"\n        }\n    }\n}' https://{host}/v{X}/reservations\n```\n\nExample response:\n```\n{\n    \"reservation\": {\n        \"id\": \"07f53b36-3f48-11e5-a151-feff819cdc9f\",\n        \"number\": 708457891,\n        \"status\": \"CREATED\",\n        \"quandooId\": \"07f53b36-3f48-11e5-a151-feff819cdc9f\"\n    },\n    \"customer\": {\n        \"id\": \"01a53b36-3f48-11e5-a151-feff819cdc9f\"\n    },\n    \"links\": [\n        {\n           \"href\": \"https://{host}/v{X}/merchants/15/reservation-settings\",\n           \"method\": \"GET\",\n           \"rel\": \"parent\"\n        },\n        {\n           \"href\": \"https://{portal}/edit-reservation/overview/b8d3213a-307b-4fa9-86f7-0202ea3311aa\",\n           \"method\": \"GET\",\n           \"rel\": \"customer-edit-reservation\"\n        },\n        {\n           \"href\": \"https://{portal}/de/checkout/offline-reservation?reservationId=9e1b295b-554e-4c35-bf84-e529fa971919&merchantId=test-merchant-33719&cardId=889c0613-3b42-4fc5-a1cf-bd24c1d26908\",\n           \"method\": \"GET\",\n           \"rel\": \"credit-card-details-page\"\n        }\n    ]\n}\n```","operationId":"createReservation_1","parameters":[{"in":"body","name":"body","description":"Reservation data","required":true,"schema":{"$ref":"#/definitions/MerchantReservationData"}}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/CreatedReservationData"}},"400":{"description":"Bad request","schema":{"$ref":"#/definitions/ErrorResponse"}},"409":{"description":"No matching table(s) found","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/v1/reviews":{"get":{"tags":["reviews"],"summary":"Get information from reviews in a list","description":"This resource return a list of reviews. The result obtained depends on the different query parameters provided. It is able to return three different results:\n* **Reviews associated to an agent:** if neither 'merchantId' nor 'reservationId' query parameters are provided, then the available reviews for the current agent are returned.\n* **Reviews associated to a merchant:** if the parameter 'merchantId' is provided, all the reviews for the given merchant and agent are provided. The agent is the one associated with the reservations.\n* **Reviews associated to a reservation:** Reservation could be identified in two ways: either by reservation public id or by agent reservation reference id.\n\n**NOTE:** For the second and third cases, the current agent must be the owner of the reservations used to get the reviews. In the specific case of the search by the merchants, the current agent id is the one realated to the reservations associated to the specified merchant's reviews.\n\n####Request:\nThe request needs 4 optional query parameters. Pagination is controlled by the usage of the 'limit' and 'offset' parameters.\n\n* **limit**: maximum number of results to be returned. Value must be between 1 and 10. Defaults to 10 when unset, malformed or outside bounds. Ignored when 'reservationId' is enabled.\n* **offset**: sets the starting element to be returned. Defaults to 0 when unset or malformed. Ignored when 'reservationId' is enabled.\n* **reservationId**: Either public ID of the reservation or agent reservation reference id from which to get the reviews. Cannot be used in combination with 'merchantId'. Can be null. Does not consider 'limit' and/or 'offset'.\n* **merchantId**: ID of the merchant from which to get the reviews. Cannot be used in combination with 'reservationId'. Can be null.\n\n####Response:\nThe response is a user review object containing a list of user reviews.\n\n* **size**: the number of reviews retrieved in this request. Can be any positive value between 0 and 10 (the maximum value for limit);\n* **offset**: echoes the offset value used in the request. Returns 0 in case 'reservationId' is used.\n* **limit**: echoes the limit value used in the request. Returns 0 in case 'reservationId' is used.\n* **reviews**: list of reviews retrieved, each review containing the following properties:\n\n* **reviewId**: review UUID. Same as the one used in the request.\n* **rating**: rating associated to this review.\n* **description**: description of the review.\n* **status**: current review status. Possible values are 'CREATED', 'DENIED', 'PUBLISHED'.\n* **merchantId**: merchant id associated to this review. **Only in the detailed view**.\n* **customerId**: customer id associated to this review. **DEPPRECATED, NOT USED**.\n* **publicCustomerId**: public customer id associated to this review. **Only in the detailed view**.\n* **customerFirstName**: review associated customer first name. **Only in the detailed view**.\n* **customerLastName**: first character of the customer last name. **Only in the detailed view**.\n* **customerProfileImage**: customer profile image URL. **Only in the detailed view**.\n* **locale**: locale associated to the review. **Only in the detailed view**.\n* **reservationId**: the reservation identifier this review is created for. Either reservation public id or agent specific reservation reference id(if set on creation) is used\n* **createdAt**: the date and time the review created at.\n\nExample curl:\n```\ncurl https://{host}/v{X}/reviews?merchantId=5124\n```\n\nExample response:\n```\n{\n\t\"reviews\": [{\n\t\t\t\"reviewId\": \"e94c5f9b-e61f-486a-bfa7-48abb1e42f93\",\n\t\t\t\"merchantId\": 5124,\n\t\t\t\"publicCustomerId\": \"a10fbb9a-df04-407c-9568-2e79bd620b41\",\n\t\t\t\"customerFirstName\": \"Perico\",\n\t\t\t\"customerLastName\": \"d\",\n\t\t\t\"customerProfileImage\": \"http://test.bla\",\n\t\t\t\"rating\": 6,\n\t\t\t\"description\": \"Description 8\",\n\t\t\t\"status\": \"PUBLISHED\",\n\t\t\t\"locale\": \"de_DE\",\n            \"reservationId\":\"1111112\",\n            \"createdAt\":\"2020-07-28T09:45:33Z\"\n\t\t}, {\n\t\t\t\"reviewId\": \"65472403-7968-4ccf-b389-fe7e6e70ee27\",\n\t\t\t\"merchantId\": 5124,\n\t\t\t\"publicCustomerId\": \"a10fbb9a-df04-407c-9568-2e79bd620b41\",\n\t\t\t\"customerFirstName\": \"Perico\",\n\t\t\t\"customerLastName\": \"d\",\n\t\t\t\"customerProfileImage\": \"http://test.bla\",\n\t\t\t\"rating\": 6,\n\t\t\t\"description\": \"Description 9\",\n\t\t\t\"status\": \"PUBLISHED\",\n\t\t\t\"locale\": \"de_DE\",\n            \"reservationId\":\"7dbe05dc-f566-48be-9872-c77b71aff072\",\n            \"createdAt\":\"2020-07-28T09:45:54Z\"\n\t\t}\n\t],\n\t\"size\": 2,\n\t\"offset\": 0,\n\t\"limit\": 10\n}\n```\n","operationId":"getReviews_2","produces":["application/json"],"parameters":[{"name":"merchantId","in":"query","description":"MerchantId to get the reviews from. Cannot be used in combination with 'reservationId'","required":false,"type":"integer","format":"int32"},{"name":"reservationId","in":"query","description":"Reservation id to get the reviews from. Either public id or agent reference id. Cannot be used in combination with 'merchantId'. When set, 'offset' and 'limit' are ignored. All reviews for a reservation are returned.","required":false,"type":"string"},{"name":"offset","in":"query","description":"Skip first n reviews","required":false,"type":"integer","default":0,"format":"int32"},{"name":"limit","in":"query","description":"Max number to retrieve","required":false,"type":"integer","default":10,"format":"int32"}],"responses":{"200":{"description":"Review response","schema":{"$ref":"#/definitions/GetReviewsDto"}},"400":{"description":"Bad request","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"Review not found error","schema":{"$ref":"#/definitions/ErrorResponse"}},"403":{"description":"Access denied","schema":{"$ref":"#/definitions/ErrorResponse"}}},"security":[{"API_TOKEN":[]}]},"put":{"tags":["reviews"],"summary":"Create a review for a reservation","description":"This resource manages the creation of reviews for a particular agent and a reservation. Reviews must have a description, rating and a reservation public identifier or agent specific reference identifier with reservation agent identifier. The agent must be the one that created the reservation, otherwise it is forbidden.\n\n####Request:\nThe request needs to have 3 parameters for review reviewId, description and rating.\n\n* **reservationId**: Public ID or agent specific reference id of the reservation where to add a review. **Required**.\n* **description**: Text content of the review to be set. Optional. A review requires a minimum of a rating.\n* **rating**: Integer value from 1 to 6 with the new rating given. **Required**.\n\n\n####Response:\nThe response is a review object containing information about the review.\n\n* **reviewId**: The Id of the created review.\n* **status**: Status of the created review. Can be 'CREATED', 'PUBLISHED' or 'DENIED'. After a successful creation, 'CREATED' is returned.\n* **links**: A series of links where to get details of the created review;\n\nExample curl:\n```\ncurl -H \"Content-Type: application/json\" -X PUT https://{host}/v{X}/reviews/ -d '\n{\n    \"reservationId\": \"07f53b36-3f48-11e5-a151-feff819cdc9f\",\n    \"description\": \"Some description of the review\",\n    \"rating\": 1\n}\n```\n\n```\ncurl -H \"Content-Type: application/json\" -X PUT https://{host}/v{X}/reviews/ -d '\n{\n    \"reservationId\": \"1111112\",\n    \"description\": \"Some description of the review\",\n    \"rating\": 1,\n}\n```\n\nExample response:\n```\n{\n    \"reviewId\": \"01a53b36-3f48-11e5-a151-feff819cdc9f\",\n    \"status\": \"CREATED\",\n    \"links\": [{\n        \"href\": \"http://localhost:39250/v1/reviews/01a53b36-3f48-11e5-a151-feff819cdc9f\",\n        \"method\": \"GET\",\n        \"rel\": \"get-review\"\n    }]\n}\n```","operationId":"createReview_1","consumes":["application/json"],"produces":["application/json"],"parameters":[{"in":"body","name":"body","description":"Review for this reservation","required":true,"schema":{"$ref":"#/definitions/CreateReviewDto"}}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/ChangedReviewDto"}},"400":{"description":"Bad request","schema":{"$ref":"#/definitions/ErrorResponse"}},"403":{"description":"Access denied","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"Reservation not found","schema":{"$ref":"#/definitions/ErrorResponse"}}},"security":[{"API_TOKEN":[]}]},"patch":{"tags":["reviews"],"summary":"Updated a review","description":"This resource manages the update of reviews for a given review ID. Description and rating can be updated on a review. The agent must be the one that owns the reservation associated to the review to modify, otherwise a forbidden response is returned.\n\n**NOTE**: Reviews in state 'PUBLISHED' or 'DENIED' cannot be updated. Only those in status 'CREATED' are allowed to be updated.\n\n####Request:\nThe request needs to have 3 parameters for reservation reviewId (public reviewId), description and rating.\n\n* **reviewId**: Id of the review. **Required**.\n* **description**: Text content of the review. If not set (null value) it won't be considered for update.\n* **rating**: Integer value from 1 to 6 with the rating given. If not set (null value) it won't be considered for update.\n\nIn case both description and rating are set to null, nothing happens to the review: it is not updated and its state remains.\n\n####Response:\nThe response is a review object containing information about the review.\n\n* **reviewId**: The Id of the updated review.\n* **status**: Status of the updated review. Can be 'CREATED', 'PUBLISHED' or 'DENIED'. Upon a successful update, the status 'CREATED' is returned.\n* **links**: A series of links where to get details of the updated review.\n\nExample curl:\n```\ncurl -H \"Content-Type: application/json\" -X PATCH https://{host}/v{X}/reviews/ -d '\n{\n    \"reviewId\": \"01a53b36-3f48-11e5-a151-feff819cdc9f\",\n    \"description\": \"Some updated description for the review\",\n    \"rating\": 2\n}\n```\n\nExample response:\n```\n{\n    \"reviewId\": \"01a53b36-3f48-11e5-a151-feff819cdc9f\",\n    \"status\": \"CREATED\",\n    \"links\": [{\n        \"href\": \"http://localhost:39250/v1/reviews/01a53b36-3f48-11e5-a151-feff819cdc9f\",\n        \"method\": \"GET\",\n        \"rel\": \"get-review\"\n    }]\n}\n```","operationId":"updateReview_1","consumes":["application/json"],"produces":["application/json"],"parameters":[{"in":"body","name":"body","description":"Review for this reservation","required":true,"schema":{"$ref":"#/definitions/UpdateReviewDto"}}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/ChangedReviewDto"}},"400":{"description":"Bad request","schema":{"$ref":"#/definitions/ErrorResponse"}},"403":{"description":"Access denied","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"Reservation not found","schema":{"$ref":"#/definitions/ErrorResponse"}}},"security":[{"API_TOKEN":[]}]}},"/v1/validations/phone-numbers":{"get":{"tags":["validations"],"summary":"Validate phone number","description":"This endpoint validates a phone number. \nIf optional 2-letter country code `country` is not specified, the `phoneNumber` should be formatted according to E164, which means it is expected to be in the international format with a leading `\"+\"` and no spaces or dashes, e.g. `+4930120765890`. Otherwise it may have leading zero instead of country code, e.g. `030120765890`.\n\nThe endpoint will return a status `HTTP 200` which means the `phoneNumber` is successfully validated.\nThe endpoint will return a status `HTTP 400` which means the `phoneNumber` is missing or invalid.\n\nExample curl:\n```\ncurl https://{host}/v{X}/validations/phone-numbers?phoneNumber=030120765890&country=IT\n```\n\nExample response:\n```\n{\n  \"errorMessage\": \"phoneNumber is invalid: 030120765890, country specified is: IT\",\n  \"errorType\": \"PHONE_NUMBER_INVALID\"\n}\n```\n","operationId":"validatePhoneNumber_1","parameters":[{"name":"phoneNumber","in":"query","description":"Phone number","required":true,"type":"string"},{"name":"country","in":"query","description":"Country code","required":false,"type":"string"}],"responses":{"200":{"description":"Phone number validated successfully"},"400":{"description":"Bad request","schema":{"$ref":"#/definitions/ErrorResponse"}}}}}},"securityDefinitions":{"API_TOKEN":{"type":"apiKey","name":"X-Quandoo-AuthToken","in":"header"}},"definitions":{"CustomerResponse":{"type":"object","required":["country","email","firstName","gender","id","lastName","links","mobileNumber","phoneNumber","subscriptions"],"properties":{"id":{"type":"string","description":"The id of the customer."},"firstName":{"type":"string","description":"First name of the customer."},"lastName":{"type":"string","description":"Last name of the customer."},"gender":{"type":"string","description":"Gender of the customer.","enum":["male","female","other","undefined"]},"email":{"type":"string","description":"Email of the customer."},"phoneNumber":{"type":"string","description":"Fixed line phone number of the customer."},"mobileNumber":{"type":"string","description":"Mobile phone number of the customer."},"country":{"type":"string","description":"2-letter ISO country code of the customer, e.g. DE."},"links":{"type":"array","description":"The links related to this entity.","items":{"$ref":"#/definitions/LinkRelationDto"}},"subscriptions":{"type":"array","description":"The newsletter subscriptions, e.g. QUANDOO, MERCHANT.","items":{"$ref":"#/definitions/MerchantSubscription"}}}},"LinkRelationDto":{"type":"object","properties":{"href":{"type":"string","format":"url"},"method":{"type":"string"},"rel":{"type":"string","enum":["DETAILS","WIDGET","WIDGET_DETAILS","GET_MERCHANT","PARENT","SELF","SETTINGS","AVAILABILITY_DAYS","AVAILABILITIES","CREATE_RESERVATION","GET_RESERVATION","UPDATE_RESERVATION","GET_CUSTOMER_RESERVATION","GET_REVIEW","PORTAL_PREORDER_FORM","RESERVATION_CHECKOUT_PAGE","CREDIT_CARD_DETAILS_PAGE","CUSTOMER_EDIT_RESERVATION"]}}},"MerchantSubscription":{"type":"object","properties":{"id":{"type":"string","enum":["QUANDOO","MERCHANT"]}}},"ErrorResponse":{"type":"object","properties":{"errorType":{"type":"string","enum":["BAD_REQUEST_ERROR","FORBIDDEN_ERROR","NOT_FOUND_ERROR","METHOD_NOT_ALLOWED_ERROR","NOT_ACCEPTABLE_ERROR","UNSUPPORTED_MEDIA_TYPE_ERROR","START_TIME_NOT_FOUND_ERROR","MERCHANT_ID_INVALID","RESERVATION_CAPACITY_MISSING","RESERVATION_CAPACITY_INVALID","RESERVATION_DATE_TIME_MISSING","RESERVATION_DATE_TIME_INVALID_FORMAT","RESERVATION_EXTRA_INFO_INVALID","RESERVATION_SHOW_POSTCODE","RESERVATION_DATE_TIME_INVALID_IN_THE_PAST","RESERVATION_NO_TABLES_AVAILABLE","RESERVATION_NOT_FOUND","RESERVATION_IN_NON_EDITABLE_STATUS","RESERVATION_WITH_SMART_OFFER_EDIT","RESERVATION_WITH_CCV_EDIT","RESERVATION_IOVOX_OFFER_EDIT","RESERVATION_WITH_PREPAID_MENU_EDIT","RESERVATION_FOR_MERCHANT_WITH_FEEDBACK_TIME","RESERVATION_WALKIN_NOT_EDITABLE","RESERVATION_CUSTOMER_CANNOT_EDIT","RESERVATION_PROMO_CODE_PARAM_INVALID","RESERVATION_PROMO_CODE_NOT_FOUND","RESERVATION_PROMO_CODE_INVALID_DESTINATION","RESERVATION_PROMO_CODE_ALREADY_USED","RESERVATION_PROMO_CODE_INVALID_CAMPAIGN","RESERVATION_PROMO_CODE_DATE_TIME_IN_PAST_OR_FUTURE","RESERVATION_PROMO_CODE_INVALID_DAY_OF_WEEK","RESERVATION_PROMO_CODE_INVALID_AGENT","RESERVATION_PROMO_CODE_INVALID_MERCHANT","RESERVATION_PROMO_CODE_INVALID_PARTNER_VOUCHER","RESERVATION_PROMO_CODE_ALREADY_OWNED_BY_CUSTOMER","RESERVATION_INVITATION_PROMO_CODE_NOT_FIRST_RESERVATION","CCV_SETTINGS_REQUIRED","CCV_CARD_REQUIRED","CCV_SETTINGS_INVALID","CCV_SETTINGS_OFFLINE","CCV_CARD_INVALID","ENQUIRY_INVALID_MIN_COVERS","CUSTOMER_FIRST_NAME_INVALID","CUSTOMER_LAST_NAME_MISSING","CUSTOMER_LAST_NAME_INVALID","CUSTOMER_EMAIL_MISSING","CUSTOMER_EMAIL_INVALID","CUSTOMER_NEWSLETTER_REQUESTED_MISSING","CUSTOMER_PHONE_NUMBER_MISSING","CUSTOMER_COUNTRY_INVALID","CUSTOMER_ID_EXISTS","CUSTOMER_PHONE_NUMBER_INVALID","UNEXPECTED_SERVER_ERROR","PHONE_NUMBER_MISSING","PHONE_NUMBER_INVALID","UUID_CONFLICT","RESERVATION_STATUS_CONFLICT","INVALID_RESERVATION_GUESTS_QUANTITY","MENU_MAPPING_FAILED"]},"errorMessage":{"type":"string"}}},"ReservationData":{"type":"object","required":["capacity","customerId","id","links","merchantId","quandooId","status"],"properties":{"id":{"type":"string","description":"The agent-dependent unique id of the reservation."},"number":{"type":"integer","format":"int32","description":"The id of the reservation on quandoo system."},"reservationNumber":{"type":"string","description":"The long id of this reservation on quandoo system."},"quandooId":{"type":"string","format":"uuid","description":"The public id of this reservation on quandoo system."},"status":{"type":"string","description":"The status of the reservation."},"updatedAt":{"type":"string","format":"date-time","description":"The date the review created on. Format: yyyy-MM-ddTHH:mm:ssZ"},"capacity":{"type":"integer","format":"int32","description":"The capacity of the reservation."},"merchantId":{"type":"integer","format":"int32","description":"The id of the merchant."},"customerId":{"type":"string","description":"The public ID of the customer to which this reservation belongs."},"promocode":{"type":"string","description":"The promotion code used in this reservation. Optional."},"extraInfo":{"type":"string","description":"Extra information that the customer provided for the reservation. Optional."},"links":{"type":"array","description":"The links related to this entity.","items":{"$ref":"#/definitions/LinkRelationDto"}},"reservationTags":{"type":"array","description":"A list of reservation tag IDs.","items":{"type":"integer","format":"int32"}}}},"ReservationDataList":{"type":"object","properties":{"reservations":{"type":"array","items":{"$ref":"#/definitions/ReservationData"}}}},"ChainDto":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"name":{"type":"string"}}},"CoordinatesDto":{"type":"object","properties":{"latitude":{"type":"number","format":"double"},"longitude":{"type":"number","format":"double"}}},"DocumentDto":{"type":"object","properties":{"name":{"type":"string"},"url":{"type":"string"},"format":{"type":"string"},"description":{"type":"string"}}},"ImageDto":{"type":"object","properties":{"url":{"type":"string","format":"url"}}},"LocationDto":{"type":"object","properties":{"coordinates":{"$ref":"#/definitions/CoordinatesDto"},"address":{"$ref":"#/definitions/MerchantAddressDto"}}},"MerchantAddressDto":{"type":"object","properties":{"street":{"type":"string"},"number":{"type":"string"},"zipcode":{"type":"string"},"city":{"type":"string"},"country":{"type":"string"},"district":{"type":"string"}}},"MerchantDetailsDto":{"type":"object","required":["bookable","ccvEnabled","id","links","location","name","openingTimes","phoneNumber","reviewScore","timezone"],"properties":{"id":{"type":"integer","format":"int32","description":"The id of the merchant."},"name":{"type":"string","description":"The name of the merchant."},"phoneNumber":{"type":"string","description":"The phone number of the merchant."},"currency":{"type":"string","description":"The currency of the merchant."},"locale":{"type":"string","description":"The locale of the merchant."},"timezone":{"type":"string","description":"The timezone of the merchant."},"location":{"description":"The location of the merchant.","$ref":"#/definitions/LocationDto"},"reviewScore":{"type":"string","description":"The review score of the merchant."},"tagGroups":{"type":"array","description":"The tag groups this merchant belongs to, requires permission. Without permissions returns only CUISINE and PRICE.","items":{"$ref":"#/definitions/TagGroupDto"}},"images":{"type":"array","description":"The slider images this merchant has.","items":{"$ref":"#/definitions/ImageDto"}},"documents":{"type":"array","description":"The documents this merchant has, requires permission.","items":{"$ref":"#/definitions/DocumentDto"}},"links":{"type":"array","description":"The links related to this entity.","items":{"$ref":"#/definitions/LinkRelationDto"}},"bookable":{"type":"boolean","description":"The flag indicates whether the merchant is bookable or not."},"openingTimes":{"description":"All opening times of the merchant.","$ref":"#/definitions/OpeningTimesDto"},"ccvEnabled":{"type":"boolean","description":"If true, credit card information is required when creating a reservation."},"chain":{"description":"The chain of the merchant.","$ref":"#/definitions/ChainDto"},"ivrRedirectNumber":{"type":"string","description":"The IVR forwarding phone number, requires permission."},"shortDescription":{"type":"string","description":"Merchant short description, requires permission."},"longDescription":{"type":"string","description":"Merchant long description, requires permission."}}},"MerchantDetailsDtoList":{"type":"object","required":["merchants"],"properties":{"merchants":{"type":"array","description":"Merchant details collection.","items":{"$ref":"#/definitions/MerchantDetailsDto"}},"size":{"type":"integer","format":"int64"},"offset":{"type":"integer","format":"int32"},"limit":{"type":"integer","format":"int32"}}},"MerchantWithRecommendationsDto":{"type":"object","required":["merchant","merchantSearchMessage"],"properties":{"merchant":{"description":"The merchant that was searched for. Only filled if it is bookable.","$ref":"#/definitions/MerchantDetailsDto"},"merchantSearchMessage":{"type":"string","description":"Additional information about the search result: MERCHANT_NOT_BOOKABLE if the merchant exists but is not bookable","enum":["MERCHANT_NOT_BOOKABLE"]},"recommendedMerchants":{"description":"Recommendations for similar merchants.","$ref":"#/definitions/MerchantDetailsDtoList"}}},"OpeningTimesDto":{"type":"object","required":["standardOpeningTimes"],"properties":{"standardOpeningTimes":{"description":"The standard opening times of the merchant.","$ref":"#/definitions/StandardOpeningTimesDto"}}},"StandardOpeningTimesDto":{"type":"object"},"TagGroupDto":{"type":"object","properties":{"type":{"type":"string","enum":["CUISINE","MEAL_TYPE","ESTABLISHMENT_TYPE","AREA","INTERNET","FOOD_RELATED","ACCESSIBILITY","PAYMENT","PRICE","ATMOSPHERE","PARKING","EXTRAS","GOOD_FOR","MENU_DETAILS"]},"tags":{"type":"array","items":{"$ref":"#/definitions/TranslatedTagDto"}}}},"TranslatedTagDto":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"}}},"CustomerDataList":{"type":"object","properties":{"result":{"type":"array","items":{"$ref":"#/definitions/MerchantCustomerData"}},"offset":{"type":"integer","format":"int32"},"limit":{"type":"integer","format":"int32"}}},"CustomerStatisticsData":{"type":"object","required":["reservationCancelledCount","reservationNoShowCount","reservationSuccessfulCount"],"properties":{"reservationSuccessfulCount":{"type":"integer","format":"int32","description":"The number of reservations made by the customer that were actually seated"},"reservationCancelledCount":{"type":"integer","format":"int32","description":"The number of reservations made by the customer that were cancelled before taking place"},"reservationNoShowCount":{"type":"integer","format":"int32","description":"The number of reservations made by the customer that he did not show up"}}},"MarketingSettingDto":{"type":"object","properties":{"marketingSettingType":{"type":"string","enum":["SMART_OFFERS_AND_DEALS","PROMO_CODES","RESTAURANT_RECOMMENDATIONS","NEWSLETTERS"]},"marketingSettingStatus":{"type":"string","enum":["ACTIVE","INACTIVE"]}}},"MerchantCustomerData":{"type":"object","required":["customerRef","email","firstName","id","lastName","links","locale","marketingFlags","mobileNumber","phoneNumber","statistics","subscriptions","title"],"properties":{"id":{"type":"string","description":"The id of the customer."},"customerRef":{"type":"string","description":"Customer reference "},"marketingFlags":{"type":"array","description":"Marketing flags for customer.","items":{"$ref":"#/definitions/MarketingSettingDto"}},"title":{"type":"string","description":"Title of the customer."},"firstName":{"type":"string","description":"First name of the customer."},"lastName":{"type":"string","description":"Last name of the customer."},"email":{"type":"string","description":"Email of the customer."},"phoneNumber":{"type":"string","description":"Fixed line phone number of the customer."},"mobileNumber":{"type":"string","description":"Mobile phone number of the customer."},"locale":{"type":"string","description":"Locale of the customer."},"links":{"type":"array","description":"The links related to this entity.","items":{"$ref":"#/definitions/LinkRelationDto"}},"subscriptions":{"type":"array","description":"The newsletter subscriptions, e.g. QUANDOO, MERCHANT.","uniqueItems":true,"items":{"$ref":"#/definitions/MerchantSubscription"}},"statistics":{"description":"Statistics about the customer","$ref":"#/definitions/CustomerStatisticsData"},"updatedAt":{"type":"string","format":"date-time","description":"The date the review created on. Format: yyyy-MM-ddTHH:mm:ssZ"}}},"CreatedCustomer":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"The id of the customer for the calling agent. (Agent dependent field)"}}},"CreatedReservationEnquiry":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"The identifier of the reservation enquiry for the calling agent (Agent-dependent field)"}}},"CreatedReservationEnquiryData":{"type":"object","required":["customer","links","reservationEnquiry"],"properties":{"reservationEnquiry":{"description":"The object holding the reservation enquiry data.","$ref":"#/definitions/CreatedReservationEnquiry"},"customer":{"description":"The object holding the customer data.","$ref":"#/definitions/CreatedCustomer"},"links":{"type":"array","description":"Related links to follow","items":{"$ref":"#/definitions/LinkRelationDto"}}}},"AgentTracking":{"type":"object","required":["id"],"properties":{"id":{"type":"integer","format":"int32","description":"An agent id. Required."}}},"MerchantCustomer":{"type":"object","required":["country","locale","phoneNumber"],"properties":{"id":{"type":"string","description":"Identifier of the customer for the calling agent. (Agent dependent field)"},"firstName":{"type":"string","description":"The first name of the customer. Optional."},"lastName":{"type":"string","description":"The last name of the customer."},"emailAddress":{"type":"string","description":"The email address of the customer."},"phoneNumber":{"type":"string","description":"The phone number of the customer. The expected format is E164 e.g. +4930120765890"},"locale":{"type":"string","description":"The locale of the customer. E.g. de_DE"},"country":{"type":"string","description":"The 2 letter ISO country of the customer, e.g. DE"},"subscriptions":{"type":"array","description":"The requested subscriptions, e.g. QUANDOO, MERCHANT","items":{"$ref":"#/definitions/MerchantSubscription"}}}},"MerchantReservationEnquiry":{"type":"object","required":["capacity","endDateTime","id","merchantId","message","startDateTime"],"properties":{"id":{"type":"string","description":"The unique identifier of the reservation enquiry for the calling agent (Agent dependent field) or NULL if the agent identifier should be created. Optional."},"merchantId":{"type":"integer","format":"int32","description":"The ID of the merchant at which this reservation will be made."},"capacity":{"type":"integer","format":"int32","description":"The capacity (people count) of the reservation enquiry.","minimum":1},"startDateTime":{"type":"string","description":"The start date and time of the potential reservation. Format: yyyy-MM-ddTHH:mm:ssZ"},"endDateTime":{"type":"string","description":"The end date and time of the potential reservation. Format: yyyy-MM-ddTHH:mm:ssZ"},"message":{"type":"string","description":"A message from the customer.","minLength":0,"maxLength":5000}}},"MerchantReservationEnquiryData":{"type":"object","required":["customer","reservationEnquiry","tracking"],"properties":{"reservationEnquiry":{"description":"The reservation enquiry data.","$ref":"#/definitions/MerchantReservationEnquiry"},"customer":{"description":"The customer data.","$ref":"#/definitions/MerchantCustomer"},"tracking":{"description":"The tracking data.","$ref":"#/definitions/Tracking"}}},"RestCookie":{"type":"object","properties":{"tracking":{"type":"string","description":"A tracking string to be stored with the reservation. Optional."},"referenceId":{"type":"string","description":"A reference id to be stored with the reservation. Optional."}}},"Tracking":{"type":"object","required":["agent"],"properties":{"agent":{"description":"The id of the agent creating this request and partner references if any. Required.","$ref":"#/definitions/AgentTracking"},"cookie":{"description":"Cookie information to be stored with this reservation. Optional.","$ref":"#/definitions/RestCookie"}}},"GetReservationEnquiryData":{"type":"object","required":["customerId"],"properties":{"id":{"type":"string","description":"The agent-dependent unique id of the reservation enquiry"},"merchantId":{"type":"integer","format":"int32","description":"The ID of the merchant at which this reservation enquiry was made"},"customerId":{"type":"string","description":"The ID of the customer to which this reservation enquiry belongs"},"capacity":{"type":"integer","format":"int32","description":"The capacity (people count) of the reservation enquiry"},"startDateTime":{"type":"string","description":"The start date time of the reservation enquiry. Format: yyyy-MM-ddTHH:mm:ssZ"},"endDateTime":{"type":"string","description":"The end date time of the reservation enquiry. Format: yyyy-MM-ddTHH:mm:ssZ"},"status":{"type":"string","description":"The status of the reservation enquiry which can be one of:  NEW, IN_PROGRESS, ACCEPTED or REJECTED"}}},"UpdateReservationEnquiryData":{"type":"object","properties":{"status":{"type":"string","description":"The status of the reservation enquiry"}}},"ReservationEnquiryMessageData":{"type":"object","properties":{"senderType":{"type":"string","enum":["MERCHANT","CUSTOMER"]},"message":{"type":"string"},"creationDate":{"type":"string","format":"date-time","description":"The date the review created on. Format: yyyy-MM-ddTHH:mm:ssZ"}}},"ReservationEnquiryMessageList":{"type":"object","properties":{"messages":{"type":"array","items":{"$ref":"#/definitions/ReservationEnquiryMessageData"}}}},"MerchantAvailabilityDaysDto":{"type":"object","properties":{"days":{"type":"array","description":"The days that are available for a reservation","items":{"type":"string","format":"date","description":"The date when the review was written."}},"links":{"type":"array","description":"The links for possible operations related to this entity","items":{"$ref":"#/definitions/LinkRelationDto"}}}},"MerchantAvailabilityDto":{"type":"object","required":["occupancy"],"properties":{"dateTime":{"type":"string","format":"date-time","description":"The date the review created on. Format: yyyy-MM-ddTHH:mm:ssZ"},"occupancy":{"type":"integer","format":"int32","description":"The occupancy of this availability option across the restaurant. This is an integer number between 0 and 100.","readOnly":true},"areaIds":{"type":"array","description":"The ids of the areas this availability option can be reserved for.","items":{"type":"integer","format":"int32"}},"vaultSettingsId":{"type":"string","format":"uuid","description":"The id of the Vault Settings applicable on this availability option."}}},"MerchantAvailabilityDtoList":{"type":"object","required":["links"],"properties":{"timeSlots":{"type":"array","description":"The availability time slots to reserve.","readOnly":true,"items":{"$ref":"#/definitions/MerchantAvailabilityDto"}},"vaultSettings":{"type":"array","description":"The credit card vault settings.","readOnly":true,"items":{"$ref":"#/definitions/MerchantVaultSettingsDto"}},"links":{"type":"array","description":"The links related to this entity.","readOnly":true,"items":{"$ref":"#/definitions/LinkRelationDto"}}}},"MerchantVaultSettingsDto":{"type":"object","required":["fee","feeType","id"],"properties":{"id":{"type":"string","format":"uuid","description":"The id of the vault settings.","readOnly":true},"fee":{"type":"number","description":"The fee customer should pay in the case of cancellation.","readOnly":true},"feeType":{"type":"string","description":"The type of the fee to pay.","readOnly":true},"feePercentageForTime":{"type":"object","description":"Fee percentage depending of the time of cancellation.","additionalProperties":{"type":"integer","format":"int32"}}}},"MerchantReservationDataList":{"type":"object","properties":{"reservations":{"type":"array","items":{"$ref":"#/definitions/ReservationData"}},"offset":{"type":"integer","format":"int32"},"limit":{"type":"integer","format":"int32"}}},"ReservationTagDto":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"name":{"type":"string"},"merchantId":{"type":"integer","format":"int32"}}},"ReservationTagsDto":{"type":"object","properties":{"reservationTags":{"type":"array","items":{"$ref":"#/definitions/ReservationTagDto"}}}},"CustomerDto":{"type":"object","properties":{"firstName":{"type":"string"},"lastName":{"type":"string"},"profileImage":{"$ref":"#/definitions/ImageDto"}}},"ReviewDto":{"type":"object","required":["customer","date","rating"],"properties":{"customer":{"description":"The customer who wrote the review.","$ref":"#/definitions/CustomerDto"},"rating":{"type":"integer","format":"int32","description":"Possible values: 1 to 6."},"description":{"type":"string","description":"The description of the review."},"locale":{"type":"string"},"date":{"type":"string","format":"date","description":"The date when the review was written."}}},"ReviewDtoList":{"type":"object","required":["reviews"],"properties":{"reviews":{"type":"array","description":"Merchant customer review collection.","items":{"$ref":"#/definitions/ReviewDto"}},"size":{"type":"integer","format":"int32"},"offset":{"type":"integer","format":"int32"},"limit":{"type":"integer","format":"int32"}}},"AreaDto":{"type":"object","properties":{"id":{"type":"integer","format":"int32","description":"Id of the area"},"name":{"type":"string","description":"Name of the area"},"priority":{"type":"integer","format":"int32","description":"Priority set for this area"}}},"MerchantReservationSettingsDto":{"type":"object","properties":{"areaIds":{"type":"array","description":"List of all the areas defined for the merchant. Each area will contain:","items":{"$ref":"#/definitions/AreaDto"}},"capacities":{"type":"array","description":"Number of guests allowed in a reservation","items":{"type":"integer","format":"int32"}},"merchantNewsletterSelectionRequired":{"type":"boolean","description":"If true, a separate checkbox is displayed in the checkout for newsletter received from the restaurant"},"areaSelectionRequired":{"type":"boolean","description":"If true, we display available areas in a dropdown when a guest is making an online reservation"},"reservationEnquiryEnabled":{"type":"boolean","description":"If true, the restaurants allows enquiries"},"minimumCapacityForEnquiries":{"type":"integer","format":"int32","description":"Minimum number of guests for an enquiry"},"onlineReservationInterval":{"type":"integer","format":"int32","description":"Time slots displayed for making a reservation"},"specialTerms":{"type":"string","description":"If true, special terms and conditions of the restaurant need to be confirmed upon making an online reservation"},"links":{"type":"array","description":"Related links that can be followed based on this response","items":{"$ref":"#/definitions/LinkRelationDto"}},"automaticConfirmation":{"type":"boolean","description":"If true, the customer will receive an automatic email confirmation after he makes a reservation"},"ccvEnabled":{"type":"boolean","description":"If true, credit card information is required when creating a reservation"}}},"ReservationDetails":{"type":"object","required":["capacity","status"],"properties":{"status":{"type":"string","description":"The status of the reservation."},"capacity":{"type":"integer","format":"int32","description":"The capacity (people count) of the reservation."},"areaId":{"type":"integer","format":"int32","description":"The id of the area this reservation should be in. Optional."},"dateTime":{"type":"string","format":"date-time","description":"The date the review created on. Format: yyyy-MM-ddTHH:mm:ssZ"},"reservationTags":{"type":"array","description":"Reservation tag IDs.","items":{"type":"integer","format":"int32"}},"extraInfo":{"type":"string","description":"Additional text information about the reservation. Pass empty string to remove it."}}},"UpdateReservationData":{"type":"object","required":["reservation"],"properties":{"reservation":{"description":"The reservation status of the reservation.","$ref":"#/definitions/ReservationDetails"}}},"CreatedReservation":{"type":"object","required":["id","quandooId"],"properties":{"id":{"type":"string","description":"The id of this reservation for the calling agent. (Agent dependent field)"},"number":{"type":"integer","format":"int32","description":"The id of this reservation on quandoo system."},"reservationNumber":{"type":"string","description":"The long id of this reservation on quandoo system."},"status":{"type":"string","description":"The status of the reservation."},"quandooId":{"type":"string","format":"uuid","description":"The public id of this reservation on quandoo system."}}},"CreatedReservationData":{"type":"object","required":["customer","links","reservation"],"properties":{"reservation":{"description":"The object holding the reservation data.","$ref":"#/definitions/CreatedReservation"},"customer":{"description":"The object holding the customer data.","$ref":"#/definitions/CreatedCustomer"},"links":{"type":"array","description":"Related links to follow","items":{"$ref":"#/definitions/LinkRelationDto"}}}},"MerchantReservation":{"type":"object","required":["capacity","merchantId"],"properties":{"id":{"type":"string","description":"The identifier of the reservation for the calling agent (Agent-dependent field)"},"merchantId":{"type":"integer","format":"int32","description":"The ID of the merchant at which this reservation will be made."},"capacity":{"type":"integer","format":"int32","description":"The capacity (people count) of the reservation."},"areaId":{"type":"integer","format":"int32","description":"The id of the area this reservation should be in. Optional."},"dateTime":{"type":"string","format":"date-time","description":"The date the review created on. Format: yyyy-MM-ddTHH:mm:ssZ"},"extraInfo":{"type":"string","description":"Any extra information that the customer likes to provide. Optional."},"promoCode":{"type":"string","description":"A promotion code which should be used with this reservation. Optional."},"creditCardVaultSettingsId":{"type":"string","format":"uuid","description":"A credit card vault settings to be used by this reservation. Optional."},"recurringCardDetailId":{"type":"string","format":"uuid","description":"A customer credit card reference to be used if credit card vault should be applied. Optional."},"reservationTags":{"type":"array","description":"A list of reservation tag IDs. Optional.","items":{"type":"integer","format":"int32"}}}},"MerchantReservationData":{"type":"object","required":["customer","reservation","tracking"],"properties":{"reservation":{"description":"The reservation data.","$ref":"#/definitions/MerchantReservation"},"customer":{"description":"The customer data.","$ref":"#/definitions/MerchantCustomer"},"tracking":{"description":"The tracking data.","$ref":"#/definitions/Tracking"}}},"ChangedReviewDto":{"type":"object","required":["links","reviewId"],"properties":{"reviewId":{"type":"string","format":"uuid","description":"Id of to the review."},"status":{"type":"string","description":"The status of the change.","enum":["AVAILABLE_TO_REVIEW","CREATED","DENIED","PUBLISHED"]},"links":{"type":"array","description":"The links related to this entity.","items":{"$ref":"#/definitions/LinkRelationDto"}}}},"CreateReviewDto":{"type":"object","required":["rating","reservationId"],"properties":{"reservationId":{"type":"string","description":"The reservation identifier this review is being created for.Either public reservation identifier or agent specific identifier could be passed."},"rating":{"type":"integer","format":"int32","description":"Possible values: 1 to 6."},"description":{"type":"string","description":"The description of the review."}}},"CustomerReviewData":{"type":"object","properties":{"identifier":{"type":"string","description":"Identifier of the customer associated to this review. Only in detailed view."},"firstName":{"type":"string","description":"Customer first name associated to this review. Only in detailed view."},"lastName":{"type":"string","description":"First letter of customer last name associated to this review. Only in detailed view."},"profileImage":{"type":"string","description":"Customer profile image URL associated to this review. Only in detailed view."}}},"GetReviewDto":{"type":"object","required":["rating","reviewId"],"properties":{"reviewId":{"type":"string","format":"uuid","description":"UUID identifying the review."},"merchantId":{"type":"integer","format":"int32","description":"Merchant Id associated to this review. Only in detailed view."},"customer":{"description":"Data about the customer that made this review. Only in detailed view.","$ref":"#/definitions/CustomerReviewData"},"status":{"type":"string","description":"Current review status. Possible values are 'AVAILABLE_TO_REVIEW','CREATED', 'DENIED', 'PUBLISHED'.","enum":["AVAILABLE_TO_REVIEW","CREATED","DENIED","PUBLISHED"]},"locale":{"type":"string","description":"Locale of the created review. Only in detailed view."},"rating":{"type":"integer","format":"int32","description":"Rating associated to this review. Possible values: 1 to 6."},"description":{"type":"string","description":"Description associated to this review."},"reservationId":{"type":"string","description":"The reservation identifier this review is created for."},"createdAt":{"type":"string","format":"date-time","description":"The date the review created on. Format: yyyy-MM-ddTHH:mm:ssZ"}}},"GetReviewsDto":{"type":"object","properties":{"reviews":{"type":"array","description":"List of returned reviews.","items":{"$ref":"#/definitions/GetReviewDto"}},"size":{"type":"integer","format":"int32","description":"Number of reviews returned in this object."},"offset":{"type":"integer","format":"int32","description":"Offset to apply on the next pagination request. Can be higher than the number of available reviews."},"limit":{"type":"integer","format":"int32","description":"Expected number of reviews that could be retrieved in the next pagination request. Can actually be less than the number returned. Its value is 0 when it is sure there are no more reviews available for pagination using the 'offset' as starting point."}}},"UpdateReviewDto":{"type":"object","required":["reviewId"],"properties":{"reviewId":{"type":"string","format":"uuid","description":"UUID identifying the review."},"rating":{"type":"integer","format":"int32","description":"Rating associated to this review. Possible values: 1 to 6."},"description":{"type":"string","description":"Description associated to this review."}}}}}