Массовые выплаты (1.0)

Download OpenAPI specification:Download

История изменений

Описание изменений Дата
Создан документ 26.05.2023

Общая информация

Описание продукта

Массовые выплаты помогают бизнесу автоматизировать расчеты с физлицами, например, с клиентами или исполнителями. Сервис решает разные задачи: заплатить за услуги внештатным исполнителям, выдать вознаграждение за вещь или заем. Отмены выплат не предусмотрены.

Какими терминами пользуемся в документации?

Термин Определение
Клиент Физлицо, которому бизнес выплачивает деньги на карту или счет
Мерчант Бизнес, который выплачивает физлицам деньги за оказанную услугу или товар со своего расчетного счета юрлица
Тинькофф Касса Сервис, помогающий проводить выплату клиенту-физлицу
Эмитент Банк, выпустивший карту клиента-физлица
А2С Массовые выплаты физлицам
PCI DSS Международный стандарт безопасности, созданный для защиты данных банковских карт

Выпуск и добавление сертификата подписи

В целях безопасности запросы на выплаты нужно подписывать электронной цифровой подписью. Можете выбрать удобный для себя вариант – КриптоПро или RSA.

Подпись с помощью RSA-сертификата

Для формирования подписи запроса необходимо:

  1. Собрать массив всех передаваемых параметров в виде пар Ключ-Значение (кроме параметра DigestValue, SignatureValue, X509SerialNumber). Блоки (например, DATA) также не учитываются.
    Например:
    [{"TerminalKey","TinkoffBankTest"},{"PaymentId","20150"}]
    
  2. Сортировать по Ключам:
    [{"PaymentId","20150"},{"TerminalKey","TinkoffBankTest"}]
    
  3. Конкатенировать значения:
    20150TinkoffBankTest
    
  4. Вычислить хэш-сумму по алгоритму SHA256 и получить результат в бинарном виде.
  5. Закодировать получившееся в пункте 4 бинарное значение в Base64 и записать значение в DigestValue.
  6. Подписать получившееся в пункте 4 бинарное значение c помощью RSA-ключа (закрытая часть ключа)* алгоритмом RSA-SHA256, закодировать результат в BASE64 и записать в SignatureValue.

*Инструкция по получению RSA-ключа доступна по ссылке.

Ниже представлены примеры реализации работы с библиотекой:

Язык Ссылка
Java https://acdn.tinkoff.ru/static/documents/rsa-crypto-lib-java-mapi.zip

Подпись с помощью КриптоПро

Для формирования подписи запроса необходимо:

  1. Собрать массив всех передаваемых параметров в виде пар Ключ-Значение (кроме параметра DigestValue, SignatureValue, X509SerialNumber). Блоки (например, DATA) также не учитываются. Например:

    [{"TerminalKey","TinkoffBankTest"},{"PaymentId","20150"}] 
    
  2. Сортировать по Ключам:

    [{"PaymentId","20150"},{"TerminalKey","TinkoffBankTest"}]
    
  3. Конкатенировать значения:

    20150TinkoffBankTest
    
  4. Вычислить хэш-сумму по ГОСТ Р 34.11-2012 256 и получить результат в бинарном виде

  5. Закодировать получившееся в пункте 4 бинарное значение в Base64 и записать значение в DigestValue

  6. Подписать получившееся в пункте 4 бинарное значение по ГОСТ Р 34.11-2012 256, закодировать результат в BASE64 и записать в SignatureValue

Инструкция по получению сертификата доступна по ссылке.

Ниже представлены примеры реализации работы с библиотекой КриптоПро (CryptoPro)

Язык Ссылка Версия Крипто Про
С# Поддержка 2012 ГОСТ КриптоПРО CSP
Java Поддержка 2012 ГОСТ КриптоПРО JCP
PHP Поддержка 2012 ГОСТ КриптоПРО CSP

Подпись с помощью токена

Подпись с помощью токена возможно использовать только при работе с методами выплат через СБП.

Для генерации подписи используется пароль (параметр Password) от терминала A2C.

  1. Собрать массив всех передаваемых параметров в виде пар Ключ-Значение:

    В массив нужно добавить только параметры корневого объекта. Вложенные объекты и массивы не участвуют в расчете токена.

    [{"TerminalKey","TestB"}, {"PaymentId","20150"}]
    
  2. Добавить в массив пару (Password, значение):
    [{"TerminalKey","TestB"}, {"PaymentId","20150"}, {"Password","Dfsfh56dgKl"}]
    
  3. Отсортировать массив по Ключам по алфавиту:
    [{"Password", "Dfsfh56dgKl"}, {"PaymentId","20150"}, {"TerminalKey","TestB"}]
    
  4. Конкатенировать значения всех пар:
    Dfsfh56dgKl20150TestB
    
  5. Вычислить SHA-256 от полученного в предыдущем пункте значения и записать значение в Token. Формирование подписи запроса Token завершено.

Методы работы с сертификатами

Добавление сертификата

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

Сертификат должен соответствовать требованиям:

  1. Файл не поврежден.
  2. Формат файла ".cer".
  3. Загружается именно открытая часть ключа
  4. Алгоритм подписи подходит под используемые:
  • |"1.2.643.7.1.1.3.2" | "Алгоритм цифровой подписи ГОСТ Р 34.10-2012 для ключей длины 256 бит"
  • |"1.2.643.7.1.1.3.3" | "Алгоритм цифровой подписи ГОСТ Р 34.10-2012 для ключей длины 512 бит"

    Алгоритм подписи для RSA-сертификата:
  • sha 256RSA
  1. Содержимое файла начинается со строки "-----BEGIN CERTIFICATE-----", заканчивается "-----END CERTIFICATE-----".
  2. Сертификат должен быть закодирован с помощью Base-64.
Request Body schema: multipart/form-data
TerminalKey
required
string

Идентификатор терминала. Выдается Мерчанту Тинькофф Кассой

Certificate
required
object

Сертификат в формате .cer.
При загрузке проверяется, что содержимое файла начинается со строки
-----BEGIN CERTIFICATE-----

DigestValue
required
string

Значение хеша в Base64

SignatureValue
required
string

Значение подписи в Base64

X509SerialNumber
required
string

Серийный номер сертификата, которым подписан запрос. Можно найти в составе сертификата или на сайте, вставив открытую часть сертификата

Responses

Response samples

Content type
application/json
{
  • "Success": "true,",
  • "ErrorCode": "0",
  • "TerminalKey": "TinkoffBankTest",
  • "X509SerialNumber": "2613832945",
  • "StartDate": "14.03.2022 15:53:55",
  • "ExpirationDate": "14.03.2024 15:53:55"
}

Изменение статуса сертификата

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

Request Body schema: application/json
TerminalKey
required
string

Идентификатор терминала. Выдается Мерчанту Тинькофф Кассой

TargetX509SerialNumber
required
string

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

SetStatus
required
string

Новый статус сертификата.
Возможные значения
• Active – активен
• Blocked - заблокирован
Если переданный в запросе статус совпадает с текущим статусом, запрос считается успешным, и статус сертификата не меняется

DigestValue
required
string

Значение хеша в Base64

SignatureValue
required
string

Значение подписи в Base64

X509SerialNumber
required
string

Серийный номер сертификата, которым подписан запрос. Можно найти в составе сертификата или на сайте, вставив открытую часть сертификата

Responses

Request samples

Content type
application/json
{
  • "TerminalKey": "TinkoffBankTest",
  • "TargetX509SerialNumber": "2613832945",
  • "SetStatus": "Blocked",
  • "DigestValue": "qfeohMmrsEvr4QPB8CeZETb+W6VDEGnMrf+oVjvSaMU=",
  • "SignatureValue": "rNTloWBbTsid1n9B1ANZ9/VasWJyg6jfiMeI12ERBSlOnzy6YFqMaa5nRb9ZrK9wbKimIBD70v8j8eP/tKn7/g==",
  • "X509SerialNumber": 2613832945
}

Response samples

Content type
application/json
{
  • "TerminalKey": "TinkoffBankTest",
  • "Success": "true,",
  • "ErrorCode": "0"
}

Методы работы с балансом

Остаток по счету

Используйте, чтобы проверять, сколько средств на счете бизнеса заморожено, сколько доступно и общий остаток
Основным параметром является Available, который считается по формуле:
Available(доступно) = Total(всего) - Hold(заблокировано) + Over(овердрафт)
Значение баланса может не совпадать с балансом в ЛК, если есть операции в обработке.

Request Body schema: application/json
TerminalKey
required
string

Идентификатор терминала. Выдается Мерчанту Тинькофф Кассой

DigestValue
required
string

Значение хеша в Base64

SignatureValue
required
string

Значение подписи в Base64

X509SerialNumber
required
string

Серийный номер сертификата

Responses

Request samples

Content type
application/json
{
  • "TerminalKey": "TinkoffBankTest",
  • "DigestValue": "qfeohMmrsEvr4QPB8CeZETb+W6VDEGnMrf+oVjvSaMU=",
  • "SignatureValue": "rNTloWBbTsid1n9B1ANZ9/VasWJyg6jfiMeI12ERBSlOnzy6YFqMaa5nRb9ZrK9wbKimIBD70v8j8eP/tKn7/g==",
  • "X509SerialNumber": "2613832945"
}

Response samples

Content type
application/json
{
  • "TerminalKey": "TinkoffBankTest",
  • "Success": true,
  • "ErrorCode": 0,
  • "Total": 223344,
  • "Hold": 0,
  • "Available": 1014,
  • "Token": "f2fdd7fec8225872590e1558b7ea258c75df8f300d808006c41ab540dd7514d9"
}

Сценарий привязки карты

