Партнер предоставляет URL, на который необходимо отправлять уведомления по платежу. Рекомендуем, чтобы URL для уведомлений начинался с https. Так же необходимо ознакомиться с идентификаторами и информацией по обработке уведомлений.
Платежный шлюз со своей стороны предоставляет список IP адресов (если требуется), с которых могут быть отправлены уведомления.
Дополнительную проверку подлинности сообщения можно выполнить с помощью запроса: информация о платеже. Но если используется протокол http, то необходимо проводить дополнительную проверку.
Пример url-адресов:
Событие | Stage | Prod |
|---|---|---|
Платеж | https://{host}/{path}/{paymentId} | https://{host}/{path}/{paymentId} |
Далее по тексту, комбинация https:// + {host} + {path} - мы заменяем на {merchant_url}.
Платежный шлюз МТС отправляет на указанный в профиле URL уведомления по платежам, если:
Уведомление отправляется как HTTP-запрос на адрес, указанный в настройках Партнера, в следующем формате:
Заголовок запроса
POST |
Параметр запроса
Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
paymentId | int64 | да | ID платежа |
Тело запроса
Поле | Тип | Обязат. | Описание |
|---|---|---|---|
serviceId | int64 | нет | ID сервиса |
amount | amount | да | Сумма платежа |
amountNet | amount | нет | Сумма за вычетом комиссии |
currency | string [3] | да | Валюта платежа, по умолчанию 643 |
serviceParams{} | object | да | Набор пар "параметр":"значение", описывающих реквизиты платежа (специфичных для каждого поставщика) |
extClientId | string[256] | нет | Идентификатор пользователя в системе Мерчанта |
status | string | да | Payments Status
|
| reasonCode | string | нет | Дополнительное описание статуса подписки |
id | int64 | да | Уникальная ссылка на платежную транзакцию (для обращения пользователей) |
invoiceId | int64 | нет | Идентификатор счета, по которому осуществляется оплата |
| subscription | object | нет | Блок информации по подписке |
paymentTime | dateTime | нет | Время проведения операции |
sessionId | string | нет | Идентификатор сессии, по которой был создан платеж |
processingId | string | нет | ID процессинговой системы, которая проводит платеж (устаревшее поле) |
| loyalty | object | нет | Данные о программе лояльности, которая была использована в платеже |
paymentTokenId | guid | нет | Идентификатор платежного токена в ПШ |
| paymentToolInfo | object | нет | Информация с выбранным способом оплаты |
| processing | object | нет | Набор параметров ПЦ ЭК |
| phone | int64 | нет | Номер телефона, под которым авторизовался пользователь |
amountInfo | object | нет | Полная информация о сумме оплаты |
errorData | object | нет | Данные о ошибке при обработке запроса |
Описание структуры amountInfo
Поле | Тип | Обяз. | Описание |
|---|---|---|---|
| initialAmount | amount | нет | Исходная сумма, представленная к оплате |
totalAmount | amount | нет | Сумма операции с применённой комиссией |
| commission | amount | нет | Комиссия в рублях. Число с фиксированной точкой, две цифры после точки. Может быть отрицательной (скидка) |
Описание структуры loyalty
Поле | Тип | Обяз. | Описание |
|---|---|---|---|
| type | string (enum) | да | Тип программы лояльности. Пока тип только один - МТС Cashback
|
amount | amount | да | Сумма баллов программы лояльности пользователя, использованная для оплаты |
Описание структуры subscription
Поле | Тип | Обяз. | Описание |
|---|---|---|---|
id | guid | да | ID подписки |
Описание структуры paymentToolInfo
Поле | Тип | Обяз. | Описание |
|---|---|---|---|
type | string(enum) | да | Тип способа оплаты
|
| card | object | нет | Информация по карте пользователя |
Описание структуры card
Поле | Тип | Обяз. | Описание |
|---|---|---|---|
| bank | string | нет | Банк-эмитент карты |
| type | string(enum) | да | Платёжная система карты
|
| isSocialCard | boolean | нет | Признак того, является ли карты социальной |
| maskedPan | string | нет | Маскированный номер карты (334455******6677) |
expiryMonth | int32[2] | нет | Месяц действия карты (MM) |
| expiryYear | int32[4] | нет | Год действия карты (YYYY) |
Описание структуры processing
Поле | Тип | Обяз. | Описание |
|---|---|---|---|
id | string | нет | ID процессинговой системы, которая проводит платеж |
| rrn | string | нет | RRN Банка
|
| approvalCode | string | нет | Код авторизации |
| data | object | нет | Набор пар "параметр": "значение" передаваемая от сервиса процессинга |
Поле | Тип | Обяз. | Описание |
|---|---|---|---|
| code | string | нет | Код ошибки (первые три цифры - код сервиса (034), последние пять - код ошибки (00002)) |
| message | string | да | Техническое сообщение не показываем |
| userMessage | string | нет | Сообщение для пользователя |
| isFatal | boolean | нет | Признак что дальнейшая работа не возможна |
| isPublic | boolean | нет | Признак что информация из поля message может быть транслирована пользователю |
Уведомление считается принятым, если получатель ответил на запрос кодом HTTP 200 OK.
Заголовок ответа
Content-Type: application/json; charset=utf-8 |
Тело ответа
Параметр | Тип | Обязат. | Описание |
|---|---|---|---|
result | string | да | SUCCESS|ERROR |
errorMessage | string | нет | Если result=ERROR |
POST {merchant_url}/223205 HTTP/1.1 |
{
"id": 223205,
"amount": 100.0,
"currency": "643",
"status": "EXECUTED",
"paymentTime": "2021-05-05T13:07:46.955962",
"paymentToolInfo": {
"type": "newcard",
"card": {
"bank": "MTS_Bank",
"type": "mir",
"isSocialCard": false,
"maskedPan":"524602******3147",
"expiryMonth":12,
"expiryYear":2029
}
},
"serviceId": 6340,
"serviceParams": {
"id1": "108882256562",
"NUMBER": "79157802494",
"payerEmail": "test@mts.ru"
},
"sessionId": "a8d288ccf2db41ada7fac6f43831be59",
"extClientId": "4673804f-663c-4ab4-9888-78e9f68ffd3d",
"subscription": {
"id": "dd0ce6e2-b9fb-4ea1-91a3-7035ab8240a9"
},
"invoiceId": 123,
"loyalty": {
"type": "MTSCashBack",
"amount": 13.4
},
"processing": {
"id": "13446192811",
"rrn": "228416787387",
"approvalCode": "816622"
},
"amountInfo": {
"initialAmount": 100,
"totalAmount": 103,
"commission": 3.0
}
}
Content-Type: application/json; charset=utf-8 |
{
"result":"SUCCESS"
} |
Значение в ответе GET API в коде | Значение в Notifications | Описание |
|---|---|---|
waitingForConfirmation | - | Ожидает подтверждение операции от пользователя |
| waitingForProceed | - | Ожидается информация об устройстве |
| waitingForProviderResult | INPROGRESS | Ожидает результат оплаты в системе провайдера |
| waitingForAuthorize | INPROGRESS | Ожидает результат холдирования в системе провайдера |
executed | EXECUTED | Платеж успешно проведен |
authorized | AUTHORIZED | Холдирование успешно проведено |
rejected | REJECTED | Отказан на этапе выполнения |
cancelled | CANCELLED | Платеж/холдирование было отменено |
error | - | Ошибка во время обработки |
type | Описание |
|---|---|
| mtsBankCard | Привязанная карта МТС банка |
| boundCard | Привязанная банковская карта стороннего банка (не МТС Банк) |
| newCard | Непривязанная банковская карта |
| sbp | Система быстрых платежей |
| mtsCharging | Оплата с лицевого счета через систему ChargingEP |
| mtsMobileCommerce | Денежные средства на лицевом счете абонента МТС |
| emoneyAccount | Денежные средства в кошельке МТС Деньги |
| extMobileCommerce | Денежные средства на лицевом счете абонента Билайн, Мегафон, Теле2 |
| bnpl | Оплата частями |
| internalBinding | Привязанная банковская карта во внутреннем хранилище |
| ewalletBinding | Неизвестный инструмент кошелька |