Квота определяет лимит количества отчётов, доступных для генерации. Для каждого типа отчёта устанавливаются три типа квот: дневная, месячная и общая. Каждая из них определяет разрешённое количество запросов на генерацию отчёта в соответствующий период. Перед выполнением запрошенной операции проверяется наличие разрешения для неё. Если хотя бы по одному виду квоты достигнут лимит, отчёт не будет сформирован, а 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://b2bsync.spectrumdata.ru/b2b/api/v1/user/balance/test_report_type@test_domain'
В ответе API возвращает массив data
, содержащий три объекта балансовых записей, соответствующих определённому виду квоты.
{
"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"
}
]
}
Вы можете получить данные о количестве оплаченных и использованных отчётов по всему домену, используя GET-запрос /domain/balance
.
В параметре запроса date
укажите дату актуальности данных, на которую необходимо выполнить запрос.
Используйте параметр запроса _detailed = false
, чтобы получить краткие сведения о типе отчёта, или _detailed = true
, если вам нужны подробные данные о каждом из подключенных типов отчёта (например, список подключенных источников или набор полей в отчёте).
curl -X GET \
--header 'Accept: application/json' \
--header 'Authorization: AR-REST dGVzdF91c2VyQHRlc3RfZG9tYWluOjE0ODM2MzQ3MjM6OTk5OTk5OTk5OjN3ZzgyRXVUd2VjMjkvT3ZRN215eUE9PQ==' \
'https://b2bsync.spectrumdata.ru/b2b/api/v1/domain/balance?_detailed=false'
В ответе API возвращает массив data
, содержащий общие сведения и балансовые записи balances[]
для каждого типа отчёта в домене.
{
"state": "ok",
"size": 1,
"stamp": "2022-12-13T18:29:31.376Z",
"data": [
{
"report_type": {
"state": "PUBLISHED",
"day_quote": 0,
"month_quote": 0,
"total_quote": 2000,
"domain_uid": "test_domain",
"max_age": 0,
"clean_options": {},
"min_priority": 1,
"max_priority": 200,
"max_request": 0,
"period_priority": 0,
"report_make_mode": "",
"meta_data": {},
"uid": "test_report_type@test_domain",
"name": "Отчет по умолчанию",
"comment": "",
"tags": "",
"created_at": "2021-10-22T07:14:35.252Z",
"created_by": "system",
"updated_at": "2021-10-22T07:14:35.252Z",
"updated_by": "system",
"active_from": "1900-01-01T00:00:00.000Z",
"active_to": "3000-01-01T00:00:00.000Z"
},
"balances": [
{
"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": "2022-09-03T12:27:24.405Z",
"updated_at": "2022-09-03T12:27:24.405Z",
"balance_date": "2022-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": "2022-09-03T12:27:24.405Z",
"updated_at": "2022-09-03T12:27:24.405Z",
"balance_date": "2022-09-03T12:27:24.417Z"
}
]
}
]
}
Для каждого типа отчёта API предоставляет три объекта балансовых записей, соответствующих определённому виду квоты.
Содержимое балансовой записи:
Переменная | Тип | Описание |
---|---|---|
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 | Дата балансовой записи |
Для расчёта доступного остатка отчётов используются значения квот балансовой записи.
Баланс = quote_init + quote_up - quote_use
{primary.fa-exclamation} Генерация отчётов доступна, только если для каждого типа квот баланс – это положительное число.