Для проведения выплат, необходимо сохранять данные банковской карты, чтобы клиенту не приходилось заново их вводить. Безопасность нашей платежной формы соответствует стандарту PCI DSS.

Статусная схема привязки карт

scheme

Описание статусов:

  • NEW — новая сессия
  • FORM_SHOWED — показ формы привязки карты
  • 3DS_CHECKING — отправка клиента на проверку 3DS
  • 3DS_CHECKED — клиент успешно прошел проверку 3DS
  • AUTHORIZING — отправка списания на 0 руб
  • AUTHORIZED — списание на 0 руб прошло успешно
  • COMPLETED — привязка успешно завершена
  • REJECTED — привязка отклонена

Статусная схема привязки карт (PCI DSS)

Данная схема позволяет использовать вашу форму привязки (при наличии сертификации PCI DSS). В процессе привязки создается идентификатор карты CardId, который привязывается к параметру CustomerKey.

scheme

Описание статусов:

  • NEW — новая сессия
  • FORM_SHOWED — показ формы привязки карты
  • 3DS_CHECKING — отправка клиента на проверку 3DS
  • 3DS_CHECKED — клиент успешно прошел проверку 3DS
  • AUTHORIZING — отправка списания на 0 руб
  • AUTHORIZED — списание на 0 руб прошло успешно
  • COMPLETED — привязка успешно завершена
  • REJECTED — привязка отклонена

Методы для работы с клиентом

Регистрация клиента

Регистрирует клиента в связке с терминалом

Request Body schema: application/json
TerminalKey
required
string

Идентификатор терминала, выдается Мерчанту Тинькофф Кассой

CustomerKey
required
string

Идентификатор клиента в системе Мерчанта

Email
string

Email клиента

Phone
string

Номер мобильного телефона клиента

DigestValue
required
string

Значение хеша в Base64

SignatureValue
required
string

Значение подписи в Base64

X509SerialNumber
required
string

Серийный номер сертификата

Responses

Request samples

Content type
application/json
{
  • "TerminalKey": "TinkoffBankTest",
  • "CustomerKey": "TestCustomer20",
  • "Email": "autotest@test.ru",
  • "Phone": 71234567890,
  • "DigestValue": "qfeohMmrsEvr4QPB8CeZETb+W6VDEGnMrf+oVjvSaMU=",
  • "SignatureValue": "rNTloWBbTsid1n9B1ANZ9/VasWJyg6jfiMeI12ERBSlOnzy6YFqMaa5nRb9ZrK9wbKimIBD70v8j8eP/tKn7/g==",
  • "X509SerialNumber": "2613832945"
}

Response samples

Content type
application/json
{
  • "TerminalKey": "TinkoffBankTest",
  • "CustomerKey": "TestCustomer20",
  • "ErrorCode": "0",
  • "Success": true
}

Получение данных клиента

Возвращает данные клиента, сохраненные в связке с терминалом

Request Body schema: application/json
TerminalKey
required
string

Идентификатор терминала. Выдается Мерчанту Тинькофф Кассой

CustomerKey
required
string

Идентификатор клиента в системе Мерчанта

DigestValue
required
string

Значение хеша в Base64

SignatureValue
required
string

Значение подписи в Base64

X509SerialNumber
required
string

Серийный номер сертификата

Responses

Request samples

Content type
application/json
{
  • "TerminalKey": "TinkoffBankTest",
  • "CustomerKey": "TestCustomer20",
  • "DigestValue": "qfeohMmrsEvr4QPB8CeZETb+W6VDEGnMrf+oVjvSaMU=",
  • "SignatureValue": "rNTloWBbTsid1n9B1ANZ9/VasWJyg6jfiMeI12ERBSlOnzy6YFqMaa5nRb9ZrK9wbKimIBD70v8j8eP/tKn7/g==",
  • "X509SerialNumber": "2613832945"
}

Response samples

Content type
application/json
{
  • "TerminalKey": "TinkoffBankTest",
  • "CustomerKey": "TestCustomer20",
  • "ErrorCode": "0",
  • "Success": true
}

Удаление данных клиента

Удаляет сохраненные данные клиента

Request Body schema: application/json
TerminalKey
required
string

Идентификатор терминала. Выдается Мерчанту Тинькофф Кассой

CustomerKey
required
string

Идентификатор клиента в системе Мерчанта

DigestValue
required
string

Значение хеша в Base64

SignatureValue
required
string

Значение подписи в Base64

X509SerialNumber
required
string

Серийный номер сертификата

Responses

Request samples

Content type
application/json
{
  • "TerminalKey": "TinkoffBankTest",
  • "CustomerKey": "TestCustomer20",
  • "DigestValue": "qfeohMmrsEvr4QPB8CeZETb+W6VDEGnMrf+oVjvSaMU=",
  • "SignatureValue": "rNTloWBbTsid1n9B1ANZ9/VasWJyg6jfiMeI12ERBSlOnzy6YFqMaa5nRb9ZrK9wbKimIBD70v8j8eP/tKn7/g==",
  • "X509SerialNumber": "2613832945"
}

Response samples

Content type
application/json
{
  • "TerminalKey": "TinkoffBankTest",
  • "CustomerKey": "TestCustomer20",
  • "ErrorCode": "0",
  • "Success": true
}

Получение списка карт клиента

Возвращает список всех привязанных карт клиента, включая удаленные. Не возвращает список счетов, привязанных по номеру телефона через СБП

Request Body schema: application/json
TerminalKey
required
string

Идентификатор терминала. Выдается Мерчанту Тинькофф Кассой

CustomerKey
required
string

Идентификатор клиента в системе Мерчанта

DigestValue
required
string

Значение хеша в Base64

SignatureValue
required
string

Значение подписи в Base64

X509SerialNumber
required
string

Серийный номер сертификата

Responses

Request samples

Content type
application/json
{
  • "TerminalKey": "TinkoffBankTest",
  • "CustomerKey": "TestCustomer20",
  • "DigestValue": "qfeohMmrsEvr4QPB8CeZETb+W6VDEGnMrf+oVjvSaMU=",
  • "SignatureValue": "rNTloWBbTsid1n9B1ANZ9/VasWJyg6jfiMeI12ERBSlOnzy6YFqMaa5nRb9ZrK9wbKimIBD70v8j8eP/tKn7/g==",
  • "X509SerialNumber": "2613832945"
}

Response samples

Content type
application/json
{
  • "Pan": "532130******5598",
  • "CardId": "67321574",
  • "Status": "A",
  • "RebillId": "12345566",
  • "CardType": 0,
  • "ExpDate": 423
}

Методы для работы с картами

Используйте разные сценарии работы с картами: проверка, привязка, удаление

Инициализация привязки карты к клиенту

Сохраняет карту клиента. В случае успешной привязки переадресует клиента на Success Add Card URL, а в противном случае на Fail Add Card URL

Request Body schema: application/json
TerminalKey
required
string

Идентификатор терминала. Выдается Мерчанту Тинькофф Кассой

CustomerKey
required
string

Идентификатор клиента в системе Мерчанта

CheckType
string

Если CheckType не передается, автоматически проставляется значение NO.
Возможные значения:
1. NO – сохранить карту без проверок. Rebill ID для рекуррентных платежей не возвращается;
2. HOLD – при сохранении сделать списание на 0 руб. RebillID возвращается для терминалов без поддержки 3DS. При CheckType = 3DS, для успешной работы метода AttachCard необходимо передать срок действия карты в CardData (параметр ExpDate).
3. 3DS – при сохранении карты выполнить проверку 3DS и выполнить списание на 0 р. В этом случае RebillID будет только для 3DS карт. Карты, не поддерживающие 3DS, привязаны не будут.
4. 3DSHOLD – при привязке карты выполняем проверку, поддерживает карта 3DS или нет. Выполняется списание на 0р. Если карта поддерживает 3DS, то операция идет по сценарию 3DS, если не поддерживает - по сценарию HOLD

ResidentState
boolean

Признак резидентности добавляемой карты. Возможные значения:

  • true - Карта РФ,
  • false - Карта не РФ,
  • null - Не специфицируется (универсальная карта).
DigestValue
required
string

Значение хеша в Base64

SignatureValue
required
string

Значение подписи в Base64

X509SerialNumber
required
string

Серийный номер сертификата

Responses

Request samples

Content type
application/json
{
  • "TerminalKey": "TinkoffBankTest",
  • "CustomerKey": "TestCustomer20",
  • "DigestValue": "qfeohMmrsEvr4QPB8CeZETb+W6VDEGnMrf+oVjvSaMU=",
  • "SignatureValue": "rNTloWBbTsid1n9B1ANZ9/VasWJyg6jfiMeI12ERBSlOnzy6YFqMaa5nRb9ZrK9wbKimIBD70v8j8eP/tKn7/g==",
  • "X509SerialNumber": "1650916637"
}

Response samples

Content type
application/json
{}

Проверка версии 3DS

Для Мерчантов с PCI DSS
Проверяет поддерживаемую версию 3DS протокола по карточным данным из входящих параметров. Данный метод должен вызываться для операций с Route=ACQ
Для 3DS v2.1: Возможно в ответе получение данных для прохождения дополнительного метода “3DS Method”, который позволяет эмитенту собрать данные браузера клиента – это может быть полезно при принятии решения в пользу Frictionless Flow (аутентификация клиента без редиректа на страницу ACS)

Request Body schema: application/json
TerminalKey
required
string

Идентификатор терминала. Выдается Мерчанту Тинькофф Кассой

PaymentId
required
number

Уникальный идентификатор транзакции в системе Тинькофф Кассы

CardData
required
string

Зашифрованные данные карты (используется только для Мерчантов с PCI DSS)

Объект CardData собирается в виде списка «ключ=значение» (разделитель «;»), зашифровывается открытым ключом (X509 RSA 2048), получившееся бинарное значение кодируется в Base64.

