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

Запрос завершения на частичную сумму в деньгах, передача корзины (depositOrder)

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

Для подключения к тестовой службе (WSDL) используйте следующий адрес:
https://3dsec.sberbank.ru/payment/webservices/merchant-ws?wsdl.

При завершении заказов корзина передаётся в элементе depositItems.

  • В случае завершения на полную предавторизованную сумму передача корзины необязательна.
  • Сумма завершения (в деньгах) в корзине не должна превышать предавторизованную денежную сумму заказа.
  • При завершении заказа на сумму отличную от суммы предавторизации (кроме передачи значения «0») обязательно должна передаваться корзина товаров.
  • Все товарные позиции корзины должны быть выражены в одной и той же валюте (если валюта позиций указывается) и должны совпадать с валютой оригинального Заказа. Для Сбербанк «Спасибо» валюта заказа должна быть рубли РФ (643-RUB).
  • Значение элемента quantity в корзине запроса на завершение не должно превышать значение аналогичного параметра в корзине заказа на регистрацию.
  • Значение элемента itemAmount блока items не должно превышать значение аналогичного параметра в оригинальном заказе.
  • По каждой товарной позиции производится проверка переданного значения quantity. Если значение слишком большое или слишком маленькое, запрос завершается ошибкой.
  • При завершении заказа в интернет- кредитовании на полную/частичную сумму, партнеру необходимо передавать в корзине стоимость товаров с учетом скидки, если заказ был зарегистрирован с типом продукта – ‘INSTALLMENT’
  • Все параметры корзины проверяются на соответствие требуемому формату (длине).

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

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

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

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

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

orderId

ANS36

Да

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

Все версии.

depositAmount

N..5

Да

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

Все версии.

language

A2

Нет

Код языка в соответствии с ISO 639-1. Если не указан, считается, что язык – русский. Сообщение ошибке будет возвращено именно на этом языке.

Все версии.

depositItems

Не актуально

Да

Тег с атрибутами товарных позиции корзины. Описание вложенных тегов представлено ниже.

Все версии.

deposItitems

deposItitems состоит из следующих элементов.

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

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

items

Не актуально

Да

Элемент массива с атрибутами товарной позиции в корзине. Описание его атрибутов представлено ниже.

Все версии.

items

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

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

positionId

ANS..12

Да

Уникальный идентификатор товарной позиции внутри корзины заказа.

Все версии.

name

ANS..100

Да

Наименование или описание товарной позиции в свободной форме.

Используйте \\ - для передачи \

используйте \« - для передачи »

где « означает знак кавычек

Все версии.

itemDetails

Не актуально

Нет

Дополнительный блок с параметрами описания товарной позиции. Описание его атрибутов представлено ниже.

Ограничение размера поля - 1024 байт.

Все версии.

quantity

N..18

Да

Элемент, описывающий общее количество товарных позиций одного positionId и их меру измерения. Описание его атрибутов представлено ниже.

Все версии.

itemAmount

N..18

Да

Сумма стоимости всех товарных позиций одного positionId в минимальных единицах валюты. itemAmount обязателен к передаче, только если не был передан параметр itemPrice. В противном случае передача itemAmount не требуется. Если же в запросе передаются оба параметра: itemPrice и itemAmount, то itemAmount должен равняться itemPrice * quantity, в противном случае запрос завершится с ошибкой.

При расчёте параметра itemAmount = itemPrice*quantity результат округляется до второго знака после десятичного разделителя. Например, если результат вычислений равен 100,255, то итоговый результат будет равен 100,26.

Все версии.

itemCurrency

N3

Нет

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

Все версии.

itemCode

ANS..100

Да

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

Во всех методах передача артикула itemcode/code обязательна.

Все версии.

tax

Не актуально

Только если продавец подключён к сервису фискализации

Дополнительный тег с атрибутами описания налога. Описание вложенных тегов представлено ниже.

Все версии.

itemPrice

N..18

Только если продавец подключён к сервису фискализации

Стоимость одной товарной позиции одного positionId в минимальных единицах валюты (например, в копейках). Обязательно для продавцов с фискализацией.

  • itemPrice не может быть меньше 0.
  • itemPrice может передаваться как строкой, так и целочисленным типом.

