Salebot.pro
Search
K

Тинькофф

Прием платежей через интернет-эквайринг Тинькофф банка
Мы рады сообщить Вам о преимуществах подключения к Тинькофф по партнерской ссылке от Salebot-эквайринг :
  1. 1.
    Бесплатное подключение к интернет-эквайрингу Тинькофф.
  2. 2.
    Тинькофф предоставляет услуги эквайринга до 2,5%, что позволит Вам существенно сократить расходы на обработку платежей и полностью сосредоточиться на развитии и усовершенствовании Вашего проекта.
Обратите внимание, что предложение действует только по партнерской ссылке:

Как подключить

Вам необходимо создать новый терминал. Нельзя использовать тот, который у вас подключен еще куда-то.
Для подключения интернет-эквайринга Тинькофф в первую очередь нужно подать заявку и получить идентификатор терминала и пароль. Это можно сделать перейдя по ссылке.
После рассмотрения вашей заявки, вам выдадут тестовый терминал и пароль к нему.
Переходим в проект на salebot.pro и в разделе Платежные системы - Тинькофф прописываем ключи тестового терминала.
Далее вам в личном кабинете Тинькофф нужно пройти тесты на формирование ссылки, чека и оплаты с тестовых карт банка.
Для совершения повторного платежа обязательно необходимо обнулить payment_sum, ранее сформированную ссылку и уже после переназначить переменную payment_sum для получения свежей ссылки. Можно указать предыдущее значение.
Обратите внимание на Тест 3 (отмена платежа), вам нужен будет идентификатор платежа PaymentId, найти его можно после совершения платеж в переменной tinkoff_payment_id

Как сформировать ссылку на оплату

Сформировать ссылку на оплату в блоке можно ОДНИМ ИЗ из доступных способов:

Кнопка с функцией Оплата

Ссылку на оплату можно создавать в кнопке с функцией "Оплата". О том как создавать такую кнопку рассказано в этой статье:
Кнопки
Salebot.pro
Статья про кнопку с функцией Оплата
Рассмотрим все возможные параметры данной кнопки. О том как создавать кнопку с функцией Оплата рассказано в этой статье:

Обязательные параметры кнопки Оплата для Тинькофф

Для формирования ссылки на оплату в настройках кнопки необходимо указать обязательные параметры: Сумма и Описание товара.
Форма настройки кнопки Оплата для Тинькофф
поле Текст. Данный текст будет указан на кнопке с ссылкой на оплату в сообщении
поле Функция. Для создания кнопки для выдачи ссылки на оплату выбираем функцию Оплата
поле Платежная система. В списке отображаются подключенные к проекту платежные системы. Выбираем Tinkoff
Если к проекту не подключены платежные системы данный тип кнопок будет не доступен
поле Описание товара (обязательное). В данном поле нужно указать название товара. Максимально количество символов для данного поля: 250 Чем точнее указано описание товара, тем лучше. Например: не Телефон, а Смартфон Xiaomi модель
НЕЛЬЗЯ использовать двойные кавычки в описании товара: удалите или замените на одинарные кавычки.
поле Сумма (обязательное). В этом поле указываем стоимость товара.
чекбокс Автоплатеж. Для подключения автоплатежа включите в настройках платежной системы в Сейлбот ползунок и поставьте галочку в данном чек-боксе в настройке кнопки. По умолчанию, отключен. Про настройки для автоплатежей можно почитать в этой статье:
Тинькофф
Salebot.pro
Подключение автоплатежей Тинькофф
меню Данные для формирования чека. При клике по данной кнопке откроются дополнительные обязательные и необязательные поля для формирования чека
Многие платежные системы поддерживают облачные онлайн-кассы, они необходимы по 54-ФЗ. Прочитайте особенности формирования чеков на сайте выбранной платежной системы, чтобы не попасть в неловкую ситуацию с налоговой инспекцией.
  • Наименование товара
  • Цена за единицу товара в копейках
  • Количество
  • Произведение количества на цену за единицу товара
  • Ставка НДС
  • Способ расчёта
  • Предмет расчета
  • Система налогообложения
  • Переменная с email покупателя
  • Переменная с номером телефона покупателя
