Public
Documentation Settings

GBooking API для интеграции с МИС

1. Базовый механизм

Полная синхронизация схемы бизнеса (списка работников, услуг и их связки), полная синхронизация расписания всех работников, загрузка всех актуальных записей. Каждый из этих запросов выполняется по расписанию раз в несколько минут. Может быть использован для восстановления актуальности расписания для failover сценария и при первом запуске синхронизации.

Предназначен для поддержания стабильной работы интеграции, например, в случае потери соединения при передаче частичных данных на какое-либо событие в МИСе - Callback механизм (см. п.3).

POST1.1. Синхронизация бизнеса

https://apiv2.gbooking.ru/rpc

Обновление списка работников, списка услуг, а также привязки работника к услуге. Запрос либо создает соответствующие сущности, либо обновляет, найдя предварительно их по ид, указанном в запросе. Запрос должен выполняться периодически раз в 1-5 минут, в зависимости от длительности самого запроса.

HEADERS
Content-Type

application/json

Bodyraw
{
   "jsonrpc":"2.0",
   "id":1,
   "cred":{
      "token":"c368eaebc29967dd5b7bdf5eae6fc6658e73cc0f",
      "user":"59955503fb1d89051031d672"
   },
   "method":"mis.update_business",
   "params":{
      "provider": "ident", 
      "business":{
         "id":"4000000005820"
      },
     "taxonomies": [{
       "id": "tax_001",
       "name": "Тестовая услуга",
       "description": "Описание тестовой услуги",
       "parentId": null,
       "order": null,
       "duration": 0,
       "priceAmount": 0,
       "priceCurrency": "RUB"
     },{
       "id": "tax_002",
       "name": "Тестовая услуга2",
       "description": "Описание тестовой услуги2",
       "parentId": null,
       "order": null,
       "duration": 0,
       "priceAmount": 0,
       "priceCurrency": "RUB"
     },{
       "id": "tax_003",
       "name": "Тестовая услуга3",
       "description": "Описание тестовой услуги3",
       "parentId": null,
       "order": null,
       "duration": 0,
       "priceAmount": 0,
       "priceCurrency": "RUB"
     }],
     "resources": [{
       "id": "res_001",
       "fname": "Иван",
       "mname": "Иванович",
       "lname": "Иванов",
       "description": "Отличный врач!",
       "order": null,
       "taxonomies": ["tax_001"],
       "exceptions": []
     }]
   }
}
Example Request
curl
curl --location 'https://apiv2.gbooking.ru/rpc' \
--header 'Content-Type: application/json' \
--data '{
   "jsonrpc":"2.0",
   "id":1,
   "cred":{
      "token":"c368eaebc29967dd5b7bdf5eae6fc6658e73cc0f",
      "user":"59955503fb1d89051031d672"
   },
   "method":"mis.update_business",
   "params":{
      "provider": "ident", 
      "business":{
         "id":"4000000005820"
      },
     "taxonomies": [{
       "id": "tax_001",
       "name": "Тестовая услуга",
       "description": "Описание тестовой услуги",
       "parentId": null,
       "order": null,
       "duration": 0,
       "priceAmount": 0,
       "priceCurrency": "RUB"
     }],
     "resources": [{
       "id": "res_001",
       "fname": "Иван",
       "mname": "Иванович",
       "lname": "Иванов",
       "description": "Отличный врач!",
       "order": null,
       "taxonomies": ["tax_001"],
       "exceptions": []
     }]
   }
}'
200 OK
Example Response
json
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "queued": true,
    "jobID": "5805e88a4f292d520da38b52"
  }
}
No response headers
This request doesn't return any response headers

POST1.2. Синхронизация расписания

https://apiv2.gbooking.ru/rpc

Расписание работников обновляется целиком для всех указанных работников. Если работник до этого имел свободное время на день, не указанный в запросе, то он будет стерт. Другими словами, в этом запросе расписание каждого работника нужно передавать целиком за тот период, за который вы хотите предоставить онлайн запись. Обратите внимание, что зачастую нет необходимости включать расписание больше, чем на месяц, поскольку клиент спустя месяц может даже не вспомнить, что он записывался.

Работники, не указанные в запросе не изменят своего расписания.

При передаче OFF интервалов они имеют больший приоритет, чем ON уведомления, что можно использовать для учета занятого времени (существующих записей, обедов, перерывов в работе). При этом такие интервалы можно передавать как есть как OFF интервалы.

HEADERS
Content-Type

application/json

Bodyraw
{
   "jsonrpc":"2.0",
   "id":1,
   "cred":{
      "token":"c368eaebc29967dd5b7bdf5eae6fc6658e73cc0f",
      "user":"59955503fb1d89051031d672"
   },
   "method":"mis.update_schedule",
   "params":{
      "provider": "ident", 
      "business":{
         "id":"4000000005820"
      },
      "resources": [{
        "id": "res_002",
        "timetable": [{
          "start": "2017-10-10T09:00:00.764Z",
          "end": "2017-10-10T10:00:00.764Z"
        }, {
          "start": "2017-10-11T09:00:00.764Z",
          "end": "2017-10-11T10:00:00.764Z"
        }]
      }]
   }
}
Example Request
curl
curl --location 'https://apiv2.gbooking.ru/rpc' \
--header 'Content-Type: application/json' \
--data '{
   "jsonrpc":"2.0",
   "id":1,
   "cred":{
      "token":"c368eaebc29967dd5b7bdf5eae6fc6658e73cc0f",
      "user":"59955503fb1d89051031d672"
   },
   "method":"mis.update_schedule",
   "params":{
      "provider": "ident", 
      "business":{
         "id":"4000000005820"
      },
      "resources": [{
        "id": "res_002",
        "timetable": [{
          "start": "2017-10-10T09:00:00.764Z",
          "end": "2017-10-10T10:00:00.764Z"
        }, {
          "start": "2017-10-11T09:00:00.764Z",
          "end": "2017-10-11T10:00:00.764Z"
        }]
      }]
   }
}'
Example Response
No response body
This request doesn't return any response body
No response headers
This request doesn't return any response headers

3. Callback механизм