Приём платежей с помощью «Тинькофф Касса»

Чтобы абоненты-физлица могли оплачивать счета в личном кабинете с помощью Тинькофф Кассы, последовательно выполните шаги настройки.

  1. Личный кабинет Тинькофф
  2. Административный интерфейс LANBilling
  3. Скрипт для callback-уведомлений
  4. Скрипт для автоматических платежей
  5. Конфигурационный файл

Личный кабинет Тинькофф

  1. Оставьте заявку на подключение Тинькофф Кассы. Дождитесь, пока сотрудники предоставят вам доступ в личный кабинет и создадут магазин.

  2. В личном кабинете укажите, где располагается скрипт callback-уведомлений tinkoff.py.

    Для этого в разделе «Интернет-эквайринг» перейдите на вкладку «Магазины» и выберите магазин.

    image

    Перейдите на вкладку «Терминалы» и нажмите «Настроить».

    image

    В блоке «Уведомления» установите флаг «По протоколу HTTP». Введите путь до скрипта callback-уведомлений tinkoff.py на вашем веб-сервере.

    image

Административный интерфейс LANBilling

Создать профиль менеджера для ВПС

Создайте профиль для платёжной системы в LANBilling.

image

Задать настройки ВПС

  1. Перейдите в раздел «Настройки» — «Настройки ВПС».

    image

  1. Нажмите «Добавить».

    image
  2. Выберите профиль менеджера, созданный ранее. Также выберите оператора, для которого будет действовать ВПС.

    Вы можете настроить несколько экземпляров одной платёжной системы. Для каждой из них пара менеджер/оператор должна быть уникальной.

  3. В поле «ВПС» выберите «Т-банк». Появятся расширенные настройки этой платёжной системы.

    image

    Некоторые поля заполнятся автоматически. Как правило, их не нужно редактировать — это настройки, которые меняются очень редко на стороне платёжной системы.

    • URL для рекуррентного платежа — https://securepay.tinkoff.ru/v2/Charge
    • URL платёжного шлюза — https://securepay.tinkoff.ru/v2/Init
    • URL для формирования QR — https://securepay.tinkoff.ru/v2/GetQr
  4. Введите комментарий. Это поле обязательно для заполнения. Если вы используете несколько экземпляров одной ВПС, комментарий позволит вам отличать их друг от друга.

    image
  5. Возможность подключать автоплатежи — позволяет вашим клиентам подключать автооплату в личном кабинете. По умолчанию возможность включена.

    Подробнее о том, как устроены автоплатежи

    image
  6. Код платежа — выберите нужный вариант:

    • Безналичный
    • Наличный
    • Продажа без чека
    • Возврат без чека
  7. Класс платежа — укажите идентификатор категории платежей. Он будет присваиваться платежам, совершённым вашими клиентами в личном кабинете.

  8. Код валюты (по ISO 4217) — по умолчанию используется 643 (рубль). Вы можете указать другую валюту. В договорах оператора, для которого вы настраиваете ВПС, должна быть указана соответствующая валюта.

    image
  9. Описание платежа, отображаемое для пользователя — составьте шаблон описания, которое увидит ваш клиент, когда клиент будет пополнять баланс. В шаблоне можно использовать переменные:

    • {amount} — сумма платежа
    • {agrmid} — идентификатор договора
    • {agrmnum} — номер договора
    • {email} — email клиента
    • {mobile} — мобильный телефон клиента
    • {agrnums} — номера договоров (если оплата по нескольким договорам)
    • {currency} — валюта (берется из параметра currency)

    Пример.

    В настройках задан шаблон описания: Оплата {amount} {currency} по договору {agrnum}

    При оплате пользователь увидит свои данные: Оплата 2 500 руб. по договору Contract_1

    image
  10. Включить фискализацию — по умолчанию флаг установлен. Если вам не нужна фискализация от Тинькофф Кассы, снимите его.

  11. Минимальный размер платежа в личном кабинете — позволяет задать минимальную сумму, на которую ваши абоненты могут пополнить баланс. Если не хотите использовать это ограничение, укажите значение 0.

  12. Минимальный размер рекуррентного платежа — если вы работаете с автоплатежами, можно дополнительно задать минимальную сумму автооплаты.

    image
  13. Признак способа расчета — выберите признак, который будет присваиваться платежам, совершаемым через личный кабинет:

    • Полный расчет
    • Предоплата 100%
    • Предоплата
    • Аванс
  14. Наименование товара — введите наименование, которое будет подставляться в чек.

    image
  15. Система налогообложения — выберите СНО оператора:

    • Общая
    • Упрощенная (доходы)
    • Упрощенная (доходы минус расходы)
    image
  16. Идентификатор терминала, выдаваемый банком продавцу и Пароль для терминала, указанный в личном кабинете — настройки подключения к серверу эквайринга. Их можно посмотреть в личном кабинете Тинькофф.

    image
  17. Использовать обычную оплату — по умолчанию флаг установлен. Он отвечает за отображение кнопки «Оплата» в личном кабинете. Если хотите использовать только способ оплаты «СБП», снимите флаг.

  18. Сохранять информацию о карте пользователя — Тинькофф Касса может сохранять информацию о карте — абоненту не придётся вводить её каждый раз. Для этого включите эту опцию.

  19. Использовать оплату по СБП — по умолчанию флаг установлен. Он отвечает за отображение кнопки «СБП» в личном кабинете. Если хотите использовать только обычный способ оплаты картой, снимите флаг.

    image
  20. Сохраните настройки ВПС.

    image