меню Дополнительная информация. При клике по данной кнопке откроются дополнительные поля для формирования ссылки
  • Язык страницы оплаты
чекбокс С уведомление о клике. Для отслеживания перехода по ссылке для оплаты можно поставить галочку. В таком случае, при клике по кнопке в диалог с клиентом в Сейлбот придет уведомление о том, что был совершен переход по ссылке
Уведомление о клике
На данное уведомление можно настраивать дальнейшую логику работы бота.

Дополнительные параметры для формирования чека и ссылки

выпадающее меню "Данные для формирования чека"
меню настроек кнопки Оплата: "Данные для формирования чека"
поле Наименование товара . В данном поле нужно указать название товара. Чем точнее указано название товара, тем лучше. Например: не Телефон, а Смартфон Xiaomi модель ххх
НЕЛЬЗЯ использовать двойные кавычки в Наименовании товара: удалите или замените на одинарные кавычки.
поле Цена за единицу товара в руб. Обратите внимание, в данном поле указывается цена в рублях.
поле Количество. Количество или вес товара. Передать можно целое или дробное число через точку. Пример, 5 или 10.3
поле Произведение количества на цену за единицу товара. В данном поле необходимо указать сумму равную произведению количества на цену за единицу товара. Например, если Цена за единицу товара в руб равна 5000 и количество товаров 1, то Сумма заказа 5000 руб,
поле Ставка НДС. Необходимо указать подходящий код для передачи значения НДС. Например, none если без НДС или vat0 если ставка НДС 0% .
Доступные варианты ставки НДС
Значение
vat120
20/120
vat110
10/110
vat20
20%
vat10
10%
vat0
0%
none
без НДС
поле Способ расчёта. Можно передать одно из значений признака способа расчета:
Значение признака способа расчета
Описание
full_payment
полный расчет
full_prepayment
предоплата 100% - полная предварительная оплата, которая осуществляется клиентом до получения товара/оказания услуги
prepayment
предоплата - частичная предварительная оплата, которая осуществляется клиентом до получения товара/оказания услуги
advance
аванс - предоплата в случаях, когда заранее нельзя определить перечень товаров/работ/услуг
partial_payment
частичный расчет и кредит
credit
передача в кредит
credit_payment
оплата кредит
поле Предмет расчёта. Дополнительно можно передать предмет расчета (если не передать, будет commodity (товар)).
Может принимать следующие значения:
Значения
Описание
commodity
товар
excise
подакцизный товар
job
работа
service
услуга
gambling_bet
ставка азартной игры
gambling_prize
выигрыш азартной игры
lottery
лотерейный билет
lottery_prize
выигрыш лотереи
intellectual_activity
предоставление результатов интеллектуальной деятельности
payment
платеж
agent_commission
агентское вознаграждение
composite
составной предмет расчета
another
иной предмет расчета
поле Система налогообложения. Можно выбрать систему налогообложения, которая будет передана в чеке.
Поле Переменная с email покупателя (необязательный, если передан Номер телефона) В данном поле указывается Email пользователя (клиента). Можно указывать переменную, в которой хранится email пользователя.
Например, #{email}
Поле Переменная с номером телефона покупателя (необязательный, если передан Email). В данном поле можно указать переменную, в которой записан номер телефона покупателя в формате 79000000000 Например, #{phone}
Обязательно должен присутствовать email и/или телефон
выпадающее меню "Дополнительная информация"
поле Язык страницы оплаты. По умолчанию, язык страницы оплаты русский. Можно изменить на английский

Переменные клиента, которые будут созданы автоматически при использовании кнопки с функцией Оплата

