Выгрузка остатков из КА 2.5 по API

https://1clancer.ru/task/76338

Нужно разработать внешнюю обработку, которая будет по регламенту передавать остатки из КА по API, методы API приведены ниже:

АПИ методы Формат запросов JSON. Метод получения списка складов GET /api/v1/warehouses Формат запроса: не требуется Форма ответа: { "data": [ { "id": 1"", "name": “Склад 1” }, { "id": 2"", "name": “Склад 2” }, ... ] } Где: id - уникальный идентификатор склада в CRM name - название склада Метод загрузки остатков на складе POST /api/v1/upload_remain Формат запроса: { "warehouse_id": 6, "date: "2025-06-01", "remains": [ { "product_name": "", "product_container_name": "", "sku_1c": "", "quantity": 0, "weight": 0 }, { "product_name": "", "product_container_name": "", "sku_1c": "", "quantity": 0, "weight": 0 }, ... ] } Где: warehouse_id - идентификатор склада из CRM date - дата фиксирования остатков product_name - название продукта (необязательный) product_container_name - название тары (необязательный) sku_1c - Артикул продукта quantity - количество штук тары weight - общий вес

Форма ответа: { "uploaded": 10 "errors": [ { "message": "", "remain": { "product_name": "", "product_container_name": "", "sku_1c": "", "quantity": 0, "weight": 0 } }, { "message": "", "remain": { "product_name": "", "product_container_name": "", "sku_1c": "", "quantity": 0, "weight": 0 }, } ... ] } Где: uploaded - количество загруженных строк errors -список ошибок при загрузке message - описание ошибки remain исходная запись