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

Постоплатный биллинг ​

С постоплатным биллингом вы заказываете Energy, Bandwidth, активацию и AML-проверки без предварительного пополнения депозита. Услуги тарифицируются по действующему индивидуальному тарифу клиента, включая применимые скидки. Начисления, платежи и корректировки отражаются в вашем счете в соответствии с условиями биллинга и оплаты по вашему договору.

Постоплата подключается Netts по запросу для корпоративных аккаунтов. Эндпоинты из этого раздела отвечают только для аккаунтов с постоплатным биллингом; другие аккаунты получают 403 postpaid_required.

Как это работает ​

  1. Вы оформляете заказ как обычно. Те же эндпоинты заказов, тот же API-ключ. Постоплатному аккаунту не требуется баланс депозита для этих заказов. Стоимость соответствует цене по вашему договору с учетом ваших скидок.
  2. Предоставленные услуги фиксируются как начисления. Принятый заказ сам по себе не является предоставленной услугой. Начисление появляется в usage после того, как услуга или отдельно тарифицируемая часть заказа была предоставлена — это может произойти позже ответа на заказ.
  3. Цена и курс фиксируются и сохраняются. Действующая котировка фиксирует цену по вашему договору для этого заказа. Без котировки применяется цена по вашему договору на момент размещения заказа, а сумма в валюте вашего договора рассчитывается по курсу на момент предоставления услуги. Зафиксированные суммы не пересчитываются при чтении расхода, получении счета или совершении платежа.
  4. Вы получаете и оплачиваете счет. Расчетный период и условия оплаты соответствуют согласованным в вашем договоре. Счет отображает услуги за период, примененные платежи и корректировки, а также сумму к оплате; платеж не удаляет записи об услугах. См. invoices и payments. Валюта платежа, сеть и срок оплаты указаны в settlement в account. Переплата остается на вашем аккаунте в качестве кредита и расходуется на следующие начисления.

Тариф, котировка и зафиксированный обменный курс ​

Котировка (freezePrice) фиксирует цену по вашему договору на одну минуту. Оформите заказ с quoteId и теми же параметрами в течение этой минуты, и он будет рассчитан по зафиксированной цене, даже если цена изменится или услуга будет предоставлена позже. Котировка опциональна; поля запроса описаны в 1-hour energy и 5-minute energy.

Без котировки сумма в валюте вашего договора рассчитывается по курсу на момент предоставления услуги, а не на момент, когда вы просматривали цену или свой аккаунт. Текущий курс — ваш курс и курс в ответах эндпоинта аккаунта — приведен только для справки; он не гарантирует курс будущего заказа.

AML-проверки тарифицируются в долларах США и фиксируются в валюте вашего договора; эквивалент в TRX рассчитывается по курсу на момент завершения проверки. Не пересчитывайте начисление за AML из округленной суммы в TRX.

Суммы отображаются в TRX и в валюте вашего договора; ваши лимиты рассчитываются в валюте вашего договора. usdPerTrx — это курс TRX к валюте вашего договора. Вы платите в валюте и сети вашего договора, указанных в settlement.

Заказ может содержать более одного начисления, например Energy и отдельно тарифицируемую активацию. У каждого начисления свои время и курс. Суммы округляются один раз до шести знаков после запятой по банковскому правилу (к ближайшему четному); в котировке сохраняются зафиксированные в ней суммы. Сверяйте заказ по его начислениям, а не путем применения текущего курса к его общей сумме.

Все значения времени указаны в UTC. Все суммы представляют собой строки с десятичными числами, например "30000.000000" — парсите их с помощью десятичного типа данных (decimal), а не float.

Кредитный лимит ​

Netts устанавливает кредитный лимит вашего аккаунта: максимальную сумму, которую вы можете быть должны в любой момент времени. Он отображается в account и limits со значением "origin": "netts". Вы можете просматривать его, но не можете изменить или отключить — обратитесь к вашему менеджеру Netts, если вам требуется другой лимит.

Продукты и API-ключи делят этот единый кредитный лимит уровня аккаунта. Каждый новый заказ проверяется на соответствие каждому применимому лимиту. Если проверка выявляет недостаточность доступного кредита, заказ отклоняется до исполнения:

json
{
  "detail": {
    "code": 1004,
    "msg": "Postpaid credit limit reached.",
    "paymentMode": "postpaid",
    "reason": "limit_reached",
    "product": "*",
    "period": "outstanding",
    "limitId": 1
  }
}

Эндпоинт заказа возвращает ответ 402. Платеж снова освобождает лимит. Если проверка временно недоступна, эндпоинт заказа отвечает 503 с кодом 5036 — повторите попытку позже, за отклоненную попытку средства списаны не были. Доступная сумма, возвращаемая запросом на чтение, является текущим значением, а не бронью под будущий заказ; другие принятые заказы могут изменить ее.

Ваши собственные лимиты ​