Все версии.

itemAttributes

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

Только для магазинов с настройками фискализации

Тэг, предназначенный для передачи набора атрибутов товарной позиции. Атрибуты следует указывать следующим образом.

<attributes  name="название_атрибута_1">значение_атрибута_1</attributes>
<attributes  name="название_атрибута_2">значение_атрибута_2</attributes>

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

1.05 и более поздние версии.

itemAttributes

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

paymentMethod

N..2

Да

Тип оплаты возможны следующие значения:

  • 1 - полная предварительная оплата до момента передачи предмета расчёта;
  • 2 - частичная предварительная оплата до момента передачи предмета расчёта;
  • 3 - аванс;
  • 4 - полная оплата в момент передачи предмета расчёта;
  • 5 - частичная оплата предмета расчёта в момент его передачи с последующей оплатой в кредит;
  • 6 - передача предмета расчёта без его оплаты в момент его передачи с последующей оплатой в кредит;
  • 7 - оплата предмета расчёта после его передачи с оплатой в кредит.

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

  1. Корзина заказа из API-запроса.
  2. Настройки фискализации в личном кабинете.
  3. Значения по умолчанию.

Для paymentMethod значением по умолчанию является 1 (полная предварительная оплата до момента передачи предмета расчета).

1.05 и более поздние версии.

paymentObject

N..2

Да

Тип оплачиваемой позиции, возможны следующие значения:

  • 1 - товар;
  • 2 - подакцизный товар;
  • 3 - работа;
  • 4 - услуга;
  • 5 - ставка азартной игры;
  • 6 - выигрыш азартной игры;
  • 7 - лотерейный билет;
  • 8 - выигрыш лотереи;
  • 9 - предоставление РИД;
  • 10 - платёж;
  • 11 - агентское вознаграждение;
  • 12 - составной предмет расчёта;
  • 13 - иной предмет расчёта.
  • 14 - имущественное право;
  • 15 - внереализационный доход;
  • 16 - страховые взносы: о суммах расходов, уменьшающих сумму налога (авансовых платежей) в соответствии с пунктом 3.1 статьи 346.21 Налогового кодекса Российской Федерации;
  • 17 - торговый сбор: о суммах уплаченного торгового сбора;
  • 18 - курортный сбор;

Указанные выше значения доступны для ФФД 1.05.

Для ФФД 1.2 список доступных значений пополняется также следующими значениями:

  • 30 - реализуемый подакцизный товар, подлежащий маркировке средством идентификации, не имеющем кода маркировки;
  • 31 - реализуемый подакцизный товар, подлежащий маркировке средством идентификации, имеющем кода маркировки;
  • 32 - реализуемый товар, подлежащий маркировке средством идентификации, не имеющим код маркировки, за исключением подакцизного товара;
  • 33 - реализуемый товар, подлежащий маркировке средством идентификации, имеющим код маркировки, за исключением подакцизного товара.

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

  1. Корзина заказа из API-запроса.
  2. Настройки фискализации в личном кабинете.
  3. Значения по умолчанию.

Для paymentObject значением по умолчанию является 1 (товар).

1.05 и более поздние версии.

nomenclature

ANS

да (если передан markQuantity)

Код товарной позиции.

Принимаются только первые 256 байт.

Возможные форматы для передачи:

  1. В шестнадцатеричном представлении - HEX кодировке с пробелами. Здесь необходимо cоответствие с маской 1 байт - пробел - 1 байт (два символа в шестнадцатеричном виде). Также необходимо указать код товара в соответствии с требованиями Честного Знака (максимальная длина - 95 символов).
  2. В виде строки, если передача идет не в HEX кодировке.

1.05 и более поздние версии.

markQuantity

Нет

Дробное количество маркированного товара.

1.2 и более поздние версии.

userData

ANS..64

Нет

Значение реквизита пользователя. Можно передавать только после согласования с ФНС.

1.05 и более поздние версии.

agent_info.type

N..2

Обязателен, только если передан объект agent_info.

