Перейти к содержанию

Invoices

Генерация PDF счетов с защитой от SSRF.

Возможности

  • Генерация счетов для сделок
  • Автоматическая нумерация (формат: XX-YYMMDD-N)
  • Конвертация HTML в PDF через Puppeteer
  • Защита от SSRF атак

API

Получить счета сделки

GET /api/invoices/deal/:dealId

// Response
[
  {
    "id": 1,
    "invoiceNumber": "АБ-241201-1",
    "grandTotal": 150000,
    "createdAt": "2024-12-01T10:00:00Z",
    "generatedBy": { "firstName": "Иван" }
  }
]

Создать счёт

POST /api/invoices/generate
{
  "dealId": 123,
  "items": [
    { "name": "Товар 1", "quantity": 10, "price": 5000, "total": 50000 }
  ],
  "subtotal": 50000,
  "totalTax": 6000,
  "grandTotal": 56000,
  "clientInfo": { "name": "ТОО Клиент", "bin": "123456789012" },
  "contractNumber": "Д-2024-001",
  "invoiceNote": "Оплата в течение 5 дней"
}

Сгенерировать PDF

POST /api/invoices/generate-pdf
{
  "html": "<html>...</html>"
}

// Response: application/pdf

Формат номера

XX-YYMMDD-N

XX     = Инициалы владельца сделки
YYMM   = Год и месяц создания сделки
DDD    = ID сделки (3 цифры)
N      = Порядковый номер счёта

Пример: ИИ-241201-3 — третий счёт от Ивана Иванова по сделке от декабря 2024.

Безопасность PDF

Puppeteer запускается с ограничениями: - Блокировка file://, ftp:// протоколов - Блокировка localhost и внутренних IP - Ограничение размера HTML (2MB) - Таймаут 15 секунд