В рамках лимита Netts вы можете настроить собственные, более низкие лимиты — чтобы контролировать расходы или ограничить отдельные продукты:

  • Ваш собственный общий лимит — общая сумма задолженности, которую вы себе разрешаете, ниже лимита Netts.
  • Лимит на продукт — сумма, которую может израсходовать один продукт, например energy_5m.

Ваши лимиты никогда не увеличивают объем кредита. Лимиты на продукты не суммируются: при лимите Netts в 50 USD лимиты на продукты в 50 USD для energy_1h и 50 USD для energy_5m по-прежнему делят между собой 50 USD кредита уровня аккаунта. При проверке заказа применяется каждый относящийся к нему лимит, а раздел limits показывает, сколько можно потратить в данный момент по каждому продукту.

Лимит может учитывать:

periodЧто учитывается
outstandingнеоплаченные начисления плюс принятые, но еще не зафиксированные заказы
dayначисления за текущие сутки UTC, включая оплаченные, плюс принятые, но еще не зафиксированные заказы
weekначисления за текущую неделю UTC начиная с понедельника 00:00 UTC, включая оплаченные, плюс принятые, но еще не зафиксированные заказы
orderсумма одного нового заказа

Платеж уменьшает вашу задолженность, но не сбрасывает объем использования за день или неделю. Кредит от переплаты отображается как creditApplied и засчитывается один раз в счет вашей общей задолженности; он не прибавляется к лимиту каждого продукта.

Ваши лимиты задаются в валюте лимита Netts и не могут быть выше него. Если Netts снижает свой лимит ниже одного из ваших, в силе остается более строгое применимое ограничение.

Продукты: energy_1h, energy_5m, bandwidth, activation, aml_check.

Права API-ключа ​

Каждому API-ключу требуется право доступа для работы с этим разделом. Ваш менеджер Netts выдает его индивидуально для каждого ключа:

ПравоРазрешает
billing.readаккаунт, курс, лимиты, расход, счета и платежи
limits.writeсоздание, изменение, отключение и включение ваших собственных лимитов

Без этого права эндпоинт возвращает 403 с ошибкой billing_read_required или forbidden. Белый список IP-адресов ключа действует так же, как и для любого другого эндпоинта. Эти эндпоинты остаются доступными при нулевом балансе депозита.

Эндпоинты ​

ЭндпоинтНазначение
GET /apiv2/billing/accountкредитный лимит, задолженность и доступный остаток на данный момент
GET /apiv2/billing/rateваш текущий курс TRX к валюте вашего договора
GET /apiv2/billing/limitsвсе лимиты с использованными и доступными суммами, доступный остаток по каждому продукту
POST /apiv2/billing/limitsсоздание, изменение, отключение и включение ваших собственных лимитов
GET /apiv2/billing/usageсоставляющие начислений, привязанные к их заказам
GET /apiv2/billing/invoicesсчета, отдельный счет с его начислениями
GET /apiv2/billing/paymentsплатежи и кредит

Формат ответа ​

json
{ "success": true, "data": { }, "timestamp": "2026-10-19T20:12:30+00:00" }

Ошибка сервиса:

json
{
  "success": false,
  "error": { "code": "postpaid_required", "message": "this account has no postpaid billing" },
  "timestamp": "2026-10-19T20:12:30+00:00"
}

Отсутствующий или недействительный ключ, либо запрос с IP-адреса не из белого списка ключа, отклоняется API-шлюзом до того, как запрос достигнет сервиса, со статусом 401:

json
{ "detail": { "code": -1, "msg": "Invalid or missing API key" } }

Код -2 с сообщением "Invalid API key or IP not in whitelist" означает, что IP-адрес отсутствует в белом списке ключа. Более 10 запросов в секунду или 300 в минуту с одного IP отклоняются со статусом 429 и телом {"message": "API rate limit exceeded"}.

HTTPcodeЗначение
400invalid_request, invalid_amount, idempotency_key_required, invalid_idempotency_keyпараметр отсутствует или имеет неверный формат
403postpaid_requiredу аккаунта не подключен постоплатный биллинг
403postpaid_disabledпостоплатный биллинг приостановлен: вы можете читать данные, но не можете изменять лимиты
403billing_read_required, forbiddenу ключа отсутствует право billing.read или limits.write
403netts_limit_readonlyлимит установлен Netts и не может быть изменен
404not_foundуказанный лимит или счет не найден на вашем аккаунте
409revision_conflictлимит был тем временем изменен — запросите его заново
409limit_existsу вас уже есть лимит для этого продукта и периода
409idempotency_conflictзаголовок Idempotency-Key уже использовался с другим запросом
409no_account_limitдля аккаунта еще не установлен кредитный лимит со стороны Netts
422above_account_limitзначение превышает лимит Netts
422product_not_postpaidпродукт недоступен на постоплате
422unit_mismatchвалюта лимита Netts изменилась — установите новое значение перед включением вашего лимита
503unavailableвременно недоступно — повторите попытку позже
503rate_unavailableваш курс временно недоступен — повторите попытку позже