Скрипт для callback-уведомлений tinkoff.py

Скрипт нужен, чтобы фиксировать в LANBilling результаты оплат. Он обрабатывает запросы от платёжной системы — в них содержится информация об операциях. На основании этих данных скрипт создаёт платежи в биллинге.

Настройка различается для разных ОС.

  1. Скопируйте скрипт callback-уведомлений tinkoff.py в директорию исполняемых скриптов вашего веб-сервера:

    cp /usr/local/billing/payments/tinkoff/tinkoff.py /var/www/cgi-bin/
    

    ``

  2. Укажите в файле настройки доступа. Пример:

    # Настройки логирования
    TINKOFF_LOG = '/var/log/billing/weblogs/tinkoff.log'
    

    # Параметры подключения к LBcore HOST = '127.0.0.1' PORT = 1502 MANAGER = 'super_pay' PASSWORD = '12345' OPER_ID = 1

    ``

  3. Сделайте скрипт исполняемым:

    chmod +x /var/www/cgi-bin/tinkoff.py
    

    ``

  1. Скопируйте скрипт callback-уведомлений tinkoff.py в директорию исполняемых скриптов вашего веб-сервера:

    cp /usr/local/billing/payments/tinkoff/tinkoff.py /usr/lib/cgi-bin/
    

    ``

  2. Укажите в файле настройки доступа. Пример:

    # Настройки логирования
    TINKOFF_LOG = '/var/log/billing/weblogs/tinkoff.log'
    

    # Параметры подключения к LBcore HOST = '127.0.0.1' PORT = 1502 MANAGER = 'super_pay' PASSWORD = '12345' OPER_ID = 1

    ``

  3. Сделайте скрипт исполняемым:

    chmod +x /usr/lib/cgi-bin/tinkoff.py
    

    ``

  1. Скопируйте скрипт callback-уведомлений tinkoff.py в директорию исполняемых скриптов вашего веб-сервера:

    cp /usr/local/billing/payments/tinkoff/tinkoff.py /usr/local/www/apache24/cgi-bin/
    

    ``

  2. Укажите в файле настройки доступа. Пример:

    # Настройки логирования
    TINKOFF_LOG = '/var/log/billing/weblogs/tinkoff.log'
    

    # Параметры подключения к LBcore HOST = '127.0.0.1' PORT = 1502 MANAGER = 'super_pay' PASSWORD = '12345' OPER_ID = 1

    ``

  3. Сделайте скрипт исполняемым:

    chmod +x /usr/local/www/apache24/cgi-bin/tinkoff.py
    

    ``

Скрипт для автоматических платежей tinkoff_recurrent_payment.py

Выполните эти шаги, если вы работаете с автоплатежами.

  1. Убедитесь, что установлен Python 3, а также дополнительные пакеты. Список различается в зависимости от ОС.

    Необходимый пакет: python3-requests.
    Необходимый пакет: python3-requests.noarch.
    Необходимый пакет: py39-requests.
  2. Скопируйте скрипт tinkoff_recurrent_payment.py в директорию /usr/local/billing/pymodules/:

    cp /usr/local/billing/payments/tinkoff/tinkoff_recurrent_payment.py /usr/local/billing/pymodules/
    

    ``

  3. Укажите в файле настройки доступа. Пример:

    MANAGER = 'super_pay'
    PASSWORD = '12345'
    OPER_ID = 1
    

    ``

  4. Перезапустите модуль LBcore. Команды различаются в разных ОС.

    systemctl restart lbcore
    
    service lbcore restart
    

Конфигурационный файл tinkoff.ini