Как только пользователь получит блок с кнопкой "Оплата" автоматически будут созданы переменные клиента:
Служебная переменная клиента __payments , которая хранит сумму, идентификатор созданной ссылки, нужна для идентификации хука от платежной системы.
Служебную переменную клиента __payments НЕЛЬЗЯ удалять или изменять!
Переменная клиента error_payment_button создается, если при формировании кнопки возникла ошибка.
В значение переменной error_payment_button запишется либо текст ошибки, либо ответ платежной системы с ошибкой.
Значение переменных становятся актуальными при переходе в следующий блок

Страницы завершения оплаты

После завершения оплаты клиенту по умолчанию будет предложено перейти обратно в чат с ботом. При этом клиент узнаёт о статусе платежа только по сообщению в чате.
Обычно содержание такого сообщения формируется в зависимости от типа колбека, который вы получили от Тинькофф Касса.
Иногда колбек приходит с задержкой, поэтому в таких случаях у вас не получится моментально информировать клиента.
Чтобы избежать подобных ситуаций, отключите функцию перехода в бот в оплатах по ссылкам, сформированным через:
  • переменную payment_sum - перед указанием payment_sum, присвойте переменной apply_redirects значение 0 (ноль);
  • функцию get_tinkoff_payment_url - последним параметром укажите значение 0 (ноль);
При отключенной функции Тинькофф использует свои страницы завершения оплаты с информацией об успешном или неудавшемся платеже клиента.
Обработав колбек, вы можете дополнительно сообщить клиенту о статусе его платежа.

Как обработать результат

Успешный платеж.
в бота АВТОМАТИЧЕСКИ придет КОЛБЭК, который состоит из 10 символов секретного ключа платежной системы, слова _success и через пробел сумма платежа. Для использования в настройках схемы достаточно его скопировать.
Например: ovg58keefc_success 44, где:
ovg58keefc : первые первые 10 символов секретного ключа платежной системы
_success : результат обработки запроса (успешный платеж)
44 : сумма платежа
Колбеки (уведомления) от платежной системы пользователь НЕ ВИДИТ. Они отображаются только во вкладке Клиенты и видны оператору.
Пример использования: Шаг 1. В блоке "с кнопкой Оплата" добавляем кнопки с функцией Оплата.
Шаг 2. В поле Условие соединения от этого блока к блоку "Успешная оплата" указываем колбэк. Аналогично работает, если указать колбэк об успешной оплате в поле Условие блока Первостепенной проверки условия.
Важно: выбор соответствия Полное совпадение. Также можно использовать По наличию ключевых слов, если указать часть колбэке без сумм оплаты
Колбэк об успешной оплате в поле Условие блока.
Платеж с ошибкой
При ошибке проведения оплаты в бота АВТОМАТИЧЕСКИ придет КОЛБЭК, который состоит из 10 символов секретного ключа платежной системы, слова _fail и через пробел сумма платежа
Например, ovg58keefc_fail 44 , где
ovg58keefc : 10 символов секретного ключа платежной системы
_fail : результат обработки запроса - платеж не выполнен или с ошибкой.
44 : сумма платежа
Зависит от платежной системы. Не все платежные системы присылают колбэк об ошибке платежа.
Если сумма указанная в настройках кнопки отличается от суммы, которую клиент оплатил, то АВТОМАТИЧЕСКИ придет КОЛБЭК, который состоит из 10 символов секретного ключа платежной системы, слова _different_amounts и через пробел уникальный ID платежа
Например: ovg58keefc_different_amounts 123456 , где:
ovg58keefc : 10 символов секретного ключа платежной системы
_different_amounts : результат обработки запроса (сумма оплаты отличается от суммы в ссылке)
123456 : уникальный ID платежа

Функция get_tinkoff_payment_url в Калькуляторе