Тип агента, возможно одно из следующих значений:

  • 1 - банковский платёжный агент;
  • 2 - банковский платёжный субагент;
  • 3 - платёжный агент;
  • 4 - платёжный субагент;
  • 5 - поверенный;
  • 6 - комиссионер;
  • 7 - иной агент.

1.05 и более поздние версии.

agent_info.paying.operation

ANS..24

Нет

Наименование операции платёжного агента.

1.05 и более поздние версии.

agent_info.paying.phones

массив ANS..19

Нет

Массив телефонов платёжного агента в формате +N.

1.05 и более поздние версии.

agent_info.paymentsOperator.phones

Массив ANS..19

Нет

Массив телефонов оператора по приёму платежей в формате +N.

1.05 и более поздние версии.

agent_info.MTOperator.phones

Массив ANS..19

Нет

Массив телефонов оператора перевода в формате +N.

1.05 и более поздние версии.

agent_info.MTOperator.name

ANS..64

Нет

Наименование оператора перевода.

1.05 и более поздние версии.

agent_info.MTOperator.address

ANS..256

Нет

Адрес оператора перевода.

1.05 и более поздние версии.

agent_info.MTOperator.inn

N10..12

Нет

ИНН оператора перевода.

1.05 и более поздние версии.

supplier_info.phones

Maccив ANS..19

Нет

Массив телефонов поставщика в формате +N.

1.05 и более поздние версии.

supplier_info.name

ANS..256

Нет

Наименование поставщика.

1.05 и более поздние версии.

supplier_info.inn

N10..12

Нет

ИНН поставщика.

1.05 и более поздние версии.

quantity

quantity состоит из следующих элементов.

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

measure

ANS..20

Да

Мера измерения количества товарной позиции.

Все версии.

Если ФФД версии 1.2 и более поздней, то здесь передаются параметры:

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

value

N1

Да

Количество товарных позиций данного positionId. Для версии ФФД 1.2+ значение всегда 1.

1.2 и более поздние версии.

measure

N..3

Да

Единица измерения количества предмета расчета. При ФФД версии 1.2+ , если переданы параметры nomenclature и markQuantity, значение всегда 0. В остальных случаях принимает значения

1.2 и более поздние версии.

Возможные значения measure

Значение Описание
0 Применяется для предметов расчета, которые могут быть реализованы поштучно или единицами (а также в случае, если предметом расчета является товар, подлежащий обязательной маркировке средством идентификации (передан mark_code))
10 Грамм
11 Килограмм
12 Тонна
20 Сантиметр
21 Дециметр
22 Метр
30 Квадратный сантиметр
31 Квадратный дециметр
32 Квадратный метр
40 Миллилитр
41 Литр
42 Кубический метр
50 Киловатт час
51 Гигакалория
70 Сутки (день)
71 Час
72 Минута
73 Секунда
80 Килобайт
81 Мегабайт
82 Гигабайт
83 Терабайт
255 Применяется при использовании иных мер измерения

markQuantity

Параметры тэга markQuantity:

Обязательность параметров указана для использования в рамках тэга. Если тэг необязательный и в запросе отсутствует, то и входящие в него параметры не должны передаваться.

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

numerator

N..12

да

Числитель дробной части предмета расчета.

denominator

N..12

да

Знаменатель дробной части предмета расчета.

itemDetails

itemDetails состоит из следующих элементов.

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

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

itemDetailsParams

ANS..255

Нет

Параметр описывающий дополнительную информацию по товарной позиции. Описание его атрибутов представлено ниже.

Все версии.

itemDetailsParams

itemDetailsParams состоит из следующих элементов.

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

name

AN..255

Да

Наименование параметра описания детализации товарной позиции.

Все версии.

tax

tax состоит из следующих элементов.

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

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

taxType

N..2

Да

Ставка НДС, доступны следующие значения:

  • 0 – без НДС;
  • 1 – НДС по ставке 0%;
  • 2 – НДС чека по ставке 10%;
  • 4 – НДС чека по расчетной ставке 10/110;
  • 6 - НДС чека по ставке 20%;
  • 7 - НДС чека по расчётной ставке 20/120;
  • 10 – НДС чека по ставке 5%;
  • 11 – НДС чека по расчетной ставке 5/105;
  • 12 – НДС чека по ставке 7%;
  • 13 – НДС чека по расчетной ставке 7/107.

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

