Тинькофф

Прием платежей через интернет-эквайринг Тинькофф банка

Мы рады сообщить Вам о преимуществах подключения к Тинькофф по партнерской ссылке от Salebot-эквайринг :

  1. Бесплатное подключение к интернет-эквайрингу Тинькофф.

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

Обратите внимание, что предложение действует только по партнерской ссылке:

https://www.tinkoff.ru/kassa/form/partner/salebot/

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

Вам необходимо создать новый терминал. Нельзя использовать тот, который у вас подключен еще куда-то.

Для подключения интернет-эквайринга Тинькофф в первую очередь нужно подать заявку и получить идентификатор терминала и пароль. Это можно сделать перейдя по ссылке.

После рассмотрения вашей заявки, вам выдадут тестовый терминал и пароль к нему.

Переходим в проект на salebot.pro и в разделе Платежные системы - Тинькофф прописываем ключи тестового терминала.

Далее вам в личном кабинете Тинькофф нужно пройти тесты на формирование ссылки, чека и оплаты с тестовых карт банка.

Для совершения повторного платежа обязательно необходимо обнулить payment_sum, ранее сформированную ссылку и уже после переназначить переменную payment_sum для получения свежей ссылки. Можно указать предыдущее значение.

Обратите внимание на Тест 3 (отмена платежа), вам нужен будет идентификатор платежа PaymentId, найти его можно после совершения платеж в переменной tinkoff_payment_id

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

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

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

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

Рассмотрим все возможные параметры данной кнопки. О том как создавать кнопку с функцией Оплата рассказано в этой статье:

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

Для формирования ссылки на оплату в настройках кнопки необходимо указать обязательные параметры: Сумма и Описание товара.

поле Текст. Данный текст будет указан на кнопке с ссылкой на оплату в сообщении

поле Функция. Для создания кнопки для выдачи ссылки на оплату выбираем функцию Оплата

поле Платежная система. В списке отображаются подключенные к проекту платежные системы. Выбираем Tinkoff

Если к проекту не подключены платежные системы данный тип кнопок будет не доступен

поле Описание товара (обязательное). В данном поле нужно указать название товара. Максимально количество символов для данного поля: 250 Чем точнее указано описание товара, тем лучше. Например: не Телефон, а Смартфон Xiaomi модель

НЕЛЬЗЯ использовать двойные кавычки в описании товара: удалите или замените на одинарные кавычки.

поле Сумма (обязательное). В этом поле указываем стоимость товара.

чекбокс Автоплатеж. Для подключения автоплатежа включите в настройках платежной системы в Сейлбот ползунок и поставьте галочку в данном чек-боксе в настройке кнопки. По умолчанию, отключен. Про настройки для автоплатежей можно почитать в этой статье:

меню Данные для формирования чека. При клике по данной кнопке откроются дополнительные обязательные и необязательные поля для формирования чека

Многие платежные системы поддерживают облачные онлайн-кассы, они необходимы по 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:

Переменную можно вывести на экран ссылкой в сообщении или разместить в кнопке с текстом, например, "Купить".

Если в блоке несколько функций для получения ссылки и допущена ошибка, то значение ошибки будет записано в переменной 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 - реквизиты Пример использования функции:

При формировании ссылки на оплату указываете переменную, сформированную по принципу: 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. name - Наименование товара

  2. quantity - Количество или вес товара (целое или дробное число через точку)

  3. price - Цена за единицу товара в копейках

  4. amount - Стоимость товара в копейках. Произведение Quantity и Price

  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', 'exam@mail.com', '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. Подключаем "Оплата через Тинькофф"

  1. Создаем тариф

  1. В личном кабинете Тинькофф в настройках терминала обязательно включаем уведомления по HTTP и вставляем ссылку: https://chatter.salebot.pro/tinkoff_callback/result

  1. ГОТОВО. При оплате будете видеть виджет такого вида:

Сервис "Онлайн-чеки": как оптимизировать расходы бизнеса?

Оптимизация расходов бизнеса - безусловно то, к чему стремится любой предприниматель. Подсчет расходов и полученных доходов часто наводят на мысль о том, как можно увеличить фактическую прибыль и уменьшить затраты.

В этом может помочь официальный партнер Тинькофф - Бизнес.ру: с помощью сервиса "Онлайн-чеки" вы получите возможность подключить кассу к сайту для приема платежей, безлимитный пакет чеков и поддержку на всех этапах фискализации - все это от 800 р/месяц.

Чтобы подключить онлайн-кассу от Тинькофф на сервисе Бизнес.ру, переходите по ссылке.

Last updated