Для формирования ссылки на оплату можно воспользоваться функцией get_tinkoff_payment_url в Калькуляторе блоке.
В поле Калькулятор переменной присвоим значение функции get_tinkoff_payment_url
Название переменной задаете самостоятельно. На скринах примеры названия переменных.
В эту переменную запишется ссылка на оплату. Переменную можно вывести на экран ссылкой в сообщении или разместить в кнопке с текстом, например, "Оплатить".
ПРИМЕР ссылки на оплату: https://securepay.tinkoff.ru/new/xoYnWrb6
Многие платежные системы поддерживают облачные онлайн-кассы, они необходимы по 54-ФЗ. Прочитайте особенности оформления чеков на сайте выбранной платежной системы, чтобы не попасть в неловкую ситуацию с налоговой инспекцией.
Калькулятор
Описание параметров
Пример кода для копирования
Пример 1:
Пример формирования ссылки: переданы только обязательные параметры
Пример 2:
Пример формирования ссылки: переданы все параметры
link = get_tinkoff_payment_url(amount, description, recurrent, products_for_receipt, customer_phone, customer_email, expired, taxation, language, extra_params, apply_redirects)

Параметры функции:

Параметр
Описание параметра
amount
Сумма к оплате. В этом поле указываем стоимость товара в рублях (обязательный параметр)
description
Описание заказа. В этом поле можно использовать только символы английского или русского алфавита, цифры и знаки препинания.
Чтобы пропустить данный параметр передайте вместо него пару одинарных или двойных кавычек или значение None
recurrent
Подключение автоплатежа. Если автоплатеж включен, то передать значение 1, если отключен передайте значение None.
products_for_
receipt
Параметры для формирования чеков. Чтобы пропустить данный параметр передайте вместо него пару одинарных / пару двойных кавычек или значение None
Имеет следующий вид:
[{"name":"ТОВАР1","amount":"1200","vat_code":"5","method":"FullPrepayment","object":"Commodity"}]
Важно! Используйте двойные кавычки для формирования словаря {"ключ": "значение"}
name - Наименование товара
amount - Полная сумма в рублях за все количество данного товара с учетом всех возможных скидок, бонусов и специальных цен.
vat_code - cтавка НДС. Этот параметр устанавливает налоговую ставку в ККТ. Возможные значения данного параметра:
'1' - Без НДС
'2' - НДС по ставке 0%
'3' - НДС по ставке 10%
'4' - НДС чека по ставке 20%
'5' - НДС чека по расчетной ставке 10/110
'6' - НДС чека по расчетной ставке 20/120
method - дополнительный параметр для формирования чека. Признак способа расчёта.
Пример значения параметра: full_payment — полный расчет
Остальные доступные варианты можно найти в документации Тинькофф : https://www.tinkoff.ru/kassa/develop/api/receipt/#Items
object - дополнительный параметр для формирования чека. Предмет расчета может принимать разные значения. Например, commodity — товар
Остальные доступные варианты можно найти в документации Тинькофф : https://www.tinkoff.ru/kassa/develop/api/receipt/#Items
customer_phone
номер телефона покупателя, не обязательно, если передан параметр customer_email
Чтобы пропустить данный параметр, передайте вместо него одинарные или двойные кавычки
customer_email
емейл покупателя, не обязательно, если передан параметр customer_phone
Чтобы пропустить данный параметр, передайте вместо него одинарные или двойные кавычки.
expired
время жизни ссылки на оплату, в формате дд.мм.гггг (например 25.01.2021). Также можно в поле "Калькулятор" указать: expired = current_date + 2 (ссылка будет действительна 2 дня до 00:00) . expired так же можно указать дату с точным временем, через пробел, в формате дд.мм.гггг чч:мм (например: 25.01.2021 12:23). Так же можно использовать стандартные переменные, например зададим время действия ссылки 30 минут:
time = current_time + 30 expired = "#{current_date} #{time}" Чтобы пропустить данный параметр передайте вместо него пару одинарных или двойных кавычек или значение None
Максимальное значение: 90 дней от текущей даты. Минимальное значение: 1 минута от текущей даты.
Если не передан, принимает значение 24 часа для платежа и 30 дней для счета
taxation
Система налогообложения. Возможные значения данного параметра:
'1' - Общая система налогообложения
'2' - Упрощенная (УСН, доходы)
'3' - Упрощенная (УСН, доходы минус расходы)
'4' - Единый налог на вмененный доход (ЕНВД)
'5' - Единый сельскохозяйственный налог (ЕСН)
'6' - Патентная система налогообложения Чтобы пропустить данный параметр передайте вместо него пару одинарных или двойных кавычек или значение None
language
Язык страницы оплаты. По умолчанию, язык страницы оплаты русский. Можно изменить на английский. Для это передайте значение - 'en'
Чтобы пропустить данный параметр, передайте вместо него пару одинарных/ пару двойных кавычек или значение None.
extra_params
дополнительные параметры, которых нет в данной функции. Возможные дополнительные параметры можно посмотреть по ссылке в документации работы с API платежной системы https://www.tinkoff.ru/kassa/develop/api/payments/init-request/ Пример: extra_params = {"IP": "66.249.72.248"} Чтобы пропустить данный параметр, передайте вместо него пару одинарных/ пару двойных кавычек или значение None.
apply_redirects
Индикатор необходимости перенаправить клиента в бота после нажатия на кнопку "Оплатить".
Ожидаемые значения 0 (ноль) или 1 (один, по умолчанию):
  • 0 (ноль) - оставить клиента в виджете оплаты, применяются стандартные страницы завершения платежа Тинькофф Касса;
  • 1 (один) - немедленно перенаправить в бота после нажатия на кнопку "Оплатить".
