Описание

Шлюз представляет собой информационную систему для выполнения HTTP запросов к платформе «Агредатор».

Возможности:

  • несколько клиентов
  • возможность настраивать несколько сервисов
  • возможность предоставлять права доступа к сервисам различным клиентам
  • статистика запросов для клиента
  • асинхронная работа
  • возможность доставлять ответ или входящий запрос до клиента при получении (callback/push)

Шлюз не осуществляет преобразований данных отправляемых и получаемых от указанного сервиса. Форматы запросов и ответов, обязательные поля и прочие специфичные для каждого сервиса вещи можно узнать из документации.

В данном руководстве будет рассмотрен пример с использованием сервиса fns-so.

Общее описание API

Параметры и данные в запрос могут быть переданы как в строке так и в теле запроса. Поддерживаемые форматы(Content-Type) данных в теле запроса:

  • application/x-www-form-urlencoded
  • multipart/form-data
  • application/json

Для авторизации используется Basic Access authentication. Это значит что username и password для доступа передаются в открытом виде. Для доступа настоятельно рекомендуется использовать SSL-терминацию.

В качестве username передается идентификатор(identifier) клиента, в качестве password передается секрет(secret):

curl -u identifier:secret "https://agredator.ru/"

Коллекции

Все коллекции возвращаются с использованием пагинации в виде:

{
  "has_next": "Признак присутствия следущей страницы для текущего фильтра",
  "current_page": "текущая страница",
  "per_page": "число документов включенных в элемент 'collection'",
  "collection":[
    {/элемент запрашиваемой коллекции/}
  ]
}

Пагинация

Для управлением пагинацией в строке запроса можно передавать следующие параметры:

Параметр Описание По умолчанию
limit количество элементов в списке ответа 50
page элементы с данной страницы 1
curl "https://agredator.ru/api/v1/requests?limit=20&page=3"

Фильтрация

Большинство адресов, возвращающих коллекции, поддерживают фильтрцию результатов. Параметры фильтрации передаются в строке запроса в поле Query String. Для передачи списка значений используется нотация вида ?field[]=1&field[]=2, описывающая список field=[1,2]. Параметры фильтрации передаются в объекте filter. Например фильтрация коллекции по полям status и service элементов будет выглядеть так:

curl "https://agredator.ru/api/v1/requests?filter[service]=echo&filter[status][]=200&filter[status][]=100"

Callback/push

Для возможности выполнения асинхронной обработки результатов запросов существует возможность получать POST-колбэки. Этот механизм позволяет избежать постоянного опроса результатов и существенно повысить скорость обработки результатов. Для доставки результатов используются HTTP POST-запросы в формате content-type: application/json, тело которых совпадает с результатом, получаемым при обычном опросе результата.

При невозможности доставить результат по указанному адресу будет выполнены несколько попыток переотправки с постепенно увеличивающимися интервалами между ними. Доставка считается успешной если получен статус ответа HTTP code=2XX или code=304. 304 используется для указания на повторную обработку, если клиентская система требует такого поведения.

Внимание

Если указанный адрес принимающей стороны будет полностью недоступен в течение длительного времени, то такой адрес (его домен) будет временно заблокирован для избежания перегрузки системы. Полностью недоступным считается адрес, на который более половины запросов (при числе не менее 30 за минуту) завершаются ошибкой. Заблокированный домен клиента на 5 минут выводится из процедуры доставки POST-колбэков, при этом клиент всегда может получить результат обработки по схеме Просмотр состояния запроса.

Варианты использования доставки с помощью callback/push

1. Ответ на запрос

Для асинхронного получения ответа на запрос должен быть установлен PUSH-адрес для клиента1 или для каждого запроса2.

1 Установить PUSH-адрес для клиента можно через техподдержку или в Кабинете клиента в разделе Данные ИС.

2 Установить PUSH-адрес для запроса можно при создании запроса через API (в параметре request.callback_url).

Приоритеты: PUSH-адрес в запросе, но если его нет, то PUSH-адрес клиента.

2. Входящий запрос

Для асинхронного получения входящего запроса должен быть установлен PUSH-адрес (входящий) для клиента1 или для конкретного входящего сервиса2.

1 Установить PUSH-адрес (входящий) для клиента можно через техподдержку или в Кабинете клиента в разделе Данные ИС.

2 Установить PUSH-адрес (входящий) для конкретного входящего сервиса можно через техподдержку или в Кабинете клиента в разделе Доступы, выбрав нужный сервис.

Приоритеты: PUSH-адрес (входящий) сервиса, но если его нет, то PUSH-адрес (входящий) клиента.

3. Изменение статуса ответа на входящий запрос

Для асинхронного получения изменения статуса ответа на входящий запрос должен быть установлен PUSH-адрес (входящий) при создании ответа на входящий запрос через API (в параметре response.callback_incoming_url).

Формат PUSH-адреса

PUSH-адрес — это URL к информационной системе, которая обработает событие. Формат URL:

