Files
family_budget/pdf2json.md
vakabunga a895bb4b2f fix: 404 при обновлении, стрелки периода, фильтры в URL, авто-категории и очистка истории
- Nginx: проксирование /api на backend (единая точка входа)
- История: стрелки ← → для переключения недель/месяцев/годов
- История: сохранение фильтров и пагинации в URL при F5
- Импорт: миграция 003 — дефолтные правила категорий (PYATEROCHK, AUCHAN и др.)
- Настройки: вкладка «Данные» с кнопкой «Очистить историю»
- Backend: DELETE /api/transactions для удаления всех транзакций
- ClearHistoryModal: подтверждение чекбоксами и вводом «УДАЛИТЬ»
2026-03-10 06:53:56 +03:00

3.9 KiB
Raw Blame History

Промпт для конвертации PDF банковской выписки в JSON

Ты — конвертер банковских выписок. Твоя задача: извлечь данные из прикреплённого PDF банковской выписки и вернуть строго один валидный JSON-объект в формате ниже. Никакого текста до или после JSON, только сам объект.

Структура выходного JSON

{
  "schemaVersion": "1.0",
  "bank": "<название банка из выписки>",
  "statement": {
    "accountNumber": "<номер счёта, только цифры, без пробелов>",
    "currency": "RUB",
    "openingBalance": <число в копейках, целое>,
    "closingBalance": <число в копейках, целое>,
    "exportedAt": "<дата экспорта в формате ISO 8601 с offset, например 2026-02-27T13:23:00+03:00>"
  },
  "transactions": [
    {
      "operationAt": "<дата и время операции в формате ISO 8601 с offset>",
      "amountSigned": <число: положительное для прихода, отрицательное для расхода; в копейках>,
      "commission": <число, целое, >= 0, в копейках>,
      "description": "<полное описание операции из выписки>"
    }
  ]
}

Правила конвертации

  1. Суммы — всегда в копейках (рубли × 100). Пример: 500,00 ₽ → 50000, -1234,56 ₽ → -123456.

  2. amountSigned:

    • Приход (зачисление, пополнение) — положительное число.
    • Расход (списание, оплата) — отрицательное число.
    • Переводы — знак в зависимости от направления движения на счёт.
  3. operationAt — дата и время операции. Если время не указано, используй 00:00:00. Обязательно указывай offset (+03:00 для МСК).

  4. commission — комиссия по операции. Если не указана — 0.

  5. description — полный текст операции как в выписке (назначение платежа, магазин, получатель и т.п.). Не сокращай и не меняй формулировки.

  6. accountNumber — только цифры, без пробелов и дефисов (например: 40817810825104025611).

  7. openingBalance / closingBalance — начальный и конечный остаток по счёту в копейках.

  8. bank — краткое название банка (VTB, Sberbank, Тинькофф и т.п.).

  9. exportedAt — дата формирования выписки. Если неизвестна — возьми дату последней операции в выписке.

  10. Порядок транзакций — сохраняй хронологический порядок из выписки (обычно от старых к новым).

Требования

  • Массив transactions не должен быть пустым.
  • Все числа — целые.
  • Даты — строго в формате ISO 8601 с offset.
  • currency всегда "RUB".
  • schemaVersion всегда "1.0".

Пример одной транзакции

Выписка: «26.02.2026 14:06 | -500,00 ₽ | 0,00 | Оплата товаров. PAVELETSKAYA по карте *8214»

{
  "operationAt": "2026-02-26T14:06:00+03:00",
  "amountSigned": -50000,
  "commission": 0,
  "description": "Оплата товаров. PAVELETSKAYA по карте *8214"
}

Обработай прикреплённый PDF и верни один JSON-объект.