О статусе платежа можно сообщить в ответ на колбек.
Пример 1: Ссылка на оплату без чека link_tinkoff = get_tinkoff_payment_url(1200, 'Купи меня') Пример 2: Ссылка на оплату с чеком extra_params = {"IP": "66.249.72.248"}
receipt = [{"name":"ТОВАР1","price":"1200","quantity":"1","amount":"1200","vat_code":"2","method":"full_payment","object":"commodity"}]
link_tinkoff = get_tinkoff_payment_url(1200, 'Купи меня', '', receipt, '77777777777', '[email protected]', '28.03.2023 14:25', '2', 'en', extra_params)
Пример 3: Ссылка на оплату с чеком + Автоплатеж receipt = [{"name":"ТОВАР1","price":"1200","quantity":"1","amount":"1200","vat_code":"2","method":"full_payment","object":"commodity"}]
link_tinkoff = get_tinkoff_payment_url(1200, 'Купи меня', '1', receipt, '77777777777', '[email protected]', '28.03.2023 14:25', '2')
Переменную можно вывести на экран ссылкой в сообщении или разместить в кнопке с текстом, например, "Купить".
Если в блоке несколько функций для получения ссылки и допущена ошибка, то значение ошибки будет записано в переменной error_payment_func
Ошибка запишется по последней функции в Калькуляторе.
После успешной оплаты в бота АВТОМАТИЧЕСКИ придет КОЛБЭК, который состоит из 10 символов секретного ключа платежной системы, слова _success и через пробел сумма платежа. Для использования в настройках схемы достаточно его скопировать.
Например: ovg58keefc_success 44, где:
ovg58keefc : первые первые 10 символов секретного ключа платежной системы
_success : результат обработки запроса (успешный платеж)
44 : сумма платежа

Сплитование платежей в Тинькофф и работа с ними