<схема>:[//[<логин>[:<пароль>]@]<хост>[:<порт>]][/<URL‐путь>]

Где схема — это протокол передачи данных, который должен быть только HTTPS.

Примеры:

https://www.example.com:8080/my/api/path

https://login:password@www.example.com:8080/my/api/path (с указанием имени и пароля)

Проверка callback/push

Для проверки Вашего PUSH-адреса (любого из трех) воспользуйтесь встроенными в Кабинет клиента возможностями тестирования. Сохраните PUSH-адрес для нужного вам варианта оповещения и нажмите на кнопку «Протестировать». По указанному адресу будет отправлено тестовое сообщение.

API V1

  • Endpoint: /api/v1

Для всех запросов к API в качестве username передается идентификатор(identifier) клиента, в качестве password передается секрет(secret):

  curl -u identifier:secret https://agredator.ru/

Пример ошибки:

{
  "error": true,
  "status": "400",
  "code": "api_client_no_access",
  "title": "Client unauthorized to access service: fns-so",
  "meta": {
    "errors": {
      "client": ["unauthorized to access service: fns-so"]
    }
  }
}

Работа с запросами

Получение списка запросов

  • Endpoint: /api/v1(/:service)/requests(.json)
  • Method: GET
  • Params:
    • service: Опциональное указание имени сервиса
  • Возможности: фильтрация, пагинация

Возвращает список всех запросов.

Параметр Тип Описание Обязательный
filter[status] Integer Фильтрация по полю status -
filter[service] String Фильтрация по полю service -
filter[external_id] String Фильтрация по полю external_id -

Получить список последних запросов ко всем сервисам с фильтром по статусу

curl "https://agredator.ru/api/v1/requests?filter[status]=200"

Получить список последних запросов к конкретному сервису(fns-so):

curl "https://agredator.ru/api/v1/fns-so/requests"

Пример ответа:

{
  "has_next":true,
  "current_page":1,
  "per_page":2,
  "collection":[
    {
      "id":6363,
      "status":200,
      "client":"4cc8d2deeb876add50cac888cbeb195c",
      "info":"success result",
      "service":"echo",
      "created_at":"2019-07-23T15:06:31.692+03:00",
      "response":{/service-response/},
      "ticket":"0f5dcdc7-1621-437e-8ed6-1d26e6c6d8df",
      "callback_url":null,
      "provider_id":"1f108ec8-90e4-69d7-b8c0-f7141cd49fae",
      "external_id":"6363",
      "histories":[
        {
          "id":11674,
          "request_id":6363,
          "from":100,
          "to":102,
          "message":"processing",
          "created_at":"2019-07-23T15:06:31.818+03:00",
          "updated_at":"2019-07-23T15:06:31.818+03:00"
        },
        {
          "id":11675,
          "request_id":6363,
          "from":102,
          "to":200,
          "message":"success result",
          "created_at":"2019-07-23T15:06:31.946+03:00",
          "updated_at":"2019-07-23T15:06:31.946+03:00"
        }
      ]
    }
  ]
}

Просмотр состояния запроса

  • Endpoint: /api/v1(/:service)/requests/:id(.json)
  • Method: GET
  • Params:
    • service: Опциональное указание имени сервиса
    • id: Идентификатор запроса

Возвращает полную информацию по запросу. Доступен фильтр по сервису.

Просмотреть запрос:

curl "https://agredator.ru/api/v1/requests/6363.json"

Пример ответа:

{
  "id":6363,
  "status":200,
  "client":"4cc8d2deeb876add50cac888cbeb195c",
  "info":"success result",
  "service":"echo",
  "created_at":"2019-07-23T15:06:31.692+03:00",
  "response":{/service-response/},
  "ticket":"0f5dcdc7-1621-437e-8ed6-1d26e6c6d8df",
  "callback_url":null,
  "provider_id":"null",
  "external_id":"6363",
  "histories":[
    {
      "id":11674,
      "request_id":6363,
      "from":100,
      "to":102,
      "message":"processing",
      "created_at":"2019-07-23T15:06:31.818+03:00",
      "updated_at":"2019-07-23T15:06:31.818+03:00"
    },
    {
      "id":11675,
      "request_id":6363,
      "from":102,
      "to":200,
      "message":"success result",
      "created_at":"2019-07-23T15:06:31.946+03:00",
      "updated_at":"2019-07-23T15:06:31.946+03:00"
    }
  ]
}

Создание запроса

  • Endpoint: /api/v1(/:service)/requests(.json)
  • Method: POST
  • Params:
    • service: Опциональное указание имени сервиса

При создании запроса необходимо указать следующие параметры:

Параметр Тип Описание Обязательный
request Object Объект обертка +
request.service String Имя сервиса. Может быть задано через url +
request.external_id String Произвольный идентификатор запроса, со стороны клиента. Будет возвращён в ответе -
request.payload Object Тело запроса +
request.callback_url String Адрес для доставки результата POST-запросом. Если не задан, берется из настроек всего клиента -

Создание запроса с указанием сервиса в строке запроса:

curl -u identifier:secret \
  -H "Content-Type: application/json; charset=utf-8" \
  -X POST \
  -d '{"request": {"payload": {"data": 111}}}' \
  https://agredator.ru/api/v1/fns-so/requests

Создание запроса с указанием сервиса в теле запроса:

curl -u identifier:secret \
  -H "Content-Type: application/json; charset=utf-8" \
  -X POST \
  -d '{"request": {"service": "echo", "payload": {"data": 111}}}' \
  "https://agredator.ru/api/v1/requests"

Пример ответа:

{
  "id": 6365,
  "status": 100,
  "client": "identifier",
  "info": null,
  "service": "fns-so",
  "created_at": "2019-07-23T17:21:02.483+03:00",
  "response": {},
  "ticket": null,
  "callback_url": null,
  "provider_id": null,
  "external_id":"6365",
  "histories": []
}

После получения ответа на запрос, если callback_url задан (для запроса или для всего клиента), POST-запросом будет доставлено состояние запроса (см. пример ответа).

Модификация шага запроса

  • Endpoint: /api/v1(/:service)/requests/:id/triggers/:trigger(.json)
  • Method: GET|POST|PUT
  • Params:
    • service: Опциональное указание имени сервиса
    • id: Идентификатор запроса
    • trigger: Идентификатор шага обработки

Запросы к некоторым сервисам предполагают несколько шагов обработки. Например в случае запроса на проверку номера телефона требуется прислать полученный код подтверждения.

Отправить код подтвержlения на ранее отправленный запрос:

curl "https://agredator.ru/api/v1/requests/6363/triggers/verify?payload\[code\]=12345"

Пример ответа (тело ответа может меняться в зависимости от конкретного шага и сервиса):

{
  "verification": "failed",
  "details": "{\"result\":{\"valid\":false},\"status\":\"success\",\"id\":\"814b4133-82a8-4be8-a186-6b088b3ae9d2\",\"service\":\"contact-verifier\"}",
  "success": true
}

Удаление запроса

  • Endpoint: /api/v1(/:service)/requests/:request_id(.json)
  • Method: DELETE
  • Params:
    • service: Опциональное указание имени сервиса
    • request_id: Идентификатор удаляемого запроса

Удаляет запрос по указанному request_id. В случае успешного выполнения возвращается пустой ответ с 202 статусом.

Пример запроса:

curl -X DELETE "https://agredator.ru/api/v1/requests/115"

Получение информации (JSON) о файле вложений

  • Endpoint: /api/v1(/:service)/requests/:request_id/attachments/:uuid.json
  • Method: GET
  • Params:
    • service: Опциональное указание имени сервиса
    • request_id: Идентификатор запроса, в рамках которого существует файл
    • uuid: Идентификатор вложения

Возвращает полную информацию по файлу вложения в виде JSON.

Просмотреть информацию:

curl "https://agredator.ru/api/v1/requests/116/attachments/e49d01071fafef980fd2a305896032d.json"

Пример ответа (status=200):

{
  "uuid":"e49d01071fafef980fd2a305896032d",
  "checksum":"e6156f5514d53ca19512a8fc6c62f692943e980e336de1bd0dbfaff60ee0ef21",
  "created_at":"2021-11-18T19:30:55.136+03:00",
  "tags":["123123"],
  "filename":"photo.jpg",
  "mime_type": "image/jpeg"
}

Пример ошибки (status=404):

{
  "error":true,
  "status":"404",
  "code":"not_found",
  "title":"Couldn't find Request with 'id'=116",
  "meta":{
    "model":"request",
    "id":"116"
  }
}

Получение содержимого файла вложений

  • Endpoint: /api/v1(/:service)/requests/:request_id/attachments/:uuid
  • Method: GET
  • Params:
    • service: Опциональное указание имени сервиса
    • request_id: Идентификатор запроса, в рамках которого существует файл
    • uuid: Идентификатор вложения

Возвращает содержимое файла вложения.

Скачать файл:

curl "https://agredator.ru/api/v1/requests/116/attachments/e49d01071fafef980fd2a305896032d" > /tmp/photo.jpg

Пример ошибки (status=500):

{
  "error":true,
  "status":"500",
  "code":"filator_stream_error",
  "title":"Failed to open TCP connection to 172.22.4.314:32773 (getaddrinfo: Name or service not known)",
  "meta":{}
}

Загрузка файла вложений в систему

  • Endpoint: /api/v1(/:service)/attachments/
  • Method: POST
  • Params:
    • service: Опциональное указание имени сервиса
    • body: Файл вложения

Производит загрузку файла в систему и возвращает полную информацию по файлу вложения в виде JSON.

Пример:

  curl -u identifier:secret \
  -X POST \
  -F "body=@/path/to/photo.jpg" \
  "https://agredator.ru/api/v1/attachments/"

Пример ответа (status=200):

{
  "uuid":"e49d01071fafef980fd2a305896032d",
  "checksum":"e6156f5514d53ca19512a8fc6c62f692943e980e336de1bd0dbfaff60ee0ef21",
  "created_at":"2021-11-18T19:30:55.136+03:00",
  "tags": [],
  "filename":"photo.jpg",
  "mime_type": "image/jpeg"
}

Загрузка файла вложений в систему с получением подписи

  • Endpoint: /api/v1/:service/attachments/signed
  • Method: POST
  • Params:
    • service: Имя сервиса
    • body: Файл вложения
    • cert: Идентификатор сертификата, используемый для вычисления подписи. Конфигурация сертификатов, осуществляется отдельно. Значение может отсутствовать, в случае дополнительных настроек клиента/сервиса.

Производит загрузку файла в систему, вычисляет pkcs7 detached подпись и возвращает полную информацию по файлу вложения и файл содержащем подпись в виде JSON.

Пример:

  curl -u identifier:secret \
  -X POST \
  -F "body=@/path/to/photo.jpg" \
  -F "cert=test" \
  "https://agredator.ru/api/v1/echo/attachments/signed"

Пример ответа (status=200):

{
  "file": {
    "uuid": "e90b573fa0a0be1114667aae28beb94235aedf05a4bb5fe40a6562d21f4f7e5c",
    "tags": [],
    "metadata": {
      "service": "apigw",
      "client_id": "99687"
    },
    "size": 7507529,
    "mime_type": "image/jpeg",
    "filename": "photo.jpeg",
    "checksum": "f11a3c6a878db8ca349d83d51255599dcb8f23038671df51e8fedb3a13fdc23f",
    "content_encoding": null,
    "created_at": "2026-03-10T13:52:30.884+00:00",
    "delete_at": "2026-03-11T13:52:30.858+00:00",
    "store": "db",
    "identifier_in_store": "e90b573fa0a0be1114667aae28beb94235aedf05a4bb5fe40a6562d21f4f7e5c"
  },
  "signature": {
    "uuid": "d4e3a992030d97db736ea5b94264ef3327b17a1100c3de51a687926a6e96ff7e",
    "tags": [],
    "metadata": {
      "service": "apigw",
      "client_id": "99687"
    },
    "size": 3249,
    "mime_type": "application/octet-stream",
    "filename": "photo.jpeg.sig",
    "checksum": "68427e27d9d72e363455fb68e8ca24da40e0696ff6a7cfe7bcbfebc36df086d2",
    "content_encoding": null,
    "created_at": "2026-03-10T13:52:39.233+00:00",
    "delete_at": "2026-03-11T13:52:39.233+00:00",
    "store": "db",
    "identifier_in_store": "d4e3a992030d97db736ea5b94264ef3327b17a1100c3de51a687926a6e96ff7e"
  }
}

Получение логов запроса

  • Endpoint: /api/v1(/:service)/requests/:request_id/logs(.json)
  • Method: GET
  • Params:
    • service: Опциональное указание имени сервиса
    • request_id: Идентификатор запроса, в рамках которого существует файл

Возвращает архив, содержащий файлы XML взаимодействия и файл metadata.json, содержащий служебные данные, связанные с запросом. В случае указания формата .json - возвращает JSON, содержащий XML логи взаимодействия.

Пример запроса:

curl "https://agredator.ru/api/v1/requests/116/logs" > /tmp/logs.zip 

Пример запроса с JSON форматом ответа:

curl "https://agredator.ru/api/v1/requests/116/logs.json" > /tmp/logs.json 

Пример ответа:

{
  "request_id": 116,
  "service": "uprid3",
  "target": "uprid3",
  "ticket": "51ccdd21-642f-4770-8885-64757c906b90",
  "created_at": "2021-12-06T11:45:44.013+03:00",
  "updated_at": "2021-12-06T11:46:05.858+03:00",
  "logs": [
    {
      "type": "sendRequest",
      "request": "...",
      "response": "..."
    },
    {
      "type": "getResponse",
      "request": "...",
      "response": "..."
    },
    {
      "type": "ack",
      "request": "...",
      "response": "..."
    }
  ]
}

Статистика

Клиенты

  • Endpoint: /api/v1/admin/statistics/clients
  • Method: GET

При отправке запроса можно указать следующие параметры:

Поле Тип Описание
name String имя клиента
status Integer статус запросов
period String период времени, когда были созданы запросы. Возможные значения: daily, weekly, monthly, annualy, custom
from DateTime дата начала периода. Используется при period = custom
to DateTime дата конца периода. Используется при period = custom

Запрос:

curl "http://agredator.ru/api/v1/admin/statistics/clients"

Пример ответа:

{
  "from": "2020-04-01T00:00:00.000+03:00", // если в запросе есть параметр period
  "to": "2020-05-01T00:00:00.000+03:00", // если в запросе есть параметр period
  "total": 8,
  "clients": [
    {
      "name": "exampleClient",
      "total": 8,
      "services": [
        {
          "name": "exampleService",
          "statuses": [
            {
              "status": 480,
              "count": 1
            },
            {
              "status": 102,
              "count": 1
            },
            {
              "status": 100,
              "count": 6
            }
          ]
        }
      ]
    },
  ]
}

Сервисы

  • Endpoint: /api/v1/admin/statistics/services
  • Method: GET

При отправке запроса можно указать следующие параметры:

Поле Тип Описание
name String имя сервиса
status Integer статус запросов
period String период времени, когда были созданы запросы. Возможные значения: daily, weekly, monthly, annualy, custom
from DateTime дата начала периода. Используется при period = custom
to DateTime дата конца периода. Используется при period = custom

Создание запроса:

curl "http://agredator.ru/api/v1/admin/statistics/services"

Пример ответа:

{
  "from": "2020-04-01T00:00:00.000+03:00", // если в запросе есть параметр period
  "to": "2020-05-01T00:00:00.000+03:00", // если в запросе есть параметр period
  "total": 8,
  "services": [
    {
      "name": "exampleService",
      "total": 8,
      "clients": [
        {
          "name": "exampleClient",
          "statuses": [
            {
              "status": 480,
              "count": 1
            },
            {
              "status": 102,
              "count": 1
            },
            {
              "status": 100,
              "count": 6
            }
          ]
        }
      ]
    },
  ]
}

Получение списка пакетов запросов

  • Endpoint: /api/v1/:service/request_batches(.json)
  • Method: GET
  • Params:
    • service: Имя сервиса
  • Возможности: пагинация

Возвращает список всех пакетов запросов.

Получить список последних пакетов к конкретному сервису(echo):

curl "https://agredator.ru/api/v1/echo/request_batches.json?limit=2"

Пример ответа:

{
  "has_next": true,
  "current_page":1,
  "per_page":2,
  "collection":[
    {
      "id": 9,
      "iid": 26,
      "client": "4cc8d2deeb876add50cac888cbeb195c",
      "service": "echo",
      "created_at": "2025-05-22T20:23:30.256+03:00",
      "filename": "1.json"
    },
    {
      "id": 8,
      "iid": 25,
      "client": "4cc8d2deeb876add50cac888cbeb195c",
      "service": "echo",
      "created_at": "2025-05-22T20:18:33.393+03:00",
      "filename": "1.csv"
    }
  ]
}

Просмотр пакета запросов

  • Endpoint: /api/v1/:service/request_batches/:id(.json)
  • Method: GET
  • Params:
    • service: Имя сервиса
    • id: Идентификатор пакета;

Возвращает полную информацию по пакету.

Просмотреть запрос:

curl "https://agredator.ru/api/v1/echo/request_batches/8.json"

Пример ответа:

{
  "id": 8,
  "iid": 25,
  "client": "4cc8d2deeb876add50cac888cbeb195c",
  "service": "echo",
  "created_at": "2025-05-22T20:18:33.393+03:00",
  "filename": "1.csv"
}

Создание пакета запроса

  • Endpoint: /api/v1/:service/request_batches(.json)
  • Method: POST
  • Params:
    • service: Имя сервиса

При создании пакета необходимо указать следующие параметры:

Параметр Описание Обязательный
file Файл для загрузки с расширением JSON или CSV +

Создание запроса:

curl -u identifier:secret \
  -X POST \
  -F 'file=@/tmp/requests.csv' \
  "https://agredator.ru/api/v1/echo/request_batches"

Пример файла в формате CSV с обязательной кодировкой UTF-8:

series, number, lastname, firstname
7865,   123456, ПЕТИНА,   ЕЛЕНА
1234,   34567,  Иванов,   Иван

Пример файла в формате JSON:

[
  {
    "series": 7865,
    "number": 123456,
    "lastname": "ПЕТИНА",
    "firstname": "ЕЛЕНА"
  },
  {
    "series": 1234,
    "number": 34567,
    "lastname": "Иванов",
    "firstname": "Иван"
  }
]

Пример ответа:

{
  "id": 8,
  "iid": 25,
  "client": "4cc8d2deeb876add50cac888cbeb195c",
  "service": "echo",
  "created_at": "2025-05-22T20:18:33.393+03:00",
  "filename": "requests.csv"
}

Входящие запросы

Получение списка входящих запросов

  • Endpoint: /api/v1/:service/incomings(.json)?last_id=:last_id
  • Method: GET
  • Возможности: фильтрация, пагинация
  • Params:
    • service: Имя сервиса

Возвращает список всех входящих запросов.

Параметр Тип Описание Обязательный
last_id String Идентификатор последнего обработанного потребителем запроса -
filter[status] Integer Фильтрация по полю status -
filter[service] String Фильтрация по полю service -

При указазании в запросе last_id в ответ будет возвращён список новых входящих запросов, если они есть.

Получить список последних входящих запросов по сервису fns-nalflproc:

curl "https://agredator.ru/api/v1/fns-nalflproc/incomings.json?last_id=12"

Пример ответа:

{
  "last_id": 12,
  "has_next": false,
  "current_page": 1,
  "per_page": 15,
  "collection": [
    {
      "id": 13,
      "status": 103,
      "client": "i1",
      "info": "response 44 successed",
      "service": "fns-nalflproc",
      "created_at": "2022-02-15T14:36:11.150+03:00",
      "identifier": "3bb85b05-77f1-4072-8dfc-6fd1d78b5bf6-d41d8cd98f00b204",
      "request": {/incoming-request/},
      "histories": [
        {
          "id": 8,
          "historyable_type": "Incoming",
          "historyable_id": 13,
          "from": 100,
          "to": 103,
          "message": "waiting for delivery of response 44",
          "created_at": "2022-02-15T14:36:43.044+03:00",
          "updated_at": "2022-02-15T14:36:43.044+03:00"
        },
        {
          "id": 10,
          "historyable_type": "Incoming",
          "historyable_id": 13,
          "from": 103,
          "to": 103,
          "message": "response 44 successed",
          "created_at": "2022-02-15T14:42:27.292+03:00",
          "updated_at": "2022-02-15T14:42:27.292+03:00"
        }
      ],
      "responses": [
        {
          "id": 44,
          "identifier": "9e0d705c-9f08-4465-ab8d-32891d9eb683",
          "status": 200,
          "incoming_id": 13,
          "info": "send successed",
          "created_at": "2022-02-15T14:36:41.799+03:00",
          "callback_incoming_url": null,
          "histories": [
            {
              "id": 7,
              "historyable_type": "Incoming::Response",
              "historyable_id": 44,
              "from": 100,
              "to": 102,
              "message": "waiting for send",
              "created_at": "2022-02-15T14:36:42.940+03:00",
              "updated_at": "2022-02-15T14:36:42.940+03:00"
            },
            {
              "id": 9,
              "historyable_type": "Incoming::Response",
              "historyable_id": 44,
              "from": 102,
              "to": 200,
              "message": "send successed",
              "created_at": "2022-02-15T14:42:27.238+03:00",
              "updated_at": "2022-02-15T14:42:27.238+03:00"
            }
          ]
        }
      ]
    }
  ]
}

Просмотр входящего запроса

  • Endpoint: /api/v1/:service/incomings/:id(.json)
  • Method: GET
  • Params:
    • service: Имя сервиса
    • id: Идентификатор входящего запроса

Возвращает полную информацию по запросу. Поле service_version будет указано только в случае, если поддерживается одновременная работа с несколькими версиями одного ВС.

Просмотреть входящий запрос:

curl "https://agredator.ru/api/v1/fns-nalflproc/incomings/13"

Пример ответа:

{
  "id": 13,
  "status": 103,
  "client": "i1",
  "info": "response 44 successed", 
  "service": "fns-nalflproc",
  "service_version": "4.0.1",
  "created_at": "2022-02-15T14:36:11.150+03:00",
  "identifier": "3bb85b05-77f1-4072-8dfc-6fd1d78b5bf6-d41d8cd98f00b204",
  "request": {/incoming-request/},
  "histories": [
    {
      "id": 8,
      "historyable_type": "Incoming",
      "historyable_id": 13,
      "from": 100,
      "to": 103,
      "message": "waiting for delivery of response 44",
      "created_at": "2022-02-15T14:36:43.044+03:00",
      "updated_at": "2022-02-15T14:36:43.044+03:00"
    },
    {
      "id": 10,
      "historyable_type": "Incoming",
      "historyable_id": 13,
      "from": 103,
      "to": 103,
      "message": "response 44 successed",
      "created_at": "2022-02-15T14:42:27.292+03:00",
      "updated_at": "2022-02-15T14:42:27.292+03:00"
    }
  ],
  "responses": [
    {
      "id": 44,
      "status": 200,
      "identifier": "9e0d705c-9f08-4465-ab8d-32891d9eb683",
      "incoming_id": 13,
      "info": "send successed",
      "created_at": "2022-02-15T14:36:41.799+03:00",
      "callback_incoming_url": null,
      "histories": [
        {
          "id": 7,
          "historyable_type": "Incoming::Response",
          "historyable_id": 44,
          "from": 100,
          "to": 102,
          "message": "waiting for send",
          "created_at": "2022-02-15T14:36:42.940+03:00",
          "updated_at": "2022-02-15T14:36:42.940+03:00"
        },
        {
          "id": 9,
          "historyable_type": "Incoming::Response",
          "historyable_id": 44,
          "from": 102,
          "to": 200,
          "message": "send successed",
          "created_at": "2022-02-15T14:42:27.238+03:00",
          "updated_at": "2022-02-15T14:42:27.238+03:00"
        }
      ]
    }
  ]
}

Подтверждение о принятии входящего запроса

  • Endpoint: /api/v1/:service/incomings/:id/acknowledge(.json)
  • Method: PUT
  • Params:
    • service: Имя сервиса

Подтверждение со стороны клиента об успешном принятии запроса. При этом происходит изменение статуса всех неподтверждённых запросов с идентификатором меньше или равным переданному :id. Возвращает число подтверждённых данной операцией запросов и дополнительную информацию.

curl -X PUT "https://agredator.ru/api/v1/fns-nalflproc/incomings/13/acknowledge.json"

Пример ответа:

{
  "last_id":13,
  "acknowledged_id":13,
  "updated":5,
  "success":true
}

Получение логов входящего запроса

  • Endpoint: /api/v1/:service/incomings/:incoming_id/logs(.json)
  • Method: GET
  • Params:
    • service: Имя сервиса
    • incoming_id: Идентификатор входящего запроса, в рамках которого существует файл

Возвращает архив, содержащий файлы XML взаимодействия и файл metadata.json, содержащий служебные данные, связанные с входящим запросом. В случае указания формата .json возвращает JSON, содержащий XML логи взаимодействия.

Пример запроса:

curl "https://agredator.ru/api/v1/fssp-execution-documents/incomings/116/logs" > /tmp/logs.zip 

Пример запроса с json форматом ответа:

curl "https://agredator.ru/api/v1/fssp-execution-documents/incomings/logs.json" > /tmp/logs.json 

Пример ответа:

{
  "incoming_id": 116,
  "service": "fssp-execution-documents",
  "source": "fssp-execution-documents",
  "identifier": "51ccdd21-642f-4770-8885-64757c906b90",
  "created_at": "2021-12-06T11:45:44.013+03:00",
  "updated_at": "2021-12-06T11:46:05.858+03:00",
  "logs": [
    {
      "type": "getRequest",
      "request": "...",
      "response": "..."
    },
    {
      "type": "sendResponse",
      "request": "...",
      "response": "..."
    },
    {
      "type": "ack",
      "request": "...",
      "response": "..."
    }
  ]
}

Получение списка ответов на входящий запрос

  • Endpoint: /api/v1/:service/incomings/:incoming_id/responses(.json)
  • Method: GET
  • Возможности: фильтрация, пагинация
  • Params:
    • service: Имя сервиса
    • incoming_id: Идентификатор входящего запроса

Возвращает список всех ответов на данный входящий запрос.

Параметр Тип Описание Обязательный
filter[status] Integer Фильтрация по полю status -

Получить список ответов:

curl "https://agredator.ru/api/v1/fns-nalflproc/incomings/13/responses"

Пример ответа:

{
  "has_next": false,
  "current_page": 1,
  "per_page": 15,
  "collection": [
    {
      "id": 44,
      "identifier": "9e0d705c-9f08-4465-ab8d-32891d9eb683",
      "status": 200,
      "incoming_id": 13,
      "info": "send successed",
      "created_at": "2022-02-15T14:36:41.799+03:00",
      "callback_incoming_url": null,
      "histories": [
        {
          "id": 7,
          "historyable_type": "Incoming::Response",
          "historyable_id": 44,
          "from": 100,
          "to": 102,
          "message": "waiting for send",
          "created_at": "2022-02-15T14:36:42.940+03:00",
          "updated_at": "2022-02-15T14:36:42.940+03:00"
        },
        {
          "id": 9,
          "historyable_type": "Incoming::Response",
          "historyable_id": 44,
          "from": 102,
          "to": 200,
          "message": "send successed",
          "created_at": "2022-02-15T14:42:27.238+03:00",
          "updated_at": "2022-02-15T14:42:27.238+03:00"
        }
      ]
    }
  ]
}

Просмотр состояния ответа на входящий запрос

  • Endpoint: /api/v1/:service/incomings/:incoming_id/responses/:id(.json)
  • Method: GET
  • Params:
    • service: Имя сервиса
    • incoming_id: Идентификатор входящего запроса
    • id: Идентификатор ответа

Возвращает полную информацию по данному ответу.

Просмотреть ответ:

curl "https://agredator.ru/api/api/v1/fns-nalflproc/incomings/13/responses/44"

Пример ответа:

{
  "id": 44,
  "status": 200,
  "incoming_id": 13,
  "identifier": "9e0d705c-9f08-4465-ab8d-32891d9eb683",
  "info": "send successed",
  "created_at": "2022-02-15T14:36:41.799+03:00",
  "callback_incoming_url": null,
  "histories": [
    {
      "id": 7,
      "historyable_type": "Incoming::Response",
      "historyable_id": 44,
      "from": 100,
      "to": 102,
      "message": "waiting for send",
      "created_at": "2022-02-15T14:36:42.940+03:00",
      "updated_at": "2022-02-15T14:36:42.940+03:00"
    },
    {
      "id": 9,
      "historyable_type": "Incoming::Response",
      "historyable_id": 44,
      "from": 102,
      "to": 200,
      "message": "send successed",
      "created_at": "2022-02-15T14:42:27.238+03:00",
      "updated_at": "2022-02-15T14:42:27.238+03:00"
    }
  ]
}

Создание ответа на входящий запрос

  • Endpoint: /api/v1/:service/incomings/:incoming_id/responses(.json)
  • Method: POST
  • Params:
    • service: Имя сервиса
    • incoming_id: Идентификатор входящего запроса

При создании ответа необходимо указать следующие параметры:

Параметр Тип Описание Обязательный
response Object Объект обертка +
response.payload Object Тело запроса +
response.callback_incoming_url String Адрес для доставки изменения статуса POST-запросом -

Создание ответа:

curl -u identifier:secret \
  -H "Content-Type: application/json; charset=utf-8" \
  -X POST \
  -d '{"response": {"payload": {"data": 111}}}' \
  "https://agredator.ru/api/v1/fns-nalflproc/incomings/13/responses"

Пример ответа:

{
  "id":45,
  "status":100,
  "incoming_id":13,
  "identifier": "9e0d705c-9f08-4465-ab8d-32891d9eb683",
  "info":null,
  "created_at":"2022-02-17T18:43:33.606+03:00",
  "histories":[]
}

После получения подтверждения доставки ответа на входящий запрос (response successed) и/или ошибки, если callback_incoming_url задан, POST-запросом будет доставлено состояние ответа на входящий запрос (см. пример ответа).

Архивация и долгосрочное хранение

Исторические данные клиента после истечения срока актуальности уходят в архив. Архив представляет собой .tar.gz архив, содержащий все запросы, ответы, файлы вложения и пр. данные, ассоциированные с запросом за указанный день/сервис.

archive.tar.gz
├── 197
│   ├── ...
│   └── metadata.json
└── 198
    ├── request.json
    ├── responses
    │   ├── 0_response.json
    │   └── ...
    ├── [group1]
    │   ├── 0_<type>_request.xml
    │   ├── 1_<type>_response.xml
    │   └── ...
    ├── [group2]
    │   ├── 0_<type>_request.xml
    │   ├── 1_<type>_response.xml
    │   └── ...
    ├── 0_<type>_request.xml
    ├── 1_<type>_response.xml
    ├── ...
    ├── attachments
    │   ├── CustomFile.txt
    │   └── ...
    └── metadata.json

Просмотр доступных архивов

  • Endpoint: /api/v1/(:service)/archived_records(.json)
  • Method: GET
  • Params:
    • service: Имя сервиса
  • Возможности: фильтрация, пагинация

Описание полей архивной записи.

При запросе списка можно указать параметры:

Параметр Тип Описание Обязательный
filter[request_id] Integer Дополнительный фильтр, разрешающие только элементы, запрос с указанным request_id -
filter[service_id] Integer Фильтрация по полю service_id -
filter[service_name] String Фильтрация по полю service_name -
filter[status] Integer Фильтрация по полю status -
filter[type] String Фильтрация по полю type -

Возвращает список всех файлов архивов.

При указазании в запросе filter[request_id]=2235 в ответ будет возвращён список, содержащий те архивные записи в которых может находиться данный запрос (записи в которых first_id >= 2235 и last_id <= 2235).

Получить список последних пакетов к конкретному сервису (echo) и идентификатору запроса (2235):

curl "https://agredator.ru/api/v1/echo/archived_records?filter[request_id]=2235"

Пример ответа:

{
  "has_next": true,
  "current_page":1,
  "per_page":2,
  "collection":[
    {
      "id":161,
      "type":"ArchivedRecord::Request",
      "client_id":1,
      "service_id":3,
      "service_name":"echo",
      "status":100,
      "encrypted":0,
      "encryption_info":null,
      "sha256":"113697ecdbada19bcf8caa380f8f5b182be4d9efe25bc51ad70d14a5980a45f1",
      "total":15,
      "first_id":2231,
      "last_id":2258,
      "first_date":"2021-09-16T10:44:38Z",
      "last_date":"2021-09-16T11:15:17Z",
      "created_at":"2025-08-05T11:59:45.244+03:00",
      "actual_version": "02_exchange_logs",
      "file": {
        "id": 321,
        "version": "02_exchange_logs",
        "status": 200,
        "created_at": "2025-12-02T12:30:27.453+03:00",
        "actual": true
      }
    }
  ]
}

Получение информации (JSON) о файле архива

  • Endpoint: /api/v1/(:service)/archived_records/:id.json
  • Method: GET
  • Params:
    • service: Имя сервиса
    • id: Идентификатор архивной записи

Возвращает полную информацию по файлу архива в виде JSON.

Возможные варианты поля status:

Статус Описание
100 Архив создан
200 Клиент прислал подтверждение о скачивании
205 Файл зашифрован (услуга длительного хранения)
210 Файл удалён
Поле Описание
id Идентификатор записи
type Тип записи ArchivedRecord::Request или ArchivedRecord::Incoming
client_id Внутренний идентификатор клиента
service_id Внутренний идентификатор сервиса
service_name Имя сервиса
status Статус архивный записи
encrypted Статус шифрования записи
encryption_info Информация о параметрах шифрования записи
total Число запросов в данном архиве
first_id Минимальный идентификатор запроса, входящего в данный архив
last_id Максимальный идентификатор запроса, входящего в данный архив
first_date Точная дата запроса с идентификатором first_id
last_date Точная дата запроса с идентификатором last_id
created_at Дата создания архива
actual_version Текущая версия формата архивной записи
file История изменений форматов архивной записи
file.id Идентификатор версии
file.version Версия формата архивной записии
file.status Статус версии архивной записи
file.created_at Дата создания архивный версии
file.actual Признак актуальности версии архивной записи

Просмотреть информацию:

curl "https://agredator.ru/api/v1/archived_records/157.json"

Пример ответа:

{
  "id":157,
  "type":"ArchivedRecord::Request",
  "client_id":1,
  "service_id":3,
  "service_name":"echo",
  "status":200,
  "encrypted":0,
  "encryption_info":null,
  "sha256":"270697ecdbada19bcf8caa380f8f5b182be4d9efe25bc51ad70d14a5980a427e",
  "total":1142,
  "first_id":10,
  "last_id":1151,
  "first_date":"2021-09-15T10:44:58Z",
  "last_date":"2021-09-15T11:15:07Z",
  "created_at":"2025-08-04T11:59:45.244+03:00",
  "actual_version": "02_exchange_logs",
  "file": {
    "id": 1,
    "version": "02_exchange_logs",
    "status": 200,
    "created_at": "2025-12-02T12:30:27.453+03:00",
    "actual": true
  }
}

Скачивание файла архива

  • Endpoint: /api/v1/(:service)/archived_records/:id
  • Method: GET
  • Params:
    • service: Имя сервиса
    • id: Идентификатор архивной записи

Возвращает содержимое файла архива.

Скачать файл:

curl "https://agredator.ru/api/v1/archived_records/157" > archive.tar.gz

Пример ошибки (status=400):

{
  "error":true,
  "status":"404",
  "code":"not_found",
  "title":"Couldn't find ArchivedRecord with 'id'=1581 [WHERE \"archived_records\".\"client_id\" = $1]",
  "meta":{ "model":"archived_record", "id":1581 }
}

Подтверждение скачивания файла

  • Endpoint: /api/v1/(:service)/archived_records/:id/ack(.json)
  • Method: GET|PUT|POST
  • Params:
    • service: Имя сервиса
    • id: Идентификатор архивной записи

Подтверждение со стороны клиента об успешном получении файла архива. При этом происходит изменение статуса на 200

curl -X PUT "https://agredator.ru/api/v1/archived_records/161/ack"

Пример ответа:

{
  "id":161,
  "type":"ArchivedRecord::Request",
  "client_id":1,
  "service_id":3,
  "service_name":"echo",
  "status":200,
  "encrypted":0,
  "encryption_info":null,
  "sha256":"113697ecdbada19bcf8caa380f8f5b182be4d9efe25bc51ad70d14a5980a45f1",
  "total":15,
  "first_id":2231,
  "last_id":2258,
  "first_date":"2021-09-16T10:44:38Z",
  "last_date":"2021-09-16T11:15:17Z",
  "created_at":"2025-08-05T11:59:45.244+03:00",
  "actual_version": "02_exchange_logs",
  "file": {
    "id": 1,
    "version": "02_exchange_logs",
    "status": 200,
    "created_at": "2025-12-02T12:30:27.453+03:00",
    "actual": true
  }
}

Сертификаты, доступные для использования

  • Endpoint: /api/v1/certs
  • Method: GET

Возвращает настроенные для использования сертификаты, которые могут быть использованы для подписания загружаемых файлов.

Пример:

  curl -u identifier:secret \
  -X GET \
  "https://agredator.ru/api/v1/certs"

Пример ответа (status=200):

{
  "certs": [
    {
      "name": "test cert"
    }
  ]
}

Примеры

Шлюз не осуществляет преобразований данных, отправляемых и получаемых от указанного сервиса. Актуальные форматы запросов и ответов, обязательные поля и прочие специфичные для каждого сервиса вещи можно узнать из документации.

Сведения о наличии действующих решений о приостановлении операций по счетам налогоплательщика

  • Документация: https://docs.agredator.ru/docs/services/fns/so/

Создание запроса:

curl -u identifier:secret \
  -H "Content-Type: application/json; charset=utf-8" \
  -X POST \
  -d '{"request": {"payload": {"bik": "041203729", "request_identity":
    "000000000000000000000000000000000001", "identity_type": "ИННЮЛ", "identity_value": "6321137880"}}}' \
  "https://agredator.ru/api/v1/fns-so/requests"

