Перейти к основному содержимому

Прием платежей через T-Pay

Этот сценарий описывает прием платежа через T-Pay. Аутентификация плательщика происходит через вход в приложение Т-Банка. Для платежа не требуется вводить данные карты.

Принимать платежи через T-Pay можно:

  • с использованием QR-кода, если платеж производится в десктопном браузере;
  • с использованием ссылки для перехода в приложение Т-Банка, если платеж производится с мобильного устройства.

Для приема оплаты с использованием QR-кода вы отображаете QR-код самостоятельно.

После перенаправления по ссылке у пользователя будет 20 минут, чтобы совершить операцию. В противном случае операция закончится ошибкой.

Имеется возможность проводить платежи с автоподтверждением платежа.

Сценарий оплаты

Сценарий зависит от канала платежа клиента: мобильное устройство (mobile) или десктопный браузер (desktop). Параметры устройства клиента в запросе определяют тип ссылки на оплату, которая придет в вебхуке action_required.

  1. Создайте платежную сессию отдельно от платежа методом session/create или одновременно с платежом c помощью метода session/init/payment с набором необходимых параметров:

    • В объекте internet_banking передайте значение tpay в параметре type.
    • В объекте platform_details передайте значение mobile в параметре type. Укажите одно из допустимых значений для параметров os и browser.
    Пример запроса
    curl -X POST \
    https://proxy.bank131.ru/api/v1/session/init/payment \
    -H 'Content-Type: application/json' \
    -H 'X-PARTNER-PROJECT: your_project_name' \
    -H 'X-PARTNER-SIGN: signature' \
    -d '{
    "payment_details": {
    "type": "internet_banking",
    "internet_banking": {
    "type": "tpay"
    }
    },
    "amount_details": {
    "amount": 67000,
    "currency": "RUB"
    },
    "customer": {
    "reference": "lucky"
    },
    "payment_options": {
    "platform_details": {
    "type": "mobile",
    "os": "ios",
    "browser": "chrome"
    }
    }
    }'
    Пример ответа
    {
    "status": "ok",
    "session": {
    "id": "ps_3813062",
    "status": "in_progress",
    "created_at": "2025-09-05T07:14:28.236854Z",
    "updated_at": "2025-09-05T07:14:28.298522Z",
    "acquiring_payments": [{
    "id": "pm_2769418",
    "status": "in_progress",
    "created_at": "2025-09-05T07:14:28.310910Z",
    "customer": {
    "reference": "lucky"
    },
    "payment_details": {
    "type": "internet_banking",
    "internet_banking": {
    "type": "tpay"
    }
    },
    "amount_details": {
    "amount": 670000,
    "currency": "RUB"
    },
    "amounts": {}
    }]
    }
    }
  2. Дождитесь от Банка 131 вебхука ready_to_confirm — он означает, что Банк готов провести платеж и ждет вашего подтверждения.

  3. Подтвердите платеж запросом session/confirm или отмените платеж, отправив запрос session/cancel.

  4. Дождитесь вебхука action_required со ссылкой на оплату в параметре redirect.url.

    Вы сами решаете, получать ли вебхуки. Если они отключены, вам потребуется каждый раз отправлять запрос session/status, чтобы понять следующий шаг и результат операции.

    Пример вебхука
    curl -X POST \
    https://partner.ru \
    -H 'content-type: application/json' \
    -H 'X-PARTNER-SIGN: signature' \
    -d '{
    "type": "action_required",
    "session": {
    "id": "ps_3813080",
    "status": "in_progress",
    "created_at": "2025-09-05T07:49:12.513214Z",
    "updated_at": "2025-09-05T07:49:24.628403Z",
    "acquiring_payments": [{
    "id": "pm_2769436",
    "status": "pending",
    "created_at": "2025-09-05T07:49:12.605322Z",
    "customer": {
    "reference": "vtor_rec"
    },
    "payment_details": {
    "type": "internet_banking",
    "internet_banking": {
    "type": "tpay"
    }
    },
    "amount_details": {
    "amount": 1000700,
    "currency": "RUB"
    },
    "amounts": {},
    "customer_interaction": {
    "type": "redirect",
    "redirect": {
    "url": "https://o.tbank.ru/tpay/3000000000000021275",
    "base_url": "https://o.tbank.ru/tpay/3000000000000021275",
    "method": "GET",
    "params": {}
    }
    }
    }],
    "actions": {
    "confirm": "2025-09-05T07:49:24.148058Z"
    }
    }
    }'
  5. Перенаправьте плательщика по ссылке из параметра redirect.url в приложение Т-Банка. Дождитесь, когда плательщик либо подтвердит, либо отменит оплату.

  6. Дождитесь от Банка 131 вебхука ready_to_capture и спишите захолдированную или меньшую сумму (session/capture), либо отмените оплату (session/cancel).

    Пропустите этот шаг, если у вас не подключены платежи с холдированием. В этом случае холдирование и списание средств произойдет автоматически.

  7. Дождитесь от Банка 131 вебхука payment_finished с результатом проведения платежа. Статус succeeded означает, что платеж успешно проведен.

