REST API для интеграции внешних систем
API интерфейс используется для того, чтобы интегрировать возможности сервиса ПрофиГид в личный проект клиента. API поддерживает REST структуру и работает по протоколу HTTPS, все ответы приходят в виде JSON. При отправке POST и PUT запросов тело необходимо передавать в виде JSON и в заголовке указывать Content-type: application/json; charset=utf-8
.
Основной URL
Все ссылки на запросы к API в данной документации включают обязательный основной URL:
https://api.profi.guide/
Авторизация
Процесс авторизации возможен при наличии персонального ключа (токена), которым в дальнейшем должен быть подписан каждый запрос к API. Код ключа (токен) передается в заголовке любого запроса (в "headers") кроме случаев получения самого токена, когда этот код не требуется. Необходимые для получения ключа параметры можно найти в настройках, во вкладке Ключи для интеграции по API.
Для получения ключа отправляется POST запрос по ссылке:
https://api.profi.guide/v1/oauth2/token
Параметры запроса:
public_key | Ваш публичный ключ |
---|---|
private_key | Ваш секретный ключ |
Пример ответа:
{
"access_token": "tf4Si1LydYpTAPyHXUgjig72jlrd5HpIJL5oigmc",
"token_type": "Bearer",
"expires_in": 3600
}
Пример ключа:
Authorization: Bearer tf4Si1LydYpTAPyHXUgjig72jlrd5HpIJL5oigmc
Обратите внимание, что полученный ключ действителен в течение 1 часа и не требует повторного запроса при каждой операции. По истечении срока действия ключа (1 час) необходимо отправить повторный запрос на получение ключа
Получение списка записей
Для того чтобы получить список записей необходимо отправить GET запрос на URL:
https://api.profi.guide/v1/reservations
Опциональные параметры запроса:
limit | Сколько позиций будет вынуто. Максимальное значение 50, значение по умолчанию 20. |
---|---|
start | Начиная с какой позиции по счету будут получены данные. Значение по умолчанию 0. |
start_date | Начиная с какой даты получить записи. Формат '%Y-%m-%d' |
end_date | Заканчивая какой датой получить записи. Формат '%Y-%m-%d' |
point_id | Идентификатор салона |
resource_id | Идентификатор сотрудника |
client_id | Идентификатор клиента |
is_finished | Получить только завершенные записи |
is_created_by_client | Получить записи созданные клиентом |
Пример ответа:
{
"reservations": [
{
"id": 6757,
"client_id": 6,
"point_id": 11,
"resource_id": 31,
"operator_created_id": 27,
"operator_finished_id": 27,
"write_off_id": 188,
"code": "lTt47Ny",
"create_date": "2021-03-13T17:25:50.909222+00:00",
"start_date": "2021-03-13T11:05",
"end_date": "2021-03-13T13:15",
"client_note": null,
"operator_note": "",
"total_cost": 1246.0,
"amount_cash": 0.0,
"amount_card": 1246.0,
"amount_prepayment": 0.0,
"client_state": "came",
"source": "lk",
"is_created_by_client": false,
"is_new_client": false,
"is_finished": true,
"is_deleted": false,
"loyalty_accrual_amount": 87.22,
"loyalty_write_off_amount": 0.0,
"is_sms_sent": false,
"is_email_sent": false,
"kk_receipt_id": "35764073",
"kk_receipt_url": "https://kassa.komtet.ru/receipts?id=35764073&external_id=6757_1615656359.1934085",
"date": "2021-03-13",
"duration": 130,
"point": {
"id": 11,
"city_id": 1109,
"tube_station_id": 37,
"vendor_id": 7,
"name": "Карамель на Новозаводской",
"overview": "Универсальный салон красоты",
"address": "ул. Новозаводская, д.11",
"address_overview": "",
"latitude": 55.94171018828884,
"longitude": 37.34734982734676,
"site": "",
"contact_phone": "+7(905)753-00-00",
"contact_email": "test@test.ru",
"is_deleted": false,
"review_rating": 0.0,
"review_wilson_score": 0.0,
"review_count": 0,
"is_allow_online_booking": true,
"is_verified": true,
"is_on_moderation": false,
"is_resources_first": false
},
"resource": {
"id": 31,
"vendor_id": 7,
"name": "Людмила",
"phone": "+79277777777",
"email": "test1@test.com",
"role": "manager",
"specialization": "Мастер маникюра",
"review_rating": 0.0,
"review_wilson_score": 0.0,
"review_count": 0,
"last_login_time": "2021-03-13T17:28:28.140714+00:00",
"is_show_client_contacts": true,
"is_deleted": false,
"is_email_verified": true,
"photo": {
"id": "863651de90b625e643f7107b72918caa.jpg",
"name": "863651de90b625e643f7107b72918caa.jpg",
"size": false,
"src": "e2/f8/41/a1/2b/43/4a/a2/b4/33/ce/9b/3a/0d/34/fb/e2f841a12b434aa2b433ce9b3a0d34fb.jpg",
"thumb_src": "5b/a3/6d/3e/e2/f6/8a/f4/39/8a/8d/87/8e/fe/63/e0/5ba36d3ee2f68af4398a8d878efe63e0.jpg"
}
},
"client": {
"id": 6,
"vendor_id": 7,
"user_id": null,
"loyalty_level_id": 5,
"point_id": 10,
"name": "Виктор Иванов",
"phone": "+79279999999",
"email": "test@test.com",
"birthday": "1986-05-15",
"is_male": true,
"note": "Тестовое примечание",
"reg_date": "2020-03-29T19:16:35.236817+00:00",
"is_block_sms": false,
"is_deleted": false,
"loyalty_balance": 1232.1,
"deposit_balance": 1400.0
},
"reservation_services": [
{
"id": 31648,
"reservation_id": 6757,
"service_id": 2321,
"duration": 130,
"price": 1200.0,
"quantity": 1.0,
"discount": 0.0,
"total": 1200.0,
"service": {
"id": 2321,
"vendor_id": 7,
"point_id": 11,
"service_category_id": 427,
"name": "Креативная стрижка",
"duration": 130,
"min_price": 1200,
"max_price": 1600,
"vat": "20",
"description": "",
"order": 0,
"is_deleted": false,
"is_displayed": true
}
}
],
"reservation_products": [
{
"id": 1563,
"reservation_id": 6757,
"product_id": 4996,
"price": 46.0,
"quantity": 1.0,
"discount": 0.0,
"total": 46.0,
"is_in_receipt": true,
"product": {
"id": 4996,
"vendor_id": 7,
"point_id": 11,
"product_category_id": 279,
"external_id": null,
"name": "Разглаживающий кондиционер для волос Brazilian Blowout Anti-Frizz Conditioner",
"description": "Способствует глубокому увлажнению, прекрасно облегчает расчесывание волос. Кондиционер питает волосы, разглаживает их и придает блеск. Защищает от воздействия вредных факторов и солнца.",
"measure_name": "порций",
"barcode": "",
"manufacturer_code": "",
"vat": "no",
"type": "consumable",
"purchase_price": 40.0,
"selling_price": 46.0,
"quantity": -4.0,
"min_quantity": 0.0,
"order": 0,
"is_deleted": false,
"is_displayed": true
}
}
]
}
]
}
Получение записи
Для того чтобы получить конкретную запись необходимо отправить GET запрос на URL:
https://api.profi.guide/v1/reservations/:id
Пример ответа:
{
"reservation": {
"id": 6757,
"client_id": 6,
"point_id": 11,
"resource_id": 31,
"operator_created_id": 27,
"operator_finished_id": 27,
"write_off_id": 188,
"code": "lTt47Ny",
"create_date": "2021-03-13T17:25:50.909222+00:00",
"start_date": "2021-03-13T11:05",
"end_date": "2021-03-13T13:15",
"client_note": null,
"operator_note": "",
"total_cost": 1246.0,
"amount_cash": 0.0,
"amount_card": 1246.0,
"amount_prepayment": 0.0,
"client_state": "came",
"source": "lk",
"is_created_by_client": false,
"is_new_client": false,
"is_finished": true,
"is_deleted": false,
"loyalty_accrual_amount": 87.22,
"loyalty_write_off_amount": 0.0,
"is_sms_sent": false,
"is_email_sent": false,
"kk_receipt_id": "35764073",
"kk_receipt_url": "https://kassa.komtet.ru/receipts?id=35764073&external_id=6757_1615656359.1934085",
"date": "2021-03-13",
"duration": 130,
"resource": {
"id": 31,
"vendor_id": 7,
"name": "Людмила",
"phone": "+79277777777",
"email": "test1@test.com",
"role": "manager",
"specialization": "Мастер маникюра",
"review_rating": 0.0,
"review_wilson_score": 0.0,
"review_count": 0,
"last_login_time": "2021-03-13T17:28:28.140714+00:00",
"is_show_client_contacts": true,
"is_deleted": false,
"is_email_verified": true,
"photo": {
"id": "863651de90b625e643f7107b72918caa.jpg",
"name": "863651de90b625e643f7107b72918caa.jpg",
"size": false,
"src": "e2/f8/41/a1/2b/43/4a/a2/b4/33/ce/9b/3a/0d/34/fb/e2f841a12b434aa2b433ce9b3a0d34fb.jpg",
"thumb_src": "5b/a3/6d/3e/e2/f6/8a/f4/39/8a/8d/87/8e/fe/63/e0/5ba36d3ee2f68af4398a8d878efe63e0.jpg"
}
},
"client": {
"id": 6,
"vendor_id": 7,
"user_id": null,
"loyalty_level_id": 5,
"point_id": 10,
"name": "Виктор Иванов",
"phone": "+79279999999",
"email": "test@test.com",
"birthday": "1986-05-15",
"is_male": true,
"note": "Тестовое примечание",
"reg_date": "2020-03-29T19:16:35.236817+00:00",
"is_block_sms": false,
"is_deleted": false,
"loyalty_balance": 1232.1,
"deposit_balance": 1400.0
},
"reservation_services": [
{
"id": 31648,
"reservation_id": 6757,
"service_id": 2321,
"duration": 130,
"price": 1200.0,
"quantity": 1.0,
"discount": 0.0,
"total": 1200.0,
"service": {
"id": 2321,
"vendor_id": 7,
"point_id": 11,
"service_category_id": 427,
"name": "Креативная стрижка",
"duration": 130,
"min_price": 1200,
"max_price": 1600,
"vat": "20",
"description": "",
"order": 0,
"is_deleted": false,
"is_displayed": true
}
}
],
"reservation_products": [
{
"id": 1563,
"reservation_id": 6757,
"product_id": 4996,
"price": 46.0,
"quantity": 1.0,
"discount": 0.0,
"total": 46.0,
"is_in_receipt": true,
"product": {
"id": 4996,
"vendor_id": 7,
"point_id": 11,
"product_category_id": 279,
"external_id": null,
"name": "Разглаживающий кондиционер для волос Brazilian Blowout Anti-Frizz Conditioner",
"description": "Способствует глубокому увлажнению, прекрасно облегчает расчесывание волос. Кондиционер питает волосы, разглаживает их и придает блеск. Защищает от воздействия вредных факторов и солнца.",
"measure_name": "порций",
"barcode": "",
"manufacturer_code": "",
"vat": "no",
"type": "consumable",
"purchase_price": 40.0,
"selling_price": 46.0,
"quantity": -4.0,
"min_quantity": 0.0,
"order": 0,
"is_deleted": false,
"is_displayed": true
}
}
]
}
}
Получение списка клиентов
Для того чтобы получить список клиентов необходимо отправить GET запрос на URL:
https://api.profi.guide/v1/clients
Опциональные параметры запроса:
limit | Сколько позиций будет вынуто. Максимальное значение 50, значение по умолчанию 20. |
---|---|
start | Начиная с какой позиции по счету будут получены данные. Значение по умолчанию 0. |
name | Строка для поиска по имени |
phone | Строка для поиска по телефону |
Пример ответа:
{
"clients": [
{
"id": 1,
"vendor_id": 7,
"user_id": null,
"loyalty_level_id": 6,
"point_id": 10,
"name": "Владислав Самойлов",
"phone": "+79279999999",
"email": "test@test.com",
"birthday": "2020-03-25",
"is_male": true,
"note": "",
"reg_date": "2020-03-29T19:10:00.486797+00:00",
"is_block_sms": false,
"is_deleted": false,
"loyalty_balance": 501.385,
"deposit_balance": 500.0,
"loyalty_level": {
"id": 6,
"loyalty_system_id": 7,
"title": "Золотой",
"threshold": 10000,
"accrual_bonus_rate": 10,
"is_active": true,
"is_deleted": false,
"is_public": true
}
}
]
}
Получение клиента
Для того чтобы получить конкретного клиента необходимо отправить GET запрос на URL:
https://api.profi.guide/v1/clients/:id
Пример ответа:
{
"client": {
"id": 1,
"vendor_id": 7,
"user_id": null,
"loyalty_level_id": 6,
"point_id": 10,
"name": "Владислав Самойлов",
"phone": "+79279999999",
"email": "test@test.com",
"birthday": "2020-03-25",
"is_male": true,
"note": "",
"reg_date": "2020-03-29T19:10:00.486797+00:00",
"is_block_sms": false,
"is_deleted": false,
"loyalty_balance": 501.385,
"deposit_balance": 500.0
}
}
Если для интеграции вам потребуются дополнительные методы, напишите нами, мы рассмотрим возможность расширения API.