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

Download OpenAPI specification:Download

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

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

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

Выплаты на токенизированные карты и отмены выплат не предусмотрены.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    20150TinkoffBankTesttrue
    
  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

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

Подпись с помощью токена возможно использовать только при работе с 3DS-методами при привязке карт и получении справки по операции

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

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

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

[{"TerminalKey","TestB"}, {"isNeedRrn",true}, {"PaymentId","20150"}]
  1. Добавить в массив пару (Password, значение):
[{"TerminalKey","TestB"}, {"isNeedRrn",true}, {"PaymentId","20150"}, {"Password","Dfsfh56dgKl"}]
  1. Отсортировать массив по Ключам по алфавиту с учетом регистра:
[{"Password", "Dfsfh56dgKl"}, {"PaymentId","20150"}, {"TerminalKey","TestB"}, {"isNeedRrn",true}]
  1. Конкатенировать значения всех пар:
Dfsfh56dgKl20150TestBtrue
  1. Вычислить 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"
}

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

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

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.00",
  • "Hold": "0",
  • "Available": "1014.00",
  • "Token": "f2fdd7fec8225872590e1558b7ea258c75df8f300d808006c41ab540dd7514d9"
}

Остаток по счету с овердрафтом

Метод предоставляет информацию о балансе клиента, включая собственные средства, доступные средства и остаток овердрафта.
Основным параметром является Available, который считается по формуле:
Available (доступно) = Balance (собственные средства) + Overdraft (остаток овердрафта)
Значение баланса может не совпадать с балансом в ЛК, если есть операции в обработке.

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",
  • "Balance": "12000",
  • "Available": "17000",
  • "Overdraft": "5000"
}

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

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

Срок жизни формы привязки ограничен и составляет 2 суток.

Статусная схема привязки карт через банковскую форму

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

scheme

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

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

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

Данная схема позволяет использовать вашу форму привязки. В процессе привязки создается идентификатор карты 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
string

Идентификатор транзакции в системе Т‑Бизнес

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@tbank.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: Перед вызовом метода должен быть вызван 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@tbank.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
{
  • "Success": true,
  • "ErrorCode": "0",
  • "TerminalKey": "TinkoffBankTest",
  • "Status": "3DS_CHECKING",
  • "CustomerKey": "testRegress5",
  • "RequestKey": "8de92934-26c9-474c-a4ce424f2021d24d",
  • "CardId": "5555"
}

Запрос в банк-эмитент, для прохождения 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"
}

Подтверждение прохождения 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.0/24,
  • 91.218.134.0/24,
  • 91.218.135.0/24,
  • 212.49.24.0/24,
  • 212.233.80.0/24,
  • 212.233.81.0/24,
  • 212.233.82.0/24,
  • 212.233.83.0/24,
  • 91.194.226.181 (тестовая среда).

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

URL: Notification URL

Наименование Тип Описание
TerminalKey String Идентификатор терминала. Выдается мерчанту в Т‑Бизнес при заведении терминала
CustomerKey String Идентификатор клиента в системе Мерчанта
RequestKey String Идентификатор запроса на привязку карты
Success bool Успешность прохождения запроса
Status String Статус привязки
PaymentId Number Идентификатор транзакции в системе Т‑Бизнес
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 Идентификатор терминала, выдается Мерчанту в Т‑Бизнес
OrderId String Уникальный номер заказа в системе Мерчанта
Success bool Успешность прохождения запроса
Status String Статус операции
PaymentId Number Идентификатор транзакции в системе Т‑Бизнес
ErrorCode String Код ошибки. «0» в случае успеха
Amount Number Сумма в копейках.
Token String Подпись запроса
SbpId String Идентификатор транзакции в СБП
Phone String Маскированный номер телефона

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

Status Описание
COMPLETED Выплата успешно проведена
REJECTED Выплата неуспешна

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

{
  "TerminalKey": "TinkoffBankTest",
  "OrderId": "39724",
  "Success": true,
  "Status": "COMPLETED",
  "PaymentId": "5149251283",
  "ErrorCode": "0",
  "Amount": "350190",
  "Token": "3b12c92c0f09dbf1da20f951e8bd0c5d2a39986a2cfc964624d37aae82ce4713",
  "SbpId": "B4163074446157090000120011270501",
  "Phone": "+7(999)*--99"
}