Список значений:

  • PAN - Номер карты. Число (обязательно)
  • ExpDate - Месяц и год срока действия карты в формате MMYY. Число (обязательно)
  • CardHolder - Имя и фамилия держателя карты (как на карте). Строка (опционально)
  • CVV - Код защиты (с обратной стороны карты). Строка (опционально)



Пример: PAN=4300000000000777;ExpDate=0523;CardHolder=IVAN PETROV;CVV=111

Открытый ключ генерируется Тинькофф Кассой. Для получения открытого ключа для шифрования CardData можете написать в acq_help@tinkoff.ru или обратиться к сотруднику, который вам помогал с процессом выпуска терминала

Token
required
string

Подпись запроса

Responses

Request samples

Content type
application/json
{
  • "TerminalKey": "TinkoffBankTest",
  • "PaymentId": 13223312,
  • "CardData": "b3tSlUYwsf3Erdv5ReB7WpWK3/NBWLIwDiSLjQG0cBxA0Mgs7ALd7edi0RbVlORsyGZEUJSlRynQ9zLMyHYzWP3z2sQYGA vzOqufoVPe2AozhW3pZV+dN5s7oGcpXd39NDC0Ma/Zw6oa3dJR0Zh8QYjv/sG0zUllMjXl5aHgTpxk37q6OxUakxuG7euhvSN71JqxHs NEuoJELAqLq7U+3tuh9AjTuiBpmEH99maK9e7gnVXgZd1Nk8vachs97xj9cL/023qYMk7CMjldBfG4VOsYVqcHsKfbbJJ8CZXIJgmXhCY ns1hmRD/kf3OhEZr038LghC7Iio0yxHYMhZyJoQ==",
  • "Token": "daab60d01863965284f1db558ff37534715afd0f1e726ca9611b1f90720ad03b"
}

Response samples

Content type
application/json
Example
{
  • "Version": "2.1.0",
  • "PaymentSystem": "mir",
  • "Success": true,
  • "ErrorCode": 0,
  • "Message": "OK"
}

Прохождение этапа “3DS Method”

Для Мерчантов с PCI DSS
Если в ответе метода был получен параметр ThreeDSMethodURL, то необходимо отправить запрос на стороне браузера по полученному ThreeDSMethodURL. Это необходимо для сбора информации ACS-ом о девайсе клиента. Отправка запроса 3DS Method в браузере должна происходить в скрытом frame.
Время ожидания выполнения метода не более 10 секунд

Request Body schema: application/x-www-form-urlencoded
threeDSMethodData
required
string

JSON с параметрами threeDSMethodNotificationURL, threeDSServerTransID, закодированный в формат base-64

Название параметра Тип Описание
threeDSMethodNotificationURL string Обратный адрес, на который будет отправлен запрос после прохождения threeDSMethod
threeDSServerTransID string Идентификатор транзакции из ответа метода

Responses

Request samples

<body onload="document.form.submit()">
<form name="form" action="{ThreeDSMethodURL}" method="post">
  <input type="hidden" name="threeDSMethodData" value="eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6IjU2ZTcxMmE1LTE5MGEtNDU4OC05MWJjLWUwODYyNmU3N2M0NCIsInRocmVlRFNNZXRob2ROb3RpZmljYXRpb25VUkwiOiJodHRwczovL3Jlc3QtYXBpLXRlc3QudGlua29mZi5ydS92Mi9Db21wbGV0ZTNEU01ldGhvZHYyIn0">
</form>
</body>

Привязка карты

Для Мерчантов с PCI DSS
Добавляет привязанную карту к клиенту
В случае успешной привязки переадресует клиента на Success Add Card URL, в противном случае - на Fail Add Card URL
Для 3DS v1.0: Метод необходимо вызывать после AddCard. Если в ответе метода AttachCard возвращается статус 3DS_CHECKING, Мерчанту необходимо сформировать запрос на URL ACS банка, выпустившего карту (в ответе параметр ACSUrl)
Для 3DS v2.1: Перед вызовом метода должен быть вызван /v2/check3dsVersion и выполнен 3DS Method, который является обязательным при прохождении 3DS по протоколу версии 2.1.
Для 3DS v2.1 в HttpHeaders запроса обязательно должны присутствовать заголовки “UserAgent” и “Accept”
Если в ответе метода AttachCard возвращается статус 3DS_CHECKING, Мерчанту необходимо сформировать запрос на URL ACS банка, выпустившего карту (в ответе параметр ACSUrl)

Request Body schema: application/json
One of
TerminalKey
required
string

Идентификатор терминала. Выдается Мерчанту Тинькофф Кассой

RequestKey
required
string

Идентификатор запроса на привязку карты. Получить его можно в ответе метода AddCard

CardData
required
string

Зашифрованные данные карты (используется только для Мерчантов с PCI DSS)

Объект CardData собирается в виде списка «ключ=значение» (разделитель «;»), зашифровывается открытым ключом (X509 RSA 2048), получившееся бинарное значение кодируется в Base64.

Список значений:

  • PAN - Номер карты. Число (обязательно)
  • ExpDate - Месяц и год срока действия карты в формате MMYY. Число (обязательно)
  • CardHolder - Имя и фамилия держателя карты (как на карте). Строка (опционально)
  • CVV - Код защиты (с обратной стороны карты). Строка (опционально)



Пример: PAN=4300000000000777;ExpDate=0523;CardHolder=IVAN PETROV;CVV=111

Открытый ключ генерируется Тинькофф Кассой. Для получения открытого ключа для шифрования CardData можете написать в acq_help@tinkoff.ru или обратиться к сотруднику, который вам помогал с процессом выпуска терминала.

DigestValue
required
string

Значение хеша в Base64

SignatureValue
required
string

Значение подписи в Base64

X509SerialNumber
required
string

Серийный номер сертификата

DATA
object

В объекте передаются дополнительные параметры в формате Ключ:Значение с разделителем |, например,

{"javaEnabled"="false"|"screen_height"="854"}

Если ключи или значения содержат в себе специальные символы, то получившееся значение должно быть закодировано функцией urlencode. Максимальная длина для каждого передаваемого параметра:

  • Ключ – 20 знаков,
  • Значение – 100 знаков.

Максимальное количество пар «ключ-значение» не может превышать 20.

Responses

Request samples

Content type
application/json
Example
{
  • "TerminalKey": "TinkoffBankTest",
  • "CardData": "b3tSlUYwsf3Erdv5ReB7WpWK3/NBWLIwDiSLjQG0cBxA0Mgs7ALd7edi0RbVlORsyGZEUJSl-RynQ9zLMyHYzWP3z2sQYGAvzOqufoVPe2AozhW3pZV+dN5s7oG-cpXd39NDC0Ma/Zw6oa3dJR0Zh8QYjv/sG0zUllMjXl5aHgTpxk37q6OxUakxuG7euhvSN71JqxHsNEu-oJELAqLq7U+3tuh9AjTuiBpmEH99maK9e7gnVXgZd1Nk8vachs97xj9cL/023qYMk7CMjldBfG4VOsYVqcH-sKfbbJJ8CZXIJgmXhCYns1hmRD/kf3OhEZr038LghC7Iio0yxHYMhZyJoQ==",
  • "RequestKey": "3206b55f-83a2-486f-9da0-693dfd2af9b3",
  • "DigestValue": "qfeohMmrsEvr4QPB8CeZETb+W6VDEGnMrf+oVjvSaMU=",
  • "SignatureValue": "rNTloWBbTsid1n9B1ANZ9/VasWJyg6jfiMeI12ERBSlOnzy6YFqMaa5nRb9ZrK9wbKimIBD70v8j8eP/tKn7/g==",
  • "X509SerialNumber": "2613832945"
}

Response samples

Content type
application/json
Example
{}

Запрос в банк-эмитент, для прохождения 3ds

Для Мерчантов с PCI DSS
Для 3DS v1.0: ACSUrl возвращается в ответе метода AttachCard. Если в ответе метода AttachCard возвращается статус 3DS_CHECKING, Мерчанту необходимо сформировать запрос на URL ACS банка, выпустившего карту (в ответе метода /AttachCard параметр ACSUrl)
Для 3DS v2.1: Если в ответе метода AttachCard возвращается статус 3DS_CHECKING, Мерчанту необходимо сформировать запрос на URL ACS банка, выпустившего карту (в ответе параметр ACSUrl)
Компонент ACS использует пары сообщений CReq и CRes для выполнения Проверки (Challenge). В ответ на полученное сообщение CReq компонент ACS формирует сообщение CRes, которое запрашивает держателя карты ввести данные для аутентификации

Формат ответа: CRes, полученный по NotificationUrl из запроса AttachCard
При успешном результате прохождения 3-D Secure подтверждается инициированный платеж с помощью методов Submit3DSAuthorization или Submit3DSAuthorizationV2 в зависимости от версии 3DS.
URL: ACSUrl (возвращается в ответе метода AttachCard)

Request Body schema: application/x-www-form-urlencoded
One of
MD
required
string

Уникальный идентификатор транзакции в системе Банка (возвращается в ответе на AttachCard)

PaReq
required
string

Результат аутентификации 3-D Secure (возвращается в ответе на AttachCard)

TermUrl
required
string

Адрес перенаправления после аутентификации 3-D Secure (URL обработчик на стороне Мерчанта, принимающий результаты прохождения 3-D Secure)

Responses

Request samples

<body onload="document.form.submit()" >
<form name="form" action="{ACSUrl}" method="post" >
  <input type="hidden" name="TermUrl" value="{TermUrl}" >
  <input type="hidden" name="MD" value="{MD}" >
  <input type="hidden" name="PaReq" value="{PaReq}" >
