Сценарий из mcp-everything. Актуально на 2026-10-12.
Подходит для заказа, деньги за который нужно списать сразу после оплаты покупателем. Результат — платеж в статусе CONFIRMED, сверенный с суммой заказа.
TerminalKey и Password.Token и вызови POST /v2/Init с Amount в копейках, уникальным OrderId и при необходимости PayType=O.PaymentURL из ответа POST /v2/Init.NotificationURL, проверь его Token, PaymentId, Amount и статус; при успешной обработке ответь HTTP 200 с телом OK.POST /v2/GetState; выдавай товар только после сверки Amount и статуса CONFIRMED.curl --request POST 'https://securepay.tinkoff.ru/v2/Init' \
--header 'Content-Type: application/json' \
--data '{
"TerminalKey": "<TerminalKey>",
"Amount": 140000,
"OrderId": "21090",
"Token": "<Token>",
"PayType": "O",
"DATA": {"OperationInitiatorType": "0"}
}'
https://securepay.tinkoff.ru/v2https://rest-api-test.tinkoff.ru/v2Тип: Другое
Для каждого подписываемого запроса передавай TerminalKey и Token в корневом JSON-объекте. TerminalKey и секретный Password находятся в личном кабинете интернет-эквайринга; Password в запрос не передается.
Чтобы получить Token, собери корневые параметры запроса, добавь к ним Password, исключи Token, вложенные объекты и массивы, отсортируй пары по имени ключа, склей только значения и вычисли SHA-256 в UTF‑8. Полученную шестнадцатеричную строку передай в Token.
Создает платеж в статусе NEW и возвращает PaymentId; при использовании формы Т‑Банка также возвращает PaymentURL.
Документация: https://developer.tbank.ru/eacq/api/init
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
TerminalKey |
body | string | да | Идентификатор терминала, до 64 символов |
Amount |
body | integer |
да | Сумма в копейках |
OrderId |
body | string | да | Уникальный для каждой операции идентификатор заказа, до 50 символов |
Token |
body | string | да | Подпись запроса |
Description |
body | string | нет | Описание заказа на платежной форме |
CustomerKey |
body | string | нет | Идентификатор покупателя; обязателен для карточного платежа с Recurrent=Y |
Recurrent |
body | string | нет | Y для родительского платежа с сохранением реквизитов |
PayType |
body | string | нет | O — одностадийная, T — двухстадийная оплата |
NotificationURL |
body | string |
нет | URL для POST-уведомлений |
SuccessURL |
body | string |
нет | URL возврата покупателя после успешной оплаты |
FailURL |
body | string |
нет | URL возврата покупателя после неуспешной оплаты |
RedirectDueDate |
body | string |
нет | Срок жизни платежной ссылки |
DATA.OperationInitiatorType |
body | string | нет | Инициатор операции: 0, 1, 2, R, I, D или N |
Receipt |
body | object | нет | Данные чека; обязателен при подключенной онлайн-кассе |
Пример ответа:
{
"Success": true,
"ErrorCode": "0",
"TerminalKey": "TBankTest",
"Status": "NEW",
"PaymentId": "3093639567",
"OrderId": "21090",
"Amount": 140000,
"PaymentURL": "https://pay.tbank.ru/new/fU1ppgqa"
}
Возвращает сумму, заказ и текущий статус конкретного платежа.
Документация: https://developer.tbank.ru/eacq/api/get-state
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
TerminalKey |
body | string | да | Идентификатор терминала, до 64 символов |
PaymentId |
body | string | да | Идентификатор платежа, до 20 символов |
Token |
body | string | да | Подпись запроса |
IP |
body | string | нет | IP-адрес покупателя |
GetPhone |
body | boolean | нет | Запросить номер телефона |
Content-Type: application/json и используй TLS 1.2 или выше.POST /v2/Init сумма Amount должна совпадать с суммой Receipt.Items.Amount.Success, ErrorCode и Status. OpenAPI описывает успешный и ошибочный ответ как варианты одного ответа 200.Token вложенные объекты и массивы, в том числе DATA и Receipt. Password добавляется только при расчете подписи и не отправляется.SuccessURL подтверждением оплаты. Проверь уведомление или POST /v2/GetState и обязательно сравни Amount с ожидаемой суммой заказа.Token. Ответ должен быть HTTP 200 с телом OK заглавными английскими буквами; ожидание ответа — 10 секунд.OK не получен, уведомление повторяется раз в час в течение 24 часов, затем раз в сутки в течение месяца. Архив уведомлений хранится 90 дней.POST /v2/Confirm вызывается только в статусе AUTHORIZED; подтвердить карточный платеж нужно в течение 7 дней, включая день авторизации.RebillId нужно брать только из проверенного уведомления родительского платежа.DEMO; тест-кейсы с DEMO-терминалом, наоборот, отправляются на боевой URL.Если этого недостаточно — официальная документация: https://developer.tbank.ru/eacq/intro/ Вся интеграция одним документом: https://mcp-everything.ru/integrations/t-kassa-api.md