Пример ответа:

{
  "id": 6399,
  "status": 100,
  "client": "identifier",
  "info": null,
  "service": "fns-so",
  "created_at": "2019-07-29T10:27:51.440+03:00",
  "response": {},
  "ticket": null,
  "callback_url": null,
  "provider_id": null,
  "external_id": "6399",
  "histories": []
}

Проверка запроса:

curl "https://agredator.ru/api/v1/requests/6363"

Пример ответа:

{

  "id": 6399,
  "status": 200,
  "client": "identifier",
  "info": "success result",
  "service": "fns-so",
  "created_at": "2019-07-29T10:27:51.440+03:00",

  "response": {
    "org_info": "ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ \"АВТО-ДОРСТРОЙ\"",
    "decision_info": {
      "bik": "041203729",
      "request_result": "1",
      "request_date_time": "2017-06-27T09:30:47"
    },
    "exchange_logs": [
      {
        "type": "sendRequest",
        "request": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n\u003csoap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/...",
        "response": "\u003csoap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\"\u003e\u003csoap:Body..."
      },
      {
        "type": "getResponse",
        "request": "\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n\u003csoap:Envelope...",
        "response": "\u003csoap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\"\u003e\u003csoap:Body..."
      }
    ],
    "identity_type": "ИННЮЛ",
    "identity_value": "6321137880",
    "decision_details": [
      {
        "bik": "042202803",
        "num": "3443/1334Р",
        "code": "3443",
        "date": "2017-02-12",
        "info_date": "2017-02-12T12:35:47"
      },
      {
        "bik": "042202824",
        "num": "702",
        "code": "6320",
        "date": "2017-02-09",
        "info_date": "2017-02-10T12:35:47"
      }
    ],
    "request_identify": "000000000000000000000000000000000001"
  },

  "ticket": "f547854f-3730-4894-9a72-684ff7ef45dc",
  "callback_url": null,
  "provider_id": null,
  "external_id": "6399",

  "histories": [
    {
      "id": 11739,
      "request_id": 6399,
      "from": 100,
      "to": 102,
      "message": "processing",
      "created_at": "2019-07-29T10:32:11.500+03:00",
      "updated_at": "2019-07-29T10:32:11.500+03:00"
    },
    {
      "id": 11742,
      "request_id": 6399,
      "from": 102,
      "to": 200,
      "message": "success result",
      "created_at": "2019-07-29T10:33:35.518+03:00",
      "updated_at": "2019-07-29T10:33:35.518+03:00"
    }
  ]
}

