Инструменты страницы
Запрос возврата средств оплаты (refund)
Для возврата средств используется запрос refund.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.
Пользуясь протоколом REST, тело сообщения запроса следует отправлять с типом: 'Content-Type: application/x-www-form-urlencoded'.
Параметры запроса
Параметры запроса представлены в таблице ниже.
Название | Тип | Обязательно | Описание |
---|---|---|---|
|
AN..30 | Да |
Логин служебной учётной записи продавца. |
|
AN..200 | Да |
Пароль служебной учётной записи продавца. |
|
N..12 | Нет |
Сумма частичной отмены. Параметр, обязательный для частичной отмены. |
|
ANS36 | Да |
Номер заказа в платежной системе. Уникален в пределах системы. Отсутствует если регистрация заказа не удалась по причине ошибки, детализированной в ErrorCode. |
|
Строка | Нет |
Дополнительные параметры запроса. Формат вида: {«Имя1»: «Значение1», «Имя2»: «Значение2»}. При указании «showLoyalty»:«false» взаимодействие с сервисом лояльности осуществляться не будет. В параметре запрещено передавать зарезервированные имена (в случае их передачи заказ может быть отклонен):
|
|
AN..30 | Нет |
Идентификатор возврата. При попытке повторного возврата, проверяется |
Если в запросе указать amount=0, производится возврат на всю сумму заказа.
Параметры ответа
Параметры ответа представлены в таблице ниже.
Название | Тип | Обязательно | Описание |
---|---|---|---|
|
N..2 | Нет |
Код ошибки. Может отсутствовать, если результат не привёл к ошибке. |
|
|
Нет |
|
Коды ошибок
Код ошибки | Текст ошибки |
---|---|
0 |
Обработка запроса прошла без системных ошибок. |
5 |
Доступ запрещён. |
5 |
Пользователь должен сменить свой пароль. |
5 |
|
5 |
Неверная сумма. |
5 | Ошибка значение параметра запроса |
5 | Неверный формат параметра refundItems |
5 | [refundItems.item.quantity] превышает допустимое значение |
5 | [refundItems.item.itemAmount] превышен |
5 | Неуспешно |
6 |
Неверный номер заказа. |
7 |
Платёж должен быть в корректном состоянии. |
7 |
Сумма возврата превышает сумму списания. |
7 |
Системная ошибка. |
7 | Ожидаемая сумма заказа не соответствует текущей сумме |
7 | Неверная сумма возврата (менее одного рубля) |
7 | Происходит процессинг данной транзакции. Пожалуйста, повторите запрос позднее |
7 | Системная ошибка |
7 | Данному платежу установлен флаг chargeback |
7 | Для проведения возврата по свободной позиции, [positionId] должен присутствовать в корзине заказа |
7 | Для проведения возврата на свободную сумму, [positionId] не должен присутствовать в корзине заказа |
7 | Обычные возвраты и возвраты по свободной позиции не поддерживаются после возврата на свободную сумму |
7 | Возвраты на свободную сумму и по свободной позиции не поддерживают заказы, оплаченные баллами лояльности |
7 | Обычный возврат отклонен. По одному или нескольким элементам корзины был проведен возврат по свободной позиции |
7 | Параметр positionId является обязательным для возврата по свободной сумме и свободной позиции |
7 | Обычный возврат и возврат по свободной позиции недоступны после возврата на свободную сумму. Вы пытаетесь провести обычный возврат. |
7 | Обычный возврат и возврат по свободной позиции недоступны после возврата на свободную сумму. Вы пытаетесь провести возврат по свободной позиции. |
7 | Возвраты на свободную сумму и по свободной позиции недоступны для заказов без корзины |
7 | Данный тип платежа не поддерживает возврат |
8 | Не удалось провести возврат бонусов |
8 | [customerDetails] не заполнены поля параметра |
8 | [customerDetails.email] неверный формат |
8 | [customerDetails.phone] неверный формат |
8 | [customerDetails.contact] неверный формат |
8 | [customerDetails.deliveryInfo.deliveryType] неверный формат |
8 | [customerDetails.deliveryInfo.country] обязательное поле |
8 | [customerDetails.deliveryInfo.country] неверный формат |
8 | [customerDetails.deliveryInfo.city] обязательное поле |
8 | [customerDetails.deliveryInfo.city] неверный формат |
8 | [customerDetails.deliveryInfo.postAddress] обязательное поле |
8 | [customerDetails.deliveryInfo.postAddress] неверный формат |
8 | [refundItems] обязательное поле |
8 | [refundItems.item.positionId] обязательное поле |
8 | [refundItems.item] неверный формат |
8 | [refundItems.item.name] обязательное поле |
8 | [refundItems.item.name] неверный формат |
8 | [refundItems.item.itemDetailsParams.name] обязательное поле |
8 | [refundItems.item.itemDetailsParams.name] неверный формат |
8 | [refundItems.item.itemDetailsParams.value] обязательное поле |
8 | [refundItems.item.itemDetailsParams.value] неверный формат |
8 | [refundItems.item.quantity] обязательное поле |
8 | [refundItems.item.quantity] недопустимое значение |
8 | [refundItems.item.quantity.value] неверный формат |
8 | [refundItems.item.quantity.measure] неверный формат |
8 | [refundItems.item.quantity.value] Слишком большая дробная часть |
8 | [refundItems.item.quantity.value] Слишком большое либо слишком маленькое значение |
8 | [refundItems.item.quantity.value] Слишком маленькое значение для возврата |
8 | [refundItems.item.itemAmount] неверный формат |
8 | [refundItems.item.currency] неверный формат |
8 | [refundItems.item.itemCode] обязательное поле |
8 | [refundItems.item.itemCode] неверный формат |
8 | [loyalties.loyalty.loyaltyProgramName] обязательное поле |
8 | [loyalties.loyalty.loyaltyProgramName] неверный формат |
8 | [loyalties.loyalty.positionId] обязательное поле |
8 | [loyalties.loyalty.positionId] неверный формат |
8 | [loyalties.loyalty.bonusAmountForDebit] неверный формат |
8 | [loyalties.loyalty.bonusAmountForCredit] неверный формат |
8 | [refundItems.totalAmount] сумма товарных позиций в корзине не совпадает с общей суммой |
8 | [loyalties.withParams.sum] Сумма бонусных баллов в корзине не совпадает с общей суммой баллов заказа |
8 | Сумма бонусных балов к списанию в корзине превышает допустимое количество |
8 | [loyalties.loyalty.positionId] товарной позиции с данным positionId не существует |
8 | [loyalties.loyalty.name] неверный формат |
8 | [loyalties.loyalty.name] программы лояльности с таким именем не существует |
8 | [refundItems.items] оригинальный заказ не содержит товарных позиций |
8 | [refundItems.item.quantity.measure] обязательное поле |
8 | [refundItems.items.currency] валюта в корзине не соответствует валюте заказа |
8 | [refundItems.items.currency] неверный формат |
8 | превышена сумма возврата |
8 | [refundItems.items] обязательное поле |
8 | [refundItems.item.positionId] неверный формат |
8 | [items.item.position] оригинальный заказ не содержит товарной позиции с данным номером |
8 | [items.item.name] оригинальный заказ не содержит товарной позиции с данным именем |
8 | [items.item.code] оригинальный заказ не содержит товарной позиции с данным кодом |
8 | [items.item.quantity] количество экземпляров товарной позиции не соответствует таковому в оригинальном заказе |
8 | [items.item.amount] превышена сумма возврата товарной позиции |
8 | [refundAmount] при полном возврате возвращаемая сумма должна соответствовать таковой в оригинальном заказе |
8 | [item.quantity.value] обязательное поле |
8 | [item.itemAmount] обязательное поле |
8 | [item.currency] обязательное поле |
8 | необходима корзина для проведения возврата либо некорректная сумма для проведения полного возврата заказа |
8 | [refundItems.item.quantity.value] Слишком большая дробная часть |
8 | [refundItems.item.quantity.value] Слишком большое либо слишком маленькое значение |
8 | [refundItems.item.quantity.value] Слишком маленькое значение для возврата |
8 | Выявлено нарушение статистики |
8 | [orderBundle.loyalties.loyalty] оплата с использованием лояльности отключена для этого мерчанта |
8 | [item.itemCode] дублируется |
8 | [refundOrder.item.tax.type] некорректный |
8 | [refundOrder.item.tax.sum] обязательный |
8 | [refundOrder.item.tax.sum] некорректный |
8 | Несоответствие между [orderBundle.cartItems.item.itemPrice] и [orderBundle.cartItems.item.itemAmount] |
8 | [wrong.transaction.state] Транзакция должна быть в состоянии Deposited |
8 | Корзина данного заказа не содержит [positionId] |
8 | Если сумма возврата по товарной позиции частичная, то и значение quantity должно быть тоже частичным |
8 | Корзина товаров в запросе не ожидается |
8 | [orderBundle.cartItems.item.itemPrice] обязательное поле |
10 | Некорректное имя дополнительного ОФД параметра |
10 | Некорректное значение дополнительного ОФД параметра |
Примеры
Пример запроса POST
amount=500¤cy=643&language=ru&orderId=5e97e3fd-1d20-4b4b-a542-f5995f5e8208
Пример ответа
{"errorCode":0}