# Make

> Оплати в будь-який сценарій Make: миттєві тригери на сплачені рахунки, повернення, підписки й клієнтів; модулі, що створюють рахунки й платіжні посилання та знаходять їх.

Застосунок Perly Pay приносить ваші оплати в Make. Сплачений рахунок може заповнити таблицю, оновити CRM чи дати роль у Discord; форма може створити рахунок і надіслати сторінку оплати. Нічого не треба розміщувати, коду немає.

> **Примітка:** Тестовий і живий ключ — це два підключення. Сценарій на тестовому підключенні бачить лише тестові оплати.

## Підключення

1. **Візьміть ключ** — У Perly Pay: Dashboard → Developers → API keys. `sk_test_…` для [тестового режиму](https://pay.perly.io/docs/test-mode.md), `sk_live_…` для справжніх грошей.
2. **Додайте Perly Pay у сценарій** — Застосунок уже на шляху до списку застосунків Make. Доки його там немає, [напишіть нам](https://pay.perly.io/uk/contact) по посилання-запрошення; відкрийте його раз, далі знайдіть **Perly Pay**, коли додаєте модуль.
3. **Підключіть** — **Add** підключення і вставте ключ. Назвіть його так, щоб відрізняти тестове від живого.

## Миттєві тригери

| Модуль | Коли | Подія |
| --- | --- | --- |
| Watch Paid Invoices | Сплачено повністю, відправника перевірено. Час дати доступ чи відправити товар. | `invoice.fulfilled` |
| Watch Underpaid Payments | Покупець надіслав менше, ніж просить рахунок. | `invoice.underpaid` |
| Watch Opened Refunds | Ви відкрили [повернення](https://pay.perly.io/docs/refunds.md). | `refund.requested` |
| Watch Confirmed Refunds | Надіслане вами повернення підтверджено в мережі. | `refund.confirmed` |
| Watch Started Subscriptions | Почалася [підписка](https://pay.perly.io/docs/subscriptions.md). | `subscription.created` |
| Watch Renewed Subscriptions | Підписник сплатив наступний період. | `subscription.renewed` |
| Watch Ended Subscriptions | Підписка скінчилася. Час забрати доступ. | `subscription.ended` |
| Watch New Customers | Новий покупець. | `customer.created` |

Коли ви додаєте вебхук тригера в Make, у Dashboard → Developers → Webhooks з'являється вебхук на кшталт **Make: Paid Invoices**; коли видаляєте його в Make — зникає. Перш ніж сценарій запуститься, Make перечитує кожну доставку з Perly Pay вашим ключем, тож запит не від Perly Pay нічого не запускає. Кожен вебхук — один із 16, що їх може мати режим.

Кожен тригер віддає подію й об'єкт, про який вона, — рахунок, повернення, підписку чи клієнта — так, як їх має [API](https://pay.perly.io/docs/api.md). Суми у валюті — у центах (`total` 4900 — це 49.00): поділіть на 100 у зіставленні. Суми в монетах — у найменших одиницях монети, поруч її `decimals`.

## Модулі

| Модуль | Що дати | Що отримаєте |
| --- | --- | --- |
| Create an Invoice | Суму (як 49.00), опис; за бажанням валюту, пошту клієнта, адресу повернення, метадані | Рахунок зі сторінкою оплати (**Payment page URL**) для покупця |
| Create a Payment Link | Ціну або назву й суму нового товару | Сторінку, що його продає, — поширюйте де завгодно |
| Get an Invoice | Ідентифікатор рахунку | Його стан, що надійшло, сторінку оплати |
| Search Customers | Пошту, або нічого — для всіх | Клієнтів, найновіші першими |

## Рецепти

### Оплата → рядок у Google Sheets

1. **Тригер** — Perly Pay → **Watch Paid Invoices**. Додайте вебхук; запустіть сценарій раз і сплатіть тестовий рахунок, щоб Make дізнався поля.
2. **Дія** — Google Sheets → **Add a Row**, у таблиці зі стовпцями на кшталт Дата, Пошта, Сума, Монета.
3. **Зіставте** — Дата → Invoice: Paid at, Пошта → Customer email, Сума → `Total (cents) / 100`, Монета → Payment: Coin. Увімкніть.

### Оплата → роль у Discord

Discord має знати, хто заплатив. Покладіть Discord-ідентифікатор покупця в рахунок, коли створюєте його, і прочитайте назад, коли рахунок сплачено.

1. **Сценарій 1: рахунок** — Тригер: ваша форма реєстрації з поштою й Discord-ідентифікатором. Perly Pay → **Create an Invoice**, ключ метаданих `discord_user_id`, значення — відповідь із форми. Далі надішліть покупцеві **Payment page URL**.
2. **Сценарій 2: роль** — Perly Pay → **Watch Paid Invoices**. Discord → **Add a Role to a Member** (або **Make an API Call** до Discord): ваш сервер, роль, а учасник = Invoice: Metadata → `discord_user_id`.
3. **Заберіть роль** — Для підписки **Watch Ended Subscriptions** так само знімає роль.

## Перевірка

На тестовому підключенні створіть рахунок (модулем або в дашборді) і сплатіть тестовими монетами чи через API за ідентифікатором рахунку:

```bash
curl -X POST https://pay.perly.io/api/v1/invoices/inv_…/simulate \
  -H "Authorization: Bearer $PERLY_PAY_SECRET_KEY" -H "Content-Type: application/json" -d '{}'
```

За кілька секунд сценарій запуститься. Його History показує кожен запуск і що надійшло.

## Справжні оплати

- Увімкніть живий режим у Perly Pay і підключіть публічні ключі гаманця.
- Додайте підключення з ключем `sk_live_…`. У кожному сценарії додайте на ньому новий вебхук для тригера й переведіть на нього інші модулі Perly Pay.
- Сплатіть один невеликий справжній рахунок і подивіться, як він прийде.
