Search
Cabinet
Sign in
Sign refresh JWT token
POST /api/v1/sign/refresh HTTP/1.1
Content-Type: application/x-www-form-urlencoded
HTTP/1.1 200 OK
{
"accessToken" : "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ7XCJuYW1lXCI6bnVsbCxcImF1dGhlbnRpY2F0ZWRcIjp0cnVlLFwiYXV0aG9yaXRpZXNcIjpbe1wiYXV0aG9yaXR5XCI6XCJST0xFX1JFU1RPX0NVU1RPTUVSXCJ9XSxcInByaW5jaXBhbFwiOntcImlkXCI6MTUwLFwiYnlQaG9uZVwiOmZhbHNlLFwiZW1haWxcIjpcInZhbGlkQGVtYWlsLnRlc3RcIixcImFjY291bnRJZFwiOjEwN319IiwiaWF0IjoxNzcxNzYyMTcwLCJleHAiOjE3NzIxOTQxNzB9.E3naw8r5Dgk8VuhVK8nUMip4iZmF8S81oBCb85JPhCs",
"accessTokenExpireAt" : "2026-02-27T12:09:30.904Z",
"refreshToken" : "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ7XCJuYW1lXCI6bnVsbCxcImF1dGhlbnRpY2F0ZWRcIjp0cnVlLFwiYXV0aG9yaXRpZXNcIjpbe1wiYXV0aG9yaXR5XCI6XCJST0xFX1JFU1RPX0NVU1RPTUVSXCJ9XSxcInByaW5jaXBhbFwiOntcImlkXCI6MTUwLFwiYnlQaG9uZVwiOmZhbHNlLFwiZW1haWxcIjpcInZhbGlkQGVtYWlsLnRlc3RcIixcImFjY291bnRJZFwiOjEwN319IiwiaWF0IjoxNzcxNzYyMTcwLCJleHAiOjE3NzIxOTQxNzB9.Tyx7AG12ERTFLwD279UZmRHitFUtZIFARQNgZ1IcZ14",
"refreshTokenExpireAt" : "2026-02-27T12:09:30.905Z"
}
Sign in with phone. Send SMS code on phone
whiteLabel - optional parameter, add company prefix to SMS text
SMS prefix GisMenu by default
| Код | Обязателен | Описание |
|---|---|---|
captchaToken |
Да |
ReCaptcha token from Google |
mode |
Нет. Default WEB |
WEB, ANDROID, IOS |
whiteLabel |
Нет |
Зависит текст СМС для отправки кода |
POST /api/v1/sign/in/phone/code HTTP/1.1
{
"phone" : "+79992000494",
"captchaToken" : "captchaToken",
"apiKey" : "bB1+jYH3iaBonUIVpRec8ZcvaIO9AAGMoL8qU551KPDWzDqEkdh0CKZzI7KeH9AHMK2mT4xcC9TdPoxMSbrq5BLXN4uIv0xpg/RSI1ib2BAceOwIPLez15lTtMJhmqxToiLXHmi9fGT5hKtDuVvVpviPs81W7qp+2EzDoARpWjNuSx0MyjGkQnLl2jUX9tS4qGaqGXuosq+XiR2MPjSzXw==",
"mode" : "WEB"
}
HTTP/1.1 200 OK
Sign in with phone
POST /api/v1/sign/in/phone HTTP/1.1
{
"phone" : "+79992000494",
"code" : "2593",
"captchaToken" : "CaptchaToken"
}
HTTP/1.1 200 OK
{
"accessToken" : "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ7XCJuYW1lXCI6bnVsbCxcImF1dGhlbnRpY2F0ZWRcIjp0cnVlLFwiYXV0aG9yaXRpZXNcIjpbe1wiYXV0aG9yaXR5XCI6XCJST0xFX1JFU1RPX0dVRVNUXCJ9XSxcInByaW5jaXBhbFwiOntcImlkXCI6MTU0LFwiYnlQaG9uZVwiOnRydWUsXCJlbWFpbFwiOm51bGwsXCJhY2NvdW50SWRcIjpudWxsfX0iLCJpYXQiOjE3NzE3NjIxNzEsImV4cCI6MTc3MTc2Mzk3MX0.fkDHYh9n70PkDJ3kh3VkJz0IaJhxexmUZw9da_tYbpE",
"accessTokenExpireAt" : "2026-02-22T12:39:31.266Z",
"refreshToken" : "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ7XCJuYW1lXCI6bnVsbCxcImF1dGhlbnRpY2F0ZWRcIjp0cnVlLFwiYXV0aG9yaXRpZXNcIjpbe1wiYXV0aG9yaXR5XCI6XCJST0xFX1JFU1RPX0dVRVNUXCJ9XSxcInByaW5jaXBhbFwiOntcImlkXCI6MTU0LFwiYnlQaG9uZVwiOnRydWUsXCJlbWFpbFwiOm51bGwsXCJhY2NvdW50SWRcIjpudWxsfX0iLCJpYXQiOjE3NzE3NjIxNzEsImV4cCI6MTc3MjYyNjE3MX0.r9bDF7FBhGjkybhwqPvL73dzjcUOT5i7OZzbYaR3p5I",
"refreshTokenExpireAt" : "2026-03-04T12:09:31.266Z"
}
Sign in with Google
POST /api/v1/sign/in/google HTTP/1.1
external-id-token: eyJhbGciOiJSUzI1NiIsImtpZCI6IjJlMzAyNWYyNmI1OTVmOTZlYWM5MDdjYzJiOTQ3MTQyMmJjYWViOTMiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20iLCJhenAiOiI0MDc0MDg3MTgxOTIuYXBwcy5nb29nbGV1c2VyY29udGVudC5jb20iLCJhdWQiOiI0MDc0MDg3MTgxOTIuYXBwcy5nb29nbGV1c2VyY29udGVudC5jb20iLCJzdWIiOiIxMTY0NDAxMzM2ODQ0MDIzNjA5OTkiLCJlbWFpbCI6ImJlcnR5d29vc3Rlcjc3QGdtYWlsLmNvbSIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJhdF9oYXNoIjoiZHVwX0FoVU5fakc2S1dTcUdCbW0wQSIsIm5hbWUiOiJCb3JpcyBJdmFub3YiLCJwaWN0dXJlIjoiaHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tLy0wQXpEUW5qeFlPay9BQUFBQUFBQUFBSS9BQUFBQUFBQUFBQS9BTVp1dWNtWk1UT21aaVc3U0pwaG9sQUxKR0VQTlBaUm5BL3M5Ni1jL3Bob3RvLmpwZyIsImdpdmVuX25hbWUiOiJCb3JpcyIsImZhbWlseV9uYW1lIjoiSXZhbm92IiwibG9jYWxlIjoicnUiLCJpYXQiOjE2MDY5MzA2NzgsImV4cCI6MTYwNjkzNDI3OH0.jC7Mg2KXglzlpg1HcuoiY0R7EwVxs39Gvi7cPs6S2GaeDsnCVFsn3O_QuEW-XWH4VCqwJUih7OKoEaM_BepDJvL6U1vDdpLnPsLsPcuZMK32RAfRzr_DqYfmIAIGR6IWPwP4u6lid6ztrR1nji5UoSUUNsG5PP8EddmG2l8_n4Pyrf3xHTjvWaA8M0Wkm6AUMbb0avQJj1qEhDcQr0V8zdfgl-24XD8zqK0rWJHaw8_WbDEseDUzkG7W_IcONheuCUiVJUyEmTYq5LFkWUgQgACUDdRkJY-7umnw-LTSX4HPmoJAruSYNlkcmOpg1zcaf3UByTFmrm1SaLdIrWRM_g
Content-Type: application/x-www-form-urlencoded
HTTP/1.1 200 OK
{
"accessToken" : "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ7XCJuYW1lXCI6bnVsbCxcImF1dGhlbnRpY2F0ZWRcIjp0cnVlLFwiYXV0aG9yaXRpZXNcIjpbe1wiYXV0aG9yaXR5XCI6XCJST0xFX1JFU1RPX0dVRVNUXCJ9XSxcInByaW5jaXBhbFwiOntcImlkXCI6MTU2LFwiYnlQaG9uZVwiOmZhbHNlLFwiZW1haWxcIjpcImdtYWlsQGdtYWlsLmNvbVwiLFwiYWNjb3VudElkXCI6bnVsbH19IiwiaWF0IjoxNzcxNzYyMTcxLCJleHAiOjE3NzIxOTQxNzF9.iXYcaTbcwGxwxEWmErVd0OSmk_7aZFtvmm8yZojgw9A",
"accessTokenExpireAt" : "2026-02-27T12:09:31.591Z",
"refreshToken" : "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ7XCJuYW1lXCI6bnVsbCxcImF1dGhlbnRpY2F0ZWRcIjp0cnVlLFwiYXV0aG9yaXRpZXNcIjpbe1wiYXV0aG9yaXR5XCI6XCJST0xFX1JFU1RPX0dVRVNUXCJ9XSxcInByaW5jaXBhbFwiOntcImlkXCI6MTU2LFwiYnlQaG9uZVwiOmZhbHNlLFwiZW1haWxcIjpcImdtYWlsQGdtYWlsLmNvbVwiLFwiYWNjb3VudElkXCI6bnVsbH19IiwiaWF0IjoxNzcxNzYyMTcxLCJleHAiOjE3NzIxOTQxNzF9.ZLsSIBCOGUWMRWE0XE343O9pxKvfC1UZggC2VYWDhyI",
"refreshTokenExpireAt" : "2026-02-27T12:09:31.592Z"
}
Sign in with Apple
POST /api/v1/sign/in/apple HTTP/1.1
Content-Type: application/json;charset=UTF-8
external-id-token: eyJhbGciOiJSUzI1NiIsImtpZCI6IjJlMzAyNWYyNmI1OTVmOTZlYWM5MDdjYzJiOTQ3MTQyMmJjYWViOTMiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20iLCJhenAiOiI0MDc0MDg3MTgxOTIuYXBwcy5nb29nbGV1c2VyY29udGVudC5jb20iLCJhdWQiOiI0MDc0MDg3MTgxOTIuYXBwcy5nb29nbGV1c2VyY29udGVudC5jb20iLCJzdWIiOiIxMTY0NDAxMzM2ODQ0MDIzNjA5OTkiLCJlbWFpbCI6ImJlcnR5d29vc3Rlcjc3QGdtYWlsLmNvbSIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJhdF9oYXNoIjoiZHVwX0FoVU5fakc2S1dTcUdCbW0wQSIsIm5hbWUiOiJCb3JpcyBJdmFub3YiLCJwaWN0dXJlIjoiaHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tLy0wQXpEUW5qeFlPay9BQUFBQUFBQUFBSS9BQUFBQUFBQUFBQS9BTVp1dWNtWk1UT21aaVc3U0pwaG9sQUxKR0VQTlBaUm5BL3M5Ni1jL3Bob3RvLmpwZyIsImdpdmVuX25hbWUiOiJCb3JpcyIsImZhbWlseV9uYW1lIjoiSXZhbm92IiwibG9jYWxlIjoicnUiLCJpYXQiOjE2MDY5MzA2NzgsImV4cCI6MTYwNjkzNDI3OH0.jC7Mg2KXglzlpg1HcuoiY0R7EwVxs39Gvi7cPs6S2GaeDsnCVFsn3O_QuEW-XWH4VCqwJUih7OKoEaM_BepDJvL6U1vDdpLnPsLsPcuZMK32RAfRzr_DqYfmIAIGR6IWPwP4u6lid6ztrR1nji5UoSUUNsG5PP8EddmG2l8_n4Pyrf3xHTjvWaA8M0Wkm6AUMbb0avQJj1qEhDcQr0V8zdfgl-24XD8zqK0rWJHaw8_WbDEseDUzkG7W_IcONheuCUiVJUyEmTYq5LFkWUgQgACUDdRkJY-7umnw-LTSX4HPmoJAruSYNlkcmOpg1zcaf3UByTFmrm1SaLdIrWRM_g
HTTP/1.1 200 OK
{
"accessToken" : "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ7XCJuYW1lXCI6bnVsbCxcImF1dGhlbnRpY2F0ZWRcIjp0cnVlLFwiYXV0aG9yaXRpZXNcIjpbe1wiYXV0aG9yaXR5XCI6XCJST0xFX1JFU1RPX0dVRVNUXCJ9XSxcInByaW5jaXBhbFwiOntcImlkXCI6MTU2LFwiYnlQaG9uZVwiOmZhbHNlLFwiZW1haWxcIjpcImdtYWlsQGdtYWlsLmNvbVwiLFwiYWNjb3VudElkXCI6bnVsbH19IiwiaWF0IjoxNzcxNzYyMTcxLCJleHAiOjE3NzIxOTQxNzF9.iXYcaTbcwGxwxEWmErVd0OSmk_7aZFtvmm8yZojgw9A",
"accessTokenExpireAt" : "2026-02-27T12:09:31.591Z",
"refreshToken" : "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ7XCJuYW1lXCI6bnVsbCxcImF1dGhlbnRpY2F0ZWRcIjp0cnVlLFwiYXV0aG9yaXRpZXNcIjpbe1wiYXV0aG9yaXR5XCI6XCJST0xFX1JFU1RPX0dVRVNUXCJ9XSxcInByaW5jaXBhbFwiOntcImlkXCI6MTU2LFwiYnlQaG9uZVwiOmZhbHNlLFwiZW1haWxcIjpcImdtYWlsQGdtYWlsLmNvbVwiLFwiYWNjb3VudElkXCI6bnVsbH19IiwiaWF0IjoxNzcxNzYyMTcxLCJleHAiOjE3NzIxOTQxNzF9.ZLsSIBCOGUWMRWE0XE343O9pxKvfC1UZggC2VYWDhyI",
"refreshTokenExpireAt" : "2026-02-27T12:09:31.592Z"
}
Sign in with VK
| Код | Описание |
|---|---|
web |
|
ios |
|
android |
[source,http,options="nowrap"]
POST /sign/in/vk
{
"application": "web",
"silentToken": "7a6fa4dff77a228eeda56603b8f53806c883f011c40b72630bb50df056f6479e52a",
"silentTokenUuid": "kVr3pN4dkILRLTaVtdpKR"
}
[source,http,options="nowrap"]
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
"accessToken" : "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ7XCJuYW1lXCI6bnVsbCxcImF1dGhlbnRpY2F0ZWRcIjp0cnVlLFwiYXV0aG9yaXRpZXNcIjpbe1wiYXV0aG9yaXR5XCI6XCJST0xFX1JFU1RPX0dVRVNUXCJ9XSxcInByaW5jaXBhbFwiOntcImlkXCI6MTAxLFwiYnlQaG9uZVwiOmZhbHNlLFwiZW1haWxcIjpcImdtYWlsQGdtYWlsLmNvbVwiLFwiYWNjb3VudElkXCI6bnVsbH19IiwiaWF0IjoxNjgxMjM3NzYyLCJleHAiOjE2ODE2Njk3NjJ9.2Ia2AzIHFfaXTc3gSNUsgle5EhZdpGE96oL4HTTrKqQ",
"accessTokenExpireAt" : "2023-04-16T18:29:22.308Z",
"refreshToken" : "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ7XCJuYW1lXCI6bnVsbCxcImF1dGhlbnRpY2F0ZWRcIjp0cnVlLFwiYXV0aG9yaXRpZXNcIjpbe1wiYXV0aG9yaXR5XCI6XCJST0xFX1JFU1RPX0dVRVNUXCJ9XSxcInByaW5jaXBhbFwiOntcImlkXCI6MTAxLFwiYnlQaG9uZVwiOmZhbHNlLFwiZW1haWxcIjpcImdtYWlsQGdtYWlsLmNvbVwiLFwiYWNjb3VudElkXCI6bnVsbH19IiwiaWF0IjoxNjgxMjM3NzYyLCJleHAiOjE2ODE2Njk3NjJ9.fJ6urHSztUjFAu6KebhT02y6sD5ErdjBffLOzXc4fVw",
"refreshTokenExpireAt" : "2023-04-16T18:29:22.310Z"
}
Person Me
GET /api/v1/me HTTP/1.1
HTTP/1.1 200 OK
{
"id" : 156,
"email" : "gmail@gmail.com",
"phone" : "+79993000505",
"firstName" : "firstName",
"lastName" : "lastName",
"patronymic" : null,
"deliveries" : [ ],
"accountIds" : [ null, 112 ]
}
Delivery Zones
Create
POST /api/v1/accounts/1/delivery-zones HTTP/1.1
{
"name" : "name-dz",
"rules" : [ {
"minOrderPrice" : 0,
"maxOrderPrice" : 100000,
"deliveryPrice" : 10000,
"time" : 120
}, {
"minOrderPrice" : 100000,
"maxOrderPrice" : 0,
"deliveryPrice" : 200000,
"time" : 120
} ],
"restoId" : 8,
"polygon" : [ {
"lat" : 60.00803141335128,
"lng" : 30.219885565489868
}, {
"lat" : 60.006787147135206,
"lng" : 30.224262930602173
}, {
"lat" : 60.003569000158876,
"lng" : 30.219456412047485
} ]
}
HTTP/1.1 200 OK
{
"id" : 2,
"name" : "name-dz",
"polygon" : [ {
"lat" : 60.003569000158876,
"lng" : 30.219456412047485
}, {
"lat" : 60.006787147135206,
"lng" : 30.224262930602173
}, {
"lat" : 60.00803141335128,
"lng" : 30.219885565489868
} ],
"rules" : [ {
"minOrderPrice" : 0,
"maxOrderPrice" : 100000,
"deliveryPrice" : 10000,
"time" : 120
}, {
"minOrderPrice" : 100000,
"maxOrderPrice" : 0,
"deliveryPrice" : 200000,
"time" : 120
} ],
"restoId" : 8
}
Update
PUT /api/v1/delivery-zones/2 HTTP/1.1
{
"name" : "name-dz-1",
"polygon" : [ {
"lat" : 60.00803141335128,
"lng" : 30.219885565489868
}, {
"lat" : 60.006787147135206,
"lng" : 30.224262930602173
}, {
"lat" : 60.003569000158876,
"lng" : 30.219456412047485
} ],
"restoId" : 8,
"rules" : [ {
"minOrderPrice" : 0,
"maxOrderPrice" : 100000,
"deliveryPrice" : 10000,
"time" : 120
} ]
}
HTTP/1.1 200 OK
Get by ID
GET /api/v1/delivery-zones/2 HTTP/1.1
HTTP/1.1 200 OK
{
"id" : 2,
"name" : "name-dz-1",
"polygon" : [ {
"lat" : 60.003569000158876,
"lng" : 30.219456412047485
}, {
"lat" : 60.006787147135206,
"lng" : 30.224262930602173
}, {
"lat" : 60.00803141335128,
"lng" : 30.219885565489868
} ],
"rules" : [ {
"minOrderPrice" : 0,
"maxOrderPrice" : 100000,
"deliveryPrice" : 10000,
"time" : 120
} ],
"restoId" : 8
}
Get by account ID
GET /api/v1/accounts/1/delivery-zones HTTP/1.1
HTTP/1.1 200 OK
{
"content" : [ {
"id" : 1,
"name" : "name-dz",
"createdAt" : 1771762144,
"updatedAt" : 1771762144,
"polygon" : [ {
"lat" : 59.99538416848024,
"lng" : 30.191746298907738
}, {
"lat" : 59.99328095634926,
"lng" : 30.22436196052883
}, {
"lat" : 60.00808644381226,
"lng" : 30.232086722491722
}, {
"lat" : 60.01126125052477,
"lng" : 30.204363410113793
} ],
"rules" : [ {
"minOrderPrice" : 0,
"maxOrderPrice" : 10000,
"deliveryPrice" : 10000,
"time" : 120
}, {
"minOrderPrice" : 10000,
"maxOrderPrice" : 50000,
"deliveryPrice" : 20000,
"time" : 120
} ],
"restoId" : 7
}, {
"id" : 2,
"name" : "name-dz-1",
"createdAt" : 1771762144,
"updatedAt" : 1771762144,
"polygon" : [ {
"lat" : 60.003569000158876,
"lng" : 30.219456412047485
}, {
"lat" : 60.006787147135206,
"lng" : 30.224262930602173
}, {
"lat" : 60.00803141335128,
"lng" : 30.219885565489868
} ],
"rules" : [ {
"minOrderPrice" : 0,
"maxOrderPrice" : 100000,
"deliveryPrice" : 10000,
"time" : 120
} ],
"restoId" : 8
} ],
"pageable" : {
"pageNumber" : 0,
"pageSize" : 10,
"sort" : {
"empty" : true,
"sorted" : false,
"unsorted" : true
},
"offset" : 0,
"paged" : true,
"unpaged" : false
},
"totalElements" : 2,
"last" : true,
"totalPages" : 1,
"size" : 10,
"number" : 0,
"sort" : {
"empty" : true,
"sorted" : false,
"unsorted" : true
},
"numberOfElements" : 2,
"first" : true,
"empty" : false
}
Leads
Phone lead
POST /api/v1/lead HTTP/1.1
{
"captchaToken" : "CaptchaToken",
"apiKey" : null,
"mode" : "WEB",
"phone" : "74859567589",
"tags" : [ "lead-1" ]
}
HTTP/1.1 200 OK
Email lead
POST /api/v1/lead/email HTTP/1.1
{
"captchaToken" : "CaptchaToken",
"apiKey" : null,
"mode" : "WEB",
"email" : "awesome@email.com",
"name" : "awesome partner",
"tags" : [ "lead-1" ]
}
HTTP/1.1 200 OK
Resto
Resto create
POST /api/v1/resto HTTP/1.1
{
"id" : null,
"accountId" : null,
"name" : "resto-name-1",
"description" : "setDescription",
"averageCheck" : 200.1,
"currency" : "RUB",
"state" : null,
"address" : {
"cityId" : null,
"lat" : 60.0032089,
"lng" : 30.2094682,
"postalCode" : "197082",
"countryCode" : "RU",
"country" : "Россия",
"locality" : "Санкт-Петербург",
"street" : "Туристская улица",
"streetNumber" : "28 корпус 1"
},
"deliveryChatId" : null,
"cloudPayments" : null,
"updatedAt" : 1771762163,
"tags" : [ {
"id" : 1,
"type" : "RESTO",
"name" : null
}, {
"id" : 2,
"type" : "RESTO",
"name" : null
} ],
"pays" : [ {
"id" : 31,
"type" : "RESTO_PAY",
"name" : null
}, {
"id" : 30,
"type" : "RESTO_PAY",
"name" : null
} ],
"photos" : [ {
"id" : 18,
"order" : 1
}, {
"id" : 19,
"order" : 2
} ],
"openingHours" : {
"7" : {
"accountId" : null,
"restoId" : null,
"type" : "WORKING_HOURS",
"dayOfWeek" : 7,
"open" : "15:09",
"close" : "15:09",
"active" : true
},
"2" : {
"accountId" : null,
"restoId" : null,
"type" : "WORKING_HOURS",
"dayOfWeek" : 2,
"open" : "15:09",
"close" : "15:09",
"active" : true
},
"3" : {
"accountId" : null,
"restoId" : null,
"type" : "WORKING_HOURS",
"dayOfWeek" : 3,
"open" : "15:09",
"close" : "15:09",
"active" : true
},
"6" : {
"accountId" : null,
"restoId" : null,
"type" : "WORKING_HOURS",
"dayOfWeek" : 6,
"open" : "15:09",
"close" : "15:09",
"active" : true
},
"1" : {
"accountId" : null,
"restoId" : null,
"type" : "WORKING_HOURS",
"dayOfWeek" : 1,
"open" : "15:09",
"close" : "15:09",
"active" : true
},
"4" : {
"accountId" : null,
"restoId" : null,
"type" : "WORKING_HOURS",
"dayOfWeek" : 4,
"open" : "15:09",
"close" : "15:09",
"active" : true
},
"5" : {
"accountId" : null,
"restoId" : null,
"type" : "WORKING_HOURS",
"dayOfWeek" : 5,
"open" : "15:09",
"close" : "15:09",
"active" : true
}
},
"links" : [ {
"id" : null,
"accountId" : null,
"type" : "LINK",
"subType" : "SITE",
"name" : null,
"value" : "http://vk.com"
} ],
"phones" : [ {
"id" : null,
"accountId" : null,
"type" : "PHONE",
"subType" : "PHONE",
"name" : null,
"value" : "+78903000595"
} ],
"emails" : [ {
"id" : null,
"accountId" : null,
"type" : "EMAIL",
"subType" : "EMAIL",
"name" : null,
"value" : "mail@mail.com"
} ],
"payConfig" : {
"delivery" : {
"cardOnline" : null,
"cardUponReceipt" : true,
"cashUponReceipt" : true
},
"takeAway" : {
"cardOnline" : null,
"cardUponReceipt" : true,
"cashUponReceipt" : true
},
"table" : {
"cardOnline" : null,
"commonReceipt" : true
}
},
"unreadCount" : null,
"payEngine" : {
"password" : null,
"currency" : null,
"sector" : null,
"paymentType" : null,
"url" : null,
"successUrl" : null,
"failureUrl" : null,
"taxSystem" : null,
"offer" : {
"id" : 20,
"order" : 3
}
},
"active" : false
}
HTTP/1.1 200 OK
{
"id" : 80,
"accountId" : 1,
"name" : "resto-name-1",
"description" : "setDescription",
"averageCheck" : 200.1,
"currency" : "RUB",
"state" : "MODERATING",
"address" : {
"cityId" : 2,
"lat" : 60.0032089,
"lng" : 30.2094682,
"postalCode" : "197082",
"countryCode" : "RU",
"country" : "Россия",
"locality" : "Санкт-Петербург",
"street" : "Туристская улица",
"streetNumber" : "28 корпус 1"
},
"deliveryChatId" : null,
"cloudPayments" : null,
"updatedAt" : 1771762163,
"tags" : [ {
"id" : 2,
"type" : "RESTO",
"name" : "Суши"
}, {
"id" : 1,
"type" : "RESTO",
"name" : "Бургеры"
} ],
"pays" : [ {
"id" : 30,
"type" : "RESTO_PAY",
"name" : "Наличные"
}, {
"id" : 31,
"type" : "RESTO_PAY",
"name" : "Безналичные"
} ],
"photos" : [ {
"id" : 18,
"order" : 1
}, {
"id" : 19,
"order" : 2
} ],
"openingHours" : {
"7" : {
"accountId" : 1,
"restoId" : 80,
"type" : "WORKING_HOURS",
"dayOfWeek" : 7,
"open" : "15:09",
"close" : "15:09",
"active" : true
},
"2" : {
"accountId" : 1,
"restoId" : 80,
"type" : "WORKING_HOURS",
"dayOfWeek" : 2,
"open" : "15:09",
"close" : "15:09",
"active" : true
},
"3" : {
"accountId" : 1,
"restoId" : 80,
"type" : "WORKING_HOURS",
"dayOfWeek" : 3,
"open" : "15:09",
"close" : "15:09",
"active" : true
},
"6" : {
"accountId" : 1,
"restoId" : 80,
"type" : "WORKING_HOURS",
"dayOfWeek" : 6,
"open" : "15:09",
"close" : "15:09",
"active" : true
},
"1" : {
"accountId" : 1,
"restoId" : 80,
"type" : "WORKING_HOURS",
"dayOfWeek" : 1,
"open" : "15:09",
"close" : "15:09",
"active" : true
},
"4" : {
"accountId" : 1,
"restoId" : 80,
"type" : "WORKING_HOURS",
"dayOfWeek" : 4,
"open" : "15:09",
"close" : "15:09",
"active" : true
},
"5" : {
"accountId" : 1,
"restoId" : 80,
"type" : "WORKING_HOURS",
"dayOfWeek" : 5,
"open" : "15:09",
"close" : "15:09",
"active" : true
}
},
"links" : [ {
"id" : 216,
"accountId" : 1,
"type" : "LINK",
"subType" : "SITE",
"name" : null,
"value" : "http://vk.com"
} ],
"phones" : [ {
"id" : 215,
"accountId" : 1,
"type" : "PHONE",
"subType" : "PHONE",
"name" : null,
"value" : "+78903000595"
} ],
"emails" : [ {
"id" : 214,
"accountId" : 1,
"type" : "EMAIL",
"subType" : "EMAIL",
"name" : null,
"value" : "mail@mail.com"
} ],
"payConfig" : {
"delivery" : {
"cardOnline" : null,
"cardUponReceipt" : true,
"cashUponReceipt" : true
},
"takeAway" : {
"cardOnline" : null,
"cardUponReceipt" : true,
"cashUponReceipt" : true
},
"table" : {
"cardOnline" : null,
"commonReceipt" : true
}
},
"unreadCount" : null,
"payEngine" : {
"password" : null,
"currency" : null,
"sector" : null,
"paymentType" : null,
"url" : null,
"successUrl" : null,
"failureUrl" : null,
"taxSystem" : null,
"offerUrl" : "http://localhost:4545/1/files/20",
"offer" : {
"id" : 20,
"order" : 20
}
},
"active" : false
}
Resto update
PUT /api/v1/resto/80 HTTP/1.1
{
"id" : null,
"accountId" : null,
"name" : "resto-name-2",
"description" : "setDescription",
"averageCheck" : 300.09,
"currency" : "RUB",
"state" : null,
"address" : {
"cityId" : null,
"lat" : 60.0032089,
"lng" : 30.2094682,
"postalCode" : "197082",
"countryCode" : "RU",
"country" : "Россия",
"locality" : "Санкт-Петербург",
"street" : "Туристская улица",
"streetNumber" : "28 корпус 1"
},
"deliveryChatId" : "-12345678901",
"cloudPayments" : null,
"updatedAt" : 1771762163,
"tags" : [ {
"id" : 3,
"type" : "RESTO",
"name" : null
} ],
"pays" : [ ],
"photos" : [ {
"id" : 21,
"order" : 1
}, {
"id" : 22,
"order" : 2
} ],
"openingHours" : {
"7" : {
"accountId" : null,
"restoId" : 80,
"type" : "WORKING_HOURS",
"dayOfWeek" : 7,
"open" : "15:09",
"close" : "15:09",
"active" : true
},
"2" : {
"accountId" : null,
"restoId" : 80,
"type" : "WORKING_HOURS",
"dayOfWeek" : 2,
"open" : "15:09",
"close" : "15:09",
"active" : true
},
"3" : {
"accountId" : null,
"restoId" : 80,
"type" : "WORKING_HOURS",
"dayOfWeek" : 3,
"open" : "15:09",
"close" : "15:09",
"active" : true
},
"6" : {
"accountId" : null,
"restoId" : 80,
"type" : "WORKING_HOURS",
"dayOfWeek" : 6,
"open" : "15:09",
"close" : "15:09",
"active" : true
},
"1" : {
"accountId" : null,
"restoId" : 80,
"type" : "WORKING_HOURS",
"dayOfWeek" : 1,
"open" : "15:09",
"close" : "15:09",
"active" : true
},
"4" : {
"accountId" : null,
"restoId" : 80,
"type" : "WORKING_HOURS",
"dayOfWeek" : 4,
"open" : "15:09",
"close" : "15:09",
"active" : true
},
"5" : {
"accountId" : null,
"restoId" : 80,
"type" : "WORKING_HOURS",
"dayOfWeek" : 5,
"open" : "15:09",
"close" : "15:09",
"active" : true
}
},
"links" : [ {
"id" : 216,
"accountId" : 1,
"type" : "LINK",
"subType" : "SITE",
"name" : null,
"value" : "http://vk.com"
} ],
"phones" : [ {
"id" : null,
"accountId" : null,
"type" : "PHONE",
"subType" : "PHONE",
"name" : null,
"value" : "+89154000878"
} ],
"emails" : [ ],
"payConfig" : {
"delivery" : {
"cardOnline" : null,
"cardUponReceipt" : true,
"cashUponReceipt" : true
},
"takeAway" : {
"cardOnline" : null,
"cardUponReceipt" : true,
"cashUponReceipt" : true
},
"table" : {
"cardOnline" : null,
"commonReceipt" : true
}
},
"unreadCount" : null,
"payEngine" : {
"password" : null,
"currency" : null,
"sector" : null,
"paymentType" : null,
"url" : null,
"successUrl" : null,
"failureUrl" : null,
"taxSystem" : null,
"offer" : {
"id" : 23,
"order" : 3
}
},
"active" : false
}
HTTP/1.1 200 OK
Resto order up
PUT /1/resto/80/order/up HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Resto order down
PUT /1/resto/80/order/down HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Resto list
GET /api/v1/accounts/1/resto HTTP/1.1
HTTP/1.1 200 OK
{
"content" : [ {
"id" : 80,
"accountId" : 1,
"name" : "resto-name-2",
"description" : "setDescription",
"averageCheck" : 300.09,
"state" : "MODERATING",
"address" : {
"cityId" : 2,
"lat" : null,
"lng" : null,
"postalCode" : "197082",
"countryCode" : "RU",
"country" : "Россия",
"locality" : "Санкт-Петербург",
"street" : "Туристская улица",
"streetNumber" : "28 корпус 1"
},
"updatedAt" : 1771762163,
"unreadCount" : 0,
"city" : null,
"active" : false
} ],
"pageable" : {
"pageNumber" : 0,
"pageSize" : 10,
"sort" : {
"empty" : true,
"sorted" : false,
"unsorted" : true
},
"offset" : 0,
"paged" : true,
"unpaged" : false
},
"totalElements" : 1,
"last" : true,
"totalPages" : 1,
"size" : 10,
"number" : 0,
"sort" : {
"empty" : true,
"sorted" : false,
"unsorted" : true
},
"numberOfElements" : 1,
"first" : true,
"empty" : false
}
Resto get by id
GET /api/v1/resto/80 HTTP/1.1
HTTP/1.1 200 OK
{
"id" : 80,
"accountId" : 1,
"name" : "resto-name-2",
"description" : "setDescription",
"averageCheck" : 300.09,
"currency" : "RUB",
"state" : "MODERATING",
"address" : {
"cityId" : 2,
"lat" : 60.0032089,
"lng" : 30.2094682,
"postalCode" : "197082",
"countryCode" : "RU",
"country" : "Россия",
"locality" : "Санкт-Петербург",
"street" : "Туристская улица",
"streetNumber" : "28 корпус 1"
},
"deliveryChatId" : "-12345678901",
"cloudPayments" : null,
"updatedAt" : 1771762163,
"tags" : [ {
"id" : 3,
"type" : "RESTO",
"name" : "Пицца"
} ],
"pays" : [ ],
"photos" : [ ],
"openingHours" : {
"7" : {
"accountId" : 1,
"restoId" : 80,
"type" : "WORKING_HOURS",
"dayOfWeek" : 7,
"open" : "15:09",
"close" : "15:09",
"active" : true
},
"2" : {
"accountId" : 1,
"restoId" : 80,
"type" : "WORKING_HOURS",
"dayOfWeek" : 2,
"open" : "15:09",
"close" : "15:09",
"active" : true
},
"3" : {
"accountId" : 1,
"restoId" : 80,
"type" : "WORKING_HOURS",
"dayOfWeek" : 3,
"open" : "15:09",
"close" : "15:09",
"active" : true
},
"6" : {
"accountId" : 1,
"restoId" : 80,
"type" : "WORKING_HOURS",
"dayOfWeek" : 6,
"open" : "15:09",
"close" : "15:09",
"active" : true
},
"1" : {
"accountId" : 1,
"restoId" : 80,
"type" : "WORKING_HOURS",
"dayOfWeek" : 1,
"open" : "15:09",
"close" : "15:09",
"active" : true
},
"4" : {
"accountId" : 1,
"restoId" : 80,
"type" : "WORKING_HOURS",
"dayOfWeek" : 4,
"open" : "15:09",
"close" : "15:09",
"active" : true
},
"5" : {
"accountId" : 1,
"restoId" : 80,
"type" : "WORKING_HOURS",
"dayOfWeek" : 5,
"open" : "15:09",
"close" : "15:09",
"active" : true
}
},
"links" : [ {
"id" : 216,
"accountId" : 1,
"type" : "LINK",
"subType" : "SITE",
"name" : null,
"value" : "http://vk.com"
} ],
"phones" : [ {
"id" : 220,
"accountId" : 1,
"type" : "PHONE",
"subType" : "PHONE",
"name" : null,
"value" : "+89154000878"
} ],
"emails" : [ ],
"payConfig" : {
"delivery" : {
"cardOnline" : null,
"cardUponReceipt" : true,
"cashUponReceipt" : true
},
"takeAway" : {
"cardOnline" : null,
"cardUponReceipt" : true,
"cashUponReceipt" : true
},
"table" : {
"cardOnline" : null,
"commonReceipt" : true
}
},
"unreadCount" : null,
"payEngine" : {
"password" : null,
"currency" : null,
"sector" : null,
"paymentType" : null,
"url" : null,
"successUrl" : null,
"failureUrl" : null,
"taxSystem" : null,
"offerUrl" : null,
"offer" : null
},
"active" : false
}
Get deliveries
| public access |
GET /1/restos/8/deliveries HTTP/1.1
HTTP/1.1 200 OK
{
"content" : [ {
"id" : 2,
"name" : "name-dz-1",
"polygon" : [ {
"lat" : 60.003569000158876,
"lng" : 30.219456412047485
}, {
"lat" : 60.006787147135206,
"lng" : 30.224262930602173
}, {
"lat" : 60.00803141335128,
"lng" : 30.219885565489868
} ],
"rules" : [ {
"minOrderPrice" : 0,
"maxOrderPrice" : 100000,
"deliveryPrice" : 10000,
"time" : 120
} ]
} ],
"pageable" : {
"pageNumber" : 0,
"pageSize" : 50,
"sort" : {
"empty" : true,
"sorted" : false,
"unsorted" : true
},
"offset" : 0,
"paged" : true,
"unpaged" : false
},
"totalElements" : 1,
"last" : true,
"totalPages" : 1,
"size" : 50,
"number" : 0,
"sort" : {
"empty" : true,
"sorted" : false,
"unsorted" : true
},
"numberOfElements" : 1,
"first" : true,
"empty" : false
}
Получение времени работы для предзаказов ресторана
GET /1/restos/81/working-hours HTTP/1.1
HTTP/1.1 200 OK
[ {
"type" : "TABLE_HOURS",
"minTimeMinutes" : 30,
"dayInAdvance" : 6,
"hours" : [ {
"dayOfWeek" : 1,
"isActive" : true,
"open" : "09:00",
"close" : "21:00"
}, {
"dayOfWeek" : 2,
"isActive" : true,
"open" : "09:00",
"close" : "21:00"
}, {
"dayOfWeek" : 3,
"isActive" : true,
"open" : "09:00",
"close" : "21:00"
}, {
"dayOfWeek" : 4,
"isActive" : true,
"open" : "09:00",
"close" : "21:00"
}, {
"dayOfWeek" : 5,
"isActive" : true,
"open" : "09:00",
"close" : "21:00"
}, {
"dayOfWeek" : 6,
"isActive" : true,
"open" : "09:00",
"close" : "21:00"
}, {
"dayOfWeek" : 7,
"isActive" : true,
"open" : "09:00",
"close" : "21:00"
} ]
}, {
"type" : "TAKE_AWAY_HOURS",
"minTimeMinutes" : 30,
"dayInAdvance" : 6,
"hours" : [ {
"dayOfWeek" : 1,
"isActive" : true,
"open" : "09:00",
"close" : "21:00"
}, {
"dayOfWeek" : 2,
"isActive" : true,
"open" : "09:00",
"close" : "21:00"
}, {
"dayOfWeek" : 3,
"isActive" : true,
"open" : "09:00",
"close" : "21:00"
}, {
"dayOfWeek" : 4,
"isActive" : true,
"open" : "09:00",
"close" : "21:00"
}, {
"dayOfWeek" : 5,
"isActive" : true,
"open" : "09:00",
"close" : "21:00"
}, {
"dayOfWeek" : 6,
"isActive" : true,
"open" : "09:00",
"close" : "21:00"
}, {
"dayOfWeek" : 7,
"isActive" : true,
"open" : "09:00",
"close" : "21:00"
} ]
}, {
"type" : "DELIVERY_HOURS",
"minTimeMinutes" : 30,
"dayInAdvance" : 6,
"hours" : [ {
"dayOfWeek" : 1,
"isActive" : true,
"open" : "09:00",
"close" : "21:00"
}, {
"dayOfWeek" : 2,
"isActive" : true,
"open" : "09:00",
"close" : "21:00"
}, {
"dayOfWeek" : 3,
"isActive" : true,
"open" : "09:00",
"close" : "21:00"
}, {
"dayOfWeek" : 4,
"isActive" : true,
"open" : "09:00",
"close" : "21:00"
}, {
"dayOfWeek" : 5,
"isActive" : true,
"open" : "09:00",
"close" : "21:00"
}, {
"dayOfWeek" : 6,
"isActive" : true,
"open" : "09:00",
"close" : "21:00"
}, {
"dayOfWeek" : 7,
"isActive" : true,
"open" : "09:00",
"close" : "21:00"
} ]
} ]
Изменение времени работы для предзаказов ресторана
PUT /1/restos/81/working-hours HTTP/1.1
[ {
"type" : "TABLE_HOURS",
"minTimeMinutes" : 30,
"dayInAdvance" : 6,
"hours" : [ {
"dayOfWeek" : 1,
"isActive" : true,
"open" : "09:00",
"close" : "21:00"
}, {
"dayOfWeek" : 2,
"isActive" : true,
"open" : "09:00",
"close" : "21:00"
}, {
"dayOfWeek" : 3,
"isActive" : true,
"open" : "09:00",
"close" : "21:00"
}, {
"dayOfWeek" : 4,
"isActive" : true,
"open" : "09:00",
"close" : "21:00"
}, {
"dayOfWeek" : 5,
"isActive" : true,
"open" : "09:00",
"close" : "21:00"
}, {
"dayOfWeek" : 6,
"isActive" : true,
"open" : "09:00",
"close" : "21:00"
}, {
"dayOfWeek" : 7,
"isActive" : true,
"open" : "09:00",
"close" : "21:00"
} ]
}, {
"type" : "DELIVERY_HOURS",
"minTimeMinutes" : 30,
"dayInAdvance" : 6,
"hours" : [ {
"dayOfWeek" : 1,
"isActive" : true,
"open" : "09:00",
"close" : "21:00"
}, {
"dayOfWeek" : 2,
"isActive" : true,
"open" : "09:00",
"close" : "21:00"
}, {
"dayOfWeek" : 3,
"isActive" : true,
"open" : "09:00",
"close" : "21:00"
}, {
"dayOfWeek" : 4,
"isActive" : true,
"open" : "09:00",
"close" : "21:00"
}, {
"dayOfWeek" : 5,
"isActive" : true,
"open" : "09:00",
"close" : "21:00"
}, {
"dayOfWeek" : 6,
"isActive" : true,
"open" : "09:00",
"close" : "21:00"
}, {
"dayOfWeek" : 7,
"isActive" : true,
"open" : "09:00",
"close" : "21:00"
} ]
}, {
"type" : "TAKE_AWAY_HOURS",
"minTimeMinutes" : 30,
"dayInAdvance" : 6,
"hours" : [ {
"dayOfWeek" : 1,
"isActive" : true,
"open" : "09:00",
"close" : "21:00"
}, {
"dayOfWeek" : 2,
"isActive" : true,
"open" : "09:00",
"close" : "21:00"
}, {
"dayOfWeek" : 3,
"isActive" : true,
"open" : "09:00",
"close" : "21:00"
}, {
"dayOfWeek" : 4,
"isActive" : true,
"open" : "09:00",
"close" : "21:00"
}, {
"dayOfWeek" : 5,
"isActive" : true,
"open" : "09:00",
"close" : "21:00"
}, {
"dayOfWeek" : 6,
"isActive" : true,
"open" : "09:00",
"close" : "21:00"
}, {
"dayOfWeek" : 7,
"isActive" : true,
"open" : "09:00",
"close" : "21:00"
} ]
} ]
HTTP/1.1 200 OK
GET /api/v1/resto/80 HTTP/1.1
HTTP/1.1 200 OK
{
"id" : 80,
"accountId" : 1,
"name" : "resto-name-2",
"description" : "setDescription",
"averageCheck" : 300.09,
"currency" : "RUB",
"state" : "MODERATING",
"address" : {
"cityId" : 2,
"lat" : 60.0032089,
"lng" : 30.2094682,
"postalCode" : "197082",
"countryCode" : "RU",
"country" : "Россия",
"locality" : "Санкт-Петербург",
"street" : "Туристская улица",
"streetNumber" : "28 корпус 1"
},
"deliveryChatId" : "-12345678901",
"cloudPayments" : null,
"updatedAt" : 1771762163,
"tags" : [ {
"id" : 3,
"type" : "RESTO",
"name" : "Пицца"
} ],
"pays" : [ ],
"photos" : [ ],
"openingHours" : {
"7" : {
"accountId" : 1,
"restoId" : 80,
"type" : "WORKING_HOURS",
"dayOfWeek" : 7,
"open" : "15:09",
"close" : "15:09",
"active" : true
},
"2" : {
"accountId" : 1,
"restoId" : 80,
"type" : "WORKING_HOURS",
"dayOfWeek" : 2,
"open" : "15:09",
"close" : "15:09",
"active" : true
},
"3" : {
"accountId" : 1,
"restoId" : 80,
"type" : "WORKING_HOURS",
"dayOfWeek" : 3,
"open" : "15:09",
"close" : "15:09",
"active" : true
},
"6" : {
"accountId" : 1,
"restoId" : 80,
"type" : "WORKING_HOURS",
"dayOfWeek" : 6,
"open" : "15:09",
"close" : "15:09",
"active" : true
},
"1" : {
"accountId" : 1,
"restoId" : 80,
"type" : "WORKING_HOURS",
"dayOfWeek" : 1,
"open" : "15:09",
"close" : "15:09",
"active" : true
},
"4" : {
"accountId" : 1,
"restoId" : 80,
"type" : "WORKING_HOURS",
"dayOfWeek" : 4,
"open" : "15:09",
"close" : "15:09",
"active" : true
},
"5" : {
"accountId" : 1,
"restoId" : 80,
"type" : "WORKING_HOURS",
"dayOfWeek" : 5,
"open" : "15:09",
"close" : "15:09",
"active" : true
}
},
"links" : [ {
"id" : 216,
"accountId" : 1,
"type" : "LINK",
"subType" : "SITE",
"name" : null,
"value" : "http://vk.com"
} ],
"phones" : [ {
"id" : 220,
"accountId" : 1,
"type" : "PHONE",
"subType" : "PHONE",
"name" : null,
"value" : "+89154000878"
} ],
"emails" : [ ],
"payConfig" : {
"delivery" : {
"cardOnline" : null,
"cardUponReceipt" : true,
"cashUponReceipt" : true
},
"takeAway" : {
"cardOnline" : null,
"cardUponReceipt" : true,
"cashUponReceipt" : true
},
"table" : {
"cardOnline" : null,
"commonReceipt" : true
}
},
"unreadCount" : null,
"payEngine" : {
"password" : null,
"currency" : null,
"sector" : null,
"paymentType" : null,
"url" : null,
"successUrl" : null,
"failureUrl" : null,
"taxSystem" : null,
"offerUrl" : null,
"offer" : null
},
"active" : false
}
Получение модификаторов позиций по ресторану
GET /1/restos/54/positions/modifiers HTTP/1.1
HTTP/1.1 200 OK
[ {
"positionId" : 119,
"modifiers" : [ {
"id" : 24,
"modifierId" : 22,
"minCount" : 0,
"maxCount" : 5,
"name" : "modifier-0-name",
"nameUi" : null,
"items" : [ {
"id" : 54,
"modifierItemId" : 52,
"order" : 2,
"name" : "modifier-0-item-2",
"price" : 300,
"minCount" : 3,
"maxCount" : 7,
"yields" : [ {
"order" : 0,
"yieldType" : "LITER",
"value" : 3
} ]
}, {
"id" : 55,
"modifierItemId" : 51,
"order" : 1,
"name" : "modifier-0-item-1",
"price" : 200,
"minCount" : 2,
"maxCount" : 6,
"yields" : [ {
"order" : 0,
"yieldType" : "LITER",
"value" : 2
} ]
}, {
"id" : 56,
"modifierItemId" : 50,
"order" : 0,
"name" : "modifier-0-item-0",
"price" : 100,
"minCount" : 1,
"maxCount" : 5,
"yields" : [ {
"order" : 0,
"yieldType" : "LITER",
"value" : 1
} ]
} ]
}, {
"id" : 25,
"modifierId" : 24,
"minCount" : 1,
"maxCount" : 5,
"name" : "modifier-2-name",
"nameUi" : null,
"items" : [ {
"id" : 57,
"modifierItemId" : 54,
"order" : 0,
"name" : "modifier-2-item-0",
"price" : 400,
"minCount" : 2,
"maxCount" : 55,
"yields" : [ {
"order" : 0,
"yieldType" : "LITER",
"value" : 1
} ]
} ]
} ]
} ]
Получение скидок позиций по ресторану
GET /1/restos/90/positions/discounts HTTP/1.1
HTTP/1.1 200 OK
{
"positionIds" : [ {
"id" : 225,
"discountIds" : [ 16 ]
}, {
"id" : 215,
"discountIds" : [ 16 ]
}, {
"id" : 216,
"discountIds" : [ 16 ]
}, {
"id" : 223,
"discountIds" : [ 16 ]
}, {
"id" : 221,
"discountIds" : [ 16 ]
}, {
"id" : 219,
"discountIds" : [ 16 ]
}, {
"id" : 218,
"discountIds" : [ 16 ]
}, {
"id" : 226,
"discountIds" : [ 16 ]
}, {
"id" : 222,
"discountIds" : [ 16 ]
}, {
"id" : 224,
"discountIds" : [ 16 ]
}, {
"id" : 220,
"discountIds" : [ 16 ]
}, {
"id" : 217,
"discountIds" : [ 16 ]
}, {
"id" : 214,
"discountIds" : [ 16 ]
} ],
"discounts" : [ {
"id" : 16,
"name" : "discount-name",
"type" : "DELIVERY",
"valueType" : "ABSOLUTE",
"value" : 15
} ]
}
Получение скидок по ресторану
GET /1/restos/83/discounts HTTP/1.1
HTTP/1.1 200 OK
[ {
"id" : 12,
"name" : "discount-name-1",
"type" : "DELIVERY",
"valueType" : "ABSOLUTE",
"value" : 15,
"updatedAt" : 1771762164
} ]
Moderation
Get restos moderation page
GET /api/v1/moderation/resto HTTP/1.1
HTTP/1.1 200 OK
{
"content" : [ {
"id" : 79,
"accountId" : 1,
"name" : "resto-name-1",
"description" : "setDescription",
"averageCheck" : 200.9,
"state" : "MODERATING",
"address" : {
"cityId" : 2,
"lat" : null,
"lng" : null,
"postalCode" : "197082",
"countryCode" : "RU",
"country" : "Россия",
"locality" : "Санкт-Петербург",
"street" : "Туристская улица",
"streetNumber" : "28 корпус 1"
},
"updatedAt" : 1771762163,
"unreadCount" : 1,
"city" : null,
"active" : false
} ],
"pageable" : {
"pageNumber" : 0,
"pageSize" : 10,
"sort" : {
"empty" : true,
"sorted" : false,
"unsorted" : true
},
"offset" : 0,
"paged" : true,
"unpaged" : false
},
"totalElements" : 1,
"last" : true,
"totalPages" : 1,
"size" : 10,
"number" : 0,
"sort" : {
"empty" : true,
"sorted" : false,
"unsorted" : true
},
"numberOfElements" : 1,
"first" : true,
"empty" : false
}
Modifiers
Create modifier
| Yield | Описание |
|---|---|
MILLILITER |
|
PIECE |
|
GRAM |
|
CM |
POST /1/accounts/1/modifiers HTTP/1.1
{
"name" : "modifier-name",
"nameUi" : "modifier-name-ui",
"minCount" : 0,
"maxCount" : 5,
"items" : [ {
"order" : 0,
"name" : "modifier-item-1",
"price" : 100,
"minCount" : 1,
"maxCount" : 5,
"yields" : [ {
"order" : 0,
"yieldType" : "LITER",
"value" : 1
} ]
}, {
"order" : 1,
"name" : "modifier-item-2",
"price" : 300,
"minCount" : 0,
"maxCount" : 1,
"yields" : [ {
"order" : 0,
"yieldType" : "KG",
"value" : 1
} ]
}, {
"order" : 2,
"name" : "modifier-item-3",
"price" : 400,
"minCount" : 0,
"maxCount" : 1,
"yields" : [ {
"order" : 0,
"yieldType" : "PIECE",
"value" : 1
}, {
"order" : 1,
"yieldType" : "CM",
"value" : 2
} ]
} ]
}
HTTP/1.1 200 OK
{
"id" : 25,
"name" : "modifier-name",
"nameUi" : "modifier-name-ui",
"minCount" : 0,
"maxCount" : 5,
"items" : [ {
"id" : 55,
"order" : 0,
"name" : "modifier-item-1",
"price" : 100,
"minCount" : 1,
"maxCount" : 5,
"yields" : [ {
"order" : 0,
"yieldType" : "LITER",
"value" : 1
} ]
}, {
"id" : 56,
"order" : 1,
"name" : "modifier-item-2",
"price" : 300,
"minCount" : 0,
"maxCount" : 1,
"yields" : [ {
"order" : 0,
"yieldType" : "KG",
"value" : 1
} ]
}, {
"id" : 57,
"order" : 2,
"name" : "modifier-item-3",
"price" : 400,
"minCount" : 0,
"maxCount" : 1,
"yields" : [ {
"order" : 0,
"yieldType" : "PIECE",
"value" : 1
}, {
"order" : 1,
"yieldType" : "CM",
"value" : 2
} ]
} ]
}
Update modifier
PUT /1/modifiers/25 HTTP/1.1
{
"name" : "modifier-name",
"nameUi" : "modifier-name-ui",
"minCount" : 0,
"maxCount" : 5,
"items" : [ {
"order" : 1,
"name" : "modifier-item-4",
"price" : 500,
"minCount" : 1,
"maxCount" : 1,
"yields" : [ {
"order" : 0,
"yieldType" : "KG",
"value" : 1000
} ],
"id" : null
}, {
"order" : 2,
"name" : "modifier-item-3",
"price" : 400,
"minCount" : 0,
"maxCount" : 1,
"yields" : [ {
"order" : 0,
"yieldType" : "PIECE",
"value" : 1
}, {
"order" : 1,
"yieldType" : "CM",
"value" : 2
} ],
"id" : 57
}, {
"order" : 0,
"name" : "modifier-item-1",
"price" : 100,
"minCount" : 1,
"maxCount" : 5,
"yields" : [ {
"order" : 0,
"yieldType" : "LITER",
"value" : 1
} ],
"id" : 55
} ]
}
HTTP/1.1 200 OK
Get by id modifier
GET /1/modifiers/25 HTTP/1.1
HTTP/1.1 200 OK
{
"id" : 25,
"name" : "modifier-name",
"nameUi" : "modifier-name-ui",
"minCount" : 0,
"maxCount" : 5,
"items" : [ {
"id" : 55,
"order" : 0,
"name" : "modifier-item-1",
"price" : 100,
"minCount" : 1,
"maxCount" : 5,
"yields" : [ {
"order" : 0,
"yieldType" : "LITER",
"value" : 1
} ]
}, {
"id" : 58,
"order" : 1,
"name" : "modifier-item-4",
"price" : 500,
"minCount" : 1,
"maxCount" : 1,
"yields" : [ {
"order" : 0,
"yieldType" : "KG",
"value" : 1000
} ]
}, {
"id" : 57,
"order" : 2,
"name" : "modifier-item-3",
"price" : 400,
"minCount" : 0,
"maxCount" : 1,
"yields" : [ {
"order" : 0,
"yieldType" : "PIECE",
"value" : 1
}, {
"order" : 1,
"yieldType" : "CM",
"value" : 2
} ]
} ]
}
Get by account id modifier (Page)
GET /1/accounts/1/modifiers HTTP/1.1
HTTP/1.1 200 OK
{
"content" : [ {
"id" : 23,
"name" : "modifier-1-name",
"nameUi" : null,
"minCount" : 2,
"maxCount" : 3
}, {
"id" : 24,
"name" : "modifier-2-name",
"nameUi" : null,
"minCount" : 1,
"maxCount" : 5
}, {
"id" : 25,
"name" : "modifier-name",
"nameUi" : "modifier-name-ui",
"minCount" : 0,
"maxCount" : 5
} ],
"pageable" : {
"pageNumber" : 0,
"pageSize" : 10,
"sort" : {
"empty" : true,
"sorted" : false,
"unsorted" : true
},
"offset" : 0,
"paged" : true,
"unpaged" : false
},
"totalElements" : 3,
"last" : true,
"totalPages" : 1,
"size" : 10,
"number" : 0,
"sort" : {
"empty" : true,
"sorted" : false,
"unsorted" : true
},
"numberOfElements" : 3,
"first" : true,
"empty" : false
}
Menu
Menu create
POST /api/v1/menu HTTP/1.1
{
"id" : null,
"name" : "name",
"currency" : "RUB",
"nameUi" : "name-ui",
"description" : "description",
"active" : null,
"restos" : [ ]
}
HTTP/1.1 200 OK
{
"id" : 51,
"accountId" : 1,
"name" : null,
"nameUi" : null,
"description" : null,
"active" : false,
"currency" : "RUB",
"state" : "MODERATING",
"updatedAt" : 1771762160,
"restos" : [ ]
}
Menu update
PUT /api/v1/menu/51 HTTP/1.1
{
"id" : null,
"name" : "name-1",
"currency" : "RUB",
"nameUi" : "name-ui-1",
"description" : "description-1",
"active" : null,
"restos" : [ {
"id" : 69,
"table" : false,
"online" : true,
"delivery" : true,
"takeAway" : false,
"isOnline" : true,
"isDelivery" : true,
"isTakeAway" : false,
"isTable" : false
}, {
"id" : 70,
"table" : false,
"online" : true,
"delivery" : true,
"takeAway" : false,
"isOnline" : true,
"isDelivery" : true,
"isTakeAway" : false,
"isTable" : false
}, {
"id" : 71,
"table" : false,
"online" : true,
"delivery" : false,
"takeAway" : false,
"isOnline" : true,
"isDelivery" : false,
"isTakeAway" : false,
"isTable" : false
} ]
}
HTTP/1.1 200 OK
Menu list
GET /api/v1/menu HTTP/1.1
HTTP/1.1 200 OK
[ {
"id" : 51,
"name" : "name-1",
"nameUi" : "name-ui-1",
"currency" : "RUB",
"description" : "description-1",
"active" : false,
"restos" : [ {
"id" : null,
"accountId" : null,
"name" : null,
"description" : null,
"averageCheck" : null,
"currency" : null,
"state" : null,
"address" : null,
"deliveryChatId" : null,
"cloudPayments" : null,
"updatedAt" : 1771762160,
"tags" : [ ],
"pays" : [ ],
"photos" : [ ],
"openingHours" : { },
"links" : [ ],
"phones" : [ ],
"emails" : [ ],
"payConfig" : {
"delivery" : {
"cardOnline" : null,
"cardUponReceipt" : true,
"cashUponReceipt" : true
},
"takeAway" : {
"cardOnline" : null,
"cardUponReceipt" : true,
"cashUponReceipt" : true
},
"table" : {
"cardOnline" : null,
"commonReceipt" : true
}
},
"unreadCount" : null,
"payEngine" : {
"password" : null,
"currency" : null,
"sector" : null,
"paymentType" : null,
"url" : null,
"successUrl" : null,
"failureUrl" : null,
"taxSystem" : null,
"offerUrl" : null,
"offer" : null
},
"active" : false
} ],
"state" : "MODERATING",
"updatedAt" : 1771762160,
"unreadCount" : 0,
"isDelivery" : false
} ]
Menu get by id
GET /api/v1/menu/51 HTTP/1.1
HTTP/1.1 200 OK
{
"id" : 51,
"name" : "name-1",
"nameUi" : "name-ui-1",
"description" : "description-1",
"active" : false,
"currency" : "RUB",
"state" : "MODERATING",
"updatedAt" : 1771762160,
"restos" : [ {
"id" : 68,
"name" : "resto-name-1",
"address" : {
"postalCode" : "197082",
"countryCode" : "RU",
"country" : "Россия",
"locality" : "Санкт-Петербург",
"street" : "Туристская улица",
"streetNumber" : "28 корпус 1"
},
"isOnline" : false,
"isDelivery" : false,
"isTakeAway" : false,
"isTable" : false
}, {
"id" : 69,
"name" : "resto-name-1",
"address" : {
"postalCode" : "197082",
"countryCode" : "RU",
"country" : "Россия",
"locality" : "Санкт-Петербург",
"street" : "Туристская улица",
"streetNumber" : "28 корпус 1"
},
"isOnline" : true,
"isDelivery" : true,
"isTakeAway" : false,
"isTable" : false
}, {
"id" : 70,
"name" : "resto-name-1",
"address" : {
"postalCode" : "197082",
"countryCode" : "RU",
"country" : "Россия",
"locality" : "Санкт-Петербург",
"street" : "Туристская улица",
"streetNumber" : "28 корпус 1"
},
"isOnline" : true,
"isDelivery" : true,
"isTakeAway" : false,
"isTable" : false
}, {
"id" : 71,
"name" : "resto-name-1",
"address" : {
"postalCode" : "197082",
"countryCode" : "RU",
"country" : "Россия",
"locality" : "Санкт-Петербург",
"street" : "Туристская улица",
"streetNumber" : "28 корпус 1"
},
"isOnline" : true,
"isDelivery" : false,
"isTakeAway" : false,
"isTable" : false
} ]
}
Notification
Get Telegram chatId from post url
POST /api/v1/notifications/telegram/chat-id-from-url HTTP/1.1
{
"postUrl" : "https://t.me/c/1640972101/59"
}
HTTP/1.1 200 OK
{
"chatId" : "-1001640972101"
}
HTTP/1.1 409 Conflict
{
"errors" : [ {
"field" : null,
"code" : "TelegramChatNotFound",
"message" : "TelegramChatNotFound"
} ]
}
Orders
Order preflight
Метод используется для предварительного расчета заказа, как то стоимость доставки и т.д. Результат метода следует отдавать для создания заказа
PersonId - находится в accessToken
| Код | Описание |
|---|---|
CARD_UPON_RECEIPT |
Картой при получении |
CASH_UPON_RECEIPT |
Наличными при получении |
CARD_ONLINE |
Картой онлайн |
COMMON_RECEIPT |
Общий чек |
| Код | Описание |
|---|---|
DELIVERY |
Доставка |
TAKE_AWAY |
Самовывоз |
EAT_IN |
В зале |
| Path | Type | Description |
|---|---|---|
|
|
Дата предзаказа с часовым поясом 2024-05-04T15:30:00+03:00 (yyyy-MM-dd’T’HH:mmXXX) |
|
|
Номер стола |
POST /1/persons/orders/preflight HTTP/1.1
{
"restoId" : 47,
"address" : "Санкт-Петербург, Невский пр., д.56, кв.3, п.1, эт.2",
"location" : {
"lat" : 60.005864,
"lng" : 30.214008
},
"deliveryType" : "DELIVERY",
"payType" : "CARD_UPON_RECEIPT",
"positions" : [ {
"id" : 107,
"name" : "position-name-1",
"price" : 10000,
"count" : 2,
"sum" : 20400,
"modifiers" : [ {
"id" : 43,
"name" : "modifier-0-item-0",
"price" : "100",
"count" : 2
} ]
}, {
"id" : 108,
"name" : "position-name-2",
"price" : 20000,
"count" : 1,
"sum" : 20000
} ]
}
HTTP/1.1 200 OK
{
"restoId" : 47,
"address" : "Санкт-Петербург, Невский пр., д.56, кв.3, п.1, эт.2",
"location" : {
"lat" : 60.005864,
"lng" : 30.214008
},
"deliveryType" : "DELIVERY",
"payType" : "CARD_UPON_RECEIPT",
"comment" : null,
"promoCode" : null,
"promoCodeMaxDiscountAmount" : null,
"promoCodeMinOrderAmount" : null,
"payableAmount" : 50355,
"positions" : [ {
"id" : 107,
"name" : "position-name-1",
"price" : 10000,
"count" : 2,
"sum" : 20370,
"payableAmount" : 20370,
"specials" : [ ],
"discounts" : [ {
"type" : "DELIVERY",
"valueType" : "ABSOLUTE",
"value" : 15,
"calculated" : 15
} ],
"modifiers" : [ {
"id" : 43,
"price" : 100,
"count" : 2,
"name" : "modifier-0-item-0"
} ],
"promoCodes" : [ ],
"originalAmount" : 20400
}, {
"id" : 108,
"name" : "position-name-2",
"price" : 20000,
"count" : 1,
"sum" : 19985,
"payableAmount" : 19985,
"specials" : [ ],
"discounts" : [ {
"type" : "DELIVERY",
"valueType" : "ABSOLUTE",
"value" : 15,
"calculated" : 15
} ],
"modifiers" : [ ],
"promoCodes" : [ ],
"originalAmount" : 20000
}, {
"id" : 1,
"name" : "Стоимость доставки",
"price" : 10000,
"count" : 1,
"sum" : 10000,
"payableAmount" : 10000,
"specials" : [ "DELIVERY_PRICE" ],
"discounts" : [ ],
"modifiers" : [ ],
"promoCodes" : [ ],
"originalAmount" : 10000
} ]
}
HTTP/1.1 404 Not Found
{
"errors" : [ {
"field" : null,
"code" : "delivery.order-sum-not-enough.max",
"message" : "Слишком большая сумма заказа, более 500"
} ]
}
Order create
POST /1/persons/131/orders HTTP/1.1
{
"restoId" : 47,
"address" : "Санкт-Петербург, Невский пр., д.56, кв.3, п.1, эт.2",
"location" : {
"lat" : 60.005864,
"lng" : 30.214008
},
"currency" : "RUB",
"deliveryType" : "DELIVERY",
"positions" : [ {
"id" : 107,
"name" : "position-name-1",
"price" : 10000,
"count" : 2,
"sum" : 20370,
"payableAmount" : 20370,
"modifiers" : [ {
"id" : 43,
"price" : 100,
"count" : 2,
"name" : "modifier-0-item-0"
} ]
}, {
"id" : 108,
"name" : "position-name-2",
"price" : 20000,
"count" : 1,
"sum" : 19985,
"payableAmount" : 19985,
"modifiers" : [ ]
}, {
"id" : 1,
"name" : "Стоимость доставки",
"price" : 10000,
"count" : 1,
"sum" : 10000,
"payableAmount" : 10000,
"modifiers" : [ ]
} ],
"payType" : "CARD_UPON_RECEIPT",
"personCount" : null,
"preOrderAt" : null,
"tableNumber" : null,
"promoCode" : null,
"personName" : "Harvey Specter",
"phone" : "+79998885544",
"email" : null,
"comment" : null,
"successUrl" : "https://awesome.site/success-url",
"failureUrl" : "https://awesome.site/failure-url",
"doNotCall" : false
}
HTTP/1.1 200 OK
{
"orderId" : 20,
"cloudPayments" : {
"publicId" : null
},
"order" : {
"id" : 20,
"restoId" : 47,
"createdAt" : "2026-02-22T12:09:12.146Z",
"updatedAt" : "2026-02-22T12:09:12.146Z",
"currency" : "RUB",
"personName" : "Harvey Specter",
"address" : "Санкт-Петербург, Невский пр., д.56, кв.3, п.1, эт.2",
"phone" : "+79998885544",
"email" : null,
"deliveryType" : "DELIVERY",
"location" : {
"lat" : 60.005864,
"lng" : 30.214008
},
"payType" : "CARD_UPON_RECEIPT",
"comment" : null,
"status" : "CREATED",
"personCount" : null,
"payableAmount" : 50355,
"preOrderAt" : null,
"cancelledAt" : null,
"confirmedAt" : null,
"completedAt" : null,
"positions" : [ {
"id" : 107,
"name" : "position-name-1",
"price" : 10000,
"count" : 2,
"sum" : 20370,
"payableAmount" : 20370,
"specials" : [ ],
"discounts" : [ {
"type" : "DELIVERY",
"valueType" : "ABSOLUTE",
"value" : 15,
"calculated" : 15
} ],
"modifiers" : [ {
"id" : 43,
"price" : 100,
"count" : 2,
"name" : "modifier-0-item-0"
} ],
"promoCodes" : [ ],
"originalAmount" : 20400
}, {
"id" : 108,
"name" : "position-name-2",
"price" : 20000,
"count" : 1,
"sum" : 19985,
"payableAmount" : 19985,
"specials" : [ ],
"discounts" : [ {
"type" : "DELIVERY",
"valueType" : "ABSOLUTE",
"value" : 15,
"calculated" : 15
} ],
"modifiers" : [ ],
"promoCodes" : [ ],
"originalAmount" : 20000
}, {
"id" : 1,
"name" : "Стоимость доставки",
"price" : 10000,
"count" : 1,
"sum" : 10000,
"payableAmount" : 10000,
"specials" : [ ],
"discounts" : [ ],
"modifiers" : [ ],
"promoCodes" : [ ],
"originalAmount" : 10000
} ],
"originalAmount" : 50400
}
}
Order get by id
GET /1/orders/6 HTTP/1.1
HTTP/1.1 200 OK
{
"id" : 6,
"restoId" : 20,
"createdAt" : "2026-02-22T12:09:06.973Z",
"updatedAt" : "2026-02-22T12:09:06.973Z",
"currency" : "RUB",
"personName" : "Harvey Specter",
"address" : "197082, Россия, Санкт-Петербург, Туристская улица, 28 корпус 1",
"phone" : "+79998885544",
"email" : null,
"deliveryType" : "TAKE_AWAY",
"location" : {
"lat" : 60.0032089,
"lng" : 30.2094682
},
"payType" : "CARD_UPON_RECEIPT",
"comment" : null,
"status" : "CREATED",
"personCount" : 0,
"payableAmount" : 41200,
"preOrderAt" : null,
"cancelledAt" : null,
"confirmedAt" : null,
"completedAt" : null,
"positions" : [ {
"id" : 20,
"name" : "position-name-1",
"price" : 10000,
"count" : 2,
"sum" : 21200,
"payableAmount" : 21200,
"specials" : [ ],
"discounts" : [ ],
"modifiers" : [ {
"id" : 37,
"price" : 300,
"count" : 1,
"name" : "modifier-0-item-2"
}, {
"id" : 38,
"price" : 100,
"count" : 1,
"name" : "modifier-0-item-0"
}, {
"id" : 41,
"price" : 200,
"count" : 1,
"name" : "modifier-0-item-1"
} ],
"promoCodes" : [ ],
"originalAmount" : 21200
}, {
"id" : 21,
"name" : "position-name-2",
"price" : 20000,
"count" : 1,
"sum" : 20000,
"payableAmount" : 20000,
"specials" : [ ],
"discounts" : [ ],
"modifiers" : [ ],
"promoCodes" : [ ],
"originalAmount" : 20000
} ],
"originalAmount" : 41200
}
Order get by person id
| Name | Required | Type |
|---|---|---|
restoId |
Optional |
Long |
GET /api/v1/persons/131/orders HTTP/1.1
| Parameter | Description |
|---|---|
|
filter by restoId |
|
filter by whiteLabel |
|
filter by statuses array Order statuses |
HTTP/1.1 200 OK
{
"content" : [ {
"id" : 20,
"restoId" : 47,
"createdAt" : "2026-02-22T12:09:12.141Z",
"updatedAt" : "2026-02-22T12:09:12.141Z",
"currency" : "RUB",
"personName" : "Harvey Specter",
"address" : "Санкт-Петербург, Невский пр., д.56, кв.3, п.1, эт.2",
"phone" : "+79998885544",
"email" : null,
"deliveryType" : "DELIVERY",
"location" : {
"lat" : 60.005864,
"lng" : 30.214008
},
"payType" : "CARD_UPON_RECEIPT",
"comment" : null,
"status" : "CREATED",
"personCount" : 0,
"payableAmount" : 50400,
"preOrderAt" : null,
"cancelledAt" : null,
"confirmedAt" : null,
"completedAt" : null,
"positions" : [ {
"id" : 1,
"name" : "Стоимость доставки",
"price" : 10000,
"count" : 1,
"sum" : 10000,
"payableAmount" : 10000,
"specials" : [ "DELIVERY_PRICE" ],
"discounts" : [ ],
"modifiers" : [ ],
"promoCodes" : [ ],
"originalAmount" : 10000
}, {
"id" : 108,
"name" : "position-name-2",
"price" : 20000,
"count" : 1,
"sum" : 20000,
"payableAmount" : 20000,
"specials" : [ ],
"discounts" : [ ],
"modifiers" : [ ],
"promoCodes" : [ ],
"originalAmount" : 20000
}, {
"id" : 107,
"name" : "position-name-1",
"price" : 10000,
"count" : 2,
"sum" : 20400,
"payableAmount" : 20400,
"specials" : [ ],
"discounts" : [ ],
"modifiers" : [ {
"id" : 43,
"price" : 100,
"count" : 2,
"name" : "modifier-0-item-0"
} ],
"promoCodes" : [ ],
"originalAmount" : 20400
} ],
"originalAmount" : 50400
} ],
"pageable" : {
"pageNumber" : 0,
"pageSize" : 10,
"sort" : {
"empty" : true,
"sorted" : false,
"unsorted" : true
},
"offset" : 0,
"paged" : true,
"unpaged" : false
},
"totalElements" : 1,
"last" : true,
"totalPages" : 1,
"size" : 10,
"number" : 0,
"sort" : {
"empty" : true,
"sorted" : false,
"unsorted" : true
},
"numberOfElements" : 1,
"first" : true,
"empty" : false
}
Order get by resto id
GET /1/restos/49/orders?fromAt=2026-02-21T12%3A09%3A12.819397&toAt=2026-02-23T12%3A09%3A12.819437 HTTP/1.1
| Parameter | Description |
|---|---|
|
filter by personId |
|
filter by fromAt |
|
filter by toAt |
|
filter by status |
|
filter by preOrder (true|false) |
|
sort=createdAt,desc&sort=name,asc |
HTTP/1.1 200 OK
{
"content" : [ {
"id" : 22,
"restoId" : 49,
"createdAt" : "2026-02-22T12:09:12.745Z",
"updatedAt" : "2026-02-22T12:09:12.745Z",
"currency" : "RUB",
"personName" : "Harvey Specter",
"address" : "Санкт-Петербург, Невский пр., д.56, кв.3, п.1, эт.2",
"phone" : "+79998885544",
"email" : null,
"deliveryType" : "DELIVERY",
"location" : {
"lat" : 60.005864,
"lng" : 30.214008
},
"payType" : "CARD_UPON_RECEIPT",
"comment" : null,
"status" : "CREATED",
"personCount" : 0,
"payableAmount" : 60000,
"preOrderAt" : null,
"cancelledAt" : null,
"confirmedAt" : null,
"completedAt" : null,
"positions" : [ {
"id" : 1,
"name" : "Стоимость доставки",
"price" : 20000,
"count" : 1,
"sum" : 20000,
"payableAmount" : 20000,
"specials" : [ "DELIVERY_PRICE" ],
"discounts" : [ ],
"modifiers" : [ ],
"promoCodes" : [ ],
"originalAmount" : 20000
}, {
"id" : 111,
"name" : "position-name-2",
"price" : 20000,
"count" : 1,
"sum" : 20000,
"payableAmount" : 20000,
"specials" : [ ],
"discounts" : [ ],
"modifiers" : [ ],
"promoCodes" : [ ],
"originalAmount" : 20000
}, {
"id" : 110,
"name" : "position-name-1",
"price" : 10000,
"count" : 2,
"sum" : 20000,
"payableAmount" : 20000,
"specials" : [ ],
"discounts" : [ ],
"modifiers" : [ ],
"promoCodes" : [ ],
"originalAmount" : 20000
} ],
"originalAmount" : 60000
}, {
"id" : 23,
"restoId" : 49,
"createdAt" : "2026-02-22T12:09:12.762Z",
"updatedAt" : "2026-02-22T12:09:12.762Z",
"currency" : "RUB",
"personName" : "Harvey Specter",
"address" : "Санкт-Петербург, Невский пр., д.56, кв.3, п.1, эт.2",
"phone" : "+79998885544",
"email" : null,
"deliveryType" : "DELIVERY",
"location" : {
"lat" : 60.005864,
"lng" : 30.214008
},
"payType" : "CARD_UPON_RECEIPT",
"comment" : null,
"status" : "CREATED",
"personCount" : 0,
"payableAmount" : 60000,
"preOrderAt" : null,
"cancelledAt" : null,
"confirmedAt" : null,
"completedAt" : null,
"positions" : [ {
"id" : 1,
"name" : "Стоимость доставки",
"price" : 20000,
"count" : 1,
"sum" : 20000,
"payableAmount" : 20000,
"specials" : [ "DELIVERY_PRICE" ],
"discounts" : [ ],
"modifiers" : [ ],
"promoCodes" : [ ],
"originalAmount" : 20000
}, {
"id" : 111,
"name" : "position-name-2",
"price" : 20000,
"count" : 1,
"sum" : 20000,
"payableAmount" : 20000,
"specials" : [ ],
"discounts" : [ ],
"modifiers" : [ ],
"promoCodes" : [ ],
"originalAmount" : 20000
}, {
"id" : 110,
"name" : "position-name-1",
"price" : 10000,
"count" : 2,
"sum" : 20000,
"payableAmount" : 20000,
"specials" : [ ],
"discounts" : [ ],
"modifiers" : [ ],
"promoCodes" : [ ],
"originalAmount" : 20000
} ],
"originalAmount" : 60000
} ],
"pageable" : {
"pageNumber" : 0,
"pageSize" : 10,
"sort" : {
"empty" : true,
"sorted" : false,
"unsorted" : true
},
"offset" : 0,
"paged" : true,
"unpaged" : false
},
"totalElements" : 2,
"last" : true,
"totalPages" : 1,
"size" : 10,
"number" : 0,
"sort" : {
"empty" : true,
"sorted" : false,
"unsorted" : true
},
"numberOfElements" : 2,
"first" : true,
"empty" : false
}
Order statuses
CREATED - Создан
PAID - Оплачен, сейчас только онлайн,
CONFIRMED - Сотрудник ресторана подтвердил получение заказа
COMPLETED - завершенный
CANCELLED - отмененный
Получение истории изменения статусов заказа
GET /1/orders/13/statuses HTTP/1.1
HTTP/1.1 200 OK
{
"content" : [ {
"createdAt" : "2026-02-22T12:09:10.114Z",
"status" : "CREATED"
} ],
"pageable" : {
"pageNumber" : 0,
"pageSize" : 10,
"sort" : {
"empty" : true,
"sorted" : false,
"unsorted" : true
},
"offset" : 0,
"paged" : true,
"unpaged" : false
},
"totalElements" : 1,
"last" : true,
"totalPages" : 1,
"size" : 10,
"number" : 0,
"sort" : {
"empty" : true,
"sorted" : false,
"unsorted" : true
},
"numberOfElements" : 1,
"first" : true,
"empty" : false
}
Order confirm by id
PUT /1/orders/26/confirm HTTP/1.1
Content-Type: application/x-www-form-urlencoded
HTTP/1.1 200 OK
{
"id" : 26,
"restoId" : 52,
"createdAt" : "2026-02-22T12:09:13.695Z",
"updatedAt" : "2026-02-22T12:09:13.695Z",
"currency" : "RUB",
"personName" : "Harvey Specter",
"address" : "Санкт-Петербург, Невский пр., д.56, кв.3, п.1, эт.2",
"phone" : "+79998885544",
"email" : null,
"deliveryType" : "DELIVERY",
"location" : {
"lat" : 60.005864,
"lng" : 30.214008
},
"payType" : "CARD_UPON_RECEIPT",
"comment" : null,
"status" : "CONFIRMED",
"personCount" : 0,
"payableAmount" : 50355,
"preOrderAt" : null,
"cancelledAt" : null,
"confirmedAt" : "2026-02-22T12:09:13.720Z",
"completedAt" : null,
"positions" : [ {
"id" : 116,
"name" : "position-name-1",
"price" : 10000,
"count" : 2,
"sum" : 20370,
"payableAmount" : 20370,
"specials" : [ ],
"discounts" : [ {
"type" : "DELIVERY",
"valueType" : "ABSOLUTE",
"value" : 15,
"calculated" : 15
} ],
"modifiers" : [ {
"id" : 48,
"price" : 100,
"count" : 2,
"name" : "modifier-0-item-0"
} ],
"promoCodes" : [ ],
"originalAmount" : 20400
}, {
"id" : 117,
"name" : "position-name-2",
"price" : 20000,
"count" : 1,
"sum" : 19985,
"payableAmount" : 19985,
"specials" : [ ],
"discounts" : [ {
"type" : "DELIVERY",
"valueType" : "ABSOLUTE",
"value" : 15,
"calculated" : 15
} ],
"modifiers" : [ ],
"promoCodes" : [ ],
"originalAmount" : 20000
}, {
"id" : 1,
"name" : "Стоимость доставки",
"price" : 10000,
"count" : 1,
"sum" : 10000,
"payableAmount" : 10000,
"specials" : [ "DELIVERY_PRICE" ],
"discounts" : [ ],
"modifiers" : [ ],
"promoCodes" : [ ],
"originalAmount" : 10000
} ],
"originalAmount" : 50400
}
Order cancel by id
PUT /1/orders/26/cancel HTTP/1.1
Content-Type: application/x-www-form-urlencoded
HTTP/1.1 200 OK
{
"id" : 26,
"restoId" : 52,
"createdAt" : "2026-02-22T12:09:13.695Z",
"updatedAt" : "2026-02-22T12:09:13.720Z",
"currency" : "RUB",
"personName" : "Harvey Specter",
"address" : "Санкт-Петербург, Невский пр., д.56, кв.3, п.1, эт.2",
"phone" : "+79998885544",
"email" : null,
"deliveryType" : "DELIVERY",
"location" : {
"lat" : 60.005864,
"lng" : 30.214008
},
"payType" : "CARD_UPON_RECEIPT",
"comment" : null,
"status" : "CANCELLED",
"personCount" : 0,
"payableAmount" : 50355,
"preOrderAt" : null,
"cancelledAt" : "2026-02-22T12:09:13.773Z",
"confirmedAt" : "2026-02-22T12:09:13.715Z",
"completedAt" : null,
"positions" : [ {
"id" : 116,
"name" : "position-name-1",
"price" : 10000,
"count" : 2,
"sum" : 20370,
"payableAmount" : 20370,
"specials" : [ ],
"discounts" : [ {
"type" : "DELIVERY",
"valueType" : "ABSOLUTE",
"value" : 15,
"calculated" : 15
} ],
"modifiers" : [ {
"id" : 48,
"price" : 100,
"count" : 2,
"name" : "modifier-0-item-0"
} ],
"promoCodes" : [ ],
"originalAmount" : 20400
}, {
"id" : 117,
"name" : "position-name-2",
"price" : 20000,
"count" : 1,
"sum" : 19985,
"payableAmount" : 19985,
"specials" : [ ],
"discounts" : [ {
"type" : "DELIVERY",
"valueType" : "ABSOLUTE",
"value" : 15,
"calculated" : 15
} ],
"modifiers" : [ ],
"promoCodes" : [ ],
"originalAmount" : 20000
}, {
"id" : 1,
"name" : "Стоимость доставки",
"price" : 10000,
"count" : 1,
"sum" : 10000,
"payableAmount" : 10000,
"specials" : [ "DELIVERY_PRICE" ],
"discounts" : [ ],
"modifiers" : [ ],
"promoCodes" : [ ],
"originalAmount" : 10000
} ],
"originalAmount" : 50400
}
Order complete by id
Unresolved directive in index.adoc - include::/Users/borisivanov/gismenu/gismenu-backend/resto-backend/target/generated-snippets/persons-orders-complete-by-id/http-request.adoc[] .response Unresolved directive in index.adoc - include::/Users/borisivanov/gismenu/gismenu-backend/resto-backend/target/generated-snippets/persons-orders-complete-by-id/http-response.adoc[]
Persons
create
| Available only for resto employee and admins |
POST /1/accounts/1/persons HTTP/1.1
{
"email" : "operator2@email.test",
"phone" : "+79992000500",
"password" : "password",
"firstName" : "firstName",
"lastName" : "lastName",
"restoIds" : [ 64 ]
}
HTTP/1.1 200 OK
update
| Available only for resto employee and admins |
PUT /1/accounts/1/persons/146 HTTP/1.1
{
"email" : "operator2@email.test",
"phone" : "+79992000500",
"password" : "password",
"firstName" : "firstName",
"lastName" : "lastName",
"restoIds" : [ 65 ]
}
HTTP/1.1 200 OK
delete
| Available only for resto employee and admins |
DELETE /1/accounts/1/persons/146 HTTP/1.1
HTTP/1.1 200 OK
get by id
| Available only for resto employee and admins |
GET /1/accounts/1/persons/146 HTTP/1.1
HTTP/1.1 200 OK
{
"id" : 146,
"phone" : "+79992000500",
"email" : "operator2@email.test",
"firstName" : "firstName",
"lastName" : "lastName",
"patronymic" : null,
"restoIds" : [ 65 ]
}
get by page
| Available only for resto employee and admins |
GET /1/accounts/1/persons HTTP/1.1
HTTP/1.1 200 OK
{
"content" : [ {
"id" : 1,
"phone" : null,
"email" : "m@m.m",
"firstName" : null,
"lastName" : null,
"patronymic" : null,
"restoIds" : [ ]
}, {
"id" : 146,
"phone" : "+79992000500",
"email" : "operator2@email.test",
"firstName" : "firstName",
"lastName" : "lastName",
"patronymic" : null,
"restoIds" : [ 65 ]
} ],
"pageable" : {
"pageNumber" : 0,
"pageSize" : 10,
"sort" : {
"empty" : true,
"sorted" : false,
"unsorted" : true
},
"offset" : 0,
"paged" : true,
"unpaged" : false
},
"totalElements" : 2,
"last" : true,
"totalPages" : 1,
"size" : 10,
"number" : 0,
"sort" : {
"empty" : true,
"sorted" : false,
"unsorted" : true
},
"numberOfElements" : 2,
"first" : true,
"empty" : false
}
Position modifiers
Update
PUT /1/positions/119/modifiers HTTP/1.1
[ {
"modifierId" : 22,
"minCount" : 0,
"maxCount" : 5,
"items" : [ {
"id" : null,
"modifierItemId" : 52,
"price" : 300,
"minCount" : 3,
"maxCount" : 7,
"yields" : [ {
"yieldType" : "LITER",
"value" : 3
} ]
}, {
"id" : null,
"modifierItemId" : 51,
"price" : 200,
"minCount" : 2,
"maxCount" : 6,
"yields" : [ {
"yieldType" : "LITER",
"value" : 2
} ]
}, {
"id" : null,
"modifierItemId" : 50,
"price" : 100,
"minCount" : 1,
"maxCount" : 5,
"yields" : [ {
"yieldType" : "LITER",
"value" : 1
} ]
} ]
}, {
"modifierId" : 23,
"minCount" : 2,
"maxCount" : 3,
"items" : [ {
"id" : null,
"modifierItemId" : 53,
"price" : 400,
"minCount" : 2,
"maxCount" : 55,
"yields" : [ {
"yieldType" : "LITER",
"value" : 1
} ]
} ]
} ]
HTTP/1.1 200 OK
[ {
"id" : 22,
"modifierId" : 22,
"minCount" : 0,
"maxCount" : 5,
"name" : "modifier-0-name",
"nameUi" : null,
"items" : [ {
"id" : 52,
"modifierItemId" : 50,
"order" : 0,
"name" : "modifier-0-item-0",
"price" : 100,
"minCount" : 1,
"maxCount" : 5,
"yields" : [ {
"order" : null,
"yieldType" : "LITER",
"value" : 1
} ]
}, {
"id" : 51,
"modifierItemId" : 51,
"order" : 1,
"name" : "modifier-0-item-1",
"price" : 200,
"minCount" : 2,
"maxCount" : 6,
"yields" : [ {
"order" : null,
"yieldType" : "LITER",
"value" : 2
} ]
}, {
"id" : 50,
"modifierItemId" : 52,
"order" : 2,
"name" : "modifier-0-item-2",
"price" : 300,
"minCount" : 3,
"maxCount" : 7,
"yields" : [ {
"order" : null,
"yieldType" : "LITER",
"value" : 3
} ]
} ]
}, {
"id" : 23,
"modifierId" : 23,
"minCount" : 2,
"maxCount" : 3,
"name" : "modifier-1-name",
"nameUi" : null,
"items" : [ {
"id" : 53,
"modifierItemId" : 53,
"order" : 0,
"name" : "modifier-1-item-0",
"price" : 400,
"minCount" : 2,
"maxCount" : 55,
"yields" : [ {
"order" : null,
"yieldType" : "LITER",
"value" : 1
} ]
} ]
} ]
Get by position id
GET /1/positions/119/modifiers HTTP/1.1
HTTP/1.1 200 OK
[ {
"id" : 22,
"modifierId" : 22,
"minCount" : 0,
"maxCount" : 5,
"name" : "modifier-0-name",
"nameUi" : null,
"items" : [ {
"id" : 52,
"modifierItemId" : 50,
"order" : 0,
"name" : "modifier-0-item-0",
"price" : 100,
"minCount" : 1,
"maxCount" : 5,
"yields" : [ {
"order" : null,
"yieldType" : "LITER",
"value" : 1
} ]
}, {
"id" : 51,
"modifierItemId" : 51,
"order" : 1,
"name" : "modifier-0-item-1",
"price" : 200,
"minCount" : 2,
"maxCount" : 6,
"yields" : [ {
"order" : null,
"yieldType" : "LITER",
"value" : 2
} ]
}, {
"id" : 50,
"modifierItemId" : 52,
"order" : 2,
"name" : "modifier-0-item-2",
"price" : 300,
"minCount" : 3,
"maxCount" : 7,
"yields" : [ {
"order" : null,
"yieldType" : "LITER",
"value" : 3
} ]
} ]
}, {
"id" : 23,
"modifierId" : 23,
"minCount" : 2,
"maxCount" : 3,
"name" : "modifier-1-name",
"nameUi" : null,
"items" : [ {
"id" : 53,
"modifierItemId" : 53,
"order" : 0,
"name" : "modifier-1-item-0",
"price" : 400,
"minCount" : 2,
"maxCount" : 55,
"yields" : [ {
"order" : null,
"yieldType" : "LITER",
"value" : 1
} ]
} ]
} ]
Position Time Slot
Create
POST /1/accounts/1/position-time-slots HTTP/1.1
{
"name" : "time-slot-name",
"isActive" : false,
"menu" : [ {
"id" : 54,
"positionGroupIds" : [ {
"id" : 133
} ],
"positionIds" : [ {
"id" : 131
} ]
} ],
"details" : [ {
"dayOfWeek" : 1,
"isActive" : true,
"startAt" : "09:00",
"endAt" : "12:00"
}, {
"dayOfWeek" : 2,
"isActive" : false,
"startAt" : "09:00",
"endAt" : "12:00"
}, {
"dayOfWeek" : 3,
"isActive" : true,
"startAt" : "09:00",
"endAt" : "12:00"
}, {
"dayOfWeek" : 4,
"isActive" : false,
"startAt" : "09:00",
"endAt" : "12:00"
}, {
"dayOfWeek" : 5,
"isActive" : true,
"startAt" : "09:00",
"endAt" : "12:00"
}, {
"dayOfWeek" : 6,
"isActive" : false,
"startAt" : "13:00",
"endAt" : "01:00"
}, {
"dayOfWeek" : 7,
"isActive" : true,
"startAt" : "13:00",
"endAt" : "01:00"
} ]
}
HTTP/1.1 200 OK
{
"id" : 3,
"name" : "time-slot-name"
}
Update
PUT /1/position-time-slots/3 HTTP/1.1
{
"name" : "time-slot-name-upd",
"isActive" : true,
"menu" : [ {
"id" : 54,
"positionGroupIds" : [ {
"id" : 133
} ],
"positionIds" : [ {
"id" : 131
} ]
} ],
"details" : [ {
"dayOfWeek" : 1,
"isActive" : true,
"startAt" : "09:00",
"endAt" : "12:00"
}, {
"dayOfWeek" : 2,
"isActive" : false,
"startAt" : "10:00",
"endAt" : "13:00"
}, {
"dayOfWeek" : 3,
"isActive" : true,
"startAt" : "11:01",
"endAt" : "14:25"
}, {
"dayOfWeek" : 4,
"isActive" : false,
"startAt" : "09:00",
"endAt" : "12:00"
}, {
"dayOfWeek" : 5,
"isActive" : true,
"startAt" : "09:00",
"endAt" : "12:00"
}, {
"dayOfWeek" : 6,
"isActive" : false,
"startAt" : "13:00",
"endAt" : "01:00"
}, {
"dayOfWeek" : 7,
"isActive" : true,
"startAt" : "13:00",
"endAt" : "01:00"
} ]
}
HTTP/1.1 200 OK
Get by ID
GET /1/position-time-slots/3 HTTP/1.1
HTTP/1.1 200 OK
{
"id" : 3,
"name" : "time-slot-name-upd",
"isActive" : true,
"createdAt" : 1771762160,
"updatedAt" : 1771762160,
"menu" : [ {
"id" : 54,
"positionGroupIds" : [ {
"id" : 133
} ],
"positionIds" : [ {
"id" : 131
} ]
} ],
"details" : [ {
"dayOfWeek" : 1,
"isActive" : true,
"startAt" : "09:00",
"endAt" : "12:00"
}, {
"dayOfWeek" : 2,
"isActive" : false,
"startAt" : "10:00",
"endAt" : "13:00"
}, {
"dayOfWeek" : 3,
"isActive" : true,
"startAt" : "11:01",
"endAt" : "14:25"
}, {
"dayOfWeek" : 4,
"isActive" : false,
"startAt" : "09:00",
"endAt" : "12:00"
}, {
"dayOfWeek" : 5,
"isActive" : true,
"startAt" : "09:00",
"endAt" : "12:00"
}, {
"dayOfWeek" : 6,
"isActive" : false,
"startAt" : "13:00",
"endAt" : "01:00"
}, {
"dayOfWeek" : 7,
"isActive" : true,
"startAt" : "13:00",
"endAt" : "01:00"
} ]
}
Get by account ID
GET /1/accounts/1/position-time-slots HTTP/1.1
HTTP/1.1 200 OK
{
"content" : [ {
"id" : 3,
"name" : "time-slot-name-upd",
"isActive" : false,
"createdAt" : 1771762160,
"updatedAt" : 1771762160
} ],
"pageable" : {
"pageNumber" : 0,
"pageSize" : 10,
"sort" : {
"empty" : true,
"sorted" : false,
"unsorted" : true
},
"offset" : 0,
"paged" : true,
"unpaged" : false
},
"totalElements" : 1,
"last" : true,
"totalPages" : 1,
"size" : 10,
"number" : 0,
"sort" : {
"empty" : true,
"sorted" : false,
"unsorted" : true
},
"numberOfElements" : 1,
"first" : true,
"empty" : false
}
Get by resto ID
| public access |
GET /1/restos/72/position-time-slots HTTP/1.1
HTTP/1.1 200 OK
[ {
"positionIds" : [ 160, 161, 162, 163, 164, 165, 168, 169, 157, 158, 159 ],
"details" : [ {
"dayOfWeek" : 1,
"isActive" : true,
"startAt" : "09:00",
"endAt" : "20:00"
}, {
"dayOfWeek" : 2,
"isActive" : true,
"startAt" : "09:00",
"endAt" : "20:00"
}, {
"dayOfWeek" : 3,
"isActive" : true,
"startAt" : "09:00",
"endAt" : "20:00"
}, {
"dayOfWeek" : 4,
"isActive" : true,
"startAt" : "09:00",
"endAt" : "20:00"
}, {
"dayOfWeek" : 5,
"isActive" : true,
"startAt" : "09:00",
"endAt" : "20:00"
}, {
"dayOfWeek" : 6,
"isActive" : true,
"startAt" : "09:00",
"endAt" : "20:00"
}, {
"dayOfWeek" : 7,
"isActive" : true,
"startAt" : "09:00",
"endAt" : "20:00"
} ]
}, {
"positionIds" : [ 160, 161, 162, 163, 164, 165, 168, 169, 157, 158, 159 ],
"details" : [ {
"dayOfWeek" : 1,
"isActive" : true,
"startAt" : "09:00",
"endAt" : "20:00"
}, {
"dayOfWeek" : 2,
"isActive" : true,
"startAt" : "09:00",
"endAt" : "20:00"
}, {
"dayOfWeek" : 3,
"isActive" : true,
"startAt" : "09:00",
"endAt" : "20:00"
}, {
"dayOfWeek" : 4,
"isActive" : true,
"startAt" : "09:00",
"endAt" : "20:00"
}, {
"dayOfWeek" : 5,
"isActive" : true,
"startAt" : "09:00",
"endAt" : "20:00"
}, {
"dayOfWeek" : 6,
"isActive" : true,
"startAt" : "09:00",
"endAt" : "20:00"
}, {
"dayOfWeek" : 7,
"isActive" : true,
"startAt" : "09:00",
"endAt" : "20:00"
} ]
} ]
Promo codes
Create
POST /1/accounts/1/promo-codes HTTP/1.1
{
"code" : "PROMO_NAME",
"discountValue" : 15,
"discountType" : "ABSOLUTE",
"isActive" : true,
"restaurants" : [ {
"id" : 93
}, {
"id" : 95
} ],
"menu" : [ {
"id" : 1,
"positionGroupIds" : [ {
"id" : 2
}, {
"id" : 3
} ],
"positionIds" : [ {
"id" : 4
}, {
"id" : 5
} ]
} ],
"hours" : [ {
"dayOfWeek" : 1,
"isActive" : true,
"startAt" : "01:00",
"finishAt" : "21:00"
}, {
"dayOfWeek" : 2,
"isActive" : true,
"startAt" : "02:00",
"finishAt" : "21:00"
}, {
"dayOfWeek" : 3,
"isActive" : true,
"startAt" : "03:00",
"finishAt" : "21:00"
}, {
"dayOfWeek" : 4,
"isActive" : true,
"startAt" : "04:00",
"finishAt" : "21:00"
}, {
"dayOfWeek" : 5,
"isActive" : true,
"startAt" : "05:00",
"finishAt" : "21:00"
}, {
"dayOfWeek" : 6,
"isActive" : true,
"startAt" : "06:00",
"finishAt" : "21:00"
}, {
"dayOfWeek" : 7,
"isActive" : true,
"startAt" : "07:00",
"finishAt" : "21:00"
} ]
}
HTTP/1.1 200 OK
{
"id" : 7,
"code" : "PROMO_NAME"
}
Update
PUT /1/promo-codes/7 HTTP/1.1
{
"code" : "PROMO_NAME_1",
"discountValue" : 15,
"discountType" : "ABSOLUTE",
"deliveryType" : "DELIVERY",
"isActive" : true,
"restaurants" : [ {
"id" : 94
} ],
"menu" : [ {
"id" : 1,
"positionGroupIds" : [ {
"id" : 2
}, {
"id" : 3
} ],
"positionIds" : [ {
"id" : 4
}, {
"id" : 5
} ]
} ],
"hours" : [ {
"dayOfWeek" : 1,
"isActive" : true,
"startAt" : "01:00",
"finishAt" : "21:00"
}, {
"dayOfWeek" : 2,
"isActive" : true,
"startAt" : "02:00",
"finishAt" : "21:00"
}, {
"dayOfWeek" : 3,
"isActive" : true,
"startAt" : "03:00",
"finishAt" : "21:00"
}, {
"dayOfWeek" : 4,
"isActive" : true,
"startAt" : "04:00",
"finishAt" : "21:00"
}, {
"dayOfWeek" : 5,
"isActive" : true,
"startAt" : "05:00",
"finishAt" : "21:00"
}, {
"dayOfWeek" : 6,
"isActive" : true,
"startAt" : "06:00",
"finishAt" : "21:00"
}, {
"dayOfWeek" : 7,
"isActive" : true,
"startAt" : "07:00",
"finishAt" : "21:00"
} ]
}
HTTP/1.1 200 OK
Get by ID
GET /1/promo-codes/7 HTTP/1.1
HTTP/1.1 200 OK
{
"id" : 7,
"createdAt" : "2026-02-22T12:09:25.494Z",
"updatedAt" : "2026-02-22T12:09:25.504Z",
"code" : "PROMO_NAME_1",
"name" : null,
"discountType" : "ABSOLUTE",
"discountValue" : 15,
"deliveryType" : "DELIVERY",
"startAt" : null,
"finishAt" : null,
"isActive" : true,
"maxDiscountAmount" : null,
"minOrderAmount" : null,
"usageLimit" : null,
"perPersonLimit" : null,
"usageCount" : 0,
"restaurants" : [ {
"id" : 94
} ],
"menu" : [ {
"id" : 1,
"positionGroupIds" : [ {
"id" : 2
}, {
"id" : 3
} ],
"positionIds" : [ {
"id" : 4
}, {
"id" : 5
} ]
} ],
"hours" : [ {
"dayOfWeek" : 1,
"isActive" : true,
"startAt" : "01:00",
"finishAt" : "21:00"
}, {
"dayOfWeek" : 2,
"isActive" : true,
"startAt" : "02:00",
"finishAt" : "21:00"
}, {
"dayOfWeek" : 3,
"isActive" : true,
"startAt" : "03:00",
"finishAt" : "21:00"
}, {
"dayOfWeek" : 4,
"isActive" : true,
"startAt" : "04:00",
"finishAt" : "21:00"
}, {
"dayOfWeek" : 5,
"isActive" : true,
"startAt" : "05:00",
"finishAt" : "21:00"
}, {
"dayOfWeek" : 6,
"isActive" : true,
"startAt" : "06:00",
"finishAt" : "21:00"
}, {
"dayOfWeek" : 7,
"isActive" : true,
"startAt" : "07:00",
"finishAt" : "21:00"
} ]
}
Get by account ID
GET /1/accounts/1/promo-codes HTTP/1.1
HTTP/1.1 200 OK
{
"content" : [ {
"id" : 7,
"createdAt" : "2026-02-22T12:09:25.494Z",
"updatedAt" : "2026-02-22T12:09:25.504Z",
"code" : "PROMO_NAME_1",
"name" : null,
"discountType" : "ABSOLUTE",
"discountValue" : 15,
"deliveryType" : "DELIVERY",
"startAt" : null,
"finishAt" : null,
"isActive" : true,
"maxDiscountAmount" : null,
"minOrderAmount" : null,
"usageLimit" : null,
"perPersonLimit" : null,
"usageCount" : 0
} ],
"pageable" : {
"pageNumber" : 0,
"pageSize" : 10,
"sort" : {
"empty" : true,
"sorted" : false,
"unsorted" : true
},
"offset" : 0,
"paged" : true,
"unpaged" : false
},
"totalElements" : 1,
"last" : true,
"totalPages" : 1,
"size" : 10,
"number" : 0,
"sort" : {
"empty" : true,
"sorted" : false,
"unsorted" : true
},
"numberOfElements" : 1,
"first" : true,
"empty" : false
}
Promotions
Get promotions by resto
GET /1/restos/4/promotions HTTP/1.1
HTTP/1.1 200 OK
[ {
"id" : 2,
"name" : "promotion-name",
"description" : "description",
"startAt" : "2026-02-21",
"finishAt" : "2026-03-04",
"order" : 0,
"photos" : [ "http://localhost:4545/1/photos/6", "http://localhost:4545/1/photos/5" ]
} ]
Promotions order down
PUT /api/v1/accounts/1/promotions/2/order/down HTTP/1.1
Content-Type: application/x-www-form-urlencoded
HTTP/1.1 200 OK
Promotions order up
PUT /api/v1/accounts/1/promotions/2/order/up HTTP/1.1
Content-Type: application/x-www-form-urlencoded
HTTP/1.1 200 OK
Photo
https://api-stage.gismenu.ru/1/photos/1361?q=50
| Query param | Описание | |
|---|---|---|
q |
Quality from 1 to 100 |
|
mode |
crop |
from center |
w |
width |
|
h |
height |
WebSocket Notification
GET /1/notifications?token=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ7XCJuYW1lXCI6bnVsbCxcImF1dGhlbnRpY2F0ZWRcIjp0cnVlLFwiYXV0aG9yaXRpZXNcIjpbe1wiYXV0aG9yaXR5XCI6XCJST0xFX1JFU1RPX0NVU1RPTUVSXCJ9XSxcInByaW5jaXBhbFwiOntcImlkXCI6MSxcImJ5UGhvbmVcIjpmYWxzZSxcImVtYWlsXCI6bnVsbCxcImFjY291bnRJZFwiOjF9fSIsImlhdCI6MTcwODI2OTE5MywiZXhwIjoxNzA4NzAxMTkzfQ.rEhS5CGzfhWCMUg6m8SVTieX3j8A8u5-0jL4-1lyU5U
additional urls
GET /1
GET /1/echo
ping
{"payload":{"timestamp":"2024-02-18T14:55:15.319Z"},"type":"ping"}
pong
{"payload":{"timestamp":"2024-02-18T14:55:15.391Z"},"type":"pong"}
unauthorized
{"payload":{},"type":"unauthorized"}
personOrderStatusChanged
{"payload":{"orderId":1,"status":"CREATED"},"type":"personOrderStatusChanged"}