Для подключения к платежной системе paykeeper нужны следующие данные:

  1. Логин и пароль для входа в учетную запись (можете создать отдельного пользователя, но не забудьте выдать ему необходимые права),
  2. ссылка на домен, через который выполняется вход в учетную запись (имеет вид https://demo.paykeeper.ru, вместо demo будет что-то свое)
  3. ключ для верификации платежей.

Перейдите в раздел "Платежные системы" в проекте, найдите платежную систему PayKeeper и кликните на "Подключить":

Введите необходимые данные в настройках подключения:

Генерация ключа для верификации платежей

Ключ для верификации платежей генерируется при настройке вебхука. Для этого перейдите в личный кабинет Paykeeper.

После входа в личный кабинет перейдите в настройки. Выберите пункт 'Получение информации о платежах'.

В пункте 'Способ получения уведомления о платежах' выберите POST-оповещения.

Далее укажите url для вебхуков: https://chatter.salebot.pro/paykeeper_callback/result

После этого нажмите кнопку "Сгенерировать". Появится секретное слово, что необходимо для получения вебхуков.

Генерация ссылки платежа

После подключения платежной системы можете сгенерировать ссылку на платеж, для этого есть 2 способа:

  1. через объявление переменной payment_sum.

В переменной payment_sum указываем сумму платежа, если нужно использовать почту клиента, то до объявления payment_sum нужно объявить переменную paykeeper_email.

Аналогично нужно действовать с остальными параметрами:

Параметры Значение
paykeeper_service_name эта переменная объявляется для передачи названия товара
paykeeper_client_name эта переменная объявляется для передачи фио клиента
paykeeper_phone эта переменная объявляется для передачи телефона клиента
paykeeper_email эта переменная объявляется для передачи почты клиента
paykeeper_tax ставка НДС для чека, например vat22. Если не объявлена, берётся ставка из настроек подключения. Коды ставок — в разделе «Передача НДС в чеке»
paykeeper_item_type признак предмета расчёта, например service (услуга). Если не объявлена, Paykeeper подставит значение по умолчанию
paykeeper_payment_type признак способа расчёта, например full (полный расчёт). Если не объявлена, Paykeeper подставит значение по умолчанию
products_for_receipt список позиций чека, если в чеке должно быть несколько товаров. Формат — в разделе «Передача НДС в чеке»
  1. С помощью функции paykeeper_generate_payment_url, которая имеет следующие параметры:
Параметры Значение
amount (обязательный параметр) сумма платежа
service_name (необязательная параметр) название товара,
client_name (необязательная параметр) фио клиента,
email (необязательная параметр) mail клиента,
phone (необязательная параметр) телефон клиента.

В первом случае сгенерируется ссылка с сохранением в переменную paykeeper_pay_url.

Во втором - ссылку возвращает функция.

Важно! Для второго способа не забудьте результат выполнения функции поместить в переменную.

Передача НДС в чеке

Ставка НДС передаётся в Paykeeper вместе с позициями чека. Её можно задать двумя способами:

  1. в настройках подключения, поле «Ставка НДС» — действует для всех платежей;
  2. переменной paykeeper_tax перед объявлением payment_sum — действует для конкретного платежа и важнее настройки.

Если ставка не задана ни там, ни там, чек не передаётся, и Paykeeper использует ставку по умолчанию из своего личного кабинета.

Коды ставок НДС:

Код Ставка
none без НДС
vat0 НДС 0%
vat5 НДС 5%
vat7 НДС 7%
vat10 НДС 10%
vat20 НДС 20%
vat22 НДС 22%
vat105 НДС по расчётной ставке 5/105
vat107 НДС по расчётной ставке 7/107
vat110 НДС по расчётной ставке 10/110
vat120 НДС по расчётной ставке 20/120
vat122 НДС по расчётной ставке 22/122

Значения для paykeeper_item_type: goods (товар), service (услуга), work (работа), payment (аванс, задаток, предоплата), ip (права на результаты интеллектуальной деятельности), agent (агентское вознаграждение).

Значения для paykeeper_payment_type: prepay (предоплата 100%), part_prepay (частичная предоплата), advance (аванс), full (полный расчёт).

Чек из нескольких позиций

По умолчанию в чек уходит одна позиция на всю сумму платежа с названием из paykeeper_service_name. Если позиций несколько, объявите переменную products_for_receipt со списком позиций до объявления payment_sum:

products_for_receipt = '[{"name": "Курс", "price": 1000, "quantity": 1, "tax": "vat22"}, {"name": "Консультация", "price": 500, "quantity": 2}]'

payment_sum = 2000

Поле позиции Значение
name название позиции
price цена за единицу
quantity количество, по умолчанию 1
sum (необязательное поле) сумма позиции, по умолчанию цена × количество
tax (необязательное поле) ставка НДС позиции. Если не указана, берётся paykeeper_tax или ставка из настроек подключения

Важно! Сумма всех позиций должна совпадать с payment_sum, а у каждой позиции должна быть ставка НДС — своя, из paykeeper_tax или из настроек подключения. Иначе ссылка не создастся, и в переменную paykeeper_pay_url запишется текст ошибки.

После успешной оплаты будет возвращен callback вида xxxxxx_success 101.00, где:

  1. xxxxxx - это первые 6 символов секретного ключа,
  2. а вместо 101.00 будет сумма платежа.

Чтобы настроить реакцию на колбек (успешный платеж), укажите колбек в условии:

Можно указать в условии блока "Стартовое условие":

Также колбек можно указать в условии блока "Не состояние с условием":

Если вы не хотите выбивать клиента из основной схемы чат-бота, воспользуйтесь блоком "Не состояние с условием" — в этот блок нельзя перейти, поэтому клиента после оплаты не выбьет из основной воронки и при этом он получит уведомление об успешной оплате.

А если вам нужно продолжить воронку с реакции на успешную оплату, то используйте блок "Стартовое условие", тогда клиент из блока оплаты перейдет в блок "Стартовое условие", с которого вы можете продолжить воронку.

Подробнее о блоках с условием рассказали в одноименной статье.