Инструменты страницы

Запрос на оплату с помощью Mir Pay (paymentDirect.do)

Для регистрации и оплаты заказа посредством MirPay с расшифровкой данных на стороне продавца используется запрос /mir/paymentDirect.do (см. ниже).

https://3dsec.sberbank.ru/payment/mir/paymentDirect.do

Вызов метода доступен мерчанту при наличии пермиссий «Разрешена оплата MirPay» и «Разрешена оплата расшифрованными токенами».

Для операций отмены, возврата и завершения платежа следует использовать стандартные запросы к платёжному шлюзу.

В настоящем документе при описании параметров запросов и ответов используются следующие обозначения типов данных:

  • A<n> – последовательность латинских букв длины <n>;
  • A..<n> – последовательность латинских букв длиной, не превышающей <n>;
  • N<n> – последовательность цифр длины <n>;
  • N..<n> – последовательность цифр длиной, не превышающей <n>;
  • AN<n> – последовательность латинских букв и цифр фиксированной длины <n>;
  • AN..<n> – последовательность латинских букв и цифр длиной, не превышающей <n>;
  • ANS<n> – последовательность латинских букв, цифр и символов фиксированной длины <n>
  • ANS..<n> – последовательность латинских букв, цифр и символов длиной, не превышающей <n>;
  • UTC – дата и время, при этом: дата должна быть передана без указания часового пояса, время московское, для протокола SOAP используется стандартная кодировка xs:dateTime.

Пользуясь протоколом REST, тело сообщения запроса следует отправлять с типом: 'Content-Type: application/json'.

Параметры запроса

Название Тип Обязательно Описание

userName

AN..255

Да (при авторизации через userName и password)

Логин служебной учётной записи продавца.

password

AN..200

Да (при авторизации через userName и password)

Логин продавца в платёжном шлюзе.

merchant

AN..255

Да (при авторизации через merchant)

Логин продавца в платёжном шлюзе.

clientId

ANS..255

Нет

Номер клиента, для которого следует создать связку для проведения регулярных платежей. Следует указывать, только если проводится технический платёж для последующих регулярных платежей.

orderNumber

ANS..32

Да

Номер (идентификатор) заказа в системе магазина.

description

ANS..512

Нет

Описание заказа в свободной форме. В процессинг банка для включения в финансовую отчётность продавца передаются только первые 24 символа этого поля.

Чтобы получить возможность отправлять это поле в процессинг, обратитесь в техническую поддержку.

language

A2

Нет

Язык в кодировке ISO 639-1. Если не указан, будет использован язык, указанный в настройках магазина как язык по умолчанию.

additionalParameters

Не актуально

Нет

Дополнительные параметры заказа, которые сохраняются для просмотра из личного кабинета продавца. Каждую новую пару имени и значения параметра следует отделять запятой. Ниже представлен пример использования.

{
    "firstParamName": "firstParamValue",
    "secondParamName": "secondParamValue"
}

Если у продавца настроена фискализация, при указании в качестве дополнительных параметров email (адрес электронной почты покупателя) и/или phone (номер сотового телефона покупателя) эти параметры в первую очередь используются для отправки фискального чека.

В параметре запрещено передавать зарезервированные имена (в случае их передачи заказ может быть отклонен):

  • sbrf_spasibo:amount_bonus
  • sbrf_sbermiles:amount_bonus
  • loyaltyId
  • overridenClientId


При создании связки в этом тэге могут быть переданы параметры, определяющие тип создаваемой связки. См. описание ниже;

preAuth

A..5

Нет

Параметр, определяющий необходимость предварительной авторизации (блокирования средств на счёте клиента до их списания). Доступны следующие значения:

  • true (истина) - параметр включён, производится двухстадийная оплата;
  • false (ложь) - параметр выключен, производится одностадийная оплата (средства списываются сразу).

Если параметр не указан в запросе, происходит одностадийная оплата.

Возможность проводить двухстадийные платежи предоставляется по отдельному запросу.

Этот параметр можно передавать как булевым значением (без кавычек), так и строкой (с кавычками).

paymentToken

AN..8192

Да

paymentToken, пришедший от Mirpay. Значение должно быть расшифрованное и закодированное в Base64.

ip

ANS..39

Да

IP-адрес покупателя. IPv6 поддерживается во всех запросах (до 39 символов).

tii

A2

Нет

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


См. описание ниже.

