Квоты и баланс

Квота определяет лимит количества отчётов, доступных для генерации, и количества объектов, доступных для загрузки в хранилище. Для каждого типа отчёта устанавливаются три типа квот: дневная, месячная и общая. Каждая из них определяет разрешённое количество запросов на генерацию отчёта (или загрузку файла) в соответствующий период. Перед выполнением запрошенной операции проверяется наличие разрешения для неё. Если хотя бы по одному виду квоты достигнут лимит, отчёт не будет сформирован (или файл не будет сохранён), а API вернёт ошибку биллинга с HTTP-кодом 402.

Баланс — это остаток отчётов (загрузок файлов) на счёте клиента. Он показывает общее количество отчётов, которые может сгенерировать клиент, или количество файлов, которые можно поместить в хранилище.

Проверка квот

Вы можете получить данные о количестве оплаченных и выполненных операций, используя GET-запрос /user/balance/{REPORT_TYPE_DESC}. В параметре REPORT_TYPE_DESC укажите нужный тип отчёта.

Пример запроса для проверки квот

curl -X GET \
--header 'Accept: application/json' \
--header 'Authorization: AR-REST dGVzdF91c2VyQHRlc3RfZG9tYWluOjE0ODM2MzQ3MjM6OTk5OTk5OTk5OjN3ZzgyRXVUd2VjMjkvT3ZRN215eUE9PQ==' \
'https://b2b-api.spectrumdata.ru/b2b/api/v1/user/balance/test_report_type@test_domain'

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

{
  "state": "ok",
  "size": 3,
  "stamp": "2021-09-06T12:52:21.370Z",
  "data": [
    {
      "report_type_uid": "test_report_type@test_domain",
      "balance_type": "DAY",
      "quote_init": 2,
      "quote_up": 0,
      "quote_use": 1,
      "created_at": "2021-09-06T09:45:23.630Z",
      "updated_at": "2021-09-06T09:45:23.630Z",
      "balance_date": "2021-09-06T09:45:23.645Z"
    },
    {
      "report_type_uid": "test_report_type@test_domain",
      "balance_type": "MONTH",
      "quote_init": 0,
      "quote_up": 0,
      "quote_use": 3,
      "created_at": "2021-09-03T12:27:24.405Z",
      "updated_at": "2021-09-03T12:27:24.405Z",
      "balance_date": "2021-09-03T12:27:24.431Z"
    },
    {
      "report_type_uid": "test_report_type@test_domain",
      "balance_type": "TOTAL",
      "quote_init": 100,
      "quote_up": 0,
      "quote_use": 3,
      "created_at": "2021-09-03T12:27:24.405Z",
      "updated_at": "2021-09-03T12:27:24.405Z",
      "balance_date": "2021-09-03T12:27:24.417Z"
    }
  ]
}

Массив data содержит три объекта балансовых записей, соответствующих определённому виду квоты.

Описание переменных ответа:

Переменная Тип Описание
report_type_uid string Тип отчёта
balance_type string Тип квот. Возможные значения: DAY, MONTH, TOTAL
quote_init integer Начальное значение квоты. Настраивается в момент создания отчёта и не может быть изменено. Если значение равно 0, то считается, что ограничений нет
quote_up integer Значение коррекции квоты. Квота может быть увеличена или уменьшена при внесении изменений в соглашение
quote_use integer Количество отчётов, которые были сгенерированы клиентом. Каждый запрос на генерацию нового отчёта увеличивает счётчик на 1
created_at string Дата создания записи в БД
updated_at string Дата обновления записи в БД
balance_date string Дата балансовой записи

Проверка баланса

Для расчёта доступного остатка операций используются значения квот, полученных в запросе /user/balance/{REPORT_TYPE_DESC}.

Баланс = quote_init + quote_up - quote_use

{primary.fa-exclamation} Генерация отчётов или сохранение файлов доступны, только если для каждого типа квот баланс — это положительное число.