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

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

Счета, предоплаченный баланс и пополнения для 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).

Тело:

ПолеФорматОписание
amountRubnumberСумма пополнения в рублях
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.

Что дальше