Ответ на 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();
}

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

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

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

Выплата осуществляется вызовом методов с передачей параметров в 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
Example
{
  • "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
string

Идентификатор платежа в системе Т‑Бизнес

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": "COMPLETED",
  • "PaymentId": "2304882",
  • "Amount": "175100",
  • "Message": "OK",
  • "ErrorCode": "0"
}

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

Метод позволяет получить информацию о реквизитах по выплате

Request Body schema: application/json
TerminalKey
required
string

Идентификатор терминала. Выдается мерчанту в Т‑Бизнес при заведении терминала

PaymentId
required
string

Идентификатор платежа в системе Т‑Бизнес

isNeedRrn
boolean

Флаг для обозначения необходимости получения RRN по операции

DigestValue
required
string

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

SignatureValue
required
string

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

X509SerialNumber
required
string

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

Responses

Request samples

Content type
application/json
{
  • "TerminalKey": "TinkoffBankTest",
  • "PaymentId": "700000085101",
  • "isNeedRrn": true,
  • "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",
  • "Rrn": 98765432210,
  • "ErrorCode": 0,
  • "Message": "OK",
  • "Details": "None"
}

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

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

*Поступит файл в кодировке base64

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
required
string

Номер телефона получателя
Формат: 11 цифр
Пример: 70123456789
Pattern: ^\d{11}$

SbpMemberId
required
number

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

Amount
required
number

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

DigestValue
required
string

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

SignatureValue
required
string

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

X509SerialNumber
required
string

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

object (Параметры, передаваемые в объект DATA)
  1. При передаче в объекте DATA параметров r_lastname, r_firstname, r_middlename на этапе выполнения метода /a2c/sbp/Payment будет проведена проверка ФИО получателя. В случае несоответствия выплата будет отклонена и перейдет в статус REJECTED.
  2. Для выплат по СБП в сторонние банки-эмитенты передавайте ФИО получателя с е вместо ё.

Responses

Request samples

Content type
application/json
{
  • "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": "autoOrd1615285401068DELb",
  • "Amount": 55555
}

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

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

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
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
string

Идентификатор платежа в системе Т‑Бизнес

DigestValue
required
string

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

SignatureValue
required
string

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

X509SerialNumber
required
string

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

Responses

Request samples

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

Response samples

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

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

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

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
{
  • "Success": true,
  • "ErrCode": 2304882,
  • "Message": "OK",
  • "Members": [
    ]
}

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

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

*Поступит файл в кодировке base64

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 возвращает Success:false.

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

Выполняется при передаче номера 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 Выплата на иностранную карту недоступна Выплата на иностранную карту недоступна. Воспользуйтесь картой российского банка
88 Неверно заполнены данные получателя или отправителя при переводе Неверно заполнено одно из полей r_firstname, r_lastname, s_firstname или s_lastname при переводе
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. Обратитесь в поддержку, чтобы уточнить детали
1237 Получатель находится в базе ЦБ РФ, операция отклонена по 161-ФЗ: t.tb.ru/161FZ
1316 Запрещено проведение авторизации Запрещено проведение авторизации с использованием 3DS
1502 Недостаточно средств на счете компании Insufficient funds
1503 Некорректный статус счета, обратитесь в поддержку Invalid account status
2014 Не пройдена идентификация 3DS
2015 Mерчант с таким именем и паролем не найден
2200 Превышено допустимое количество запросов авторизации операции
8002 T-Bank Credit Broker недоступен. Повторите попытку позже
8003 Операция запрещена для покупки долями
8004 BNPL недоступен. Повторите попытку позже
9001 Попробуйте повторить попытку позже
9999 Внутренняя ошибка системы
9999 cert expired for terminal with id:... У сертификата на терминале истек срок действия. Для выпуска нового сертификата воспользуйтесь инструкцией по ссылке или обратитесь к персональному менеджеру

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

