Back to top

Palms API

Документация описывает клиентское АПИ Palms. Оно используется в мобильном приложении, виджете и других клиентских приложениях Palms.

Общая информация

  1. Мы строим REST API. Все общение с Palms API проходит через HTTP в JSON формате. Мы стараемся следовать REST, но следуем common-sense и отходим от REST, когда это имеет смысл.

  2. В каждом ответе, при котором меняется, создается модель мы возвращаем обновленное значение в ответе.

Среды

Среда 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

GET https://api.palms.tennis/v1/user/me
Request
HideShow
Headers
Content-Type: application/json
Authorization: Bearer XXXXX
Response  200
HideShow
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

PATCH https://api.palms.tennis/v1/user/me
Request
HideShow
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 изображение профиля пользователя"
    }
  }
}
Response  200
HideShow
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

POST https://api.palms.tennis/v1/user/change_password
Request
HideShow
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": "новый пароль"
    }
  }
}
Response  200
HideShow
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

POST https://api.palms.tennis/v1/user/change_phone_number
Request
HideShow
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": "номер телефона пользователя"
    }
  }
}
Response  200
HideShow
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

POST https://api.palms.tennis/v1/user/change_phone_number/confirm
Request
HideShow
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"
  ]
}
Response  200
HideShow
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

POST https://api.palms.tennis/v1/user/socials/facebook
Request
HideShow
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"
  ]
}
Response  200
HideShow
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
    }
  }
}
Response  403
HideShow
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
    }
  }
}
Response  400
HideShow
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

DELETE https://api.palms.tennis/v1/user/socials/facebook
Request
HideShow
Headers
Content-Type: application/json
Response  200
HideShow
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

POST https://api.palms.tennis/v1/user/signin
Request
HideShow
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"
  ]
}
Response  200
HideShow
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

Авторизация с Facebook
POST/user/signin/facebook

Example URI

POST https://api.palms.tennis/v1/user/signin/facebook
Request
HideShow
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"
  ]
}
Response  200
HideShow
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
    }
  }
}
Response  404
HideShow
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

Регистрация с Facebook
POST/user/signup/facebook

Перед тем как вызывать этот метод пользователь должен попробовать использовать токен fb для авторизации. Если данная учетка FB не привязана к учетке Palms, то начинаем процедуру регистрации.

Для этого нужно запросить подтвеждение телефона user/signup. И после получения кода вызываем этот метод, который одновременно проверит телефон и привяжет FB к новой учетке.

Example URI

POST https://api.palms.tennis/v1/user/signup/facebook
Request
HideShow
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"
  ]
}
Response  200
HideShow
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

POST https://api.palms.tennis/v1/user/reset
Request
HideShow
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"
  ]
}
Response  200
HideShow
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

POST https://api.palms.tennis/v1/user/reset/confirm
Request
HideShow
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": "новый пароль пользователя"
    }
  }
}
Response  200
HideShow
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

POST https://api.palms.tennis/v1/user/signup
Request
HideShow
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"
  ]
}
Response  200
HideShow
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

POST https://api.palms.tennis/v1/user/signup/confirm
Request
HideShow
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"
  ]
}
Response  200
HideShow
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

POST https://api.palms.tennis/v1/token/verify
Request
HideShow
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 токен"
    }
  }
}
Response  200
HideShow
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

POST https://api.palms.tennis/v1/token/refresh
Request
HideShow
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 токен получения нового токена доступа"
    }
  }
}
Response  200
HideShow
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

POST https://api.palms.tennis/v1/user/logout
Request
HideShow
Headers
Content-Type: application/json
Authorization: Bearer XXXXX
Body
{}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {}
}
Response  200
HideShow
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

GET https://api.palms.tennis/v1/cities?page_size=10&page=1
URI Parameters
HideShow
page_size
number (optional) Example: 10

количество записей на странице

page
number (optional) Example: 1

номер страницы

Response  200
HideShow
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

GET https://api.palms.tennis/v1/city/10
URI Parameters
HideShow
id
number (required) Example: 10

идентификатор города

Response  200
HideShow
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

GET https://api.palms.tennis/v1/clubs?page_size=10&page=1&lt_coord=42.23,12.23&rb_coord=42.23,12.23
URI Parameters
HideShow
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: 1

id корода для фильтрации

Response  200
HideShow
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

GET https://api.palms.tennis/v1/clubs/10
URI Parameters
HideShow
id
number (required) Example: 10

идентификатор клуба

Response  200
HideShow
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

GET https://api.palms.tennis/v1/slots?page_size=10&page=1&date_from=2019-05-12&date_to=2019-05-13&club_id=1&city_id=1&area_type_id=1
URI Parameters
HideShow
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

тип помещения

Request
HideShow
Headers
Content-Type: application/json
Authorization: Bearer XXXXX
Response  200
HideShow
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

Получить слот по ID
GET/slots/{id}

Example URI

GET https://api.palms.tennis/v1/slots/10
URI Parameters
HideShow
id
number (required) Example: 10

идентификатор слота бронирования

Request
HideShow
Headers
Content-Type: application/json
Authorization: Bearer XXXXX
Response  200
HideShow
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

GET https://api.palms.tennis/v1/user/bookings?page_size=10&page=1&club_id=1&area_type_id=1&booking_source=PALMS
URI Parameters
HideShow
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

источник бронирования

Request
HideShow
Headers
Content-Type: application/json
Authorization: Bearer XXXXX
Response  200
HideShow
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

GET https://api.palms.tennis/v1/user/bookings/10
URI Parameters
HideShow
id
number (required) Example: 10

идентификатор бронирования

Request
HideShow
Headers
Content-Type: application/json
Authorization: Bearer XXXXX
Response  200
HideShow
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

