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

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

Для регистрации заказа используется запрос payment.do (см. ниже).

https://3dsec.sberbank.ru/payment/google/payment.do

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

Разница в запросах между токенизированными и нетокенизированными картами отсутствует.

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

  • 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.

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

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

Для корректной обработки запроса необходимо добавить заголовок с определением типа содержимого - Content-Type: application/json.

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

merchant

AN..255

Да

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

orderNumber

ANS..32

Да

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

protocolVersion

AN

Нет

Версия протокола сообщения, получаемого от Google. Если данный параметр указан, то валидные значение следующие:

  • ECv1
  • ECv2

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

description

ANS..512

Нет

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

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

language

A2

Нет

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

feeInput

N..8

Нет

Сумма комиссии в минимальных единицах валюты.

Параметр передается только при включении соответствующей пермиссии.

additionalParameters

Не актуально

Нет

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

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

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

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

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

preAuth

A..5

Нет

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

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

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

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

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

clientId

ANS..255

Нет

Номер (идентификатор) клиента в системе магазина. Используется для реализации функционала связок. Может присутствовать, если магазину разрешено создание связок.

Указание этого параметра при платежах по связке необходимо - в противном случае платёж будет неуспешен.

paymentToken

AN..8192

Да

Токен, полученный от Google Pay и закодированный в Base64.

ip

ANS..39

Нет

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

amount

N..12

Да

Сумма платежа в минимальных единицах валюты.

currencyCode

N3

Нет

Цифровой код валюты платежа ISO 4217. Если не указан, считается равным коду валюты по умолчанию.

email

ANS..40

Обязателен, если у интернет-магазина настроена фискализация и не указан номер телефона.

Адрес электронной почты покупателя. Можно указать несколько адресов электронной почты через запятую и без пробелов - в этом случае чек будет отправлен на все указанные адреса.

phone

NS..12

Обязателен, если у интернет-магазина настроена фискализация и не указан адрес электронной почты.

Номер телефона клиента. Примеры:

  • +79000000000
  • 89000000000
  • 9000000000
  • 79000000000

В случае передачи номера в отдельном параметре и в дополнительных параметрах, в качестве основного использоваться будет номер, указанный в настоящем параметре phone.

returnUrl

ANS..512

Да

