Коммерческий биллинг
Счета, предоплаченный баланс и пополнения для B2B-организаций.
Этот раздел отличается от usage: usage показывает фактическое потребление и лимиты, а коммерческий биллинг отвечает за оплату пакетов, рублевый баланс и доступ к новым LLM-запросам.
Требуется сессия (owner/admin) (роли owner или admin).
GET /api/organization/billing
Сводка коммерческого биллинга: баланс, тариф, счета, журнал и решение о доступе к моделям.
curl -s https://llmmart.ru/api/organization/billing \
-H "Authorization: Bearer <token>"Ответ 200 — BillingOverview (те же поля, что в billing внутри GET /api/overview).
GET /api/organization/billing/invoices
Список счетов организации.
curl -s https://llmmart.ru/api/organization/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/organization/billing/top-ups
Создать счет на пополнение баланса внутри активного пакета.
Первичный счёт (kind: "initial") должен быть оплачен до создания top-up счетов.
Для top-up в организации должны быть заполнены реквизиты: ИНН, КПП (для юрлица с ИНН из 10 цифр) и юридический адрес (PATCH /api/organization).
Тело:
| Поле | Формат | Описание |
|---|---|---|
amountRub | number | Сумма пополнения в рублях |
curl -s -X POST https://llmmart.ru/api/organization/billing/top-ups \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{"amountRub":12000}'Ответ 201 — Invoice со статусом issued.
POST /api/organization/billing/invoices/{invoiceId}/mark-paid
Отметить счет как оплаченный. Для первой версии это ручное действие администратора; интеграция с платежным провайдером или банком может заменить его webhook-ом позже.
curl -s -X POST https://llmmart.ru/api/organization/billing/invoices/inv_001/mark-paid \
-H "Authorization: Bearer <token>"Ответ 200 — Invoice со статусом paid.
После оплаты сумма balanceRub зачисляется на коммерческий баланс организации и отражается в обзоре биллинга (GET /api/overview). Событие попадает в аудит (billing.invoice_paid).
Списание за запросы к моделям
После успешного запроса к API моделей платформа фиксирует потребление и списывает стоимость с баланса (balanceRub) по тарифу организации. История операций доступна в разделе Биллинг и через GET /api/overview.