POST https://api.palms.tennis/v1/bookings/book
Request
HideShow
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 тренера"
    }
  }
}
Response  200
HideShow
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

POST https://api.palms.tennis/v1/user/bookings/cancel
Request
HideShow
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"
  ]
}
Response  200
HideShow
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

POST https://api.palms.tennis/v1/user/bookings/10/pay
URI Parameters
HideShow
id
number (required) Example: 10

идентификатор бронирования

Request
HideShow
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 оплаты новой картой"
    }
  }
}
Response  200
HideShow
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

DELETE https://api.palms.tennis/v1/user/bookings/10/payment
URI Parameters
HideShow
id
number (required) Example: 10

идентификатор бронирования

Request
HideShow
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": "причина отмены"
    }
  }
}
Response  200
HideShow
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
    }
  }
}
Response  403
HideShow
Headers
Content-Type: application/json
Response  404
HideShow
Headers
Content-Type: application/json

Карты

Карта - платежная карта пользователя. Она используется для списания/оплаты средств за бронирование.

Получить мои карты

Получить мои карты
GET/user/cards{?page_size,page}

Example URI

GET https://api.palms.tennis/v1/user/cards?page_size=10&page=1
URI Parameters
HideShow
page_size
number (optional) Example: 10

количество записей на странице

page
number (optional) Example: 1

номер страницы

Request
HideShow
Headers
Content-Type: application/json
Authorization: Bearer XXXXX
Response  200
HideShow
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

Получить свою карту по id
GET/user/cards/{id}

Example URI

GET https://api.palms.tennis/v1/user/cards/10
URI Parameters
HideShow
id
number (required) Example: 10

идентификатор карты

Request
HideShow
Headers
Content-Type: application/json
Authorization: Bearer XXXXX
Response  200
HideShow
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

DELETE https://api.palms.tennis/v1/user/cards/10
URI Parameters
HideShow
id
number (required) Example: 10

идентификатор карты

Request
HideShow
Headers
Content-Type: application/json
Authorization: Bearer XXXXX
Response  200
HideShow
Headers
Content-Type: application/json

Добавить новую карту

Добавить новую карту
POST/user/cards

Для добавления новой карты без оплаты услуг нужно получить checkout_url и использовать страницу IPSP для добавления карты. Для встраивания формы добавления в приложения можно воспользоваться Vue JS виджетом от Fondy IPSP.

Example URI

POST https://api.palms.tennis/v1/user/cards
Request
HideShow
Headers
Content-Type: application/json
Authorization: Bearer XXXXX
Response  200
HideShow
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

GET https://api.palms.tennis/v1/user/payments?page_size=10&page=1&statuses=APPROVED,DECLINED&payment_method=ONLINE,CASH,SUBSCRIPTION&date_from=2019-05-14&date_to=2019-05-15
URI Parameters
HideShow
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

(фильтр) тип платежа

Request
HideShow
Headers
Content-Type: application/json
Authorization: Bearer XXXXX
Response  200
HideShow
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

Получить платеж по ID
GET/payments/{id}

Example URI

GET https://api.palms.tennis/v1/payments/10
URI Parameters
HideShow
id
number (required) Example: 10

идентификатор транзакции

Request
HideShow
Headers
Content-Type: application/json
Authorization: Bearer XXXXX
Response  200
HideShow
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

POST https://api.palms.tennis/v1/user/notifications/config/push
Request
HideShow
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 сообщений"
    }
  }
}
Response  200
HideShow
Headers
Content-Type: application/json
Response  404
HideShow
Headers
Content-Type: application/json

Удалить Push токен

Удалить Push токен
DELETE/user/notifications/config/push

Example URI

DELETE https://api.palms.tennis/v1/user/notifications/config/push
Request
HideShow
Headers
Content-Type: application/json
Authorization: Bearer XXXXX
Response  200
HideShow
Headers
Content-Type: application/json

Абонементы

Получить список

Получить список
GET/subscriptions{?page_size,page,club_id}

Example URI

GET https://api.palms.tennis/v1/subscriptions?page_size=1&page=10&club_id=1
URI Parameters
HideShow
page_size
number (optional) Example: 1

количество записей на странице

page
number (optional) Example: 10

номер страницы

club_id
number (optional) Example: 1

фильтр по клубу

Request
HideShow
Headers
Content-Type: application/json
Authorization: Bearer XXXXX
Response  200
HideShow
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

GET https://api.palms.tennis/v1/subscriptions/1
URI Parameters
HideShow
id
number (required) Example: 1

идентификатор абонемента

Request
HideShow
Headers
Content-Type: application/json
Authorization: Bearer XXXXX
Response  200
HideShow
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

POST https://api.palms.tennis/v1/subscriptions/1/buy
URI Parameters
HideShow
id
number (required) Example: 1

идентификатор абонемента

Request
HideShow
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"
  ]
}
Response  200
HideShow
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

GET https://api.palms.tennis/v1/user/subscriptions?page_size=1&page=10&club_id=1
URI Parameters
HideShow
page_size
number (optional) Example: 1

количество записей на странице

page
number (optional) Example: 10

номер страницы

club_id
number (optional) Example: 1

фильтр по клубу

Request
HideShow
Headers
Content-Type: application/json
Authorization: Bearer XXXXX
Response  200
HideShow
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

GET https://api.palms.tennis/v1/user/subscriptions/1
URI Parameters
HideShow
id
number (required) Example: 1

идентификатор абонемента

Request
HideShow
Headers
Content-Type: application/json
Authorization: Bearer XXXXX
Response  200
HideShow
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
    }
  }
}

Generated by aglio on 24 Mar 2020