{"_id":"@boarteam/freekassa-sdk","_rev":"3-51fbeaed7eeef0884c89c8f0420e35d2","name":"@boarteam/freekassa-sdk","dist-tags":{"latest":"0.0.23"},"versions":{"0.0.21":{"name":"@boarteam/freekassa-sdk","version":"0.0.21","keywords":[],"author":{"name":"exact01"},"license":"ISC","_id":"@boarteam/freekassa-sdk@0.0.21","maintainers":[{"name":"jifeon","email":"jifeon@gmail.com"},{"name":"proxcentw","email":"proxcentb@gmail.com"},{"name":"denisvolper","email":"denisvolper@gmail.com"}],"dist":{"shasum":"057467f9429548c46a4bbeec09e66594d58993a7","tarball":"https://registry.npmjs.org/@boarteam/freekassa-sdk/-/freekassa-sdk-0.0.21.tgz","fileCount":83,"integrity":"sha512-huJK3wPFR+uUYLyOr85ktMCv3pelBgnoQr8dNUPDvt1TkidZDc5fi1mZ17+QqU1d/E3gtoryaxnSktBSJOBSAw==","signatures":[{"sig":"MEQCIFCuEH6++T0Yiv/01WEjEqFBifJ/jmz2N2/RH2QvR2tLAiBHXTLdUW08zcQe5XL8Pk8lEKfncrAEfYHtBBVNQGo+9w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":86575},"main":"build/backend/index.js","types":"build/backend/index.d.ts","browser":"build/frontend/index.js","gitHead":"5fe90229861e4c94ad39c46d09b0d2cfe83686e5","scripts":{"test":"ts-node test.ts","build":"npm run clean && npm run build:backend && npm run build:frontend","clean":"rm -rf build","prepublish":"npm run build","build:backend":"tsc -p tsconfig.backend.json","build:frontend":"tsc -p tsconfig.frontend.json"},"_npmUser":{"name":"jifeon","email":"jifeon@gmail.com"},"_npmVersion":"10.9.2","description":"freekassa sdk","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"3.24.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","ts-node":"10.9.2","typescript":"5.5.4","@types/node":"22.15.2","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.2.0","@typescript-eslint/eslint-plugin":"^7.2.0"},"_npmOperationalInternal":{"tmp":"tmp/freekassa-sdk_0.0.21_1760973348788_0.04809601314442524","host":"s3://npm-registry-packages-npm-production"}},"0.0.22":{"name":"@boarteam/freekassa-sdk","version":"0.0.22","keywords":[],"author":{"name":"exact01"},"license":"ISC","_id":"@boarteam/freekassa-sdk@0.0.22","maintainers":[{"name":"jifeon","email":"jifeon@gmail.com"},{"name":"proxcentw","email":"proxcentb@gmail.com"},{"name":"denisvolper","email":"denisvolper@gmail.com"}],"dist":{"shasum":"03893b17e035187d98473cac4b7651c6ea27dc6a","tarball":"https://registry.npmjs.org/@boarteam/freekassa-sdk/-/freekassa-sdk-0.0.22.tgz","fileCount":83,"integrity":"sha512-HgbaxoqFx4TajM4sG+OS73+9VP5iaKQSx6Zakq2bzZ+oOIPRLUGn5u540WluLnOLJbUGFIPY5gov8IfV13cyaA==","signatures":[{"sig":"MEMCIDT6xcqduDLrOE/C08iv1CYWLTJVnPbH7eqjUKLVeqnQAh8kbep0DifRYzm2xoLKPyJIyQjvc4TETkzkL9xbuvSK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":86575},"main":"build/backend/index.js","types":"build/backend/index.d.ts","browser":"build/frontend/index.js","gitHead":"e81701410087d4dd9f98dc0bc5f9c0292208df24","scripts":{"test":"ts-node test.ts","build":"npm run clean && npm run build:backend && npm run build:frontend","clean":"rm -rf build","prepublish":"npm run build","build:backend":"tsc -p tsconfig.backend.json","build:frontend":"tsc -p tsconfig.frontend.json"},"_npmUser":{"name":"jifeon","email":"jifeon@gmail.com"},"_npmVersion":"10.9.2","description":"freekassa sdk","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"3.24.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","ts-node":"10.9.2","typescript":"5.5.4","@types/node":"22.15.2","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.2.0","@typescript-eslint/eslint-plugin":"^7.2.0"},"_npmOperationalInternal":{"tmp":"tmp/freekassa-sdk_0.0.22_1765553221381_0.21688922736270455","host":"s3://npm-registry-packages-npm-production"}},"0.0.23":{"name":"@boarteam/freekassa-sdk","version":"0.0.23","description":"freekassa sdk","scripts":{"test":"ts-node test.ts","clean":"rm -rf build","build:backend":"tsc -p tsconfig.backend.json","build:frontend":"tsc -p tsconfig.frontend.json","build":"npm run clean && npm run build:backend && npm run build:frontend","prepublish":"npm run build"},"keywords":[],"author":{"name":"exact01"},"license":"ISC","dependencies":{"zod":"3.24.3"},"devDependencies":{"eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","eslint":"^8.56.0","@typescript-eslint/eslint-plugin":"^7.2.0","@typescript-eslint/parser":"^7.2.0","@types/node":"22.15.2","typescript":"5.5.4","ts-node":"10.9.2"},"main":"build/backend/index.js","browser":"build/frontend/index.js","types":"build/backend/index.d.ts","publishConfig":{"access":"public"},"_id":"@boarteam/freekassa-sdk@0.0.23","gitHead":"3d99b944d1abd75af386b5b4b02c812896303ad0","_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-VivGXp++HiCdh/b0G4VxolwOcxeV3mnkbahf2Ici8yN6aEDp9Gx2/J/haGvQw6uSsCFvHhE4dkXBuHQfUe07BQ==","shasum":"542304590a567204897836e7a26a3594a0c0982c","tarball":"https://registry.npmjs.org/@boarteam/freekassa-sdk/-/freekassa-sdk-0.0.23.tgz","fileCount":87,"unpackedSize":87870,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDpphaq6lmF7e5gpq4hrC7Bv+ijs+wWEo7RHlnMxHpaqgIga6VOjcfDFx7taTSDY9rXF5z45dCcSLJb44kFaYawz58="}]},"_npmUser":{"name":"jifeon","email":"jifeon@gmail.com"},"directories":{},"maintainers":[{"name":"jifeon","email":"jifeon@gmail.com"},{"name":"proxcentw","email":"proxcentb@gmail.com"},{"name":"denisvolper","email":"denisvolper@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/freekassa-sdk_0.0.23_1765579199775_0.9777428550100926"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-20T15:15:48.591Z","modified":"2025-12-12T22:40:00.153Z","0.0.21":"2025-10-20T15:15:49.007Z","0.0.22":"2025-12-12T15:27:01.570Z","0.0.23":"2025-12-12T22:39:59.916Z"},"author":{"name":"exact01"},"license":"ISC","keywords":[],"description":"freekassa sdk","maintainers":[{"name":"jifeon","email":"jifeon@gmail.com"},{"name":"proxcentw","email":"proxcentb@gmail.com"},{"name":"denisvolper","email":"denisvolper@gmail.com"}],"readme":"# FreeKassa SDK\n\n![GitHub top language](https://img.shields.io/github/languages/top/exact01/freekassa-sdk)\n![GitHub Repo stars](https://img.shields.io/github/stars/exact01/freekassa-sdk)\n\n![npm version](https://img.shields.io/npm/v/@exact-team/freekassa-sdk)\n![GitHub Tag](https://img.shields.io/github/v/tag/exact01/freekassa-sdk)\n\n![Build Status](https://img.shields.io/github/actions/workflow/status/exact01/freekassa-sdk/.github/workflows/deploy-lib.yml)\n![Downloads](https://img.shields.io/npm/dt/@exact-team/freekassa-sdk)\n![License](https://img.shields.io/npm/l/@exact-team/freekassa-sdk)\n![NPM Last Update](https://img.shields.io/npm/last-update/%40exact-team%2Ffreekassa-sdk)\n\n![Known Vulnerabilities](https://snyk.io/test/github/exact01/freekassa-sdk/badge.svg)\n![Coverage Status](https://img.shields.io/codecov/c/github/exact01/freekassa-sdk)\n\n## Описание\n\nFreeKassa SDK - это библиотека для работы с платежной системой FreeKassa, которая позволяет интегрировать платежи в ваше приложение. SDK поддерживает как фронтенд, так и бэкенд части приложения. Если для вас не хватает каких то методов, которые есть в документации отпишите мне, я постараюсь их добавить!\n\n[Обёртка для NestJS](https://github.com/exact01/freekassa-sdk-nestjs)\n\n[Документация freekassa](https://docs.freekassa.net)\n\n## Установка\n\n```bash\nnpm install @exact-team/freekassa-sdk\n```\n\n## Структура проекта\n\n```\nsrc/\n├── api/          # API-клиенты и методы\n├── commands/     # Команды для работы с платежами\n├── interfaces/   # Интерфейсы и типы\n├── index.ts      # Точка входа\n└── freekassa.sdk.ts # Основной класс SDK\n```\n\n## Основные возможности\n\n- Создание платежей и выплат\n- Получение списка заказов и выплат\n- Проверка статуса платежей\n- Работа с уведомлениями\n- Управление балансом\n- Получение информации о валютах\n- Валидация данных\n- Поддержка TypeScript\n\n## Конфигурация\n\n### Обязательные параметры\n\n- `key` - API ключ для подписи запросов\n- `secretWord1` - Первое секретное слово для подписи платежных форм\n- `secretWord2` - Второе секретное слово для проверки уведомлений\n- `shopId` - ID вашего магазина\n- `lang` - Язык интерфейса (`ru` или `en`)\n- `currency` - Валюта платежей (`RUB`, `USD`, `EUR`, `UAH`, `KZT`)\n- `payUrl` - URL платежной формы (по умолчанию: `https://pay.fk.money/`)\n- `apiUrl` - URL API (по умолчанию: `https://api.fk.life/v1/`)\n\n## Использование\n\n### Инициализация\n\n```typescript\nimport { Freekassa } from '@exact-team/freekassa-sdk';\n\nconst sdk = new Freekassa({\n  key: 'YOUR_API_KEY',\n  secretWord1: 'YOUR_SECRET_WORD_1',\n  secretWord2: 'YOUR_SECRET_WORD_2',\n  shopId: 12345,\n  lang: 'ru',\n  currency: 'RUB',\n  payUrl: 'https://pay.fk.money/',\n  apiUrl: 'https://api.fk.life/v1/',\n});\n```\n\n### Платежи\n\n#### Создание ссылки для оплаты\n\n```typescript\nconst paymentLink = sdk.createPaymentLink({\n  amount: 1000,\n  paymentId: 'unique-payment-id',\n  methodId: 1, // опционально\n  email: 'customer@example.com', // опционально\n  phone: '+79001234567', // опционально\n  successUrl: 'https://your-site.com/success', // опционально\n  failUrl: 'https://your-site.com/fail', // опционально\n  notifyUrl: 'https://your-site.com/notify', // опционально\n});\n```\n\n#### Создание заказа\n\n```typescript\nconst order = await sdk.createOrder({\n  methodId: 1,\n  email: 'customer@example.com',\n  ip: '127.0.0.1',\n  amount: 1000,\n  paymentId: 'unique-payment-id',\n  phone: '+79001234567', // опционально\n  successUrl: 'https://your-site.com/success', // опционально\n  failUrl: 'https://your-site.com/fail', // опционально\n  notifyUrl: 'https://your-site.com/notify', // опционально\n});\n```\n\n#### Проверка уведомления\n\n```typescript\nconst notification = {\n  MERCHANT_ID: 'yourID',\n  AMOUNT: '10',\n  MERCHANT_ORDER_ID: '1746001556454',\n  SIGN: 'a242444ec9b2cf63e5fa1ea1ef1bb999',\n};\n\nconst isValid = sdk.verifyNotification(notification);\nconsole.log(isValid); // true или false\n```\n\n#### Получение списка заказов\n\n```typescript\nconst orders = await sdk.listOrders({\n  paymentId: 'payment-id', // опционально\n  orderId: 'order-id', // опционально\n  status: 1, // опционально\n  dateFrom: '2024-01-01', // опционально\n  dateTo: '2024-12-31', // опционально\n  page: 1, // опционально\n});\n```\n\n### Выплаты\n\n#### Создание выплаты\n\n```typescript\nconst withdrawal = await sdk.createWithdrawal({\n  methodId: 1,\n  account: 'account-number',\n  amount: 1000,\n  paymentId: 'unique-payment-id', // опционально\n});\n```\n\n#### Получение списка выплат\n\n```typescript\nconst withdrawals = await sdk.listWithdrawals({\n  orderId: 'order-id', // опционально\n  paymentId: 'payment-id', // опционально\n  status: 1, // опционально\n  dateFrom: '2024-01-01', // опционально\n  dateTo: '2024-12-31', // опционально\n  page: 1, // опционально\n});\n```\n\n### Информация\n\n#### Получение баланса\n\n```typescript\nconst balance = await sdk.getBalance();\n```\n\n#### Получение списка валют\n\n```typescript\nconst currencies = await sdk.getCurrencies();\n```\n\n#### Получение статуса валюты\n\n```typescript\nconst currencyStatus = await sdk.getCurrencyStatus(1);\n```\n\n#### Получение валют для выплат\n\n```typescript\nconst withdrawalCurrencies = await sdk.getWithdrawalCurrencies();\n```\n\n#### Получение списка магазинов\n\n```typescript\nconst shops = await sdk.getShops();\n```\n\n## Требования\n\n- Node.js 20+\n- TypeScript 5.0+\n\n## Разработка\n\n### Сборка\n\n```bash\n# Сборка проекта\nnpm run build\n\n# Запуск линтера\nnpm run lint\n```\n\n### Линтинг\n\nПроект использует ESLint и Prettier для поддержания качества кода.\n\n### Структура проекта\n\n```\nsrc/\n├── api/          # API-клиенты и методы\n├── commands/     # Команды для работы с платежами\n├── interfaces/   # Интерфейсы и типы\n├── index.ts      # Точка входа\n└── freekassa.sdk.ts # Основной класс SDK\n```\n\n### Поддерживаемые версии Node.js\n\nSDK поддерживает следующие версии Node.js:\n\n- Node.js 20.x\n- Node.js 21.x\n- Node.js 22.x\n\n### Безопасность\n\nSDK использует следующие механизмы безопасности:\n\n- HMAC-SHA256 для подписи API-запросов\n- MD5 для подписи платежных форм\n- Валидация всех входящих данных через Zod\n- Типизация TypeScript для предотвращения ошибок\n\n### Обработка ошибок\n\nВсе методы SDK могут выбросить следующие типы ошибок:\n\n- `Error` - общие ошибки API\n- `ZodError` - ошибки валидации входных данных\n- `TypeError` - ошибки типизации\n\nПример обработки ошибок:\n\n```typescript\ntry {\n  const order = await sdk.createOrder({\n    methodId: 1,\n    email: 'customer@example.com',\n    ip: '127.0.0.1',\n    amount: 1000,\n    paymentId: 'unique-payment-id',\n  });\n} catch (error) {\n  if (error instanceof Error) {\n    console.error('API Error:', error.message);\n  } else if (error instanceof ZodError) {\n    console.error('Validation Error:', error.errors);\n  }\n}\n```\n\n### Тестирование\n\nДля тестирования SDK рекомендуется:\n\n1. Использовать тестовые API-ключи\n2. Проверять все сценарии обработки ошибок\n3. Верифицировать подписи платежных форм\n4. Тестировать обработку уведомлений\n\n### Вклад в проект\n\nПриветствуются:\n\n- Исправление ошибок\n- Улучшение документации\n- Добавление новых методов\n- Улучшение тестового покрытия\n\n## Лицензия\n\nISC\n\n## Автор\n\nexact01\n\n## Поддержка\n\nДля получения поддержки или сообщения об ошибках, пожалуйста, создайте issue в репозитории проекта.\n\n```\n\n```\n","readmeFilename":"README.md"}