</form>
</body>

Response samples

Content type
application/json
{
  • "cres": "FwlGfSwmRARfDXsgt1PBvbtYTIMY2l2SThPEeei6aFwlGfSwmRARfDXsgt1PBvbtYTIMY2l2SThPEeei6aGIdXfZ3psSfuKZt3O35yCVpfAbYs8AmIdIHQmJyskyNxYZyGIdXfZ3psSfuKZt3O35yCVpNkQwzuH68WlB9oiEnt6NdGaegzJ6ljDlKAl7tvQNCPw2FjDWbhHlxj34ut0hhivaJBNHSmvumv7sndTpA7AzxJYNUhkp67fG411fAbYs8AmIdIHQmJyskyNxYZy"
}

Подтверждение прохождения 3ds v1.0

Для Мерчантов с PCI DSS
При успешном результате прохождения 3-D Secure V1 подтверждает операцию

Request Body schema: application/x-www-form-urlencoded
MD
required
string

Уникальный идентификатор транзакции в системе Банка (возвращается в ответе от ACS)

PaRes
required
string

Шифрованная строка, содержащая результаты 3-D Secure аутентификации (возвращается в ответе от ACS)

PaymentId
required
string

Уникальный идентификатор транзакции в системе Тинькофф Кассы

Token
required
string

Подпись запроса

TerminalKey
required
string

Идентификатор терминала. Выдается Мерчанту Тинькофф Кассой

Responses

Request samples

<body onload="document.form.submit()">
<form name="form" action="https://securepay.tinkoff.ru/e2c/v2/Submit3DSAuthorization" method="post">
  <input type="hidden" name="MD" value="2561504">
  <input type="hidden" name="PaRes" value="eJxVUttygjAU/BWG1w4mXKXOMY5WOrVTrOOtl7cAqeJI1AAO+vVNFKrlaffkZM9mD9Crsq12ZCJPd7yrmy2sa4zHuyTlq66+mD8bvt4jMF8LxoYzFpeCEQhZntMV09JE3vC8Hx9j27A8LzEcN7aNCPu24VIrihKXetiPdAKT/pQdCNSDiJzTsgA1VCqKeE15QYDGh8FoTBy73fZtQDWFjInRkFi4+Uz82JbH1zJwmjEyHcwAXRDEu5IX4kQ8R/Y0BEqxJeui2HcQOlGesKolSkCqCuhmYFIqlEuVKk3IDL8uPwI3jDaBGZ4XeLxZVeFw5I7nX11AqgMSWjDpzPSxb/ma6XRct4Pl4y51oJkar5zLx1wx7NWI/t3BfQFkxkKuoHHfMGDVfseZugLoDwO6+X16UfHFhUyk/32OMH3vZ5+nYBu/2d4xcMTDsn04j19VqJcmpZjKYKT3q6QigJQMqveF6lVL9O8X+AWMIbbt">
  <input type="hidden" name="PaymentId" value="10063">
  <input type="hidden" name="TerminalKey" value="TinkoffBankTest">
  <input type="hidden" name="Token" value="871199b37f207f0c4f721a37cdcc71dfcea880b4a4b85e3cf852c5dc1e99a8d6" >
</form>

Response samples

Content type
application/json
{
  • "Success": true,
  • "ErrorCode": "0",
  • "TerminalKey": "TinkoffBankTest",
  • "Status": "CONFIRMED",
  • "PaymentId": "10063",
  • "OrderId": "21050",
  • "Amount": 100000
}

Подтверждение прохождения 3ds v2.1

Для Мерчантов с PCI DSS
При успешном результате прохождения 3-D Secure V2 подтверждает операцию.
Статус при успешном сценарии: CONFIRMED
Статус при неуспешном сценарии: REJECTED

Request Body schema: application/x-www-form-urlencoded
PaymentId
required
string

Уникальный идентификатор транзакции в системе Тинькофф Кассы

Token
required
string

Подпись запроса

TerminalKey
required
string

Идентификатор терминала. Выдается Мерчанту Тинькофф Кассой

Responses

Request samples

<body onload="document.form.submit()">
<form name="form" action="https://securepay.tinkoff.ru/e2c/v2/Submit3DSAuthorizationV2" method="post">
  <input type="hidden" name="PaymentId" value="10063">
  <input type="hidden" name="TerminalKey" value="TinkoffBankTest">
  <input type="hidden" name="Token" value="871199b37f207f0c4f721a37cdcc71dfcea880b4a4b85e3cf852c5dc1e99a8d6" >
</form>

Response samples

Content type
application/json
{
  • "Success": true,
  • "ErrorCode": "0",
  • "TerminalKey": "TinkoffBankTest",
  • "Status": "CONFIRMED",
  • "PaymentId": "10063",
  • "OrderId": "21050"
}

Удаление привязанной карты

Удаляет карту, ранее привязанную к клиенту

Request Body schema: application/json
TerminalKey
required
string

Идентификатор терминала

CardId
required
string

Идентификатор карты в системе Тинькофф Кассы

CustomerKey
required
string

Идентификатор клиента в системе Мерчанта

DigestValue
required
string

Значение хеша в Base64

SignatureValue
required
string

Значение подписи в Base64

X509SerialNumber
required
string

Серийный номер сертификата

Responses

Request samples

Content type
application/json
{
  • "TerminalKey": "TinkoffBankTest",
  • "CardId": "67321574",
  • "CustomerKey": "TestCustomer10",
  • "DigestValue": "qfeohMmrsEvr4QPB8CeZETb+W6VDEGnMrf+oVjvSaMU=",
  • "SignatureValue": "rNTloWBbTsid1n9B1ANZ9/VasWJyg6jfiMeI12ERBSlOnzy6YFqMaa5nRb9ZrK9wbKimIBD70v8j8eP/tKn7/g==",
  • "X509SerialNumber": "2613832945"
}

Response samples

Content type
application/json
{
  • "TerminalKey": "TinkoffBankTest",
  • "CardId": "67321574",
  • "CustomerKey": "TestCustomer10",
  • "Status": "D",
  • "Success": true,
  • "ErrorCode": 0,
  • "Message": "OK",
  • "Details": "None"
}

Нотификации о привязке карты

Получайте уведомления о статусе выполнения метода привязки карты AddCard (успех/неуспех)

Нотификации по http(s)

Результат привязки карты высылается на адрес Notification URL POST-запросом. При использовании формы привязки карты на стороне Тинькофф Кассы нотификация отправляется на сайт Мерчанта на адрес Notification URL синхронно и ожидает ответа в течение 10 секунд. После получения ответа или неполучения его за заданное время сервис переадресует Клиента на Success AddCard URL или Fail AddCard URL в зависимости от результата привязки карты.

Если в NotificationURL используются порты, допустимо использование порта 443 (HTTPS). Актуальный список внешних сетей, используемых Тинькофф, для отправки нотификаций:

  • 91.194.226.0/23
  • 91.218.132.0/24
  • 91.218.133.1/24
  • 91.218.134.0/24
  • 91.218.135.0/24
  • 212.233.80.0/24
  • 212.233.81.0/24
  • 212.233.82.0/24
  • 91.194.226.181 (тестовая среда)

Чтобы нотификации работали корректно, добавьте эти сети в исключения сетевых фильтров или других видов защиты, которыми пользуетесь

URL: Notification URL

Наименование Тип Описание
TerminalKey String Идентификатор терминала, выдается Мерчанту Тинькофф Кассой
CustomerKey String Идентификатор клиента в системе Мерчанта
RequestKey String Идентификатор запроса на привязку карты
Success bool Успешность запроса
Status String Статус привязки
PaymentId String Уникальный идентификатор транзакции в системе Тинькофф Кассы
ErrorCode String Код ошибки. «0» в случае успеха
CardId Number Идентификатор привязанной карты
Pan String Маскированный номер карты
ExpDate String Срок действия карты
NotificationType String Тип нотификации, всегда константа «LINKCARD»
RebillId String Идентификатор рекуррентного платежа
Token String Подпись запроса. Формируется по такому же принципу, как и в случае запросов в Тинькофф Кассу

Статусы привязок, по которым приходят http(s)-нотификации

Status Описание
COMPLETED Карта успешно привязана
REJECTED Привязка карты неуспешна

Пример http(s)-нотификации:

{"TerminalKey":"TinkoffBankTest",
"CustomerKey":"5b718a19-2abe-1147-a7d9-b43b198ceee3",
"RequestKey":"acdad9d1-1847-4bdcb743-db86d75253f8",
"Success":true,
"Status":"COMPLETED",
"PaymentId":"700000198023",
"ErrorCode":"0",
"CardId":70000000707,
"Pan":"532130******1359",
"ExpDate":"1122",
"NotificationType":"LINKCARD",
"RebillId":"700000004090",
"Token":"f2fdd7fec8225872590e1558b7ea258c75df8f300d808006c41ab540dd7514d9"
}

Ответ на HTTP(s)-нотификацию

Для успешной обработки нотификации Мерчанту необходимо вернуть ответ HTTP CODE = 200 и с телом сообщения: OK (без тегов и заглавными английскими буквами).

Если ответ «OK» не получен, нотификация считается неуспешной, и сервис будет повторно отправлять данную нотификацию раз в час в течение 24 часов.
Если нотификация за это время не доставлена, она будет сложена в архив.

PHP. Пример ответа на http(s)-нотификацию

<?php echo «OK»;?>

Java. Пример ответа на http(s)-нотификацию

@POST
@Path("/ok")
public Response NotifyResponse() {
return Response.status(200).entity("OK").build();
}

Нотификации о привязке счета по номеру телефона

Уведомляет об успешных/ошибочных выполнениях привязок счета по номеру телефона получателя. Нотификация отправляется по http(s)*