Для старта работы нам потребуется выполнить четыре шага: 1. Переходим по ссылке: https://www.tinkoff.ru/kassa/industries/marketplace/ 2. Оставляем заявку менеджеру и ожидаем связи от него. 3. Заключаем договор с банком и запрашиваем в банке логин и пароль 4. Получаем токен через функцию tinkoff_sm_register_get_token() tinkoff_sm_register_get_token(username, password, test) - функция токена Функция принимает три параметра: Обязательные параметры: username - логин password - пароль Необязательный параметр: test - параметр на случай если проводите настройки в тестовой среде, в параметр можно передать 1 и запрос будет отправлен в тестовую среду. Если не используете такой тип настройки, проигнорируйте данный параметр НЕ указывая его в функции.
ВАЖНО! Если у вас возникают сложности на этапе получения токена, то добавьте список IP адресов salebot в белый лист, запросить адреса можно в службе поддержки на сайте или мессенджере. После того как вы получили токен, необходимо сделать запрос на регистрацию точки с указанием всех необходимых параметров, включая данные банка и лицевого счета (счета физлиц не поддерживаются) через функцию tinkoff_sm_register_get_shop_code в ответ приходит помимо прочего "shopCode", который необходим для дальнейшей работы. tinkoff_sm_register_get_shop_code(token, org_data, address, ceo, bank_acc) token - полученный на шаге выше токен org_data - словарь с данными о вашей организации (вид показан в примере ниже) address - юридический адрес организации ceo - данные владельца организации bank_acc - реквизиты Пример использования функции:
пример функции tinkoff_sm_register_get_shop_code с заполненными параметрами
При формировании ссылки на оплату указываете переменную, сформированную по принципу: shop="Shops":[{"ShopCode":"????????","Amount": "1000"}] link=get_tinkoff_payment_url(10,'', '', '','+79099999999','','', 1, '', shop) в переменной shop поле Amount содержит сумму в копейках, которая будет отправлена этому продавцу. Нужно чтобы сумма в первом параметре функции была не меньше, чем сумма по всем получателям. Для указания нескольких получателей указываем так: shop="Shops":[{"ShopCode":"???????1","Amount": "1000"},{"ShopCode":"???????2","Amount": "2000"}] в данном примере общая сумма 30 рублей или 3000 копеек

Создание ссылки с помощью переменной payment_sum и дополнительных параметров

В калькуляторе блока присваиваем переменной payment_sum значение равно сумме к оплате. Например, payment_sum = 150 или payment_sum = 100.55 (через точку!)). Сразу после этого появится переменная tinkoff_pay_url. Эту переменную можно вывести на экран ссылкой или разместить на кнопке с текстом "Оплатить".
ПРИМЕР ссылки на оплату: https://securepay.tinkoff.ru/new/xoYnWrb6
Также В Калькуляторе блока до установки значения переменной payment_sum, можно задать следующие необязательные переменные, для настройки платежа.
  • payment_description – описание заказа
  • language - Язык страницы оплаты en, ru. Если не передан, то страница оплаты на русском языку.
  • expiration_date - дата и время окончания жизни заказа. Формат: дд.мм.гггг чч:мм (например: 25.01.2021 12:23) По умолчанию 24 часа;
  • apply_redirects - индикатор необходимости перенаправить клиента в бота после нажатия на кнопку "Оплатить". Ожидаемые значения 0 (ноль) или 1 (один, по умолчанию): 0 (ноль) - оставить клиента в виджете оплаты, применяются стандартные страницы завершения платежа Тинькофф Касса; 1 (один) - немедленно перенаправить в бота после нажатия на кнопку "Оплатить". О статусе платежа можно сообщить в ответ на колбек.
Также можно использовать стандартные переменные, например зададим время действия ссылки 2 дня от текущей даты до 12:00: date = current_date + 2 expiration_date = "#{date} 12:00"
Еще пример время действия ссылки 30 минут: time = current_time + 30 expiration_date = "#{current_date} #{time}"
Если в настройках вы включили автоматические платежи, то после успешной оплаты у клиента появится переменные tinkoff_rebill_id и tinkoff_recurrent_id, которые нужны для проведения автоплатежей и идентификации вебхука. Удалять их нельзя, при удалении tinkoff_rebill_id невозможно будет провести автоплатеж и нужно заново формировать ссылку на оплату, при удалении tinkoff_recurrent_id - клиент не получит колбек об оплате.
Нельзя удалять tinkoff_rebill_id и tinkoff_recurrent_id.
При удалении tinkoff_rebill_id невозможно будет провести автоплатеж и нужно заново формировать ссылку на оплату, при удалении tinkoff_recurrent_id - клиент не получит колбек об оплате.
Обратите внимание: переменной payment_sum присваивается значение последней, после необязательных переменных payment_description, language и т.д.

