Skip to content
Translated page. The English version is the source of truth.

POST /apiv2/billing/limits ​

Создание, изменение, отключение и включение собственных лимитов в рамках кредитного лимита, установленного Netts. Лимиты, установленные Netts, нельзя изменить с помощью этих эндпоинтов. Часть постоплатного биллинга.

Эндпоинты ​

ЭндпоинтНазначение
POST /apiv2/billing/limitsсоздать собственный лимит
PUT /apiv2/billing/limits/{id}?scope=accountизменить его значение
POST /apiv2/billing/limits/{id}/disable?scope=accountотключить его — он перестает действовать, ничего не удаляется
POST /apiv2/billing/limits/{id}/enable?scope=accountвключить его снова

{id} — это id лимита из лимитов. scope=account обязателен для изменений.

Заголовки запроса ​

ЗаголовокОбязательныйОписание
X-API-KEYдаAPI-ключ с разрешением limits.write
X-Real-IPдаАдрес из белого списка ключа
Idempotency-Keyдауникальная строка, 8–128 символов, по одной на каждое изменение
Content-Typeдаapplication/json

Idempotency-Key обеспечивает безопасность повторных попыток. Повторите запрос с тем же ключом и тем же телом — например, после тайм-аута — и вы получите исходный ответ; изменение не будет применено дважды. Тот же ключ с другим телом запроса отклоняется с ошибкой 409 idempotency_conflict.

expectedRevision защищает от перезаписи изменений, которые вы еще не видели. Передавайте revision, прочитанную последней (0 при создании лимита). Если за это время лимит изменился, запрос будет отклонен с ошибкой 409 revision_conflict — прочитайте лимиты заново и повторите попытку.

Создание лимита ​

ПолеТипОбязательноеОписание
productCodestring или nullнетenergy_1h, energy_5m, bandwidth, activation, aml_check; null или опущено для общего лимита
periodstringдаoutstanding, day, week или order
valuestringдасумма в валюте лимита Netts, не превышающая его
expectedRevisionintegerда0

Вы можете иметь один собственный лимит для каждого продукта и периода. Валюта берется из лимита Netts — поля валюты нет.

bash
curl -s -X POST 'https://netts.io/apiv2/billing/limits' \
  -H 'X-API-KEY: your-api-key' \
  -H 'X-Real-IP: 203.0.113.10' \
  -H 'Idempotency-Key: 6f1c2b8e-limit-5m-day' \
  -H 'Content-Type: application/json' \
  -d '{"productCode": "energy_5m", "period": "day", "value": "200", "expectedRevision": 0}'
json
{
  "success": true,
  "data": {
    "id": 5,
    "scope": "account",
    "origin": "client",
    "productCode": "energy_5m",
    "period": "day",
    "enabled": true,
    "limit": { "unit": "USD", "value": "200.000000" },
    "equivalent": { "unit": "TRX", "value": "604.514867" },
    "revision": 1,
    "fx": { "usdPerTrx": "0.33084276", "at": "2026-10-19T20:24:23.449930+00:00" },
    "fxStatus": "ok"
  },
  "timestamp": "2026-10-19T20:30:02+00:00"
}

Лимит начинает действовать со следующего заказа незамедлительно.

Изменение лимита ​

bash
curl -s -X PUT 'https://netts.io/apiv2/billing/limits/5?scope=account' \
  -H 'X-API-KEY: your-api-key' \
  -H 'X-Real-IP: 203.0.113.10' \
  -H 'Idempotency-Key: 6f1c2b8e-limit-5m-300' \
  -H 'Content-Type: application/json' \
  -d '{"value": "300", "expectedRevision": 1}'
ПолеТипОбязательноеОписание
valuestringдановая сумма, не превышающая лимит Netts
expectedRevisionintegerдатекущая revision лимита

Ответ имеет тот же формат, что и выше, со значением revision, увеличенным на единицу.

Отключение или включение лимита ​

bash
curl -s -X POST 'https://netts.io/apiv2/billing/limits/5/disable?scope=account' \
  -H 'X-API-KEY: your-api-key' \
  -H 'X-Real-IP: 203.0.113.10' \
  -H 'Idempotency-Key: 6f1c2b8e-limit-5m-off' \
  -H 'Content-Type: application/json' \
  -d '{"expectedRevision": 2}'

Тело содержит только expectedRevision. /enable работает аналогично. Отключенный лимит остается в списке со значением "enabled": false и может быть включен позже; на вашу задолженность и списания это не влияет.

Что нельзя делать ​

  • Изменять или отключать лимит с "origin": "netts" или лимит ключа — 403 netts_limit_readonly, даже для его уменьшения.
  • Устанавливать значение выше лимита Netts — 422 above_account_limit.
  • Создавать второй лимит для того же продукта и периода — 409 limit_exists; вместо этого измените существующий.
  • Создавать лимит до того, как Netts установит кредитный лимит для вашего аккаунта — 409 no_account_limit.
  • Включать лимит, валюта которого отличается от текущего лимита Netts — 422 unit_mismatch; сначала установите новое значение.

Ошибки ​

HTTPcodeЗначение
400invalid_request, invalid_amountполе отсутствует или имеет неверный формат
400idempotency_key_required, invalid_idempotency_keyотсутствует Idempotency-Key или его длина не от 8 до 128 символов
401-1, -2ключ отсутствует или недействителен, либо IP-адрес не входит в белый список — возвращается API-шлюзом, см. формат ответа
403forbiddenу ключа нет разрешения limits.write
403postpaid_disabledпостоплатный биллинг приостановлен: лимиты нельзя изменять
403netts_limit_readonlyлимит установлен Netts
404not_foundтакого лимита на вашем аккаунте нет
409revision_conflict, limit_exists, idempotency_conflict, no_account_limitсм. выше
422above_account_limit, product_not_postpaid, unit_mismatchзначение выше лимита Netts, неизвестный продукт, изменилась валюта лимита Netts

Все коды перечислены в разделе постоплатный биллинг.