*Отправка нотификаций о привязке счета по номеру телефона выполняется аналогично Нотификаций о привязке карты

URL: Notification URL

Наименование Тип Обязательность Описание
TerminalKey String Да Идентификатор терминала, выдается Мерчанту Тинькофф Кассой
CustomerKey String Да Идентификатор клиента в системе Мерчанта
RequestKey String Да Идентификатор запроса на привязку карты
Success bool Да Успешность запроса
Status String Да Статус операции
PaymentId Number Да Уникальный идентификатор транзакции в системе Тинькофф Кассы
Pan String Нет Маскированный номер телефона. Пример:
+7(012)***-**-89.
Pattern: ^+\d{1}(\d{3})*{3}-*{2}-\d{2}$
BankName String Нет Наименование банка получателя
ErrorCode String Да Код ошибки. «0» в случае успеха
AccountToken String Нет Токен привязки
NotificationType String Да Тип нотификации, всегда константа «LINKCARD»
Token String Да Подпись запроса. Формируется по такому же принципу, как и в случае запросов в Тинькофф Кассу

Сценарий выплаты на карту

Выплачивайте деньги на карту физлица со счета бизнеса и проверяйте статусы по каждой транзакции, которая вас интересует

Правила работы

Выплата осуществляется вызовом методов с передачей параметров в GET или POST запросах, в зависимости от сценария. Все методы и передаваемые параметры чувствительны к регистру. Порядок передачи параметров в запросе значения не имеет. Для POST-запроса в заголовке должен присутствовать Content-Type: application/json

Схема проведения выплаты

На схеме показаны статусы операции и возможные методы, которые могут быть вызваны, в зависимости от статуса

scheme

Полный список возможных статусов операции:

  • NEW — новая сессия
  • AUTHORIZING - авторизация
  • UNKNOWN - статус не определен
  • CHECKING - проверка данных
  • CREDIT_CHECKING - на стадии обработки
  • COMPLETING - операция выполняется
  • REJECTED - операция отклонена. См. Коды ошибок (конечный статус для Init/Payment)
  • CHECKED - проверка прошла успешно (конечный статус для Init)
  • COMPLETED - операция успешно выполнена (конечный статус для Payment)

Методы выплат

Инициализация выплаты

Инициирует выплату

Request Body schema: application/json
One of
TerminalKey
required
string

Идентификатор терминала. Выдается Мерчанту Тинькофф Кассой

OrderId
required
string

Уникальный номер заказа в системе Мерчанта

CardId
required
string

Идентификатор карты пополнения привязанной с помощью метода AddCard

Amount
required
number

Сумма в копейках. Минимальное значение - 100

DigestValue
required
string

Значение хеша в Base64

object (DataForInit)

Параметры, передаваемые в объект DATA. JSON-объект, содержащий дополнительные параметры в виде “ключ”:“значение”. При передаче параметра CustomerKey, переданные в DATA параметры привяжутся к клиенту. Максимальная длина для ключа - 20 знаков, для значения - 100 знаков. Максимальное количество пар «ключ-значение» не может превышать 20.
Обязательные параметры для переводов на иностранные карты:
s_lastname
s_firstname
s_dateOfBirth
s_accountNumber
s_address
s_addressZip
s_addressCountry
s_addressCity
r_lastname
r_firstname
t_domestic

SignatureValue
required
string

Значение подписи в Base64

X509SerialNumber
required
string

Серийный номер сертификата

Responses

Request samples

Content type
application/json
{
  • "TerminalKey": "TinkoffBankTest",
  • "OrderId": "autoOrd1615285401068DELb",
  • "CardId": "67321574",
  • "Amount": 1751,
  • "DigestValue": "qfeohMmrsEvr4QPB8CeZETb+W6VDEGnMrf+oVjvSaMU=",
  • "SignatureValue": "rNTloWBbTsid1n9B1ANZ9/VasWJyg6jfiMeI12ERBSlOnzy6YFqMaa5nRb9ZrK9wbKimIBD70v8j8eP/tKn7/g==",
  • "X509SerialNumber": "2613832945"
}

Response samples

Content type
application/json
{
  • "Success": true,
  • "ErrorCode": "0",
  • "TerminalKey": "TinkoffBankTest",
  • "Status": "CHECKED",
  • "PaymentId": "2353039",
  • "OrderId": "PaymentTestN",
  • "Amount": 1751
}

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

Производит пополнение карты

Request Body schema: application/json
TerminalKey
required
string

Идентификатор терминала. Выдается Мерчанту Тинькофф Кассой

PaymentId
required
string

Уникальный идентификатор транзакции в системе Тинькофф Кассы

DigestValue
required
string

Значение хеша в Base64

SignatureValue
required
string

Значение подписи в Base64

X509SerialNumber
required
string

Серийный номер сертификата

Responses

Request samples

Content type
application/json
{
  • "TerminalKey": "TinkoffBankTest",
  • "PaymentId": "700000085140",
  • "DigestValue": "qfeohMmrsEvr4QPB8CeZETb+W6VDEGnMrf+oVjvSaMU=",
  • "SignatureValue": "rNTloWBbTsid1n9B1ANZ9/VasWJyg6jfiMeI12ERBSlOnzy6YFqMaa5nRb9ZrK9wbKimIBD70v8j8eP/tKn7/g==",
  • "X509SerialNumber": "2613832945"
}

Response samples

Content type
application/json
{
  • "TerminalKey": "TinkoffBankTest",
  • "OrderId": "21050",
  • "Success": "true",
  • "Status": "COMPLETED",
  • "PaymentId": "10063",
  • "ErrorCode": "0"
}

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

Возвращает текущий статус выплаты

Request Body schema: application/json
TerminalKey
required
string

Идентификатор терминала выдается Мерчанту Тинькофф Кассой

PaymentId
required
number

Идентификатор операции в системе Тинькофф Кассы

DigestValue
required
string

Значение хеша в Base64

SignatureValue
required
string

Значение подписи в Base64

X509SerialNumber
required
string

Серийный номер сертификата

Responses

Request samples

Content type
application/json
{
  • "TerminalKey": "TinkoffBankTest",
  • "PaymentId": 700000085101,
  • "DigestValue": "qfeohMmrsEvr4QPB8CeZETb+W6VDEGnMrf+oVjvSaMU=",
  • "SignatureValue": "rNTloWBbTsid1n9B1ANZ9/VasWJyg6jfiMeI12ERBSlOnzy6YFqMaa5nRb9ZrK9wbKimIBD70v8j8eP/tKn7/g==",
  • "X509SerialNumber": "2613832945"
}

Response samples

Content type
application/json
{
  • "TerminalKey": "TinkoffBankTest",
  • "OrderId": 21057,
  • "Success": true,
  • "Status": "CONFIRMED",
  • "PaymentId": 2304882,
  • "Amount": 1751,
  • "ErrorCode": 2304882,
  • "Message": "OK",
  • "Details": "None"
}

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

Справку по конкретной выплате А2С можно получить на:
1. URL-сервиса, развернутого на своей стороне
2. Электронную почту

Request Body schema: application/json
One of
TerminalKey
required
string

Идентификатор терминала, выдается Мерчанту Тинькофф Кассой

CallbackUrl
required
string

URL сервиса получения справок

PaymentIdList
required
Array of numbers

Json-массив, содержащий в себе перечень paymentID (уникальных идентификаторов в системе Тинькофф Кассы) c типом Number

Token
required
string

Подпись запроса

Responses

Request samples

Content type
application/json
Example
{
  • "TerminalKey": "TinkoffBankTest",
  • "CallbackUrl": "https://www.tinkoff.ru",
  • "PaymentIdList": [
    ],
  • "Token": "f2fdd7fec8225872590e1558b7ea258c75df8f300d808006c41ab540dd7514d9"
}

Response samples

Content type
application/json
Example
{
  • "Success": true,
  • "ErrorCode": 0,
  • "Message": "OK",
  • "Details": "None",
  • "PaymentIdList": {
    }
}

Сценарий выплаты через СБП

Правила работы

Выплата осуществляется вызовом методов с передачей параметров POST запросах. Все методы и передаваемые параметры чувствительны к регистру. Порядок передачи параметров в запросе значения не имеет.
Для POST-запроса в заголовке должен присутствовать Content-Type: application/json

Статусная схема выплат через СБП

scheme

Методы СБП

Инициализация выплаты

Инициирует выплату

Request Body schema: application/json
TerminalKey
required
string

Идентификатор терминала. Выдается Мерчанту Тинькофф Кассой

OrderId
required
string

Уникальный номер заказа в системе Мерчанта

PhoneNumber
string

Номер телефона получателя
Формат: 11 цифр
Пример: 70123456789
Pattern: ^\d{11}$
В запросе обязательно должен быть передан либо AccountToken, либо пара PhoneNumber и SbpMemberId

SbpMemberId
number

Идентификатор банка-получателя в СБП
Получить список идентификаторов банка можно через Метод GetSbpMembers
Пример: 100000000004
В запросе обязательно должен быть передан либо AccountToken, либо пара PhoneNumber и SbpMemberId

AccountToken
string

Токен привязки счета получателя по номеру телефона. Используется для инициализации выплаты по токену
В запросе обязательно должен быть передан либо AccountToken, либо пара PhoneNumber и SbpMemberId

Amount
required
number

Сумма в копейках. Минимальное значение - 100

DigestValue
string

Значение хеша в Base64

SignatureValue
string

Значение подписи в Base64

X509SerialNumber
string

Серийный номер сертификата

Token
string

Подпись запроса. Используется, если для терминала не включена валидация подписи. Только для выплат через СБП

object (Параметры, передаваемые в объект DATA.)

