Skip to main content

Payments via T-Pay

You can accept payments via T-Pay, including:

Payments made via T-Pay are refunded in a standard way.

The payer authentication is performed through logging into the T-Bank app. Customers do not have to enter card details to make payments.

You can accept T-Pay payments in two ways:

  • with a QR code, which works for payments made from a desktop browser (generate and display the QR code on your side)
  • with a URL to the T-Bank application, which works for payments made from a mobile device

After being redirected by the URL, the payer will have 20 minutes to complete the payment. Otherwise, the session terminates with an error.

You can make payments with automatic payment session confirmation.

Payment scenario

The payment scenario depends on the customer's payment channel: mobile device (mobile) or desktop browser (desktop). The customer device properties in the request define the format of the payment link in the action_required webhook.

  1. Either create a session separately using the session/create method and then send a session/start/payment request, or create a session along with the payment using the session/init/payment method. Pass all the required parameters:

    • Pass the tpay value in the type parameter of the internet_banking object.
    • Pass the mobile value in the type parameter of the platform_details object. Specify one of the acceptable values in the os and browser parameters.
    Request example
    curl -X POST \
    https://demo.smart-glocal.com/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": 1000700,
    "currency": "RUB"
    },
    "customer": {
    "reference": "lucky"
    },
    "payment_options": {
    "platform_details": {
    "type": "mobile",
    "os": "ios",
    "browser": "chrome"
    }
    }
    }'
    Response example
    {
    "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": 1000700,
    "currency": "RUB"
    },
    "amounts": {}
    }]
    }
    }
  2. Wait for a ready_to_confirm webhook saying Smart Glocal is ready to process the payment and is waiting for your confirmation.

  3. Confirm your payment by sending a session/confirm request, or cancel it sending a session/cancel request.

  4. Smart Glocal will send you an action_required webhook containing a URL within redirect.url to forward the customer to the T-Bank mobile application.

    Webhook example
    {
    "type": "action_required",
    "session": {
    "id": "ps_3813062",
    "status": "in_progress",
    "created_at": "2025-09-05T07:49:12.513214Z",
    "updated_at": "2025-09-05T07:49:24.628403Z",
    "acquiring_payments": [{
    "id": "pm_2769418",
    "status": "pending",
    "created_at": "2025-09-05T07:49:12.605322Z",
    "customer": {
    "reference": "lucky"
    },
    "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. Forward the customer by the link passed within the redirect.url parameter to the T-Bank mobile application. Wait til the customer approves or cancels the payment.

  6. Wait for a ready_to_capture webhook and capture the amount that is on hold in full or partially (session/capture), or decline the payment (session/cancel).

    Skip this step if you do not have delayed capture payments enabled. In this case, the hold and capture will be made automatically.

  7. Wait for a payment_finished webhook containing the payment result from Smart Glocal. The succeeded status indicates a successful payment.

Recurring payments

To perform MIT recurring payments or CIT recurring payments via T-Pay:

  1. Get a token by sending recurrent=true (in the payment_options object) in the request. If the payment is successful, you will get a token in the payment_finished webhook in the recurrent.token parameter.

    Request example
    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": 900000,
    "currency": "RUB"
    },
    "customer": {
    "reference": "lucky"
    },
    "payment_options": {
    "platform_details": {
    "recurrent": true,
    "type": "mobile",
    "os": "ios",
    "browser": "chrome"
    }
    }
    }'
  2. Use the token to make recurring payments.

    Examples
    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"
    }
    }
    }'