Платежі для travel-софту
інтеграція Paddle API: коли merchant of record підходить туристичному бізнесу
Paddle продає програмне забезпечення, SaaS і цифрові продукти від свого імені, виступаючи як merchant of record. Тому він добре підходить travel-tech компанії, яка виставляє рахунки за власні підписки, і зазвичай не підходить для прийому оплати за авіаквитки, готелі та тури. На цій сторінці пояснено різницю, показано, як працює інтеграція з Paddle і як підключити її до PHPTRAVELS, якщо ваш випадок підходить.
- Merchant of record, а не шлюз
- Створений для софту та підписок
- Вебхуки з підписом
- Підключається як індивідуальна інтеграція
Дві різні моделі
Merchant of record і платіжний шлюз
Платіжний шлюз проводить гроші за вас: продавець — ви, платіжна компанія обробляє картку, а податки, рахунки, повернення коштів і спори залишаються вашою відповідальністю. Merchant of record іде далі й стає продавцем в очах покупця та податкових органів. Коли хтось купує через Paddle, продає йому саме Paddle: він збирає й сплачує податок з продажів або ПДВ, виставляє рахунок, опрацьовує чарджбеки й потім виплачує вам вашу частку.
Така модель позбавляє софтверну компанію великого обсягу податкової роботи та комплаєнсу, але також означає, що Paddle сам вирішує, що він готовий перепродавати. Його платформа створена для софту, SaaS і цифрових продуктів, а не для туристичних послуг, які надають авіакомпанії, готелі та туроператори. Загальну механіку карткових платежів описано на сторінці API платіжного шлюзу.

