В главное меню

Разовая оплата (сессия)


Сценарий создания платежной сессии

Плательщик на сайте магазина выбирает услугу и условия платежа. Сайт предварительно передает реквизиты платежа в платежный шлюз МТС, а в ответ получает идентификатор платежной сессии (вызов метода идет с backend магазина, при вызове метода необходимо использовать SSL сертификат - полученный при интеграции). После чего пользователю отображается виджет, в котором проводится прием оплаты. По завершению оплаты Платежный шлюз МТС уведомляет сайт по указанному адресу о приеме платежа. После этого вы сможете выполнить дополнительные операции над платежами.

ПлательщикСайтСайтВиджетПлатежныйПлатежныйПлатежныйПлатежныйПлательщикПлательщикСайтСайтВиджетВиджетПлатежныйПлатежныйПлательщикПлательщикСайтмагазинаСайтмагазинаВиджетМТС ОплатаВиджетМТС ОплатаПлатежныйшлюз МТСПлатежныйшлюз МТСПлательщикСайтСайтВиджетПлатежныйПлатежныйПлатежныйПлатежныйпередает реквизиты платежавозвращает id сессииинициализирует виджетзапрашивает параметры оплатывозвращает информацию о платежеотображает платежную формувыбирает/указывает платежные реквизитыпередает запрос на оплатуобрабатываетоплатувозвращает результат оплатыотображает результат оплатыпередает уведомления о платеже

Процесс взаимодействия

  1. Для проведения платежа вам необходимо создать платежную сессию.
  2. С полученным после создания платежной сессии sessionId инициализируйте виджет (веб-виджет, iOS, Android).
  3. Получите уведомление о результате платежа.
  4. При необходимости можно:
    1. убедиться, что уведомление пришло от нас, получив самостоятельно информацию о платеже (статус платежа);
    2. отменить платеж или вернуть денежные средства.

Создание платежной сессии

Входные параметры

Заголовок запроса

POST
Endpoint: https://sandbox.pay.mts.ru/private/v1/payments/sessions/create HTTP/1.1
Content-Type: application/json
<Основные параметры>

Так же, передается SSL сертификат.

Основные параметры

Поле

Тип

Обяз.

Описание

Request-IdguidдаИдентификатор конкретного запроса

Requestor-Name

string

нет

Наименование сервиса.

  • Для веба - домен, на котором запущен виджет.
  • Для SDK - идентификатор приложения.
  • Для API - имя вызывающей системы.
Requestor-Typestringнет

Тип витрины.

  • API
  • Web Widget
  • Web Page
  • SDK Apple
  • SDK Android
Requestor-VersionstringнетВерсия виджета/sdk

Тело запроса

Поле

Тип

Обязат.

Описание

serviceId

int64 

да

ID сервиса

serviceParams{}

object

да

Набор пар "параметр": "значение", описывающих реквизиты платежа (специфичных для каждого поставщика, полученных от команды МТС Оплата)

providerParams

object

нет

Набор дополнительных параметров для каждого провайдера, проводящего платеж

sessionParams

object

нет

Набор дополнительных настроек платежной сессии

amount

amount

да

Сумма платежа

amountInfo

object

нет

Данные о суммах оплаты

currency

string[3]

нет

Валюта платежа, по умолчанию 643

description

string[256]

нет

Описание к платежу

extClientId

string[256]

да

Идентификатор пользователя в системе Мерчанта: логин или иной идентификатор Плательщика в системе Партнера

merchantParamsobject

нет

Набор пар "параметр":"значение" - дополнительная информация от партнёра к сессии
paymentToolsFilterobjectнетНабор инструкция для фильтрации ПМ/ПИ
receiptId

int64

нет

id операции фискализации

Описание структуры providerParams

Поле

Тип

Обяз.

Описание

chargingEP

object

нет

Набор дополнительных параметров для каждого провайдера, проводящего платеж

Описание структуры chargingEP

Поле

Тип

Обяз.

Описание

serviceCode

string

да

Код продукта в системе Foris, за который производится оплата

Описание структуры sessionParams

Поле

Тип

Обяз.

Описание

lifeTimeint64нетВремя жизни сессии (в минутах)
requestedCloseAtdatetime (UTC)нетДата и время окончания сессии. Если заполнены оба поля requestedCloseAt и lifeTime, сессия будет завершена в соответствии со значением параметра requestedCloseAt 

Описание структуры amountInfo

Поле

Тип

Обяз.

Описание

initialAmount

amount

нет

Исходная сумма оплаты, положительное значение.
Нельзя использовать в сценариях с верификационным платежами и подписках с промо

Описание структуры paymentToolsFilter

Поле

Тип

Обяз.

Описание

allowedPaymentToolsarrayнет

Допустимые платежный инструмент

  • mtsBankCard  
  • boundCard 
  • mtsCharging    
  • mtsMobileCommerce    
  • extMobileCommerce    
  • sbp   
  • sbpToken
  • newCard
  • sberPay  

allowedCardTypes

array

нет

Допустимые типы карт

  • VISA
  • MASTERCARD
  • MAESTRO
  • MIR
  • CUP

Выходные параметры

Заголовок ответа

Content-Type: application/json; charset=utf-8
http-code: 200
http-status: OK

Тело ответа

Поле

Тип

Обяз.

Описание

sessionId

string[32]

да

Идентификатор платежной сессии

Пример

Заголовок запроса

POST https://sandbox.pay.mts.ru/private/v1/payments/sessions/create HTTP/1.1
Host:
Content-Type: application/json
Request-Id: 8df44628-5fe8-40b8-8a2d-e214209a5cae

Тело запроса

{
  "serviceId": 5560,
  "serviceParams": {
    "NUMBER": "79160026188",
    "payerEmail": "tests12345@mts.ru",
    "id1": "108882256562"
  },
  "amount": 13.4,
  "currency": "643",
  "extClientId": "89150123456"
}

Заголовок ответа

Content-Type: application/json; charset=utf-8
http-code: 200
http-status: OK

Тело ответа

{
  "sessionId": "0b722ef4eb6b4cbe999e1c5bbcb4e456"
}

Возможные коды ошибок

code

message

userMessage

00299998

Validation error

Не пройдена валидация данных

00299999

An unexpected error has occurred

Непредвиденная ошибка

00200001

Session {0} not found

Сессия не найдена

01000002

Inactive merchant

Мерчант не активный

01000003

Service not found

Услуга (serviceId) не найдена

01000004

Service not available

Выбранный сервис недоступен мерчанту

03000003ProductId {0} not foundВ процессе проведения операции произошла ошибка. Попробуйте позже.