Сценарий из mcp-everything. Актуально на 2026-10-12.
Подходит для подписки или повторной оплаты без повторного ввода реквизитов. Сначала покупатель подтверждает родительский платеж, затем магазин использует полученный RebillId для дочерних платежей.
acq_help@tbank.ru, на боевом — через персонального менеджера.POST /v2/Init, передав Recurrent=Y, CustomerKey и DATA.OperationInitiatorType=1; перенаправь покупателя на PaymentURL.RebillId из проверенного уведомления.POST /v2/Init с новой суммой и новым OrderId; для регулярного списания передай DATA.OperationInitiatorType=R.PaymentURL, вызови POST /v2/Charge с новым PaymentId и сохраненным RebillId.POST /v2/GetState; успешный одностадийный платеж завершится статусом CONFIRMED.curl --request POST 'https://securepay.tinkoff.ru/v2/Charge' \
--header 'Content-Type: application/json' \
--data '{
"TerminalKey": "<TerminalKey>",
"PaymentId": "700001702044",
"RebillId": "145919",
"Token": "<Token>"
}'
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"
}
Проводит дочернюю COF-операцию по ранее полученному RebillId. Перед вызовом нужно создать новый платеж через POST /v2/Init и использовать его PaymentId.
Документация: https://developer.tbank.ru/eacq/api/charge
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
TerminalKey |
body | string | да | Идентификатор терминала, до 64 символов |
PaymentId |
body | string | да | Идентификатор нового платежа, до 20 символов |
RebillId |
body | string | да | Идентификатор сохраненных платежных реквизитов из уведомления |
Token |
body | string | да | Подпись запроса |
IP |
body | string | нет | IP-адрес покупателя |
SendEmail |
body | boolean | нет | Отправлять уведомление об оплате на почту |
InfoEmail |
body | string |
нет | Почта покупателя; обязательна при SendEmail=true |
Возвращает сумму, заказ и текущий статус конкретного платежа.
Документация: 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