• Бизнесу
  • Решения
  • Тарифы
  • Справка и поддержка
  • 54-ФЗ

Разработчикам

Выберите удобный способ подключения и ознакомьтесь с документацией. После интеграции проведите тестовый платёж.

Разработчикам

  • ПЛАТЁЖНЫЙ ВИДЖЕТ
  • МОДУЛИ CMS
  • МОБИЛЬНЫЙ SDK
  • ДОКУМЕНТАЦИЯ, API
  • НОТИФИКАЦИИ
  • ТЕСТОВЫЕ ПЛАТЕЖИ
  • APPLE PAY
Нотификации
Нотификации по электронной почте
Нотификации по http(s)
Передаваемые параметры
Статусы платежей
Ответ на HTTP(s)-нотификацию
Проверка токенов
Нотификации о фискализации
Страницы успешной оплаты и ошибки платежа
Нотификации
Нотификации – это уведомления магазину о статусе выполнения платежа. На основе этих уведомлений магазин должен предоставлять услугу/товар покупателю.
Нотификации по http(s)
Тинькофф Оплата может уведомлять магазин об успешных и ошибочных платежах, изменении статуса платежа.
Для этого в настройках терминала указываются URL, на который будут отправляться POST-запросы со статусами.
Метод отправки: POST
Формат: application/json
Порт http: 80
Порт https: 443
Передаваемые параметры:
Параметр
Тип
Описание
Параметр
TerminalKey
Тип
String
Описание
Идентификатор магазина
Параметр
OrderId
Тип
String
Описание
Номер заказа в системе Продавца
Параметр
Success
Тип
Boolean
Описание
Успешность операции
Параметр
Status
Тип
String
Описание
Статус платежа (см. описание статусов операций)
Параметр
PaymentId
Тип
Number
Описание
Уникальный идентификатор платежа
Параметр
ErrorCode
Тип
String
Описание
Код ошибки, если произошла ошибка
Параметр
Amount
Тип
Number
Описание
Текущая сумма транзакции в копейках
Параметр
RebillId
Тип
Number
Описание
Идентификатор рекуррентного платежа
Параметр
CardId
Тип
Number
Описание
Идентификатор привязанной карты
Параметр
Pan
Тип
String
Описание
Маскированный номер карты
Параметр
DATA
Тип
String
Описание
Дополнительные параметры платежа, переданные при создании заказа
Параметр
Token
Тип
String
Описание
Подпись запроса. Алгоритм формирования подписи описан в разделе "Проверка токенов"
Параметр
ExpDate
Тип
String
Описание
Срок действия карты
*Параметры, передаваемые в нотификации, могут изменяться
Статусы платежей, по которым приходят http(s)-нотификации:
Status
Описание
Status
AUTHORIZED
Описание
Деньги захолдированы на карте клиента. Ожидается подтверждение операции*
Status
CONFIRMED
Описание
Операция подтверждена
Status
REVERSED
Описание
Операция отменена
Status
REFUNDED
Описание
Произведён возврат
Status
PARTIAL_REFUNDED
Описание
Произведён частичный возврат
Status
REJECTED
Описание
Списание денежных средств закончилась ошибкой
* Операция может быть подтверждена:
  • Через Личный Кабинет
  • Запросом Confirm
  • Автоматически, если у магазина настроена одностадийная схема оплаты для магазина в Личном Кабинете
По неподтверждённым операциям возмещение не производится.
**Узнать статус платежа можно с помощью вызова метода GetState
Пример http(s)-нотификации
Показать пример кода
{
  "TerminalKey":"1510572937960",
  "OrderId":"test2",
  "Success":true,
  "Status":"CONFIRMED",
  "PaymentId":2006896,
  "ErrorCode":"0",
  "Amount":102120,
  "CardId":867911,
  "Pan":"430000**0777",
  "ExpDate":"1122",
  "Token":"d0815e288f121255d5d6b77831fb486cc5e9f91914a3f58a99b6118b54676d84"
}
Ответ на HTTP(s)-нотификацию
В случае успешной обработки нотификации продавец должен вернуть ответ HTTP CODE = 200 и с телом сообщения
OK
Без тегов и заглавными английскими буквами.
PHP. Пример ответа на http(s)-нотификацию
Показать пример кода
<?php
    echo «OK»;