При передаче в объекте DATA параметров r_lastname, r_firstname, r_middlename, на этапе выполнения /Payment в СБП будет проведена проверка ФИО получателя. В случае несоответствия выплата будет отклонена и вернется статус REJECTED.

Responses

Request samples

Content type
application/json
Example
{
  • "TerminalKey": "TinkoffBankTest",
  • "Amount": 55555,
  • "OrderId": "autoOrd1615285401068DELb",
  • "PhoneNumber": "70123456789",
  • "SbpMemberId": "100000000004",
  • "DigestValue": "qfeohMmrsEvr4QPB8CeZETb+W6VDEGnMrf+oVjvSaMU=",
  • "SignatureValue": "rNTloWBbTsid1n9B1ANZ9/VasWJyg6jfiMeI12ERBSlOnzy6YFqMaa5nRb9ZrK9wbKimIBD70v8j8eP/tKn7/g==",
  • "X509SerialNumber": "2613832945"
}

Response samples

Content type
application/json
{
  • "Success": true,
  • "ErrorCode": 0,
  • "TerminalKey": "TinkoffBankTest",
  • "Status": "CHECKED",
  • "PaymentId": "2353039,",
  • "OrderId": "12342345435",
  • "Amount": 55555
}

Пополнение счета по номеру телефона

Выполняет пополнение счета по номеру телефона

Request Body schema: application/json
TerminalKey
required
string

Идентификатор терминала. Выдается Мерчанту Тинькофф Кассой

PaymentId
required
string

Уникальный идентификатор транзакции в системе Тинькофф Кассы

DigestValue
string

Значение хеша в Base64. Используется, если для терминала включена валидация подписи

SignatureValue
string

Значение подписи в Base64. Используется, если для терминала включена валидация подписи

X509SerialNumber
string

Серийный номер сертификата. Используется, если для терминала включена валидация подписи

Token
string

Подпись запроса. Используется, если для терминала не включена валидация подписи. Только для выплат через СБП

Responses

Request samples

Content type
application/json
Example
{
  • "TerminalKey": "TinkoffBankTest",
  • "PaymentId": "700000085140",
  • "DigestValue": "qfeohMmrsEvr4QPB8CeZETb+W6VDEGnMrf+oVjvSaMU=",
  • "SignatureValue": "rNTloWBbTsid1n9B1ANZ9/VasWJyg6jfiMeI12ERBSlOnzy6YFqMaa5nRb9ZrK9wbKimIBD70v8j8eP/tKn7/g==",
  • "X509SerialNumber": "2613832945"
}

Response samples

Content type
application/json
{
  • "TerminalKey": "TinkoffBankTest",
  • "OrderId": "12342345435",
  • "Success": "true",
  • "Status": "COMPLETING",
  • "PaymentId": "2353039",
  • "ErrorCode": "0"
}

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

Возвращает текущий статус выплаты

Request Body schema: application/json
TerminalKey
required
string

Идентификатор терминала выдается Мерчанту Тинькофф Кассой

PaymentId
required
number

Идентификатор операции в системе Тинькофф Кассы

DigestValue
required
string

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

SignatureValue
required
string

Значение подписи в Base64. Обязательный параметр, если для терминала включена валидация подписи

X509SerialNumber
required
string

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

Token
required
string

Подпись запроса. Используется только если для терминала не включена валидация подписи. Только для выплат через СБП

Responses

Request samples

Content type
application/json
Example
{
  • "TerminalKey": "TinkoffBankTest",
  • "PaymentId": 2353039,
  • "X509SerialNumber": "2613832945",
  • "DigestValue": "qfeohMmrsEvr4QPB8CeZETb+W6VDEGnMrf+oVjvSaMU=",
  • "SignatureValue": "rNTloWBbTsid1n9B1ANZ9/VasWJyg6jfiMeI12ERBSlOnzy6YFqMaa5nRb9ZrK9wbKimIBD70v8j8eP/tKn7/g=="
}

Response samples

Content type
application/json
Example
{
  • "TerminalKey": "TinkoffBankTest",
  • "OrderId": 21057,
  • "Success": true,
  • "Status": "CONFIRMED",
  • "PaymentId": 2304882,
  • "Amount": 1751,
  • "ErrorCode": 2304882,
  • "Message": "OK",
  • "Details": "None"
}

Список участников, принимающих переводы через СБП

Возвращает список участников, принимающих переводы через СБП

Request Body schema: application/json
TerminalKey
required
string

Идентификатор терминала. Выдается Мерчанту Тинькофф Кассой

Token
required
number

Подпись запроса. Используются если для терминала не включена валидация подписи

DigestValue
required
string

Значение хеша в Base64

SignatureValue
required
string

Значение подписи в Base64

X509SerialNumber
required
string

Серийный номер сертификата

Responses

Request samples

Content type
application/json
{
  • "TerminalKey": "TinkoffBankTest",
  • "Token": "cb70d75fff815c433b17297593e66eb33d0dd90ec5933b24272820cc564e7dca",
  • "DigestValue": "qfeohMmrsEvr4QPB8CeZETb+W6VDEGnMrf+oVjvSaMU=",
  • "SignatureValue": "rNTloWBbTsid1n9B1ANZ9/VasWJyg6jfiMeI12ERBSlOnzy6YFqMaa5nRb9ZrK9wbKimIBD70v8j8eP/tKn7/g==",
  • "X509SerialNumber": "2613832945"
}

Response samples

Content type
application/json
{
  • "Success": true,
  • "ErrCode": 2304882,
  • "Message": "OK",
  • "Members": {
    }
}

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

Справку по конкретной выплате А2С можно получить на:
1. URL-сервиса, развернутого на своей стороне
2. Электронную почту

Request Body schema: application/json
One of
TerminalKey
required
string

Идентификатор терминала, выдается Мерчанту Тинькофф Кассой

CallbackUrl
required
string

URL сервиса получения справок

PaymentIdList
required
Array of numbers

Json-массив, содержащий в себе перечень paymentID (уникальных идентификаторов в системе Тинькофф Кассы) c типом Number

Token
required
string

Подпись запроса

Responses

Request samples

Content type
application/json
Example
{
  • "TerminalKey": "TinkoffBankTest",
  • "CallbackUrl": "https://www.tinkoff.ru",
  • "PaymentIdList": [
    ],
  • "Token": "f2fdd7fec8225872590e1558b7ea258c75df8f300d808006c41ab540dd7514d9"
}

Response samples

Content type
application/json
Example
{
  • "Success": true,
  • "ErrorCode": 0,
  • "Message": "OK",
  • "Details": "None",
  • "PaymentIdList": {
    }
}

Правила работы

Перед запуском интеграции важно провести тестирование. Для этого используйте терминал с приставкой E2CDEMO. Запросы по данному терминалу необходимо отправлять на URL: https://securepay.tinkoff.ru/e2c/v2/

Сценарии, доступные для тестирования на E2CDEMO терминале:

  1. Добавить клиента (методом AddCustomer)
  2. Удалить клиента (методом RemoveCustomer)
  3. Привязать карту к клиенту (AddCard)
  4. Удалить карту (RemoveCard)
  5. Показать списков всех карт клиента (GetCardList)
  6. Проверить нотификации после привязки
  7. Провести успешную выдачу на привязанную карту (Payment)
  8. Проверить статус операции
  9. Провести выдачу с ошибкой
  10. Проверить статус выдачи с ошибкой

Тестовые карты

Данные карты необходимо использовать на DEMO-терминале

Поведение карты Реквизиты
Успешная привязка/выдача 5000000000000447
expDate: любая действующая дата в формате 11/24
cvv: любой набор из 3 цифр
Успешная привязка
authRC=1057,message='Покупатель запретил такие операции для своей карты' в ответ на метод Payment
5000000000000553
expDate: любая действующая дата в формате 11/24
cvv: любой набор из 3 цифр

Тестовые сценарии проведения выплат через СБП

Успешный перевод

Выполняется при передаче номера 79012345678 в параметре PhoneNumber метода Init
Последовательность вызовов:
1. Init возвращает Status «CHECKED»;
2. Payment возвращает Status «COMPLETING»;
3. GetState возвращает Status «COMPLETED»

Успешный перевод c передачей ФИО

Выполняется при передаче номера 79021234567 в параметре PhoneNumber метода Init
Последовательность вызовов:
1. Init возвращает Status «CHECKED»
2. Payment возвращает Status «COMPLETING»
3. GetState возвращает Status «COMPLETED»

Ошибочный перевод

Выполняется, при передаче номера 79031234567 в параметре PhoneNumber метода Init. Эмулирует ошибку «Не достаточно средств на счете».
Последовательность вызовов:
1. Init возвращает Status «REJECTED»

Ошибочный перевод с передачей ФИО

Выполняется, при передаче номера 79041234567в параметре PhoneNumber метода Init. Эмулирует ошибку «Недостаточно средств на счете».
Последовательность вызовов:
1. Init возвращает Status «CHECKED»
2. Payment возвращает Status «COMPLETING»
3. GetState возвращает Status «REJECTED»

Коды ошибок, передаваемые на FailURL и в нотификациях

Для выплат по картам