Адрес, на который требуется перенаправить пользователя в случае успешной оплаты, а также в случае неуспешной оплаты (при отсутствии переданного параметра failUrl). Адрес должен быть указан полностью, включая используемый протокол (например, https://test.ru вместо test.ru). В противном случае пользователь будет перенаправлен по адресу следующего вида: http://<адрес_платёжного_шлюза>/<адрес_продавца>.

Адрес нельзя указывать относительным путем, т.е. они не должны начинаться на «.» и «/». В противном случае вернется ошибка 4: «URL возврата некорректен». Например:

failUrl

ANS..512

Нет

Адрес, на который требуется перенаправить пользователя в случае неуспешной оплаты. Адрес должен быть указан полностью, включая используемый протокол (например, https://test.ru вместо test.ru). В противном случае пользователь будет перенаправлен по адресу следующего вида: http://<адрес_платёжного_шлюза>/<адрес_продавца>.

Адрес нельзя указывать относительным путем, т.е. они не должны начинаться на «.» и «/». В противном случае вернется ошибка 4: «URL возврата некорректен». Например:

Параметр необязательный.

dynamicCallbackUrl

ANS..512

Нет

Параметр позволяет воспользоваться функциональность динамической отправки callback-уведомлений. В нем можно передать адрес, на который будут отправляться все «платежные» callback-уведомления, активированные для продавца. Под платежными понимаются callback-уведомления о следующих событиях: успешный холд, платеж отклонен по таймауту,  платеж cardpresent отклонен, успешное списание, возврат, отмена. При этом активированные для мерчанта callback-уведомления, не относящиеся к платежам (включение/выключение связки, создание связки), будут отправляться на статический адрес для callback-ов.

Для использования функциональности динамической отправки callback-уведомлений необходимо, чтобы у мерчанта была выставлена соответствующая настройка: Тип callback-а: Динамический (CALLBACK_TYPE = DYNAMIC).

Чтобы мерчант мог получать callback-уведомления, для него необходима активация пермиссии: Разрешено выполнять callback операции.

billingPayerData

См. описание

Нет

Блок c регистрационными данными клиента (адрес, почтовый индекс), необходимыми для прохождения проверки адреса в рамках сервисов AVS/AVV.

Обязателен, если активна соответствующая пермиссия для мерчанта («Разрешено использование AVS/AVV»).

tii

A2

Нет

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

billingAndShippingAddressMatchIndicator

A1

Нет

Индикатор совпадения адреса держателя карты для выставления счета и адреса доставки. Возможные значения:

  • Y - адрес держателя карты для выставления счета и адрес доставки совпадают;
  • N - адрес держателя карты для выставления счета и адрес доставки не совпадают.

Этот параметр используется для дальнейшей 3DS аутентификации клиента.

shippingPayerData

См. описание

Нет

Блок с данными доставки клиента. Используется для дальнейшей 3DS аутентификации клиента.

orderPayerData

См. описание

Нет

Блок с данными о плательщике заказа. Используется для дальнейшей 3DS аутентификации клиента.

preOrderPayerData

См. описание

Нет

Блок с данными предзаказа. Используется для дальнейшей 3DS аутентификации клиента.

tii

billingPayerData

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

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

billingCity

AN..50

Нет

Город, зарегистрированный по конкретной карте у Банка Эмитента

billingCountry

AN..50

Нет

billingAddressLine1

AN..50

Нет

Адрес, зарегистрированный по конкретной карте у Банка Эмитента

Строка 1.

Обязательно, если у Мерчанта активирована пермиссия «Разрешено использование AVS/AVV».

billingAddressLine2

AN..50

Нет

Адрес, зарегистрированный по конкретной карте у Банка Эмитента

Строка 2.

billingAddressLine3

AN..50

Нет

Адрес, зарегистрированный по конкретной карте у Банка Эмитента

Строка 3.

billingPostalCode

AN..50

Нет

Почтовый индекс, зарегистрированный по конкретной карте у Банка Эмитента.

Обязательно, если у Мерчанта активирована пермиссия «Разрешено использование AVS/AVV».

billingState

AN..50

Нет

Штат, зарегистрированный по конкретной карте у Банка Эмитента (ISO 3166-2)

shippingPayerData

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

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

shippingcity

ANS…50

Нет

Город клиента (из адреса доставки).

shippingCountry

ANS…50

Нет

Страна клиента.

shippingAddressLine1

ANS…50

Нет

Основной адрес клиента (из адреса доставки).

shippingAddressLine2

ANS…50

Нет

Основной адрес клиента (из адреса доставки).

shippingAddressLine3

ANS…50

Нет

Основной адрес клиента (из адреса доставки).

shippingPostalCode

ANS…16

Нет

ZIP или иной почтовый индекс клиента для доставки.

shippingState

ANS…50

Нет

Штат/регион клиента (из адреса доставки).

shippingMethodIndicator

N2

Нет

Индикатор способа доставки. Перечень возможных значений:

  • 01 - доставка на адрес держателя карты для выставления счета;
  • 02 - доставка на другой адрес, проверенный Мерчантом;
  • 03 - доставка на адрес, отличный от основного адреса держателя карты (расчетного);
  • 04 - отправка в магазин/самовывоз (адрес магазина должен быть указан в соответствующих параметрах доставки);
  • 05 - цифровая дистрибуция (включает онлайн сервисы и электронные подарочные карты);
  • 06 - путешествия и билеты на события, не подлежащие доставке;
  • 07 - иное (например, игры, цифровые товары, не подлежащие доставке, цифровые подписки и т.д.).

deliveryTimeframe

N2

Нет

Сроки доставки товара. Перечень возможных значений:

  • 01 - цифровая дистрибуция;
  • 02 - доставка в день оплаты;
  • 03 - ночная доставка;
  • 04 - доставка в интервал 2 дня после оплаты и позже.

deliveryEmail

ANS…254

Нет

Целевой адрес электронной почты для доставки цифровой дистрибуции.

orderPayerData

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

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

homePhone

ANS…19

Нет

Домашний телефон держателя карты, с обязательным символом «+».

workPhone

ANS…19

Нет

Рабочий телефон держателя карты, c обязательным символом «+».

mobilePhone

ANS…19

Нет

Мобильный телефон держателя карты, c обязательным символом «+».

preOrderPayerData

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

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

preOrderDate

ANS8

Нет

Ожидаемая дата, когда будет доступна доставка (для предварительно заказанных покупок), в формате YYYYMMDD.

preOrderPurchaseInd

N2

Нет

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

  • 01 - доставка доступна;
  • 02 - будущая доставка.

reorderItemsInd

N2

Нет

Индикатор того, что клиент выполняет переоформляет ранее оплаченную доставку в рамках нового заказа. Перечень возможных значений:

  • 01 - заказ оформляет впервые;
  • 02 - повторный заказ.

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

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

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

success

A..5

Да

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

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

orderId

ANS36

Да

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

termUrl

AN..512

Только если используется дополнительная аутентификация на ACS банка-эмитента

Ссылка перенаправления плательщика после аутентификации.

Этот параметр возвращается, только если в запросе передавались данные нетокенизированной карты.

acsUrl

AN..512

Только если используется дополнительная аутентификация на ACS банка-эмитента

Адрес перенаправления на адрес сервера ACS.

Этот параметр возвращается, только если в запросе передавались данные нетокенизированной карты.

paReq

AN..512

Только если используется дополнительная аутентификация на ACS банка-эмитента

Запрос аутентификации плательщика.

Этот параметр возвращается, только если в запросе передавались данные нетокенизированной карты.

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

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

10

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

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

{
    "merchant": "OurBestMerchantLogin",
    "orderNumber": "UAF-203974-DE",
    "language": "RU",
    "preAuth": true,
    "description" : "Test description",
    "additionalParameters":
    {
        "firstParamName": "firstParamValue",
        "secondParamName": "secondParamValue"
    },
    "paymentToken": "eyJtZXJjaGFudCI6ICJrdXBpdmlwIiwib3JkZXJOdW1iZXIiOiAyMDUxOTIzMzkxLCJwYXltZW50VG9rZW4iOiAie1wiZXBoZW1lcmFsUHVibGljS2V5XCI6XCJrZXlcIixcImVuY3J5cHRlZE1lc3NhZ2VcIjpcIm1lc3NhZ2VcIixcInRhZ1wiOlwidGFnXCJ9In0=",
    "ip" : "127.0.0.1",
    "amount" : "230000",
    "currencyCode": 643
    "returnUrl": "https://test.ru"
}

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

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

{
"success":true,
"data": {
    "orderId": "12312312123"
  }
}

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

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