| Питання | Paddle (merchant of record) | Платіжний шлюз |
|---|---|---|
| Хто продавець? | Продавець — Paddle. Чек покупця й виписка за карткою надходять з боку Paddle. | Продавець — ви. Шлюз лише проводить платіж через ваш мерчант-акаунт. |
| Хто відповідає за податок з продажів і ПДВ? | Paddle розраховує, збирає та сплачує податок з продажів і ПДВ у тих регіонах, де продає. | Ви самі: через власні податкові реєстрації, бухгалтера та виставлення рахунків. |
| Хто виставляє рахунок? | Рахунок або квитанцію покупцеві виставляє Paddle. | Ваша власна система, наприклад рахунок за бронювання в адмінці. |
| Хто займається чарджбеками? | Спори й чарджбеки веде Paddle як продавець. | Ви відповідаєте на спори з доказами через панель або API шлюзу. |
| Що можна продавати? | ПЗ, SaaS, підписки та цифрові продукти в межах правил допустимого використання Paddle. | Товари й послуги, схвалені шлюзом, зокрема туристичні бронювання в багатьох турмерчантів. |
| Як ви отримуєте гроші? | Paddle виплачує вашу виручку за вирахуванням комісії за своїм графіком виплат. | Списані платежі зараховуються на ваш мерчант-акаунт або банківський рахунок за вирахуванням комісії шлюзу. |
Комісії, країни, що підтримуються, і точний перелік дозволених продуктів визначає Paddle, і з часом вони змінюються. Перш ніж будувати плани, ознайомтеся з власними умовами Paddle.
Помічник у виборі
Чи підходить Paddle для того, що ви продаєте?
Виходьте з того, за що платить клієнт. Оберіть сценарій, найближчий до вашого бізнесу.
01
Мандрівники оплачують авіаквитки, готелі та тури
Клієнт купує подорож, яку виконує авіакомпанія, готель або туроператор. Для таких платежів часто потрібна спершу авторизація, а списання пізніше, часткові повернення після штрафів за скасування та оформлення замовлення в кількох валютах.
Наша думка
Використовуйте платіжний шлюз
Перш ніж застосовувати Paddle для туристичних бронювань, ознайомтеся з його правилами допустимого використання. Більшість турбізнесів приймають оплату бронювань через платіжний шлюз, наприклад Stripe, PayPal, Adyen або регіональний шлюз.
02
Ви продаєте власне travel-ПЗ або SaaS
Ви постачальник туристичних технологій, і агенції платять вам щомісячну або щорічну підписку за інструмент бронювання, доступ до API, плагін або white-label портал.
Наша думка
Paddle може підійти
Саме для таких продажів і створений merchant of record: Paddle виставляє рахунок за підпискою, бере на себе податки в кожній країні та виплачує вам гроші, тож реєструватися за ПДВ скрізь, де живуть ваші клієнти, не потрібно.
03
Ви продаєте і бронювання, і софт
Ваша агенція веде сайт бронювання для мандрівників і водночас ліцензує платформу або інструменти іншим агенціям.
Наша думка
Використовуйте обидва, але окремо
Платежі за бронювання приймайте через готовий шлюз у процесі бронювання, а підписки на софт виставляйте через Paddle. Два потоки, два набори записів, і для кожного свій правильний податковий режим.
Як це працює
Як працює інтеграція з Paddle від початку до кінця
Paddle Billing працює з продуктами та цінами, які ви створюєте в Paddle, з чекаутом, який відкриває Paddle.js, і з вебхуками, що повідомляють вашому серверу про події.
01
Продукти та ціни
Кожен тариф ви створюєте в Paddle один раз, наприклад місячну та річну ціну, а ідентифікатори цін зберігаєте у своїй системі.
pri_…02
Чекаут Paddle.js
Ваша сторінка завантажує Paddle.js і відкриває чекаут як оверлей або вбудований фрейм, передаючи ідентифікатор ціни та ваше посилання на клієнта.
Paddle.Checkout.open()03
Транзакцію завершено
Покупець платить, Paddle списує кошти з картки або гаманця, застосовує податок і створює транзакцію, а якщо ціна повторювана, то й підписку.
txn_…04
Вебхук з підписом
Paddle надсилає на ваш ендпоінт подію, наприклад transaction.completed, підписану в заголовку Paddle-Signature.
transaction.completed05
Ваша система діє
Ваш сервер перевіряє підпис, а потім активує акаунт, подовжує тариф або фіксує платіж.
200 OK
Зберігайте API-ключ лише на своєму сервері. Браузер використовує окремий клієнтський токен, а пісочниця й бойове середовище мають власні ключі, ціни та секрети вебхуків.
Безпека вебхуків
Перевірка заголовка Paddle-Signature
Вебхук може підробити будь-хто, хто знає URL вашого ендпоінта. Саме перевірка підпису кожної події робить безпечною активацію акаунта за вебхуком.
1$raw = file_get_contents("php://input"); 2$header = $_SERVER["HTTP_PADDLE_SIGNATURE"] ?? ""; // ts=…;h1=… 3parse_str(str_replace(";", "&", $header), $sig); 4 5$expected = hash_hmac("sha256", $sig["ts"] . ":" . $raw, $endpointSecret); 6if (!hash_equals($expected, $sig["h1"] ?? "")) { 7 http_response_code(400); exit; // not from Paddle 8} 9if (time() - (int) $sig["ts"] > $tolerance) exit; // too old1011$event = json_decode($raw, true);12if (alreadyHandled($event["event_id"])) exit; // repeat delivery13if ($event["event_type"] === "transaction.completed") {14 activatePlan($event["data"]["custom_data"]["account_id"]);15}16http_response_code(200);
Пояснювальний приклад на чистому PHP. Точний формат дивіться в актуальній документації Paddle або в його офіційному SDK.
- 01
Беріть сире тіло запиту
Підпис обчислюється за тілом запиту в тому вигляді, в якому його отримано, тому читайте його до того, як розбір JSON щось змінить.
- 02
Мітка часу та хеш
У заголовку передаються мітка часу й хеш HMAC-SHA256, створений секретним ключем ендпоінта. Перерахуйте його та порівняйте за сталий час.
- 03
Відхиляйте старі та повторні події
Відхиляйте події із занадто старою міткою часу та зберігайте ідентифікатор кожної події, щоб повторна доставка не оброблялася двічі.
- 04
Спершу пісочниця
Розробляйте й тестуйте в пісочниці Paddle з тестовими картками, а потім перемкніть ключі, ціни та секрет на бойові.
PHPTRAVELS і Paddle
Підключення Paddle до PHPTRAVELS
Спершу чесна відповідь, потім варіанти.
Paddle не входить до готових конекторів
Paddle немає у списку платіжних шлюзів PHPTRAVELS, і опублікованого посібника з налаштування теж немає. Готові шлюзи, показані нижче, створені саме для приймання оплати за бронювання.
Для оплати бронювань: готовий шлюз
Увімкніть в адмінці готовий шлюз, наприклад Платежі через Stripe або Платежі PayPal, зі своїм мерчант-акаунтом. Чекаут, повернення коштів і номер бронювання вже вбудовані в процес бронювання, як описано на сторінці Інтеграція платіжних шлюзів.
Для продажу софту: Paddle як індивідуальна інтеграція
Якщо ваш випадок відповідає правилам Paddle, наші розробники підключать його як Індивідуальна інтеграція API: чекаут Paddle.js на вашій сторінці, ендпоінт для вебхуків із перевіркою та платежі, прив'язані до ваших клієнтів. Вартість узгоджується до початку робіт.
Або розробіть самі на вихідному коді
PHPTRAVELS розгортається на вашому сервері та постачається з повним вихідним кодом, тож ваші розробники можуть додати Paddle для підписок поруч із рушієм бронювання. Що входить до кожної ліцензії, вказано на сторінці Ціни.
Готові для оплати бронювань
Платіжні шлюзи, уже підключені до PHPTRAVELS
Для платежів мандрівників і агентів ці шлюзи готові до роботи: ви відкриваєте акаунт у провайдера, вводите ключі в адмінці, тестуєте й запускаєтеся. Список актуальний, з нашого каталогу інтеграцій.
StripeПосібник з інтеграціїPayPalПосібник з інтеграції
xMoney
Fawaterk
Cashfree
Paystack
Flutterwave
Adyen
MyFatoorah
SSLcommerz
Razorpay- Усі інтеграції
Субагенти також можуть платити з передоплаченого балансу або в межах кредитного ліміту через B2B-гаманець агента, і для цього шлюз не потрібен узагалі.
Не як готовий конектор. Paddle немає у списку платіжних шлюзів PHPTRAVELS. Якщо ваш випадок відповідає правилам Paddle, наприклад продаж підписок на власний софт, його можна додати як індивідуальну інтеграцію або реалізувати силами ваших розробників на вихідному коді, що входить до поставки.
Paddle — це merchant of record для софту, SaaS і цифрових продуктів, тому для авіаквитків, готелів і турів він, як правило, не підходить. Перш ніж застосовувати його для туристичних бронювань, ознайомтеся з правилами допустимого використання Paddle: більшість турбізнесів приймають оплату бронювань через платіжний шлюз, наприклад Stripe, PayPal, Adyen або регіональний шлюз.
Компанія, яка юридично продає товар покупцеві. Вона відповідає за збір і сплату податку з продажів або ПДВ, виставлення рахунків, повернення коштів і чарджбеки та вказується у виписці клієнта. З Paddle цю роль бере на себе Paddle, а потім виплачує гроші вам.
Шлюз обробляє платежі за вас, а продавцем залишаєтеся ви разом із податками та спорами. Paddle сам стає продавцем, що знімає цю роботу під час продажу софту, але обмежує коло того, що можна продавати через нього.
Коли ви продаєте власний софт, а не подорожі: інструмент бронювання, API, плагін або white-label портал, за які агенції платять за підпискою. Тоді Paddle виставить їм рахунок і візьме на себе податки в кожній країні.
Paddle надсилає такі події, як завершена транзакція або подовжена підписка, на зареєстрований вами URL. Кожен запит містить заголовок Paddle-Signature з міткою часу й хешем, і ваш сервер перевіряє його секретним ключем ендпоінта, перш ніж діяти.
Так. У Paddle є окрема пісочниця зі своїм акаунтом, API-ключами, цінами й тестовими картками. Розробляйте та тестуйте там, а потім перенесіть конфігурацію в бойове середовище.
Так, як два окремі потоки: рушій бронювання приймає платежі мандрівників через готовий шлюз, а Paddle виставляє рахунки за підписки на ваш софт. Ведіть їхній облік окремо, щоб до кожного продажу застосовувався правильний податковий режим.
Дізнайтеся більше
Ще про платформу
- Інтеграція платіжних шлюзівОплата, 3D Secure, повернення та вебхуки
- API платіжного шлюзуЯк працюють карткові платежі, 3-D Secure, списання й повернення коштів через API
- Індивідуальна інтеграція APIПідключіть будь-який API постачальника чи партнера до PHPTRAVELS
- Платежі через StripeОплата карткою та гаманцем, повернення і виплати
- Платежі PayPalОплата PayPal за авіаквитки, готелі й тури
- Ціни