Действия различаются для разных ОС.

  1. Откройте файл конфигурации tinkoff.ini.

    nano /etc/lanbilling/phpclient/client/tinkoff.ini
    

    ``

    Включите платёжную систему в личном кабинете абонентов LANBilling:

    [tinkoff]
    enabled = true
    

    ``

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

    Пример файла:

    ; Настройки "Тинькофф"
    [tinkoff]
    enabled = true
    terminalKey = 'Test'
    operatorURL = 'https://securepay.tinkoff.ru/v2/Init'
    ;Метод GetQr. Регистрирует QR и возвращает информацию о нем от СБП.
    qrURL = 'https://securepay.tinkoff.ru/v2/GetQr'
    ;Пароль терминала из личного кабинета
    password = '1111111111'
    ; Описание транзакции, которое увидит пользователь при оплате.
    description = 'Оплата {amount} {currency} по договорам {agrnums}'
    ;Код валюты ISO 4217 (например, 643).
    currency = 643
    ;Система налогообложения.
    taxation = 'osn'
    ; Признак способа расчёта.
    paymentMethod = 'prepayment'
    ; Идентификатор менеджера, работающего с данной ВПС
    epsManagerId = '1'
    ; Возможность подключать автоплатежи
    allowAutoPayments = true
    ;Использование параметра CustomerKey
    useCustomerKey = false
    ;Использование фискализации
    fiscalization = true
    ; Сумма минимального платежа
    minPaymentAmount = 10
    ; Возможность использовать обычную оплату
    useCardPayment = true
    ; Возможность использовать СБП оплату
    useSbpPayment = true
    

    ``

    • terminalKey и password — укажите идентификатор терминала и его пароль. Их можно посмотреть в личном кабинете Тинькофф.

    • operatorURL — URL платёжного шлюза, https://securepay.tinkoff.ru/v2/Init

    • qrURL — URL для формирования QR-кода, https://securepay.tinkoff.ru/v2/GetQr

    • description — описание платежа, отображаемое для пользователя.

    • currency — код валюты (по ISO 4217). По умолчанию используется 643 (рубль). Вы можете указать другую валюту. В договорах оператора, для которого вы настраиваете ВПС, должна быть указана соответствующая валюта. Если система передаст значение currency, совпадающее с валютой на договоре оператора, то транзакция будет инициирована в переданной валюте. Иначе будет использована валюта по умолчанию для данного терминала.

    • taxation — система налогообложения. Укажите СНО оператора:

      • osn — общая
      • usn_income — упрощенная (доходы)
      • usn_income_outcome — упрощенная (доходы минус расходы)
    • paymentMethod — признак способа расчета. Варианты:

      • full_prepayment — предоплата 100%
      • prepayment — предоплата
      • advance — аванс
      • full_payment — полный расчет
    • epsManagerId — идентификатор профиля платёжной системы в LANBilling. Укажите идентификатор того же профиля, который создали для этой ВПС в административном интерфейсе.

    • allowAutoPayments — возможность подключать автоплатежи.

      • true — клиенты смогут подключать автооплату в личном кабинете.
      • false — клиенты несмогут подключать автооплату в личном кабинете.
    • useCustomerKey — возможность сохранять информацию о карте пользователя. Тинькофф Касса может сохранять информацию о карте — абоненту не придётся вводить её каждый раз.

      • true — сохранять информацию о карте пользователя.
      • false — не сохранять информацию о карте пользователя.
    • fiscalization — использование фискализации от Тинькофф Кассы.

      • true — фискализация включена.
      • false — фискализация выключена.
    • minPaymentAmount — позволяет задать минимальную сумму, на которую ваши абоненты могут пополнить баланс. Если не хотите использовать это ограничение, укажите значение 0.

    • useCardPayment — отвечает за отображение кнопки «Оплата» в личном кабинете.

      • true — клиенты смогут использовать обычную оплату картой.
      • false — клиенты не смогут использовать обычную оплату картой.
    • useSbpPayment — отвечает за отображение кнопки «СБП» в личном кабинете.

      • true — клиенты смогут оплачивать услуги по СБП.
      • false — клиенты не смогут оплачивать услуги по СБП.
  1. Сохраните конфигурационный файл. Сериализуйте изменения:

    /usr/local/sbin/lbwebcfg -y client /etc/lanbilling/phpclient/client/
    

    ``

  1. Откройте файл конфигурации tinkoff.ini:

    nano /usr/local/etc/lanbilling/phpclient/client/tinkoff.ini
    

    ``

    Включите платёжную систему в личном кабинете абонентов LANBilling:

    [tinkoff]
    enabled = true
    

    ``

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

    Пример файла:

    ; Настройки "Тинькофф"
    [tinkoff]
    enabled = true
    terminalKey = 'Test'
    operatorURL = 'https://securepay.tinkoff.ru/v2/Init'
    ;Метод GetQr. Регистрирует QR и возвращает информацию о нем от СБП.
    qrURL = 'https://securepay.tinkoff.ru/v2/GetQr'
    ;Пароль терминала из личного кабинета
    password = '1111111111'
    ; Описание транзакции, которое увидит пользователь при оплате.
    description = 'Оплата {amount} {currency} по договорам {agrnums}'
    ;Код валюты ISO 4217 (например, 643).
    currency = 643
    ;Система налогообложения.
    taxation = 'osn'
    ; Признак способа расчёта.
    paymentMethod = 'prepayment'
    ; Идентификатор менеджера, работающего с данной ВПС
    epsManagerId = '1'
    ; Возможность подключать автоплатежи
    allowAutoPayments = true
    ;Использование параметра CustomerKey
    useCustomerKey = false
    ;Использование фискализации
    fiscalization = true
    ; Сумма минимального платежа
    minPaymentAmount = 10
    ; Возможность использовать обычную оплату
    useCardPayment = true
    ; Возможность использовать СБП оплату
    useSbpPayment = true
    

    ``

    • terminalKey и password — укажите идентификатор терминала и его пароль. Их можно посмотреть в личном кабинете Тинькофф.

    • operatorURL — URL платёжного шлюза, https://securepay.tinkoff.ru/v2/Init

    • qrURL — URL для формирования QR-кода, https://securepay.tinkoff.ru/v2/GetQr

    • description — описание платежа, отображаемое для пользователя.

    • currency — код валюты (по ISO 4217). По умолчанию используется 643 (рубль). Вы можете указать другую валюту. В договорах оператора, для которого вы настраиваете ВПС, должна быть указана соответствующая валюта. Если система передаст значение currency, совпадающее с валютой на договоре оператора, то транзакция будет инициирована в переданной валюте. Иначе будет использована валюта по умолчанию для данного терминала.

    • taxation — система налогообложения. Укажите СНО оператора:

      • osn — Общая
      • usn_income — Упрощенная (доходы)
      • usn_income_outcome — Упрощенная (доходы минус расходы)
    • paymentMethod — признак способа расчета. Варианты:

      • full_prepayment — предоплата 100%
      • prepayment — предоплата
      • advance — аванс
      • full_payment — полный расчет
    • epsManagerId — идентификатор профиля платёжной системы в LANBilling. Укажите идентификатор того же профиля, который создали для этой ВПС в административном интерфейсе.

    • allowAutoPayments — возможность подключать автоплатежи.

      • true — клиенты смогут подключать автооплату в личном кабинете.
      • false — клиенты несмогут подключать автооплату в личном кабинете.
    • useCustomerKey — возможность сохранять информацию о карте пользователя. Тинькофф Касса может сохранять информацию о карте — абоненту не придётся вводить её каждый раз.

      • true — сохранять информацию о карте пользователя.
      • false — не сохранять информацию о карте пользователя.
    • fiscalization — использование фискализации от Тинькофф Кассы.

      • true — фискализация включена.
      • false — фискализация выключена.
    • minPaymentAmount — позволяет задать минимальную сумму, на которую ваши абоненты могут пополнить баланс. Если не хотите использовать это ограничение, укажите значение 0.

    • useCardPayment — отвечает за отображение кнопки «Оплата» в личном кабинете.

      • true — клиенты смогут использовать обычную оплату картой.
      • false — клиенты не смогут использовать обычную оплату картой.
    • useSbpPayment — отвечает за отображение кнопки «СБП» в личном кабинете.

      • true — клиенты смогут оплачивать услуги по СБП.
      • false — клиенты не смогут оплачивать услуги по СБП.
  1. Сохраните конфигурационный файл. Сериализуйте изменения:

    /usr/local/sbin/lbwebcfg -y client /usr/local/etc/lanbilling/phpclient/client/
    

    ``

Настройка завершена. Теперь абоненты-физлица могут пополнять баланс в личном кабинете с помощью этой платёжной системы.

Соответствие ставок НДС их значениям в API:

  • no_vat — none
  • 0 — vat0
  • 5 — vat5
  • 7 — vat7
  • 10 — vat10
  • 20 — vat20
  • 5/105 — vat105
  • 7/107 — vat107
  • 10/110 — vat110
  • 20/120 — vat120

Параметр чека отправляется в структуре Receipt->Items->Tax –>