# WayForPay + Krokul CRM

Так. Krokul CRM інтегрується з WayForPay через API і вебхуки Krokul. Рахунок угоди стає рахунком WayForPay з посиланням invoiceUrl. Повідомлення WayForPay на serviceUrl Krokul приймає сам, перевіряє підпис, проводить оплату фактом і відповідає підписаним accept.

**Статус:** Через API і вебхуки.

## Що отримує команда

### Рахунок WayForPay з документа угоди

Менеджер відкриває рахунок у Krokul і натискає «Посилання на оплату». Krokul викликає WayForPay з transactionType CREATE_INVOICE і передає orderReference, суму, валюту, позиції документа як productName, productPrice і productCount, email контакту й serviceUrl. Посилання invoiceUrl з’являється в блоці «Оплати» угоди.

### Повідомлення на serviceUrl проводить оплату

Після оплати WayForPay надсилає на serviceUrl JSON із transactionStatus, orderReference, amount і merchantSignature. Krokul перевіряє підпис HMAC_MD5 секретним ключем мерчанта і для статусу Approved закриває планову оплату фактом. Слідом іде подія `payment.received`, а повне покриття рахунку дає `invoice.paid`.

### Відповідь accept зупиняє повтори

На кожне повідомлення Krokul повертає WayForPay JSON з orderReference, status accept, time і підписом. Якщо WayForPay усе ж надіслав повідомлення вдруге, Krokul знаходить orderReference серед уже проведених оплат і другого факту не створює.

### Відмова видна менеджеру

Повідомлення зі статусом Declined лишає план відкритим, а в стрічці угоди з’являється запис про невдалу спробу. Менеджер знає, що клієнт пробував платити, і може надіслати посилання ще раз.

### Звірка за CHECK_STATUS

Раз на добу Krokul проходить відкриті планові оплати з orderReference і запитує CHECK_STATUS. Якщо оплата пройшла, а повідомлення не дійшло, Krokul проводить її за фактичним станом.

## Що передається між системами

| WayForPay | Krokul | Напрям | Коли |
|---|---|---|---|
| CREATE_INVOICE: orderReference, amount, currency, productName, productPrice, productCount, clientEmail, serviceUrl | Рахунок угоди й планова оплата | Krokul → WayForPay | Менеджер створює посилання на оплату |
| invoiceUrl | Посилання в блоці «Оплати» | WayForPay → Krokul | У відповідь на CREATE_INVOICE |
| orderReference | Зовнішній ключ оплати | WayForPay ↔ Krokul | Під час створення рахунку |
| Повідомлення на serviceUrl, transactionStatus Approved | Оплата-факт, подія `payment.received` | WayForPay → Krokul | Клієнт оплатив |
| Відповідь accept з підписом | Підтвердження прийому повідомлення | Krokul → WayForPay | На кожне повідомлення |
| transactionStatus Declined | Запис про невдалу спробу в стрічці | WayForPay → Krokul | Оплата не пройшла |
| CHECK_STATUS | Відкриті планові оплати | Krokul → WayForPay | Раз на добу |

## Як підключити сьогодні

### Власний потік через API і вебхуки Krokul

1. У кабінеті WayForPay візьміть merchantAccount, merchantDomainName і секретний ключ мерчанта.
2. У Krokul створіть ключ API зі scope на угоди, документи й оплати та підпишіть вебхук на `document.created`. Кожна доставка має заголовок `x-crm-signature`, і ваш обробник звіряє його зі своїм секретом.
3. На подію надішліть у WayForPay запит CREATE_INVOICE з позиціями документа і власним serviceUrl, а orderReference закріпіть за документом через `externalRef/api-upsert`.
4. Коли на serviceUrl приходить transactionStatus Approved, перевірте merchantSignature, поверніть підписаний accept і проведіть оплату через `payment/api-create` з `cardUuid` угоди.

### Для інтеграторів

Рахунок WayForPay створюється й через публічний API Krokul. Для цього викликають `payment/api-link` з угодою й сумою або з планом оплати і вказують `wayforpay` у полі `provider`, коли валюту приймають кілька провайдерів. orderReference зберігається зовнішнім ключем `externalRef`. Подію `payment.received` ваша система отримує підписаним вебхуком Krokul із журналом доставок і повторною відправкою.

[Документація API](https://app.krokul.com/api/v1/docs)

## Питання й відповіді

### Чи потрібен окремий сервер для serviceUrl WayForPay?

Ні. serviceUrl веде прямо в Krokul, який сам перевіряє підпис повідомлення й повертає WayForPay підписану відповідь accept.

### Чи надсилає WayForPay клієнту лист із рахунком?

Так, якщо в CREATE_INVOICE передано email клієнта. Krokul бере його з контакту угоди, а без email посилання invoiceUrl однаково з’являється в угоді.

### Що буде, якщо повідомлення WayForPay не дійшло до Krokul?

WayForPay повторює його, доки не отримає accept. Крім того, Krokul раз на добу звіряє відкриті оплати запитом CHECK_STATUS.

### Як Krokul показує позиції рахунку у WayForPay?

Кожен рядок документа Krokul передає як productName, productPrice і productCount, тож клієнт на сторінці оплати бачить, за що платить.

## Обмеження

WayForPay повторює повідомлення на serviceUrl, доки не отримає правильну відповідь, і робить це до чотирьох днів. Лист клієнту з рахунком WayForPay надсилає лише тоді, коли в рахунку є його email.

## Пов’язані сервіси

- [LiqPay](https://krokul.com/uk/integrations/liqpay/index.md)
- [monobank](https://krokul.com/uk/integrations/monobank/index.md)
- [NovaPay](https://krokul.com/uk/integrations/novapay/index.md)
- [ПриватБанк](https://krokul.com/uk/integrations/privatbank/index.md)
- [Checkbox](https://krokul.com/uk/integrations/checkbox/index.md)

[Платежі й банки (Україна)](https://krokul.com/uk/integrations/category/payments-ua/index.md)

WayForPay є торговою маркою її власника. Krokul не афілійований із WayForPay.

Оновлено: 2026-10-12

---

Застосунок: https://app.krokul.com/ · API: https://app.krokul.com/api/v1/docs
