Download OpenAPI specification:Download
Погашения C2A - это решение, позволяющее принимать переводы от физических лиц. Данные переводы совершаются для погашения займов и кредитов, пополнения инвестиционного или брокерского счета. Продукт актуален для ломбардов, банков и МФО, управляющих и инвестиционных компаний, а также брокеров. В продукте отсутствует возможность возврата/отмены операции.
Merchant API - один из инструментов Тинькофф Кассы для приема переводов от физических лиц. С помощью Merchant API (далее MAPI) Мерчанты могут настроить прием переводов на своих сайтах.
Инструкция по использованию MAPI написана для разработчиков и тех, кто хочет самостоятельно настроить вызов платежной формы Тинькофф или реализовать прием погашений по API на своих ресурсах.
При подключении по схеме AFT/комиссия снизу вы можете настроить прием погашений в своём мобильном приложении с помощью SDK.
Термин | Определение |
---|---|
Клиент | Физлицо, производящее перевод с использованием банковской карты на сайте Мерчанта |
Мерчант | Бизнес, принимающий и осуществляющий переводы по банковским картам на своем сайте |
Тинькофф Касса | Сервис, помогающий проводить выплату клиенту-физлицу |
Эмитент | Банк, выпустивший карту клиента-физлица |
PCI DSS | Международный стандарт безопасности, созданный для защиты данных банковских карт |
3-DSecure | Протокол, который используется как дополнительный уровень безопасности для онлайн-кредитных и дебетовых карт. 3-D Secure добавляет ещё один шаг аутентификации для онлайн-переводов |
Терминал | Точка приема переводов Мерчанта (в общем случае привязывается к сайту, на котором осуществляется прием переводов) Далее в этой документации описан протокол для терминала мерчанта |
Платежные системы разработали требования к безопасности карточных данных клиентов - 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"
Применить к строке хеш-функцию SHA-256
"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 | Перевод обрабатывается |
На схеме ниже - полный жизненный цикл перевода
Если версия 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@tinkoff.ru):
|
SuccessURL | string <uri> URL на веб-сайте Мерчанта, куда будет переведен клиент в случае успешного перевода (для настройки нужно обратиться на acq_help@tinkoff.ru):
|
FailURL | string <uri> URL на веб-сайте Мерчанта, куда будет переведен клиент в случае неуспешного перевода (для настройки нужно обратиться на acq_help@tinkoff.ru):
|
RedirectDueDate | any <date-time> Cрок жизни ссылки. Если текущая дата превышает дату, переданную в данном параметре, ссылка для перевода становится недоступной и перевод выполнить нельзя.
В случае, если параметр RedirectDueDate не был передан, проверяется настроечный параметр платежного терминала REDIRECT_TIMEOUT, который может содержать значение срока жизни ссылки в часах. Если его значение больше нуля, то оно будет установлено в качестве срока жизни ссылки. Иначе, устанавливается значение «по умолчанию» - 1440 мин.(1 сутки) |
object JSON-объект, который позволяет передавать дополнительные параметры по операции и задавать определенные настройки в формате "ключ":"значение". Максимальная длина для каждого передаваемого параметра:
Максимальное количество пар "ключ":"значение" - 20.
Подробную таблицу см. в разделе Передача признака инициатора операции В случае передачи значений атрибутов не соответствующих таблице - MAPI вернет ошибку 1126 (Несопоставимые значения rebillId или Recurrent с переданным значением OperationInitiatorType) | |
PayForm | string Value: "mfo" Для использования комиссии сверху необходимо передать значение «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"
}, - "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 | number <= 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
Подтверждает перевод передачей реквизитов, а также списывает денежные средства
с карты клиента. Используется, если у площадки есть сертификация PCI DSS и
собственная платежная форма
TerminalKey required | string Идентификатор терминала. Выдается Мерчанту Тинькофф Кассой при заведении терминала | ||||||||||||||||||||||||||||
PaymentId required | number Уникальный идентификатор транзакции в системе Тинькофф Кассы | ||||||||||||||||||||||||||||
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
Осуществляет проверку результатов прохождения 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",
- "Message": "string",
- "Details": "string"
}
Для Мерчантов с 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",
- "Message": "string",
- "Details": "string"
}
Мерчант может получить информацию об основных параметрах перевода в любой момент.
Если требуется получить данные по конкретному переводу, то Мерчант должен вызвать метод GetState
и передать в запросе PaymentId
.
Если по одному заказу было несколько, то получить историю переводов и их текущий статус можно с помощью метода CheckOrder
. Мерчант должен передать в запросе OrderId
.
TerminalKey required | string <= 20 characters Идентификатор терминала. Выдается Мерчанту Тинькофф Кассой при заведении терминала |
PaymentId required | number <= 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": "string"
}
{- "TerminalKey": "TinkoffBankTest",
- "OrderId": "21057",
- "Success": true,
- "ErrorCode": "0",
- "Message": "OK",
- "Details": "None",
- "Payments": {
- "PaymentId": "124671934",
- "Amount": 13660,
- "Status": "NEW",
- "RRN": "12345678",
- "Success": "true",
- "ErrorCode": 0,
- "Message": "None"
}
}
Справку по конкретной операции можно получить на:
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
}
}
Методы 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@tinkoff.ru):
|
SuccessURL | string <uri> URL на веб-сайте Мерчанта, куда будет переведен клиент в случае успешного перевода (для настройки нужно обратиться на acq_help@tinkoff.ru):
|
FailURL | string <uri> URL на веб-сайте Мерчанта, куда будет переведен клиент в случае неуспешного перевода (для настройки нужно обратиться на acq_help@tinkoff.ru):
|
RedirectDueDate | any <date-time> Cрок жизни ссылки. Если текущая дата превышает дату, переданную в данном параметре, ссылка для перевода становится недоступной и перевод выполнить нельзя.
В случае, если параметр RedirectDueDate не был передан, проверяется настроечный параметр платежного терминала REDIRECT_TIMEOUT, который может содержать значение срока жизни ссылки в часах. Если его значение больше нуля, то оно будет установлено в качестве срока жизни ссылки. Иначе, устанавливается значение «по умолчанию» - 1440 мин.(1 сутки) |
object JSON-объект, который позволяет передавать дополнительные параметры по операции и задавать определенные настройки в формате "ключ":"значение". Максимальная длина для каждого передаваемого параметра:
Максимальное количество пар "ключ":"значение" - 20.
Подробную таблицу см. в разделе Передача признака инициатора операции В случае передачи значений атрибутов не соответствующих таблице - MAPI вернет ошибку 1126 (Несопоставимые значения rebillId или Recurrent с переданным значением OperationInitiatorType) | |
PayForm | string Value: "mfo" Для использования комиссии сверху необходимо передать значение «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"
}, - "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 | number <= 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 | number Уникальный идентификатор транзакции в системе Тинькофф Кассы |
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"
}
Мерчант может сохранить платежные данные клиента, чтобы при последующих переводах ему не приходилось заполнять платежную форму. Для этого клиент привязывается к терминалу, через который будут проходить перевод. Мерчант может выбрать способ привязки клиента - с проверкой 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@tinkoff.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
Параметры нотификаций:
Наименование | Тип | Описание |
---|---|---|
TerminalKey | String | Идентификатор терминала, выдается Мерчанту Тинькофф Кассой |
Amount | Number | Сумма в копейках |
OrderId | String | Идентификатор перевода в системе Мерчанта |
Success | Boolean | Успешность запроса |
CustomerKey | String | Идентификатор клиента в системе Мерчанта |
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 — две последние цифры года |
Token | String | Подпись запроса. Формируется по такому же принципу, как и в случае запросов в Тинькофф Кассу |
Укажите в настройках терминала URL, чтобы получать на него POST-запросы со статусами:
Статус | Описание |
---|---|
AUTHORIZED | Деньги захолдированы на карте клиента. Ожидается подтверждение операции * |
CONFIRMED | Операция подтверждена |
REJECTED | Списание денежных средств закончилась ошибкой |
3DS_CHECKING ** | Автоматическое закрытие сессии, которая превысила срок пребывания в статусе 3DS_CHECKING (более 36 часов) |
* Операция может быть подтверждена:
Confirm
;** Напишите на почту acq_help@tinkoff.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 часов. Если нотификация за это время не доставлена, она будет сложена в архив.
При получении нотификации и перед её обработкой настоятельно рекомендуем проверить подпись запроса.
Для формирования подписи запроса для нотификации небходимо:
Собрать массив всех передаваемых параметров в виде пар Ключ-Значение (кроме параметра Token). Например:
[["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://www.tinkoff.ru/kassa/:
[["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
Вычислить SHA-256 от полученного в п.4. значения:
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 | Tinkoff 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@tinkoff.ru.
Для предоставления обратной связи и по вопросам улучшения обслуживания и предоставляемого сервиса обратитесь к вашему личному менеджеру