LLM Router
Справочник API

Коммерческий биллинг

Счета, предоплаченный баланс и пополнения для B2B-организаций.

Этот раздел отличается от usage: usage показывает фактическое потребление и лимиты, а коммерческий биллинг отвечает за оплату пакетов, рублевый баланс и доступ к новым LLM-запросам.

Требуется токен администратора (роли owner или admin).


GET /api/organizations/{orgId}/billing

Сводка коммерческого биллинга: баланс, тариф, счета, журнал и решение о доступе к моделям.

curl -s https://api.example.com/api/organizations/org_abc/billing \
  -H "Authorization: Bearer <token>"

Ответ 200 — BillingOverview (те же поля, что в billing внутри GET /api/overview).


GET /api/organizations/{orgId}/billing/invoices

Список счетов организации.

curl -s https://api.example.com/api/organizations/org_abc/billing/invoices \
  -H "Authorization: Bearer <token>"

Ответ 200 — массив Invoice:

[
  {
    "id": "inv_001",
    "organizationId": "org_abc",
    "planCode": "monthly",
    "kind": "initial",
    "status": "issued",
    "amountRub": 50000,
    "balanceRub": 50000,
    "buyerLegal": {
      "legalName": "ООО Пример",
      "inn": "7707083893",
      "kpp": "770701001",
      "legalAddress": "г. Москва, ул. Примерная, 1"
    },
    "issuedAt": "2026-06-03T12:00:00Z"
  }
]

Поле buyerLegalснимок реквизитов плательщика на момент выставления счёта (не меняется при последующем редактировании профиля организации). Заполняется из organization.legalDetails — см. Организации.


POST /api/organizations/{orgId}/billing/top-ups

Создать счет на пополнение баланса внутри активного пакета.

Первичный счёт (kind: "initial") должен быть оплачен до создания top-up счетов.

Для top-up в организации должны быть заполнены реквизиты: ИНН, КПП (для юрлица с ИНН из 10 цифр) и юридический адрес (PATCH /api/organizations/{orgId}).

Тело:

ПолеФорматОписание
amountRubnumberСумма пополнения в рублях
curl -s -X POST https://api.example.com/api/organizations/org_abc/billing/top-ups \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"amountRub":12000}'

Ответ 201 — Invoice со статусом issued.


POST /api/organizations/{orgId}/billing/invoices/{invoiceId}/mark-paid

Отметить счет как оплаченный. Для первой версии это ручное действие администратора; интеграция с платежным провайдером или банком может заменить его webhook-ом позже.

curl -s -X POST https://api.example.com/api/organizations/org_abc/billing/invoices/inv_001/mark-paid \
  -H "Authorization: Bearer <token>"

Ответ 200 — Invoice со статусом paid.

После оплаты сумма balanceRub зачисляется на коммерческий баланс организации и отражается в billing.ledger внутри GET /api/overview. Событие попадает в аудит (billing.invoice_paid).

Списание за inference

После успешного запроса к API моделей gateway фиксирует usage; finance-worker списывает стоимость с balanceRub по price catalog и тарифу организации. История операций — в billing.ledger (GET /api/overview). Отдельного эндпоинта синхронизации usage для списания нет.

Что дальше

На этой странице