Рекуррентные платежи

Чтобы проводить рекуррентные платежи MIT или рекуррентные платежи CIT через T-Pay:

  1. Получите рекуррентный токен, передав в запросе recurrent=true (в объекте payment_options). Если платеж пройдет успешно, в вебхуке payment_finished в параметре recurrent.token вернется токен.

    Пример запроса
    curl -X POST \
    https://proxy.bank131.ru/api/v1/session/init/payment \
    -H 'Content-Type: application/json' \
    -H 'X-PARTNER-PROJECT: your_project_name' \
    -H 'X-PARTNER-SIGN: signature' \
    -d '{
    "payment_details": {
    "type": "internet_banking",
    "internet_banking": {
    "type": "tpay"
    }
    },
    "amount_details": {
    "amount": 670000,
    "currency": "RUB"
    },
    "customer": {
    "reference": "lucky"
    },
    "payment_options": {
    "platform_details": {
    "recurrent": true,
    "type": "mobile",
    "os": "ios",
    "browser": "chrome"
    }
    }
    }'
    Пример ответа
    {
    "status": "ok",
    "session": {
    "id": "ps_3813071",
    "status": "in_progress",
    "created_at": "2025-09-05T07:24:45.996726Z",
    "updated_at": "2025-09-05T07:24:46.081328Z",
    "acquiring_payments": [{
    "id": "pm_2769427",
    "status": "in_progress",
    "created_at": "2025-09-05T07:24:46.108909Z",
    "customer": {
    "reference": "lucky"
    },
    "payment_details": {
    "type": "internet_banking",
    "internet_banking": {
    "type": "tpay"
    }
    },
    "amount_details": {
    "amount": 33123,
    "currency": "RUB"
    },
    "amounts": {},
    "payment_options": {
    "recurrent": true
    }
    }]
    }
    }
  2. При проведении последующих платежей передавайте рекуррентный токен.

    Примеры
    curl -X POST \
    https://proxy.bank131.ru/api/v1/session/init/payment \
    -H 'Content-Type: application/json' \
    -H 'X-PARTNER-PROJECT: your_project_name' \
    -H 'X-PARTNER-SIGN: signature' \
    -d '{
    "payment_details": {
    "type": "recurrent",
    "recurrent": {
    "token": "e9876f32bcd947f79c324cf2da5726304a894f6ae2037de7705fdb3e0a134d39",
    "initiator":"merchant"
    }
    },
    "amount_details": {
    "amount": 900000,
    "currency": "RUB"
    },
    "customer": {
    "reference": "lucky"
    },
    "payment_options": {
    "platform_details": {
    "type": "mobile",
    "os": "android",
    "browser": "chrome"
    }
    }
    }'

Возврат платежей

Сценарий возврата платежей через T-Pay ничем не отличается от стандартного.





ИИ-помощник