Встановлення IBAN Link для KeepinCRM

Сервіс встановлюється самостійно. Програмне забезпечення безкоштовне; хостинг і банківські комісії залежать від постачальника. Перевірте умови тарифів перед запуском.

Варіант 1: Vercel і Neon

  1. Створіть PostgreSQL у Neon та отримайте pooled connection string.
  2. Імпортуйте репозиторій сервісу у Vercel або використайте кнопку Deploy у README. Задайте DATABASE_URL, APP_URL, SESSION_SECRET, OWNER_PASSWORD, WEBHOOK_ISSUE_SECRET та WEBHOOK_PAYMENT_SECRET. Секрети мають бути різними та випадковими.
  3. Запустіть розгортання. Конфігурація проєкту виконує міграції після складання. Відкрийте адресу сервісу зі шляхом /login.

Умови Vercel Hobby обмежують комерційне використання; перевірте актуальні тарифи.

Варіант 2: Docker або Coolify

Для Docker клонуйте репозиторій, виконайте npm ci і npm run secrets -- --write, задайте DOMAIN і APP_URL у .env, потім виконайте docker compose up -d --build. Для Coolify використайте compose.coolify.yaml, налаштуйте змінні та спрямуйте домен на web:3000, не на migrate. Налаштуйте резервне копіювання.

Детальна інструкція Coolify

Отримувач і KeepinCRM

У кабінеті додайте отримувача з реквізитами та ключем. У KeepinCRM створіть поле посилання і список отримувачів із точно такими самими ключами. Налаштуйте два вихідні вебхуки: створення посилання з Response $.payment_url та фіксацію оплати з фінансів. Перевірте обидві операції на тестовій угоді та активуйте інтеграцію в кабінеті.

Детальна інструкція вебхуків

Покрокове підключення KeepinCRM

  1. Переконайтеся, що тариф KeepinCRM підтримує тригери. У кабінеті IBAN Link додайте отримувача, збережіть реквізити та налаштування підключення, залишивши інтеграцію вимкненою.
  2. У налаштуваннях додаткових полів угод створіть текстове поле для посилання та список отримувачів. Значення списку мають точно збігатися з ключами отримувачів у кабінеті, включно з регістром і пробілами.
  3. Створіть вихідний webhook для угод: POST на /api/webhooks/keepincrm/issue, Content-Type application/json, заголовок Authorization із Bearer та значенням WEBHOOK_ISSUE_SECRET. Умова — перехід на обраний етап оплати. Використайте JSON-шаблон із кабінету; вкажіть системну назву поля отримувача з префіксом custom_fields.. У Response зіставте поле посилання з $.payment_url.
  4. Створіть другий webhook для таблиці «Фінанси»: POST на /api/webhooks/keepincrm/payment, той самий Content-Type і окремий Bearer-секрет WEBHOOK_PAYMENT_SECRET. Умова — created_at, Response залиште порожнім; використайте JSON-шаблон із кабінету. Передається накопичена сума оплат угоди, а не сума одного платежу.
  5. В одній тестовій угоді оберіть отримувача та переведіть її на етап оплати. Переконайтеся, що в угоду записано тестову адресу /integration-check. Створіть у тій самій угоді проведений вхідний платіж у UAH і перевірте обидва тестові записи в розділі «Події».
  6. У розділі підключення підтвердіть перевірку й увімкніть інтеграцію, позначивши обидва прапорці одночасно, потім збережіть налаштування. Запланований платіж (planned: true) не закриває посилання; пізніша зміна його статусу не запускає webhook створення повторно.