Clients
create
Чебокс "сохранить в журнале" вляет на параметр deleted в request body. Если сохраняем в журнале -> deleted: false, если нет -> deleted: true
POST /api/v2/clients HTTP/1.1
{
"firstName" : "Elon",
"familyName" : "Musk",
"patronymicName" : "Reeve",
"city" : "California",
"address" : "Hawthorne, 1 Rocket Rd",
"federalSubjectCode" : null,
"email" : "some_address@itigris.ru",
"birthdayDay" : 28,
"birthdayMonth" : 6,
"birthdayYear" : 1971,
"tel1" : "79990102233",
"tel2" : "-",
"gender" : true,
"passportNumber" : "0000 000000",
"snilsNumber" : "116-973-385 89",
"snilsIssueOn" : "2020-10-10",
"passportIssueOn" : "2020-10-10",
"passportIssuedBy" : "Брагинский РОВД Гомельской области",
"informationSource" : null,
"comment" : null,
"profession" : "engineer",
"employmentPlace" : "SpaceX, Tesla",
"driver" : false,
"computer" : false,
"smsAccepted" : false,
"emailAccepted" : false,
"phoneAccepted" : false,
"mailAccepted" : false,
"deleted" : true,
"vipDiscount" : null,
"initialOrdersSum" : 0.0,
"ordersSum" : 0.0,
"mobileAppLastUsage" : null,
"contractId" : "12345",
"contractDate" : "2025-08-27",
"clientCardId" : null,
"assistantId" : 9000000008,
"feedback" : null,
"snilsVerificationStatus" : null,
"mobileClient" : false,
"clReplacementDiscountDate" : "2025-08-27"
}
HTTP/1.1 201 Created
Location: /api/v2/clients/1000110410
{
"id" : 1000110410,
"firstName" : "Elon",
"familyName" : "Musk",
"patronymicName" : "Reeve",
"city" : "California",
"address" : "Hawthorne, 1 Rocket Rd",
"email" : "some_address@itigris.ru",
"birthdayDay" : 28,
"birthdayMonth" : 6,
"birthdayYear" : 1971,
"tel1" : "79990102233",
"tel2" : "-",
"gender" : true,
"passportNumber" : "0000 000000",
"snilsNumber" : "116-973-385 89",
"snilsIssueOn" : "2020-10-10",
"passportIssueOn" : "2020-10-10",
"passportIssuedBy" : "Брагинский РОВД Гомельской области",
"informationSource" : null,
"comment" : null,
"profession" : "engineer",
"employmentPlace" : "SpaceX, Tesla",
"driver" : false,
"computer" : false,
"smsAccepted" : false,
"emailAccepted" : false,
"phoneAccepted" : false,
"mailAccepted" : false,
"deleted" : true,
"vipDiscount" : null,
"initialOrdersSum" : 0.0,
"ordersSum" : 0.0,
"mobileAppLastUsage" : null,
"contractId" : "12345",
"contractDate" : "2025-08-27",
"clientCard" : null,
"assistant" : {
"id" : 9000000008,
"firstName" : "topmanager",
"familyName" : "topmanager",
"patronymicName" : "topmanager",
"fullName" : "topmanager topmanager topmanager",
"shortName" : "topmanager t. t."
},
"lastUpdatedAt" : null,
"feedback" : null,
"lastSeen" : null,
"snilsVerificationStatus" : null,
"mobileClient" : false,
"clReplacementDiscountDate" : "2025-08-27"
}
Path | Type | Description | Constraints |
---|---|---|---|
firstName |
String |
firstName |
Length must be between 0 and 30 inclusive. |
familyName |
String |
familyName |
Length must be between 0 and 30 inclusive. |
patronymicName |
String |
patronymicName |
Length must be between 0 and 30 inclusive |
city |
String |
possible cities (that you can use or not) lies here |
|
address |
String |
address |
Length must be between 0 and 280 inclusive |
String |
Length must be between 0 and 50 inclusive. |
||
birthdayDay |
Number |
birthdayDay |
|
birthdayMonth |
Number |
birthdayMonth |
|
birthdayYear |
Number |
birthdayYear |
|
tel1 |
String |
tel1 |
Length must be between 0 and 20 inclusive. |
tel2 |
String |
tel2 |
Length must be between 0 and 20 inclusive |
gender |
Boolean |
gender |
Must not be null |
passportNumber |
String |
passportNumber |
Length must be between 0 and 150 inclusive |
informationSource |
String |
possible informations sources lies here |
|
comment |
String |
comment |
Length must be between 0 and 2000 inclusive |
profession |
String |
profession |
Length must be between 0 and 50 inclusive |
employmentPlace |
String |
employmentPlace |
Length must be between 0 and 100 inclusive |
driver |
Boolean |
driver |
|
computer |
Boolean |
computer |
|
smsAccepted |
Boolean |
smsAccepted |
|
emailAccepted |
Boolean |
emailAccepted |
|
phoneAccepted |
Boolean |
phoneAccepted |
|
mailAccepted |
Boolean |
mailAccepted |
|
deleted |
Boolean |
deleted |
|
vipDiscount |
Number |
vipDiscount |
|
clReplacementDiscountDate |
String |
clReplacementDiscountDate |
|
initialOrdersSum |
Number |
initialOrdersSum |
Must be at least 0. |
ordersSum |
Number |
ordersSum |
Must be at least 0. |
isMobileClient |
Boolean |
isMobileClient |
|
mobileAppLastUsage |
String |
mobileAppLastUsage |
|
contractId |
String |
contractId |
Length must be between 0 and 100 inclusive |
contractDate |
String |
contractDate |
|
clientCardId |
Number |
how to check clientCard number read here |
|
assistantId |
Number |
client’s assistant, list of assistants you can get here |
Path | Type | Description |
---|---|---|
|
|
firstName |
|
|
familyName |
|
|
patronymicName |
|
|
city |
|
|
address |
|
|
|
|
|
birthdayDay |
|
|
birthdayMonth |
|
|
birthdayYear |
|
|
tel1 |
|
|
tel2 |
|
|
gender |
|
|
passportNumber |
|
|
informationSource |
|
|
comment |
|
|
profession |
|
|
employmentPlace |
|
|
driver |
|
|
computer |
|
|
smsAccepted |
|
|
emailAccepted |
|
|
phoneAccepted |
|
|
mailAccepted |
|
|
deleted |
|
|
vipDiscount |
|
|
clReplacementDiscountDate |
|
|
initialOrdersSum |
|
|
ordersSum |
|
|
isMobileClient |
|
|
mobileAppLastUsage |
|
|
contractId |
|
|
contractDate |
|
|
clientCardId |
|
|
assistant |
|
|
user’s id |
|
|
user’s firstName |
|
|
user’s familyName |
|
|
user’s patronymicName |
update
PUT /api/v2/clients/1000110396 HTTP/1.1
{
"familyName" : "Иванов",
"firstName" : "Иван",
"patronymicName" : "Петрович",
"gender" : false,
"birthdayDay" : 1,
"birthdayMonth" : 5,
"birthdayYear" : 1965,
"tel1" : "+7 (812)163-77-89",
"tel2" : null,
"email" : "some_address@itigris.ru",
"informationSource" : "Проходил мимо",
"passportNumber" : "1234567890",
"snilsNumber" : "116-973-385 89",
"snilsIssueOn" : "2020-10-10",
"passportIssueOn" : "2020-10-10",
"passportIssuedBy" : "Брагинский РОВД Гомельской области",
"city" : "Милан",
"address" : "street 1",
"profession" : "tester",
"employmentPlace" : "itigris",
"driver" : true,
"computer" : true,
"assistantId" : 1000000008,
"feedback" : "new feedback",
"clientCardId" : 8012,
"vipDiscount" : 15.0,
"ordersSum" : 100.0,
"smsAccepted" : true,
"emailAccepted" : true,
"phoneAccepted" : true,
"mailAccepted" : true,
"contractId" : null,
"contractDate" : null,
"initialOrdersSum" : null,
"mobileAppLastUsage" : null,
"comment" : "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. Aenean leo ligula, porttitor eu, consequat vitae, eleifend ac, enim. Aliquam lorem ante, dapibus in, viverra quis, feugiat a, tellus. Phasellus viverra nulla ut metus varius laoreet. Quisque rutrum. Aenean imperdiet. Etiam ultricies nisi vel augue. Curabitur ullamcorper ultricies nisi. Nam eget dui. Etiam rhoncus. Maecenas tempus, tellus eget condimentum rhoncus, sem quam semper libero, sit amet adipiscing sem neque sed ipsum. Nam quam nunc, blandit vel, luctus pulvinar, hendrerit id, lorem. Maecenas nec odio et ante tincidunt tempus. Donec vitae sapien ut libero venenatis faucibus. Nullam quis ante. Etiam sit amet orci eget eros faucibus tincidunt. Duis leo. Sed fringilla mauris sit amet nibh. Donec sodales sagittis magna. Sed consequat, leo eget bibendum sodales, augue velit cursus nunc, quis gravida magna mi a libero. Fusce vulputate eleifend sapien. Vestibulum purus quam, scelerisque ut, mollis sed, nonummy id, metus. Nullam accumsan lorem in dui. Cras ultricies mi eu turpis hendrerit fringilla. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; In ac dui quis mi consectetuer lacinia. Nam pretium turpis et arcu. Duis arcu tortor, suscipit eget, imperdiet nec, imperdiet iaculis, ipsum. Sed aliquam ultrices mauris. Integer ante arcu, accumsan a, consectetuer eget, p333ere ut, mauris. Praesent adipiscing. Phasellus ullamcorper ipsum rutrum nunc. Nunc nonummy metus. Vestib",
"deleted" : false,
"federalSubjectCode" : null,
"snilsVerificationStatus" : null,
"mobileClient" : false,
"clReplacementDiscountDate" : "2023-08-01"
}
HTTP/1.1 200 OK
{
"id" : 1000110396,
"firstName" : "Иван",
"familyName" : "Иванов",
"patronymicName" : "Петрович",
"city" : "Милан",
"address" : "street 1",
"email" : "some_address@itigris.ru",
"birthdayDay" : 1,
"birthdayMonth" : 5,
"birthdayYear" : 1965,
"tel1" : "79990102233",
"tel2" : "-",
"gender" : false,
"passportNumber" : "1234567890",
"snilsNumber" : "116-973-385 89",
"snilsIssueOn" : "2020-10-10",
"passportIssueOn" : "2020-10-10",
"passportIssuedBy" : "Брагинский РОВД Гомельской области",
"informationSource" : "Проходил мимо",
"comment" : "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. Aenean leo ligula, porttitor eu, consequat vitae, eleifend ac, enim. Aliquam lorem ante, dapibus in, viverra quis, feugiat a, tellus. Phasellus viverra nulla ut metus varius laoreet. Quisque rutrum. Aenean imperdiet. Etiam ultricies nisi vel augue. Curabitur ullamcorper ultricies nisi. Nam eget dui. Etiam rhoncus. Maecenas tempus, tellus eget condimentum rhoncus, sem quam semper libero, sit amet adipiscing sem neque sed ipsum. Nam quam nunc, blandit vel, luctus pulvinar, hendrerit id, lorem. Maecenas nec odio et ante tincidunt tempus. Donec vitae sapien ut libero venenatis faucibus. Nullam quis ante. Etiam sit amet orci eget eros faucibus tincidunt. Duis leo. Sed fringilla mauris sit amet nibh. Donec sodales sagittis magna. Sed consequat, leo eget bibendum sodales, augue velit cursus nunc, quis gravida magna mi a libero. Fusce vulputate eleifend sapien. Vestibulum purus quam, scelerisque ut, mollis sed, nonummy id, metus. Nullam accumsan lorem in dui. Cras ultricies mi eu turpis hendrerit fringilla. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; In ac dui quis mi consectetuer lacinia. Nam pretium turpis et arcu. Duis arcu tortor, suscipit eget, imperdiet nec, imperdiet iaculis, ipsum. Sed aliquam ultrices mauris. Integer ante arcu, accumsan a, consectetuer eget, p333ere ut, mauris. Praesent adipiscing. Phasellus ullamcorper ipsum rutrum nunc. Nunc nonummy metus. Vestib",
"profession" : "tester",
"employmentPlace" : "itigris",
"driver" : true,
"computer" : true,
"smsAccepted" : true,
"emailAccepted" : true,
"phoneAccepted" : true,
"mailAccepted" : true,
"deleted" : true,
"vipDiscount" : null,
"initialOrdersSum" : 0.0,
"ordersSum" : 100.0,
"mobileAppLastUsage" : null,
"contractId" : null,
"contractDate" : null,
"clientCard" : null,
"assistant" : {
"id" : 1000000008,
"firstName" : "Женек",
"familyName" : "Балашов",
"patronymicName" : "Оптовый",
"fullName" : "Балашов Женек Оптовый",
"shortName" : "Балашов Ж. О."
},
"lastUpdatedAt" : "2025-08-27T07:23:36.865552",
"feedback" : "new feedback",
"lastSeen" : null,
"snilsVerificationStatus" : null,
"mobileClient" : false,
"clReplacementDiscountDate" : "2023-08-01"
}
Path | Type | Description | Constraints |
---|---|---|---|
firstName |
String |
firstName |
Length must be between 0 and 30 inclusive. |
familyName |
String |
familyName |
Length must be between 0 and 30 inclusive. |
patronymicName |
String |
patronymicName |
Length must be between 0 and 30 inclusive |
city |
String |
possible cities (that you can use or not) lies here |
|
address |
String |
address |
Length must be between 0 and 280 inclusive |
String |
Length must be between 0 and 50 inclusive. |
||
birthdayDay |
Number |
birthdayDay |
|
birthdayMonth |
Number |
birthdayMonth |
|
birthdayYear |
Number |
birthdayYear |
|
tel1 |
String |
tel1 |
Length must be between 0 and 20 inclusive. |
tel2 |
String |
tel2 |
Length must be between 0 and 20 inclusive |
gender |
Boolean |
gender |
Must not be null |
passportNumber |
String |
passportNumber |
Length must be between 0 and 150 inclusive |
informationSource |
String |
possible informations sources lies here |
|
comment |
String |
comment |
Length must be between 0 and 2000 inclusive |
profession |
String |
profession |
Length must be between 0 and 50 inclusive |
employmentPlace |
String |
employmentPlace |
Length must be between 0 and 100 inclusive |
driver |
Boolean |
driver |
|
computer |
Boolean |
computer |
|
smsAccepted |
Boolean |
smsAccepted |
|
emailAccepted |
Boolean |
emailAccepted |
|
phoneAccepted |
Boolean |
phoneAccepted |
|
mailAccepted |
Boolean |
mailAccepted |
|
deleted |
Boolean |
deleted |
|
vipDiscount |
Number |
vipDiscount |
|
clReplacementDiscountDate |
String |
clReplacementDiscountDate |
|
initialOrdersSum |
Number |
initialOrdersSum |
Must be at least 0. |
ordersSum |
Number |
ordersSum |
Must be at least 0. |
isMobileClient |
Boolean |
isMobileClient |
|
mobileAppLastUsage |
String |
mobileAppLastUsage |
|
contractId |
String |
contractId |
Length must be between 0 and 100 inclusive |
contractDate |
String |
contractDate |
|
clientCardId |
Number |
how to check clientCard number read here |
|
assistantId |
Number |
client’s assistant, list of assistants you can get here |
Path | Type | Description |
---|---|---|
|
|
firstName |
|
|
familyName |
|
|
patronymicName |
|
|
city |
|
|
address |
|
|
|
|
|
birthdayDay |
|
|
birthdayMonth |
|
|
birthdayYear |
|
|
tel1 |
|
|
tel2 |
|
|
gender |
|
|
passportNumber |
|
|
informationSource |
|
|
comment |
|
|
profession |
|
|
employmentPlace |
|
|
driver |
|
|
computer |
|
|
smsAccepted |
|
|
emailAccepted |
|
|
phoneAccepted |
|
|
mailAccepted |
|
|
deleted |
|
|
vipDiscount |
|
|
clReplacementDiscountDate |
|
|
initialOrdersSum |
|
|
ordersSum |
|
|
isMobileClient |
|
|
mobileAppLastUsage |
|
|
contractId |
|
|
contractDate |
|
|
clientCardId |
|
|
assistant |
|
|
user’s id |
|
|
user’s firstName |
|
|
user’s familyName |
|
|
user’s patronymicName |
get client phones
GET /api/v2/clients/1000000046/phones HTTP/1.1
Parameter | Description |
---|---|
|
clientId |
HTTP/1.1 200 OK
{
"phone" : "9990608500"
}
Path | Type | Description |
---|---|---|
|
|
phone number |
get client email
GET /api/v2/clients/1000000224/email HTTP/1.1
Parameter | Description |
---|---|
|
clientId |
HTTP/1.1 200 OK
{
"email" : "li_m_u_r@mail.ru"
}
Path | Type | Description |
---|---|---|
|
|
Client email |
client info
Основная информация о клиенте и его карте
GET /api/v2/clients/1000110403/info HTTP/1.1
Parameter | Description |
---|---|
|
clientId |
HTTP/1.1 200 OK
{
"id" : 1000110403,
"fullName" : "Musk Elon Reeve",
"lastSeen" : "2025-08-27T00:00:00",
"gender" : true,
"age" : 54,
"passportNumber" : "0000 000000",
"snilsNumber" : "116-973-385 89",
"snilsIssueOn" : "2020-10-10",
"passportIssueOn" : "2020-10-10",
"passportIssuedBy" : "Брагинский РОВД Гомельской области",
"city" : "California",
"address" : "Hawthorne, 1 Rocket Rd",
"tel1" : "79990102233",
"tel2" : "-",
"email" : "some_address@itigris.ru",
"profession" : "engineer",
"employmentPlace" : "SpaceX, Tesla",
"phoneAccepted" : false,
"mailAccepted" : false,
"smsAccepted" : false,
"emailAccepted" : false,
"hasMedicalCharts" : false,
"assistant" : {
"id" : 9000000008,
"firstName" : "topmanager",
"familyName" : "topmanager",
"patronymicName" : "topmanager",
"fullName" : "topmanager topmanager topmanager",
"shortName" : "topmanager t. t."
},
"informationSource" : null,
"vipDiscount" : null,
"ordersSum" : 0.0,
"comment" : null,
"contractId" : "12345",
"contractDate" : "2025-08-27",
"driver" : false,
"computer" : false,
"deleted" : true,
"agreementAcception" : false,
"clientCard" : {
"id" : 9876,
"sum" : 15000.0,
"bonusesSum" : 0,
"discount" : {
"cardId" : 9876,
"cardSum" : 15000.0,
"accessories" : 10.0,
"contactLenses" : 0.0,
"glasses" : 5.0,
"sunglasses" : 5.0,
"lenses" : 5.0,
"extras" : 0.0,
"services" : 0.0
}
},
"feedback" : null,
"birthday" : "1971-06-28",
"birthdayDay" : 28,
"birthdayMonth" : 6,
"birthdayYear" : 1971,
"clReplacementDiscountDate" : "2025-09-10"
}
Path | Type | Description |
---|---|---|
|
|
Полное имя в правильном формате (ФИО или ИОФ, в зависимости от региона) |
|
|
Время и дата последнего посещения (последнего совершенного заказа) |
|
|
Пол. true = мужчина, false - женщина |
|
|
День рождения |
|
|
Возраст в полных годах |
|
|
Серия и номер пасспорта через пробел |
|
|
Название города |
|
|
Адресс |
|
|
Основной телефон |
|
|
Дополнительный телефон |
|
|
Почта |
|
|
Профессия |
|
|
Место работы |
|
|
Согласие на звонки |
|
|
Согласие на получение писем (бумажных) |
|
|
Согласие на СМС |
|
|
Согласие на получение электронных писем |
|
|
Ассистент клиента |
|
|
Откуда узнал об оптике? |
|
|
Дата скидки на контактные линзы клиента |
|
|
VIP скидка |
|
|
Общая сумма заказов |
|
|
Комментарий |
|
|
Номер медицинского договора |
|
|
Дата заключения медицинского договора |
|
|
Является ли клиент водителем |
|
|
Пользуется ли клиент компьютером постоянно |
|
|
Был ли клиент удален |
|
|
Принял ли клиент согласие |
|
|
Карта клиента |
|
|
Id карты |
|
|
Сумма на карте |
|
|
Сумма бонусов на карте |
|
|
Скидки |
|
|
Скидка на аксессуары |
|
|
Скидка на КЛ |
|
|
Скидка на очки |
|
|
Скидка на солнечные очки |
|
|
Скидка на линзы |
|
|
Скидка на массовку |
|
|
Скидка на услуги |
list
сортировка по дате регистрации: registerDate,asc/desc
GET /api/v2/clients?clientSearchType=FULL_NAME&deleted=false&searchString=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%20%D0%98%D0%B2%D0%B0%D0%BD%20%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&sort=registrationDate,asc HTTP/1.1
Parameter | Description |
---|---|
|
Can be one from [FULL_NAME, PHONE_NUMBER, CARD_NUMBER, PRESCRIPTION_ID, CL_PRESCRIPTION_ID] |
|
String that uses to search client |
|
Show ONLY deleted or ONLY not deleted |
|
HTTP/1.1 200 OK
{
"content" : [ {
"id" : 1000000011,
"familyName" : "Иванов",
"firstName" : "Иван",
"patronymicName" : "Иванович",
"phoneNumber" : "+79211192854",
"registrationDate" : "2019-01-09",
"agreementAcception" : false,
"comment" : null,
"feedback" : null,
"birthday" : null,
"birthdayDay" : null,
"birthdayMonth" : null,
"birthdayYear" : null,
"snilsNumber" : null,
"snilsIssueOn" : null
}, {
"id" : 1000029775,
"familyName" : "Иванов",
"firstName" : "Иван",
"patronymicName" : "Иванович",
"phoneNumber" : "+79115555555",
"registrationDate" : "2019-06-10",
"agreementAcception" : false,
"comment" : "",
"feedback" : null,
"birthday" : "1998-03-03",
"birthdayDay" : 3,
"birthdayMonth" : 3,
"birthdayYear" : 1998,
"snilsNumber" : null,
"snilsIssueOn" : null
}, {
"id" : 1000038709,
"familyName" : "Иванов",
"firstName" : "Иван",
"patronymicName" : "Иванович",
"phoneNumber" : "+79996690458",
"registrationDate" : "2019-12-30",
"agreementAcception" : false,
"comment" : null,
"feedback" : null,
"birthday" : null,
"birthdayDay" : null,
"birthdayMonth" : null,
"birthdayYear" : null,
"snilsNumber" : null,
"snilsIssueOn" : null
}, {
"id" : 1000038710,
"familyName" : "Иванов",
"firstName" : "Иван",
"patronymicName" : "Иванович",
"phoneNumber" : "+79996690458",
"registrationDate" : "2019-12-30",
"agreementAcception" : false,
"comment" : null,
"feedback" : null,
"birthday" : null,
"birthdayDay" : null,
"birthdayMonth" : null,
"birthdayYear" : null,
"snilsNumber" : null,
"snilsIssueOn" : null
}, {
"id" : 1000038711,
"familyName" : "Иванов",
"firstName" : "Иван",
"patronymicName" : "Иванович",
"phoneNumber" : "+79996690458",
"registrationDate" : "2019-12-30",
"agreementAcception" : false,
"comment" : null,
"feedback" : null,
"birthday" : null,
"birthdayDay" : null,
"birthdayMonth" : null,
"birthdayYear" : null,
"snilsNumber" : null,
"snilsIssueOn" : null
}, {
"id" : 1000038712,
"familyName" : "Иванов",
"firstName" : "Иван",
"patronymicName" : "Иванович",
"phoneNumber" : "+79996690458",
"registrationDate" : "2019-12-30",
"agreementAcception" : false,
"comment" : null,
"feedback" : null,
"birthday" : null,
"birthdayDay" : null,
"birthdayMonth" : null,
"birthdayYear" : null,
"snilsNumber" : null,
"snilsIssueOn" : null
} ],
"pageable" : {
"pageNumber" : 0,
"pageSize" : 10,
"sort" : {
"empty" : false,
"sorted" : true,
"unsorted" : false
},
"offset" : 0,
"paged" : true,
"unpaged" : false
},
"last" : true,
"totalElements" : 6,
"totalPages" : 1,
"first" : true,
"size" : 10,
"number" : 0,
"sort" : {
"empty" : false,
"sorted" : true,
"unsorted" : false
},
"numberOfElements" : 6,
"empty" : false
}
Path | Type | Description |
---|---|---|
|
|
an array of bills |
|
|
Client’s id |
|
|
Client’s familyName |
|
|
Client’s firstName |
|
|
Client’s patronymicName |
|
|
Client’s birthday |
|
|
Client’s phoneNumber |
|
|
Client’s registrationDate |
|
|
Is client accept agreements? |
accept questionnaire
Используется для подтверждения анкеты раннее созданного пользователя. Если клиент уже подписал анкету, выкинет 400 статус.
POST /api/v2/clients/1000110395/agree HTTP/1.1
Content-Type: application/x-www-form-urlencoded
HTTP/1.1 200 OK
Parameter | Description |
---|---|
|
clientId |
information source
Варианты ответа для вопроса "откуда узнал об оптике".
GET /api/v2/clients/information-source HTTP/1.1
HTTP/1.1 200 OK
[ "Проходил мимо", "Реклама", "Рекомендации", "Сайт", "Социальные сети" ]
Path | Type | Description |
---|---|---|
|
|
array of possible information source |
orders
История заказов клиента
GET /api/v2/clients/1000000010/orders?statuses=ACCEPTED&sort=createdAt HTTP/1.1
Parameter | Description |
---|---|
|
client id |
Parameter | Description |
---|---|
|
filter’s order statuses |
|
pageable object that contain information about pageable and sort |
HTTP/1.1 200 OK
{
"content" : [ {
"id" : 1000000001,
"createdAt" : "2018-10-04T18:31:00.000Z",
"clientId" : 1000000010,
"type" : "GLASSES",
"departmentName" : "Первый магазин",
"productionDepartmentName" : null,
"status" : "ACCEPTED",
"sum" : 600.0,
"paidSum" : 600.0,
"comment" : ""
}, {
"id" : 1000000002,
"createdAt" : "2018-10-04T18:32:00.000Z",
"clientId" : 1000000010,
"type" : "GLASSES",
"departmentName" : "Первый магазин",
"productionDepartmentName" : null,
"status" : "ACCEPTED",
"sum" : 3000.0,
"paidSum" : 3000.0,
"comment" : ""
} ],
"totalPages" : 1,
"totalElements" : 2,
"size" : 10,
"page" : 0,
"number" : 0,
"pageable" : {
"pageSize" : 10,
"pageNumber" : 0
},
"totalResult" : null
}
Path | Type | Description |
---|---|---|
|
|
An array of orders |
|
|
id |
|
|
createdAt |
|
|
type |
|
|
departmentName |
|
|
productionDepartmentName |
|
|
status |
|
|
Discount order sum |
|
|
Сумма, оплаченная за заказ |
update client tel1
PUT /api/v2/clients/1000000046/tel1 HTTP/1.1
{
"tel1" : "9990608500"
}
Parameter | Description |
---|---|
|
clientId |
HTTP/1.1 200 OK
{
"id" : 1000000046,
"firstName" : "Оксана",
"familyName" : "-",
"patronymicName" : "-",
"city" : "",
"address" : "",
"email" : "",
"birthdayDay" : null,
"birthdayMonth" : null,
"birthdayYear" : null,
"tel1" : "9990608500",
"tel2" : "",
"gender" : false,
"passportNumber" : null,
"snilsNumber" : "116-973-385 89",
"snilsIssueOn" : "1990-10-10",
"passportIssueOn" : null,
"passportIssuedBy" : null,
"informationSource" : null,
"comment" : "ПАРТНЕРСКАЯ ПРОГРАММА",
"profession" : "",
"employmentPlace" : "",
"driver" : false,
"computer" : false,
"smsAccepted" : true,
"emailAccepted" : true,
"phoneAccepted" : false,
"mailAccepted" : false,
"deleted" : false,
"vipDiscount" : 0.0,
"initialOrdersSum" : 0.0,
"ordersSum" : 0.0,
"mobileAppLastUsage" : null,
"contractId" : null,
"contractDate" : null,
"clientCard" : {
"id" : 9031878823,
"sum" : 0.0,
"bonusesSum" : 0,
"discount" : {
"cardId" : 9031878823,
"cardSum" : 0.0,
"accessories" : 0.0,
"contactLenses" : 0.0,
"glasses" : 0.0,
"sunglasses" : 0.0,
"lenses" : 0.0,
"extras" : 0.0,
"services" : 0.0
}
},
"assistant" : null,
"lastUpdatedAt" : "2025-08-27T07:23:37.464102",
"feedback" : null,
"lastSeen" : null,
"snilsVerificationStatus" : null,
"mobileClient" : false,
"clReplacementDiscountDate" : null
}
update client tel2
PUT /api/v2/clients/1000000046/tel2 HTTP/1.1
{
"tel2" : "9990608500"
}
Parameter | Description |
---|---|
|
clientId |
HTTP/1.1 200 OK
{
"id" : 1000000046,
"firstName" : "Оксана",
"familyName" : "-",
"patronymicName" : "-",
"city" : "",
"address" : "",
"email" : "",
"birthdayDay" : null,
"birthdayMonth" : null,
"birthdayYear" : null,
"tel1" : "9990608500",
"tel2" : "9990608500",
"gender" : false,
"passportNumber" : null,
"snilsNumber" : "116-973-385 89",
"snilsIssueOn" : "1990-10-10",
"passportIssueOn" : null,
"passportIssuedBy" : null,
"informationSource" : null,
"comment" : "ПАРТНЕРСКАЯ ПРОГРАММА",
"profession" : "",
"employmentPlace" : "",
"driver" : false,
"computer" : false,
"smsAccepted" : true,
"emailAccepted" : true,
"phoneAccepted" : false,
"mailAccepted" : false,
"deleted" : false,
"vipDiscount" : 0.0,
"initialOrdersSum" : 0.0,
"ordersSum" : 0.0,
"mobileAppLastUsage" : null,
"contractId" : null,
"contractDate" : null,
"clientCard" : {
"id" : 9031878823,
"sum" : 0.0,
"bonusesSum" : 0,
"discount" : {
"cardId" : 9031878823,
"cardSum" : 0.0,
"accessories" : 0.0,
"contactLenses" : 0.0,
"glasses" : 0.0,
"sunglasses" : 0.0,
"lenses" : 0.0,
"extras" : 0.0,
"services" : 0.0
}
},
"assistant" : null,
"lastUpdatedAt" : "2025-08-27T07:23:37.530708",
"feedback" : null,
"lastSeen" : null,
"snilsVerificationStatus" : null,
"mobileClient" : false,
"clReplacementDiscountDate" : null
}
delete
DELETE /api/v2/clients/1000110394 HTTP/1.1
Parameter | Description |
---|---|
|
clientId |