?>
Пример Java:
Java. Пример ответа на http(s)-нотификацию
Показать пример кода
@POST
@Path("/ok")
public Response NotifyResponse() {
 return Response.status(200).entity("OK").build();
}
В случае, если ответ «OK» не получен, то нотификация будет считаться неуспешной, и сервис будет повторно отправлять данную нотификацию раз в час в течение 24 часов.
Если нотификация за это время так и не будет доставлена, то она будет сложена в архив. Продавец может инициировать отправку всех недоставленных нотификаций из архива вызовом метода Resend.
При получении нотификации и перед её обработкой настоятельно рекомендуем проверить подпись. Алгоритм проверки подписи и примеры описаны в разделе «Проверка токенов»
Проверка токенов
Алгоритм формирования подписи запроса для нотификации
1
Собираем массив всех полученных параметров из нотификации в виде пар Ключ-Значение (кроме параметра Token). Пример:
Показать пример кода
[{"TerminalKey":"1321054611234DEMO"},{"OrderId":"201709"},{"Success":"true"},
{"Status":"AUTHORIZED"},{"PaymentId":"8742591"},{"ErrorCode":"0"},
{"Amount":"9855"},{"CardId":"322264"},{"Pan":"430000******0777"},
{"ExpDate":"1122"},{"RebillId":"101709"}]
2
Добавляем в массив пару (Password, значение). Password – пароль для терминала, указан в Личном кабинете https://oplata.tinkoff.ru, получаем:
Показать пример кода
[{"TerminalKey":"1321054611234DEMO"},{"OrderId":"201709"},{"Success":"true"},
{"Status":"AUTHORIZED"},{"PaymentId":"8742591"},{"ErrorCode":"0"},
{"Amount":"9855"},{"CardId":"322264"},{"Pan":"430000******0777"},
{"ExpDate":"1122"},{"RebillId":"101709"},{"Password":"Dfsfh56dgKl"}]
3
Сортируем массив по Ключам, получаем:
Показать пример кода
[{"Amount":"9855"},{"CardId":"322264"},{"ErrorCode":"0"},{"ExpDate":"1122"},
{"OrderId":"201709"},{"Pan":"430000******0777"},{"Password":"Dfsfh56dgKl"},   
{"PaymentId":"8742591"},{"RebillId":"101709"},{"Status":"AUTHORIZED"},
{"Success":"true"},{"TerminalKey":"1321054611234DEMO"}]
4
Конкатенируем значения всех пар, получаем:
Показать пример кода
985532226401122201709430000******0777Dfsfh56dgKl8742591101709AUTHORIZED        
true1321054611234DEMO
5
Вычисляем SHA-256 от полученного в п.4. значения, получаем:
Показать пример кода
b906d28e76c6428e37b25fcf86c0adc52c63d503013fdd632e300593d165766b               
Пример генерации токена
Показать пример кода
private static final String PASSWORD_KEY = "Password";
private static final String PASSWORD_VALUE = "12345678";
private String generateToken(final Map<String, String> parameters)
 throws UnsupportedEncodingException, NoSuchAlgorithmException {
 final Map<String, String> sortedParameters = new TreeMap<String,
String>(parameters);
 if (sortedParameters.containsKey(TOKEN)) {
  sortedParameters.remove(TOKEN);
 }
 sortedParameters.put(PASSWORD_KEY, PASSWORD_VALUE);
 final String paramString =
Joiner.on("").skipNulls().join(sortedParameters.values());
 return
 calculateSha256(paramString);
}
Сравнение токенов
Показать пример кода
private boolean checkToken(final Map<String,String> params, final String
expectedToken) {
 final String actualToken = params.get(TOKEN);
 return !(expectedToken == null || !expectedToken.equals(actualToken));
}
Нотификации о фискализации
В случае, если используется подключенная к Тинькофф Оплата онлайн касса, по результату фискализации будет отправлена нотификация с фискальными данными.
Метод отправки: POST
Передаваемые параметры:
Параметр
Тип
Описание
Параметр
TerminalKey
Тип
String(20)
Описание
Идентификатор терминала, выдаётся Продавцу Банком
Параметр
OrderId
Тип
String(20)
Описание
Номер заказа в системе Продавца
Параметр
Success
Тип
Boolean
Описание
Успешность операции (true/false)
Параметр
Status
Тип
String(20)
Описание
Для нотификации о фискализации всегда RECEIPT
Параметр
PaymentId
Тип
Number
Описание
Уникальный идентификатор транзакции в системе Банка. Целочисленное значение не более 10 знаков
Параметр
ErrorCode
Тип
String(20)
Описание
Код ошибки, «0» - успешно
Параметр
ErrorMessage
Тип
String(1000)
Описание
Описание ошибки, если произошла ошибка
Параметр
Amount
Тип
Number
Описание
Текущая сумма транзакции в копейках. Целочисленное значение не более 10 знаков
Параметр
FiscalNumber
Тип
Number
Описание
Номер чека в смене. Целочисленное значение
Параметр
ShiftNumber
Тип
Number
Описание
Номер смены. Целочисленное значение
Параметр
ReceiptDatetime
Тип
Date
Описание
Дата и время документа из ФН
Параметр
FnNumber
Тип
String(20)
Описание
Номер ФН
Параметр
EcrRegNumber
Тип
String(20)
Описание
Регистрационный номер ККТ
Параметр
FiscalDocumentNumber
Тип
Number
Описание
Фискальный номер документа. Целочисленное значение
Параметр
FiscalDocumentAttribute
Тип
Number
Описание
Фискальный признак документа. Целочисленное значение
Параметр
Token
Тип
String
Описание
Подпись запроса. Формируется по такому же принципу, как и в случае запросов в банк
Параметр
Ofd
Тип
String
Описание
Наименование оператора фискальных данных. Только для онлайн-касс Cloud Kassir
Параметр
Url
Тип
String
Описание
URL адрес с копией чека. Только для онлайн-касс Cloud Kassir
Параметр
QrCodeUrl
Тип
String
Описание
URL адрес с QR кодом для проверки чека в ФН Только для онлайн-касс Cloud Kassir
Параметр
Receipt
Тип
Object
Описание
Данные чека. Повторяет структуру объекта Receipt для инициализации платежа при вызове метода Init
Параметр
Type
Тип
String
Описание
Тип чека, признак расчета:
Income (Приход) — выдается при получении средств от покупателя (клиента). Метод Init, Confirm, Charge.
IncomeReturn (Возврат прихода) — Выдается при возврате покупателю (клиенту) средств, полученных от него. Метод Cancel
*Параметры, передаваемые в нотификации, могут изменяться
Страницы успешной оплаты и ошибки платежа
После выполнения платежа, система перенаправляет покупателя на страницу успешной или неуспешной оплаты в зависимости от результата платежа.
По умолчанию Тинькофф Оплата устанавливает собственные страницы успешной оплаты и ошибки платежа. Магазин может заменить эти страницы на собственные.
Поддерживаемые протоколы: http, https
Метод отправки: GET
Параметр
Описание
Параметр
Success
Описание
Флаг успешности платежа. True – успешный платёж. False – неуспешный платёж
Параметр
ErrorCode
Описание
Код ошибки
Параметр
Message
Описание
Текст ошибки
Параметр
Details
Описание
Детализация ошибки
Параметр
Amount
Описание
Сумма платежа в копейках
Параметр
MerchantEmail
Описание
Общий Email магазина
Параметр
MerchantName
Описание
Название магазина
Параметр
OrderId
Описание
Номер заказа
Параметр
PaymentId
Описание
Уникальный идентификатор платежа
Параметр
TranDate
Описание
Дата и время платежа
Параметр
BackUrl
Описание
URL магазина для возврата
Параметр
CompanyName
Описание
Название организации
Параметр
EmailReq
Описание
Электронная почта для обращений покупателей
Параметр
PhonesPreq
Описание
Номер телефона для обращений покупателей
Обратите внимание
Если вы используете модуль CMS, то страница успешной оплаты находится только на стороне магазина
Указать URL этих страниц нужно в личном кабинете Тинькофф Оплата
Примеры страниц успешной и неуспешной оплаты