Для создания связок Mir Pay используются значения II - инициирующий платеж в рассрочку или RI - инициирующий рекуррентный платеж. Остальные значения игнорируются.

Параметры, определяющие тип создаваемой связки

Название Тип Обязательно Описание

installments

N..2

См. описание

Максимальное количество разрешенных авторизаций для платежей в рассрочку. Указывается в случае создания связки для выполнения платежей в рассрочку.

recurringFrequency

N..2

См. описание

Минимальное количество дней между авторизациями. Целое положительное число от 1 до 28 включительно.

Указывается в случае создания связки для выполнения рекуррентных платежей.

recurringExpiry

N8

См. описание

Дата, после которой дальнейшие авторизации не должны выполняться. Формат: YYYYMMDD, где YYYY - год, MM (01-12) - месяц, DD (01-31) - день обозначенной выше даты.

Указывается в случае создания связки для выполнения рекуррентных платежей.

tii

Параметры блока tii

Значение Описание Тип транзакции Инициатор транзакции Данные карты Данные сохраняются
CI Первоначальный общий CIT (customer initiated transaction) Инициирование Клиент Вводятся клиентом Да
II Первоначальный взнос CIT (customer initiated transaction) Инициирование Клиент Вводятся клиентом Да
RI Первичный Рекуррентный CIT (customer initiated transaction) Инициирование Клиент Вводятся клиентом Да
F Внеплановый CIT (customer initiated transaction) Последующий Клиент Клиент выбирает карту вместо ручного ввода Нет
U Внеплановый MIT (merchant initiated transaction) Последующий Мерчант Нет ручного ввода, мерчант передает данные Нет
R Рекуррентный MIT (merchant initiated transaction) Последующий Мерчант Нет ручного ввода, мерчант передает данные Нет
I Рассрочка MIT (merchant initiated transaction) Последующий Мерчант Нет ручного ввода, мерчант передает данные Нет

Параметры ответа

Параметры ответа представлены в таблице ниже.

Название Тип Обязательно Описание

success

A..5

Да

Указывает на успешность запроса. Доступны следующие значения:

  • true (истина) - запрос обработан успешно;
  • false (ложь) - запрос не прошёл.
Блок data (возвращается при успешной регистрации заказа)

orderId

ANS36

Да

Номер заказа в платежной системе. Уникален в пределах системы. Отсутствует если регистрация заказа не удалась по причине ошибки, детализированной в ErrorCode.

bindingId

AN..255

Да

Идентификатор связки созданной при оплате заказа или использованной для оплаты. Присутствует только если продавцу разрешено создание связок.

Блок error (возвращается, только если запрос завершился с ошибкой)

code

N..2

Да

Код ошибки.

description ANS..512 Да Подробное техническое объяснение ошибки - содержимое этого параметра не предназначено для отображения пользователю.

message

AN..512

Да

Понятное описание ошибки - предназначено для отображения пользователю.

Коды ошибок

Код ошибки Текст ошибки
0

Обработка запроса прошла без системных ошибок.

1 Недостаточно средств на карте
5

Доступ запрещён.

5

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

7

Системная ошибка.

10

Некорректное значение параметра [paymentToken].

10

Некорректное значение параметра [orderNumber].

10

Некорректное значение параметра [merchant].

10

Расшифровка переданных данных неуспешна.

Пример запроса POST


