Т‑Касса: Принять одностадийную оплату

Сценарий из mcp-everything. Актуально на 2026-10-12.

Подходит для заказа, деньги за который нужно списать сразу после оплаты покупателем. Результат — платеж в статусе CONFIRMED, сверенный с суммой заказа.

  1. Подключи интернет-эквайринг, создай магазин и терминал в личном кабинете Т‑Бизнеса; возьми TerminalKey и Password.
  2. Сформируй Token и вызови POST /v2/Init с Amount в копейках, уникальным OrderId и при необходимости PayType=O.
  3. Перенаправь покупателя на PaymentURL из ответа POST /v2/Init.
  4. Прими POST-уведомление на NotificationURL, проверь его Token, PaymentId, Amount и статус; при успешной обработке ответь HTTP 200 с телом OK.
  5. Если уведомление не получено, вызови 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"}
  }'

Базовые URL

Авторизация

Тип: Другое

Для каждого подписываемого запроса передавай TerminalKey и Token в корневом JSON-объекте. TerminalKey и секретный Password находятся в личном кабинете интернет-эквайринга; Password в запрос не передается.

Чтобы получить Token, собери корневые параметры запроса, добавь к ним Password, исключи Token, вложенные объекты и массивы, отсортируй пары по имени ключа, склей только значения и вычисли SHA-256 в UTF‑8. Полученную шестнадцатеричную строку передай в Token.

Методы сценария

POST /v2/Init — Инициировать платеж

Создает платеж в статусе 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"
}

POST /v2/GetState — Получить статус платежа

Возвращает сумму, заказ и текущий статус конкретного платежа.

Документация: 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 нет Запросить номер телефона

Нюансы

Другие сценарии


Если этого недостаточно — официальная документация: https://developer.tbank.ru/eacq/intro/ Вся интеграция одним документом: https://mcp-everything.ru/integrations/t-kassa-api.md