Время принимать оплату в интернете

Заполните заявку - мы рассмотрим её за 2 рабочих дня
Имя и Фамилия*
Введите Ваше Имя и Фамилию
Это поле обязательно
ИНН организации или ИП*
Введите корректный ИНН
Это поле обязательно
Номер мобильного телефона*
Введите корректный номер
Это поле обязательно
Электронная почта*
Введите корректный Email
Это поле обязательно
Комментарий
Укажите, пожалуйста, сайт магазина, планируемый объем платежей и другую информацию, которую считаете важной. Также отметьте, если вы планируете принимать оплату на сайте за услуги ЖКХ, МФО, госуслуги или продажи авиабилетов.
Для продолжения нужно согласие с условиями
Возникла ошибка
В ходе отправки данных формы возникла ошибка.
Регистрация пройдена
Логин и пароль для доступа в личный кабинет высланы вам в SMS сообщении, войдите в личный кабинет для продолжения оформления заявки на подключение интернет-магазина.
Регистрация заявки
Секундочку, мы проверяем данные и создаём заявку.
Подтвердите мобильный телефон
Код отправлен вам на номер
Код подтверждения*
Некорректный код подтверждения
Это поле обязательно
Некорректный код подтверждения
Запросить код повторно можно через 60 сек
Отправить код повторно
|
SMS не приходит
Возможные причины проблемы
  • Вы ввели не свой номер телефона, ошиблись в номере. Вернитесь обратно и введите правильный номер;
  • Проблемы могут быть со стороны сотового оператора. (недоступна сеть, запрет на входящие SMS и так далее). Обратитесь в службу поддержки своего оператора;
  • Проблема с телефоном (отсутствует связь, телефон не может принимать SMS и прочее). Обратитесь в службу поддержки своего оператора;