CODE MESSAGE DETAILS (опционально)
0 None
1 Параметры не сопоставлены
2 Отсутствуют обязательные параметры
3 Внутренняя ошибка системы интернет эквайринга
4 Не получится изменить статус платежа
5 Обратитесь в поддержку, чтобы уточнить детали
6 Не получилось привязать карту покупателя. Обратитесь в поддержку, чтобы уточнить детали
7 Неверный статус покупателя
8 Неверный статус транзакции
9 Переадресовываемый url пуст
11 Невозможно выполнить платеж
12 Неверный параметр RedirectDueDate
13 Оплата с мобильного телефона недоступна
13 Оплата через WebMoney недоступна
14 Платеж неверный.
15 Не удалось осуществить платеж через EINV.
16 Счет был отклонен.
17 Неверные введенные данные.
18 Не удалось осуществить платеж через MC.
19 Не удалось осуществить платеж через WebMoney.
20 Ошибка повторного идентификатора заказа.
21 Внутренняя ошибка вызова сервиса ACQAPI.
50 Ошибка отправки нотификации.
51 Ошибка отправки Email.
52 Ошибка отправки Sms.
53 Обратитесь к продавцу
54 Повторное прохождение 3DS авторизации не допустимо.
55 Повторите попытку позже Не найдено оплаченных назначений платежа
60 Запрещено получение документов по url для текущего терминала Запрещено получение документов по url для текущего терминала
61 Должен быть заполнен один из параметров: emailList или Url Должен быть заполнен один из параметров: emailList или Url
62 Запрещено получение документов по url для текущего systemId Запрещено получение документов по url для текущего systemId
63 Не найдена операция Не найдена операция
64 Невалидные данные в запросе Невалидные данные в запросе
65 Не удалось сформировать документ. Обратитесь в службу поддержки Не удалось сформировать документ. Повторите операцию позднее
66 Не удалось сформировать документ. Повторите операцию позднее Запрещено получение документов по url для текущего терминала
67 Не удалось сформировать документ. Повторите операцию позднее Не удалось сформировать документ. Повторите операцию позднее
68 Не удалось сформировать документ. Обратитесь в службу поддержки Стороний сервис не доступен.
76 Операция по иностранной карте недоступна. Операция по иностранной карте недоступна. Воспользуйтесь картой российского банка
78 Выплата на иностранную карту недоступна. Выплата на иностранную карту недоступна. Воспользуйтесь картой российского банка
96 Ошибка Iris.
97 Ошибка Jasper.
98 Ошибка SubExt.
99 Попробуйте повторить попытку позже Банк, выпустивший карту, отклонил операцию
100 • Попробуйте еще раз. Если ошибка повторится — обратитесь в поддержку
• Платеж не получится отменить, потому что деньги покупателя не были зарезервированы
• Платеж уже отменен
• Не получилось отменить платеж. Укажите сумму не больше, чем зарезервировано
• Покупатель опротестовал платеж в банке. Обратитесь в поддержку,чтобы уточнить детали
• Платеж уже подтвержден
• Нужно настроить подтверждение платежа через СМС (3DS) — для этого обратитесь в поддержку
• Карта покупателя неактивна
101 Не пройдена идентификация 3DS. Ошибка прохождения 3-D Secure
102 • Обратитесь в поддержку, чтобы уточнить детали
• Сообщите покупателю, чтобы попробовал оплатить еще раз. Если ошибка повторится — обратитесь в поддержку
102 Операция отклонена, пожалуйста обратитесь в интернет-магазин или воспользуйтесь другой картой. Заказ не может быть оплачен, обратитесь службу поддержки
102 Превышен лимит на сумму выплат в месяц. Для решения вопроса обратитесь к персональному менеджеру
102 Отказ. Более двух успешных оплат с одного email в неделю по проекту dolyame.ru
102 Отказ. Более двух успешных оплат с одного phone в неделю по проекту dolyame.ru.
102 Отказ. Более двух успешных оплат с одной карты в неделю по проекту dolyame.ru.
102 Отказ. Более двух успешных оплат с одной карты в сутки по проекту dolyame.ru.
102 Отказ. Более двух успешных оплат с одного устройства в сутки по проекту dolyame.ru.
102 Отказ. Более двух успешных оплат с одного устройства в неделю по проекту dolyame.ru.
102 Отказ. Более двух успешных оплат с одного куки/идентификатора клиентского агента в сутки по проекту dolyame.ru.
102 Отказ. Более двух успешных оплат с одного куки/идентификатора клиентского агента в неделю по проекту dolyame.ru.
102 Отказ. Попытка оплаты с виртуальных или мошеннических бинов по проекту dolyame.ru.
103 Недостаточно средств на счете
105 Нужно настроить автоплатежи по Maestro — для этого обратитесь в поддержку
106 Карта не поддерживает 3DS проверку. Попробуйте другую карту.
107 Неверно введен CardId. Проверьте, что такая карта была ранее привязана.
109 Не найден dsTranId для сессии
110 Не передан cres
111 Передан некорректный cres
119 Превышено допустимое количество запросов авторизации операции
120 Попробуйте повторить попытку позже
123 Попробуйте повторить попытку позже
125 Попробуйте повторить попытку позже
191 Некорректный статус договора, обратитесь к вашему менеджеру
201 Поле PaymentId не должно быть пустым.
202 Терминал заблокирован.
203 Параметры запроса не должны быть пустыми.
204 Неверный токен. Проверьте пару TerminalKey/SecretKey.
205 Неверный токен. Проверьте пару TerminalKey/SecretKey. Указанный терминал не найден
206 Email не может быть пустым.
207 Параметр DATA превышает максимально допустимый размер.
208 Наименование ключа из параметра DATA превышает максимально допустимый размер.
209 Значение ключа из параметра DATA превышает максимально допустимый размер.
210 Размер поля TerminalKey должен быть от {min} до {max}.
211 Неверный формат IP.
212 Размер поля OrderId должен быть от {min} до {max}.
213 Размер поля Description должен быть от {min} до {max}.
214 Поле Currency должно быть меньше или равно {value}.
215 Размер поля PayForm должен быть от {min} до {max}.
216 Размер поля CustomerKey должен быть от {min} до {max}.
217 Поле PaymentId числовое значение должно укладываться в формат (<{integer} цифр>.<{fraction} цифр>).
218 Значение PAN не является числовым.
219 Неверный срок действия карты.
220 Размер поля CardHolder должен быть от {min} до {max}.
221 Значение CVV не является числовым.
222 Поле CardId числовое значение должно укладываться в формат (<{integer} цифр>.<{fraction} цифр>).
223 Поле RebillId числовое значение должно укладываться в формат (<{integer} цифр>.<{fraction} цифр>).
224 Неверный формат Email.
225 Неверный формат Email.
226 Размер поля Email должен быть от {min} до {max}.
227 Размер поля Phone должен быть от {min} до {max}.
228 Размер поля MD должен быть от {min} до {max}.
229 Размер поля PaRes должен быть от {min} до {max}.
230 Размер поля Code должен быть от {min} до {max}.
231 Не найден идентификатор карты.
233 Размер поля CardId должен быть от {min} до {max}.
234 Размер поля PAN должен быть от {min} до {max}.
235 Размер поля RebillId должен быть от {min} до {max}.
236 Размер поля Token должен быть от {min} до {max}.
237 Размер поля PaymentId должен быть от {min} до {max}.
238 Размер поля ExpDate должен быть от {min} до {max}.
239 Размер поля CVV должен быть от {min} до {max}.
240 Поле Amount числовое значение должно укладываться в формат (<{integer} цифр>.<{fraction} цифр>).
241 Поле Currency должно быть больше или равно {value}.
242 Размер поля InfoEmail должен быть от {min} до {max}.
243 Ошибка шифрования карточных данных.
244 Ошибка сопоставления карточных данных.
245 Параметр AddCard не сопоставлен.
246 Параметр SendEmail не сопоставлен.
247 Параметр Amount не сопоставлен.
248 Параметр CVV не сопоставлен.
249 Параметр Currency не сопоставлен.
250 Параметр DATA не сопоставлен.
251 Неверная сумма. Сумма должна быть больше или равна {value} копеек.
252 Срок действия карты истек.
253 Валюта {value} не разрешена для данного терминала
254 Дополнительные возможности отключены
255 Платеж не найден
257 Некорректное значение признака последней выплаты. Используйте значения true или false Некорректное значение признака последней выплаты. Используйте значения true или false
259 Параметр EncryptedPaymentData не сопоставлен
260 Максимальная длина номера телефона 30 символов
261 Параметр Source не сопоставлен
305 Ошибка проверки поля.
309 Поле Receipt не должно быть пустым.
316 Максимальная длина номера телефона 19 символов.
322 Передана некорректная подпись
323 Amount не совпадают
325 Транзакция не найдена.
326 Неверный amount.
327 "Терминал не поддерживает C2C переводы или не передан Route=""C2C"" для C2C терминала"
328 Должны присутствовать данные для списания и данные для пополнения.
330 Сумма в запросе больше чем в оригинальной транзакции
331 Неверный терминал
335 OrderId {value} не найден для TerminalKey {value}
381 Возможна привязка только резидентных карт
382 Возможна привязка только нерезидентных карт
401 Внутренняя ошибка системы.
402 Повторите попытку позже.
403 Превышен лимит на количество пополнений в месяц.
404 Превышен лимит на сумму пополнения через бесконтактные сервисы.
405 Превышен лимит на сумму пополнения по виртуальной карте.
406 Превышен лимит на сумму пополнения в месяц через мобильное приложение.
407 Не найдено
410 Данный тип перевода для терминала не доступен
411 Сертификат не найден
412 Истек срок действия сертификата
413 Сертификат заблокирован
414 Сертификат уже сохранен для данного терминала
415 Дата начала срока действия сертификата еще не наступила
416 Некорректное значение параметра SetStatus
417 Ошибка обработки сертификата
419 Параметр account объекта DATA должен быть заполнен корректно для MCC: 6050/6051
500 Добавление карты к данному терминалу запрещено.
501 Терминал не найден.
502 Карта по requestKey не найдена.
503 CustomerKey не найден.
504 Не удалось провести платеж при привязке карты.
505 Не удалось привязать карту. Внутренняя ошибка.
506 Карта добавлена в черный список.
507 Карта не поддерживает 3DS проверку. Попробуйте другую карту.
508 Неверный номер карты.
509 Не удалось выполнить отмену при привязке карты.
510 Карта уже привязана к переданному CustomerKey.
511 Проверка 3DS не пройдена.
512 Не удалось выполнить запрос на проверку 3DS.
513 Не удалось выполнить платеж после прохождения 3DS.
514 Введена неверная сумма холдирования.
515 Внутренняя ошибка.
600 Карта добавлена в черный список
600 Интернет-магазин отклонил операцию по данной карте. Обратитесь в интернет-магазин для выяснения причин отказа в платеже.
601 Разрешены операции только по MasterCard
603 Превышено количество попыток оплаты с данной карты
604 Обратитесь в поддержку, чтобы уточнить детали
619 Отсутствуют обязательные данные отправителя Не переданы персональные данные отправителя для операции emoney2card более 15000 руб.
620 Проверьте сумму — она не может быть равна 0 Сумма операции не может быть равна 0
623 Выплата по этому заказу уже прошла Запрещено проводить платеж с OrderId для которого уже есть успешный платеж.
632 Превышен лимит на сумму операции Лимит на сумму пополнения emoney2card. См. лимиты
633 Превышен лимит на количество переводов в день по иностранным картам Лимит на кол-во пополнений emoney2card для карт эмитированных нерезидентами РФ за 1 отчетный день
634 Превышен лимит на сумму переводов по номеру карты в месяц Лимит на сумму пополнения emoney2card по номеру карты одного получателя в отчетный месяц
637 Не хватает данных получателя или отправителя для выплаты на иностранную карту. Проверьте заполнение Отсутствуют персональные данные получателя/отправителя при переводе на иностранную карту
642 Проверьте номер карты Карта не прошла проверку по алгоритму Луна
648 Магазин заблокирован или еще не активирован. Обратитесь в поддержку, чтобы уточнить детали
650 Сообщите покупателю, чтобы попробовал оплатить еще раз. Если ошибка повторится — обратитесь в поддержку
651 Не получилось совершить платеж. Свяжитесь с поддержкой Передаваемый Request_Id не найден.
700 Список карт Masterpass недоступен для данного магазина.
701 Сервис MasterPass недоступен.
702 Поле maid и saav должно быть задано в настройках терминала.
703 Обратитесь в поддержку, чтобы уточнить детали
800 Комиссия не найдена
903 Повторите попытку позже
914 Платеж не найден
991 Для использования 3dsType необходимо установить 3ds терминал Для использования TDS роутинга необходимо пользоваться ТДС терминалом
999 Попробуйте повторить попытку позже
1001 Свяжитесь с банком Свяжитесь с банком, выпустившим карту, чтобы провести платеж
1003 Неверный магазин Неверный номер магазина. Идентификатор магазина недействителен.
1004 Банк, который выпустил карту, считает платеж подозрительным
1005 Платеж отклонен банком, выпустившим карту Платеж отклонен банком, выпустившим карту
1006 Платеж не прошел Свяжитесь с банком, выпустившим карту, чтобы провести платеж
1007 Банк, который выпустил карту, считает платеж подозрительным
1008 Банк, который выпустил карту, отклонил платеж
1012 Банк, который выпустил карту, отклонил платеж
1013 Банк, который выпустил карту, отклонил платеж — сумма превышает лимит по карте Сумма превышает лимит платежа вашего банка. Воспользуйтесь другой картой или обратитесь в банк
1014 Карта недействительна Неправильные реквизиты — проверьте их или воспользуйтесь другой картой
1015 Неверный номер карты Неверный номер карты
1017 Попробуйте снова или свяжитесь с банком, выпустившим карту Попробуйте снова или свяжитесь с банком, выпустившим карту
1018 Неизвестный статус платежа
1019 Банк, который выпустил карту, отклонил платеж — сумма превышает лимит по карте
1030 Повторите попытку позже. Не получилось оплатить. Попробуйте еще раз
1033 Истек срок действия карты
1034 Попробуйте повторить попытку позже Не получилось оплатить. Воспользуйтесь другой картой или обратитесь в банк, выпустивший карту
1038 Превышено количество попыток ввода ПИН-кода — попробуйте снова или обратитесь в банк, выпустивший карту
1039 Платеж отклонен — счет не найден
1041 Карта утеряна Карта утеряна. Свяжитесь с банком, выпустившим карту
1043 Банк, который выпустил карту, считает платеж подозрительным
1051 Недостаточно средств на карте. Не получилось оплатить. На карте недостаточно средств
1053 Платеж отклонен — счет не найден
1054 Истек срок действия карты Неправильные реквизиты — проверьте их или воспользуйтесь другой картой
1055 Неверный ПИН
1057 Покупатель запретил такие операции для своей карты
1058 Покупатель запретил такие операции для своей карты
1059 Банк, который выпустил карту, считает платеж подозрительным
1061 Покупатель превысил лимит платежей по своей карте
1062 Банк, который выпустил карту, отклонил платеж
1063 Банк, который выпустил карту, считает платеж подозрительным
1064 Проверьте сумму
1065 Покупатель превысил лимит платежей по своей карте
1071 Токен просрочен Токен просрочен
1075 Покупатель оплатил максимум раз по своей карте за день
1076 Не получилось отменить резервирование. Обратитесь в поддержку, чтобы уточнить детали
1077 Коды не совпадают — попробуйте снова
1078 Данный тип операции не поддерживается картой
1080 Плательщик ввел неверный срок действия карты
1082 Неверный CVV Неправильные реквизиты — проверьте их или воспользуйтесь другой картой
1085 Операция успешна Успех
1086 Платеж отклонен — не получилось подтвердить ПИН-код
1088 Банк, который выпустил карту, отклонил платеж
1089 Попробуйте повторить попытку позже Не получилось оплатить. Попробуйте еще раз или обратитесь в банк, выпустивший карту
1091 Технические работы в банке, который выпустил карту
1092 Банк, который выпустил карту, отклонил платеж
1093 Банк, который выпустил карту, считает платеж подозрительным
1094 Банк, который выпустил карту, считает платеж подозрительным
1096 Системная ошибка Системная ошибка
1116 Некорректная сумма выдачи Сумма баланса меньше суммы переданной в операции выдачи
1119 Параметр account объекта DATA должен быть заполнен корректно для MCC: 6050/6051 Передан некорректный номер кошелька
1201 Обратитесь в поддержку, чтобы уточнить детали
1202 Сумма платежа превышает лимит по разовой операции в этом магазине. Обратитесь в поддержку, чтобы уточнить детали Для решения вопроса обратитесь к персональному менеджеру
1203 Сумма платежа превышает лимит по разовой операции или количеству операций в этом магазине. Обратитесь в поддержку, чтобы уточнить детали Для решения вопроса обратитесь к персональному менеджеру
1204 Достигнут лимит по суточному обороту. Чтобы изменить лимит, обратитесь в поддержку Для решения вопроса обратитесь к персональному менеджеру
1205 Магазин не принимает карты этой страны. Обратитесь в поддержку, чтобы уточнить детали Для решения вопроса обратитесь к персональному менеджеру
1207 Сообщите покупателю, чтобы попробовал оплатить еще раз. Если ошибка повторится — обратитесь в поддержку Для решения вопроса обратитесь к персональному менеджеру
1217 Воспользуйтесь другой картой или обратитесь к продавцу Воспользуйтесь другой картой или обратитесь к продавцу
1218 Воспользуйтесь другой картой или обратитесь к продавцу Воспользуйтесь другой картой или обратитесь к продавцу
1235 Для карт «Мир» нужно настроить подтверждение платежей по СМС 3DS 2.0. Обратитесь в поддержку, чтобы уточнить детали
1316 Запрещено проведение авторизации Запрещено проведение авторизации с использованием 3DS
1502 Недостаточно средств на счете компании Insufficient funds
1503 Некорректный статус счета, обратитесь в поддержку Invalid account status
2014 Не пройдена идентификация 3DS
2015 Mерчант с таким именем и паролем не найден.
2200 Превышено допустимое количество запросов авторизации операции
8002 Tinkoff Credit Broker недоступен. Повторите попытку позже.
8003 Операция запрещена для покупки долями.
8004 BNPL недоступен. Повторите попытку позже.
9001 Попробуйте повторить попытку позже
9999 Внутренняя ошибка системы.
9999 cert expired for terminal with id:... У сертификата на терминале истек срок действия. Для выпуска нового сертификата воспользуйтесь инструкцией по ссылке или обратитесь к персональному менеджеру

Для выплат по СБП

Message_Key Code Message
operation.rejected 99 Попробуйте повторить попытку позже
insufficient.fund 103 Недостаточно средств на счете
use.another.card 102 Попробуйте повторить попытку позже
use.another.card 1203 Воспользуйтесь другой картой или обратитесь к продавцу
use.another.card 1202 Попробуйте повторить попытку позже
use.another.card 1204 Попробуйте повторить попытку позже
incorrect.route.sbp 3004 Способ СБП недоступен для магазина
sbp.not.response 3005 Оплата через СБП не доступна
sbp.not.receive 3006 Банк получателя не может принять возврат. Выберите другой банк
sbp.error 3007 Отказ в проведении операции от СБП
sbp.account.error 3008 У получателя нет расчетного счета в этом банке. Выберите другой банк
sbp.renouncement 3009 Отказ в проведении операции от СБП или банка получателя
sbp.receiver.name.error 3010 У получателя нет расчетного счета в этом банке. ФИО некорректное
sbp.receiver.name.error 1015 Неверный номер карты

Обратная связь

По техническим вопросам обратитесь на почту acq_help@tinkoff.ru.
Для предоставления обратной связи и по вопросам улучшения обслуживания и предоставляемого сервиса обратитесь к вашему личному менеджеру