Palms API
Документация описывает клиентское АПИ Palms. Оно используется в мобильном приложении, виджете и других клиентских приложениях Palms.
Общая информация
-
Мы строим REST API. Все общение с Palms API проходит через HTTP в JSON формате. Мы стараемся следовать REST, но следуем common-sense и отходим от REST, когда это имеет смысл.
-
В каждом ответе, при котором меняется, создается модель мы возвращаем обновленное значение в ответе.
Среды
Среда | URL | Когда использовать |
---|---|---|
Dev | https://api-dev.palms.tennis | Для разработки. Может очищаться и валиться. Она для внутренней работы. Лучше не использовать для интеграции |
Test | https://api-test.palms.tennis | Тестовая среда. Тоже может очищаться и валиться. Мы ее используем как тестовый полигон перед продакшеном. Если нужно провести миграцию на проде, то мы сначала ее пробуем накатывать их на тесте, а потом, если все прошло гладко, применяем их для продакшена |
Prod | https://api.palms.tennis | Боевой сервер. Данные с продакшена используются в приложении и показываются клиентам. Мы максимально аккуратны с этой средой, она надежна и стабильна. |
Стандартные HTTP коды ответов
Код | Значение |
---|---|
200 | Все ок, ответ успешный |
401 | Запрос не прошел авторизацию. Проверьте ключи доступа |
422 | Ошибки валидации как данных, так и логические |
404 | Модель или роут не найден |
Авторизация
Для авторизации запроса, нужно передать хедер Authorization с указанием access
токен.
Например,
Authorization: Bearer XXXXX
где XXXXX
- ваш access
токен.
Пейджинация
Большинство роутов получения коллекций обьектов имеют пейджинацию. Пейджинация страничная, включает два URL параметра:
-
page_size
(number) - количество элементов на страницы -
page
(number) - номер страницы
Например
https://api.palms.tennis/slots?page=1&page_size=10
Идентификатор устройства (обязательно)
Для всех запросов к Palms API нужно передать
X-Device-ID: XXXYYY
где XXXYYY
- уникальный идентификатор устройства. Он будет использоваться для менеджмента ваших устройств. Мы используем этот идентификатор для менеджмента ваших подписок на Push уведомления и с целью фиксации всех ваших устройств, чтобы вы могли отменить авторизацию устройства удаленно в случае потери или кражи устройства.
Ошибки
Ошибка валидации
{
"error": {
"message": "Validation failed",
"type": "validation",
"validations": {} // ответы валидаторов для дебага
}
}
Ошибка авторизации
{
"error": {
"message": "Authentication credentials were not provided.",
"type": "not_authenticated",
}
}
и
{
"error": {
"message": "Token is invalid or expired",
"type": "token_not_valid"
}
}
Другие ошибки
{
"error": {
"message": "Error message. Long readable text",
"type": "error_type"
}
}
Форматы данных
Даты
Даты хранятся в формате ISO 8601 c указанием времени и часового пояса.
Например, 2019-05-29T15:15:43+00:00
Валюты
Валюты мы храним в формате ISO 4217 в трех символьной строке.
Например, USD
, UAH
, или EUR
.
Суммы
Суммы мы храним целым числом без разделителя.
Например, сумма 5 грн 40 коп. будет храниться как 540
Номера телефонов
Согласно стандарту E.164 в международном формате.
Например, +380932345678
Пользователь ¶
Получить данные о пользователе ¶
Получить данные о пользователеGET/user/me
Example URI
Headers
Content-Type: application/json
Authorization: Bearer XXXXX
200
Headers
Content-Type: application/json
Body
{
"data": {
"id": 1,
"phone_number": "+380938765432",
"name": "Сергей",
"profile_picture": "https://example.com",
"verified_at": "2019-06-25T23:23:23",
"facebook_id": "123456",
"has_password": true
}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор пользователя"
},
"phone_number": {
"type": "string",
"description": "номер телефона пользователя"
},
"name": {
"type": "string",
"description": "имя пользователя"
},
"profile_picture": {
"type": "string",
"description": "изображение профиля пользователя"
},
"verified_at": {
"type": "string",
"description": "время завершения проверки пользователя. если установлен, значит пользователь подтвредил телефон и он может пользоваться Palms."
},
"facebook_id": {
"type": "string",
"description": "id пользоваля в Facebook. Устанавливается, если клиент зарегистрировался с Facebook или вошел в привязал ее к своей учетной записи"
},
"has_password": {
"type": "boolean",
"description": "флаг указывающий на наличие установленного пароля. Пользователь может зарегистрироваться через соц сети и не указать пароль."
}
},
"required": [
"id",
"phone_number",
"name",
"profile_picture",
"verified_at",
"facebook_id",
"has_password"
],
"additionalProperties": false
}
}
}
Изменить данные пользователя ¶
Изменить данные пользователяPATCH/user/me
Example URI
Headers
Content-Type: application/json
Authorization: Bearer XXXXX
Body
{
"name": "Иван",
"profile_picture": "data:base64:Asdasda"
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "новое имя пользователя"
},
"profile_picture": {
"type": "string",
"description": "закодированое base64 изображение профиля пользователя"
}
}
}
200
Headers
Content-Type: application/json
Body
{
"data": {
"id": 1,
"phone_number": "+380938765432",
"name": "Сергей",
"profile_picture": "https://example.com",
"verified_at": "2019-06-25T23:23:23",
"facebook_id": "123456",
"has_password": true
}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор пользователя"
},
"phone_number": {
"type": "string",
"description": "номер телефона пользователя"
},
"name": {
"type": "string",
"description": "имя пользователя"
},
"profile_picture": {
"type": "string",
"description": "изображение профиля пользователя"
},
"verified_at": {
"type": "string",
"description": "время завершения проверки пользователя. если установлен, значит пользователь подтвредил телефон и он может пользоваться Palms."
},
"facebook_id": {
"type": "string",
"description": "id пользоваля в Facebook. Устанавливается, если клиент зарегистрировался с Facebook или вошел в привязал ее к своей учетной записи"
},
"has_password": {
"type": "boolean",
"description": "флаг указывающий на наличие установленного пароля. Пользователь может зарегистрироваться через соц сети и не указать пароль."
}
},
"required": [
"id",
"phone_number",
"name",
"profile_picture",
"verified_at",
"facebook_id",
"has_password"
],
"additionalProperties": false
}
}
}
Изменение пароля ¶
Изменение пароляPOST/user/change_password
Example URI
Headers
Content-Type: application/json
Authorization: Bearer XXXXX
Body
{
"new_password": "12345678"
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"new_password": {
"type": "string",
"description": "новый пароль"
}
}
}
200
Headers
Content-Type: application/json
Body
{
"data": {
"id": 1,
"phone_number": "+380938765432",
"name": "Сергей",
"profile_picture": "https://example.com",
"verified_at": "2019-06-25T23:23:23",
"facebook_id": "123456",
"has_password": true
}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор пользователя"
},
"phone_number": {
"type": "string",
"description": "номер телефона пользователя"
},
"name": {
"type": "string",
"description": "имя пользователя"
},
"profile_picture": {
"type": "string",
"description": "изображение профиля пользователя"
},
"verified_at": {
"type": "string",
"description": "время завершения проверки пользователя. если установлен, значит пользователь подтвредил телефон и он может пользоваться Palms."
},
"facebook_id": {
"type": "string",
"description": "id пользоваля в Facebook. Устанавливается, если клиент зарегистрировался с Facebook или вошел в привязал ее к своей учетной записи"
},
"has_password": {
"type": "boolean",
"description": "флаг указывающий на наличие установленного пароля. Пользователь может зарегистрироваться через соц сети и не указать пароль."
}
},
"required": [
"id",
"phone_number",
"name",
"profile_picture",
"verified_at",
"facebook_id",
"has_password"
],
"additionalProperties": false
}
}
}
Изменение номера телефона 1/2. Запрос ¶
Изменение номера телефона 1/2. ЗапросPOST/user/change_phone_number
Example URI
Headers
Content-Type: application/json
Authorization: Bearer XXXXX
Body
{
"phone_number": "+380938765432"
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"phone_number": {
"type": "string",
"description": "номер телефона пользователя"
}
}
}
200
Headers
Content-Type: application/json
Body
{
"data": {
"opt_token": "ae39fbbb5aabc65acbd3c8053c18daa1e70a3d3c"
},
"dev": {
"otp_code": "4783"
}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"opt_token": {
"type": "string",
"description": "токен для восстановления пароля по коду из СМС"
}
},
"required": [
"opt_token"
],
"additionalProperties": false
},
"dev": {
"type": "object",
"properties": {
"otp_code": {
"type": "string",
"description": "код из СМС"
}
},
"required": [
"otp_code"
]
}
}
}
Изменение номера телефона 2/2. Подтверждение ¶
Изменение номера телефона 2/2. ПодтверждениеPOST/user/change_phone_number/confirm
Example URI
Headers
Content-Type: application/json
Authorization: Bearer XXXXX
Body
{
"opt_token": "ae39fbbb5aabc65acbd3c8053c18daa1e70a3d3c",
"otp_code": "4783"
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"opt_token": {
"type": "string",
"description": "токен для восстановления пароля по коду из СМС"
},
"otp_code": {
"type": "string",
"description": "код из СМС"
}
},
"required": [
"opt_token",
"otp_code"
]
}
200
Headers
Content-Type: application/json
Body
{
"data": {
"id": 1,
"phone_number": "+380938765432",
"name": "Сергей",
"profile_picture": "https://example.com",
"verified_at": "2019-06-25T23:23:23",
"facebook_id": "123456",
"has_password": true
}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор пользователя"
},
"phone_number": {
"type": "string",
"description": "номер телефона пользователя"
},
"name": {
"type": "string",
"description": "имя пользователя"
},
"profile_picture": {
"type": "string",
"description": "изображение профиля пользователя"
},
"verified_at": {
"type": "string",
"description": "время завершения проверки пользователя. если установлен, значит пользователь подтвредил телефон и он может пользоваться Palms."
},
"facebook_id": {
"type": "string",
"description": "id пользоваля в Facebook. Устанавливается, если клиент зарегистрировался с Facebook или вошел в привязал ее к своей учетной записи"
},
"has_password": {
"type": "boolean",
"description": "флаг указывающий на наличие установленного пароля. Пользователь может зарегистрироваться через соц сети и не указать пароль."
}
},
"required": [
"id",
"phone_number",
"name",
"profile_picture",
"verified_at",
"facebook_id",
"has_password"
],
"additionalProperties": false
}
}
}
Facebook. Привязка учетной записи ¶
Facebook. Привязка учетной записиPOST/user/socials/facebook
Example URI
Headers
Content-Type: application/json
Body
{
"facebook_token": "ae39fbbb5aabc65acbd3c8053c18daa1e70a3d3c"
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"facebook_token": {
"type": "string",
"description": "токен доступа Facebook"
}
},
"required": [
"facebook_token"
]
}
200
Headers
Content-Type: application/json
Body
{
"data": {
"id": 1,
"phone_number": "+380938765432",
"name": "Сергей",
"profile_picture": "https://example.com",
"verified_at": "2019-06-25T23:23:23",
"facebook_id": "123456",
"has_password": true
}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор пользователя"
},
"phone_number": {
"type": "string",
"description": "номер телефона пользователя"
},
"name": {
"type": "string",
"description": "имя пользователя"
},
"profile_picture": {
"type": "string",
"description": "изображение профиля пользователя"
},
"verified_at": {
"type": "string",
"description": "время завершения проверки пользователя. если установлен, значит пользователь подтвредил телефон и он может пользоваться Palms."
},
"facebook_id": {
"type": "string",
"description": "id пользоваля в Facebook. Устанавливается, если клиент зарегистрировался с Facebook или вошел в привязал ее к своей учетной записи"
},
"has_password": {
"type": "boolean",
"description": "флаг указывающий на наличие установленного пароля. Пользователь может зарегистрироваться через соц сети и не указать пароль."
}
},
"required": [
"id",
"phone_number",
"name",
"profile_picture",
"verified_at",
"facebook_id",
"has_password"
],
"additionalProperties": false
}
}
}
403
Headers
Content-Type: application/json
Body
{
"error": {
"type": "facebook_is_attached",
"message": "This facebook account is attached to another profile"
}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"type": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
}
}
400
Headers
Content-Type: application/json
Body
{
"error": {
"type": "facebook_invalid_token",
"message": "Facebook token is invalid"
}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"type": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
}
}
Facebook. Удаление связи ¶
Facebook. Удаление связиDELETE/user/socials/facebook
Example URI
Headers
Content-Type: application/json
200
Headers
Content-Type: application/json
Body
{
"data": {
"id": 1,
"phone_number": "+380938765432",
"name": "Сергей",
"profile_picture": "https://example.com",
"verified_at": "2019-06-25T23:23:23",
"facebook_id": "123456",
"has_password": true
}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор пользователя"
},
"phone_number": {
"type": "string",
"description": "номер телефона пользователя"
},
"name": {
"type": "string",
"description": "имя пользователя"
},
"profile_picture": {
"type": "string",
"description": "изображение профиля пользователя"
},
"verified_at": {
"type": "string",
"description": "время завершения проверки пользователя. если установлен, значит пользователь подтвредил телефон и он может пользоваться Palms."
},
"facebook_id": {
"type": "string",
"description": "id пользоваля в Facebook. Устанавливается, если клиент зарегистрировался с Facebook или вошел в привязал ее к своей учетной записи"
},
"has_password": {
"type": "boolean",
"description": "флаг указывающий на наличие установленного пароля. Пользователь может зарегистрироваться через соц сети и не указать пароль."
}
},
"required": [
"id",
"phone_number",
"name",
"profile_picture",
"verified_at",
"facebook_id",
"has_password"
],
"additionalProperties": false
}
}
}
Авторизация ¶
Авторизация по телефон/пароль ¶
Авторизация по телефон/парольPOST/user/signin
Example URI
Headers
Content-Type: application/json
Body
{
"phone_number": "+380938765432",
"password": "12345678"
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"phone_number": {
"type": "string",
"description": "номер телефона пользователя"
},
"password": {
"type": "string",
"description": "пароль"
}
},
"required": [
"phone_number",
"password"
]
}
200
Headers
Content-Type: application/json
Body
{
"data": {
"access": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNTU5ODI5Mzg4LCJqdGkiOiI0NmI2OTRhOGMxNWU0NjU1YjQ5ZGYzOTMyNjFiMDQxMCIsInVzZXJfaWQiOjN9.rlhzqQ37cue97ExsGRhaOG_CZxUWYNsrfk7wGrPe4mE",
"refresh": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoicmVmcmVzaCIsImV4cCI6MTU5MTM1NDU4OCwianRpIjoiYzZkNGUyMWQwNGFlNDIxNGI1YzY2ODJjZWVkMTljMjgiLCJ1c2VyX2lkIjozfQ.VOtlheethd4ad3yOjQYM09lI4YDDWo9UOQ94Q1r40Ws"
}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"access": {
"type": "string",
"description": "токен доступ"
},
"refresh": {
"type": "string",
"description": "токен получения нового токена доступа"
}
},
"required": [
"access",
"refresh"
],
"additionalProperties": false
}
}
}
Авторизация с Facebook ¶
Авторизация с FacebookPOST/user/signin/facebook
Example URI
Headers
Content-Type: application/json
Body
{
"facebook_token": "ae39fbbb5aabc65acbd3c8053c18daa1e70a3d3c"
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"facebook_token": {
"type": "string",
"description": "токен доступа Facebook"
}
},
"required": [
"facebook_token"
]
}
200
Headers
Content-Type: application/json
Body
{
"data": {
"access": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNTU5ODI5Mzg4LCJqdGkiOiI0NmI2OTRhOGMxNWU0NjU1YjQ5ZGYzOTMyNjFiMDQxMCIsInVzZXJfaWQiOjN9.rlhzqQ37cue97ExsGRhaOG_CZxUWYNsrfk7wGrPe4mE",
"refresh": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoicmVmcmVzaCIsImV4cCI6MTU5MTM1NDU4OCwianRpIjoiYzZkNGUyMWQwNGFlNDIxNGI1YzY2ODJjZWVkMTljMjgiLCJ1c2VyX2lkIjozfQ.VOtlheethd4ad3yOjQYM09lI4YDDWo9UOQ94Q1r40Ws"
}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"access": {
"type": "string",
"description": "токен доступ"
},
"refresh": {
"type": "string",
"description": "токен получения нового токена доступа"
}
},
"required": [
"access",
"refresh"
],
"additionalProperties": false
}
}
}
404
Headers
Content-Type: application/json
Body
{
"error": {
"type": "facebook_not_attached"
}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "тип ошибки"
}
}
}
}
}
Регистрация с Facebook ¶
Регистрация с FacebookPOST/user/signup/facebook
Перед тем как вызывать этот метод пользователь должен попробовать использовать токен fb для авторизации. Если данная учетка FB не привязана к учетке Palms, то начинаем процедуру регистрации.
Для этого нужно запросить подтвеждение телефона user/signup
. И после получения кода вызываем этот метод, который одновременно проверит телефон и привяжет FB к новой учетке.
Example URI
Headers
Content-Type: application/json
Body
{
"facebook_token": "ae39fbbb5aabc65acbd3c8053c18daa1e70a3d3c",
"otp_code": "4783",
"opt_token": "ae39fbbb5aabc65acbd3c8053c18daa1e70a3d3c"
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"facebook_token": {
"type": "string",
"description": "токен доступа Facebook"
},
"otp_code": {
"type": "string",
"description": "код из СМС"
},
"opt_token": {
"type": "string",
"description": "токен для восстановления пароля по коду из СМС"
}
},
"required": [
"facebook_token",
"otp_code",
"opt_token"
]
}
200
Headers
Content-Type: application/json
Body
{
"data": {
"access": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNTU5ODI5Mzg4LCJqdGkiOiI0NmI2OTRhOGMxNWU0NjU1YjQ5ZGYzOTMyNjFiMDQxMCIsInVzZXJfaWQiOjN9.rlhzqQ37cue97ExsGRhaOG_CZxUWYNsrfk7wGrPe4mE",
"refresh": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoicmVmcmVzaCIsImV4cCI6MTU5MTM1NDU4OCwianRpIjoiYzZkNGUyMWQwNGFlNDIxNGI1YzY2ODJjZWVkMTljMjgiLCJ1c2VyX2lkIjozfQ.VOtlheethd4ad3yOjQYM09lI4YDDWo9UOQ94Q1r40Ws"
}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"access": {
"type": "string",
"description": "токен доступ"
},
"refresh": {
"type": "string",
"description": "токен получения нового токена доступа"
}
},
"required": [
"access",
"refresh"
],
"additionalProperties": false
}
}
}
Восстановление пароля 1/2. Запрос кода из СМС ¶
Восстановление пароля 1/2. Запрос кода из СМСPOST/user/reset
Запрашиваем код восстановления по номеру телефона. В ответе нам приходит токен, связанный с кодом отправленным в СМС. Правильная пара otp_code
и otp_token
позволит установить новый пароль вторым запросом.
Example URI
Headers
Content-Type: application/json
Body
{
"phone_number": "+380938765432"
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"phone_number": {
"type": "string",
"description": "номер телефона пользователя"
}
},
"required": [
"phone_number"
]
}
200
Headers
Content-Type: application/json
Body
{
"data": {
"opt_token": "ae39fbbb5aabc65acbd3c8053c18daa1e70a3d3c"
},
"dev": {
"otp_code": "4783"
}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"opt_token": {
"type": "string",
"description": "токен для восстановления пароля по коду из СМС"
}
},
"required": [
"opt_token"
],
"additionalProperties": false
},
"dev": {
"type": "object",
"properties": {
"otp_code": {
"type": "string",
"description": "код из СМС. для автотестов на дев среде"
}
}
}
}
}
Восстановление пароля 2/2. Установка нового пароля ¶
Восстановление пароля 2/2. Установка нового пароляPOST/user/reset/confirm
Запрос на установку нового пароля. Чтобы его выполнить нужно получить первым запросом otp_token
и otp_code
(приходит в СМС пользователю) и отправить все это вместе с новым паролем.
Example URI
Headers
Content-Type: application/json
Body
{
"otp_code": "4783",
"opt_token": "ae39fbbb5aabc65acbd3c8053c18daa1e70a3d3c",
"new_password": "12345678"
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"otp_code": {
"type": "string",
"description": "код из СМС"
},
"opt_token": {
"type": "string",
"description": "токен для восстановления пароля по коду из СМС"
},
"new_password": {
"type": "string",
"description": "новый пароль пользователя"
}
}
}
200
Headers
Content-Type: application/json
Body
{
"data": {
"access": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNTU5ODI5Mzg4LCJqdGkiOiI0NmI2OTRhOGMxNWU0NjU1YjQ5ZGYzOTMyNjFiMDQxMCIsInVzZXJfaWQiOjN9.rlhzqQ37cue97ExsGRhaOG_CZxUWYNsrfk7wGrPe4mE",
"refresh": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoicmVmcmVzaCIsImV4cCI6MTU5MTM1NDU4OCwianRpIjoiYzZkNGUyMWQwNGFlNDIxNGI1YzY2ODJjZWVkMTljMjgiLCJ1c2VyX2lkIjozfQ.VOtlheethd4ad3yOjQYM09lI4YDDWo9UOQ94Q1r40Ws"
}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"access": {
"type": "string",
"description": "токен доступ"
},
"refresh": {
"type": "string",
"description": "токен получения нового токена доступа"
}
},
"required": [
"access",
"refresh"
],
"additionalProperties": false
}
}
}
Регистрация пользователя 1/2. Запрос кода из СМС ¶
Регистрация пользователя 1/2. Запрос кода из СМСPOST/user/signup
Запрашиваем код для регистрации по номеру телефона. В ответе нам приходит otp_token
, связанный с otp_code
отправленным в СМС. Правильная пара кода и токена позволит создать учетную запись вторым запросом.
Example URI
Headers
Content-Type: application/json
Body
{
"phone_number": "+380938765432"
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"phone_number": {
"type": "string",
"description": "номер телефона пользователя"
}
},
"required": [
"phone_number"
]
}
200
Headers
Content-Type: application/json
Body
{
"data": {
"opt_token": "ae39fbbb5aabc65acbd3c8053c18daa1e70a3d3c"
},
"dev": {
"otp_code": "4783"
}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"opt_token": {
"type": "string",
"description": "токен для восстановления пароля по коду из СМС"
}
},
"required": [
"opt_token"
],
"additionalProperties": false
},
"dev": {
"type": "object",
"properties": {
"otp_code": {
"type": "string",
"description": "код из СМС. для автотестов на дев среде"
}
}
}
}
}
Регистрация пользователя 2/2. Создание учетной записи ¶
Регистрация пользователя 2/2. Создание учетной записиPOST/user/signup/confirm
Запрос на создание учетной записи. Чтобы его выполнить нужно получить первым запросом otp_token
и otp_code
(приходит в СМС пользователю) и отправить все это вместе с данными пользователя.
Example URI
Headers
Content-Type: application/json
Body
{
"name": "Сергей",
"password": "12345678",
"otp_code": "4783",
"opt_token": "ae39fbbb5aabc65acbd3c8053c18daa1e70a3d3c"
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "имя пользователя"
},
"password": {
"type": "string",
"description": "пароль пользователя"
},
"otp_code": {
"type": "string",
"description": "код из СМС"
},
"opt_token": {
"type": "string",
"description": "токен для восстановления пароля по коду из СМС"
}
},
"required": [
"name",
"password",
"otp_code",
"opt_token"
]
}
200
Headers
Content-Type: application/json
Body
{
"data": {
"access": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNTU5ODI5Mzg4LCJqdGkiOiI0NmI2OTRhOGMxNWU0NjU1YjQ5ZGYzOTMyNjFiMDQxMCIsInVzZXJfaWQiOjN9.rlhzqQ37cue97ExsGRhaOG_CZxUWYNsrfk7wGrPe4mE",
"refresh": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoicmVmcmVzaCIsImV4cCI6MTU5MTM1NDU4OCwianRpIjoiYzZkNGUyMWQwNGFlNDIxNGI1YzY2ODJjZWVkMTljMjgiLCJ1c2VyX2lkIjozfQ.VOtlheethd4ad3yOjQYM09lI4YDDWo9UOQ94Q1r40Ws"
}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"access": {
"type": "string",
"description": "токен доступ"
},
"refresh": {
"type": "string",
"description": "токен получения нового токена доступа"
}
},
"required": [
"access",
"refresh"
],
"additionalProperties": false
}
}
}
Проверка токена доступа ¶
Проверка токена доступаPOST/token/verify
Example URI
Headers
Content-Type: application/json
Body
{
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNTU5ODI5Mzg4LCJqdGkiOiI0NmI2OTRhOGMxNWU0NjU1YjQ5ZGYzOTMyNjFiMDQxMCIsInVzZXJfaWQiOjN9.rlhzqQ37cue97ExsGRhaOG_CZxUWYNsrfk7wGrPe4mE"
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"token": {
"type": "string",
"description": "access токен"
}
}
}
200
Headers
Content-Type: application/json
Body
{
"data": {}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}
}
Обновление токена доступа ¶
Обновление токена доступаPOST/token/refresh
Example URI
Headers
Content-Type: application/json
Body
{
"refresh": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoicmVmcmVzaCIsImV4cCI6MTU5MTM1NDU4OCwianRpIjoiYzZkNGUyMWQwNGFlNDIxNGI1YzY2ODJjZWVkMTljMjgiLCJ1c2VyX2lkIjozfQ.VOtlheethd4ad3yOjQYM09lI4YDDWo9UOQ94Q1r40Ws"
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"refresh": {
"type": "string",
"description": "refresh токен получения нового токена доступа"
}
}
}
200
Headers
Content-Type: application/json
Body
{
"data": {
"access": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNTU5ODI5Mzg4LCJqdGkiOiI0NmI2OTRhOGMxNWU0NjU1YjQ5ZGYzOTMyNjFiMDQxMCIsInVzZXJfaWQiOjN9.rlhzqQ37cue97ExsGRhaOG_CZxUWYNsrfk7wGrPe4mE",
"refresh": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoicmVmcmVzaCIsImV4cCI6MTU5MTM1NDU4OCwianRpIjoiYzZkNGUyMWQwNGFlNDIxNGI1YzY2ODJjZWVkMTljMjgiLCJ1c2VyX2lkIjozfQ.VOtlheethd4ad3yOjQYM09lI4YDDWo9UOQ94Q1r40Ws"
}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"access": {
"type": "string",
"description": "токен доступ"
},
"refresh": {
"type": "string",
"description": "токен получения нового токена доступа"
}
},
"required": [
"access",
"refresh"
],
"additionalProperties": false
}
}
}
Логаут ¶
ЛогаутPOST/user/logout
В поцессе логаута мы инвалидируем токен доступа переданный нам в шапке запроса, а также деактивируем подписки на уведомления пользователя.
Example URI
Headers
Content-Type: application/json
Authorization: Bearer XXXXX
Body
{}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {}
}
200
Headers
Content-Type: application/json
Body
{
"data": {}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}
}
Города ¶
Город - населенный пункт, в котором размещается клуб.
Получить список городов ¶
Получить список городовGET/cities{?page_size,page}
Example URI
- page_size
number
(optional) Example: 10количество записей на странице
- page
number
(optional) Example: 1номер страницы
200
Headers
Content-Type: application/json
Body
{
"meta": {
"pagination": {
"total_number": 22,
"current_page": 1,
"total_pages": 2,
"page_size": 20
}
},
"data": [
{
"id": 1,
"title": "Киев"
},
{
"id": 1,
"title": "Киев"
},
{
"id": 1,
"title": "Киев"
}
]
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"meta": {
"type": "object",
"properties": {
"pagination": {
"type": "object",
"properties": {
"total_number": {
"type": "number",
"description": "общее количество сущностей"
},
"current_page": {
"type": "number",
"description": "текущая страница"
},
"total_pages": {
"type": "number",
"description": "всего страниц"
},
"page_size": {
"type": "number",
"description": "записей на страницу"
}
}
}
}
},
"data": {
"type": "array",
"items": [
{
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор города"
},
"title": {
"type": "string",
"description": "название города"
}
}
},
{
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор города"
},
"title": {
"type": "string",
"description": "название города"
}
}
},
{
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор города"
},
"title": {
"type": "string",
"description": "название города"
}
}
}
]
}
}
}
Получить информацию о городе ¶
Получить информацию о городеGET/city/{id}
Example URI
- id
number
(required) Example: 10идентификатор города
200
Headers
Content-Type: application/json
Body
{
"data": {
"id": 1,
"title": "Киев"
}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор города"
},
"title": {
"type": "string",
"description": "название города"
}
},
"required": [
"id",
"title"
],
"additionalProperties": false
}
}
}
Клубы ¶
Клуб - это бизнес, который предоставляет клиентам услуги по аренде спортивных площадок. Например, теннисных кортов.
Получить список клубов ¶
Получить список клубовGET/clubs{?page_size,page,lt_coord,rb_coord}
Example URI
- page_size
number
(optional) Example: 10количество записей на странице
- page
number
(optional) Example: 1номер страницы
- lt_coord
string
(optional) Example: 42.23,12.23координары левого верхнего угла карты
- rb_coord
string
(optional) Example: 42.23,12.23координары правого нижнего угла карты
- city_id
number
(optional) Example: 1id корода для фильтрации
200
Headers
Content-Type: application/json
Body
{
"meta": {
"pagination": {
"total_number": 22,
"current_page": 1,
"total_pages": 2,
"page_size": 20
}
},
"data": [
{
"id": 1,
"title": "Palms club",
"subtitle": "Теннисный клуб",
"description": "На линии корта сомкнулись ракетки, Хотелось бы форхенд, но мяч попал в сетку",
"prices": "Форматированный текст в markdown с ценами клуба",
"working_hours_tag": "7:00 - 23:00 без выходных",
"pricing_tag": "270 - 530 грн/час",
"address_tag": "Киев, ул. Академика Ботичелли, 3А",
"contact_phone": "+380441234567",
"contact_phone_two": "+380987654321",
"contact_email": "hello@palms.tennis",
"free_services": "Описание бесплатный услуг в markdown",
"additional_services": "Описание дополнительных услуг в markdown",
"rules": "описание правил клуба в markdown",
"facebook_title": "Теннисный клуб \"Palms\"",
"facebook_link": "https://www.facebook.com/sasha.goreniuk",
"areas": [
{
"id": 1,
"title": "Корт 1",
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z",
"parameters": {
"covering_type": "hard",
"parameter_2": "value"
}
}
],
"options": {
"default_cancelation_time": 10800
},
"features": {
"online_payments": true
},
"coordinates": {
"latitude": "50.26421",
"longitude": "30.31432"
},
"images": [
"https://domain.com",
"https://domain.com",
"https://domain.com",
"https://domain.com"
]
},
{
"id": 1,
"title": "Palms club",
"subtitle": "Теннисный клуб",
"description": "На линии корта сомкнулись ракетки, Хотелось бы форхенд, но мяч попал в сетку",
"prices": "Форматированный текст в markdown с ценами клуба",
"working_hours_tag": "7:00 - 23:00 без выходных",
"pricing_tag": "270 - 530 грн/час",
"address_tag": "Киев, ул. Академика Ботичелли, 3А",
"contact_phone": "+380441234567",
"contact_phone_two": "+380987654321",
"contact_email": "hello@palms.tennis",
"free_services": "Описание бесплатный услуг в markdown",
"additional_services": "Описание дополнительных услуг в markdown",
"rules": "описание правил клуба в markdown",
"facebook_title": "Теннисный клуб \"Palms\"",
"facebook_link": "https://www.facebook.com/sasha.goreniuk",
"areas": [
{
"id": 1,
"title": "Корт 1",
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z",
"parameters": {
"covering_type": "hard",
"parameter_2": "value"
}
}
],
"options": {
"default_cancelation_time": 10800
},
"features": {
"online_payments": true
},
"coordinates": {
"latitude": "50.26421",
"longitude": "30.31432"
},
"images": [
"https://domain.com",
"https://domain.com",
"https://domain.com",
"https://domain.com"
]
},
{
"id": 1,
"title": "Palms club",
"subtitle": "Теннисный клуб",
"description": "На линии корта сомкнулись ракетки, Хотелось бы форхенд, но мяч попал в сетку",
"prices": "Форматированный текст в markdown с ценами клуба",
"working_hours_tag": "7:00 - 23:00 без выходных",
"pricing_tag": "270 - 530 грн/час",
"address_tag": "Киев, ул. Академика Ботичелли, 3А",
"contact_phone": "+380441234567",
"contact_phone_two": "+380987654321",
"contact_email": "hello@palms.tennis",
"free_services": "Описание бесплатный услуг в markdown",
"additional_services": "Описание дополнительных услуг в markdown",
"rules": "описание правил клуба в markdown",
"facebook_title": "Теннисный клуб \"Palms\"",
"facebook_link": "https://www.facebook.com/sasha.goreniuk",
"areas": [
{
"id": 1,
"title": "Корт 1",
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z",
"parameters": {
"covering_type": "hard",
"parameter_2": "value"
}
}
],
"options": {
"default_cancelation_time": 10800
},
"features": {
"online_payments": true
},
"coordinates": {
"latitude": "50.26421",
"longitude": "30.31432"
},
"images": [
"https://domain.com",
"https://domain.com",
"https://domain.com",
"https://domain.com"
]
}
]
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"meta": {
"type": "object",
"properties": {
"pagination": {
"type": "object",
"properties": {
"total_number": {
"type": "number",
"description": "общее количество сущностей"
},
"current_page": {
"type": "number",
"description": "текущая страница"
},
"total_pages": {
"type": "number",
"description": "всего страниц"
},
"page_size": {
"type": "number",
"description": "записей на страницу"
}
}
}
}
},
"data": {
"type": "array",
"items": [
{
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор клуба"
},
"title": {
"type": "string",
"description": "название клуба"
},
"subtitle": {
"type": "string",
"description": "видовое описание клуба"
},
"description": {
"type": "string",
"description": "описание клуба. Что он говорит о себе"
},
"prices": {
"type": "string",
"description": "форматированный текст в markdown с ценами клуба"
},
"working_hours_tag": {
"type": "string",
"description": "короткая строка с режимом работы клуба"
},
"pricing_tag": {
"type": "string"
},
"address_tag": {
"type": "string"
},
"contact_phone": {
"type": "string"
},
"contact_phone_two": {
"type": "string"
},
"contact_email": {
"type": "string"
},
"free_services": {
"type": "string",
"description": "описание бесплатный услуг в markdown"
},
"additional_services": {
"type": "string",
"description": "описание дополнительных услуг в markdown"
},
"rules": {
"type": "string",
"description": "описание правил клуба в markdown"
},
"facebook_title": {
"type": "string",
"description": "название FB страницы клуба"
},
"facebook_link": {
"type": "string",
"description": "ссылка на FB страницу клуба"
},
"areas": {
"type": "array",
"description": "корты клуба"
},
"options": {
"type": "object",
"properties": {
"default_cancelation_time": {
"type": "number",
"description": "время в секундах для бесплатной отмены бронирования. Считает от даты старта бронирования. 0 - нет бесплатной отмены"
}
},
"description": "настройки клуба в Palms. Зависит от бизнес-процессов клуба"
},
"features": {
"type": "object",
"properties": {
"online_payments": {
"type": "boolean",
"description": "доступно онлайн оплата"
}
},
"description": "возможности клуба в Palms. Зависит от интеграции и настроек клуба"
},
"coordinates": {
"type": "object",
"properties": {
"latitude": {
"type": "string",
"description": "широта"
},
"longitude": {
"type": "string",
"description": "долгота"
}
},
"description": "координаты клуба"
},
"images": {
"type": "array",
"description": "изображения клуба"
}
}
},
{
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор клуба"
},
"title": {
"type": "string",
"description": "название клуба"
},
"subtitle": {
"type": "string",
"description": "видовое описание клуба"
},
"description": {
"type": "string",
"description": "описание клуба. Что он говорит о себе"
},
"prices": {
"type": "string",
"description": "форматированный текст в markdown с ценами клуба"
},
"working_hours_tag": {
"type": "string",
"description": "короткая строка с режимом работы клуба"
},
"pricing_tag": {
"type": "string"
},
"address_tag": {
"type": "string"
},
"contact_phone": {
"type": "string"
},
"contact_phone_two": {
"type": "string"
},
"contact_email": {
"type": "string"
},
"free_services": {
"type": "string",
"description": "описание бесплатный услуг в markdown"
},
"additional_services": {
"type": "string",
"description": "описание дополнительных услуг в markdown"
},
"rules": {
"type": "string",
"description": "описание правил клуба в markdown"
},
"facebook_title": {
"type": "string",
"description": "название FB страницы клуба"
},
"facebook_link": {
"type": "string",
"description": "ссылка на FB страницу клуба"
},
"areas": {
"type": "array",
"description": "корты клуба"
},
"options": {
"type": "object",
"properties": {
"default_cancelation_time": {
"type": "number",
"description": "время в секундах для бесплатной отмены бронирования. Считает от даты старта бронирования. 0 - нет бесплатной отмены"
}
},
"description": "настройки клуба в Palms. Зависит от бизнес-процессов клуба"
},
"features": {
"type": "object",
"properties": {
"online_payments": {
"type": "boolean",
"description": "доступно онлайн оплата"
}
},
"description": "возможности клуба в Palms. Зависит от интеграции и настроек клуба"
},
"coordinates": {
"type": "object",
"properties": {
"latitude": {
"type": "string",
"description": "широта"
},
"longitude": {
"type": "string",
"description": "долгота"
}
},
"description": "координаты клуба"
},
"images": {
"type": "array",
"description": "изображения клуба"
}
}
},
{
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор клуба"
},
"title": {
"type": "string",
"description": "название клуба"
},
"subtitle": {
"type": "string",
"description": "видовое описание клуба"
},
"description": {
"type": "string",
"description": "описание клуба. Что он говорит о себе"
},
"prices": {
"type": "string",
"description": "форматированный текст в markdown с ценами клуба"
},
"working_hours_tag": {
"type": "string",
"description": "короткая строка с режимом работы клуба"
},
"pricing_tag": {
"type": "string"
},
"address_tag": {
"type": "string"
},
"contact_phone": {
"type": "string"
},
"contact_phone_two": {
"type": "string"
},
"contact_email": {
"type": "string"
},
"free_services": {
"type": "string",
"description": "описание бесплатный услуг в markdown"
},
"additional_services": {
"type": "string",
"description": "описание дополнительных услуг в markdown"
},
"rules": {
"type": "string",
"description": "описание правил клуба в markdown"
},
"facebook_title": {
"type": "string",
"description": "название FB страницы клуба"
},
"facebook_link": {
"type": "string",
"description": "ссылка на FB страницу клуба"
},
"areas": {
"type": "array",
"description": "корты клуба"
},
"options": {
"type": "object",
"properties": {
"default_cancelation_time": {
"type": "number",
"description": "время в секундах для бесплатной отмены бронирования. Считает от даты старта бронирования. 0 - нет бесплатной отмены"
}
},
"description": "настройки клуба в Palms. Зависит от бизнес-процессов клуба"
},
"features": {
"type": "object",
"properties": {
"online_payments": {
"type": "boolean",
"description": "доступно онлайн оплата"
}
},
"description": "возможности клуба в Palms. Зависит от интеграции и настроек клуба"
},
"coordinates": {
"type": "object",
"properties": {
"latitude": {
"type": "string",
"description": "широта"
},
"longitude": {
"type": "string",
"description": "долгота"
}
},
"description": "координаты клуба"
},
"images": {
"type": "array",
"description": "изображения клуба"
}
}
}
]
}
}
}
Получить информацию о клубе ¶
Получить информацию о клубеGET/clubs/{id}
Example URI
- id
number
(required) Example: 10идентификатор клуба
200
Headers
Content-Type: application/json
Body
{
"data": {
"id": 1,
"title": "Palms club",
"subtitle": "Теннисный клуб",
"description": "На линии корта сомкнулись ракетки, Хотелось бы форхенд, но мяч попал в сетку",
"prices": "Форматированный текст в markdown с ценами клуба",
"working_hours_tag": "7:00 - 23:00 без выходных",
"pricing_tag": "270 - 530 грн/час",
"address_tag": "Киев, ул. Академика Ботичелли, 3А",
"contact_phone": "+380441234567",
"contact_phone_two": "+380987654321",
"contact_email": "hello@palms.tennis",
"free_services": "Описание бесплатный услуг в markdown",
"additional_services": "Описание дополнительных услуг в markdown",
"rules": "описание правил клуба в markdown",
"facebook_title": "Теннисный клуб \"Palms\"",
"facebook_link": "https://www.facebook.com/sasha.goreniuk",
"areas": [
{
"id": 1,
"title": "Корт 1",
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z",
"parameters": {
"covering_type": "hard",
"parameter_2": "value"
}
}
],
"options": {
"default_cancelation_time": 10800
},
"features": {
"online_payments": true
},
"coordinates": {
"latitude": "50.26421",
"longitude": "30.31432"
},
"images": [
"https://domain.com",
"https://domain.com",
"https://domain.com",
"https://domain.com"
]
}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор клуба"
},
"title": {
"type": "string",
"description": "название клуба"
},
"subtitle": {
"type": "string",
"description": "видовое описание клуба"
},
"description": {
"type": "string",
"description": "описание клуба. Что он говорит о себе"
},
"prices": {
"type": "string",
"description": "форматированный текст в markdown с ценами клуба"
},
"working_hours_tag": {
"type": "string",
"description": "короткая строка с режимом работы клуба"
},
"pricing_tag": {
"type": "string"
},
"address_tag": {
"type": "string"
},
"contact_phone": {
"type": "string"
},
"contact_phone_two": {
"type": "string"
},
"contact_email": {
"type": "string"
},
"free_services": {
"type": "string",
"description": "описание бесплатный услуг в markdown"
},
"additional_services": {
"type": "string",
"description": "описание дополнительных услуг в markdown"
},
"rules": {
"type": "string",
"description": "описание правил клуба в markdown"
},
"facebook_title": {
"type": "string",
"description": "название FB страницы клуба"
},
"facebook_link": {
"type": "string",
"description": "ссылка на FB страницу клуба"
},
"areas": {
"type": "array",
"description": "корты клуба"
},
"options": {
"type": "object",
"properties": {
"default_cancelation_time": {
"type": "number",
"description": "время в секундах для бесплатной отмены бронирования. Считает от даты старта бронирования. 0 - нет бесплатной отмены"
}
},
"description": "настройки клуба в Palms. Зависит от бизнес-процессов клуба"
},
"features": {
"type": "object",
"properties": {
"online_payments": {
"type": "boolean",
"description": "доступно онлайн оплата"
}
},
"description": "возможности клуба в Palms. Зависит от интеграции и настроек клуба"
},
"coordinates": {
"type": "object",
"properties": {
"latitude": {
"type": "string",
"description": "широта"
},
"longitude": {
"type": "string",
"description": "долгота"
}
},
"description": "координаты клуба"
},
"images": {
"type": "array",
"description": "изображения клуба"
}
},
"required": [
"id",
"title",
"subtitle",
"description",
"prices",
"working_hours_tag",
"pricing_tag",
"address_tag",
"contact_phone",
"contact_phone_two",
"contact_email",
"free_services",
"additional_services",
"rules",
"facebook_title",
"facebook_link",
"areas",
"options",
"features",
"coordinates",
"images"
],
"additionalProperties": false
}
}
}
Слоты бронирования ¶
Слот - это ячейка времени на корте, которую игрок может забронировать для игры.
Статусы
Слот бронирования может иметь ряд статусов.
Статус | Описание |
---|---|
AVAILABLE |
слот доступен для бронирования в Palms |
BOOKED |
слот забронирован через Palms |
DISABLED |
слот недоступен для бронирования |
Игроки Palms видят слоты со статусом AVAILABLE
.
Статус BOOKED
ставится автоматически, когда игрок бронирует слот через Palms.
Получить список ¶
Получить списокGET/slots{?page_size,page,date_from,date_to,club_id,city_id,area_type_id}
Example URI
- page_size
number
(optional) Example: 10количество записей на странице
- page
number
(optional) Example: 1номер страницы
- date_from
string
(required) Example: 2019-05-12вернуть слоты начиная с этой даты
- date_to
string
(required) Example: 2019-05-13вернуть слоты заканчивая этой датой
- club_id
number
(optional) Example: 1фильтровать по id клуба
- city_id
number
(optional) Example: 1фильтровать по id города
- area_type_id
number
(required) Example: 1тип помещения
Headers
Content-Type: application/json
Authorization: Bearer XXXXX
200
Headers
Content-Type: application/json
Body
{
"meta": {
"pagination": {
"total_number": 22,
"current_page": 1,
"total_pages": 2,
"page_size": 20
}
},
"data": [
{
"id": 1,
"date_from": "2019-08-23T12:23:23+00:00Z",
"date_to": "2019-08-23T12:23:23+00:00Z",
"status": "AVAILABLE",
"price": 20000,
"currency": "UAH",
"area": {
"id": 1,
"title": "Корт 1",
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z",
"parameters": {
"covering_type": "hard",
"parameter_2": "value"
}
},
"club": {
"id": 1,
"title": "Palms club",
"subtitle": "Теннисный клуб",
"description": "На линии корта сомкнулись ракетки, Хотелось бы форхенд, но мяч попал в сетку",
"prices": "Форматированный текст в markdown с ценами клуба",
"working_hours_tag": "7:00 - 23:00 без выходных",
"pricing_tag": "270 - 530 грн/час",
"address_tag": "Киев, ул. Академика Ботичелли, 3А",
"contact_phone": "+380441234567",
"contact_phone_two": "+380987654321",
"contact_email": "hello@palms.tennis",
"free_services": "Описание бесплатный услуг в markdown",
"additional_services": "Описание дополнительных услуг в markdown",
"rules": "описание правил клуба в markdown",
"facebook_title": "Теннисный клуб \"Palms\"",
"facebook_link": "https://www.facebook.com/sasha.goreniuk",
"areas": [
{
"id": 1,
"title": "Корт 1",
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z",
"parameters": {
"covering_type": "hard",
"parameter_2": "value"
}
}
],
"options": {
"default_cancelation_time": 10800
},
"features": {
"online_payments": true
},
"coordinates": {
"latitude": "50.26421",
"longitude": "30.31432"
},
"images": [
"https://domain.com",
"https://domain.com",
"https://domain.com",
"https://domain.com"
]
},
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z"
},
{
"id": 1,
"date_from": "2019-08-23T12:23:23+00:00Z",
"date_to": "2019-08-23T12:23:23+00:00Z",
"status": "AVAILABLE",
"price": 20000,
"currency": "UAH",
"area": {
"id": 1,
"title": "Корт 1",
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z",
"parameters": {
"covering_type": "hard",
"parameter_2": "value"
}
},
"club": {
"id": 1,
"title": "Palms club",
"subtitle": "Теннисный клуб",
"description": "На линии корта сомкнулись ракетки, Хотелось бы форхенд, но мяч попал в сетку",
"prices": "Форматированный текст в markdown с ценами клуба",
"working_hours_tag": "7:00 - 23:00 без выходных",
"pricing_tag": "270 - 530 грн/час",
"address_tag": "Киев, ул. Академика Ботичелли, 3А",
"contact_phone": "+380441234567",
"contact_phone_two": "+380987654321",
"contact_email": "hello@palms.tennis",
"free_services": "Описание бесплатный услуг в markdown",
"additional_services": "Описание дополнительных услуг в markdown",
"rules": "описание правил клуба в markdown",
"facebook_title": "Теннисный клуб \"Palms\"",
"facebook_link": "https://www.facebook.com/sasha.goreniuk",
"areas": [
{
"id": 1,
"title": "Корт 1",
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z",
"parameters": {
"covering_type": "hard",
"parameter_2": "value"
}
}
],
"options": {
"default_cancelation_time": 10800
},
"features": {
"online_payments": true
},
"coordinates": {
"latitude": "50.26421",
"longitude": "30.31432"
},
"images": [
"https://domain.com",
"https://domain.com",
"https://domain.com",
"https://domain.com"
]
},
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z"
},
{
"id": 1,
"date_from": "2019-08-23T12:23:23+00:00Z",
"date_to": "2019-08-23T12:23:23+00:00Z",
"status": "AVAILABLE",
"price": 20000,
"currency": "UAH",
"area": {
"id": 1,
"title": "Корт 1",
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z",
"parameters": {
"covering_type": "hard",
"parameter_2": "value"
}
},
"club": {
"id": 1,
"title": "Palms club",
"subtitle": "Теннисный клуб",
"description": "На линии корта сомкнулись ракетки, Хотелось бы форхенд, но мяч попал в сетку",
"prices": "Форматированный текст в markdown с ценами клуба",
"working_hours_tag": "7:00 - 23:00 без выходных",
"pricing_tag": "270 - 530 грн/час",
"address_tag": "Киев, ул. Академика Ботичелли, 3А",
"contact_phone": "+380441234567",
"contact_phone_two": "+380987654321",
"contact_email": "hello@palms.tennis",
"free_services": "Описание бесплатный услуг в markdown",
"additional_services": "Описание дополнительных услуг в markdown",
"rules": "описание правил клуба в markdown",
"facebook_title": "Теннисный клуб \"Palms\"",
"facebook_link": "https://www.facebook.com/sasha.goreniuk",
"areas": [
{
"id": 1,
"title": "Корт 1",
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z",
"parameters": {
"covering_type": "hard",
"parameter_2": "value"
}
}
],
"options": {
"default_cancelation_time": 10800
},
"features": {
"online_payments": true
},
"coordinates": {
"latitude": "50.26421",
"longitude": "30.31432"
},
"images": [
"https://domain.com",
"https://domain.com",
"https://domain.com",
"https://domain.com"
]
},
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z"
}
]
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"meta": {
"type": "object",
"properties": {
"pagination": {
"type": "object",
"properties": {
"total_number": {
"type": "number",
"description": "общее количество сущностей"
},
"current_page": {
"type": "number",
"description": "текущая страница"
},
"total_pages": {
"type": "number",
"description": "всего страниц"
},
"page_size": {
"type": "number",
"description": "записей на страницу"
}
}
}
}
},
"data": {
"type": "array",
"items": [
{
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор слота"
},
"date_from": {
"type": "string",
"description": "дата и время начала слота"
},
"date_to": {
"type": "string",
"description": "дата и время окончания слота"
},
"status": {
"type": "string",
"enum": [
"AVAILABLE",
"BOOKED",
"DISABLED",
"AVAILABLE"
],
"description": "статус слота"
},
"price": {
"type": "number",
"description": "стоимость бронирования. Целое число без запятых (20000 - 200.00)"
},
"currency": {
"type": "string",
"description": "валюта стоимости."
},
"area": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор корта"
},
"title": {
"type": "string",
"description": "название корта"
},
"created_at": {
"type": "string",
"description": "дата создания"
},
"updated_at": {
"type": "string",
"description": "дата последнего обновления"
},
"parameters": {
"type": "object",
"properties": {
"covering_type": {
"type": "string"
},
"parameter_2": {
"type": "string"
}
},
"description": "параметры корта. значения и ключи управляются из админки Palms."
}
},
"description": "корт, к которому относится слот"
},
"club": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор клуба"
},
"title": {
"type": "string",
"description": "название клуба"
},
"subtitle": {
"type": "string",
"description": "видовое описание клуба"
},
"description": {
"type": "string",
"description": "описание клуба. Что он говорит о себе"
},
"prices": {
"type": "string",
"description": "форматированный текст в markdown с ценами клуба"
},
"working_hours_tag": {
"type": "string",
"description": "короткая строка с режимом работы клуба"
},
"pricing_tag": {
"type": "string"
},
"address_tag": {
"type": "string"
},
"contact_phone": {
"type": "string"
},
"contact_phone_two": {
"type": "string"
},
"contact_email": {
"type": "string"
},
"free_services": {
"type": "string",
"description": "описание бесплатный услуг в markdown"
},
"additional_services": {
"type": "string",
"description": "описание дополнительных услуг в markdown"
},
"rules": {
"type": "string",
"description": "описание правил клуба в markdown"
},
"facebook_title": {
"type": "string",
"description": "название FB страницы клуба"
},
"facebook_link": {
"type": "string",
"description": "ссылка на FB страницу клуба"
},
"areas": {
"type": "array",
"description": "корты клуба"
},
"options": {
"type": "object",
"properties": {
"default_cancelation_time": {
"type": "number",
"description": "время в секундах для бесплатной отмены бронирования. Считает от даты старта бронирования. 0 - нет бесплатной отмены"
}
},
"description": "настройки клуба в Palms. Зависит от бизнес-процессов клуба"
},
"features": {
"type": "object",
"properties": {
"online_payments": {
"type": "boolean",
"description": "доступно онлайн оплата"
}
},
"description": "возможности клуба в Palms. Зависит от интеграции и настроек клуба"
},
"coordinates": {
"type": "object",
"properties": {
"latitude": {
"type": "string",
"description": "широта"
},
"longitude": {
"type": "string",
"description": "долгота"
}
},
"description": "координаты клуба"
},
"images": {
"type": "array",
"description": "изображения клуба"
}
},
"description": "корт, к которому относится слот"
},
"created_at": {
"type": "string",
"description": "дата создания"
},
"updated_at": {
"type": "string",
"description": "дата последнего обновления"
}
}
},
{
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор слота"
},
"date_from": {
"type": "string",
"description": "дата и время начала слота"
},
"date_to": {
"type": "string",
"description": "дата и время окончания слота"
},
"status": {
"type": "string",
"enum": [
"AVAILABLE",
"BOOKED",
"DISABLED",
"AVAILABLE"
],
"description": "статус слота"
},
"price": {
"type": "number",
"description": "стоимость бронирования. Целое число без запятых (20000 - 200.00)"
},
"currency": {
"type": "string",
"description": "валюта стоимости."
},
"area": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор корта"
},
"title": {
"type": "string",
"description": "название корта"
},
"created_at": {
"type": "string",
"description": "дата создания"
},
"updated_at": {
"type": "string",
"description": "дата последнего обновления"
},
"parameters": {
"type": "object",
"properties": {
"covering_type": {
"type": "string"
},
"parameter_2": {
"type": "string"
}
},
"description": "параметры корта. значения и ключи управляются из админки Palms."
}
},
"description": "корт, к которому относится слот"
},
"club": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор клуба"
},
"title": {
"type": "string",
"description": "название клуба"
},
"subtitle": {
"type": "string",
"description": "видовое описание клуба"
},
"description": {
"type": "string",
"description": "описание клуба. Что он говорит о себе"
},
"prices": {
"type": "string",
"description": "форматированный текст в markdown с ценами клуба"
},
"working_hours_tag": {
"type": "string",
"description": "короткая строка с режимом работы клуба"
},
"pricing_tag": {
"type": "string"
},
"address_tag": {
"type": "string"
},
"contact_phone": {
"type": "string"
},
"contact_phone_two": {
"type": "string"
},
"contact_email": {
"type": "string"
},
"free_services": {
"type": "string",
"description": "описание бесплатный услуг в markdown"
},
"additional_services": {
"type": "string",
"description": "описание дополнительных услуг в markdown"
},
"rules": {
"type": "string",
"description": "описание правил клуба в markdown"
},
"facebook_title": {
"type": "string",
"description": "название FB страницы клуба"
},
"facebook_link": {
"type": "string",
"description": "ссылка на FB страницу клуба"
},
"areas": {
"type": "array",
"description": "корты клуба"
},
"options": {
"type": "object",
"properties": {
"default_cancelation_time": {
"type": "number",
"description": "время в секундах для бесплатной отмены бронирования. Считает от даты старта бронирования. 0 - нет бесплатной отмены"
}
},
"description": "настройки клуба в Palms. Зависит от бизнес-процессов клуба"
},
"features": {
"type": "object",
"properties": {
"online_payments": {
"type": "boolean",
"description": "доступно онлайн оплата"
}
},
"description": "возможности клуба в Palms. Зависит от интеграции и настроек клуба"
},
"coordinates": {
"type": "object",
"properties": {
"latitude": {
"type": "string",
"description": "широта"
},
"longitude": {
"type": "string",
"description": "долгота"
}
},
"description": "координаты клуба"
},
"images": {
"type": "array",
"description": "изображения клуба"
}
},
"description": "корт, к которому относится слот"
},
"created_at": {
"type": "string",
"description": "дата создания"
},
"updated_at": {
"type": "string",
"description": "дата последнего обновления"
}
}
},
{
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор слота"
},
"date_from": {
"type": "string",
"description": "дата и время начала слота"
},
"date_to": {
"type": "string",
"description": "дата и время окончания слота"
},
"status": {
"type": "string",
"enum": [
"AVAILABLE",
"BOOKED",
"DISABLED",
"AVAILABLE"
],
"description": "статус слота"
},
"price": {
"type": "number",
"description": "стоимость бронирования. Целое число без запятых (20000 - 200.00)"
},
"currency": {
"type": "string",
"description": "валюта стоимости."
},
"area": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор корта"
},
"title": {
"type": "string",
"description": "название корта"
},
"created_at": {
"type": "string",
"description": "дата создания"
},
"updated_at": {
"type": "string",
"description": "дата последнего обновления"
},
"parameters": {
"type": "object",
"properties": {
"covering_type": {
"type": "string"
},
"parameter_2": {
"type": "string"
}
},
"description": "параметры корта. значения и ключи управляются из админки Palms."
}
},
"description": "корт, к которому относится слот"
},
"club": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор клуба"
},
"title": {
"type": "string",
"description": "название клуба"
},
"subtitle": {
"type": "string",
"description": "видовое описание клуба"
},
"description": {
"type": "string",
"description": "описание клуба. Что он говорит о себе"
},
"prices": {
"type": "string",
"description": "форматированный текст в markdown с ценами клуба"
},
"working_hours_tag": {
"type": "string",
"description": "короткая строка с режимом работы клуба"
},
"pricing_tag": {
"type": "string"
},
"address_tag": {
"type": "string"
},
"contact_phone": {
"type": "string"
},
"contact_phone_two": {
"type": "string"
},
"contact_email": {
"type": "string"
},
"free_services": {
"type": "string",
"description": "описание бесплатный услуг в markdown"
},
"additional_services": {
"type": "string",
"description": "описание дополнительных услуг в markdown"
},
"rules": {
"type": "string",
"description": "описание правил клуба в markdown"
},
"facebook_title": {
"type": "string",
"description": "название FB страницы клуба"
},
"facebook_link": {
"type": "string",
"description": "ссылка на FB страницу клуба"
},
"areas": {
"type": "array",
"description": "корты клуба"
},
"options": {
"type": "object",
"properties": {
"default_cancelation_time": {
"type": "number",
"description": "время в секундах для бесплатной отмены бронирования. Считает от даты старта бронирования. 0 - нет бесплатной отмены"
}
},
"description": "настройки клуба в Palms. Зависит от бизнес-процессов клуба"
},
"features": {
"type": "object",
"properties": {
"online_payments": {
"type": "boolean",
"description": "доступно онлайн оплата"
}
},
"description": "возможности клуба в Palms. Зависит от интеграции и настроек клуба"
},
"coordinates": {
"type": "object",
"properties": {
"latitude": {
"type": "string",
"description": "широта"
},
"longitude": {
"type": "string",
"description": "долгота"
}
},
"description": "координаты клуба"
},
"images": {
"type": "array",
"description": "изображения клуба"
}
},
"description": "корт, к которому относится слот"
},
"created_at": {
"type": "string",
"description": "дата создания"
},
"updated_at": {
"type": "string",
"description": "дата последнего обновления"
}
}
}
]
}
}
}
Получить слот по ID ¶
Получить слот по IDGET/slots/{id}
Example URI
- id
number
(required) Example: 10идентификатор слота бронирования
Headers
Content-Type: application/json
Authorization: Bearer XXXXX
200
Headers
Content-Type: application/json
Body
{
"data": {
"id": 1,
"date_from": "2019-08-23T12:23:23+00:00Z",
"date_to": "2019-08-23T12:23:23+00:00Z",
"status": "AVAILABLE",
"price": 20000,
"currency": "UAH",
"area": {
"id": 1,
"title": "Корт 1",
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z",
"parameters": {
"covering_type": "hard",
"parameter_2": "value"
}
},
"club": {
"id": 1,
"title": "Palms club",
"subtitle": "Теннисный клуб",
"description": "На линии корта сомкнулись ракетки, Хотелось бы форхенд, но мяч попал в сетку",
"prices": "Форматированный текст в markdown с ценами клуба",
"working_hours_tag": "7:00 - 23:00 без выходных",
"pricing_tag": "270 - 530 грн/час",
"address_tag": "Киев, ул. Академика Ботичелли, 3А",
"contact_phone": "+380441234567",
"contact_phone_two": "+380987654321",
"contact_email": "hello@palms.tennis",
"free_services": "Описание бесплатный услуг в markdown",
"additional_services": "Описание дополнительных услуг в markdown",
"rules": "описание правил клуба в markdown",
"facebook_title": "Теннисный клуб \"Palms\"",
"facebook_link": "https://www.facebook.com/sasha.goreniuk",
"areas": [
{
"id": 1,
"title": "Корт 1",
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z",
"parameters": {
"covering_type": "hard",
"parameter_2": "value"
}
}
],
"options": {
"default_cancelation_time": 10800
},
"features": {
"online_payments": true
},
"coordinates": {
"latitude": "50.26421",
"longitude": "30.31432"
},
"images": [
"https://domain.com",
"https://domain.com",
"https://domain.com",
"https://domain.com"
]
},
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z"
}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор слота"
},
"date_from": {
"type": "string",
"description": "дата и время начала слота"
},
"date_to": {
"type": "string",
"description": "дата и время окончания слота"
},
"status": {
"type": "string",
"enum": [
"AVAILABLE",
"BOOKED",
"DISABLED",
"AVAILABLE"
],
"description": "статус слота"
},
"price": {
"type": "number",
"description": "стоимость бронирования. Целое число без запятых (20000 - 200.00)"
},
"currency": {
"type": "string",
"description": "валюта стоимости."
},
"area": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор корта"
},
"title": {
"type": "string",
"description": "название корта"
},
"created_at": {
"type": "string",
"description": "дата создания"
},
"updated_at": {
"type": "string",
"description": "дата последнего обновления"
},
"parameters": {
"type": "object",
"properties": {
"covering_type": {
"type": "string"
},
"parameter_2": {
"type": "string"
}
},
"description": "параметры корта. значения и ключи управляются из админки Palms."
}
},
"description": "корт, к которому относится слот"
},
"club": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор клуба"
},
"title": {
"type": "string",
"description": "название клуба"
},
"subtitle": {
"type": "string",
"description": "видовое описание клуба"
},
"description": {
"type": "string",
"description": "описание клуба. Что он говорит о себе"
},
"prices": {
"type": "string",
"description": "форматированный текст в markdown с ценами клуба"
},
"working_hours_tag": {
"type": "string",
"description": "короткая строка с режимом работы клуба"
},
"pricing_tag": {
"type": "string"
},
"address_tag": {
"type": "string"
},
"contact_phone": {
"type": "string"
},
"contact_phone_two": {
"type": "string"
},
"contact_email": {
"type": "string"
},
"free_services": {
"type": "string",
"description": "описание бесплатный услуг в markdown"
},
"additional_services": {
"type": "string",
"description": "описание дополнительных услуг в markdown"
},
"rules": {
"type": "string",
"description": "описание правил клуба в markdown"
},
"facebook_title": {
"type": "string",
"description": "название FB страницы клуба"
},
"facebook_link": {
"type": "string",
"description": "ссылка на FB страницу клуба"
},
"areas": {
"type": "array",
"description": "корты клуба"
},
"options": {
"type": "object",
"properties": {
"default_cancelation_time": {
"type": "number",
"description": "время в секундах для бесплатной отмены бронирования. Считает от даты старта бронирования. 0 - нет бесплатной отмены"
}
},
"description": "настройки клуба в Palms. Зависит от бизнес-процессов клуба"
},
"features": {
"type": "object",
"properties": {
"online_payments": {
"type": "boolean",
"description": "доступно онлайн оплата"
}
},
"description": "возможности клуба в Palms. Зависит от интеграции и настроек клуба"
},
"coordinates": {
"type": "object",
"properties": {
"latitude": {
"type": "string",
"description": "широта"
},
"longitude": {
"type": "string",
"description": "долгота"
}
},
"description": "координаты клуба"
},
"images": {
"type": "array",
"description": "изображения клуба"
}
},
"description": "корт, к которому относится слот"
},
"created_at": {
"type": "string",
"description": "дата создания"
},
"updated_at": {
"type": "string",
"description": "дата последнего обновления"
}
},
"required": [
"id",
"date_from",
"date_to",
"status",
"price",
"currency",
"area",
"club",
"created_at",
"updated_at"
],
"additionalProperties": false
}
}
}
Бронирование ¶
Бронирование - заявка на игру. Она включает время, клуб, корт и цену. Это основная сущность системы и главная модель. Любая игра через Palms - это бронирование.
Получить мои бронирования ¶
Получить мои бронированияGET/user/bookings{?page_size,page,club_id,area_type_id,booking_source}
Example URI
- page_size
number
(optional) Example: 10количество записей на странице
- page
number
(optional) Example: 1номер страницы
- club_id
number
(optional) Example: 1фильтровать по id клуба
- area_type_id
number
(optional) Example: 1тип помещения
- booking_source
string
(optional) Example: PALMSисточник бронирования
Headers
Content-Type: application/json
Authorization: Bearer XXXXX
200
Headers
Content-Type: application/json
Body
{
"meta": {
"pagination": {
"total_number": 22,
"current_page": 1,
"total_pages": 2,
"page_size": 20
}
},
"data": [
{
"id": 1,
"slot": {
"id": 1,
"date_from": "2019-08-23T12:23:23+00:00Z",
"date_to": "2019-08-23T12:23:23+00:00Z",
"status": "AVAILABLE",
"price": 20000,
"currency": "UAH",
"area": {
"id": 1,
"title": "Корт 1",
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z",
"parameters": {
"covering_type": "hard",
"parameter_2": "value"
}
},
"club": {
"id": 1,
"title": "Palms club",
"subtitle": "Теннисный клуб",
"description": "На линии корта сомкнулись ракетки, Хотелось бы форхенд, но мяч попал в сетку",
"prices": "Форматированный текст в markdown с ценами клуба",
"working_hours_tag": "7:00 - 23:00 без выходных",
"pricing_tag": "270 - 530 грн/час",
"address_tag": "Киев, ул. Академика Ботичелли, 3А",
"contact_phone": "+380441234567",
"contact_phone_two": "+380987654321",
"contact_email": "hello@palms.tennis",
"free_services": "Описание бесплатный услуг в markdown",
"additional_services": "Описание дополнительных услуг в markdown",
"rules": "описание правил клуба в markdown",
"facebook_title": "Теннисный клуб \"Palms\"",
"facebook_link": "https://www.facebook.com/sasha.goreniuk",
"areas": [
{
"id": 1,
"title": "Корт 1",
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z",
"parameters": {
"covering_type": "hard",
"parameter_2": "value"
}
}
],
"options": {
"default_cancelation_time": 10800
},
"features": {
"online_payments": true
},
"coordinates": {
"latitude": "50.26421",
"longitude": "30.31432"
},
"images": [
"https://domain.com",
"https://domain.com",
"https://domain.com",
"https://domain.com"
]
},
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z"
},
"status": "CONFIRMED",
"user": 3,
"booking_set": 1,
"created_at": "2019-05-23T10:44:01.881000+03:00",
"reason": "it's just okay",
"area": {
"id": 1,
"title": "Корт 1",
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z",
"parameters": {
"covering_type": "hard",
"parameter_2": "value"
}
},
"club": {
"id": 1,
"title": "Palms club",
"subtitle": "Теннисный клуб",
"description": "На линии корта сомкнулись ракетки, Хотелось бы форхенд, но мяч попал в сетку",
"prices": "Форматированный текст в markdown с ценами клуба",
"working_hours_tag": "7:00 - 23:00 без выходных",
"pricing_tag": "270 - 530 грн/час",
"address_tag": "Киев, ул. Академика Ботичелли, 3А",
"contact_phone": "+380441234567",
"contact_phone_two": "+380987654321",
"contact_email": "hello@palms.tennis",
"free_services": "Описание бесплатный услуг в markdown",
"additional_services": "Описание дополнительных услуг в markdown",
"rules": "описание правил клуба в markdown",
"facebook_title": "Теннисный клуб \"Palms\"",
"facebook_link": "https://www.facebook.com/sasha.goreniuk",
"areas": [
{
"id": 1,
"title": "Корт 1",
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z",
"parameters": {
"covering_type": "hard",
"parameter_2": "value"
}
}
],
"options": {
"default_cancelation_time": 10800
},
"features": {
"online_payments": true
},
"coordinates": {
"latitude": "50.26421",
"longitude": "30.31432"
},
"images": [
"https://domain.com",
"https://domain.com",
"https://domain.com",
"https://domain.com"
]
},
"payment": {
"id": 1,
"type": "AUTH",
"checkout_url": "https://fondy.com/checkout_url",
"ipsp_id": "ipsp_id_eg_1",
"ipsp_type": "fondy",
"amount": 120,
"currency": "UAH",
"status": "CREATED",
"card": {
"id": 1,
"mask": "443322*1234",
"bin": "443322",
"user_id": 1,
"expires_at": "2019-08-10T00:00:00",
"created_at": "2019-08-10T00:00:00"
},
"created_at": "2019-08-10T00:00:00",
"processed_at": "2019-08-10T00:00:00",
"updated_at": "2019-08-10T00:00:00"
}
},
{
"id": 1,
"slot": {
"id": 1,
"date_from": "2019-08-23T12:23:23+00:00Z",
"date_to": "2019-08-23T12:23:23+00:00Z",
"status": "AVAILABLE",
"price": 20000,
"currency": "UAH",
"area": {
"id": 1,
"title": "Корт 1",
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z",
"parameters": {
"covering_type": "hard",
"parameter_2": "value"
}
},
"club": {
"id": 1,
"title": "Palms club",
"subtitle": "Теннисный клуб",
"description": "На линии корта сомкнулись ракетки, Хотелось бы форхенд, но мяч попал в сетку",
"prices": "Форматированный текст в markdown с ценами клуба",
"working_hours_tag": "7:00 - 23:00 без выходных",
"pricing_tag": "270 - 530 грн/час",
"address_tag": "Киев, ул. Академика Ботичелли, 3А",
"contact_phone": "+380441234567",
"contact_phone_two": "+380987654321",
"contact_email": "hello@palms.tennis",
"free_services": "Описание бесплатный услуг в markdown",
"additional_services": "Описание дополнительных услуг в markdown",
"rules": "описание правил клуба в markdown",
"facebook_title": "Теннисный клуб \"Palms\"",
"facebook_link": "https://www.facebook.com/sasha.goreniuk",
"areas": [
{
"id": 1,
"title": "Корт 1",
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z",
"parameters": {
"covering_type": "hard",
"parameter_2": "value"
}
}
],
"options": {
"default_cancelation_time": 10800
},
"features": {
"online_payments": true
},
"coordinates": {
"latitude": "50.26421",
"longitude": "30.31432"
},
"images": [
"https://domain.com",
"https://domain.com",
"https://domain.com",
"https://domain.com"
]
},
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z"
},
"status": "CONFIRMED",
"user": 3,
"booking_set": 1,
"created_at": "2019-05-23T10:44:01.881000+03:00",
"reason": "it's just okay",
"area": {
"id": 1,
"title": "Корт 1",
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z",
"parameters": {
"covering_type": "hard",
"parameter_2": "value"
}
},
"club": {
"id": 1,
"title": "Palms club",
"subtitle": "Теннисный клуб",
"description": "На линии корта сомкнулись ракетки, Хотелось бы форхенд, но мяч попал в сетку",
"prices": "Форматированный текст в markdown с ценами клуба",
"working_hours_tag": "7:00 - 23:00 без выходных",
"pricing_tag": "270 - 530 грн/час",
"address_tag": "Киев, ул. Академика Ботичелли, 3А",
"contact_phone": "+380441234567",
"contact_phone_two": "+380987654321",
"contact_email": "hello@palms.tennis",
"free_services": "Описание бесплатный услуг в markdown",
"additional_services": "Описание дополнительных услуг в markdown",
"rules": "описание правил клуба в markdown",
"facebook_title": "Теннисный клуб \"Palms\"",
"facebook_link": "https://www.facebook.com/sasha.goreniuk",
"areas": [
{
"id": 1,
"title": "Корт 1",
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z",
"parameters": {
"covering_type": "hard",
"parameter_2": "value"
}
}
],
"options": {
"default_cancelation_time": 10800
},
"features": {
"online_payments": true
},
"coordinates": {
"latitude": "50.26421",
"longitude": "30.31432"
},
"images": [
"https://domain.com",
"https://domain.com",
"https://domain.com",
"https://domain.com"
]
},
"payment": {
"id": 1,
"type": "AUTH",
"checkout_url": "https://fondy.com/checkout_url",
"ipsp_id": "ipsp_id_eg_1",
"ipsp_type": "fondy",
"amount": 120,
"currency": "UAH",
"status": "CREATED",
"card": {
"id": 1,
"mask": "443322*1234",
"bin": "443322",
"user_id": 1,
"expires_at": "2019-08-10T00:00:00",
"created_at": "2019-08-10T00:00:00"
},
"created_at": "2019-08-10T00:00:00",
"processed_at": "2019-08-10T00:00:00",
"updated_at": "2019-08-10T00:00:00"
}
}
]
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"meta": {
"type": "object",
"properties": {
"pagination": {
"type": "object",
"properties": {
"total_number": {
"type": "number",
"description": "общее количество сущностей"
},
"current_page": {
"type": "number",
"description": "текущая страница"
},
"total_pages": {
"type": "number",
"description": "всего страниц"
},
"page_size": {
"type": "number",
"description": "записей на страницу"
}
}
}
}
},
"data": {
"type": "array",
"items": [
{
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор бронирования"
},
"slot": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор слота"
},
"date_from": {
"type": "string",
"description": "дата и время начала слота"
},
"date_to": {
"type": "string",
"description": "дата и время окончания слота"
},
"status": {
"type": "string",
"enum": [
"AVAILABLE",
"BOOKED",
"DISABLED",
"AVAILABLE"
],
"description": "статус слота"
},
"price": {
"type": "number",
"description": "стоимость бронирования. Целое число без запятых (20000 - 200.00)"
},
"currency": {
"type": "string",
"description": "валюта стоимости."
},
"area": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор корта"
},
"title": {
"type": "string",
"description": "название корта"
},
"created_at": {
"type": "string",
"description": "дата создания"
},
"updated_at": {
"type": "string",
"description": "дата последнего обновления"
},
"parameters": {
"type": "object",
"properties": {
"covering_type": {
"type": "string"
},
"parameter_2": {
"type": "string"
}
},
"description": "параметры корта. значения и ключи управляются из админки Palms."
}
},
"description": "корт, к которому относится слот"
},
"club": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор клуба"
},
"title": {
"type": "string",
"description": "название клуба"
},
"subtitle": {
"type": "string",
"description": "видовое описание клуба"
},
"description": {
"type": "string",
"description": "описание клуба. Что он говорит о себе"
},
"prices": {
"type": "string",
"description": "форматированный текст в markdown с ценами клуба"
},
"working_hours_tag": {
"type": "string",
"description": "короткая строка с режимом работы клуба"
},
"pricing_tag": {
"type": "string"
},
"address_tag": {
"type": "string"
},
"contact_phone": {
"type": "string"
},
"contact_phone_two": {
"type": "string"
},
"contact_email": {
"type": "string"
},
"free_services": {
"type": "string",
"description": "описание бесплатный услуг в markdown"
},
"additional_services": {
"type": "string",
"description": "описание дополнительных услуг в markdown"
},
"rules": {
"type": "string",
"description": "описание правил клуба в markdown"
},
"facebook_title": {
"type": "string",
"description": "название FB страницы клуба"
},
"facebook_link": {
"type": "string",
"description": "ссылка на FB страницу клуба"
},
"areas": {
"type": "array",
"description": "корты клуба"
},
"options": {
"type": "object",
"properties": {
"default_cancelation_time": {
"type": "number",
"description": "время в секундах для бесплатной отмены бронирования. Считает от даты старта бронирования. 0 - нет бесплатной отмены"
}
},
"description": "настройки клуба в Palms. Зависит от бизнес-процессов клуба"
},
"features": {
"type": "object",
"properties": {
"online_payments": {
"type": "boolean",
"description": "доступно онлайн оплата"
}
},
"description": "возможности клуба в Palms. Зависит от интеграции и настроек клуба"
},
"coordinates": {
"type": "object",
"properties": {
"latitude": {
"type": "string",
"description": "широта"
},
"longitude": {
"type": "string",
"description": "долгота"
}
},
"description": "координаты клуба"
},
"images": {
"type": "array",
"description": "изображения клуба"
}
},
"description": "корт, к которому относится слот"
},
"created_at": {
"type": "string",
"description": "дата создания"
},
"updated_at": {
"type": "string",
"description": "дата последнего обновления"
}
},
"description": "слот бронирования"
},
"status": {
"type": "string",
"enum": [
"REQUESTED",
"APPROVED",
"CONFIRMED",
"CANCELED_BY_CUSTOMER",
"CANCELED_BY_CLUB",
"OTHER",
"SHOWN",
"NOT_SHOWN",
"CONFIRMED"
],
"description": "статус бронирования"
},
"user": {
"type": "number",
"description": "идентификатор пользователя"
},
"booking_set": {
"type": "number",
"description": "идентификатора букинг сета"
},
"created_at": {
"type": "string",
"description": "дата создания бронирования"
},
"reason": {
"type": "string",
"description": "причина изменения статуса бронирования. например причина отмены"
},
"area": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор корта"
},
"title": {
"type": "string",
"description": "название корта"
},
"created_at": {
"type": "string",
"description": "дата создания"
},
"updated_at": {
"type": "string",
"description": "дата последнего обновления"
},
"parameters": {
"type": "object",
"properties": {
"covering_type": {
"type": "string"
},
"parameter_2": {
"type": "string"
}
},
"description": "параметры корта. значения и ключи управляются из админки Palms."
}
},
"description": "корт бронирования"
},
"club": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор клуба"
},
"title": {
"type": "string",
"description": "название клуба"
},
"subtitle": {
"type": "string",
"description": "видовое описание клуба"
},
"description": {
"type": "string",
"description": "описание клуба. Что он говорит о себе"
},
"prices": {
"type": "string",
"description": "форматированный текст в markdown с ценами клуба"
},
"working_hours_tag": {
"type": "string",
"description": "короткая строка с режимом работы клуба"
},
"pricing_tag": {
"type": "string"
},
"address_tag": {
"type": "string"
},
"contact_phone": {
"type": "string"
},
"contact_phone_two": {
"type": "string"
},
"contact_email": {
"type": "string"
},
"free_services": {
"type": "string",
"description": "описание бесплатный услуг в markdown"
},
"additional_services": {
"type": "string",
"description": "описание дополнительных услуг в markdown"
},
"rules": {
"type": "string",
"description": "описание правил клуба в markdown"
},
"facebook_title": {
"type": "string",
"description": "название FB страницы клуба"
},
"facebook_link": {
"type": "string",
"description": "ссылка на FB страницу клуба"
},
"areas": {
"type": "array",
"description": "корты клуба"
},
"options": {
"type": "object",
"properties": {
"default_cancelation_time": {
"type": "number",
"description": "время в секундах для бесплатной отмены бронирования. Считает от даты старта бронирования. 0 - нет бесплатной отмены"
}
},
"description": "настройки клуба в Palms. Зависит от бизнес-процессов клуба"
},
"features": {
"type": "object",
"properties": {
"online_payments": {
"type": "boolean",
"description": "доступно онлайн оплата"
}
},
"description": "возможности клуба в Palms. Зависит от интеграции и настроек клуба"
},
"coordinates": {
"type": "object",
"properties": {
"latitude": {
"type": "string",
"description": "широта"
},
"longitude": {
"type": "string",
"description": "долгота"
}
},
"description": "координаты клуба"
},
"images": {
"type": "array",
"description": "изображения клуба"
}
},
"description": "клуб бронирования"
},
"payment": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "внутренний идентификатор платежа в системе Palms"
},
"type": {
"type": "string",
"enum": [
"AUTH",
"PAYMENT",
"AUTH"
],
"description": "тип платежа"
},
"checkout_url": {
"type": "string",
"description": "адрес страницы Fondy IPSP для добавления новой карты"
},
"ipsp_id": {
"type": "string",
"description": "идентификатор платежа в платежном шлюзе"
},
"ipsp_type": {
"type": "string",
"description": "название IPSP через которых проводился платеж"
},
"amount": {
"type": "number",
"description": "сумма платежа в копейках/центах без разделителей. 120 - 1 грн 20 коп"
},
"currency": {
"type": "string",
"description": "валюта платежа"
},
"status": {
"type": "string",
"enum": [
"CREATED",
"PROCESSING",
"DECLINED",
"APPROVED",
"EXPIRED",
"REVERSED",
"CREATED"
],
"description": "статус транзакции"
},
"card": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "внутренний идентификатор карты в системе Palms"
},
"mask": {
"type": "string",
"description": "маска номера карты (Fondy.masked_card)"
},
"bin": {
"type": "string",
"description": "бин номер карты (Fondy.card_bin)"
},
"user_id": {
"type": "number",
"description": "ID пользователя - владельца карты\n\n<!-- + token: `da39a3ee5e6b4b0d3255bfef95601890afd80709` (string) - токен карты в IPSP (Fondy.rectoken) -->"
},
"expires_at": {
"type": "string",
"description": "время жизни карты (Fondy.rectoken_lifetime)"
},
"created_at": {
"type": "string",
"description": "дата добавления карты\n\n<!-- + deleted_at: `2019-08-10T00:00:00` (string) - дата удаления карты -->"
}
},
"description": "карта с которой была проведена оплата"
},
"created_at": {
"type": "string",
"description": "дата создание платежная"
},
"processed_at": {
"type": "string",
"description": "дата совершения платежа"
},
"updated_at": {
"type": "string",
"description": "последняя дата обновления платежа"
}
},
"description": "информация об оплате бронирования"
}
}
},
{
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор бронирования"
},
"slot": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор слота"
},
"date_from": {
"type": "string",
"description": "дата и время начала слота"
},
"date_to": {
"type": "string",
"description": "дата и время окончания слота"
},
"status": {
"type": "string",
"enum": [
"AVAILABLE",
"BOOKED",
"DISABLED",
"AVAILABLE"
],
"description": "статус слота"
},
"price": {
"type": "number",
"description": "стоимость бронирования. Целое число без запятых (20000 - 200.00)"
},
"currency": {
"type": "string",
"description": "валюта стоимости."
},
"area": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор корта"
},
"title": {
"type": "string",
"description": "название корта"
},
"created_at": {
"type": "string",
"description": "дата создания"
},
"updated_at": {
"type": "string",
"description": "дата последнего обновления"
},
"parameters": {
"type": "object",
"properties": {
"covering_type": {
"type": "string"
},
"parameter_2": {
"type": "string"
}
},
"description": "параметры корта. значения и ключи управляются из админки Palms."
}
},
"description": "корт, к которому относится слот"
},
"club": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор клуба"
},
"title": {
"type": "string",
"description": "название клуба"
},
"subtitle": {
"type": "string",
"description": "видовое описание клуба"
},
"description": {
"type": "string",
"description": "описание клуба. Что он говорит о себе"
},
"prices": {
"type": "string",
"description": "форматированный текст в markdown с ценами клуба"
},
"working_hours_tag": {
"type": "string",
"description": "короткая строка с режимом работы клуба"
},
"pricing_tag": {
"type": "string"
},
"address_tag": {
"type": "string"
},
"contact_phone": {
"type": "string"
},
"contact_phone_two": {
"type": "string"
},
"contact_email": {
"type": "string"
},
"free_services": {
"type": "string",
"description": "описание бесплатный услуг в markdown"
},
"additional_services": {
"type": "string",
"description": "описание дополнительных услуг в markdown"
},
"rules": {
"type": "string",
"description": "описание правил клуба в markdown"
},
"facebook_title": {
"type": "string",
"description": "название FB страницы клуба"
},
"facebook_link": {
"type": "string",
"description": "ссылка на FB страницу клуба"
},
"areas": {
"type": "array",
"description": "корты клуба"
},
"options": {
"type": "object",
"properties": {
"default_cancelation_time": {
"type": "number",
"description": "время в секундах для бесплатной отмены бронирования. Считает от даты старта бронирования. 0 - нет бесплатной отмены"
}
},
"description": "настройки клуба в Palms. Зависит от бизнес-процессов клуба"
},
"features": {
"type": "object",
"properties": {
"online_payments": {
"type": "boolean",
"description": "доступно онлайн оплата"
}
},
"description": "возможности клуба в Palms. Зависит от интеграции и настроек клуба"
},
"coordinates": {
"type": "object",
"properties": {
"latitude": {
"type": "string",
"description": "широта"
},
"longitude": {
"type": "string",
"description": "долгота"
}
},
"description": "координаты клуба"
},
"images": {
"type": "array",
"description": "изображения клуба"
}
},
"description": "корт, к которому относится слот"
},
"created_at": {
"type": "string",
"description": "дата создания"
},
"updated_at": {
"type": "string",
"description": "дата последнего обновления"
}
},
"description": "слот бронирования"
},
"status": {
"type": "string",
"enum": [
"REQUESTED",
"APPROVED",
"CONFIRMED",
"CANCELED_BY_CUSTOMER",
"CANCELED_BY_CLUB",
"OTHER",
"SHOWN",
"NOT_SHOWN",
"CONFIRMED"
],
"description": "статус бронирования"
},
"user": {
"type": "number",
"description": "идентификатор пользователя"
},
"booking_set": {
"type": "number",
"description": "идентификатора букинг сета"
},
"created_at": {
"type": "string",
"description": "дата создания бронирования"
},
"reason": {
"type": "string",
"description": "причина изменения статуса бронирования. например причина отмены"
},
"area": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор корта"
},
"title": {
"type": "string",
"description": "название корта"
},
"created_at": {
"type": "string",
"description": "дата создания"
},
"updated_at": {
"type": "string",
"description": "дата последнего обновления"
},
"parameters": {
"type": "object",
"properties": {
"covering_type": {
"type": "string"
},
"parameter_2": {
"type": "string"
}
},
"description": "параметры корта. значения и ключи управляются из админки Palms."
}
},
"description": "корт бронирования"
},
"club": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор клуба"
},
"title": {
"type": "string",
"description": "название клуба"
},
"subtitle": {
"type": "string",
"description": "видовое описание клуба"
},
"description": {
"type": "string",
"description": "описание клуба. Что он говорит о себе"
},
"prices": {
"type": "string",
"description": "форматированный текст в markdown с ценами клуба"
},
"working_hours_tag": {
"type": "string",
"description": "короткая строка с режимом работы клуба"
},
"pricing_tag": {
"type": "string"
},
"address_tag": {
"type": "string"
},
"contact_phone": {
"type": "string"
},
"contact_phone_two": {
"type": "string"
},
"contact_email": {
"type": "string"
},
"free_services": {
"type": "string",
"description": "описание бесплатный услуг в markdown"
},
"additional_services": {
"type": "string",
"description": "описание дополнительных услуг в markdown"
},
"rules": {
"type": "string",
"description": "описание правил клуба в markdown"
},
"facebook_title": {
"type": "string",
"description": "название FB страницы клуба"
},
"facebook_link": {
"type": "string",
"description": "ссылка на FB страницу клуба"
},
"areas": {
"type": "array",
"description": "корты клуба"
},
"options": {
"type": "object",
"properties": {
"default_cancelation_time": {
"type": "number",
"description": "время в секундах для бесплатной отмены бронирования. Считает от даты старта бронирования. 0 - нет бесплатной отмены"
}
},
"description": "настройки клуба в Palms. Зависит от бизнес-процессов клуба"
},
"features": {
"type": "object",
"properties": {
"online_payments": {
"type": "boolean",
"description": "доступно онлайн оплата"
}
},
"description": "возможности клуба в Palms. Зависит от интеграции и настроек клуба"
},
"coordinates": {
"type": "object",
"properties": {
"latitude": {
"type": "string",
"description": "широта"
},
"longitude": {
"type": "string",
"description": "долгота"
}
},
"description": "координаты клуба"
},
"images": {
"type": "array",
"description": "изображения клуба"
}
},
"description": "клуб бронирования"
},
"payment": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "внутренний идентификатор платежа в системе Palms"
},
"type": {
"type": "string",
"enum": [
"AUTH",
"PAYMENT",
"AUTH"
],
"description": "тип платежа"
},
"checkout_url": {
"type": "string",
"description": "адрес страницы Fondy IPSP для добавления новой карты"
},
"ipsp_id": {
"type": "string",
"description": "идентификатор платежа в платежном шлюзе"
},
"ipsp_type": {
"type": "string",
"description": "название IPSP через которых проводился платеж"
},
"amount": {
"type": "number",
"description": "сумма платежа в копейках/центах без разделителей. 120 - 1 грн 20 коп"
},
"currency": {
"type": "string",
"description": "валюта платежа"
},
"status": {
"type": "string",
"enum": [
"CREATED",
"PROCESSING",
"DECLINED",
"APPROVED",
"EXPIRED",
"REVERSED",
"CREATED"
],
"description": "статус транзакции"
},
"card": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "внутренний идентификатор карты в системе Palms"
},
"mask": {
"type": "string",
"description": "маска номера карты (Fondy.masked_card)"
},
"bin": {
"type": "string",
"description": "бин номер карты (Fondy.card_bin)"
},
"user_id": {
"type": "number",
"description": "ID пользователя - владельца карты\n\n<!-- + token: `da39a3ee5e6b4b0d3255bfef95601890afd80709` (string) - токен карты в IPSP (Fondy.rectoken) -->"
},
"expires_at": {
"type": "string",
"description": "время жизни карты (Fondy.rectoken_lifetime)"
},
"created_at": {
"type": "string",
"description": "дата добавления карты\n\n<!-- + deleted_at: `2019-08-10T00:00:00` (string) - дата удаления карты -->"
}
},
"description": "карта с которой была проведена оплата"
},
"created_at": {
"type": "string",
"description": "дата создание платежная"
},
"processed_at": {
"type": "string",
"description": "дата совершения платежа"
},
"updated_at": {
"type": "string",
"description": "последняя дата обновления платежа"
}
},
"description": "информация об оплате бронирования"
}
}
}
]
}
}
}
Получить данные бронирования ¶
Получить данные бронированияGET/user/bookings/{id}
Example URI
- id
number
(required) Example: 10идентификатор бронирования
Headers
Content-Type: application/json
Authorization: Bearer XXXXX
200
Headers
Content-Type: application/json
Body
{
"data": {
"id": 1,
"slot": {
"id": 1,
"date_from": "2019-08-23T12:23:23+00:00Z",
"date_to": "2019-08-23T12:23:23+00:00Z",
"status": "AVAILABLE",
"price": 20000,
"currency": "UAH",
"area": {
"id": 1,
"title": "Корт 1",
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z",
"parameters": {
"covering_type": "hard",
"parameter_2": "value"
}
},
"club": {
"id": 1,
"title": "Palms club",
"subtitle": "Теннисный клуб",
"description": "На линии корта сомкнулись ракетки, Хотелось бы форхенд, но мяч попал в сетку",
"prices": "Форматированный текст в markdown с ценами клуба",
"working_hours_tag": "7:00 - 23:00 без выходных",
"pricing_tag": "270 - 530 грн/час",
"address_tag": "Киев, ул. Академика Ботичелли, 3А",
"contact_phone": "+380441234567",
"contact_phone_two": "+380987654321",
"contact_email": "hello@palms.tennis",
"free_services": "Описание бесплатный услуг в markdown",
"additional_services": "Описание дополнительных услуг в markdown",
"rules": "описание правил клуба в markdown",
"facebook_title": "Теннисный клуб \"Palms\"",
"facebook_link": "https://www.facebook.com/sasha.goreniuk",
"areas": [
{
"id": 1,
"title": "Корт 1",
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z",
"parameters": {
"covering_type": "hard",
"parameter_2": "value"
}
}
],
"options": {
"default_cancelation_time": 10800
},
"features": {
"online_payments": true
},
"coordinates": {
"latitude": "50.26421",
"longitude": "30.31432"
},
"images": [
"https://domain.com",
"https://domain.com",
"https://domain.com",
"https://domain.com"
]
},
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z"
},
"status": "CONFIRMED",
"user": 3,
"booking_set": 1,
"created_at": "2019-05-23T10:44:01.881000+03:00",
"reason": "it's just okay",
"area": {
"id": 1,
"title": "Корт 1",
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z",
"parameters": {
"covering_type": "hard",
"parameter_2": "value"
}
},
"club": {
"id": 1,
"title": "Palms club",
"subtitle": "Теннисный клуб",
"description": "На линии корта сомкнулись ракетки, Хотелось бы форхенд, но мяч попал в сетку",
"prices": "Форматированный текст в markdown с ценами клуба",
"working_hours_tag": "7:00 - 23:00 без выходных",
"pricing_tag": "270 - 530 грн/час",
"address_tag": "Киев, ул. Академика Ботичелли, 3А",
"contact_phone": "+380441234567",
"contact_phone_two": "+380987654321",
"contact_email": "hello@palms.tennis",
"free_services": "Описание бесплатный услуг в markdown",
"additional_services": "Описание дополнительных услуг в markdown",
"rules": "описание правил клуба в markdown",
"facebook_title": "Теннисный клуб \"Palms\"",
"facebook_link": "https://www.facebook.com/sasha.goreniuk",
"areas": [
{
"id": 1,
"title": "Корт 1",
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z",
"parameters": {
"covering_type": "hard",
"parameter_2": "value"
}
}
],
"options": {
"default_cancelation_time": 10800
},
"features": {
"online_payments": true
},
"coordinates": {
"latitude": "50.26421",
"longitude": "30.31432"
},
"images": [
"https://domain.com",
"https://domain.com",
"https://domain.com",
"https://domain.com"
]
},
"payment": {
"id": 1,
"type": "AUTH",
"checkout_url": "https://fondy.com/checkout_url",
"ipsp_id": "ipsp_id_eg_1",
"ipsp_type": "fondy",
"amount": 120,
"currency": "UAH",
"status": "CREATED",
"card": {
"id": 1,
"mask": "443322*1234",
"bin": "443322",
"user_id": 1,
"expires_at": "2019-08-10T00:00:00",
"created_at": "2019-08-10T00:00:00"
},
"created_at": "2019-08-10T00:00:00",
"processed_at": "2019-08-10T00:00:00",
"updated_at": "2019-08-10T00:00:00"
}
}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор бронирования"
},
"slot": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор слота"
},
"date_from": {
"type": "string",
"description": "дата и время начала слота"
},
"date_to": {
"type": "string",
"description": "дата и время окончания слота"
},
"status": {
"type": "string",
"enum": [
"AVAILABLE",
"BOOKED",
"DISABLED",
"AVAILABLE"
],
"description": "статус слота"
},
"price": {
"type": "number",
"description": "стоимость бронирования. Целое число без запятых (20000 - 200.00)"
},
"currency": {
"type": "string",
"description": "валюта стоимости."
},
"area": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор корта"
},
"title": {
"type": "string",
"description": "название корта"
},
"created_at": {
"type": "string",
"description": "дата создания"
},
"updated_at": {
"type": "string",
"description": "дата последнего обновления"
},
"parameters": {
"type": "object",
"properties": {
"covering_type": {
"type": "string"
},
"parameter_2": {
"type": "string"
}
},
"description": "параметры корта. значения и ключи управляются из админки Palms."
}
},
"description": "корт, к которому относится слот"
},
"club": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор клуба"
},
"title": {
"type": "string",
"description": "название клуба"
},
"subtitle": {
"type": "string",
"description": "видовое описание клуба"
},
"description": {
"type": "string",
"description": "описание клуба. Что он говорит о себе"
},
"prices": {
"type": "string",
"description": "форматированный текст в markdown с ценами клуба"
},
"working_hours_tag": {
"type": "string",
"description": "короткая строка с режимом работы клуба"
},
"pricing_tag": {
"type": "string"
},
"address_tag": {
"type": "string"
},
"contact_phone": {
"type": "string"
},
"contact_phone_two": {
"type": "string"
},
"contact_email": {
"type": "string"
},
"free_services": {
"type": "string",
"description": "описание бесплатный услуг в markdown"
},
"additional_services": {
"type": "string",
"description": "описание дополнительных услуг в markdown"
},
"rules": {
"type": "string",
"description": "описание правил клуба в markdown"
},
"facebook_title": {
"type": "string",
"description": "название FB страницы клуба"
},
"facebook_link": {
"type": "string",
"description": "ссылка на FB страницу клуба"
},
"areas": {
"type": "array",
"description": "корты клуба"
},
"options": {
"type": "object",
"properties": {
"default_cancelation_time": {
"type": "number",
"description": "время в секундах для бесплатной отмены бронирования. Считает от даты старта бронирования. 0 - нет бесплатной отмены"
}
},
"description": "настройки клуба в Palms. Зависит от бизнес-процессов клуба"
},
"features": {
"type": "object",
"properties": {
"online_payments": {
"type": "boolean",
"description": "доступно онлайн оплата"
}
},
"description": "возможности клуба в Palms. Зависит от интеграции и настроек клуба"
},
"coordinates": {
"type": "object",
"properties": {
"latitude": {
"type": "string",
"description": "широта"
},
"longitude": {
"type": "string",
"description": "долгота"
}
},
"description": "координаты клуба"
},
"images": {
"type": "array",
"description": "изображения клуба"
}
},
"description": "корт, к которому относится слот"
},
"created_at": {
"type": "string",
"description": "дата создания"
},
"updated_at": {
"type": "string",
"description": "дата последнего обновления"
}
},
"description": "слот бронирования"
},
"status": {
"type": "string",
"enum": [
"REQUESTED",
"APPROVED",
"CONFIRMED",
"CANCELED_BY_CUSTOMER",
"CANCELED_BY_CLUB",
"OTHER",
"SHOWN",
"NOT_SHOWN",
"CONFIRMED"
],
"description": "статус бронирования"
},
"user": {
"type": "number",
"description": "идентификатор пользователя"
},
"booking_set": {
"type": "number",
"description": "идентификатора букинг сета"
},
"created_at": {
"type": "string",
"description": "дата создания бронирования"
},
"reason": {
"type": "string",
"description": "причина изменения статуса бронирования. например причина отмены"
},
"area": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор корта"
},
"title": {
"type": "string",
"description": "название корта"
},
"created_at": {
"type": "string",
"description": "дата создания"
},
"updated_at": {
"type": "string",
"description": "дата последнего обновления"
},
"parameters": {
"type": "object",
"properties": {
"covering_type": {
"type": "string"
},
"parameter_2": {
"type": "string"
}
},
"description": "параметры корта. значения и ключи управляются из админки Palms."
}
},
"description": "корт бронирования"
},
"club": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор клуба"
},
"title": {
"type": "string",
"description": "название клуба"
},
"subtitle": {
"type": "string",
"description": "видовое описание клуба"
},
"description": {
"type": "string",
"description": "описание клуба. Что он говорит о себе"
},
"prices": {
"type": "string",
"description": "форматированный текст в markdown с ценами клуба"
},
"working_hours_tag": {
"type": "string",
"description": "короткая строка с режимом работы клуба"
},
"pricing_tag": {
"type": "string"
},
"address_tag": {
"type": "string"
},
"contact_phone": {
"type": "string"
},
"contact_phone_two": {
"type": "string"
},
"contact_email": {
"type": "string"
},
"free_services": {
"type": "string",
"description": "описание бесплатный услуг в markdown"
},
"additional_services": {
"type": "string",
"description": "описание дополнительных услуг в markdown"
},
"rules": {
"type": "string",
"description": "описание правил клуба в markdown"
},
"facebook_title": {
"type": "string",
"description": "название FB страницы клуба"
},
"facebook_link": {
"type": "string",
"description": "ссылка на FB страницу клуба"
},
"areas": {
"type": "array",
"description": "корты клуба"
},
"options": {
"type": "object",
"properties": {
"default_cancelation_time": {
"type": "number",
"description": "время в секундах для бесплатной отмены бронирования. Считает от даты старта бронирования. 0 - нет бесплатной отмены"
}
},
"description": "настройки клуба в Palms. Зависит от бизнес-процессов клуба"
},
"features": {
"type": "object",
"properties": {
"online_payments": {
"type": "boolean",
"description": "доступно онлайн оплата"
}
},
"description": "возможности клуба в Palms. Зависит от интеграции и настроек клуба"
},
"coordinates": {
"type": "object",
"properties": {
"latitude": {
"type": "string",
"description": "широта"
},
"longitude": {
"type": "string",
"description": "долгота"
}
},
"description": "координаты клуба"
},
"images": {
"type": "array",
"description": "изображения клуба"
}
},
"description": "клуб бронирования"
},
"payment": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "внутренний идентификатор платежа в системе Palms"
},
"type": {
"type": "string",
"enum": [
"AUTH",
"PAYMENT",
"AUTH"
],
"description": "тип платежа"
},
"checkout_url": {
"type": "string",
"description": "адрес страницы Fondy IPSP для добавления новой карты"
},
"ipsp_id": {
"type": "string",
"description": "идентификатор платежа в платежном шлюзе"
},
"ipsp_type": {
"type": "string",
"description": "название IPSP через которых проводился платеж"
},
"amount": {
"type": "number",
"description": "сумма платежа в копейках/центах без разделителей. 120 - 1 грн 20 коп"
},
"currency": {
"type": "string",
"description": "валюта платежа"
},
"status": {
"type": "string",
"enum": [
"CREATED",
"PROCESSING",
"DECLINED",
"APPROVED",
"EXPIRED",
"REVERSED",
"CREATED"
],
"description": "статус транзакции"
},
"card": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "внутренний идентификатор карты в системе Palms"
},
"mask": {
"type": "string",
"description": "маска номера карты (Fondy.masked_card)"
},
"bin": {
"type": "string",
"description": "бин номер карты (Fondy.card_bin)"
},
"user_id": {
"type": "number",
"description": "ID пользователя - владельца карты\n\n<!-- + token: `da39a3ee5e6b4b0d3255bfef95601890afd80709` (string) - токен карты в IPSP (Fondy.rectoken) -->"
},
"expires_at": {
"type": "string",
"description": "время жизни карты (Fondy.rectoken_lifetime)"
},
"created_at": {
"type": "string",
"description": "дата добавления карты\n\n<!-- + deleted_at: `2019-08-10T00:00:00` (string) - дата удаления карты -->"
}
},
"description": "карта с которой была проведена оплата"
},
"created_at": {
"type": "string",
"description": "дата создание платежная"
},
"processed_at": {
"type": "string",
"description": "дата совершения платежа"
},
"updated_at": {
"type": "string",
"description": "последняя дата обновления платежа"
}
},
"description": "информация об оплате бронирования"
}
},
"required": [
"id",
"status",
"user",
"booking_set",
"created_at",
"area",
"club",
"payment"
],
"additionalProperties": false
}
}
}
Забронировать слоты ¶
Забронировать слотыPOST/bookings/book
В запросе можно опционально передать id карты card_id
. В этом случае слоты забронируются только при успешном холде средств на карте клиента.
В запросе опционально можно передать coach_id
Example URI
Headers
Content-Type: application/json
Authorization: Bearer XXXXX
Body
{
"slot_id": "number or hash",
"card_id": 1,
"coach_id": 1
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"slot_id": {
"type": "string",
"description": "id слота для бронирования. Может быть как и созданный заране (1,2,3 итд) либо сгенерированный хеш"
},
"card_id": {
"type": "number",
"description": "id карт для оплаты бронирований"
},
"coach_id": {
"type": "number",
"description": "id тренера"
}
}
}
200
Headers
Content-Type: application/json
Body
{
"data": {
"id": 1,
"slot": {
"id": 1,
"date_from": "2019-08-23T12:23:23+00:00Z",
"date_to": "2019-08-23T12:23:23+00:00Z",
"status": "AVAILABLE",
"price": 20000,
"currency": "UAH",
"area": {
"id": 1,
"title": "Корт 1",
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z",
"parameters": {
"covering_type": "hard",
"parameter_2": "value"
}
},
"club": {
"id": 1,
"title": "Palms club",
"subtitle": "Теннисный клуб",
"description": "На линии корта сомкнулись ракетки, Хотелось бы форхенд, но мяч попал в сетку",
"prices": "Форматированный текст в markdown с ценами клуба",
"working_hours_tag": "7:00 - 23:00 без выходных",
"pricing_tag": "270 - 530 грн/час",
"address_tag": "Киев, ул. Академика Ботичелли, 3А",
"contact_phone": "+380441234567",
"contact_phone_two": "+380987654321",
"contact_email": "hello@palms.tennis",
"free_services": "Описание бесплатный услуг в markdown",
"additional_services": "Описание дополнительных услуг в markdown",
"rules": "описание правил клуба в markdown",
"facebook_title": "Теннисный клуб \"Palms\"",
"facebook_link": "https://www.facebook.com/sasha.goreniuk",
"areas": [
{
"id": 1,
"title": "Корт 1",
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z",
"parameters": {
"covering_type": "hard",
"parameter_2": "value"
}
}
],
"options": {
"default_cancelation_time": 10800
},
"features": {
"online_payments": true
},
"coordinates": {
"latitude": "50.26421",
"longitude": "30.31432"
},
"images": [
"https://domain.com",
"https://domain.com",
"https://domain.com",
"https://domain.com"
]
},
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z"
},
"status": "CONFIRMED",
"user": 3,
"booking_set": 1,
"created_at": "2019-05-23T10:44:01.881000+03:00",
"reason": "it's just okay",
"area": {
"id": 1,
"title": "Корт 1",
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z",
"parameters": {
"covering_type": "hard",
"parameter_2": "value"
}
},
"club": {
"id": 1,
"title": "Palms club",
"subtitle": "Теннисный клуб",
"description": "На линии корта сомкнулись ракетки, Хотелось бы форхенд, но мяч попал в сетку",
"prices": "Форматированный текст в markdown с ценами клуба",
"working_hours_tag": "7:00 - 23:00 без выходных",
"pricing_tag": "270 - 530 грн/час",
"address_tag": "Киев, ул. Академика Ботичелли, 3А",
"contact_phone": "+380441234567",
"contact_phone_two": "+380987654321",
"contact_email": "hello@palms.tennis",
"free_services": "Описание бесплатный услуг в markdown",
"additional_services": "Описание дополнительных услуг в markdown",
"rules": "описание правил клуба в markdown",
"facebook_title": "Теннисный клуб \"Palms\"",
"facebook_link": "https://www.facebook.com/sasha.goreniuk",
"areas": [
{
"id": 1,
"title": "Корт 1",
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z",
"parameters": {
"covering_type": "hard",
"parameter_2": "value"
}
}
],
"options": {
"default_cancelation_time": 10800
},
"features": {
"online_payments": true
},
"coordinates": {
"latitude": "50.26421",
"longitude": "30.31432"
},
"images": [
"https://domain.com",
"https://domain.com",
"https://domain.com",
"https://domain.com"
]
},
"payment": {
"id": 1,
"type": "AUTH",
"checkout_url": "https://fondy.com/checkout_url",
"ipsp_id": "ipsp_id_eg_1",
"ipsp_type": "fondy",
"amount": 120,
"currency": "UAH",
"status": "CREATED",
"card": {
"id": 1,
"mask": "443322*1234",
"bin": "443322",
"user_id": 1,
"expires_at": "2019-08-10T00:00:00",
"created_at": "2019-08-10T00:00:00"
},
"created_at": "2019-08-10T00:00:00",
"processed_at": "2019-08-10T00:00:00",
"updated_at": "2019-08-10T00:00:00"
}
}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор бронирования"
},
"slot": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор слота"
},
"date_from": {
"type": "string",
"description": "дата и время начала слота"
},
"date_to": {
"type": "string",
"description": "дата и время окончания слота"
},
"status": {
"type": "string",
"enum": [
"AVAILABLE",
"BOOKED",
"DISABLED",
"AVAILABLE"
],
"description": "статус слота"
},
"price": {
"type": "number",
"description": "стоимость бронирования. Целое число без запятых (20000 - 200.00)"
},
"currency": {
"type": "string",
"description": "валюта стоимости."
},
"area": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор корта"
},
"title": {
"type": "string",
"description": "название корта"
},
"created_at": {
"type": "string",
"description": "дата создания"
},
"updated_at": {
"type": "string",
"description": "дата последнего обновления"
},
"parameters": {
"type": "object",
"properties": {
"covering_type": {
"type": "string"
},
"parameter_2": {
"type": "string"
}
},
"description": "параметры корта. значения и ключи управляются из админки Palms."
}
},
"description": "корт, к которому относится слот"
},
"club": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор клуба"
},
"title": {
"type": "string",
"description": "название клуба"
},
"subtitle": {
"type": "string",
"description": "видовое описание клуба"
},
"description": {
"type": "string",
"description": "описание клуба. Что он говорит о себе"
},
"prices": {
"type": "string",
"description": "форматированный текст в markdown с ценами клуба"
},
"working_hours_tag": {
"type": "string",
"description": "короткая строка с режимом работы клуба"
},
"pricing_tag": {
"type": "string"
},
"address_tag": {
"type": "string"
},
"contact_phone": {
"type": "string"
},
"contact_phone_two": {
"type": "string"
},
"contact_email": {
"type": "string"
},
"free_services": {
"type": "string",
"description": "описание бесплатный услуг в markdown"
},
"additional_services": {
"type": "string",
"description": "описание дополнительных услуг в markdown"
},
"rules": {
"type": "string",
"description": "описание правил клуба в markdown"
},
"facebook_title": {
"type": "string",
"description": "название FB страницы клуба"
},
"facebook_link": {
"type": "string",
"description": "ссылка на FB страницу клуба"
},
"areas": {
"type": "array",
"description": "корты клуба"
},
"options": {
"type": "object",
"properties": {
"default_cancelation_time": {
"type": "number",
"description": "время в секундах для бесплатной отмены бронирования. Считает от даты старта бронирования. 0 - нет бесплатной отмены"
}
},
"description": "настройки клуба в Palms. Зависит от бизнес-процессов клуба"
},
"features": {
"type": "object",
"properties": {
"online_payments": {
"type": "boolean",
"description": "доступно онлайн оплата"
}
},
"description": "возможности клуба в Palms. Зависит от интеграции и настроек клуба"
},
"coordinates": {
"type": "object",
"properties": {
"latitude": {
"type": "string",
"description": "широта"
},
"longitude": {
"type": "string",
"description": "долгота"
}
},
"description": "координаты клуба"
},
"images": {
"type": "array",
"description": "изображения клуба"
}
},
"description": "корт, к которому относится слот"
},
"created_at": {
"type": "string",
"description": "дата создания"
},
"updated_at": {
"type": "string",
"description": "дата последнего обновления"
}
},
"description": "слот бронирования"
},
"status": {
"type": "string",
"enum": [
"REQUESTED",
"APPROVED",
"CONFIRMED",
"CANCELED_BY_CUSTOMER",
"CANCELED_BY_CLUB",
"OTHER",
"SHOWN",
"NOT_SHOWN",
"CONFIRMED"
],
"description": "статус бронирования"
},
"user": {
"type": "number",
"description": "идентификатор пользователя"
},
"booking_set": {
"type": "number",
"description": "идентификатора букинг сета"
},
"created_at": {
"type": "string",
"description": "дата создания бронирования"
},
"reason": {
"type": "string",
"description": "причина изменения статуса бронирования. например причина отмены"
},
"area": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор корта"
},
"title": {
"type": "string",
"description": "название корта"
},
"created_at": {
"type": "string",
"description": "дата создания"
},
"updated_at": {
"type": "string",
"description": "дата последнего обновления"
},
"parameters": {
"type": "object",
"properties": {
"covering_type": {
"type": "string"
},
"parameter_2": {
"type": "string"
}
},
"description": "параметры корта. значения и ключи управляются из админки Palms."
}
},
"description": "корт бронирования"
},
"club": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор клуба"
},
"title": {
"type": "string",
"description": "название клуба"
},
"subtitle": {
"type": "string",
"description": "видовое описание клуба"
},
"description": {
"type": "string",
"description": "описание клуба. Что он говорит о себе"
},
"prices": {
"type": "string",
"description": "форматированный текст в markdown с ценами клуба"
},
"working_hours_tag": {
"type": "string",
"description": "короткая строка с режимом работы клуба"
},
"pricing_tag": {
"type": "string"
},
"address_tag": {
"type": "string"
},
"contact_phone": {
"type": "string"
},
"contact_phone_two": {
"type": "string"
},
"contact_email": {
"type": "string"
},
"free_services": {
"type": "string",
"description": "описание бесплатный услуг в markdown"
},
"additional_services": {
"type": "string",
"description": "описание дополнительных услуг в markdown"
},
"rules": {
"type": "string",
"description": "описание правил клуба в markdown"
},
"facebook_title": {
"type": "string",
"description": "название FB страницы клуба"
},
"facebook_link": {
"type": "string",
"description": "ссылка на FB страницу клуба"
},
"areas": {
"type": "array",
"description": "корты клуба"
},
"options": {
"type": "object",
"properties": {
"default_cancelation_time": {
"type": "number",
"description": "время в секундах для бесплатной отмены бронирования. Считает от даты старта бронирования. 0 - нет бесплатной отмены"
}
},
"description": "настройки клуба в Palms. Зависит от бизнес-процессов клуба"
},
"features": {
"type": "object",
"properties": {
"online_payments": {
"type": "boolean",
"description": "доступно онлайн оплата"
}
},
"description": "возможности клуба в Palms. Зависит от интеграции и настроек клуба"
},
"coordinates": {
"type": "object",
"properties": {
"latitude": {
"type": "string",
"description": "широта"
},
"longitude": {
"type": "string",
"description": "долгота"
}
},
"description": "координаты клуба"
},
"images": {
"type": "array",
"description": "изображения клуба"
}
},
"description": "клуб бронирования"
},
"payment": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "внутренний идентификатор платежа в системе Palms"
},
"type": {
"type": "string",
"enum": [
"AUTH",
"PAYMENT",
"AUTH"
],
"description": "тип платежа"
},
"checkout_url": {
"type": "string",
"description": "адрес страницы Fondy IPSP для добавления новой карты"
},
"ipsp_id": {
"type": "string",
"description": "идентификатор платежа в платежном шлюзе"
},
"ipsp_type": {
"type": "string",
"description": "название IPSP через которых проводился платеж"
},
"amount": {
"type": "number",
"description": "сумма платежа в копейках/центах без разделителей. 120 - 1 грн 20 коп"
},
"currency": {
"type": "string",
"description": "валюта платежа"
},
"status": {
"type": "string",
"enum": [
"CREATED",
"PROCESSING",
"DECLINED",
"APPROVED",
"EXPIRED",
"REVERSED",
"CREATED"
],
"description": "статус транзакции"
},
"card": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "внутренний идентификатор карты в системе Palms"
},
"mask": {
"type": "string",
"description": "маска номера карты (Fondy.masked_card)"
},
"bin": {
"type": "string",
"description": "бин номер карты (Fondy.card_bin)"
},
"user_id": {
"type": "number",
"description": "ID пользователя - владельца карты\n\n<!-- + token: `da39a3ee5e6b4b0d3255bfef95601890afd80709` (string) - токен карты в IPSP (Fondy.rectoken) -->"
},
"expires_at": {
"type": "string",
"description": "время жизни карты (Fondy.rectoken_lifetime)"
},
"created_at": {
"type": "string",
"description": "дата добавления карты\n\n<!-- + deleted_at: `2019-08-10T00:00:00` (string) - дата удаления карты -->"
}
},
"description": "карта с которой была проведена оплата"
},
"created_at": {
"type": "string",
"description": "дата создание платежная"
},
"processed_at": {
"type": "string",
"description": "дата совершения платежа"
},
"updated_at": {
"type": "string",
"description": "последняя дата обновления платежа"
}
},
"description": "информация об оплате бронирования"
}
},
"required": [
"id",
"status",
"user",
"booking_set",
"created_at",
"area",
"club",
"payment"
],
"additionalProperties": false
}
}
}
Отменить бронирование ¶
Отменить бронированиеPOST/user/bookings/cancel
Example URI
Headers
Content-Type: application/json
Authorization: Bearer XXXXX
Body
{
"id": 1
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "id бронирования для отмены"
}
},
"required": [
"id"
]
}
200
Headers
Content-Type: application/json
Body
{
"meta": {
"pagination": {
"total_number": 22,
"current_page": 1,
"total_pages": 2,
"page_size": 20
}
},
"data": [
{
"id": 1,
"slot": {
"id": 1,
"date_from": "2019-08-23T12:23:23+00:00Z",
"date_to": "2019-08-23T12:23:23+00:00Z",
"status": "AVAILABLE",
"price": 20000,
"currency": "UAH",
"area": {
"id": 1,
"title": "Корт 1",
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z",
"parameters": {
"covering_type": "hard",
"parameter_2": "value"
}
},
"club": {
"id": 1,
"title": "Palms club",
"subtitle": "Теннисный клуб",
"description": "На линии корта сомкнулись ракетки, Хотелось бы форхенд, но мяч попал в сетку",
"prices": "Форматированный текст в markdown с ценами клуба",
"working_hours_tag": "7:00 - 23:00 без выходных",
"pricing_tag": "270 - 530 грн/час",
"address_tag": "Киев, ул. Академика Ботичелли, 3А",
"contact_phone": "+380441234567",
"contact_phone_two": "+380987654321",
"contact_email": "hello@palms.tennis",
"free_services": "Описание бесплатный услуг в markdown",
"additional_services": "Описание дополнительных услуг в markdown",
"rules": "описание правил клуба в markdown",
"facebook_title": "Теннисный клуб \"Palms\"",
"facebook_link": "https://www.facebook.com/sasha.goreniuk",
"areas": [
{
"id": 1,
"title": "Корт 1",
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z",
"parameters": {
"covering_type": "hard",
"parameter_2": "value"
}
}
],
"options": {
"default_cancelation_time": 10800
},
"features": {
"online_payments": true
},
"coordinates": {
"latitude": "50.26421",
"longitude": "30.31432"
},
"images": [
"https://domain.com",
"https://domain.com",
"https://domain.com",
"https://domain.com"
]
},
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z"
},
"status": "CONFIRMED",
"user": 3,
"booking_set": 1,
"created_at": "2019-05-23T10:44:01.881000+03:00",
"reason": "it's just okay",
"area": {
"id": 1,
"title": "Корт 1",
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z",
"parameters": {
"covering_type": "hard",
"parameter_2": "value"
}
},
"club": {
"id": 1,
"title": "Palms club",
"subtitle": "Теннисный клуб",
"description": "На линии корта сомкнулись ракетки, Хотелось бы форхенд, но мяч попал в сетку",
"prices": "Форматированный текст в markdown с ценами клуба",
"working_hours_tag": "7:00 - 23:00 без выходных",
"pricing_tag": "270 - 530 грн/час",
"address_tag": "Киев, ул. Академика Ботичелли, 3А",
"contact_phone": "+380441234567",
"contact_phone_two": "+380987654321",
"contact_email": "hello@palms.tennis",
"free_services": "Описание бесплатный услуг в markdown",
"additional_services": "Описание дополнительных услуг в markdown",
"rules": "описание правил клуба в markdown",
"facebook_title": "Теннисный клуб \"Palms\"",
"facebook_link": "https://www.facebook.com/sasha.goreniuk",
"areas": [
{
"id": 1,
"title": "Корт 1",
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z",
"parameters": {
"covering_type": "hard",
"parameter_2": "value"
}
}
],
"options": {
"default_cancelation_time": 10800
},
"features": {
"online_payments": true
},
"coordinates": {
"latitude": "50.26421",
"longitude": "30.31432"
},
"images": [
"https://domain.com",
"https://domain.com",
"https://domain.com",
"https://domain.com"
]
},
"payment": {
"id": 1,
"type": "AUTH",
"checkout_url": "https://fondy.com/checkout_url",
"ipsp_id": "ipsp_id_eg_1",
"ipsp_type": "fondy",
"amount": 120,
"currency": "UAH",
"status": "CREATED",
"card": {
"id": 1,
"mask": "443322*1234",
"bin": "443322",
"user_id": 1,
"expires_at": "2019-08-10T00:00:00",
"created_at": "2019-08-10T00:00:00"
},
"created_at": "2019-08-10T00:00:00",
"processed_at": "2019-08-10T00:00:00",
"updated_at": "2019-08-10T00:00:00"
}
},
{
"id": 1,
"slot": {
"id": 1,
"date_from": "2019-08-23T12:23:23+00:00Z",
"date_to": "2019-08-23T12:23:23+00:00Z",
"status": "AVAILABLE",
"price": 20000,
"currency": "UAH",
"area": {
"id": 1,
"title": "Корт 1",
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z",
"parameters": {
"covering_type": "hard",
"parameter_2": "value"
}
},
"club": {
"id": 1,
"title": "Palms club",
"subtitle": "Теннисный клуб",
"description": "На линии корта сомкнулись ракетки, Хотелось бы форхенд, но мяч попал в сетку",
"prices": "Форматированный текст в markdown с ценами клуба",
"working_hours_tag": "7:00 - 23:00 без выходных",
"pricing_tag": "270 - 530 грн/час",
"address_tag": "Киев, ул. Академика Ботичелли, 3А",
"contact_phone": "+380441234567",
"contact_phone_two": "+380987654321",
"contact_email": "hello@palms.tennis",
"free_services": "Описание бесплатный услуг в markdown",
"additional_services": "Описание дополнительных услуг в markdown",
"rules": "описание правил клуба в markdown",
"facebook_title": "Теннисный клуб \"Palms\"",
"facebook_link": "https://www.facebook.com/sasha.goreniuk",
"areas": [
{
"id": 1,
"title": "Корт 1",
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z",
"parameters": {
"covering_type": "hard",
"parameter_2": "value"
}
}
],
"options": {
"default_cancelation_time": 10800
},
"features": {
"online_payments": true
},
"coordinates": {
"latitude": "50.26421",
"longitude": "30.31432"
},
"images": [
"https://domain.com",
"https://domain.com",
"https://domain.com",
"https://domain.com"
]
},
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z"
},
"status": "CONFIRMED",
"user": 3,
"booking_set": 1,
"created_at": "2019-05-23T10:44:01.881000+03:00",
"reason": "it's just okay",
"area": {
"id": 1,
"title": "Корт 1",
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z",
"parameters": {
"covering_type": "hard",
"parameter_2": "value"
}
},
"club": {
"id": 1,
"title": "Palms club",
"subtitle": "Теннисный клуб",
"description": "На линии корта сомкнулись ракетки, Хотелось бы форхенд, но мяч попал в сетку",
"prices": "Форматированный текст в markdown с ценами клуба",
"working_hours_tag": "7:00 - 23:00 без выходных",
"pricing_tag": "270 - 530 грн/час",
"address_tag": "Киев, ул. Академика Ботичелли, 3А",
"contact_phone": "+380441234567",
"contact_phone_two": "+380987654321",
"contact_email": "hello@palms.tennis",
"free_services": "Описание бесплатный услуг в markdown",
"additional_services": "Описание дополнительных услуг в markdown",
"rules": "описание правил клуба в markdown",
"facebook_title": "Теннисный клуб \"Palms\"",
"facebook_link": "https://www.facebook.com/sasha.goreniuk",
"areas": [
{
"id": 1,
"title": "Корт 1",
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z",
"parameters": {
"covering_type": "hard",
"parameter_2": "value"
}
}
],
"options": {
"default_cancelation_time": 10800
},
"features": {
"online_payments": true
},
"coordinates": {
"latitude": "50.26421",
"longitude": "30.31432"
},
"images": [
"https://domain.com",
"https://domain.com",
"https://domain.com",
"https://domain.com"
]
},
"payment": {
"id": 1,
"type": "AUTH",
"checkout_url": "https://fondy.com/checkout_url",
"ipsp_id": "ipsp_id_eg_1",
"ipsp_type": "fondy",
"amount": 120,
"currency": "UAH",
"status": "CREATED",
"card": {
"id": 1,
"mask": "443322*1234",
"bin": "443322",
"user_id": 1,
"expires_at": "2019-08-10T00:00:00",
"created_at": "2019-08-10T00:00:00"
},
"created_at": "2019-08-10T00:00:00",
"processed_at": "2019-08-10T00:00:00",
"updated_at": "2019-08-10T00:00:00"
}
},
{
"id": 1,
"slot": {
"id": 1,
"date_from": "2019-08-23T12:23:23+00:00Z",
"date_to": "2019-08-23T12:23:23+00:00Z",
"status": "AVAILABLE",
"price": 20000,
"currency": "UAH",
"area": {
"id": 1,
"title": "Корт 1",
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z",
"parameters": {
"covering_type": "hard",
"parameter_2": "value"
}
},
"club": {
"id": 1,
"title": "Palms club",
"subtitle": "Теннисный клуб",
"description": "На линии корта сомкнулись ракетки, Хотелось бы форхенд, но мяч попал в сетку",
"prices": "Форматированный текст в markdown с ценами клуба",
"working_hours_tag": "7:00 - 23:00 без выходных",
"pricing_tag": "270 - 530 грн/час",
"address_tag": "Киев, ул. Академика Ботичелли, 3А",
"contact_phone": "+380441234567",
"contact_phone_two": "+380987654321",
"contact_email": "hello@palms.tennis",
"free_services": "Описание бесплатный услуг в markdown",
"additional_services": "Описание дополнительных услуг в markdown",
"rules": "описание правил клуба в markdown",
"facebook_title": "Теннисный клуб \"Palms\"",
"facebook_link": "https://www.facebook.com/sasha.goreniuk",
"areas": [
{
"id": 1,
"title": "Корт 1",
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z",
"parameters": {
"covering_type": "hard",
"parameter_2": "value"
}
}
],
"options": {
"default_cancelation_time": 10800
},
"features": {
"online_payments": true
},
"coordinates": {
"latitude": "50.26421",
"longitude": "30.31432"
},
"images": [
"https://domain.com",
"https://domain.com",
"https://domain.com",
"https://domain.com"
]
},
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z"
},
"status": "CONFIRMED",
"user": 3,
"booking_set": 1,
"created_at": "2019-05-23T10:44:01.881000+03:00",
"reason": "it's just okay",
"area": {
"id": 1,
"title": "Корт 1",
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z",
"parameters": {
"covering_type": "hard",
"parameter_2": "value"
}
},
"club": {
"id": 1,
"title": "Palms club",
"subtitle": "Теннисный клуб",
"description": "На линии корта сомкнулись ракетки, Хотелось бы форхенд, но мяч попал в сетку",
"prices": "Форматированный текст в markdown с ценами клуба",
"working_hours_tag": "7:00 - 23:00 без выходных",
"pricing_tag": "270 - 530 грн/час",
"address_tag": "Киев, ул. Академика Ботичелли, 3А",
"contact_phone": "+380441234567",
"contact_phone_two": "+380987654321",
"contact_email": "hello@palms.tennis",
"free_services": "Описание бесплатный услуг в markdown",
"additional_services": "Описание дополнительных услуг в markdown",
"rules": "описание правил клуба в markdown",
"facebook_title": "Теннисный клуб \"Palms\"",
"facebook_link": "https://www.facebook.com/sasha.goreniuk",
"areas": [
{
"id": 1,
"title": "Корт 1",
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z",
"parameters": {
"covering_type": "hard",
"parameter_2": "value"
}
}
],
"options": {
"default_cancelation_time": 10800
},
"features": {
"online_payments": true
},
"coordinates": {
"latitude": "50.26421",
"longitude": "30.31432"
},
"images": [
"https://domain.com",
"https://domain.com",
"https://domain.com",
"https://domain.com"
]
},
"payment": {
"id": 1,
"type": "AUTH",
"checkout_url": "https://fondy.com/checkout_url",
"ipsp_id": "ipsp_id_eg_1",
"ipsp_type": "fondy",
"amount": 120,
"currency": "UAH",
"status": "CREATED",
"card": {
"id": 1,
"mask": "443322*1234",
"bin": "443322",
"user_id": 1,
"expires_at": "2019-08-10T00:00:00",
"created_at": "2019-08-10T00:00:00"
},
"created_at": "2019-08-10T00:00:00",
"processed_at": "2019-08-10T00:00:00",
"updated_at": "2019-08-10T00:00:00"
}
},
{
"id": 1,
"slot": {
"id": 1,
"date_from": "2019-08-23T12:23:23+00:00Z",
"date_to": "2019-08-23T12:23:23+00:00Z",
"status": "AVAILABLE",
"price": 20000,
"currency": "UAH",
"area": {
"id": 1,
"title": "Корт 1",
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z",
"parameters": {
"covering_type": "hard",
"parameter_2": "value"
}
},
"club": {
"id": 1,
"title": "Palms club",
"subtitle": "Теннисный клуб",
"description": "На линии корта сомкнулись ракетки, Хотелось бы форхенд, но мяч попал в сетку",
"prices": "Форматированный текст в markdown с ценами клуба",
"working_hours_tag": "7:00 - 23:00 без выходных",
"pricing_tag": "270 - 530 грн/час",
"address_tag": "Киев, ул. Академика Ботичелли, 3А",
"contact_phone": "+380441234567",
"contact_phone_two": "+380987654321",
"contact_email": "hello@palms.tennis",
"free_services": "Описание бесплатный услуг в markdown",
"additional_services": "Описание дополнительных услуг в markdown",
"rules": "описание правил клуба в markdown",
"facebook_title": "Теннисный клуб \"Palms\"",
"facebook_link": "https://www.facebook.com/sasha.goreniuk",
"areas": [
{
"id": 1,
"title": "Корт 1",
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z",
"parameters": {
"covering_type": "hard",
"parameter_2": "value"
}
}
],
"options": {
"default_cancelation_time": 10800
},
"features": {
"online_payments": true
},
"coordinates": {
"latitude": "50.26421",
"longitude": "30.31432"
},
"images": [
"https://domain.com",
"https://domain.com",
"https://domain.com",
"https://domain.com"
]
},
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z"
},
"status": "CONFIRMED",
"user": 3,
"booking_set": 1,
"created_at": "2019-05-23T10:44:01.881000+03:00",
"reason": "it's just okay",
"area": {
"id": 1,
"title": "Корт 1",
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z",
"parameters": {
"covering_type": "hard",
"parameter_2": "value"
}
},
"club": {
"id": 1,
"title": "Palms club",
"subtitle": "Теннисный клуб",
"description": "На линии корта сомкнулись ракетки, Хотелось бы форхенд, но мяч попал в сетку",
"prices": "Форматированный текст в markdown с ценами клуба",
"working_hours_tag": "7:00 - 23:00 без выходных",
"pricing_tag": "270 - 530 грн/час",
"address_tag": "Киев, ул. Академика Ботичелли, 3А",
"contact_phone": "+380441234567",
"contact_phone_two": "+380987654321",
"contact_email": "hello@palms.tennis",
"free_services": "Описание бесплатный услуг в markdown",
"additional_services": "Описание дополнительных услуг в markdown",
"rules": "описание правил клуба в markdown",
"facebook_title": "Теннисный клуб \"Palms\"",
"facebook_link": "https://www.facebook.com/sasha.goreniuk",
"areas": [
{
"id": 1,
"title": "Корт 1",
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z",
"parameters": {
"covering_type": "hard",
"parameter_2": "value"
}
}
],
"options": {
"default_cancelation_time": 10800
},
"features": {
"online_payments": true
},
"coordinates": {
"latitude": "50.26421",
"longitude": "30.31432"
},
"images": [
"https://domain.com",
"https://domain.com",
"https://domain.com",
"https://domain.com"
]
},
"payment": {
"id": 1,
"type": "AUTH",
"checkout_url": "https://fondy.com/checkout_url",
"ipsp_id": "ipsp_id_eg_1",
"ipsp_type": "fondy",
"amount": 120,
"currency": "UAH",
"status": "CREATED",
"card": {
"id": 1,
"mask": "443322*1234",
"bin": "443322",
"user_id": 1,
"expires_at": "2019-08-10T00:00:00",
"created_at": "2019-08-10T00:00:00"
},
"created_at": "2019-08-10T00:00:00",
"processed_at": "2019-08-10T00:00:00",
"updated_at": "2019-08-10T00:00:00"
}
}
]
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"meta": {
"type": "object",
"properties": {
"pagination": {
"type": "object",
"properties": {
"total_number": {
"type": "number",
"description": "общее количество сущностей"
},
"current_page": {
"type": "number",
"description": "текущая страница"
},
"total_pages": {
"type": "number",
"description": "всего страниц"
},
"page_size": {
"type": "number",
"description": "записей на страницу"
}
}
}
}
},
"data": {
"type": "array",
"items": [
{
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор бронирования"
},
"slot": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор слота"
},
"date_from": {
"type": "string",
"description": "дата и время начала слота"
},
"date_to": {
"type": "string",
"description": "дата и время окончания слота"
},
"status": {
"type": "string",
"enum": [
"AVAILABLE",
"BOOKED",
"DISABLED",
"AVAILABLE"
],
"description": "статус слота"
},
"price": {
"type": "number",
"description": "стоимость бронирования. Целое число без запятых (20000 - 200.00)"
},
"currency": {
"type": "string",
"description": "валюта стоимости."
},
"area": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор корта"
},
"title": {
"type": "string",
"description": "название корта"
},
"created_at": {
"type": "string",
"description": "дата создания"
},
"updated_at": {
"type": "string",
"description": "дата последнего обновления"
},
"parameters": {
"type": "object",
"properties": {
"covering_type": {
"type": "string"
},
"parameter_2": {
"type": "string"
}
},
"description": "параметры корта. значения и ключи управляются из админки Palms."
}
},
"description": "корт, к которому относится слот"
},
"club": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор клуба"
},
"title": {
"type": "string",
"description": "название клуба"
},
"subtitle": {
"type": "string",
"description": "видовое описание клуба"
},
"description": {
"type": "string",
"description": "описание клуба. Что он говорит о себе"
},
"prices": {
"type": "string",
"description": "форматированный текст в markdown с ценами клуба"
},
"working_hours_tag": {
"type": "string",
"description": "короткая строка с режимом работы клуба"
},
"pricing_tag": {
"type": "string"
},
"address_tag": {
"type": "string"
},
"contact_phone": {
"type": "string"
},
"contact_phone_two": {
"type": "string"
},
"contact_email": {
"type": "string"
},
"free_services": {
"type": "string",
"description": "описание бесплатный услуг в markdown"
},
"additional_services": {
"type": "string",
"description": "описание дополнительных услуг в markdown"
},
"rules": {
"type": "string",
"description": "описание правил клуба в markdown"
},
"facebook_title": {
"type": "string",
"description": "название FB страницы клуба"
},
"facebook_link": {
"type": "string",
"description": "ссылка на FB страницу клуба"
},
"areas": {
"type": "array",
"description": "корты клуба"
},
"options": {
"type": "object",
"properties": {
"default_cancelation_time": {
"type": "number",
"description": "время в секундах для бесплатной отмены бронирования. Считает от даты старта бронирования. 0 - нет бесплатной отмены"
}
},
"description": "настройки клуба в Palms. Зависит от бизнес-процессов клуба"
},
"features": {
"type": "object",
"properties": {
"online_payments": {
"type": "boolean",
"description": "доступно онлайн оплата"
}
},
"description": "возможности клуба в Palms. Зависит от интеграции и настроек клуба"
},
"coordinates": {
"type": "object",
"properties": {
"latitude": {
"type": "string",
"description": "широта"
},
"longitude": {
"type": "string",
"description": "долгота"
}
},
"description": "координаты клуба"
},
"images": {
"type": "array",
"description": "изображения клуба"
}
},
"description": "корт, к которому относится слот"
},
"created_at": {
"type": "string",
"description": "дата создания"
},
"updated_at": {
"type": "string",
"description": "дата последнего обновления"
}
},
"description": "слот бронирования"
},
"status": {
"type": "string",
"enum": [
"REQUESTED",
"APPROVED",
"CONFIRMED",
"CANCELED_BY_CUSTOMER",
"CANCELED_BY_CLUB",
"OTHER",
"SHOWN",
"NOT_SHOWN",
"CONFIRMED"
],
"description": "статус бронирования"
},
"user": {
"type": "number",
"description": "идентификатор пользователя"
},
"booking_set": {
"type": "number",
"description": "идентификатора букинг сета"
},
"created_at": {
"type": "string",
"description": "дата создания бронирования"
},
"reason": {
"type": "string",
"description": "причина изменения статуса бронирования. например причина отмены"
},
"area": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор корта"
},
"title": {
"type": "string",
"description": "название корта"
},
"created_at": {
"type": "string",
"description": "дата создания"
},
"updated_at": {
"type": "string",
"description": "дата последнего обновления"
},
"parameters": {
"type": "object",
"properties": {
"covering_type": {
"type": "string"
},
"parameter_2": {
"type": "string"
}
},
"description": "параметры корта. значения и ключи управляются из админки Palms."
}
},
"description": "корт бронирования"
},
"club": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор клуба"
},
"title": {
"type": "string",
"description": "название клуба"
},
"subtitle": {
"type": "string",
"description": "видовое описание клуба"
},
"description": {
"type": "string",
"description": "описание клуба. Что он говорит о себе"
},
"prices": {
"type": "string",
"description": "форматированный текст в markdown с ценами клуба"
},
"working_hours_tag": {
"type": "string",
"description": "короткая строка с режимом работы клуба"
},
"pricing_tag": {
"type": "string"
},
"address_tag": {
"type": "string"
},
"contact_phone": {
"type": "string"
},
"contact_phone_two": {
"type": "string"
},
"contact_email": {
"type": "string"
},
"free_services": {
"type": "string",
"description": "описание бесплатный услуг в markdown"
},
"additional_services": {
"type": "string",
"description": "описание дополнительных услуг в markdown"
},
"rules": {
"type": "string",
"description": "описание правил клуба в markdown"
},
"facebook_title": {
"type": "string",
"description": "название FB страницы клуба"
},
"facebook_link": {
"type": "string",
"description": "ссылка на FB страницу клуба"
},
"areas": {
"type": "array",
"description": "корты клуба"
},
"options": {
"type": "object",
"properties": {
"default_cancelation_time": {
"type": "number",
"description": "время в секундах для бесплатной отмены бронирования. Считает от даты старта бронирования. 0 - нет бесплатной отмены"
}
},
"description": "настройки клуба в Palms. Зависит от бизнес-процессов клуба"
},
"features": {
"type": "object",
"properties": {
"online_payments": {
"type": "boolean",
"description": "доступно онлайн оплата"
}
},
"description": "возможности клуба в Palms. Зависит от интеграции и настроек клуба"
},
"coordinates": {
"type": "object",
"properties": {
"latitude": {
"type": "string",
"description": "широта"
},
"longitude": {
"type": "string",
"description": "долгота"
}
},
"description": "координаты клуба"
},
"images": {
"type": "array",
"description": "изображения клуба"
}
},
"description": "клуб бронирования"
},
"payment": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "внутренний идентификатор платежа в системе Palms"
},
"type": {
"type": "string",
"enum": [
"AUTH",
"PAYMENT",
"AUTH"
],
"description": "тип платежа"
},
"checkout_url": {
"type": "string",
"description": "адрес страницы Fondy IPSP для добавления новой карты"
},
"ipsp_id": {
"type": "string",
"description": "идентификатор платежа в платежном шлюзе"
},
"ipsp_type": {
"type": "string",
"description": "название IPSP через которых проводился платеж"
},
"amount": {
"type": "number",
"description": "сумма платежа в копейках/центах без разделителей. 120 - 1 грн 20 коп"
},
"currency": {
"type": "string",
"description": "валюта платежа"
},
"status": {
"type": "string",
"enum": [
"CREATED",
"PROCESSING",
"DECLINED",
"APPROVED",
"EXPIRED",
"REVERSED",
"CREATED"
],
"description": "статус транзакции"
},
"card": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "внутренний идентификатор карты в системе Palms"
},
"mask": {
"type": "string",
"description": "маска номера карты (Fondy.masked_card)"
},
"bin": {
"type": "string",
"description": "бин номер карты (Fondy.card_bin)"
},
"user_id": {
"type": "number",
"description": "ID пользователя - владельца карты\n\n<!-- + token: `da39a3ee5e6b4b0d3255bfef95601890afd80709` (string) - токен карты в IPSP (Fondy.rectoken) -->"
},
"expires_at": {
"type": "string",
"description": "время жизни карты (Fondy.rectoken_lifetime)"
},
"created_at": {
"type": "string",
"description": "дата добавления карты\n\n<!-- + deleted_at: `2019-08-10T00:00:00` (string) - дата удаления карты -->"
}
},
"description": "карта с которой была проведена оплата"
},
"created_at": {
"type": "string",
"description": "дата создание платежная"
},
"processed_at": {
"type": "string",
"description": "дата совершения платежа"
},
"updated_at": {
"type": "string",
"description": "последняя дата обновления платежа"
}
},
"description": "информация об оплате бронирования"
}
}
},
{
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор бронирования"
},
"slot": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор слота"
},
"date_from": {
"type": "string",
"description": "дата и время начала слота"
},
"date_to": {
"type": "string",
"description": "дата и время окончания слота"
},
"status": {
"type": "string",
"enum": [
"AVAILABLE",
"BOOKED",
"DISABLED",
"AVAILABLE"
],
"description": "статус слота"
},
"price": {
"type": "number",
"description": "стоимость бронирования. Целое число без запятых (20000 - 200.00)"
},
"currency": {
"type": "string",
"description": "валюта стоимости."
},
"area": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор корта"
},
"title": {
"type": "string",
"description": "название корта"
},
"created_at": {
"type": "string",
"description": "дата создания"
},
"updated_at": {
"type": "string",
"description": "дата последнего обновления"
},
"parameters": {
"type": "object",
"properties": {
"covering_type": {
"type": "string"
},
"parameter_2": {
"type": "string"
}
},
"description": "параметры корта. значения и ключи управляются из админки Palms."
}
},
"description": "корт, к которому относится слот"
},
"club": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор клуба"
},
"title": {
"type": "string",
"description": "название клуба"
},
"subtitle": {
"type": "string",
"description": "видовое описание клуба"
},
"description": {
"type": "string",
"description": "описание клуба. Что он говорит о себе"
},
"prices": {
"type": "string",
"description": "форматированный текст в markdown с ценами клуба"
},
"working_hours_tag": {
"type": "string",
"description": "короткая строка с режимом работы клуба"
},
"pricing_tag": {
"type": "string"
},
"address_tag": {
"type": "string"
},
"contact_phone": {
"type": "string"
},
"contact_phone_two": {
"type": "string"
},
"contact_email": {
"type": "string"
},
"free_services": {
"type": "string",
"description": "описание бесплатный услуг в markdown"
},
"additional_services": {
"type": "string",
"description": "описание дополнительных услуг в markdown"
},
"rules": {
"type": "string",
"description": "описание правил клуба в markdown"
},
"facebook_title": {
"type": "string",
"description": "название FB страницы клуба"
},
"facebook_link": {
"type": "string",
"description": "ссылка на FB страницу клуба"
},
"areas": {
"type": "array",
"description": "корты клуба"
},
"options": {
"type": "object",
"properties": {
"default_cancelation_time": {
"type": "number",
"description": "время в секундах для бесплатной отмены бронирования. Считает от даты старта бронирования. 0 - нет бесплатной отмены"
}
},
"description": "настройки клуба в Palms. Зависит от бизнес-процессов клуба"
},
"features": {
"type": "object",
"properties": {
"online_payments": {
"type": "boolean",
"description": "доступно онлайн оплата"
}
},
"description": "возможности клуба в Palms. Зависит от интеграции и настроек клуба"
},
"coordinates": {
"type": "object",
"properties": {
"latitude": {
"type": "string",
"description": "широта"
},
"longitude": {
"type": "string",
"description": "долгота"
}
},
"description": "координаты клуба"
},
"images": {
"type": "array",
"description": "изображения клуба"
}
},
"description": "корт, к которому относится слот"
},
"created_at": {
"type": "string",
"description": "дата создания"
},
"updated_at": {
"type": "string",
"description": "дата последнего обновления"
}
},
"description": "слот бронирования"
},
"status": {
"type": "string",
"enum": [
"REQUESTED",
"APPROVED",
"CONFIRMED",
"CANCELED_BY_CUSTOMER",
"CANCELED_BY_CLUB",
"OTHER",
"SHOWN",
"NOT_SHOWN",
"CONFIRMED"
],
"description": "статус бронирования"
},
"user": {
"type": "number",
"description": "идентификатор пользователя"
},
"booking_set": {
"type": "number",
"description": "идентификатора букинг сета"
},
"created_at": {
"type": "string",
"description": "дата создания бронирования"
},
"reason": {
"type": "string",
"description": "причина изменения статуса бронирования. например причина отмены"
},
"area": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор корта"
},
"title": {
"type": "string",
"description": "название корта"
},
"created_at": {
"type": "string",
"description": "дата создания"
},
"updated_at": {
"type": "string",
"description": "дата последнего обновления"
},
"parameters": {
"type": "object",
"properties": {
"covering_type": {
"type": "string"
},
"parameter_2": {
"type": "string"
}
},
"description": "параметры корта. значения и ключи управляются из админки Palms."
}
},
"description": "корт бронирования"
},
"club": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор клуба"
},
"title": {
"type": "string",
"description": "название клуба"
},
"subtitle": {
"type": "string",
"description": "видовое описание клуба"
},
"description": {
"type": "string",
"description": "описание клуба. Что он говорит о себе"
},
"prices": {
"type": "string",
"description": "форматированный текст в markdown с ценами клуба"
},
"working_hours_tag": {
"type": "string",
"description": "короткая строка с режимом работы клуба"
},
"pricing_tag": {
"type": "string"
},
"address_tag": {
"type": "string"
},
"contact_phone": {
"type": "string"
},
"contact_phone_two": {
"type": "string"
},
"contact_email": {
"type": "string"
},
"free_services": {
"type": "string",
"description": "описание бесплатный услуг в markdown"
},
"additional_services": {
"type": "string",
"description": "описание дополнительных услуг в markdown"
},
"rules": {
"type": "string",
"description": "описание правил клуба в markdown"
},
"facebook_title": {
"type": "string",
"description": "название FB страницы клуба"
},
"facebook_link": {
"type": "string",
"description": "ссылка на FB страницу клуба"
},
"areas": {
"type": "array",
"description": "корты клуба"
},
"options": {
"type": "object",
"properties": {
"default_cancelation_time": {
"type": "number",
"description": "время в секундах для бесплатной отмены бронирования. Считает от даты старта бронирования. 0 - нет бесплатной отмены"
}
},
"description": "настройки клуба в Palms. Зависит от бизнес-процессов клуба"
},
"features": {
"type": "object",
"properties": {
"online_payments": {
"type": "boolean",
"description": "доступно онлайн оплата"
}
},
"description": "возможности клуба в Palms. Зависит от интеграции и настроек клуба"
},
"coordinates": {
"type": "object",
"properties": {
"latitude": {
"type": "string",
"description": "широта"
},
"longitude": {
"type": "string",
"description": "долгота"
}
},
"description": "координаты клуба"
},
"images": {
"type": "array",
"description": "изображения клуба"
}
},
"description": "клуб бронирования"
},
"payment": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "внутренний идентификатор платежа в системе Palms"
},
"type": {
"type": "string",
"enum": [
"AUTH",
"PAYMENT",
"AUTH"
],
"description": "тип платежа"
},
"checkout_url": {
"type": "string",
"description": "адрес страницы Fondy IPSP для добавления новой карты"
},
"ipsp_id": {
"type": "string",
"description": "идентификатор платежа в платежном шлюзе"
},
"ipsp_type": {
"type": "string",
"description": "название IPSP через которых проводился платеж"
},
"amount": {
"type": "number",
"description": "сумма платежа в копейках/центах без разделителей. 120 - 1 грн 20 коп"
},
"currency": {
"type": "string",
"description": "валюта платежа"
},
"status": {
"type": "string",
"enum": [
"CREATED",
"PROCESSING",
"DECLINED",
"APPROVED",
"EXPIRED",
"REVERSED",
"CREATED"
],
"description": "статус транзакции"
},
"card": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "внутренний идентификатор карты в системе Palms"
},
"mask": {
"type": "string",
"description": "маска номера карты (Fondy.masked_card)"
},
"bin": {
"type": "string",
"description": "бин номер карты (Fondy.card_bin)"
},
"user_id": {
"type": "number",
"description": "ID пользователя - владельца карты\n\n<!-- + token: `da39a3ee5e6b4b0d3255bfef95601890afd80709` (string) - токен карты в IPSP (Fondy.rectoken) -->"
},
"expires_at": {
"type": "string",
"description": "время жизни карты (Fondy.rectoken_lifetime)"
},
"created_at": {
"type": "string",
"description": "дата добавления карты\n\n<!-- + deleted_at: `2019-08-10T00:00:00` (string) - дата удаления карты -->"
}
},
"description": "карта с которой была проведена оплата"
},
"created_at": {
"type": "string",
"description": "дата создание платежная"
},
"processed_at": {
"type": "string",
"description": "дата совершения платежа"
},
"updated_at": {
"type": "string",
"description": "последняя дата обновления платежа"
}
},
"description": "информация об оплате бронирования"
}
}
},
{
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор бронирования"
},
"slot": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор слота"
},
"date_from": {
"type": "string",
"description": "дата и время начала слота"
},
"date_to": {
"type": "string",
"description": "дата и время окончания слота"
},
"status": {
"type": "string",
"enum": [
"AVAILABLE",
"BOOKED",
"DISABLED",
"AVAILABLE"
],
"description": "статус слота"
},
"price": {
"type": "number",
"description": "стоимость бронирования. Целое число без запятых (20000 - 200.00)"
},
"currency": {
"type": "string",
"description": "валюта стоимости."
},
"area": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор корта"
},
"title": {
"type": "string",
"description": "название корта"
},
"created_at": {
"type": "string",
"description": "дата создания"
},
"updated_at": {
"type": "string",
"description": "дата последнего обновления"
},
"parameters": {
"type": "object",
"properties": {
"covering_type": {
"type": "string"
},
"parameter_2": {
"type": "string"
}
},
"description": "параметры корта. значения и ключи управляются из админки Palms."
}
},
"description": "корт, к которому относится слот"
},
"club": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор клуба"
},
"title": {
"type": "string",
"description": "название клуба"
},
"subtitle": {
"type": "string",
"description": "видовое описание клуба"
},
"description": {
"type": "string",
"description": "описание клуба. Что он говорит о себе"
},
"prices": {
"type": "string",
"description": "форматированный текст в markdown с ценами клуба"
},
"working_hours_tag": {
"type": "string",
"description": "короткая строка с режимом работы клуба"
},
"pricing_tag": {
"type": "string"
},
"address_tag": {
"type": "string"
},
"contact_phone": {
"type": "string"
},
"contact_phone_two": {
"type": "string"
},
"contact_email": {
"type": "string"
},
"free_services": {
"type": "string",
"description": "описание бесплатный услуг в markdown"
},
"additional_services": {
"type": "string",
"description": "описание дополнительных услуг в markdown"
},
"rules": {
"type": "string",
"description": "описание правил клуба в markdown"
},
"facebook_title": {
"type": "string",
"description": "название FB страницы клуба"
},
"facebook_link": {
"type": "string",
"description": "ссылка на FB страницу клуба"
},
"areas": {
"type": "array",
"description": "корты клуба"
},
"options": {
"type": "object",
"properties": {
"default_cancelation_time": {
"type": "number",
"description": "время в секундах для бесплатной отмены бронирования. Считает от даты старта бронирования. 0 - нет бесплатной отмены"
}
},
"description": "настройки клуба в Palms. Зависит от бизнес-процессов клуба"
},
"features": {
"type": "object",
"properties": {
"online_payments": {
"type": "boolean",
"description": "доступно онлайн оплата"
}
},
"description": "возможности клуба в Palms. Зависит от интеграции и настроек клуба"
},
"coordinates": {
"type": "object",
"properties": {
"latitude": {
"type": "string",
"description": "широта"
},
"longitude": {
"type": "string",
"description": "долгота"
}
},
"description": "координаты клуба"
},
"images": {
"type": "array",
"description": "изображения клуба"
}
},
"description": "корт, к которому относится слот"
},
"created_at": {
"type": "string",
"description": "дата создания"
},
"updated_at": {
"type": "string",
"description": "дата последнего обновления"
}
},
"description": "слот бронирования"
},
"status": {
"type": "string",
"enum": [
"REQUESTED",
"APPROVED",
"CONFIRMED",
"CANCELED_BY_CUSTOMER",
"CANCELED_BY_CLUB",
"OTHER",
"SHOWN",
"NOT_SHOWN",
"CONFIRMED"
],
"description": "статус бронирования"
},
"user": {
"type": "number",
"description": "идентификатор пользователя"
},
"booking_set": {
"type": "number",
"description": "идентификатора букинг сета"
},
"created_at": {
"type": "string",
"description": "дата создания бронирования"
},
"reason": {
"type": "string",
"description": "причина изменения статуса бронирования. например причина отмены"
},
"area": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор корта"
},
"title": {
"type": "string",
"description": "название корта"
},
"created_at": {
"type": "string",
"description": "дата создания"
},
"updated_at": {
"type": "string",
"description": "дата последнего обновления"
},
"parameters": {
"type": "object",
"properties": {
"covering_type": {
"type": "string"
},
"parameter_2": {
"type": "string"
}
},
"description": "параметры корта. значения и ключи управляются из админки Palms."
}
},
"description": "корт бронирования"
},
"club": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор клуба"
},
"title": {
"type": "string",
"description": "название клуба"
},
"subtitle": {
"type": "string",
"description": "видовое описание клуба"
},
"description": {
"type": "string",
"description": "описание клуба. Что он говорит о себе"
},
"prices": {
"type": "string",
"description": "форматированный текст в markdown с ценами клуба"
},
"working_hours_tag": {
"type": "string",
"description": "короткая строка с режимом работы клуба"
},
"pricing_tag": {
"type": "string"
},
"address_tag": {
"type": "string"
},
"contact_phone": {
"type": "string"
},
"contact_phone_two": {
"type": "string"
},
"contact_email": {
"type": "string"
},
"free_services": {
"type": "string",
"description": "описание бесплатный услуг в markdown"
},
"additional_services": {
"type": "string",
"description": "описание дополнительных услуг в markdown"
},
"rules": {
"type": "string",
"description": "описание правил клуба в markdown"
},
"facebook_title": {
"type": "string",
"description": "название FB страницы клуба"
},
"facebook_link": {
"type": "string",
"description": "ссылка на FB страницу клуба"
},
"areas": {
"type": "array",
"description": "корты клуба"
},
"options": {
"type": "object",
"properties": {
"default_cancelation_time": {
"type": "number",
"description": "время в секундах для бесплатной отмены бронирования. Считает от даты старта бронирования. 0 - нет бесплатной отмены"
}
},
"description": "настройки клуба в Palms. Зависит от бизнес-процессов клуба"
},
"features": {
"type": "object",
"properties": {
"online_payments": {
"type": "boolean",
"description": "доступно онлайн оплата"
}
},
"description": "возможности клуба в Palms. Зависит от интеграции и настроек клуба"
},
"coordinates": {
"type": "object",
"properties": {
"latitude": {
"type": "string",
"description": "широта"
},
"longitude": {
"type": "string",
"description": "долгота"
}
},
"description": "координаты клуба"
},
"images": {
"type": "array",
"description": "изображения клуба"
}
},
"description": "клуб бронирования"
},
"payment": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "внутренний идентификатор платежа в системе Palms"
},
"type": {
"type": "string",
"enum": [
"AUTH",
"PAYMENT",
"AUTH"
],
"description": "тип платежа"
},
"checkout_url": {
"type": "string",
"description": "адрес страницы Fondy IPSP для добавления новой карты"
},
"ipsp_id": {
"type": "string",
"description": "идентификатор платежа в платежном шлюзе"
},
"ipsp_type": {
"type": "string",
"description": "название IPSP через которых проводился платеж"
},
"amount": {
"type": "number",
"description": "сумма платежа в копейках/центах без разделителей. 120 - 1 грн 20 коп"
},
"currency": {
"type": "string",
"description": "валюта платежа"
},
"status": {
"type": "string",
"enum": [
"CREATED",
"PROCESSING",
"DECLINED",
"APPROVED",
"EXPIRED",
"REVERSED",
"CREATED"
],
"description": "статус транзакции"
},
"card": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "внутренний идентификатор карты в системе Palms"
},
"mask": {
"type": "string",
"description": "маска номера карты (Fondy.masked_card)"
},
"bin": {
"type": "string",
"description": "бин номер карты (Fondy.card_bin)"
},
"user_id": {
"type": "number",
"description": "ID пользователя - владельца карты\n\n<!-- + token: `da39a3ee5e6b4b0d3255bfef95601890afd80709` (string) - токен карты в IPSP (Fondy.rectoken) -->"
},
"expires_at": {
"type": "string",
"description": "время жизни карты (Fondy.rectoken_lifetime)"
},
"created_at": {
"type": "string",
"description": "дата добавления карты\n\n<!-- + deleted_at: `2019-08-10T00:00:00` (string) - дата удаления карты -->"
}
},
"description": "карта с которой была проведена оплата"
},
"created_at": {
"type": "string",
"description": "дата создание платежная"
},
"processed_at": {
"type": "string",
"description": "дата совершения платежа"
},
"updated_at": {
"type": "string",
"description": "последняя дата обновления платежа"
}
},
"description": "информация об оплате бронирования"
}
}
},
{
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор бронирования"
},
"slot": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор слота"
},
"date_from": {
"type": "string",
"description": "дата и время начала слота"
},
"date_to": {
"type": "string",
"description": "дата и время окончания слота"
},
"status": {
"type": "string",
"enum": [
"AVAILABLE",
"BOOKED",
"DISABLED",
"AVAILABLE"
],
"description": "статус слота"
},
"price": {
"type": "number",
"description": "стоимость бронирования. Целое число без запятых (20000 - 200.00)"
},
"currency": {
"type": "string",
"description": "валюта стоимости."
},
"area": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор корта"
},
"title": {
"type": "string",
"description": "название корта"
},
"created_at": {
"type": "string",
"description": "дата создания"
},
"updated_at": {
"type": "string",
"description": "дата последнего обновления"
},
"parameters": {
"type": "object",
"properties": {
"covering_type": {
"type": "string"
},
"parameter_2": {
"type": "string"
}
},
"description": "параметры корта. значения и ключи управляются из админки Palms."
}
},
"description": "корт, к которому относится слот"
},
"club": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор клуба"
},
"title": {
"type": "string",
"description": "название клуба"
},
"subtitle": {
"type": "string",
"description": "видовое описание клуба"
},
"description": {
"type": "string",
"description": "описание клуба. Что он говорит о себе"
},
"prices": {
"type": "string",
"description": "форматированный текст в markdown с ценами клуба"
},
"working_hours_tag": {
"type": "string",
"description": "короткая строка с режимом работы клуба"
},
"pricing_tag": {
"type": "string"
},
"address_tag": {
"type": "string"
},
"contact_phone": {
"type": "string"
},
"contact_phone_two": {
"type": "string"
},
"contact_email": {
"type": "string"
},
"free_services": {
"type": "string",
"description": "описание бесплатный услуг в markdown"
},
"additional_services": {
"type": "string",
"description": "описание дополнительных услуг в markdown"
},
"rules": {
"type": "string",
"description": "описание правил клуба в markdown"
},
"facebook_title": {
"type": "string",
"description": "название FB страницы клуба"
},
"facebook_link": {
"type": "string",
"description": "ссылка на FB страницу клуба"
},
"areas": {
"type": "array",
"description": "корты клуба"
},
"options": {
"type": "object",
"properties": {
"default_cancelation_time": {
"type": "number",
"description": "время в секундах для бесплатной отмены бронирования. Считает от даты старта бронирования. 0 - нет бесплатной отмены"
}
},
"description": "настройки клуба в Palms. Зависит от бизнес-процессов клуба"
},
"features": {
"type": "object",
"properties": {
"online_payments": {
"type": "boolean",
"description": "доступно онлайн оплата"
}
},
"description": "возможности клуба в Palms. Зависит от интеграции и настроек клуба"
},
"coordinates": {
"type": "object",
"properties": {
"latitude": {
"type": "string",
"description": "широта"
},
"longitude": {
"type": "string",
"description": "долгота"
}
},
"description": "координаты клуба"
},
"images": {
"type": "array",
"description": "изображения клуба"
}
},
"description": "корт, к которому относится слот"
},
"created_at": {
"type": "string",
"description": "дата создания"
},
"updated_at": {
"type": "string",
"description": "дата последнего обновления"
}
},
"description": "слот бронирования"
},
"status": {
"type": "string",
"enum": [
"REQUESTED",
"APPROVED",
"CONFIRMED",
"CANCELED_BY_CUSTOMER",
"CANCELED_BY_CLUB",
"OTHER",
"SHOWN",
"NOT_SHOWN",
"CONFIRMED"
],
"description": "статус бронирования"
},
"user": {
"type": "number",
"description": "идентификатор пользователя"
},
"booking_set": {
"type": "number",
"description": "идентификатора букинг сета"
},
"created_at": {
"type": "string",
"description": "дата создания бронирования"
},
"reason": {
"type": "string",
"description": "причина изменения статуса бронирования. например причина отмены"
},
"area": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор корта"
},
"title": {
"type": "string",
"description": "название корта"
},
"created_at": {
"type": "string",
"description": "дата создания"
},
"updated_at": {
"type": "string",
"description": "дата последнего обновления"
},
"parameters": {
"type": "object",
"properties": {
"covering_type": {
"type": "string"
},
"parameter_2": {
"type": "string"
}
},
"description": "параметры корта. значения и ключи управляются из админки Palms."
}
},
"description": "корт бронирования"
},
"club": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор клуба"
},
"title": {
"type": "string",
"description": "название клуба"
},
"subtitle": {
"type": "string",
"description": "видовое описание клуба"
},
"description": {
"type": "string",
"description": "описание клуба. Что он говорит о себе"
},
"prices": {
"type": "string",
"description": "форматированный текст в markdown с ценами клуба"
},
"working_hours_tag": {
"type": "string",
"description": "короткая строка с режимом работы клуба"
},
"pricing_tag": {
"type": "string"
},
"address_tag": {
"type": "string"
},
"contact_phone": {
"type": "string"
},
"contact_phone_two": {
"type": "string"
},
"contact_email": {
"type": "string"
},
"free_services": {
"type": "string",
"description": "описание бесплатный услуг в markdown"
},
"additional_services": {
"type": "string",
"description": "описание дополнительных услуг в markdown"
},
"rules": {
"type": "string",
"description": "описание правил клуба в markdown"
},
"facebook_title": {
"type": "string",
"description": "название FB страницы клуба"
},
"facebook_link": {
"type": "string",
"description": "ссылка на FB страницу клуба"
},
"areas": {
"type": "array",
"description": "корты клуба"
},
"options": {
"type": "object",
"properties": {
"default_cancelation_time": {
"type": "number",
"description": "время в секундах для бесплатной отмены бронирования. Считает от даты старта бронирования. 0 - нет бесплатной отмены"
}
},
"description": "настройки клуба в Palms. Зависит от бизнес-процессов клуба"
},
"features": {
"type": "object",
"properties": {
"online_payments": {
"type": "boolean",
"description": "доступно онлайн оплата"
}
},
"description": "возможности клуба в Palms. Зависит от интеграции и настроек клуба"
},
"coordinates": {
"type": "object",
"properties": {
"latitude": {
"type": "string",
"description": "широта"
},
"longitude": {
"type": "string",
"description": "долгота"
}
},
"description": "координаты клуба"
},
"images": {
"type": "array",
"description": "изображения клуба"
}
},
"description": "клуб бронирования"
},
"payment": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "внутренний идентификатор платежа в системе Palms"
},
"type": {
"type": "string",
"enum": [
"AUTH",
"PAYMENT",
"AUTH"
],
"description": "тип платежа"
},
"checkout_url": {
"type": "string",
"description": "адрес страницы Fondy IPSP для добавления новой карты"
},
"ipsp_id": {
"type": "string",
"description": "идентификатор платежа в платежном шлюзе"
},
"ipsp_type": {
"type": "string",
"description": "название IPSP через которых проводился платеж"
},
"amount": {
"type": "number",
"description": "сумма платежа в копейках/центах без разделителей. 120 - 1 грн 20 коп"
},
"currency": {
"type": "string",
"description": "валюта платежа"
},
"status": {
"type": "string",
"enum": [
"CREATED",
"PROCESSING",
"DECLINED",
"APPROVED",
"EXPIRED",
"REVERSED",
"CREATED"
],
"description": "статус транзакции"
},
"card": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "внутренний идентификатор карты в системе Palms"
},
"mask": {
"type": "string",
"description": "маска номера карты (Fondy.masked_card)"
},
"bin": {
"type": "string",
"description": "бин номер карты (Fondy.card_bin)"
},
"user_id": {
"type": "number",
"description": "ID пользователя - владельца карты\n\n<!-- + token: `da39a3ee5e6b4b0d3255bfef95601890afd80709` (string) - токен карты в IPSP (Fondy.rectoken) -->"
},
"expires_at": {
"type": "string",
"description": "время жизни карты (Fondy.rectoken_lifetime)"
},
"created_at": {
"type": "string",
"description": "дата добавления карты\n\n<!-- + deleted_at: `2019-08-10T00:00:00` (string) - дата удаления карты -->"
}
},
"description": "карта с которой была проведена оплата"
},
"created_at": {
"type": "string",
"description": "дата создание платежная"
},
"processed_at": {
"type": "string",
"description": "дата совершения платежа"
},
"updated_at": {
"type": "string",
"description": "последняя дата обновления платежа"
}
},
"description": "информация об оплате бронирования"
}
}
}
]
}
}
}
Оплатить бронирование ¶
Оплатить бронированиеPOST/user/bookings/{id}/pay
Пользователь может оплатить бронирование как с сохраненной картой, так и с новой.
Чтобы оплатить с сохраненной карты - передайте card_id
, а если нужно оплатить с новой - оставьте это поле пустым.
Example URI
- id
number
(required) Example: 10идентификатор бронирования
Headers
Content-Type: application/json
Authorization: Bearer XXXXX
Body
{
"card_id": 1
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"card_id": {
"type": "number",
"description": "id карты для оплаты. не передавайте id оплаты новой картой"
}
}
}
200
Headers
Content-Type: application/json
Body
{
"data": {
"id": 1,
"type": "payment",
"checkout_url": "https://fondy.com/checkout_url"
}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор платежа"
},
"type": {
"type": "string",
"description": "тип платежа"
},
"checkout_url": {
"type": "string",
"description": "адрес страницы Fondy IPSP для добавления новой карты"
}
},
"required": [
"id",
"type",
"checkout_url"
],
"additionalProperties": false
}
}
}
Отменить оплату бронирования ¶
Отменить оплату бронированияDELETE/user/bookings/{id}/payment
Отменить предоплату бронирования, чтобы оплатить другим способом (например, наличкой). Это возможно до наступления статуса APPROVED
. В противном случае клиенту нужно позвонить в клуб для отмены оплаты.
Example URI
- id
number
(required) Example: 10идентификатор бронирования
Headers
Content-Type: application/json
Authorization: Bearer XXXXX
Body
{
"reason": "asdasdas"
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"reason": {
"type": "string",
"description": "причина отмены"
}
}
}
200
Headers
Content-Type: application/json
Body
{
"data": {
"id": 1,
"slot": {
"id": 1,
"date_from": "2019-08-23T12:23:23+00:00Z",
"date_to": "2019-08-23T12:23:23+00:00Z",
"status": "AVAILABLE",
"price": 20000,
"currency": "UAH",
"area": {
"id": 1,
"title": "Корт 1",
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z",
"parameters": {
"covering_type": "hard",
"parameter_2": "value"
}
},
"club": {
"id": 1,
"title": "Palms club",
"subtitle": "Теннисный клуб",
"description": "На линии корта сомкнулись ракетки, Хотелось бы форхенд, но мяч попал в сетку",
"prices": "Форматированный текст в markdown с ценами клуба",
"working_hours_tag": "7:00 - 23:00 без выходных",
"pricing_tag": "270 - 530 грн/час",
"address_tag": "Киев, ул. Академика Ботичелли, 3А",
"contact_phone": "+380441234567",
"contact_phone_two": "+380987654321",
"contact_email": "hello@palms.tennis",
"free_services": "Описание бесплатный услуг в markdown",
"additional_services": "Описание дополнительных услуг в markdown",
"rules": "описание правил клуба в markdown",
"facebook_title": "Теннисный клуб \"Palms\"",
"facebook_link": "https://www.facebook.com/sasha.goreniuk",
"areas": [
{
"id": 1,
"title": "Корт 1",
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z",
"parameters": {
"covering_type": "hard",
"parameter_2": "value"
}
}
],
"options": {
"default_cancelation_time": 10800
},
"features": {
"online_payments": true
},
"coordinates": {
"latitude": "50.26421",
"longitude": "30.31432"
},
"images": [
"https://domain.com",
"https://domain.com",
"https://domain.com",
"https://domain.com"
]
},
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z"
},
"status": "CONFIRMED",
"user": 3,
"booking_set": 1,
"created_at": "2019-05-23T10:44:01.881000+03:00",
"reason": "it's just okay",
"area": {
"id": 1,
"title": "Корт 1",
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z",
"parameters": {
"covering_type": "hard",
"parameter_2": "value"
}
},
"club": {
"id": 1,
"title": "Palms club",
"subtitle": "Теннисный клуб",
"description": "На линии корта сомкнулись ракетки, Хотелось бы форхенд, но мяч попал в сетку",
"prices": "Форматированный текст в markdown с ценами клуба",
"working_hours_tag": "7:00 - 23:00 без выходных",
"pricing_tag": "270 - 530 грн/час",
"address_tag": "Киев, ул. Академика Ботичелли, 3А",
"contact_phone": "+380441234567",
"contact_phone_two": "+380987654321",
"contact_email": "hello@palms.tennis",
"free_services": "Описание бесплатный услуг в markdown",
"additional_services": "Описание дополнительных услуг в markdown",
"rules": "описание правил клуба в markdown",
"facebook_title": "Теннисный клуб \"Palms\"",
"facebook_link": "https://www.facebook.com/sasha.goreniuk",
"areas": [
{
"id": 1,
"title": "Корт 1",
"created_at": "2019-08-23T12:23:23+00:00Z",
"updated_at": "2019-08-23T12:23:23+00:00Z",
"parameters": {
"covering_type": "hard",
"parameter_2": "value"
}
}
],
"options": {
"default_cancelation_time": 10800
},
"features": {
"online_payments": true
},
"coordinates": {
"latitude": "50.26421",
"longitude": "30.31432"
},
"images": [
"https://domain.com",
"https://domain.com",
"https://domain.com",
"https://domain.com"
]
},
"payment": {
"id": 1,
"type": "AUTH",
"checkout_url": "https://fondy.com/checkout_url",
"ipsp_id": "ipsp_id_eg_1",
"ipsp_type": "fondy",
"amount": 120,
"currency": "UAH",
"status": "CREATED",
"card": {
"id": 1,
"mask": "443322*1234",
"bin": "443322",
"user_id": 1,
"expires_at": "2019-08-10T00:00:00",
"created_at": "2019-08-10T00:00:00"
},
"created_at": "2019-08-10T00:00:00",
"processed_at": "2019-08-10T00:00:00",
"updated_at": "2019-08-10T00:00:00"
}
}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор бронирования"
},
"slot": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор слота"
},
"date_from": {
"type": "string",
"description": "дата и время начала слота"
},
"date_to": {
"type": "string",
"description": "дата и время окончания слота"
},
"status": {
"type": "string",
"enum": [
"AVAILABLE",
"BOOKED",
"DISABLED",
"AVAILABLE"
],
"description": "статус слота"
},
"price": {
"type": "number",
"description": "стоимость бронирования. Целое число без запятых (20000 - 200.00)"
},
"currency": {
"type": "string",
"description": "валюта стоимости."
},
"area": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор корта"
},
"title": {
"type": "string",
"description": "название корта"
},
"created_at": {
"type": "string",
"description": "дата создания"
},
"updated_at": {
"type": "string",
"description": "дата последнего обновления"
},
"parameters": {
"type": "object",
"properties": {
"covering_type": {
"type": "string"
},
"parameter_2": {
"type": "string"
}
},
"description": "параметры корта. значения и ключи управляются из админки Palms."
}
},
"description": "корт, к которому относится слот"
},
"club": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор клуба"
},
"title": {
"type": "string",
"description": "название клуба"
},
"subtitle": {
"type": "string",
"description": "видовое описание клуба"
},
"description": {
"type": "string",
"description": "описание клуба. Что он говорит о себе"
},
"prices": {
"type": "string",
"description": "форматированный текст в markdown с ценами клуба"
},
"working_hours_tag": {
"type": "string",
"description": "короткая строка с режимом работы клуба"
},
"pricing_tag": {
"type": "string"
},
"address_tag": {
"type": "string"
},
"contact_phone": {
"type": "string"
},
"contact_phone_two": {
"type": "string"
},
"contact_email": {
"type": "string"
},
"free_services": {
"type": "string",
"description": "описание бесплатный услуг в markdown"
},
"additional_services": {
"type": "string",
"description": "описание дополнительных услуг в markdown"
},
"rules": {
"type": "string",
"description": "описание правил клуба в markdown"
},
"facebook_title": {
"type": "string",
"description": "название FB страницы клуба"
},
"facebook_link": {
"type": "string",
"description": "ссылка на FB страницу клуба"
},
"areas": {
"type": "array",
"description": "корты клуба"
},
"options": {
"type": "object",
"properties": {
"default_cancelation_time": {
"type": "number",
"description": "время в секундах для бесплатной отмены бронирования. Считает от даты старта бронирования. 0 - нет бесплатной отмены"
}
},
"description": "настройки клуба в Palms. Зависит от бизнес-процессов клуба"
},
"features": {
"type": "object",
"properties": {
"online_payments": {
"type": "boolean",
"description": "доступно онлайн оплата"
}
},
"description": "возможности клуба в Palms. Зависит от интеграции и настроек клуба"
},
"coordinates": {
"type": "object",
"properties": {
"latitude": {
"type": "string",
"description": "широта"
},
"longitude": {
"type": "string",
"description": "долгота"
}
},
"description": "координаты клуба"
},
"images": {
"type": "array",
"description": "изображения клуба"
}
},
"description": "корт, к которому относится слот"
},
"created_at": {
"type": "string",
"description": "дата создания"
},
"updated_at": {
"type": "string",
"description": "дата последнего обновления"
}
},
"description": "слот бронирования"
},
"status": {
"type": "string",
"enum": [
"REQUESTED",
"APPROVED",
"CONFIRMED",
"CANCELED_BY_CUSTOMER",
"CANCELED_BY_CLUB",
"OTHER",
"SHOWN",
"NOT_SHOWN",
"CONFIRMED"
],
"description": "статус бронирования"
},
"user": {
"type": "number",
"description": "идентификатор пользователя"
},
"booking_set": {
"type": "number",
"description": "идентификатора букинг сета"
},
"created_at": {
"type": "string",
"description": "дата создания бронирования"
},
"reason": {
"type": "string",
"description": "причина изменения статуса бронирования. например причина отмены"
},
"area": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор корта"
},
"title": {
"type": "string",
"description": "название корта"
},
"created_at": {
"type": "string",
"description": "дата создания"
},
"updated_at": {
"type": "string",
"description": "дата последнего обновления"
},
"parameters": {
"type": "object",
"properties": {
"covering_type": {
"type": "string"
},
"parameter_2": {
"type": "string"
}
},
"description": "параметры корта. значения и ключи управляются из админки Palms."
}
},
"description": "корт бронирования"
},
"club": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор клуба"
},
"title": {
"type": "string",
"description": "название клуба"
},
"subtitle": {
"type": "string",
"description": "видовое описание клуба"
},
"description": {
"type": "string",
"description": "описание клуба. Что он говорит о себе"
},
"prices": {
"type": "string",
"description": "форматированный текст в markdown с ценами клуба"
},
"working_hours_tag": {
"type": "string",
"description": "короткая строка с режимом работы клуба"
},
"pricing_tag": {
"type": "string"
},
"address_tag": {
"type": "string"
},
"contact_phone": {
"type": "string"
},
"contact_phone_two": {
"type": "string"
},
"contact_email": {
"type": "string"
},
"free_services": {
"type": "string",
"description": "описание бесплатный услуг в markdown"
},
"additional_services": {
"type": "string",
"description": "описание дополнительных услуг в markdown"
},
"rules": {
"type": "string",
"description": "описание правил клуба в markdown"
},
"facebook_title": {
"type": "string",
"description": "название FB страницы клуба"
},
"facebook_link": {
"type": "string",
"description": "ссылка на FB страницу клуба"
},
"areas": {
"type": "array",
"description": "корты клуба"
},
"options": {
"type": "object",
"properties": {
"default_cancelation_time": {
"type": "number",
"description": "время в секундах для бесплатной отмены бронирования. Считает от даты старта бронирования. 0 - нет бесплатной отмены"
}
},
"description": "настройки клуба в Palms. Зависит от бизнес-процессов клуба"
},
"features": {
"type": "object",
"properties": {
"online_payments": {
"type": "boolean",
"description": "доступно онлайн оплата"
}
},
"description": "возможности клуба в Palms. Зависит от интеграции и настроек клуба"
},
"coordinates": {
"type": "object",
"properties": {
"latitude": {
"type": "string",
"description": "широта"
},
"longitude": {
"type": "string",
"description": "долгота"
}
},
"description": "координаты клуба"
},
"images": {
"type": "array",
"description": "изображения клуба"
}
},
"description": "клуб бронирования"
},
"payment": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "внутренний идентификатор платежа в системе Palms"
},
"type": {
"type": "string",
"enum": [
"AUTH",
"PAYMENT",
"AUTH"
],
"description": "тип платежа"
},
"checkout_url": {
"type": "string",
"description": "адрес страницы Fondy IPSP для добавления новой карты"
},
"ipsp_id": {
"type": "string",
"description": "идентификатор платежа в платежном шлюзе"
},
"ipsp_type": {
"type": "string",
"description": "название IPSP через которых проводился платеж"
},
"amount": {
"type": "number",
"description": "сумма платежа в копейках/центах без разделителей. 120 - 1 грн 20 коп"
},
"currency": {
"type": "string",
"description": "валюта платежа"
},
"status": {
"type": "string",
"enum": [
"CREATED",
"PROCESSING",
"DECLINED",
"APPROVED",
"EXPIRED",
"REVERSED",
"CREATED"
],
"description": "статус транзакции"
},
"card": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "внутренний идентификатор карты в системе Palms"
},
"mask": {
"type": "string",
"description": "маска номера карты (Fondy.masked_card)"
},
"bin": {
"type": "string",
"description": "бин номер карты (Fondy.card_bin)"
},
"user_id": {
"type": "number",
"description": "ID пользователя - владельца карты\n\n<!-- + token: `da39a3ee5e6b4b0d3255bfef95601890afd80709` (string) - токен карты в IPSP (Fondy.rectoken) -->"
},
"expires_at": {
"type": "string",
"description": "время жизни карты (Fondy.rectoken_lifetime)"
},
"created_at": {
"type": "string",
"description": "дата добавления карты\n\n<!-- + deleted_at: `2019-08-10T00:00:00` (string) - дата удаления карты -->"
}
},
"description": "карта с которой была проведена оплата"
},
"created_at": {
"type": "string",
"description": "дата создание платежная"
},
"processed_at": {
"type": "string",
"description": "дата совершения платежа"
},
"updated_at": {
"type": "string",
"description": "последняя дата обновления платежа"
}
},
"description": "информация об оплате бронирования"
}
},
"required": [
"id",
"status",
"user",
"booking_set",
"created_at",
"area",
"club",
"payment"
],
"additionalProperties": false
}
}
}
403
Headers
Content-Type: application/json
404
Headers
Content-Type: application/json
Карты ¶
Карта - платежная карта пользователя. Она используется для списания/оплаты средств за бронирование.
Получить мои карты ¶
Получить мои картыGET/user/cards{?page_size,page}
Example URI
- page_size
number
(optional) Example: 10количество записей на странице
- page
number
(optional) Example: 1номер страницы
Headers
Content-Type: application/json
Authorization: Bearer XXXXX
200
Headers
Content-Type: application/json
Body
{
"meta": {
"pagination": {
"total_number": 22,
"current_page": 1,
"total_pages": 2,
"page_size": 20
}
},
"data": [
{
"id": 1,
"mask": "443322*1234",
"bin": "443322",
"user_id": 1,
"expires_at": "2019-08-10T00:00:00",
"created_at": "2019-08-10T00:00:00"
},
{
"id": 1,
"mask": "443322*1234",
"bin": "443322",
"user_id": 1,
"expires_at": "2019-08-10T00:00:00",
"created_at": "2019-08-10T00:00:00"
}
]
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"meta": {
"type": "object",
"properties": {
"pagination": {
"type": "object",
"properties": {
"total_number": {
"type": "number",
"description": "общее количество сущностей"
},
"current_page": {
"type": "number",
"description": "текущая страница"
},
"total_pages": {
"type": "number",
"description": "всего страниц"
},
"page_size": {
"type": "number",
"description": "записей на страницу"
}
}
}
}
},
"data": {
"type": "array",
"items": [
{
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "внутренний идентификатор карты в системе Palms"
},
"mask": {
"type": "string",
"description": "маска номера карты (Fondy.masked_card)"
},
"bin": {
"type": "string",
"description": "бин номер карты (Fondy.card_bin)"
},
"user_id": {
"type": "number",
"description": "ID пользователя - владельца карты\n\n<!-- + token: `da39a3ee5e6b4b0d3255bfef95601890afd80709` (string) - токен карты в IPSP (Fondy.rectoken) -->"
},
"expires_at": {
"type": "string",
"description": "время жизни карты (Fondy.rectoken_lifetime)"
},
"created_at": {
"type": "string",
"description": "дата добавления карты\n\n<!-- + deleted_at: `2019-08-10T00:00:00` (string) - дата удаления карты -->"
}
}
},
{
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "внутренний идентификатор карты в системе Palms"
},
"mask": {
"type": "string",
"description": "маска номера карты (Fondy.masked_card)"
},
"bin": {
"type": "string",
"description": "бин номер карты (Fondy.card_bin)"
},
"user_id": {
"type": "number",
"description": "ID пользователя - владельца карты\n\n<!-- + token: `da39a3ee5e6b4b0d3255bfef95601890afd80709` (string) - токен карты в IPSP (Fondy.rectoken) -->"
},
"expires_at": {
"type": "string",
"description": "время жизни карты (Fondy.rectoken_lifetime)"
},
"created_at": {
"type": "string",
"description": "дата добавления карты\n\n<!-- + deleted_at: `2019-08-10T00:00:00` (string) - дата удаления карты -->"
}
}
}
]
}
}
}
Получить свою карту по id ¶
Получить свою карту по idGET/user/cards/{id}
Example URI
- id
number
(required) Example: 10идентификатор карты
Headers
Content-Type: application/json
Authorization: Bearer XXXXX
200
Headers
Content-Type: application/json
Body
{
"data": {
"id": 1,
"mask": "443322*1234",
"bin": "443322",
"user_id": 1,
"expires_at": "2019-08-10T00:00:00",
"created_at": "2019-08-10T00:00:00"
}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "внутренний идентификатор карты в системе Palms"
},
"mask": {
"type": "string",
"description": "маска номера карты (Fondy.masked_card)"
},
"bin": {
"type": "string",
"description": "бин номер карты (Fondy.card_bin)"
},
"user_id": {
"type": "number",
"description": "ID пользователя - владельца карты\n\n<!-- + token: `da39a3ee5e6b4b0d3255bfef95601890afd80709` (string) - токен карты в IPSP (Fondy.rectoken) -->"
},
"expires_at": {
"type": "string",
"description": "время жизни карты (Fondy.rectoken_lifetime)"
},
"created_at": {
"type": "string",
"description": "дата добавления карты\n\n<!-- + deleted_at: `2019-08-10T00:00:00` (string) - дата удаления карты -->"
}
},
"required": [
"id",
"mask",
"bin",
"user_id",
"expires_at",
"created_at"
],
"additionalProperties": false
}
}
}
Удалить карту ¶
Удалить картуDELETE/user/cards/{id}
При удалении карты мы затираем токен каты и ее нельзя больше использовать для оплат на IPSP
Example URI
- id
number
(required) Example: 10идентификатор карты
Headers
Content-Type: application/json
Authorization: Bearer XXXXX
200
Headers
Content-Type: application/json
Добавить новую карту ¶
Добавить новую картуPOST/user/cards
Для добавления новой карты без оплаты услуг нужно получить checkout_url
и использовать страницу IPSP для добавления карты. Для встраивания формы добавления в приложения можно воспользоваться Vue JS виджетом от Fondy IPSP.
Example URI
Headers
Content-Type: application/json
Authorization: Bearer XXXXX
200
Headers
Content-Type: application/json
Body
{
"data": {
"id": 1,
"type": "auth",
"checkout_url": "https://fondy.com/checkout_url"
}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор платежа"
},
"type": {
"type": "string",
"description": "тип платежа"
},
"checkout_url": {
"type": "string",
"description": "адрес страницы Fondy IPSP для добавления новой карты"
}
},
"required": [
"id",
"type",
"checkout_url"
],
"additionalProperties": false
}
}
}
Платежи ¶
Платежи - информация об оплатах и других финансовых транзакциях, которые Palms инициировал от имени клиента в IPSP.
Статусы платежей
Статус | Описание |
---|---|
CREATED |
Платеж создан, но не оплачен |
PROCESSING |
Платеж в обработке |
DECLINED |
Платеж не прошел |
APPROVED |
Плаатеж прошел успешно |
EXPIRED |
Вышло время оплаты платежа. Его больше нельзя оплатить |
REVERSED |
Платеж отменен. Средства вернутся плательщику |
Получить мои платежи ¶
Получить мои платежиGET/user/payments{?page_size,page,statuses,payment_method,date_from,date_to}
Example URI
- page_size
number
(optional) Example: 10количество записей на странице
- page
number
(optional) Example: 1номер страницы
- statuses
string
(optional) Example: APPROVED,DECLINED(фильтр) статус бронирования
- date_from
string
(optional) Example: 2019-05-14вернуть платежи после указанной даты
- date_to
string
(optional) Example: 2019-05-15вернуть платежи до указанной даты
- payment_method
string
(optional) Example: ONLINE,CASH,SUBSCRIPTION(фильтр) тип платежа
Headers
Content-Type: application/json
Authorization: Bearer XXXXX
200
Headers
Content-Type: application/json
Body
{
"meta": {
"pagination": {
"total_number": 22,
"current_page": 1,
"total_pages": 2,
"page_size": 20
}
},
"data": [
{
"id": 1,
"type": "AUTH",
"checkout_url": "https://fondy.com/checkout_url",
"ipsp_id": "ipsp_id_eg_1",
"ipsp_type": "fondy",
"amount": 120,
"currency": "UAH",
"status": "CREATED",
"card": {
"id": 1,
"mask": "443322*1234",
"bin": "443322",
"user_id": 1,
"expires_at": "2019-08-10T00:00:00",
"created_at": "2019-08-10T00:00:00"
},
"created_at": "2019-08-10T00:00:00",
"processed_at": "2019-08-10T00:00:00",
"updated_at": "2019-08-10T00:00:00"
},
{
"id": 1,
"type": "AUTH",
"checkout_url": "https://fondy.com/checkout_url",
"ipsp_id": "ipsp_id_eg_1",
"ipsp_type": "fondy",
"amount": 120,
"currency": "UAH",
"status": "CREATED",
"card": {
"id": 1,
"mask": "443322*1234",
"bin": "443322",
"user_id": 1,
"expires_at": "2019-08-10T00:00:00",
"created_at": "2019-08-10T00:00:00"
},
"created_at": "2019-08-10T00:00:00",
"processed_at": "2019-08-10T00:00:00",
"updated_at": "2019-08-10T00:00:00"
}
]
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"meta": {
"type": "object",
"properties": {
"pagination": {
"type": "object",
"properties": {
"total_number": {
"type": "number",
"description": "общее количество сущностей"
},
"current_page": {
"type": "number",
"description": "текущая страница"
},
"total_pages": {
"type": "number",
"description": "всего страниц"
},
"page_size": {
"type": "number",
"description": "записей на страницу"
}
}
}
}
},
"data": {
"type": "array",
"items": [
{
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "внутренний идентификатор платежа в системе Palms"
},
"type": {
"type": "string",
"enum": [
"AUTH",
"PAYMENT",
"AUTH"
],
"description": "тип платежа"
},
"checkout_url": {
"type": "string",
"description": "адрес страницы Fondy IPSP для добавления новой карты"
},
"ipsp_id": {
"type": "string",
"description": "идентификатор платежа в платежном шлюзе"
},
"ipsp_type": {
"type": "string",
"description": "название IPSP через которых проводился платеж"
},
"amount": {
"type": "number",
"description": "сумма платежа в копейках/центах без разделителей. 120 - 1 грн 20 коп"
},
"currency": {
"type": "string",
"description": "валюта платежа"
},
"status": {
"type": "string",
"enum": [
"CREATED",
"PROCESSING",
"DECLINED",
"APPROVED",
"EXPIRED",
"REVERSED",
"CREATED"
],
"description": "статус транзакции"
},
"card": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "внутренний идентификатор карты в системе Palms"
},
"mask": {
"type": "string",
"description": "маска номера карты (Fondy.masked_card)"
},
"bin": {
"type": "string",
"description": "бин номер карты (Fondy.card_bin)"
},
"user_id": {
"type": "number",
"description": "ID пользователя - владельца карты\n\n<!-- + token: `da39a3ee5e6b4b0d3255bfef95601890afd80709` (string) - токен карты в IPSP (Fondy.rectoken) -->"
},
"expires_at": {
"type": "string",
"description": "время жизни карты (Fondy.rectoken_lifetime)"
},
"created_at": {
"type": "string",
"description": "дата добавления карты\n\n<!-- + deleted_at: `2019-08-10T00:00:00` (string) - дата удаления карты -->"
}
},
"description": "карта с которой была проведена оплата"
},
"created_at": {
"type": "string",
"description": "дата создание платежная"
},
"processed_at": {
"type": "string",
"description": "дата совершения платежа"
},
"updated_at": {
"type": "string",
"description": "последняя дата обновления платежа"
}
}
},
{
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "внутренний идентификатор платежа в системе Palms"
},
"type": {
"type": "string",
"enum": [
"AUTH",
"PAYMENT",
"AUTH"
],
"description": "тип платежа"
},
"checkout_url": {
"type": "string",
"description": "адрес страницы Fondy IPSP для добавления новой карты"
},
"ipsp_id": {
"type": "string",
"description": "идентификатор платежа в платежном шлюзе"
},
"ipsp_type": {
"type": "string",
"description": "название IPSP через которых проводился платеж"
},
"amount": {
"type": "number",
"description": "сумма платежа в копейках/центах без разделителей. 120 - 1 грн 20 коп"
},
"currency": {
"type": "string",
"description": "валюта платежа"
},
"status": {
"type": "string",
"enum": [
"CREATED",
"PROCESSING",
"DECLINED",
"APPROVED",
"EXPIRED",
"REVERSED",
"CREATED"
],
"description": "статус транзакции"
},
"card": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "внутренний идентификатор карты в системе Palms"
},
"mask": {
"type": "string",
"description": "маска номера карты (Fondy.masked_card)"
},
"bin": {
"type": "string",
"description": "бин номер карты (Fondy.card_bin)"
},
"user_id": {
"type": "number",
"description": "ID пользователя - владельца карты\n\n<!-- + token: `da39a3ee5e6b4b0d3255bfef95601890afd80709` (string) - токен карты в IPSP (Fondy.rectoken) -->"
},
"expires_at": {
"type": "string",
"description": "время жизни карты (Fondy.rectoken_lifetime)"
},
"created_at": {
"type": "string",
"description": "дата добавления карты\n\n<!-- + deleted_at: `2019-08-10T00:00:00` (string) - дата удаления карты -->"
}
},
"description": "карта с которой была проведена оплата"
},
"created_at": {
"type": "string",
"description": "дата создание платежная"
},
"processed_at": {
"type": "string",
"description": "дата совершения платежа"
},
"updated_at": {
"type": "string",
"description": "последняя дата обновления платежа"
}
}
}
]
}
}
}
Получить платеж по ID ¶
Получить платеж по IDGET/payments/{id}
Example URI
- id
number
(required) Example: 10идентификатор транзакции
Headers
Content-Type: application/json
Authorization: Bearer XXXXX
200
Headers
Content-Type: application/json
Body
{
"data": {
"id": 1,
"type": "AUTH",
"checkout_url": "https://fondy.com/checkout_url",
"ipsp_id": "ipsp_id_eg_1",
"ipsp_type": "fondy",
"amount": 120,
"currency": "UAH",
"status": "CREATED",
"card": {
"id": 1,
"mask": "443322*1234",
"bin": "443322",
"user_id": 1,
"expires_at": "2019-08-10T00:00:00",
"created_at": "2019-08-10T00:00:00"
},
"created_at": "2019-08-10T00:00:00",
"processed_at": "2019-08-10T00:00:00",
"updated_at": "2019-08-10T00:00:00"
}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "внутренний идентификатор платежа в системе Palms"
},
"type": {
"type": "string",
"enum": [
"AUTH",
"PAYMENT",
"AUTH"
],
"description": "тип платежа"
},
"checkout_url": {
"type": "string",
"description": "адрес страницы Fondy IPSP для добавления новой карты"
},
"ipsp_id": {
"type": "string",
"description": "идентификатор платежа в платежном шлюзе"
},
"ipsp_type": {
"type": "string",
"description": "название IPSP через которых проводился платеж"
},
"amount": {
"type": "number",
"description": "сумма платежа в копейках/центах без разделителей. 120 - 1 грн 20 коп"
},
"currency": {
"type": "string",
"description": "валюта платежа"
},
"status": {
"type": "string",
"enum": [
"CREATED",
"PROCESSING",
"DECLINED",
"APPROVED",
"EXPIRED",
"REVERSED",
"CREATED"
],
"description": "статус транзакции"
},
"card": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "внутренний идентификатор карты в системе Palms"
},
"mask": {
"type": "string",
"description": "маска номера карты (Fondy.masked_card)"
},
"bin": {
"type": "string",
"description": "бин номер карты (Fondy.card_bin)"
},
"user_id": {
"type": "number",
"description": "ID пользователя - владельца карты\n\n<!-- + token: `da39a3ee5e6b4b0d3255bfef95601890afd80709` (string) - токен карты в IPSP (Fondy.rectoken) -->"
},
"expires_at": {
"type": "string",
"description": "время жизни карты (Fondy.rectoken_lifetime)"
},
"created_at": {
"type": "string",
"description": "дата добавления карты\n\n<!-- + deleted_at: `2019-08-10T00:00:00` (string) - дата удаления карты -->"
}
},
"description": "карта с которой была проведена оплата"
},
"created_at": {
"type": "string",
"description": "дата создание платежная"
},
"processed_at": {
"type": "string",
"description": "дата совершения платежа"
},
"updated_at": {
"type": "string",
"description": "последняя дата обновления платежа"
}
},
"required": [
"id",
"type",
"checkout_url",
"ipsp_id",
"ipsp_type",
"amount",
"currency",
"status",
"card",
"created_at",
"processed_at",
"updated_at"
],
"additionalProperties": false
}
}
}
Уведомления ¶
Уведомления - различного рода информационные и другие сообщения, которые Palms отправляет клиенту на устройство. У нас сейчас поддерживается СМС и Push. Цель данного АПИ - настроить логику отправки уведомлений и настроить каналы отправок.
Добавить или оновить Push токен ¶
Добавить или оновить Push токенPOST/user/notifications/config/push
Example URI
Headers
Content-Type: application/json
Authorization: Bearer XXXXX
Body
{
"fcm_token": "123i12n3i12n3i12n3012n309123"
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"fcm_token": {
"type": "string",
"description": "токен полученный на клиент от провайдера Push сообщений"
}
}
}
200
Headers
Content-Type: application/json
404
Headers
Content-Type: application/json
Абонементы ¶
Получить список ¶
Получить списокGET/subscriptions{?page_size,page,club_id}
Example URI
- page_size
number
(optional) Example: 1количество записей на странице
- page
number
(optional) Example: 10номер страницы
- club_id
number
(optional) Example: 1фильтр по клубу
Headers
Content-Type: application/json
Authorization: Bearer XXXXX
200
Headers
Content-Type: application/json
Body
{
"meta": {
"pagination": {
"total_number": 22,
"current_page": 1,
"total_pages": 2,
"page_size": 20
}
},
"data": [
{
"id": 1,
"title": "somestring",
"club": "Palms Club",
"price": 50000,
"games_number": 10,
"validity_period": 365,
"area_types": [
{
"id": 1,
"title": "Somestring",
"value": "somestring",
"logo": "https://foo.bar/some.img"
},
{
"id": 1,
"title": "Somestring",
"value": "somestring",
"logo": "https://foo.bar/some.img"
}
],
"day_weeks": [
"1",
"2",
"3"
],
"hours": [
"8",
"20"
],
"active": true
},
{
"id": 1,
"title": "somestring",
"club": "Palms Club",
"price": 50000,
"games_number": 10,
"validity_period": 365,
"area_types": [
{
"id": 1,
"title": "Somestring",
"value": "somestring",
"logo": "https://foo.bar/some.img"
},
{
"id": 1,
"title": "Somestring",
"value": "somestring",
"logo": "https://foo.bar/some.img"
}
],
"day_weeks": [
"1",
"2",
"3"
],
"hours": [
"8",
"20"
],
"active": true
}
]
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"meta": {
"type": "object",
"properties": {
"pagination": {
"type": "object",
"properties": {
"total_number": {
"type": "number",
"description": "общее количество сущностей"
},
"current_page": {
"type": "number",
"description": "текущая страница"
},
"total_pages": {
"type": "number",
"description": "всего страниц"
},
"page_size": {
"type": "number",
"description": "записей на страницу"
}
}
}
}
},
"data": {
"type": "array",
"items": [
{
"type": "object",
"properties": {
"id": {
"type": "number"
},
"title": {
"type": "string",
"description": "тайтл"
},
"club": {
"type": "string"
},
"price": {
"type": "number"
},
"games_number": {
"type": "number",
"description": "количестко игр. При оплате будет вычитаться, при рефанде будет добавляться"
},
"validity_period": {
"type": "number",
"description": "количство дней действительности абонемента"
},
"area_types": {
"type": "array",
"description": "типы зон бронирования"
},
"day_weeks": {
"type": "array",
"description": "дни недели"
},
"hours": {
"type": "array",
"description": "часы по которым абонемент действует"
},
"active": {
"type": "boolean"
}
}
},
{
"type": "object",
"properties": {
"id": {
"type": "number"
},
"title": {
"type": "string",
"description": "тайтл"
},
"club": {
"type": "string"
},
"price": {
"type": "number"
},
"games_number": {
"type": "number",
"description": "количестко игр. При оплате будет вычитаться, при рефанде будет добавляться"
},
"validity_period": {
"type": "number",
"description": "количство дней действительности абонемента"
},
"area_types": {
"type": "array",
"description": "типы зон бронирования"
},
"day_weeks": {
"type": "array",
"description": "дни недели"
},
"hours": {
"type": "array",
"description": "часы по которым абонемент действует"
},
"active": {
"type": "boolean"
}
}
}
]
}
}
}
Получить модель ¶
Получить модельGET/subscriptions/{id}
Example URI
- id
number
(required) Example: 1идентификатор абонемента
Headers
Content-Type: application/json
Authorization: Bearer XXXXX
200
Headers
Content-Type: application/json
Body
{
"data": {
"id": 1,
"title": "somestring",
"club": "Palms Club",
"price": 50000,
"games_number": 10,
"validity_period": 365,
"area_types": [
{
"id": 1,
"title": "Somestring",
"value": "somestring",
"logo": "https://foo.bar/some.img"
},
{
"id": 1,
"title": "Somestring",
"value": "somestring",
"logo": "https://foo.bar/some.img"
}
],
"day_weeks": [
"1",
"2",
"3"
],
"hours": [
"8",
"20"
],
"active": true
}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"title": {
"type": "string",
"description": "тайтл"
},
"club": {
"type": "string"
},
"price": {
"type": "number"
},
"games_number": {
"type": "number",
"description": "количестко игр. При оплате будет вычитаться, при рефанде будет добавляться"
},
"validity_period": {
"type": "number",
"description": "количство дней действительности абонемента"
},
"area_types": {
"type": "array",
"description": "типы зон бронирования"
},
"day_weeks": {
"type": "array",
"description": "дни недели"
},
"hours": {
"type": "array",
"description": "часы по которым абонемент действует"
},
"active": {
"type": "boolean"
}
},
"required": [
"id",
"title",
"club",
"price",
"games_number",
"validity_period",
"area_types",
"day_weeks",
"hours",
"active"
],
"additionalProperties": false
}
}
}
Купить абонемент ¶
Купить абонементPOST/subscriptions/{id}/buy
Example URI
- id
number
(required) Example: 1идентификатор абонемента
Headers
Content-Type: application/json
Authorization: Bearer XXXXX
Body
{
"card_id": 1
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"card_id": {
"type": "number"
}
},
"required": [
"card_id"
]
}
200
Headers
Content-Type: application/json
Body
{
"data": {
"id": 1,
"title": "somestring",
"club": "Club",
"price": 50000,
"currency": "UAH",
"user": {
"id": 1,
"phone_number": "+380938765432",
"name": "Сергей",
"profile_picture": "https://example.com",
"verified_at": "2019-06-25T23:23:23",
"facebook_id": "123456",
"has_password": true
},
"games_number": 10,
"validity_period": 365,
"description": "text",
"color": "#ffffff",
"payment": {
"id": 1,
"type": "AUTH",
"checkout_url": "https://fondy.com/checkout_url",
"ipsp_id": "ipsp_id_eg_1",
"ipsp_type": "fondy",
"amount": 120,
"currency": "UAH",
"status": "CREATED",
"card": {
"id": 1,
"mask": "443322*1234",
"bin": "443322",
"user_id": 1,
"expires_at": "2019-08-10T00:00:00",
"created_at": "2019-08-10T00:00:00"
},
"created_at": "2019-08-10T00:00:00",
"processed_at": "2019-08-10T00:00:00",
"updated_at": "2019-08-10T00:00:00"
},
"is_valid": true,
"area_types": [
{
"id": 1,
"title": "Somestring",
"value": "somestring",
"logo": "https://foo.bar/some.img"
},
{
"id": 1,
"title": "Somestring",
"value": "somestring",
"logo": "https://foo.bar/some.img"
}
]
}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"title": {
"type": "string",
"description": "тайтл"
},
"club": {
"type": "string",
"description": "имя клуба"
},
"price": {
"type": "number"
},
"currency": {
"type": "string",
"description": "валюта"
},
"user": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор пользователя"
},
"phone_number": {
"type": "string",
"description": "номер телефона пользователя"
},
"name": {
"type": "string",
"description": "имя пользователя"
},
"profile_picture": {
"type": "string",
"description": "изображение профиля пользователя"
},
"verified_at": {
"type": "string",
"description": "время завершения проверки пользователя. если установлен, значит пользователь подтвредил телефон и он может пользоваться Palms."
},
"facebook_id": {
"type": "string",
"description": "id пользоваля в Facebook. Устанавливается, если клиент зарегистрировался с Facebook или вошел в привязал ее к своей учетной записи"
},
"has_password": {
"type": "boolean",
"description": "флаг указывающий на наличие установленного пароля. Пользователь может зарегистрироваться через соц сети и не указать пароль."
}
},
"description": "пользователь, который купил абонемент"
},
"games_number": {
"type": "number",
"description": "количестко игр. При оплате будет вычитаться, при рефанде будет добавляться"
},
"validity_period": {
"type": "number",
"description": "количство дней действительности абонемента"
},
"description": {
"type": "string",
"description": "описание"
},
"color": {
"type": "string",
"description": "цвет бекграунда"
},
"payment": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "внутренний идентификатор платежа в системе Palms"
},
"type": {
"type": "string",
"enum": [
"AUTH",
"PAYMENT",
"AUTH"
],
"description": "тип платежа"
},
"checkout_url": {
"type": "string",
"description": "адрес страницы Fondy IPSP для добавления новой карты"
},
"ipsp_id": {
"type": "string",
"description": "идентификатор платежа в платежном шлюзе"
},
"ipsp_type": {
"type": "string",
"description": "название IPSP через которых проводился платеж"
},
"amount": {
"type": "number",
"description": "сумма платежа в копейках/центах без разделителей. 120 - 1 грн 20 коп"
},
"currency": {
"type": "string",
"description": "валюта платежа"
},
"status": {
"type": "string",
"enum": [
"CREATED",
"PROCESSING",
"DECLINED",
"APPROVED",
"EXPIRED",
"REVERSED",
"CREATED"
],
"description": "статус транзакции"
},
"card": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "внутренний идентификатор карты в системе Palms"
},
"mask": {
"type": "string",
"description": "маска номера карты (Fondy.masked_card)"
},
"bin": {
"type": "string",
"description": "бин номер карты (Fondy.card_bin)"
},
"user_id": {
"type": "number",
"description": "ID пользователя - владельца карты\n\n<!-- + token: `da39a3ee5e6b4b0d3255bfef95601890afd80709` (string) - токен карты в IPSP (Fondy.rectoken) -->"
},
"expires_at": {
"type": "string",
"description": "время жизни карты (Fondy.rectoken_lifetime)"
},
"created_at": {
"type": "string",
"description": "дата добавления карты\n\n<!-- + deleted_at: `2019-08-10T00:00:00` (string) - дата удаления карты -->"
}
},
"description": "карта с которой была проведена оплата"
},
"created_at": {
"type": "string",
"description": "дата создание платежная"
},
"processed_at": {
"type": "string",
"description": "дата совершения платежа"
},
"updated_at": {
"type": "string",
"description": "последняя дата обновления платежа"
}
}
},
"is_valid": {
"type": "boolean"
},
"area_types": {
"type": "array",
"description": "типы зон бронирования"
}
},
"required": [
"id",
"title",
"club",
"price",
"currency",
"user",
"games_number",
"validity_period",
"description",
"color",
"payment",
"is_valid",
"area_types"
],
"additionalProperties": false
}
}
}
Купленные абонементы игрока ¶
Получить список ¶
Получить списокGET/user/subscriptions{?page_size,page,club_id}
Example URI
- page_size
number
(optional) Example: 1количество записей на странице
- page
number
(optional) Example: 10номер страницы
- club_id
number
(optional) Example: 1фильтр по клубу
Headers
Content-Type: application/json
Authorization: Bearer XXXXX
200
Headers
Content-Type: application/json
Body
{
"meta": {
"pagination": {
"total_number": 22,
"current_page": 1,
"total_pages": 2,
"page_size": 20
}
},
"data": [
{
"id": 1,
"title": "somestring",
"club": "Club",
"price": 50000,
"currency": "UAH",
"user": {
"id": 1,
"phone_number": "+380938765432",
"name": "Сергей",
"profile_picture": "https://example.com",
"verified_at": "2019-06-25T23:23:23",
"facebook_id": "123456",
"has_password": true
},
"games_number": 10,
"validity_period": 365,
"description": "text",
"color": "#ffffff",
"payment": {
"id": 1,
"type": "AUTH",
"checkout_url": "https://fondy.com/checkout_url",
"ipsp_id": "ipsp_id_eg_1",
"ipsp_type": "fondy",
"amount": 120,
"currency": "UAH",
"status": "CREATED",
"card": {
"id": 1,
"mask": "443322*1234",
"bin": "443322",
"user_id": 1,
"expires_at": "2019-08-10T00:00:00",
"created_at": "2019-08-10T00:00:00"
},
"created_at": "2019-08-10T00:00:00",
"processed_at": "2019-08-10T00:00:00",
"updated_at": "2019-08-10T00:00:00"
},
"is_valid": true,
"area_types": [
{
"id": 1,
"title": "Somestring",
"value": "somestring",
"logo": "https://foo.bar/some.img"
},
{
"id": 1,
"title": "Somestring",
"value": "somestring",
"logo": "https://foo.bar/some.img"
}
]
},
{
"id": 1,
"title": "somestring",
"club": "Club",
"price": 50000,
"currency": "UAH",
"user": {
"id": 1,
"phone_number": "+380938765432",
"name": "Сергей",
"profile_picture": "https://example.com",
"verified_at": "2019-06-25T23:23:23",
"facebook_id": "123456",
"has_password": true
},
"games_number": 10,
"validity_period": 365,
"description": "text",
"color": "#ffffff",
"payment": {
"id": 1,
"type": "AUTH",
"checkout_url": "https://fondy.com/checkout_url",
"ipsp_id": "ipsp_id_eg_1",
"ipsp_type": "fondy",
"amount": 120,
"currency": "UAH",
"status": "CREATED",
"card": {
"id": 1,
"mask": "443322*1234",
"bin": "443322",
"user_id": 1,
"expires_at": "2019-08-10T00:00:00",
"created_at": "2019-08-10T00:00:00"
},
"created_at": "2019-08-10T00:00:00",
"processed_at": "2019-08-10T00:00:00",
"updated_at": "2019-08-10T00:00:00"
},
"is_valid": true,
"area_types": [
{
"id": 1,
"title": "Somestring",
"value": "somestring",
"logo": "https://foo.bar/some.img"
},
{
"id": 1,
"title": "Somestring",
"value": "somestring",
"logo": "https://foo.bar/some.img"
}
]
}
]
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"meta": {
"type": "object",
"properties": {
"pagination": {
"type": "object",
"properties": {
"total_number": {
"type": "number",
"description": "общее количество сущностей"
},
"current_page": {
"type": "number",
"description": "текущая страница"
},
"total_pages": {
"type": "number",
"description": "всего страниц"
},
"page_size": {
"type": "number",
"description": "записей на страницу"
}
}
}
}
},
"data": {
"type": "array",
"items": [
{
"type": "object",
"properties": {
"id": {
"type": "number"
},
"title": {
"type": "string",
"description": "тайтл"
},
"club": {
"type": "string",
"description": "имя клуба"
},
"price": {
"type": "number"
},
"currency": {
"type": "string",
"description": "валюта"
},
"user": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор пользователя"
},
"phone_number": {
"type": "string",
"description": "номер телефона пользователя"
},
"name": {
"type": "string",
"description": "имя пользователя"
},
"profile_picture": {
"type": "string",
"description": "изображение профиля пользователя"
},
"verified_at": {
"type": "string",
"description": "время завершения проверки пользователя. если установлен, значит пользователь подтвредил телефон и он может пользоваться Palms."
},
"facebook_id": {
"type": "string",
"description": "id пользоваля в Facebook. Устанавливается, если клиент зарегистрировался с Facebook или вошел в привязал ее к своей учетной записи"
},
"has_password": {
"type": "boolean",
"description": "флаг указывающий на наличие установленного пароля. Пользователь может зарегистрироваться через соц сети и не указать пароль."
}
},
"description": "пользователь, который купил абонемент"
},
"games_number": {
"type": "number",
"description": "количестко игр. При оплате будет вычитаться, при рефанде будет добавляться"
},
"validity_period": {
"type": "number",
"description": "количство дней действительности абонемента"
},
"description": {
"type": "string",
"description": "описание"
},
"color": {
"type": "string",
"description": "цвет бекграунда"
},
"payment": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "внутренний идентификатор платежа в системе Palms"
},
"type": {
"type": "string",
"enum": [
"AUTH",
"PAYMENT",
"AUTH"
],
"description": "тип платежа"
},
"checkout_url": {
"type": "string",
"description": "адрес страницы Fondy IPSP для добавления новой карты"
},
"ipsp_id": {
"type": "string",
"description": "идентификатор платежа в платежном шлюзе"
},
"ipsp_type": {
"type": "string",
"description": "название IPSP через которых проводился платеж"
},
"amount": {
"type": "number",
"description": "сумма платежа в копейках/центах без разделителей. 120 - 1 грн 20 коп"
},
"currency": {
"type": "string",
"description": "валюта платежа"
},
"status": {
"type": "string",
"enum": [
"CREATED",
"PROCESSING",
"DECLINED",
"APPROVED",
"EXPIRED",
"REVERSED",
"CREATED"
],
"description": "статус транзакции"
},
"card": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "внутренний идентификатор карты в системе Palms"
},
"mask": {
"type": "string",
"description": "маска номера карты (Fondy.masked_card)"
},
"bin": {
"type": "string",
"description": "бин номер карты (Fondy.card_bin)"
},
"user_id": {
"type": "number",
"description": "ID пользователя - владельца карты\n\n<!-- + token: `da39a3ee5e6b4b0d3255bfef95601890afd80709` (string) - токен карты в IPSP (Fondy.rectoken) -->"
},
"expires_at": {
"type": "string",
"description": "время жизни карты (Fondy.rectoken_lifetime)"
},
"created_at": {
"type": "string",
"description": "дата добавления карты\n\n<!-- + deleted_at: `2019-08-10T00:00:00` (string) - дата удаления карты -->"
}
},
"description": "карта с которой была проведена оплата"
},
"created_at": {
"type": "string",
"description": "дата создание платежная"
},
"processed_at": {
"type": "string",
"description": "дата совершения платежа"
},
"updated_at": {
"type": "string",
"description": "последняя дата обновления платежа"
}
}
},
"is_valid": {
"type": "boolean"
},
"area_types": {
"type": "array",
"description": "типы зон бронирования"
}
}
},
{
"type": "object",
"properties": {
"id": {
"type": "number"
},
"title": {
"type": "string",
"description": "тайтл"
},
"club": {
"type": "string",
"description": "имя клуба"
},
"price": {
"type": "number"
},
"currency": {
"type": "string",
"description": "валюта"
},
"user": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор пользователя"
},
"phone_number": {
"type": "string",
"description": "номер телефона пользователя"
},
"name": {
"type": "string",
"description": "имя пользователя"
},
"profile_picture": {
"type": "string",
"description": "изображение профиля пользователя"
},
"verified_at": {
"type": "string",
"description": "время завершения проверки пользователя. если установлен, значит пользователь подтвредил телефон и он может пользоваться Palms."
},
"facebook_id": {
"type": "string",
"description": "id пользоваля в Facebook. Устанавливается, если клиент зарегистрировался с Facebook или вошел в привязал ее к своей учетной записи"
},
"has_password": {
"type": "boolean",
"description": "флаг указывающий на наличие установленного пароля. Пользователь может зарегистрироваться через соц сети и не указать пароль."
}
},
"description": "пользователь, который купил абонемент"
},
"games_number": {
"type": "number",
"description": "количестко игр. При оплате будет вычитаться, при рефанде будет добавляться"
},
"validity_period": {
"type": "number",
"description": "количство дней действительности абонемента"
},
"description": {
"type": "string",
"description": "описание"
},
"color": {
"type": "string",
"description": "цвет бекграунда"
},
"payment": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "внутренний идентификатор платежа в системе Palms"
},
"type": {
"type": "string",
"enum": [
"AUTH",
"PAYMENT",
"AUTH"
],
"description": "тип платежа"
},
"checkout_url": {
"type": "string",
"description": "адрес страницы Fondy IPSP для добавления новой карты"
},
"ipsp_id": {
"type": "string",
"description": "идентификатор платежа в платежном шлюзе"
},
"ipsp_type": {
"type": "string",
"description": "название IPSP через которых проводился платеж"
},
"amount": {
"type": "number",
"description": "сумма платежа в копейках/центах без разделителей. 120 - 1 грн 20 коп"
},
"currency": {
"type": "string",
"description": "валюта платежа"
},
"status": {
"type": "string",
"enum": [
"CREATED",
"PROCESSING",
"DECLINED",
"APPROVED",
"EXPIRED",
"REVERSED",
"CREATED"
],
"description": "статус транзакции"
},
"card": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "внутренний идентификатор карты в системе Palms"
},
"mask": {
"type": "string",
"description": "маска номера карты (Fondy.masked_card)"
},
"bin": {
"type": "string",
"description": "бин номер карты (Fondy.card_bin)"
},
"user_id": {
"type": "number",
"description": "ID пользователя - владельца карты\n\n<!-- + token: `da39a3ee5e6b4b0d3255bfef95601890afd80709` (string) - токен карты в IPSP (Fondy.rectoken) -->"
},
"expires_at": {
"type": "string",
"description": "время жизни карты (Fondy.rectoken_lifetime)"
},
"created_at": {
"type": "string",
"description": "дата добавления карты\n\n<!-- + deleted_at: `2019-08-10T00:00:00` (string) - дата удаления карты -->"
}
},
"description": "карта с которой была проведена оплата"
},
"created_at": {
"type": "string",
"description": "дата создание платежная"
},
"processed_at": {
"type": "string",
"description": "дата совершения платежа"
},
"updated_at": {
"type": "string",
"description": "последняя дата обновления платежа"
}
}
},
"is_valid": {
"type": "boolean"
},
"area_types": {
"type": "array",
"description": "типы зон бронирования"
}
}
}
]
}
}
}
Получить модель ¶
Получить модельGET/user/subscriptions/{id}
Example URI
- id
number
(required) Example: 1идентификатор абонемента
Headers
Content-Type: application/json
Authorization: Bearer XXXXX
200
Headers
Content-Type: application/json
Body
{
"data": {
"id": 1,
"title": "somestring",
"club": "Club",
"price": 50000,
"currency": "UAH",
"user": {
"id": 1,
"phone_number": "+380938765432",
"name": "Сергей",
"profile_picture": "https://example.com",
"verified_at": "2019-06-25T23:23:23",
"facebook_id": "123456",
"has_password": true
},
"games_number": 10,
"validity_period": 365,
"description": "text",
"color": "#ffffff",
"payment": {
"id": 1,
"type": "AUTH",
"checkout_url": "https://fondy.com/checkout_url",
"ipsp_id": "ipsp_id_eg_1",
"ipsp_type": "fondy",
"amount": 120,
"currency": "UAH",
"status": "CREATED",
"card": {
"id": 1,
"mask": "443322*1234",
"bin": "443322",
"user_id": 1,
"expires_at": "2019-08-10T00:00:00",
"created_at": "2019-08-10T00:00:00"
},
"created_at": "2019-08-10T00:00:00",
"processed_at": "2019-08-10T00:00:00",
"updated_at": "2019-08-10T00:00:00"
},
"is_valid": true,
"area_types": [
{
"id": 1,
"title": "Somestring",
"value": "somestring",
"logo": "https://foo.bar/some.img"
},
{
"id": 1,
"title": "Somestring",
"value": "somestring",
"logo": "https://foo.bar/some.img"
}
]
}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"title": {
"type": "string",
"description": "тайтл"
},
"club": {
"type": "string",
"description": "имя клуба"
},
"price": {
"type": "number"
},
"currency": {
"type": "string",
"description": "валюта"
},
"user": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "идентификатор пользователя"
},
"phone_number": {
"type": "string",
"description": "номер телефона пользователя"
},
"name": {
"type": "string",
"description": "имя пользователя"
},
"profile_picture": {
"type": "string",
"description": "изображение профиля пользователя"
},
"verified_at": {
"type": "string",
"description": "время завершения проверки пользователя. если установлен, значит пользователь подтвредил телефон и он может пользоваться Palms."
},
"facebook_id": {
"type": "string",
"description": "id пользоваля в Facebook. Устанавливается, если клиент зарегистрировался с Facebook или вошел в привязал ее к своей учетной записи"
},
"has_password": {
"type": "boolean",
"description": "флаг указывающий на наличие установленного пароля. Пользователь может зарегистрироваться через соц сети и не указать пароль."
}
},
"description": "пользователь, который купил абонемент"
},
"games_number": {
"type": "number",
"description": "количестко игр. При оплате будет вычитаться, при рефанде будет добавляться"
},
"validity_period": {
"type": "number",
"description": "количство дней действительности абонемента"
},
"description": {
"type": "string",
"description": "описание"
},
"color": {
"type": "string",
"description": "цвет бекграунда"
},
"payment": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "внутренний идентификатор платежа в системе Palms"
},
"type": {
"type": "string",
"enum": [
"AUTH",
"PAYMENT",
"AUTH"
],
"description": "тип платежа"
},
"checkout_url": {
"type": "string",
"description": "адрес страницы Fondy IPSP для добавления новой карты"
},
"ipsp_id": {
"type": "string",
"description": "идентификатор платежа в платежном шлюзе"
},
"ipsp_type": {
"type": "string",
"description": "название IPSP через которых проводился платеж"
},
"amount": {
"type": "number",
"description": "сумма платежа в копейках/центах без разделителей. 120 - 1 грн 20 коп"
},
"currency": {
"type": "string",
"description": "валюта платежа"
},
"status": {
"type": "string",
"enum": [
"CREATED",
"PROCESSING",
"DECLINED",
"APPROVED",
"EXPIRED",
"REVERSED",
"CREATED"
],
"description": "статус транзакции"
},
"card": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "внутренний идентификатор карты в системе Palms"
},
"mask": {
"type": "string",
"description": "маска номера карты (Fondy.masked_card)"
},
"bin": {
"type": "string",
"description": "бин номер карты (Fondy.card_bin)"
},
"user_id": {
"type": "number",
"description": "ID пользователя - владельца карты\n\n<!-- + token: `da39a3ee5e6b4b0d3255bfef95601890afd80709` (string) - токен карты в IPSP (Fondy.rectoken) -->"
},
"expires_at": {
"type": "string",
"description": "время жизни карты (Fondy.rectoken_lifetime)"
},
"created_at": {
"type": "string",
"description": "дата добавления карты\n\n<!-- + deleted_at: `2019-08-10T00:00:00` (string) - дата удаления карты -->"
}
},
"description": "карта с которой была проведена оплата"
},
"created_at": {
"type": "string",
"description": "дата создание платежная"
},
"processed_at": {
"type": "string",
"description": "дата совершения платежа"
},
"updated_at": {
"type": "string",
"description": "последняя дата обновления платежа"
}
}
},
"is_valid": {
"type": "boolean"
},
"area_types": {
"type": "array",
"description": "типы зон бронирования"
}
},
"required": [
"id",
"title",
"club",
"price",
"currency",
"user",
"games_number",
"validity_period",
"description",
"color",
"payment",
"is_valid",
"area_types"
],
"additionalProperties": false
}
}
}