# Zapier

> Оплати в Google Sheets, Notion, CRM чи Discord без коду: тригери на сплачені рахунки, повернення, підписки й клієнтів; дії, що створюють рахунки й платіжні посилання.

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

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

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

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

## Тригери

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

Коли ви вмикаєте Zap, у Dashboard → Developers → Webhooks з'являється вебхук на кшталт **Zapier: Invoice Paid**; коли вимикаєте — зникає. Не змінюйте такі вебхуки: Zapier зберігає їхній секрет і ним перевіряє [підпис](https://pay.perly.io/docs/webhooks.md) кожної доставки. Тригер кожного Zap займає один із 16 вебхуків, що їх може мати режим.

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

## Дії

| Дія | Що дати | Що отримаєте |
| --- | --- | --- |
| Create Invoice | Суму (як 49.00), опис; за бажанням валюту, пошту клієнта, адресу повернення, метадані | Рахунок зі сторінкою оплати (**Payment Page URL**) для покупця |
| Create Payment Link | Ціну або назву й суму нового товару | Сторінку, що його продає, — поширюйте де завгодно |
| Find Customer | Пошту | Клієнта або нічого |

## Рецепти

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

1. **Тригер** — Perly Pay → **Invoice Paid**. Перевірте: Zapier покаже останні сплачені рахунки (у тестовому режимі спершу сплатіть один).
2. **Дія** — Google Sheets → **Create Spreadsheet Row**, у таблиці зі стовпцями на кшталт Дата, Пошта, Що купили, Сума, Монета.
3. **Зіставте** — Дата → Paid At, Пошта → Customer Email, Що купили → Items, Сума → Total, Монета → Coin. Увімкніть.

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

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

1. **Zap 1: рахунок** — Тригер: ваша форма реєстрації (Typeform, Google Forms, Tally) з поштою й Discord-ідентифікатором. Дія: Perly Pay → **Create Invoice**, метадані `discord_user_id` = відповідь із форми. Дія: надішліть покупцеві **Payment Page URL**.
2. **Zap 2: роль** — Тригер: Perly Pay → **Invoice Paid**. Дія: Discord → **Add Role to User**: ваш сервер, роль, а User = метадані рахунку `discord_user_id`.
3. **Заберіть роль** — Для підписки третій Zap на **Subscription Ended** так само знімає роль.

## Перевірка

На тестовому підключенні створіть рахунок (дією або в дашборді) і сплатіть тестовими монетами чи через 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 '{}'
```

За кілька секунд спрацює **Invoice Paid**. Zap History показує кожен запуск і що він надіслав.

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

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