Пример формирования ссылки на оплату

Создадим ссылку на оплату в размере 100р (в магазине по умолчанию рубль)
Обратите внимание: - Сначала указываете необязательные параметры payment_description и т.д. - И последней присваиваем значение переменной payment_sum
Далее в нужном месте нужно вывести переменную tinkoff_pay_url, в которой содержится ссылка.

Как обработать результат

После успешной оплаты в бот придут колбеки, по которым вы сможете понять что была успешная оплата. Эти колбеки в системе вы видите как сообщения от пользователя, чтобы их не мог отправить пользователь, они состоят из 10 первых символов секретного ключа и приписки success, например: 869e5us32x_success
В случае неудачной оплаты, придет колбек с припиской 869e5us32x_fail
Эти колбеки НЕ ВИДИТ пользователь, они отображаются только оператору.
Колбеки от Тинькофф Касса могут приходить с задержкой.
Если в течение часа вам не пришёл колбек, пожалуйста, обратитесь в поддержку salebot.
Тип сравнения должен быть "Полное совпадение"
Также после успешной оплаты переменная tinkoff_payment_completed устанавливается в True.
Например, можно сделать обработку успешной оплаты блоком с условием и вывести соответствующее сообщение пользователю:
После завершения оплаты клиенту добавится переменная tinkoff_callback_data, содержащая данные ответа платежной системы по совершенной операции. Из полученного словаря можно извлечь необходимые данные при помощи метода get.

Как работать с чеками

Для формирования чека онлайн-кассы необходимо при формировании ссылки на оплату передать дополнительные параметры.
Обязательные параметры:
email — электронная почта пользователя (Необязателен, если передан параметр phone)
phone — телефон пользователя. Указывается в формате ITU-T E.164, например 79000000000 (Необязателен, если передан параметр email)
taxation — система налогообложения:
osn — общая usn_income — упрощенная (доходы) usn_income_outcome — упрощенная (доходы минус расходы) patent — патентная envd — единый налог на вмененный доход esn — единый сельскохозяйственный налог
products_for_receipt - это массив с перечисленными товарами чека, следующего вида:
[{"name": "Наименование товара", "quantity": "Количество товара", "price": "Цена за единицу товара в копейках", "amount": "Стоимость товара в копейках", "tax": "Ставка НДС"}, {"name": "Наименование товара 2", "quantity": "Количество товара 2", "price": "Цена за единицу товара 2 в копейках", "amount": "Стоимость товара в копейках", "tax": "Ставка НДС"}] Каждый товар имеет вид:
{"name": "Наименование товара", "quantity": "Количество товара", "price": "Цена за единицу товара в копейках", "amount": "Стоимость товара в копейках", "tax": "Ставка НДС"}
  1. 1.
    name - Наименование товара
  2. 2.
    quantity - Количество или вес товара (целое или дробное число через точку)
  3. 3.
    price - Цена за единицу товара в копейках
  4. 4.
    amount - Стоимость товара в копейках. Произведение Quantity и Price
  5. 5.
    tax - cтавка НДС:
Значение
Описание
none
без НДС
vat0
0%
vat10
10%
vat20
20%
vat110
10/110
vat120
20/120
Дополнительно можно передать предмет расчета payment_object (если не передать, будет commodity (товар)), может принимать следующие значения:
Возможные значение
Описание
commodity
товар
excise
подакцизный товар
job
работа
service
услуга
gambling_bet
ставка азартной игры
gambling_prize
выигрыш азартной игры
lottery
лотерейный билет
lottery_prize
выигрыш лотереи
intellectual_activity
предоставление результатов интеллектуальной деятельности
payment
платеж
agent_commission
агентское вознаграждение
composite
составной предмет расчета
another
иной предмет расчета
После определения переменных платежа, определяем переменную payment_sum, после которой сразу появится ссылка на оплату.
Общая стоимость всех товаров должна быть равной переменной payment_sum в рублях!
Пример:
[{"name": "Наименование товара", "quantity": "2", "price": "1000", "amount": "2000", "tax": "none"}, {"name": "Наименование товара 2", "quantity": "3", "price": "500", "amount": "1500", "tax": "none"}]