CODE MESSAGE
99 Попробуйте повторить попытку позже
103 Недостаточно средств на счете
102 Попробуйте повторить попытку позже
1015 Неверный номер карты
1203 Воспользуйтесь другой картой или обратитесь к продавцу
1202 Попробуйте повторить попытку позже
1204 Попробуйте повторить попытку позже
1237 Получатель находится в базе ЦБ РФ, операция отклонена по 161-ФЗ: t.tb.ru/161FZ
3004 Способ СБП недоступен для магазина
3005 Оплата через СБП не доступна
3006 Банк получателя не может принять возврат. Выберите другой банк
3007 Отказ в проведении операции от СБП
3008 У получателя нет расчетного счета в этом банке. Выберите другой банк
3009 Отказ в проведении операции от СБП или банка получателя
3010 У получателя нет расчетного счета в этом банке. ФИО некорректное
3032 Слишком много неудачных попыток за час. Попробуйте снова через час или выберите другой банк получателя
3033 Слишком много неудачных попыток за сутки. Попробуйте еще раз завтра или выберите другой банк получателя
3034 Банк получателя отклонил выплату. Попросите получателя обратиться туда или выберите другой его банк
3035 Банк получателя отклонил выплату. Попросите получателя обратиться туда или выберите другой его банк
3036 Возникла ошибка. Не получилось сделать выплату
4001 Отсутствуют обязательные параметры
4002 Некорректные параметры запроса
4003 Способ СБП недоступен для магазина
4004 Повторите попытку позднее
4005 Выплата по данному OrderId уже инициирована
4006 Передан некорректный PaymentId

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

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

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

Изменения Дата
1.0 Дополнено описание к методу GetCardList "Не возвращает список счетов, привязанных по номеру телефона через СБП"
Исправлены названия методов SBP
30.05.2023
1.1 Обновлена обязательность параметра ExpDate для объекта CardData 01.06.2023
1.2 Обновлен URL для метода Submit3DSAuthorization 21.06.2023
1.3 Обновлено описание метода Check3dsVersionResponseV2 23.06.2023
1.4 Добавлен список IP-адресов нотификаций 07.07.2023
1.5 Введено разделение PCI/nonPCI схем для метода Init 19.07.2023
1.6 Добавлены методы работы с сертификатами 28.07.2023
1.7 Удален параметр CustomerKey для метода Init 14.08.2023
1.8 Обновлен список ошибок 28.09.2023
1.9 Обновлен список ошибок 05.10.2023
1.10 Обновлены примеры запросов для InitSBP 16.10.2023
1.11 Обновлена обязательность параметра ExpDate для объекта CardData 24.10.2023
1.12 Добавлена информация по параметру ResidentState для метода AddCard 31.10.2023
1.13 Актуализирован список ошибок (99) 06.11.2023
1.14 Исправлены примеры параметров Email и Phone 20.12.2023
1.15 Обновлен список статусов операции 21.12.2023
1.16 Добавлены описание ошибки 9999 "cert expired for terminal with id:.." и уточнения по формированию подписи запросов.
Обновлены сроки действия тестовых карт
24.01.2024
1.17 Обновлен тип данных CardId 22.02.2024
1.18 Добавлен параметр AddInfo для метода Init 15.03.2024
1.19 Обновлен список ошибок по СБП 25.06.2024
1.20 Обновлено описание метода Получение статуса выплаты 24.07.2024
1.21 Обновлено описание инструкции формирования токена и список параметров для методов SBP 02.11.2024
1.22 Добавлена информация о сроке жизни формы привязки в раздел Сценарий привязки карты 13.11.2024
1.23 Обновлена информация по формированию подписи запроса 24.12.2024
1.24 Дополнен список кодов ошибок 22.01.2025
1.25 Изменено описание раздела Сценарий привязки карты 17.03.2025
1.26 Обновлены список ошибок по СБП и описание параметра DATA для выплат по СБП 09.07.2025
1.27 Обновлен список ошибок по СБП 10.07.2025
1.28 Обновлено описание сценария Ошибочный перевод для выплаты по СБП 05.08.2025
1.29 Обновлено описание параметра PaymentPurposeDetails 14.08.2025
1.30 Обновлен список ошибок 03.09.2025
1.31 Обновлен список ошибок 04.09.2025
1.32 Обновлено описание продукта 11.09.2025
1.33 Обновлено описание параметров r_middlename и s_middlename 11.09.2025
1.34 Добавлен метод Остаток по счету с овердрафтом 03.10.2025
1.35 Обновлена структура ответа метода Получение статуса выплаты через СБП 08.12.2025