Структуры данных

Описание структур данных

Коллекция объектов

Схема:

{
  "type": "object",
  "properties": {
    "collection": {
      "$comment": "Коллекция запрашиваемых объектов",
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "current_page": {
      "$comment": "Текущая позиция выборки",
      "type": ["string", "integer"]
    },
    "per_page": {
      "$comment": "Количество элементов для построения выборки",
      "type": ["string", "integer"]
    },
    "total_count": {
      "$comment": "DEPRECATED: Общее число элементов в базе",
      "type": ["string", "integer"]
    },
    "has_next": {
      "$comment": "Признак присутствия следущей страницы",
      "type": "boolean"
    }
  },
  "required": ["collection", "current_page", "per_page", "has_next"]
}

Ошибка

Схема:

{
  "type": "object",
  "properties": {
    "error": {
      "$comment": "Обязательный признак ошибки",
      "type": "boolean",
      "enum": [true]
    },
    "status": {
      "$comment": "HTTP-статус ошибки",
      "type": "string"
    },
    "code": {
      "$comment": "Уникальный идентификатор ошибки",
      "type": "string"
    },
    "title": {
      "$comment": "Краткое описание ошибки",
      "type": "string"
    },
    "meta": {
      "$comment": "Дополнительная информация по ошибке",
      "type": ["object", null]
    }
  },
  "required": ["error", "status", "code", "title"],
  "additionalProperties": false
}

Запрос

Возможные статусы:

STATUS_CODE_100_NEED_REQUEST      = 100  # WAITING: [100..199]
STATUS_CODE_102_NEED_RESPONSE     = 102

STATUS_CODE_200_COMPLETED         = 200  # COMPLETED: (200..299)

STATUS_CODE_400_BAD_REQUEST       = 400  # ERROR: (300..699)
STATUS_CODE_480_RESULT_ERROR      = 480
STATUS_CODE_490_RUNTIME_ERROR     = 490
STATUS_CODE_491_OLD_ERROR         = 491
STATUS_CODE_500_ERROR             = 500

Схема:

{
  "type": "object",
  "properties": {
    "id": {
      "$comment": "Идентификатор запроса. Уникален в рамках данного шлюза",
      "type": "integer"
    },
    "status": {
      "$comment": "Состояние обработки запроса. Аналогично HTTP-кодам",
      "type": "integer"
    },
    "client": {
      "$comment": "Идентификатор клиента, сделавшего запрос",
      "type": "string"
    },
    "service": {
      "$comment": "Имя сервиса, к которому направлен запрос",
      "type": "string"
    },
    "ticket": {
      "$comment": "Назначенный системой идентификатор запроса. Уникален в рамках всей системы",
      "type": ["string", "null"]
    },
    "response": {
      "$comment": "Ответ от запрашиваемого сервиса, специфичен для каждого сервиса",
      "type": "object"
    },
    "callback_url": {
      "$comment": "Адрес, на который необходимо доставить результат POST-запросом",
      "type": ["string", "null"]
    },
    "provider_id": {
      "$comment": "Идентификатор поставщика данных",
      "type": ["string", "null"]
    },
    "histories": {
      "$comment": "История изменения статуса запроса",
      "type": "array",
      "items": { "$ref": "/schemas/api/v1/request/history.json" }
    },
    "info": {
      "$comment": "Текущий статус запроса (из истории)",
      "type": ["string", "null"]
    },
    "created_at": {
      "$comment": "Дата создания запроса",
      "type": "string"
    }
  },
  "required": [
    "id", "status", "client", "histories",
    "info", "created_at", "ticket",
    "callback_url", "provider_id", "response"
  ],
  "additionalProperties": false
}

История запроса

Схема:

{
  "type": "object",
  "properties": {
    "id": {
      "$comment": "Идентификатор записи",
      "type": "integer"
    },
    "historyable_type": {
      "$comment": "Тип объекта истории (Ex. Incoming, Incoming::Response...).",
      "type": "string"
    },
    "historyable_id": {
      "$comment": "Идентификатор объекта истории.",
      "type": "integer"
    },
    "from": {
      "$comment": "Предыдущий статус",
      "type": "integer"
    },
    "to": {
      "$comment": "Новый статус",
      "type": "integer"
    },
    "message": {
      "$comment": "Коментарий",
      "type": ["string", "null"]
    },
    "created_at": {
      "$comment": "Дата создания",
      "type": "string"
    },
    "updated_at": {
      "$comment": "Дата изменения",
      "type": "string"
    }
  },
  "required": ["id", "historyable_type", "historyable_id", "from", "to", "message", "created_at"],
  "additionalProperties": false
}

Информация о файле архива

Схема:

{
  "type": "object",
  "properties": {
    "id": {
      "$comment": "Идентификатор архивной записи. Уникален в рамках данного шлюза",
      "type": "integer"
    },
    "type": {
      "$comment": "Тип архивной записи",
      "type": "string",
      "enum": ["ArchivedRecord::Request", "ArchivedRecord::Incoming"]
    },
    "client_id": {
      "$comment": "Идентификатор клиента, владельца записи",
      "type": "integer"
    },
    "service_id": {
      "$comment": "Идентификатор сервиса, записи по которму находятся в архиве",
      "type": "integer"
    },
    "service_name": {
      "$comment": "Название сервиса, записи по которму находятся в архиве",
      "type": "string"
    },
    "status": {
      "$comment": "Состояние обработки архивной записи. Аналогично HTTP-кодам",
      "type": "integer"
    },
    "encrypted": {
      "$comment": "Состояние шифрования архивной записи",
      "type": "integer"
    },
    "encryption_info": {
      "$comment": "Информация о шифровании",
      "type": ["object", "null"]
    },
    "sha256": {
      "$comment": "Хеш-сумма файла архива по алгоритму SHA256",
      "type": "string"
    },
    "total": {
      "$comment": "Число запросов, входящих в данный архив",
      "type": "integer"
    },
    "first_id": {
      "$comment": "Идентификатор первого запроса, входящего в данный архив",
      "type": "integer"
    },
    "last_id": {
      "$comment": "Идентификатор последнего запроса, входящего в данный архив",
      "type": "integer"
    },
    "first_date": {
      "$comment": "Дата первого запроса, входящего в данный архив в формате ISO8601. Пример: 2021-09-15T10:44:58Z",
      "type": "string"
    },
    "last_date": {
      "$comment": "Дата последнего запроса, входящего в данный архив в формате ISO8601. Пример: 2021-09-15T10:44:58Z",
      "type": "string"
    },
    "created_at": {
      "$comment": "Дата создания запроса",
      "type": "string"
    },
    "actual_version": {
      "$comment": "Версия структуры архивного файла. Текущая актуальная версия \"02_exchange_logs\"",
      "type": "string"
    },
    "file": {
      "$comment": "Информация об актуальной версии архивного файла",
      "type": "object",
      "properties": {
        "id": {
          "$comment": "Идентификатор архивного файла. Уникален в рамках данного шлюза",
          "type": "integer"
        },
        "version": {
          "$comment": "Версия структуры архивного файла. Текущая актуальная версия \"02_exchange_logs\"",
          "type": "string"
        },
        "status": {
          "$comment": "Статус архивного файла. 200-доступен, 205-запланировано удаление, 210-удалён",
          "type": "integer"
        },
        "created_at": {
          "$comment": "Дата создания запроса",
          "type": "string"
        },
        "actual": {
          "$comment": "Признак актуальности версии",
          "type": "boolean"
        }
      },
      "required": [
        "id", "version", "status", "created_at", "actual"
      ]
    }
  },
  "required": [
    "id", "type", "client_id", "service_id", "service_name",
    "status", "encrypted", "encryption_info",
    "sha256", "total", "first_id", "last_id", "first_date", "last_date", "created_at", "file", "actual_version"
  ]
}


  • Описание
  • Общее описание API
  • Коллекции
  • Пагинация
  • Фильтрация
  • Callback/push
  • Формат PUSH-адреса
  • Проверка callback/push
  • API V1
  • Работа с запросами
  • Получение списка запросов
  • Просмотр состояния запроса
  • Создание запроса
  • Модификация шага запроса
  • Удаление запроса
  • Получение информации (JSON) о файле вложений
  • Получение содержимого файла вложений
  • Загрузка файла вложений в систему
  • Загрузка файла вложений в систему с получением подписи
  • Получение логов запроса
  • Статистика
  • Получение списка пакетов запросов
  • Просмотр пакета запросов
  • Создание пакета запроса
  • Входящие запросы
  • Получение списка входящих запросов
  • Просмотр входящего запроса
  • Подтверждение о принятии входящего запроса
  • Получение логов входящего запроса
  • Получение списка ответов на входящий запрос
  • Просмотр состояния ответа на входящий запрос
  • Создание ответа на входящий запрос
  • Архивация и долгосрочное хранение
  • Просмотр доступных архивов
  • Получение информации (JSON) о файле архива
  • Скачивание файла архива
  • Подтверждение скачивания файла
  • Сертификаты, доступные для использования
  • Примеры
  • Сведения о наличии действующих решений о приостановлении операций по счетам налогоплательщика
  • Структуры данных
  • Коллекция объектов
  • Ошибка
  • Запрос
  • История запроса
  • Информация о файле архива
  • Подавай заявку сейчас

    Оставьте свои контактные данные и наш менеджер свяжется с вами в ближайшее время