Все версии.

taxSum

N..18

Да

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

Все версии.

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

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

errorCode

N..2

Да

Код ошибки.

Все версии.

errorMessage

AN..512

Нет

Описание ошибки на языке, переданном в параметре language в запросе.

Все версии.

Коды ошибок

Значение Описание
0

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

5

Сумма депозита должна быть равной нулю или не менее одного рубля.

5

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

5

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

6

Неверный номер заказа.

6

[orderId] не задан.

7

Платёж должен быть в корректном состоянии.

7

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

8

Сумма депозита больше чем сумма при регистрации.

8

[depositItems.items.currency] валюта в корзине не соответствует валюте заказа.

8

[depositItems.totalAmount] сумма товарных позиций в корзине не совпадает с общей суммой.

8

[items.item.position] оригинальный заказ не содержит товарной позиции с данным номером.

8

[refundItems.item.quantity.value] Слишком большое либо слишком маленькое значение.

Примеры

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

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mer="http://engine.paymentgate.ru/webservices/merchant">
   <soapenv:Header/>
   <soapenv:Body>
      <mer:depositOrder>
         <order language="ru" orderId="76d7885f-562a-4bac-abc3-18ecaaaca797" depositAmount="20777">
            <!--Optional:-->
            <depositItems>

               <!--Zero or more repetitions:-->
                <items positionId="1">
                     <name>Metzeler Enduro 3 Sahara</name>
                     <!-- Optional: -->
                     <itemDetails>
                        <!-- Zero or more repetitions: -->
                        <itemDetailsParams name="brand">Metzeler</itemDetailsParams>
                        <itemDetailsParams name="radius">17inch</itemDetailsParams>
                     </itemDetails>
                     <quantity measure="штук">1</quantity>
                     <itemAmount>7777</itemAmount>
                     <itemCurrency>643</itemCurrency>
                     <itemCode>T-M-14</itemCode>
                     <tax>
                        <taxType>1</taxType>
                        <taxSum>111</taxSum>
                     </tax>
                     <itemPrice>7777</itemPrice>
                  </items>

                  <items positionId="2">
                     <name>Universal Mirror Enduro</name>
                     <!-- Optional: -->
                     <itemDetails>
                        <!-- Zero or more repetitions: -->
                        <itemDetailsParams name="brand">Noname</itemDetailsParams>
                        <itemDetailsParams name="diameter">12mm</itemDetailsParams>
                     </itemDetails>
                     <quantity measure="штук">1</quantity>
                     <itemAmount>5000</itemAmount>
                     <itemCurrency>643</itemCurrency>
                     <itemCode>NM-15</itemCode>
                     <tax>
                        <taxType>1</taxType>
                        <taxSum>111</taxSum>
                     </tax>
                     <itemPrice>5000</itemPrice>
                  </items>

                  <items positionId="3">
                     <name>Warm Grips</name>
                     <!-- Optional: -->
                     <itemDetails>
                        <!-- Zero or more repetitions: -->
                        <itemDetailsParams name="brand">Noname</itemDetailsParams>
                     </itemDetails>
                     <quantity measure="штук">1</quantity>
                     <itemAmount>8000</itemAmount>
                     <itemCurrency>643</itemCurrency>
                     <itemCode>G-16</itemCode>
                     <tax>
                        <taxType>1</taxType>
                        <taxSum>111</taxSum>
                     </tax>
                     <itemPrice>8000</itemPrice>
                  </items>

            </depositItems>

            <!--Zero or more repetitions:-->
            <params name=" " value=" "/>
         </order>

      </mer:depositOrder>
   </soapenv:Body>
</soapenv:Envelope>

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

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
      <ns1:depositOrderResponse xmlns:ns1="http://engine.paymentgate.ru/webservices/merchant">
         <return errorCode="0"/>
      </ns1:depositOrderResponse>
   </soap:Body>
</soap:Envelope>