{
    "username": "<username>",
    "password": "<password>",
    "orderNumber": 3229,
    "description": "description",
    "language": "RU",
    "tii" : "II",
    "clientId":"202403122",
    "additionalParameters": {
        "installments": "5",
        "recurringFrequency": "5",
        "recurringExpiry": "20241004"
    },
    "preAuth": false,
    "paymentToken": "ewogICAgInRhbiI6ICIyMjAxNTUwMjAwMDAwMDAzNDQ0IiwKICAgICJjYXYiOiAiMDBERUUxRkE0NEMwREE5Mjc2MDAzMDdGMTQ4RDJDMjMxODAxQjYiLAogICAgInRleSI6IDI0LAogICAgInRlbSI6IDEyLAogICAgInRyYW5zSWQiOiAiMWVkZDkxMjAtZDkyZC02NzNiLTgwMDAtYTAwMDAwMDAwMDAxIiwKICAgICJtSWQiOiAiMDAwMDAwMDExMDIwMDAwIiwKICAgICJteDVjIjogIk1JSURiRENDQWxRQ0FoQUVNQTBHQ1NxR1NJYjNEUUVCQ3dVQU1IWXhIREFhQmdOVkJBTU1FM0JoZVcxbGJuUXVZV3htWVdKaGJtc3VjblV4Q3pBSkJnTlZCQVlUQWxKVk1ROHdEUVlEVlFRSERBWk5iM05qYjNjeER6QU5CZ05WQkFnTUJrMXZjMk52ZHpFV01CUUdBMVVFQ2d3TlNsTkRJRUZNUmtFdFFrRk9TekVQTUEwR0ExVUVDd3dHUWpFd01ERTFNQjRYRFRJek1EUXdNekE0TlRrek5sb1hEVEkzTURVeE1qQTROVGt6Tmxvd2dZQXhIREFhQmdOVkJBTU1FM0JoZVcxbGJuUXVZV3htWVdKaGJtc3VjblV4Q3pBSkJnTlZCQVlUQWxKVk1ROHdEUVlEVlFRSERBWk5iM05qYjNjeER6QU5CZ05WQkFnTUJrMXZjMk52ZHpFV01CUUdBMVVFQ2d3TlNsTkRJRUZNUmtFdFFrRk9TekVaTUJjR0ExVUVDd3dRVFRBd01EQXdNREF4TVRBeU1EQXdNRENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFPb2NHMngvWmNlT2JoQXZWUFJmZFVOS0Rjb0pXUXJHOW0yczJIZVVVUDlwQTF1Misyc1l1RzdudjNxZWhlNU9lYVRJN2tzUjllVVVLaUJYRXM5TnJvWm1DV1MybkpVbjNLMENqTUo2STViTkNtVURsSHY2SUZxNlZWL2t4WlVId2JrVGJwcW11TEE3ZGZ2NGRpY1BobCt1NkR2NmV1Y0JMYk9TVjdVR24rWlNzSXZvemVFdG5nalo0OGdKSitySWRlQUhBL1k4T3FnQnVEWThveGFyZjBRemZEUlpmZDVrVXR1NFpETzhLVXZyV0dOSkduTW0xRXJCZ3VxT3pGYWg5VU84UTN2bFpQTmlPQkJUdzRuYTNYV29ub01neXUvK1B6YUwxcksrT1F0Z1lnYSszN0pPbHN3cUxOVXZTRnpUK0RuZzNPR0Q5MjdzZVNtbGtJWE5JZmNDQXdFQUFUQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FRRUFYUUR6WUNpUXpCNzFVREJaT2JYdE9YVzBqZTh0SUhOUldSS1lpQzlka0llQXBNdTJGTTd4MW16QzFYcHhZaTZjN0lnSVgwYzBJYU5OQmFmY0ZxTDlGM1NpZ0F4TThyQStWOHZhUCs2cGttZzRGWUFYQ0g0bEIvaCtGUmZmdDl3aENCeEZaMFM5cU5YZEoyYU5wRXdwem1aUlBqNEFtV1V5NkpNYnBPa09NamZTT1YvbFVFblVSWEdHS0xzL0krU05GTXpZZGNBSUhHN3ZybWRzUVZ4NWhGOGo3TnZHZ3BMeXFvWDRjanA5SlF1cDJRNG1rUVQ1N1JSTVhudzhYdGlYVTR4OVZXMFJRMXJEcjdoUWp5K2pKKzJqWmRKS0F1RGlBeXc2YUtjaXgyTTA4UkhrdmJiMEJMSk90OUU3ZTNUQWl1WjRZQmpWRzZVOVpWSzV4VHkvakE9PSIsCiAgICAib3JkZXJJZCI6ICIwMmZiOThmMi1hZjk5LTdjYjgtYWRmOS1iMGE3MDBhODI2ZTAiLAogICAgInN1bSI6IDUwMCwKICAgICJjdXIiOiA2NDMsCiAgICAibWVkaWEiOiAiVUwiCn0=",
    "ip": "127.0.0.1"
}

Пример ответа

Успешная оплата

{
    "success": true,
    "data": {
        "orderId": "243ec139-4b5a-7859-b409-bbcb4806bc81",
        "bindingId": "7c1d7969-bf01-7f34-be04-c6904806bc81"
    }
}

Неуспешная оплата

{
  "error": {
    "code": 1,
    "description": "Processing Error",
    "message": "Недостаточно средств на карте"
  },
  "success": false
}