Как сделать автоплатежи в Тинькофф

Провести тестовые платежи

В личном кабинете Тинькофф нужно пройти тесты подключения автоплатежей с тестовых карт банка.
Личный кабинет Тинькофф: вкладка Автоплатежи -данные для прохождения тестов
Чтобы пройти тесты подключения автоплатежей: 1. Создаём ссылку на оплату get_tinkoff_payment_url. В параметре recurrent передайте значение равное 1, пример кода есть в описании функции
2. Оплачиваем ее тестовой картой из Тест №5, приходит уведомление от платежной системы об успешной оплате.
3. Для этого же клиента вызываем функцию рекуррентного платежа tinkoff_recurrent_payment.
4. В кабинете Тинькофф нажимаем Проверить. Тесты пройдены

Провести установочный платеж

Для создания ссылки на первый установочный платеж можно воспользоваться функцией get_tinkoff_payment_url в Калькуляторе блоке.
receipt = [{"name":"ТОВАР1","price":"1200","quantity":"1","amount":"1200","vat_code":"2","method":"full_payment","object":"commodity"}]
link_tinkoff = get_tinkoff_payment_url(1200, 'Купи меня', '1', receipt, '77777777777', '[email protected]', '28.03.2023 14:25', '2')
Важный параметр данной функции для проведения установочного платежа recurrent.
Если автоплатеж включен, то передайте значение 1, если отключен передайте значение None или ""
После успешной оплаты придет уведомление (callback), а у клиента появится переменная tinkoff_rebill_id. Эта переменная нужна для повторных автосписаний. Если её удалить, то повторные автосписания провести не получится.

Провести повторный автоплатеж

От блока, который реагирует на колбэк об успешной оплате создаем стрелку с таймером (задержкой) через какой период необходимо повторить списание.
Будьте внимательны и настройте возможность отменить подписку,чтобы случайно не списать с карты пользователя все средства.
Далее для проведения автоплатежа, нужно вызвать функцию:
tinkoff_recurrent_payment(сумма, 'описание')
Первым параметром передаем сумму, которую нужно списать, вторым - описание платежа, если не передать, то будет пустое.
Редактор блока -> Калькулятор -> функция для проведения автоплатежа

Отменить автоплатежи

Для того, чтобы отменить автосписания настроим блок для удаления переменной tinkoff_rebill_id

Провести обычный платеж, если включены рекуррентные платежи.

Если в настройках включен бегунок рекуррентные платежи, но нужно провести обычный платеж без сохранения карты для подписки, присвойте переменной tinkoff_manual_recurrent_disable любое значение перед объявлением payment_sum. При таких настройках платеж будет обычным. Пример:
tinkoff_manual_recurrent_disable = 1
Если при автосписании нужен чек, то до вызова функции нужно определить переменную products_for_receipt_recurrent, которая заполняется так же как и для чеков в обычном платеже.

Прием платежей для курсов через Тинькофф Эквайринг

  1. 1.
    В платежных системах подключаем прием платежей через Тинькофф Эквайринг
  1. 2.
    В настройках курса выбираем платежную систему
  1. 3.
    Подключаем "Оплата через Тинькофф"
  1. 4.
    Создаем тариф
  1. 5.
    В личном кабинете Тинькофф в настройках терминала обязательно включаем уведомления по HTTP и вставляем ссылку: https://chatter.salebot.pro/tinkoff_callback/result
  1. 5.
    ГОТОВО. При оплате будете видеть виджет такого вида: