Download OpenAPI specification:Download
Погашения C2A — это решение, позволяющее принимать переводы от физических лиц. Данные переводы совершаются для погашения займов и кредитов, пополнения инвестиционного или брокерского счета. Продукт актуален для ломбардов, банков и МФО, управляющих и инвестиционных компаний, а также брокеров. В продукте отсутствует возможность возврата/отмены операции.
Merchant API — один из инструментов Т‑Кассы для приема переводов от физических лиц. С помощью Merchant API (далее MAPI) Мерчанты могут настроить прием переводов на своих сайтах
Инструкция по использованию MAPI написана для разработчиков и тех, кто хочет самостоятельно настроить вызов платежной формы Т‑Банка или реализовать прием погашений по API на своих ресурсах
При подключении по схеме AFT/комиссия снизу вы можете настроить прием погашений в своём мобильном приложении с помощью SDK:
Термин | Определение |
---|---|
Клиент | Физлицо, производящее перевод с использованием банковской карты на сайте Мерчанта |
Мерчант | Бизнес, принимающий и осуществляющий переводы по банковским картам на своем сайте |
Т‑Касса | Сервис, помогающий проводить выплату клиенту-физлицу |
Эмитент | Банк, выпустивший карту клиента-физлица |
PCI DSS | Международный стандарт безопасности, созданный для защиты данных банковских карт |
3-D Secure | Протокол, который используется как дополнительный уровень безопасности для онлайн-кредитных и дебетовых карт. 3-D Secure добавляет ещё один шаг аутентификации для онлайн-переводов |
Терминал | Точка приема переводов Мерчанта (в общем случае привязывается к сайту, на котором осуществляется прием переводов) Далее в этой документации описан протокол для терминала мерчанта |
Тип подключения | Описание | Особенности вызова методов |
---|---|---|
Down Fee (AFT/комиссия снизу) | Тип подключения, при котором комиссия Т‑Кассы берется из возмещения Мерчанту | |
Side Fee (BROKER/комиссия сбоку) | Тип подключения, при котором комиссия Т‑Кассы берется из отдельного счета, а возмещения Мерчанту отправляются на специальный брокерский счет | |
Up Fee (ATOP/комиссия сверху) | Тип подключения, при котором возмещение Мерчанту выплачивается в полном объеме, а комиссию эквайера оплачивает клиент Мерчанта | Для мерчантов с PCI DSS после вызова метода Init необходимо вызвать метод GetFee. |
Платежные системы разработали требования к безопасности карточных данных клиентов — Payment Card Industry Data Security Standard (PCI DSS). Компания должна пройти сертификацию, чтобы подтвердить надежность управления карточной информацией
Если у вас нет сертификации PCI DSS, вы можете использовать платежную форму Т‑Кассы. В этом случае, все операции, связанные с обработкой критичных данных производятся на стороне Т‑Кассы. Мерчанту достаточно настроить интеграцию с MerchantAPI и инициализировать перевод. Клиент будет перенаправлен на платежную форму, в которую он сможет ввести данные карты. Когда перевод завершится, клиент снова увидит сайт Мерчанта. Подключение по этому типу возможно с использованием методов, описанных в данной документации без пометки «Для Мерчантов с PCI DSS».
Если ваш ресурс соответствует требованиям PCI DSS, то вы можете собирать и хранить карточные данные клиентов. В таком случае, MerchantAPI получает зашифрованные карточные данные от Мерчанта. Подключение по этому типу возможно с использованием методов, описанных в данной документации с пометкой «Для Мерчантов с PCI DSS».
Платежные системы хотят понимать, кем была инициирована карточная операция. Особенно остро эта необходимость проявляется в случае проведения операций без 3ds и по сохраненным реквизитам
Для выполнения требования регулятора мы добавили в метод /Init новый атрибут OperationInitiatorType. В значении этого атрибута ожидаем получать признак того, кем была инициирована операция и какой способ предоставления реквизитов был использован
Подробное описание сценариев проведения операций, значений OperationInitiatorType, взаимосвязь с другими атрибутами и типами терминалов:
Тип операции и инициатор | Описание | Сценарий карточной операции | OperationInitiatorType | RebillId в /Charge | Recurrent в /Init | AFT терминал | ECOM терминал |
---|---|---|---|---|---|---|---|
Сustomer Initiated Credential-Not-Captured (CIT CNC) | Инициированная покупателем оплата без сохранения реквизитов карты для последующего использования | Стандартный платеж | 0 | null | N | Разрешено | Разрешено |
Сustomer Initiated Credential-Captured (CIT CC) | Инициированная покупателем оплата c сохранением реквизитов карты для последующего использования | Стандартный платеж с созданием родительского рекуррентного платежа | 1 | null | Y | Разрешено | Разрешено |
Сustomer Initiated Credential-on-File (CIT COF) | Инициированная покупателем оплата по сохраненным реквизитам карты (ранее была проведена операция с сохранением реквизитов CIT CC) | Рекуррентный платеж, инициированный покупателем | 2 | not null | N | Запрещено | Разрешено |
Merchant Initiated Credential-on-File, Recurring (CIT COF R) | Инициированные торговым предприятием повторяющиеся платежи без графика (ранее была проведена операция с сохранением реквизитов CIT CC). Применяются для оплаты коммунальных услуг, платежей за услуги связи, кабельное/спутниковое телевидение и т.п. Сумма может быть определена заранее или становится известна непосредственно перед оплатой | Рекуррентный платеж, инициированный торговым предприятием | R | not null | N | Запрещено | Разрешено |
Merchant Credential-on-File, Installment (CIT COF I) | Инициированные торговым предприятием повторяющиеся платежи по графику (ранее была проведена операция с сохранением реквизитов CIT CC). Применяется для платежей в рассрочку по товарному кредиту, для оплаты страховки в рассрочку, для погашения кредита в соответствии с графиком платежей. График платежей может быть изменен по соглашению сторон, то есть суммы и даты платежей должны быть известны плательщику (держателю карты) до момента проведения операции. | Рекуррентный платеж, инициированный торговым предприятием | I | not null | N | Разрешено | Запрещено |
Перед выполнением запроса MAPI проверяет, можно ли доверять его инициатору. Для этого сервер проверяет подпись запроса. В MAPI используется механизм подписи с помощью токена. Мерчант должен добавлять токен к каждому запросу, где это требуется.
В описании входных параметров для каждого метода мы указали, нужно подписывать запрос или нет.
Токен в MAPI - это строка, в которой Мерчант зашифровал данные своего запроса с помощью пароля из Личного кабинета мерчанта.
Подпись запроса формируется индивидуально для каждого запроса на основе передаваемых в нем параметров в виде пар Ключ-Значение. В формировании запроса не участвуют объекты и массивы, а также передаваемые в них параметры.
Рассмотрим на примере процесс шифрования тела запроса:
{
"TerminalKey": "TinkoffBankTest",
"PaymentId": "2304882",
"Amount": 19200
}
Чтобы зашифровать данные запроса Мерчант должен выполнить следующие шаги:
TerminalKey
, PaymentId
, Amount
.[{"TerminalKey": "TinkoffBankTest"},{"PaymentId": "2304882"},{"Amount": "19200"}]
Password
, Значение пароля}. Пароль можно найти в личном кабинете Мерчанта[{"TerminalKey": "TinkoffBankTest"},{"PaymentId": "2304882"},{"Amount": "19200"},{"Password": "usaf8fw8fsw21g"}]
[{"Amount": "19200"},{"Password": "usaf8fw8fsw21g"},{"PaymentId": "2304882"},{"TerminalKey": "TinkoffBankTest"}]
"19200usaf8fw8fsw21g2304882TinkoffBankTest"
"d20308febb1c333c26d6b1e138d71d0be922475a97e69f41ee3eb0c525fa0f1c"
Token
в тело запроса и отправить запрос{
"TerminalKey": "TinkoffBankTest",
"PaymentId": "2304882",
"Amount": 19200,
"Token":"d20308febb1c333c26d6b1e138d71d0be922475a97e69f41ee3eb0c525fa0f1c"
}
Прием переводов осуществляется вызовом методов с передачей параметров методом POST в формате JSON. Все методы и передаваемые параметры являются чувствительными к регистру
Для POST-запроса в заголовке должен присутствовать Content Type: application/json
URL: https://securepay.tinkoff.ru/v2/
Основная сущность в Погашениях от Т‑Кассы — это перевод. В зависимости от настроек терминала перевод может идти по разным сценариям
Для того, чтобы создать перевод, Мерчант должен инициировать перевод методом Init
, в котором передается сумма перевода и номер заказа
При создании перевода (вызов метода /Init), в объекте DATA в атрибуте OperationInitiatorType необходимо передавать признак инициатора операции. См. метод /Init Инициализация перевода без PCI DSS и Инициализация перевода с PCI DSS
В ответ MAPI создаст новый перевод в статусе NEW и вернет обратно его идентификатор в параметре PaymentId
На следующем этапе Мерчант вызвает метод Check3DSVersion, в котором передает зашифрованные карточные данные клиента и PaymentId
. Это нужно для проверки версии протокола 3D-Secure по карте. Она может быть либо версии 1.0, либо 2.0
Если в ответе метода Check3DSVersion
есть параметр ThreeDSMethodURL
, то браузер клиента должен вызывать ресурс, адрес которого пришел в параметре >ThreeDSMethodURL
. В запросе нужно передать строковый параметр threeDSMethodData
. Эта строка — закодированный в формате base64
JSON-объект с параметрами:
Название параметра | Тип данных | Описание |
---|---|---|
threeDSMethodNotificationURL | string | Обратный адрес, на который будет >отправлен запрос после прохождения 3DS Method |
threeDSServerTransID | string | Идентификатор транзакции из ответа метода Check3DSVersion |
Браузер должен вызвать 3DS Method
в скрытом iframe и передать данные в формате x-www-form-urlencoded
Пример запроса на ThreeDSMethodURL
:
<body onload="document.form.submit()">
<form name="form" action="{ThreeDSMethodURL}" method="post" >
<input type="hidden" name="threeDSMethodData" value="eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6IjU2ZTcxMmE1LTE5MGEtNDU4OC05MWJjLWUwODYyNmU3N2M0NCIsInRocmVlRFNNZXRob2ROb3RpZmljYXRpb25VUkwiOiJodHRwczovL3Jlc3QtYXBpLXRlc3QudGlua29mZi5ydS92Mi9Db21wbGV0ZTNEU01ldGhvZHYyIn0">
</form>
</body>
Пример декодированного значения threeDSMethodData
:
{
"threeDSServerTransID":"56e712a5-190a-4588-91bc-e08626e77c44",
"threeDSMethodNotificationURL":"https://rest-api-test.tinkoff.ru/v2/>Complete3DSMethodv2"
}
За проведение перевода отвечает метод — FinishAuthorize
. Через него Мерчант передает в MAPI карточные данные клиента, таким образом продолжая обработку перевода
В ответ MAPI вернет один из возможных статусов:
Статус | Описание | Доступные действия |
---|---|---|
AUTH_FAIL | Неуспешная авторизация | Провести перевод заново |
REJECTED | Перевод отклонен | Провести перевод заново |
CONFIRMED | Успешное подтверждение перевода | - |
AUTHORIZED | Авторизация прошла успешно | Подтвердить перевод |
3DS_CHECKING | Требуется подтверждение перевода по 3D-Secure | Пройти подтверждение (действие доступно для клиента) |
Оплата всегда проводится только по одностадийной схеме (списание автоматически подтверждается)
Если по переводу не требуется проходить подтверждение 3DS, то MAPI в ответе FinishAuthorize
вернет один из двух конечных статусов перевода:
CONFIRMED (при успешном сценарии),
REJECTED (при неуспешном сценарии).
Если в ответе метода FinishAuthorize
вернулся статус перевода 3DS_CHECKING, то это означает, что требуется пройти проверку 3D-Secure. Для этого Мерчант должен сформировать запрос в сервис аутентификации банка, выпустившего карту. Адрес сервиса возвращается в ответе FinishAuthorize
в параметре ACSUrl
. Вместе с этим требуется перенаправить клиента на эту же страницу ACSUrl
для прохождения 3DS.
В заголовке запроса требуется передать параметр Content-Type
со значением application/x-www-form-urlencoded
. Набор параметров в теле запроса зависит от версии протокола 3DS по карте
Если перевод завершился успешно, то клиент будет перенаправлен на страницу Success URL
из настроек терминала
Мерчант может сохранять платежные данные клиента и использовать их для повторных списаний. Такие переводы называются рекуррентными. В этом случае клиент должен совершить хотя бы один перевод, который был настроен как рекуррентный. Для этого Мерчант должен передать параметр Recurrent
в методе Init.
После успешного перевода MAPI отправит Мерчанту уведомление об изменении статуса перевода на AUTHORIZED или CONFIRMED и передаст параметр RebillId
. Следующие переводы этого клиента будут рекуррентными, если Мерчант вызовет метод Init, а затем без переадресации на PaymentURL
вызовет метод Charge и передаст параметр RebillId
Опция не предусмотрена для терминалов с комиссией сверху (ATOP)
Мерчант может получить информацию об основных параметрах перевода в любой момент
Если требуется получить данные по конкретному переводу, то Мерчант должен вызвать метод GetState
и передать в запросе PaymentId
Если по одному заказу было несколько, то получить историю переводов и их текущий статус можно с помощью метода CheckOrder
. Мерчант должен передать в запросе OrderId
В процессе обработки перевод меняет свое состояние. В таблице ниже описаны основные статусы, а также условия перехода в них
Статус | Правило перехода |
---|---|
NEW | MAPI получил запрос Init . После этого, он создает новый перевод в статусе NEW и возвращает обратно его идентификатор в параметре PaymentId и ссылку на платежную форму в параметре PaymentURL |
FORM_SHOWED | Мерчант перенаправил клиента на страницу платежной формы PaymentURL , и страница загрузилась у клиента в браузере |
AUTHORIZING | Перевод обрабатывается MAPI и платежной системой |
3DS_CHECKING | Перевод проходит проверку 3D-Secure |
3DS_CHECKED | Перевод успешно прошел проверку 3D-Secure |
AUTHORIZED | Перевод авторизован, деньги заблокированы на карте клиента |
CONFIRMING | Подтверждение перевода обрабатывается MAPI и платежной системой |
CONFIRMED | Перевод подтвержден, деньги списаны с карты клиента |
DEADLINE_EXPIRED | 1. Клиент не завершил перевод в срок жизни ссылки на платежную форму PaymentURL . Этот срок Мерчант передает в параметре RedirectDueDate при вызове метода Init . 2. Перевод не прошел проверку 3D-Secure в срок. |
REJECTED | Банк отклонил перевод |
AUTH_FAIL | Перевод завершился ошибкой или не прошел проверку 3D-Secure |
PAY_CHECKING | Перевод обрабатывается |
На схеме ниже - полный жизненный цикл перевода
* Метод Cancel может быть применен только для переводов в статусе NEW и FORM_SHOWED
Если версия 3DS 1.0, то в запросе передаются параметры:
Название параметра | Описание |
---|---|
MD | Информация для идентификации перевода на стороне торговой точки. Придет в ответе метода FinishAuthorize |
PaReq | Запрос на аутентификацию плательщика, который содержит разные детали транзакции. Придет в ответе метода FinishAuthorize |
TermURL | Адрес перенаправления после аутентификации 3DS. Должен содержать ссылку на обработчик на стороне Мерчанта, принимающий результаты прохождения 3-D Secure |
Если версия 3DS 2.0, то в запросе передаются параметры, в зависимости от типа устройства клиента. Тип устройства передается в запросе FinishAuthorize
в параметре deviceChannel
. Возможны два варианта — браузер (BRW, код 02
) и приложение (APP, код 01
).
Параметры для браузера:
Название параметра | Тип данных | Описание |
---|---|---|
creq | string | JSON с параметрами threeDSServerTransID , acsTransID ,challengeWindowSize , messageType , messageVersion закодированный в формат base64 |
Строка creq
для браузера формируется из следующих параметров:
Название параметра | Тип данных | Описание |
---|---|---|
threeDSServerTransID | string | Идентификатор транзакции из ответа метода FinishAuthorize |
acsTransID | string | Идентификатор транзакции, присвоенный ACS, полученный в ответе на FinishAuthorize |
challengeWindowSize | string | Размер экрана, на котором открыта страница ACS.Допустимые значения: |
messageType | string | Передается фиксированное значение «CReq» |
messageVersion | string | Версия 3DS, полученная из ответа метода Check3dsVersion |
Параметры для приложения:
Название параметра | Тип данных | Описание |
---|---|---|
creq | string | JWE object с параметрами threeDSServerTransID , acsTransID , messageType , messageVersion , sdkTransID , sdkCounterStoA закодированный в формат PS256 |
Строка creq
для приложения формируется из следующих параметров:
Название параметра | Тип данных | Описание |
---|---|---|
threeDSServerTransID | string | Идентификатор транзакции из ответа метода FinishAuthorize |
acsTransID | string | Идентификатор транзакции, присвоенный ACS, полученный в ответе на FinishAuthorize |
messageType | string | Передается фиксированное значение «CReq» |
messageVersion | string | Версия 3DS, полученная из ответа метода Check3dsVersion |
sdkTransID | string | Уникальный идентификатор транзакции, назначенный 3DS SDK для идентификации одной транзакции, полученный в ответе на FinishAuthorize |
sdkCounterStoA | string | Внутренний счетчик 3DS SDK внутри ACS. Поддерживаемые значения: 000-255 |
После того, как сервис аутентификации банка, выпустившего карту, прислал результат прохождения 3D-Secure, Мерчант должен передать эту информацию в MAPI. В зависимости от версии протокола 3DS для этого нужно вызвать один из методов:
Submit3DSAuthorization
,Submit3DSAuthorizationV2
.Метод инициирует перевод
TerminalKey required | string <= 20 characters Идентификатор терминала. Выдается Мерчанту Т‑Кассой при заведении терминала |
Amount required | number <= 10 characters
|
OrderId required | string <= 36 characters Идентификатор заказа в системе Мерчанта |
Token | string Подпись запроса.
|
Description | string <= 250 characters Описание заказа |
CustomerKey | string <= 36 characters Идентификатор клиента в системе Мерчанта.
|
Recurrent | string <= 1 characters Признак родительского рекуррентного платежа.
Значение зависимо от атрибутов:
|
Language | string <= 2 characters Язык платежной формы
|
NotificationURL | string <uri> URL на веб-сайте Мерчанта, куда будет отправлен POST запрос о статусе выполнения вызываемых методов (для настройки нужно обратиться на acq_help@tbank.ru):
|
SuccessURL | string <uri> URL на веб-сайте Мерчанта, куда будет переведен клиент в случае успешного перевода (для настройки нужно обратиться на acq_help@tbank.ru):
|
FailURL | string <uri> URL на веб-сайте Мерчанта, куда будет переведен клиент в случае неуспешного перевода (для настройки нужно обратиться на acq_help@tbank.ru):
|
RedirectDueDate | any <date-time> Cрок жизни ссылки. Если текущая дата превышает дату, переданную в данном параметре, ссылка для перевода становится недоступной и перевод выполнить нельзя
В случае, если параметр RedirectDueDate не был передан, проверяется настроечный параметр платежного терминала REDIRECT_TIMEOUT, который может содержать значение срока жизни ссылки в часах. Если его значение больше нуля, то оно будет установлено в качестве срока жизни ссылки. Иначе, устанавливается значение «по умолчанию» — 1440 мин.(1 сутки). |
object JSON-объект, который позволяет передавать дополнительные параметры по операции и задавать определенные настройки в формате "ключ":"значение" Максимальная длина для каждого передаваемого параметра:
Максимальное количество пар "ключ":"значение" — 20
к клиенту автоматически будут привязаны данные Email и телефон, и они будут возвращаться при вызове метода GetCustomer.
Подробную таблицу см. в разделе Передача признака инициатора операции В случае передачи значений атрибутов не соответствующих таблице — MAPI вернет ошибку 1126 (Несопоставимые значения rebillId или Recurrent с переданным значением OperationInitiatorType) | |
PayForm | string Deprecated Value: "mfo" Ранее для комиссии сверху заполнение атрибута было обязательно. В настоящий момент атрибут не используется. Вносить изменения в ранее созданные интеграции не требуется. |
Descriptor | string Динамический дескриптор точки |
{- "TerminalKey": "TinkoffBankTest",
- "Amount": 140000,
- "OrderId": "21050",
- "Token": "7241ac8307f349afb7bb9dda760717721bbb45950b97c67289f23d8c69cc7b96",
- "Description": "Подарочная карта на 1400.00 рублей",
- "CustomerKey": "string",
- "Recurrent": "Y",
- "Language": "ru",
- "RedirectDueDate": null,
- "DATA": {
- "additionalProperties": "string",
- "OperationInitiatorType": "0",
- "AddInfo": "string"
}, - "PayForm": "mfo",
- "Descriptor": "678451"
}
{- "TerminalKey": "TinkoffBankTest",
- "Amount": 100000,
- "OrderId": "21050",
- "Success": true,
- "Status": "NEW",
- "PaymentId": "13660",
- "ErrorCode": "0",
- "Message": "Неверные параметры",
- "Details": "0"
}
Метод используется для комиссии сверху (ATOP) с PCI DSS
Метод используется для подсчета суммы комиссии. Его необходимо вызывать после метода Init и до FinishAuthorize
PaymentId required | string Уникальный идентификатор транзакции в системе Т‑Кассы |
SourceCard required | string Enum: "CardNumber" "CardId" Источник карты:
|
required | object (FeeCardDataForGetFee) Объект с данными для проведения платежа в зависимости от способа оплаты. |
{- "PaymentId": "89453681",
- "SourceCard": "CardNumber",
- "FeeCardData": {
- "PAN": "4444444411111111"
}
}
{- "AmountIncludingFee": 16450934,
- "ErrorCode": "0",
- "FeeAmount": 327469,
- "Success": true
}
Для Мерчантов с PCI DSS
Проверяет поддерживаемую версию 3DS протокола по карточным данным из входящих
параметров
При определении второй версии, возможно в ответе получение данных для прохождения
дополнительного метода 3DS Method
, который позволяет эмитенту собрать данные браузера
клиента — это может быть полезно при принятии решения в пользу Frictionless Flow
(аутентификация клиента без редиректа на страницу ACS)
PaymentId required | string <= 20 characters Идентификатор перевода в системе Т‑Кассы |
TerminalKey required | string <= 20 characters Идентификатор терминала, выдается Мерчанту Т‑Кассой |
CardData required | any Зашифрованные данные карты в формате:
type: string |
Token required | string Подпись запроса |
{- "PaymentId": "13660",
- "TerminalKey": "TinkoffBankTest",
- "CardData": "U5jDbwqOVx+2vDApxe/rfACMt+rfWXzPdJ8ZXxNFVIiZaLZrOW72bGe9cKZdIDnekW0nqm88YxRD↵jyfa5Ru0kY5cQV alU+juS1u1zpamSDtaGFeb8sRZfhj72yGw+io+qHGSBeorcfgoKStyKGuBPWfG↵d0PLHuyBE6QgZyIAM1XfdmNlV0UAxOnkTGDsskL pIt3AWhw2e8KOar0vwbgCTDjznDB1/DLgOW01↵Aj/bXyLJoG1BkOrPBm9JURs+f+uyFae0hkRicNKNgXoN5pJTSQxOEauOi6ylsVJ B3WK5MNYXtj6x↵GlxcmTk/LD9kvHcjTeojcAlDzRZ87GdWeY8wgg==",
- "Token": "30797e66108934dfa3d841b856fdad227c6b9c46d6a39296e02dc800d86d181e"
}
{- "Version": "2.1.0",
- "TdsServerTransID": "17d3791b-5cfa-4318-bc23-3d949e8c4b7e",
- "PaymentSystem": "mir",
- "Success": true,
- "ErrorCode": "0",
- "Message": "None",
- "Details": "None"
}
Для Мерчантов с PCI DSS
Если в ответе метода Check3DSVersion был получен параметр ThreeDSMethodURL, то необходимо отправить запрос на стороне браузера по полученному ThreeDSMethodURL. Это необходимо для сбора информации ACS-ом о девайсе клиента. Отправка запроса 3DS Method в браузере должна происходить в скрытом frame.
Время ожидания выполнения метода не более 10 секунд
threeDSMethodData required | string JSON с параметрами threeDSMethodNotificationURL, threeDSServerTransID, закодированный в формат base-64
|
<body onload="document.form.submit()"> <form name="form" action="{ThreeDSMethodURL}" method="post"> <input type="hidden" name="threeDSMethodData" value="eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6IjU2ZTcxMmE1LTE5MGEtNDU4OC05MWJjLWUwODYyNmU3N2M0NCIsInRocmVlRFNNZXRob2ROb3RpZmljYXRpb25VUkwiOiJodHRwczovL3Jlc3QtYXBpLXRlc3QudGlua29mZi5ydS92Mi9Db21wbGV0ZTNEU01ldGhvZHYyIn0"> </form> </body>
Для Мерчантов с PCI DSS
Подтверждает перевод передачей реквизитов, а также списывает денежные средства
с карты клиента. Используется, если у площадки есть сертификация PCI DSS и
собственная платежная форма
TerminalKey required | string Идентификатор терминала. Выдается Мерчанту Т‑Кассой при заведении терминала | ||||||||||||||||||||||||||||
PaymentId required | string Уникальный идентификатор транзакции в системе Т‑Кассы | ||||||||||||||||||||||||||||
Token required | string Подпись запроса | ||||||||||||||||||||||||||||
IP | string IP-адрес клиента Обязательный параметр для 3DS второй версии. DS платежной системы требует передавать данный адрес в полном формате, без каких-либо сокращений (8 групп по 4 символа) Данный формат регламентируется на уровне спецификации EMVCo Пример правильного адреса: | ||||||||||||||||||||||||||||
3DSv2 (object) or object JSON объект, содержащий дополнительные параметры в виде Максимальная длина для каждого передаваемого параметра:
Максимальное количество пар | |||||||||||||||||||||||||||||
CardData required | string Объект CardData собирается в виде списка
Пример значения элемента формы CardData:
В случае получения CAVV в CardData перевод будет проводиться как оплата токеном, иначе прохождение 3DS будет регулироваться стандартными настройками терминала/перевода | ||||||||||||||||||||||||||||
Amount | number <= 10 characters Сумма в копейках | ||||||||||||||||||||||||||||
deviceChannel | string Канал устройства. Поддерживается следующий канал устройства:
|
{- "TerminalKey": "TinkoffBankTest",
- "PaymentId": "700001702044",
- "Token": "f5a3be479324a6d3a4d9efa0d02880b77d04a91758deddcbd9e752a6df97cab5",
- "IP": "2011:0db8:85a3:0101:0101:8a2e:0370:7334",
- "DATA": {
- "threeDSCompInd": "Y",
- "language": "RU",
- "timezone": "-300",
- "screen_height": "1024",
- "screen_width": "967",
- "cresCallbackUrl": "Y",
- "colorDepth": "48",
- "javaEnabled": "false"
}, - "CardData": "eyJzaWduYXR1cmUiOiJNRVVDSVFEdjNJS1A5WG9nWml4RytUUm9zZWFDK0RGd3RKd2FtMHVEcm91RUVGZVB6Z0lnYXBFbHhxQ3AwQWtZcVVmTFVMaVNhUjBKWkVQNmg 4THFqYks5YkJKQnM5d1x1MDAzZCIsInByb3RvY29sVmVyc2lvbiI6IkVDdjEiLCJzaWduZWRNZXNzYWdlIjoie1wiZW5jcnlwdGVkTWVzc2FnZVwiOlwiQW11dm5OYUIralBsa3VKTitrMUZLSDZFcm1VK2lTY052 L05rR3FFaXIxOHZmSWxkVFJ5L2U4cW5zMXkyanFtcm1acU1JSWNYMUhyTHBxRURpaXkvS3B6SUhNZFllcXRkSVVNOU1tRjNpejU2d2NTZUVVaXU2ODI3QThGcitaYm8xRWtWRjY1TUxRYVY3NlBOUFRndH UvQ1BodW5HUk0rN25KdVhDczVtbkVvOHFma0RNVk8xWktGWDQ4TnVEL2FKcDJQdVVIY2puSnBTZ0pTSDB4U21YSnAzU1MreXFDNm54N254WUEwN2h4YjYvSnp2R2s3ZExDU2hWWGU1Z2haUjNDaFQyV W8rRnpXTWJRRGZtSjBLQW9kc2VlR0xaaitqMzVqOUlKMkhJRFhIUUZZMWNuTW9YVUVoTjgvdEkvRkpqRnJiYVdFRkIzRDZwOFUzT2tkUmVaNHAyYi8yYURNZXVxR1ozSUtjc3R0R2lKMFhQQVhhZXYyQU8 o1M3RRQXVqQXRYdFlaekNTVjVBVXdXZS85T1VcXHUwMDNkXCJ9In0=",
- "Amount": 10000,
- "deviceChannel": "BRW"
}
{- "TerminalKey": "TinkoffBankTest",
- "Amount": 100000,
- "OrderId": "21050",
- "Success": true,
- "Status": "NEW",
- "PaymentId": "13660",
- "ErrorCode": "0",
- "Message": "Неверные параметры",
- "Details": "0",
- "RebillId": "21813157",
- "CardId": "string"
}
Для Мерчантов с PCI DSS
Для 3DS v1.0: ACSUrl возвращается в ответе метода Check3DSVersion. Если в ответе метода Check3DSVersion возвращается статус 3DS_CHECKING, Мерчанту необходимо сформировать запрос на URL ACS банка, выпустившего карту (в ответе метода /Check3DSVersion параметр ACSUrl)
Для 3DS v2.1: Если в ответе метода Check3DSVersion возвращается статус 3DS_CHECKING, Мерчанту необходимо сформировать запрос на URL ACS банка, выпустившего карту (в ответе параметр ACSUrl).
Компонент ACS использует пары сообщений CReq и CRes для выполнения Проверки (Challenge). В ответ на полученное сообщение CReq компонент ACS формирует сообщение CRes, которое запрашивает держателя карты ввести данные для аутентификации
Формат ответа: CRes, полученный по cresCallbackUrl из запроса Check3DSVersion
При успешном результате прохождения 3-D Secure подтверждается инициированный платеж с помощью методов Submit3DSAuthorization или Submit3DSAuthorizationV2 в зависимости от версии 3DS
URL: ACSUrl (возвращается в ответе метода Check3DSVersion)
MD required | string Уникальный идентификатор транзакции в системе Банка (возвращается в ответе на Check3DSVersion) |
PaReq required | string Результат аутентификации 3-D Secure (возвращается в ответе на Check3DSVersion) |
TermUrl required | string Адрес перенаправления после аутентификации 3-D Secure (URL обработчик на стороне Мерчанта, принимающий результаты прохождения 3-D Secure) |
<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>
{- "cres": "FwlGfSwmRARfDXsgt1PBvbtYTIMY2l2SThPEeei6aFwlGfSwmRARfDXsgt1PBvbtYTIMY2l2SThPEeei6aGIdXfZ3psSfuKZt3O35yCVpfAbYs8AmIdIHQmJyskyNxYZyGIdXfZ3psSfuKZt3O35yCVpNkQwzuH68WlB9oiEnt6NdGaegzJ6ljDlKAl7tvQNCPw2FjDWbhHlxj34ut0hhivaJBNHSmvumv7sndTpA7AzxJYNUhkp67fG411fAbYs8AmIdIHQmJyskyNxYZy"
}
Для Мерчантов с PCI DSS
Осуществляет проверку результатов прохождения 3-D Secure и при успешном результате
прохождения 3-D Secure подтверждает инициированный перевод и осуществляет списание денежных средств с карты
клиента.
Статус при успешном сценарии: CONFIRMED.
Статус при неуспешном сценарии: REJECTED.
Формат запроса: x-www-form-urlencoded
После получения на TermUrl
мерчанта ответа ACS с результатами прохождения 3-D Secure необходимо
сформировать запрос к методу Submit3DSAuthorization
MD required | string Уникальный идентификатор транзакции в системе Т‑Кассы (возвращается в ответе от ACS) |
PaRes required | string Шифрованная строка, содержащая результаты 3-D Secure аутентификации (возвращается в ответе от ACS) |
PaymentId required | string Уникальный идентификатор транзакции в системе Т‑Кассы |
TerminalKey required | string <= 20 characters Идентификатор терминала, выдается Мерчанту Т‑Кассой |
Token required | string Подпись запроса |
<body onload="document.form.submit()"> <form name="form" action="https://securepay.tinkoff.ru/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>
{- "TerminalKey": "TinkoffBankTest",
- "OrderId": "21050",
- "Success": true,
- "Status": "CONFIRMED",
- "PaymentId": "10063",
- "ErrorCode": "0"
}
Для Мерчантов с PCI DSS
Осуществляет проверку результатов прохождения 3-D Secure v2 и при успешном результате
прохождения 3-D Secure v2 подтверждает инициированный перевод и осуществляет списание денежных средств с карты
клиента.
Статус при успешном сценарии: CONFIRMED.
Статус при неуспешном сценарии: REJECTED.
Формат запроса: x-www-form-urlencoded
После получения на TermUrl
Мерчанта ответа ACS с результатами прохождения 3-D Secure необходимо
сформировать запрос к методу Submit3DSAuthorization
PaymentId required | string Уникальный идентификатор транзакции в системе Т‑Кассы |
TerminalKey required | string <= 20 characters Идентификатор терминала, выдается Мерчанту Т‑Кассой |
Token required | string Подпись запроса |
<body onload="document.form.submit()"> <form name="form" action="https://securepay.tinkoff.ru/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>
{- "OrderId": "21050",
- "TerminalKey": "TinkoffBankTest",
- "Status": "CONFIRMED",
- "PaymentId": "10063",
- "Success": true,
- "ErrorCode": "0"
}
Мерчант может получить информацию об основных параметрах перевода в любой момент.
Если требуется получить данные по конкретному переводу, то Мерчант должен вызвать метод GetState
и передать в запросе PaymentId
.
Если по одному заказу было несколько, то получить историю переводов и их текущий статус можно с помощью метода CheckOrder
. Мерчант должен передать в запросе OrderId
.
TerminalKey required | string <= 20 characters Идентификатор терминала. Выдается Мерчанту Т‑Кассой при заведении терминала |
PaymentId required | string <= 20 characters Идентификатор перевода в системе Т‑Кассы |
Token required | string Подпись запроса |
{- "TerminalKey": "TinkoffBankTest",
- "PaymentId": "13660",
- "Token": "7241ac8307f349afb7bb9dda760717721bbb45950b97c67289f23d8c69cc7b96"
}
{- "TerminalKey": "TinkoffBankTest",
- "Amount": 100000,
- "OrderId": "21050",
- "Success": true,
- "Status": "NEW",
- "PaymentId": "13660",
- "ErrorCode": "0",
- "Message": "OK",
- "Details": "0"
}
Мерчант может получить информацию об основных параметрах перевода в любой момент.
Если требуется получить данные по конкретному переводу, то Мерчант должен вызвать метод GetState
и передать в запросе PaymentId
.
Если по одному заказу было несколько, то получить историю переводов и их текущий статус можно с помощью метода CheckOrder
. Мерчант должен передать в запросе OrderId
.
TerminalKey required | string Идентификатор терминала выдается Мерчанту Т‑Кассой |
OrderId required | string Номер заказа в системе Мерчанта |
Token required | string Подпись запроса |
{- "TerminalKey": "TinkoffBankTest",
- "OrderId": "21057",
- "Token": "4c4c36adf9936b011879fa26f60759e7b47e57f7968283129b0ae9ac457486ab"
}
{- "Success": true,
- "ErrorCode": "0",
- "Message": "OK",
- "TerminalKey": "TinkoffBankTest",
- "OrderId": "21050",
- "Payments": [
- {
- "Success": true,
- "Amount": 823200,
- "Status": "CONFIRMED",
- "PaymentId": "371807778",
- "RRN": "417711157772"
}
]
}
Справку по конкретной операции можно получить на:
1. URL-сервиса, развернутого на своей стороне.
2. Электронную почту.
TerminalKey required | string Идентификатор терминала, выдается Мерчанту Т‑Кассой |
CallbackUrl required | string URL сервиса получения справок |
PaymentIdList required | Array of numbers Json-массив, содержащий в себе перечень paymentID (уникальных идентификаторов в системе Т‑Кассы) c типом Number |
Token required | string Подпись запроса |
{- "TerminalKey": "TinkoffBankTest",
- "PaymentIdList": [
- 1201206437,
- 1201206442
], - "Token": "f2fdd7fec8225872590e1558b7ea258c75df8f300d808006c41ab540dd7514d9"
}
{- "Success": true,
- "ErrorCode": 0,
- "Message": "OK",
- "Details": "None",
- "PaymentIdList": {
- "Success": true,
- "ErrorCode": 0,
- "Message": "Запрос на отправку документа принят",
- "PaymentId": "1201206442"
}
}
На схеме ниже - полный жизненный цикл перевода
* Метод Cancel может быть применен только для переводов в статусе NEW и FORM_SHOWED
Методы Authorize и FinishAuthorize вызываются системами Т‑Кассы при переадресации клиента на PaymentURL (возвращается в ответе на метод Init). Актуально для Мерчантов, использующих платежную форму Банка
Вызов происходит автоматически при переадресации клиента на страницу PaymentURL, указанную в ответе на Init. Статус перевода выставляется в FORMSHOWED
Подтверждает инициированный перевод передачей карточных данных и осуществляет списание денежных средств с карты клиента
Вызывается формой оплаты, доступной по адресу PaymentURL, при заполнении клиентом карточных данных и нажатии кнопки «Оплатить»
Статус перевода:
Переадресация клиента:
Метод инициирует перевод
TerminalKey required | string <= 20 characters Идентификатор терминала. Выдается Мерчанту Т‑Кассой при заведении терминала |
Amount required | number <= 10 characters
|
OrderId required | string <= 36 characters Идентификатор заказа в системе Мерчанта |
Token | string Подпись запроса.
|
Description | string <= 250 characters Описание заказа |
CustomerKey | string <= 36 characters Идентификатор клиента в системе Мерчанта.
|
Recurrent | string <= 1 characters Признак родительского рекуррентного платежа.
Значение зависимо от атрибутов:
|
Language | string <= 2 characters Язык платежной формы
|
NotificationURL | string <uri> URL на веб-сайте Мерчанта, куда будет отправлен POST запрос о статусе выполнения вызываемых методов (для настройки нужно обратиться на acq_help@tbank.ru):
|
SuccessURL | string <uri> URL на веб-сайте Мерчанта, куда будет переведен клиент в случае успешного перевода (для настройки нужно обратиться на acq_help@tbank.ru):
|
FailURL | string <uri> URL на веб-сайте Мерчанта, куда будет переведен клиент в случае неуспешного перевода (для настройки нужно обратиться на acq_help@tbank.ru):
|
RedirectDueDate | any <date-time> Cрок жизни ссылки. Если текущая дата превышает дату, переданную в данном параметре, ссылка для перевода становится недоступной и перевод выполнить нельзя
В случае, если параметр RedirectDueDate не был передан, проверяется настроечный параметр платежного терминала REDIRECT_TIMEOUT, который может содержать значение срока жизни ссылки в часах. Если его значение больше нуля, то оно будет установлено в качестве срока жизни ссылки. Иначе, устанавливается значение «по умолчанию» — 1440 мин.(1 сутки). |
object JSON-объект, который позволяет передавать дополнительные параметры по операции и задавать определенные настройки в формате "ключ":"значение" Максимальная длина для каждого передаваемого параметра:
Максимальное количество пар "ключ":"значение" — 20
к клиенту автоматически будут привязаны данные Email и телефон, и они будут возвращаться при вызове метода GetCustomer.
Подробную таблицу см. в разделе Передача признака инициатора операции В случае передачи значений атрибутов не соответствующих таблице — MAPI вернет ошибку 1126 (Несопоставимые значения rebillId или Recurrent с переданным значением OperationInitiatorType) | |
PayForm | string Deprecated Value: "mfo" Ранее для комиссии сверху заполнение атрибута было обязательно. В настоящий момент атрибут не используется. Вносить изменения в ранее созданные интеграции не требуется. |
Descriptor | string Динамический дескриптор точки |
{- "TerminalKey": "TinkoffBankTest",
- "Amount": 140000,
- "OrderId": "21050",
- "Token": "7241ac8307f349afb7bb9dda760717721bbb45950b97c67289f23d8c69cc7b96",
- "Description": "Подарочная карта на 1400.00 рублей",
- "CustomerKey": "string",
- "Recurrent": "Y",
- "Language": "ru",
- "RedirectDueDate": null,
- "DATA": {
- "additionalProperties": "string",
- "OperationInitiatorType": "0",
- "AddInfo": "string"
}, - "PayForm": "mfo",
- "Descriptor": "678451"
}
{- "TerminalKey": "TinkoffBankTest",
- "Amount": 100000,
- "OrderId": "21050",
- "Success": true,
- "Status": "NEW",
- "PaymentId": "13660",
- "ErrorCode": "0",
- "Message": "Неверные параметры",
- "Details": "0"
}
Мерчант может получить информацию об основных параметрах перевода в любой момент.
Если требуется получить данные по конкретному переводу, то Мерчант должен вызвать метод GetState
и передать в запросе PaymentId
.
Если по одному заказу было несколько, то получить историю переводов и их текущий статус можно с помощью метода CheckOrder
. Мерчант должен передать в запросе OrderId
.
TerminalKey required | string <= 20 characters Идентификатор терминала. Выдается Мерчанту Т‑Кассой при заведении терминала |
PaymentId required | string <= 20 characters Идентификатор перевода в системе Т‑Кассы |
Token required | string Подпись запроса |
{- "TerminalKey": "TinkoffBankTest",
- "PaymentId": "13660",
- "Token": "7241ac8307f349afb7bb9dda760717721bbb45950b97c67289f23d8c69cc7b96"
}
{- "TerminalKey": "TinkoffBankTest",
- "Amount": 100000,
- "OrderId": "21050",
- "Success": true,
- "Status": "NEW",
- "PaymentId": "13660",
- "ErrorCode": "0",
- "Message": "OK",
- "Details": "0"
}
Справку по конкретной операции можно получить на:
1. URL-сервиса, развернутого на своей стороне.
2. Электронную почту.
TerminalKey required | string Идентификатор терминала, выдается Мерчанту Т‑Кассой |
CallbackUrl required | string URL сервиса получения справок |
PaymentIdList required | Array of numbers Json-массив, содержащий в себе перечень paymentID (уникальных идентификаторов в системе Т‑Кассы) c типом Number |
Token required | string Подпись запроса |
{- "TerminalKey": "TinkoffBankTest",
- "PaymentIdList": [
- 1201206437,
- 1201206442
], - "Token": "f2fdd7fec8225872590e1558b7ea258c75df8f300d808006c41ab540dd7514d9"
}
{- "Success": true,
- "ErrorCode": 0,
- "Message": "OK",
- "Details": "None",
- "PaymentIdList": {
- "Success": true,
- "ErrorCode": 0,
- "Message": "Запрос на отправку документа принят",
- "PaymentId": "1201206442"
}
}
Осуществляет рекуррентный (повторный) перевод — безакцептное списание денежных средств со счета банковской карты клиента.
Для возможности его использования клиент должен совершить хотя бы один перевод в пользу Мерчанта, который должен быть указан как рекуррентный (см. параметр Recurrent методе Init), фактически являющийся первичным. По завершении перевода в нотификации на AUTHORIZED или CONFIRMED будет передан параметр RebillId
.
В дальнейшем для совершения рекуррентного перевода Мерчант должен вызвать метод Init, а затем без переадресации на PaymentURL вызвать метод Charge для перевода по тем же самым реквизитам и передать параметр RebillId
, полученный при совершении первичного перевода
При проведении рекуррентного платежа учитывать взаимосвязь атрибута RebillId в методе /Charge с:
Наглядно допустимые сценарии взаимосвязи описаны в таблице:
CIT/MIT | Тип операции | OperationInitiator в /Init | RebillId в /Charge | Recurrent в /Init | AFT терминал | ECOM терминал |
---|---|---|---|---|---|---|
CIT | Credential-Not-Captured | 0 | null | N | Разрешено | Разрешено |
CIT | Credential-Captured | 1 | null | Y | Разрешено | Разрешено |
CIT | Credential-on-File | 2 | not null | N | Запрещено | Разрешено |
MIT | Credential-on-File, Recurring | R | not null | N | Запрещено | Разрешено |
MIT | Credential-on-File, Installment | I | not null | N | Разрешено | Запрещено |
В случае передачи значений атрибутов не соответствующих таблице — MAPI вернет ошибку 1126 (Несопоставимые значения rebillId или Recurrent с переданным значением OperationInitiatorType)
Recurrent=Y
и CustomerKey
.PaymentUrl
(только для Мерчантов без PCI DSS
).RebillId
, который необходимо сохранить.Recurrent
и CustomerKey
здесь не нужны).PaymentId
, (для Мерчантов без PCI DSS: дополнительно сделать переадресацию клиента на PaymentUrl
, для Мерчантов с PCI DSS: переадресацию производить не надо).RebillId
, полученным в п.3, и параметром PaymentId
, полученным в п.5.TerminalKey required | string <= 20 characters Идентификатор терминала. Выдается Мерчанту Т‑Кассой при заведении терминала |
PaymentId required | string Уникальный идентификатор транзакции в системе Т‑Кассы |
RebillId required | string Идентификатор рекуррентного платежа. Значение зависимо от атрибутов:
|
Token required | string Подпись запроса |
{- "TerminalKey": "TinkoffBankTest",
- "PaymentId": "700001702044",
- "RebillId": "145919",
- "Token": "f5a3be479324a6d3a4d9efa0d02880b77d04a91758deddcbd9e752a6df97cab5"
}
{- "TerminalKey": "TinkoffBankTest",
- "Amount": 100000,
- "OrderId": "21050",
- "Success": true,
- "Status": "NEW",
- "PaymentId": "13660",
- "ErrorCode": "0",
- "Message": "string",
- "Details": "string"
}
Переводит операцию в статус CANCELED.
Отменяет перевод только в статусе NEW и FORM_SHOWED
TerminalKey required | string Идентификатор терминала. Выдается Мерчанту Т‑Кассой |
PaymentId required | string Идентификатор платежа в системе Т‑Кассы |
Token required | string Подпись запроса |
IP | string IP-адрес клиента |
{- "TerminalKey": "TinkoffBankTest",
- "PaymentId": "6411171976",
- "Token": "03f90992aee6016c78e4cc4c850b345e2b76ffaeb6427d10ac26c0143c46e65e",
- "IP": "192.168.255.255"
}
{- "TerminalKey": "TinkoffBankTest",
- "OrderId": "test1",
- "Success": true,
- "Status": "CANCELED",
- "OriginalAmount": 140000,
- "NewAmount": 0,
- "PaymentId": "6411171976",
- "ErrorCode": "0"
}
Мерчант может сохранить платежные данные клиента, чтобы при последующих переводах ему не приходилось заполнять платежную форму. Для этого клиент привязывается к терминалу, через который будут проходить перевод. Мерчант может выбрать способ привязки клиента — с проверкой 3D-Secure или без.
Если выбрана опция с проверкой, то клиент должен будет подтвердить операцию уже на этом этапе. Все дальнейшие переводы будут проходить по схеме рекуррентного перевода, то есть подтверждать каждое списание не нужно
Если Мерчант выбрал опцию привязки без проверки 3D-Secure, то клиент и его карты будут сохранены без подтверждения. Однако, оно потребуется при первом переводе по привязанной карте
Для корректной работы методов Т‑Касса должна разрешить Мерчанту привязывать карты и клиентов к терминалу. В результате привязки карты к параметру
CustomerKey
будет привязанаCardId
Для сохранения идентификатора клиента CustomerKey
Мерчант должен вызвать метод AddCustomer
и передать в запросе параметр CustomerKey
Для удаления клиента из списка привязанных к терминалу Мерчант должен вызвать метод RemoveCustomer
передать в запросе параметр CustomerKey
Для получения сохраненных данных клиента Мерчант должен вызвать метод GetCustomer
и передать в запросе параметр CustomerKey
Регистрирует клиента в связке с терминалом.
Возможна автоматическая привязка клиента и карты, по которой был совершен перевод, при
передаче параметра CustomerKey
в методе Init. Это можно использовать для сохранения и
последующего отображения клиенту замаскированного номера карты, по которой будет совершен
рекуррентный перевод.
TerminalKey required | string <= 20 characters Идентификатор терминала, выдается Мерчанту Т‑Кассой |
CustomerKey required | string <= 36 characters Идентификатор клиента в системе Мерчанта |
Token required | string Подпись запроса |
string <email> <= 64 characters Email клиента | |
Phone | string <= 64 characters Телефон клиента в формате +{Ц} |
{- "TerminalKey": "TinkoffBankTest",
- "CustomerKey": "4387c647-a693-449d-bc35-91faecfc50de",
- "Token": "30797e66108934dfa3d841b856fdad227c6b9c46d6a39296e02dc800d86d181e",
- "Email": "username@test.ru",
- "Phone": "+79031234567"
}
{- "TerminalKey": "TinkoffBankTest",
- "CustomerKey": "05d65baa-9718-445e-8212-76fa0dd4c1d2",
- "ErrorCode": "0",
- "Success": true,
- "Message": "Неверные параметры",
- "Details": "Терминал не найден"
}
Возвращает данные клиента, сохраненные в связке с терминалом
TerminalKey required | string <= 20 characters Идентификатор терминала, выдается Мерчанту Т‑Кассой |
CustomerKey required | string <= 36 characters Идентификатор клиента в системе Мерчанта |
Token required | string Подпись запроса |
{- "TerminalKey": "TinkoffBankTest",
- "CustomerKey": "string",
- "Token": "30797e66108934dfa3d841b856fdad227c6b9c46d6a39296e02dc800d86d181e"
}
{- "TerminalKey": "TinkoffBankTest",
- "CustomerKey": "4264aa7b-08ab-4429-ab5a-2a171d841ced",
- "ErrorCode": "0",
- "Success": true,
- "Message": "Неверный статус клиента",
- "Details": "Клиент не найден",
- "Email": "a@test.ru",
- "Phone": "+79031234567"
}
Удаляет сохраненные данные клиента
TerminalKey required | string <= 20 characters Идентификатор терминала, выдается Мерчанту Т‑Кассой |
CustomerKey required | string <= 36 characters Идентификатор клиента в системе Мерчанта |
Token required | string Подпись запроса |
{- "TerminalKey": "TinkoffBankTest",
- "CustomerKey": "string",
- "Token": "30797e66108934dfa3d841b856fdad227c6b9c46d6a39296e02dc800d86d181e"
}
{- "TerminalKey": "TinkoffBankTest",
- "CustomerKey": "string",
- "ErrorCode": "0",
- "Success": true,
- "Message": "Неверные параметры",
- "Details": "string"
}
Валидно для карт, привязанных на терминалах Выплат A2C
Возвращает список всех привязанных карт клиента, включая удаленные
TerminalKey required | string Идентификатор терминала, выдается Мерчанту Т‑Кассой |
CustomerKey required | string Идентификатор клиента в системе Мерчанта |
Token required | string Подпись запроса |
{- "TerminalKey": "TinkoffBankTest",
- "CustomerKey": "testCustomer1234",
- "Token": "30797e66108934dfa3d841b856fdad227c6b9c46d6a39296e02dc800d86d181e"
}
[- {
- "CardId": "881900",
- "Pan": "518223******0036",
- "Status": "D",
- "RebillId": "6155312073",
- "CardType": 0,
- "ExpDate": "1122"
}
]
Валидно для карт, привязанных на терминалах Выплат A2C
Метод удаляет привязанную карту клиента
TerminalKey required | string <= 20 characters Идентификатор терминала, выдается Мерчанту Т‑Кассой |
CustomerKey required | string <= 36 characters Идентификатор клиента в системе Мерчанта |
CardId required | string <= 40 characters Идентификатор карты в системе Т‑Кассы |
Token required | string Подпись запроса |
{- "TerminalKey": "TinkoffBankTest",
- "CustomerKey": "testCustomer1234",
- "CardId": "156516516",
- "Token": "30797e66108934dfa3d841b856fdad227c6b9c46d6a39296e02dc800d86d181e"
}
{- "TerminalKey": "TinkoffBankTest",
- "Status": "D",
- "CustomerKey": "testCustomer1234",
- "CardId": "156516516",
- "CardType": 0,
- "Success": true,
- "ErrorCode": "0",
- "Message": "Неверные параметры",
- "Details": "Не удалось удалить карту клиента, для данного клиента такая карта не существует"
}
Нотификации — это уведомления магазину о статусе выполнения переводов
Т‑Касса может присылать письма с уведомлениями об успешных переводах (статус CONFIRMED). Настроить нотификации на электронную почту можно через acq_help@tbank.ru. Уведомления на почту можно комбинировать с уведомлениями, отправляемыми по http(s).
При совершении операций Authorize
, FinishAuthorize
, Confirm
на адрес Notification URL
высылается уведомление POST-запросом с информацией об операции. При обращении к методу FinishAuthorize
нотификация отправляется на сайт Мерчанта на адрес Notification URL
синхронно и ожидает ответа в течение 10 секунд
После получения ответа или неполучения его за заданное время сервис переадресует клиента на Success URL
или Fail URL
в зависимости от результата перевода
В случае успешной обработки нотификации Мерчант должен вернуть ответ c HTTP-кодом сообщения 200
с телом сообщения: OK
(без тегов и заглавными английскими буквами).
Если тело сообщения отлично от OK, любая нотификация считается неуспешной, и сервис будет
повторно отправлять нотификацию раз в час в течение 24 часов. Если нотификация за это время так и
не доставлена, она складывается в дамп.
Вышесказанное так же действительно и при вызове метода Charge
за исключением того, что данный
метод не осуществляет переадресации клиента
Если в NotificationURL
используются порты, допустимо использование порта 443 (HTTPS).
Актуальный список внешних сетей*, используемых Т‑Касса, для отправки нотификаций:
Чтобы нотификации работали корректно, добавьте эти сети в исключения сетевых фильтров или других видов защиты, которыми пользуетесь
URL: Notification URL
Если вы хотите получить в нотификации информацию переданную вами в метод Init, такую как идентификатор клиента, электронную почту и телефон, обратитесь к менеджеру или в техническую поддержку, чтобы для вашего терминала включили передачу объекта "Data". Перечисленная выше информация будет возвращаться в объекте "Data", вместе с рядом других технических параметров, которые можно игнорировать.
Параметры нотификаций:
Наименование | Тип | Описание |
---|---|---|
TerminalKey | String | Идентификатор терминала, выдается Мерчанту Т‑Кассой |
Amount | Number | Сумма в копейках |
OrderId | String | Идентификатор перевода в системе Мерчанта |
Success | Boolean | Успешность запроса |
RequestKey | String | Идентификатор запроса на привязку карты |
Status | String | Статус перевода |
PaymentId | String | Уникальный идентификатор транзакции в системе Т‑Кассы |
ErrorCode | String | Код ошибки. «0» в случае успеха |
PaymentURL | String | Ссылка на платежную форму |
Message | String | Краткое описание ошибки |
Details | String | Подробное описание ошибки |
RebillId | String | Идентификатор рекуррентного перевода |
CardId | Number | Идентификатор карты в системе Т‑Кассы |
Pan | String | Маскированный номер карты |
ExpDate | String | Срок действия карты в формате MMYY, где YY — две последние цифры года |
Data | Object | Объект с техническими и дополнительными параметрами. Примеры дополнительных параметров:
|
Token | String | Подпись запроса. Формируется по такому же принципу, как и в случае запросов в Т‑Кассу |
Укажите в настройках терминала URL, чтобы получать на него POST-запросы со статусами:
Статус | Описание |
---|---|
AUTHORIZED | Деньги захолдированы на карте клиента. Ожидается подтверждение операции * |
CONFIRMED | Операция подтверждена |
REJECTED | Списание денежных средств закончилась ошибкой |
3DS_CHECKING ** | Автоматическое закрытие сессии, которая превысила срок пребывания в статусе 3DS_CHECKING (более 36 часов) |
* Операция подтверждается автоматически
** Напишите на почту acq_help@tbank.ru c просьбой включить отправку нотификаций об автозакрытии сессий в статусе 3DS_CHECKING
В случае успешной обработки нотификации Мерчанту необходимо вернуть ответ HTTP CODE = 200
с телом сообщения: OK
(без тегов и заглавными английскими буквами)
PHP. Пример ответа на http(s)-нотификацию
<?php
echo «OK»;
?>
Java. Пример ответа на http(s)-нотификацию
@POST
@Path("/ok")
public Response NotifyResponse() {
return Response.status(200).entity("OK").build();
}
Если ответ «OK» не получен, нотификация считается неуспешной, и сервис будет повторно отправлять данную нотификацию раз в час в течение 24 часов. Если нотификация за это время не доставлена, она будет сложена в архив
При получении нотификации и перед ее обработкой настоятельно рекомендуем проверить подпись запроса
Для формирования подписи запроса для нотификации небходимо:
[["TerminalKey": "TinkoffBankTest"],["OrderId": "201709"],["Success": "true"],["Status": "AUTHORIZED"],["PaymentId": "8742591"],["ErrorCode": "0"],["Amount": "9855"],["CardId": "322264"],["Pan": "430000******0777"],["ExpDate": "1122"],["RebillId": "101709"]]
Password
, значение). Password – пароль для терминала, указан в Личном кабинете https://business.tbank.ru/oplata/main:[["TerminalKey": "TinkoffBankTest"],["OrderId": "201709"],["Success": "true"],["Status": "AUTHORIZED"],["PaymentId": "8742591"],["ErrorCode": "0"],["Amount": "9855"],["CardId": "322264"],["Pan": "430000******0777"],["ExpDate": "1122"],["RebillId": "101709"],["Password": "Dfsfh56dgKl"]]
[["Amount": "9855"],["CardId": "322264"],["ErrorCode": "0"],["ExpDate": "1122"],["OrderId": "201709"],["Pan": "430000******0777"],["Password": "Dfsfh56dgKl"],["PaymentId": "8742591"],["RebillId": "101709"],["Status": "AUTHORIZED"],["Success": "true"],["TerminalKey": "TinkoffBankTest"]]
985532226401122201709430000******0777Dfsfh56dgKl8742591101709AUTHORIZEDtrue1321054611234DEMO
b906d28e76c6428e37b25fcf86c0adc52c63d503013fdd632e300593d165766b
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 | Передан некорректный номер кошелька |
1125 | Некорректное значение OperationInitiatorType. Должно быть одно из списка | |
1126 | Несопоставимые значения rebillId или Recurrent с переданным значением OperationInitiatorType | |
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 | T-Bank Credit Broker недоступен. Повторите попытку позже | |
8003 | Операция запрещена для покупки долями | |
8004 | BNPL недоступен. Повторите попытку позже | |
9001 | Попробуйте повторить попытку позже | |
9999 | Внутренняя ошибка системы |
Карта используется для тестирования терминалов AFTDEMO и ATOPDEMO, обращение к методам проводится в домене https://securepay.tinkoff.ru/v2/"
Поведение карты | PAN |
---|---|
Успешный перевод | 4300000000000777 expDate: любая действующая дата в формате 11/24 cvv: любой набор из 3 цифр |
Неуспешный перевод | 5000000000000009 expDate: любая действующая дата в формате 11/24 cvv: любой набор из 3 цифр |
Успешный перевод (подходит для рекуррентных платежей) |
4000000000000333 expDate: любая действующая дата в формате 11/24 cvv: любой набор из 3 цифр |
По техническим вопросам обратитесь на почту acq_help@tbank.ru.
Для предоставления обратной связи и по вопросам улучшения обслуживания и предоставляемого сервиса обратитесь к вашему личному менеджеру
№ | Описание изменений | Дата |
---|---|---|
1.1 | Добавлены методы Init и GetState для nonPCI | 03.08.2023 |
1.2 | Обновлены значения параметра MarkCodeType для объекта Receipt | 07.08.2023 |
1.3 | Добавлен метод GetFee | 09.08.2023 |
1.4 | Добавлен метод getConfirmOperation Обновлены ссылки на Личный Кабинет |
16.08.2023 |
1.5 | Добавлено описание блока DATA | 25.08.2023 |
1.6 | Удален параметр RebillId из ответа на метод GetState | |
1.7 | Изменено описание CustomerKey в методе Init | 22.09.2023 |
1.8 | Исправлены якорные ссылки | 25.09.2023 |
1.9 | Добавлен объект additionalProperties и параметр OperationInitiatorType в DATA | 26.09.2023 |
1.10 | Обновлен список ошибок | 28.09.2023 |
1.11 | Добавлен пункт "Передача признака инициатора операции" | 20.12.2023 |
1.12 | Обновлены сроки действия тестовых карт Скорректировано описание параметра mfoAgreement и подписи запроса (отсутствие блоков) Добавлено упоминание об одностадийности платежей и отсутствии опции "Платежи в 1 клик" |
24.01.2024 |
1.13 | Обновлен тип данных CardId | 22.02.2024 |
1.14 | Обновлен список тестовых карт | 12.03.2024 |
1.15 | Исправлены опечатки в тексте | 14.03.2024 |
1.16 | Добавлено описание метода Cancel для операций в статусах NEW и FORM_SHOWED | 22.05.2024 |
1.17 | Добавлена схема проведения транзакции для non-PCI DSS | 29.05.2024 |
1.18 | Исправлены примеры и параметры ответа в методе CheckOrder Обновлен список параметров, передаваемых в Нотификациях по HTTP(s) |
20.06.2024 |
1.19 | Добавлен параметр AddInfo в блок DATA для метода Init | 14.08.2024 |
1.20 | Изменены описания параметров mfoAgreement и PayForm в блоке DATA для метода Init | 21.08.2024 |