Различия
Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
pd:develop:billingstore [2025/04/28 05:01] 127.0.0.1 внешнее изменение |
pd:develop:billingstore [2026/01/14 12:05] (текущий) predeinay |
||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| + | **https://oico.app/oicobills/api-docs/ <- swagger док тут** | ||
| + | |||
| + | **https://oico.app/oicobills/api-docs/swagger.json <- swagger.json тут** | ||
| + | |||
| ==== Аутентификация ==== | ==== Аутентификация ==== | ||
| В http запросе должен быть header Authorization: Bearer @token, где @token - заранее полученный **partner_hash** | В http запросе должен быть header Authorization: Bearer @token, где @token - заранее полученный **partner_hash** | ||
| Строка 57: | Строка 61: | ||
| "phones": "9231234567;9231234568", | "phones": "9231234567;9231234568", | ||
| "is_exemption" : "Y", | "is_exemption" : "Y", | ||
| - | "is_no_paper_invoice": "Y" | + | "is_no_paper_invoice": "Y", |
| + | "locks": [ // Блокировка ЛС. Поле доступно, если в query передано account_num. Для расшифровки полей см раздел Блокировки. | ||
| + | { | ||
| + | "ail_id": "31", | ||
| + | "created_on_tz": "2025-05-15T09:07:37.211Z", | ||
| + | "updated_on_tz": "2025-05-15T09:41:49.803Z", | ||
| + | "partner_hash": "639959f4a1e37fe503843dcbd7e8a6e7", | ||
| + | "status": "0", | ||
| + | "lock_type": "2", | ||
| + | "func_arr": [ | ||
| + | "camera", | ||
| + | "devaccess", | ||
| + | "visitor_human", | ||
| + | "visitor_auto", | ||
| + | "nocontact_entry", | ||
| + | "videophone" | ||
| + | ], | ||
| + | "note": "Апрель 2025, должники", | ||
| + | "updated_by_username": "Столыпина Марина", | ||
| + | "acc_note": "У вас есть задолженность по оплате коммунальных услуг в размере: %сумма%. Оплатите её, чтобы восстановить доступ ко всем возможностям приложения.", | ||
| + | "items": [ | ||
| + | { | ||
| + | "aili_id": "1139", | ||
| + | "ail_id": "31", | ||
| + | "account_num": "210618100357", | ||
| + | "phone": null, | ||
| + | "status": "0", | ||
| + | "updated_on_tz": "2025-05-15T09:36:58.904Z", | ||
| + | "updated_by_username": "Столыпина Марина", | ||
| + | "max_debt_amount": "20749.46" | ||
| + | } | ||
| + | ] | ||
| + | } | ||
| + | ] | ||
| }, | }, | ||
| ] | ] | ||
| Строка 142: | Строка 179: | ||
| "price": "7.00", | "price": "7.00", | ||
| "quantity": "2.00 м3", | "quantity": "2.00 м3", | ||
| - | "amount": "14.00" | + | "amount": "14.00", |
| + | "rn": "1" | ||
| }, | }, | ||
| { | { | ||
| Строка 148: | Строка 186: | ||
| "price": "4.00", | "price": "4.00", | ||
| "quantity": "1.50 м3", | "quantity": "1.50 м3", | ||
| - | "amount": "6.00" | + | "amount": "6.00", |
| + | "rn": "2" | ||
| } | } | ||
| ] | ] | ||
| Строка 169: | Строка 208: | ||
| // @quantity | String | - Объем. Необязательный ключ | // @quantity | String | - Объем. Необязательный ключ | ||
| // @amount | Numeric (38,2) | - Цена. Обязательный ключ | // @amount | Numeric (38,2) | - Цена. Обязательный ключ | ||
| + | // @rn | Numeric (38) | - Порядковый номер. Необязательный ключ | ||
| // Ответ 200/ok | // Ответ 200/ok | ||
| Строка 201: | Строка 241: | ||
| "price": "7.00", | "price": "7.00", | ||
| "quantity": "2.00 м3", | "quantity": "2.00 м3", | ||
| - | "amount": "14.00" | + | "amount": "14.00", |
| + | "rn": "1" | ||
| } | } | ||
| ] | ] | ||
| Строка 221: | Строка 262: | ||
| "price": "7.00", | "price": "7.00", | ||
| "quantity": "2.00 м3", | "quantity": "2.00 м3", | ||
| - | "amount": "14.00" | + | "amount": "14.00", |
| + | "rn": "1" | ||
| }, | }, | ||
| { | { | ||
| Строка 227: | Строка 269: | ||
| "price": "4.00", | "price": "4.00", | ||
| "quantity": "1.50 м3", | "quantity": "1.50 м3", | ||
| - | "amount": "6.00" | + | "amount": "6.00", |
| + | "rn": "2" | ||
| } | } | ||
| ] | ] | ||
| Строка 256: | Строка 299: | ||
| "price": "7.00", | "price": "7.00", | ||
| "quantity": "2.00 м3", | "quantity": "2.00 м3", | ||
| - | "amount": "14.00" | + | "amount": "14.00", |
| + | "rn": "1" | ||
| } | } | ||
| ] | ] | ||
| Строка 273: | Строка 317: | ||
| "price": "7.00", | "price": "7.00", | ||
| "quantity": "2.00 м3", | "quantity": "2.00 м3", | ||
| - | "amount": "14.00" | + | "amount": "14.00", |
| + | "rn": "1" | ||
| }, | }, | ||
| { | { | ||
| Строка 279: | Строка 324: | ||
| "price": "4.00", | "price": "4.00", | ||
| "quantity": "1.50 м3", | "quantity": "1.50 м3", | ||
| - | "amount": "6.00" | + | "amount": "6.00", |
| + | "rn": "2" | ||
| } | } | ||
| ] | ] | ||
| Строка 303: | Строка 349: | ||
| // @quantity | String | - Объем. Необязательный ключ | // @quantity | String | - Объем. Необязательный ключ | ||
| // @amount | Numeric (38,2) | - Цена. Обязательный ключ | // @amount | Numeric (38,2) | - Цена. Обязательный ключ | ||
| + | // @rn | Numeric (38) | - Порядковый номер. Необязательный ключ | ||
| // Ответ 200/ok | // Ответ 200/ok | ||
| Строка 335: | Строка 382: | ||
| "price": "7.00", | "price": "7.00", | ||
| "quantity": "2.00 м3", | "quantity": "2.00 м3", | ||
| - | "amount": "14.00" | + | "amount": "14.00", |
| + | "rn": "1" | ||
| } | } | ||
| ] | ] | ||
| Строка 485: | Строка 533: | ||
| current_val2: 103, | current_val2: 103, | ||
| current_val3: 104.25, | current_val3: 104.25, | ||
| - | current_val_date: '2021-10-17T19:00:00.000Z', | + | current_val_date: '2021-10-17T00:00:00.000Z', |
| last_val: 90, | last_val: 90, | ||
| last_val2: 91, | last_val2: 91, | ||
| last_val3: 92, | last_val3: 92, | ||
| - | last_val_date: '2021-10-16T19:00:00.000Z', | + | last_val_date: '2021-10-16T00:00:00.000Z', |
| meter_type: '3', | meter_type: '3', | ||
| address: 'Москва г, Василисы Кожиной ул, дом № 13, Апарт. 2460', | address: 'Москва г, Василисы Кожиной ул, дом № 13, Апарт. 2460', | ||
| Строка 554: | Строка 602: | ||
| <code javascript> | <code javascript> | ||
| - | { | + | [ |
| - | "service_str": "ХВС", | + | { |
| - | "factory_num": "777-x/124", | + | "service_str": "ХВС", |
| - | "install_place_str": "Ванная", | + | "factory_num": "777-x/124", |
| - | "account_num": "123", | + | "install_place_str": "Ванная", |
| - | "verify_date": "2024-10-01", | + | "account_num": "123", |
| - | "ext_id":"123-x-1", | + | "verify_date": "2024-10-01", |
| - | "is_take":"Y", | + | "ext_id": "123-x-1", |
| - | "is_deleted":"N", | + | "is_take": "Y", |
| - | "meter_type": "2", | + | "is_deleted": "N", |
| - | "val_name": "val_name", | + | "meter_type": "2", |
| - | "val2_name": "val2_name", | + | "val_name": "val_name", |
| - | "val3_name": "val3_name", | + | "val2_name": "val2_name", |
| - | "values":[ | + | "val3_name": "val3_name", |
| - | { | + | "values": [ |
| - | "val":90, | + | { |
| - | "val2":91, | + | "val": 90, |
| - | "val_date":"2021-11-28", | + | "val2": 91, |
| - | }, | + | "val_date": "2021-11-28" |
| - | { | + | }, |
| - | "val":80, | + | { |
| - | "val2":93, | + | "val": 80, |
| - | "val_date":"2021-11-26", | + | "val2": 93, |
| - | "phone": "9126630539", | + | "val_date": "2021-11-26", |
| - | "record" : "http://record.com" | + | "phone": "9126630539", |
| - | }, | + | "record": "http://record.com" |
| - | { | + | }, |
| - | "val":60, | + | { |
| - | "val2":95, | + | "val": 60, |
| - | "val_date":"2021-11-25" | + | "val2": 95, |
| - | "is_deleted": "Y" | + | "val_date": "2021-11-25", |
| - | } | + | "is_deleted": "Y" |
| - | ] | + | } |
| + | ] | ||
| + | } | ||
| + | ] | ||
| /* | /* | ||
| service_str - Название услуги. Например: "Электроэнергия" | service_str - Название услуги. Например: "Электроэнергия" | ||
| Строка 849: | Строка 900: | ||
| { "meter_id": "e43965d1-a43d-44c7-9320-e0653d9163d2" | { "meter_id": "e43965d1-a43d-44c7-9320-e0653d9163d2" | ||
| "val": 100500, | "val": 100500, | ||
| - | "val_date": "2021-10-18T07:44:33.553Z", | + | "val_date": "2021-10-18", |
| "is_user": "N" | "is_user": "N" | ||
| }, | }, | ||
| Строка 856: | Строка 907: | ||
| "va2": 100401, | "va2": 100401, | ||
| "val3": 100402, | "val3": 100402, | ||
| - | "val_date": "2021-09-18T07:44:33.553Z", | + | "val_date": "2021-09-18", |
| "is_user": "N", | "is_user": "N", | ||
| "phone": "9126630539", | "phone": "9126630539", | ||
| Строка 903: | Строка 954: | ||
| "val": 100500, | "val": 100500, | ||
| "val2": 100501, | "val2": 100501, | ||
| - | "val_date": "2021-10-18T07:44:33.553Z", | + | "val_date": "2021-10-18", |
| "is_user": "N", | "is_user": "N", | ||
| "phone": "9126630539", | "phone": "9126630539", | ||
| Строка 959: | Строка 1010: | ||
| current_val2: 102.25, | current_val2: 102.25, | ||
| current_val3: null, | current_val3: null, | ||
| - | current_val_date: '2021-10-17T19:00:00.000Z', | + | current_val_date: '2021-10-17', |
| last_val: 90, | last_val: 90, | ||
| last_val: 91, | last_val: 91, | ||
| last_val: null, | last_val: null, | ||
| - | last_val_date: '2021-10-16T19:00:00.000Z', | + | last_val_date: '2021-10-16', |
| meter_type : 2, | meter_type : 2, | ||
| val_name: "val_name", | val_name: "val_name", | ||
| Строка 1048: | Строка 1099: | ||
| val: 100500, | val: 100500, | ||
| val2: 100501, | val2: 100501, | ||
| - | val_date: '2021-10-18T07:44:33.553Z', | + | val_date: '2021-10-18', |
| is_user: 'N' | is_user: 'N' | ||
| }] | }] | ||
| Строка 1094: | Строка 1145: | ||
| val2: 11, | val2: 11, | ||
| val3: null, | val3: null, | ||
| - | val_date: '2021-10-17T19:00:00.000Z' | + | val_date: '2021-10-17' |
| }, | }, | ||
| { | { | ||
| Строка 1102: | Строка 1153: | ||
| val2: 12, | val2: 12, | ||
| val3: null, | val3: null, | ||
| - | val_date: '2021-10-17T19:00:00.000Z' | + | val_date: '2021-10-17' |
| }, | }, | ||
| { | { | ||
| Строка 1110: | Строка 1161: | ||
| val2: 11, | val2: 11, | ||
| val3: null, | val3: null, | ||
| - | val_date: '2021-10-16T19:00:00.000Z' | + | val_date: '2021-10-16' |
| }, | }, | ||
| { | { | ||
| Строка 1118: | Строка 1169: | ||
| val2: 11, | val2: 11, | ||
| val3: null, | val3: null, | ||
| - | val_date: '2021-10-16T19:00:00.000Z' | + | val_date: '2021-10-16' |
| }, | }, | ||
| { | { | ||
| Строка 1126: | Строка 1177: | ||
| val2: 11, | val2: 11, | ||
| val3: 33, | val3: 33, | ||
| - | val_date: '2021-10-15T19:00:00.000Z' | + | val_date: '2021-10-15' |
| }, | }, | ||
| { | { | ||
| Строка 1134: | Строка 1185: | ||
| val2: null, | val2: null, | ||
| val3: null, | val3: null, | ||
| - | val_date: '2021-10-15T19:00:00.000Z' | + | val_date: '2021-10-15' |
| } | } | ||
| ] | ] | ||
| Строка 1175: | Строка 1226: | ||
| </code> | </code> | ||
| + | ==== Блокировки лицевых счетов ==== | ||
| + | |||
| + | === Получить список блокировок === | ||
| + | |||
| + | Пример запроса: | ||
| + | |||
| + | GET domain.ru/locks?account_num=123&phone=9000000000&func_arr=camera,devaccess&start_date=2025-01-01&end_date=2025-01-01&limit=50&offset=0&statuses=0 | ||
| + | |||
| + | Пример ответа: | ||
| + | |||
| + | <code javascript> | ||
| + | // Ответ 200/ok | ||
| + | [ | ||
| + | { | ||
| + | "ail_id": "31", | ||
| + | "created_on_tz": "2025-05-15T09:07:37.211Z", | ||
| + | "updated_on_tz": "2025-05-15T09:41:49.803Z", | ||
| + | "partner_hash": "639959f4a1e37fe503843dcbd7e8a6e7", | ||
| + | "status": "0", // "0" - Активна, "1" - Не активна, "2" - удалена | ||
| + | "lock_type": "2", // "1" - Обычная блокировка, "2" - По сумме задолженности | ||
| + | "func_arr": [ // Enum блокируемых функций | ||
| + | "camera", // Просмотр камер | ||
| + | "devaccess", // Открытие по кнопке | ||
| + | "visitor_human", // Пропуска на вход | ||
| + | "visitor_auto", // Пропуска на въезд | ||
| + | "nocontact_entry", // Бесконтактный проход | ||
| + | "videophone" // Видеодомофония | ||
| + | ], | ||
| + | "note": "Апрель 2025, должники" // Заметка, отображаемая в CRM | ||
| + | } | ||
| + | ] | ||
| + | </code> | ||
| + | |||
| + | === Получить детали блокировки === | ||
| + | |||
| + | Пример запроса: | ||
| + | |||
| + | GET domain.ru/locks/:ail_id | ||
| + | |||
| + | Пример ответа: | ||
| + | |||
| + | <code javascript> | ||
| + | // Ответ 200/ok | ||
| + | { | ||
| + | "ail_id": "31", | ||
| + | "created_on_tz": "2025-05-15T09:07:37.211Z", | ||
| + | "updated_on_tz": "2025-05-15T09:41:49.803Z", | ||
| + | "partner_hash": "639959f4a1e37fe503843dcbd7e8a6e7", | ||
| + | "status": "0", // "0" - Активна, "1" - Не активна, "2" - удалена | ||
| + | "lock_type": "2", // "1" - Обычная блокировка, "2" - По сумме задолженности | ||
| + | "func_arr": [ // Enum блокируемых функций | ||
| + | "camera", // Просмотр камер | ||
| + | "devaccess", // Открытие по кнопке | ||
| + | "visitor_human", // Пропуска на вход | ||
| + | "visitor_auto", // Пропуска на въезд | ||
| + | "nocontact_entry", // Бесконтактный проход | ||
| + | "videophone" // Видеодомофония | ||
| + | ], | ||
| + | "note": "Апрель 2025, должники", // Заметка, отображаемая в CRM | ||
| + | "updated_by_username": "Иван Иванов", | ||
| + | "acc_note": "У вас есть задолженность по оплате коммунальных услуг в размере: %сумма%. Оплатите её, чтобы восстановить доступ ко всем возможностям приложения." // Уведомление для жителя | ||
| + | } | ||
| + | </code> | ||
| + | |||
| + | === Создать блокировку === | ||
| + | |||
| + | Пример запроса: | ||
| + | |||
| + | POST domain.ru/locks | ||
| + | <code javascript> | ||
| + | { | ||
| + | "lock_type": "1", // "1" - Обычная блокировка, "2" - По сумме задолженности. Обязательное поле | ||
| + | "func_arr": ["camera"], // Enum блокируемых функций. "camera" - Просмотр камер, "devaccess" - Открытие по кнопке, "visitor_human" - Пропуска на вход, "visitor_auto" - Пропуска на въезд, "nocontact_entry" - Бесконтактный проход, "videophone" - Видеодомофония. Обязательное поле | ||
| + | "note": "Заметка", // Заметка, отображаемая в CRM. Не обязательное поле | ||
| + | "acc_note": "Уведомление для жителя" // Уведомление для жителя. Не обязательное поле | ||
| + | } | ||
| + | </code> | ||
| + | |||
| + | Пример ответа: | ||
| + | |||
| + | <code javascript> | ||
| + | // Ответ 200/ok | ||
| + | {"ok": true, "ail_id": "123"} | ||
| + | </code> | ||
| + | |||
| + | === Редактировать блокировку === | ||
| + | |||
| + | Пример запроса: | ||
| + | |||
| + | PUT domain.ru/locks/:ail_id | ||
| + | <code javascript> | ||
| + | { | ||
| + | "lock_type": "1", // "1" - Обычная блокировка, "2" - По сумме задолженности. | ||
| + | "func_arr": ["camera"], // Enum блокируемых функций. "camera" - Просмотр камер, "devaccess" - Открытие по кнопке, "visitor_human" - Пропуска на вход, "visitor_auto" - Пропуска на въезд, "nocontact_entry" - Бесконтактный проход, "videophone" - Видеодомофония. | ||
| + | "note": "Заметка", // Заметка, отображаемая в CRM. | ||
| + | "acc_note": "Уведомление для жителя" // Уведомление для жителя. | ||
| + | } | ||
| + | </code> | ||
| + | |||
| + | Пример ответа: | ||
| + | |||
| + | <code javascript> | ||
| + | // Ответ 200/ok | ||
| + | {"ok": true} | ||
| + | </code> | ||
| + | |||
| + | === Список заблокированных клиентов === | ||
| + | |||
| + | Пример запроса: | ||
| + | |||
| + | GET domain.ru/locks/:ail_id/items?statuses=0,1&account_num=123&phone=9000000000&limit=50&offset=0 | ||
| + | |||
| + | Пример ответа: | ||
| + | |||
| + | <code javascript> | ||
| + | // Ответ 200/ok | ||
| + | [ | ||
| + | { | ||
| + | "aili_id": "1140", | ||
| + | "ail_id": "31", | ||
| + | "account_num": "210618100359", // Номер ЛС | ||
| + | "phone": null, // Телефон | ||
| + | "status": "1", // "0" - Активна, "1" - Не активна, "2" - удалена | ||
| + | "updated_on_tz": "2025-05-22T11:07:31.925Z", | ||
| + | "updated_by_username": "Иван Иварнов", | ||
| + | "max_debt_amount": "27769.66" // Сумма задолженности для блокировки | ||
| + | }, | ||
| + | { | ||
| + | "aili_id": "1140", | ||
| + | "ail_id": "31", | ||
| + | "account_num": null, // Номер ЛС | ||
| + | "phone": "210618100359", // Телефон | ||
| + | "status": "1", // "0" - Активна, "1" - Не активна, "2" - удалена | ||
| + | "updated_on_tz": "2025-05-22T11:07:31.925Z", | ||
| + | "updated_by_username": "Иван Иварнов", | ||
| + | "max_debt_amount": null | ||
| + | } | ||
| + | ] | ||
| + | </code> | ||
| + | |||
| + | === Добавить заблокированного клиента === | ||
| + | |||
| + | Пример запроса: | ||
| + | |||
| + | POST domain.ru/locks/:ail_id/items | ||
| + | <code javascript> | ||
| + | { | ||
| + | "account_num": "12443", // Обязательно, если нет phone | ||
| + | "phone": "9000000000", // Обязательно, если нет account_num | ||
| + | "status": 0, // "0" - Активна, "1" - Не активна, "2" - удалена. Не обязательное поле | ||
| + | "max_debt_amount": "300" // Сумма задолженности для блокировки. Не обязательное поле | ||
| + | } | ||
| + | </code> | ||
| + | |||
| + | Пример ответа: | ||
| + | |||
| + | <code javascript> | ||
| + | // Ответ 200/ok | ||
| + | {"ok": true, "aili_id": "123"} | ||
| + | </code> | ||
| + | |||
| + | === Изменить заблокированного клиента === | ||
| + | |||
| + | Пример запроса: | ||
| + | |||
| + | PUT domain.ru/locks/:ail_id/items/:aili_id | ||
| + | <code javascript> | ||
| + | { | ||
| + | "account_num": "12443", | ||
| + | "phone": "9000000000", | ||
| + | "status": 0, // "0" - Активна, "1" - Не активна, "2" - удалена. | ||
| + | "max_debt_amount": "300" // Сумма задолженности для блокировки. | ||
| + | } | ||
| + | </code> | ||
| + | |||
| + | Пример ответа: | ||
| + | |||
| + | <code javascript> | ||
| + | // Ответ 200/ok | ||
| + | {"ok": true} | ||
| + | </code> | ||
| + | |||
| + | === Удалить заблокированного клиента === | ||
| + | |||
| + | Пример запроса: | ||
| + | |||
| + | DELETE domain.ru/locks/:ail_id/items/:aili_id | ||
| + | |||
| + | Пример ответа: | ||
| + | |||
| + | <code javascript> | ||
| + | // Ответ 200/ok | ||
| + | {"ok": true} | ||
| + | </code> | ||