Перейти к содержанию

Возврат денежных средств


Описание

Используется в следующих случаях:

  • Для отмены счета, если СКО находится в состояние создан.
  • Для возврата денежных средств по оплаченному СКО.
  • Для разблокировки денежных средств по захолдированному СКО.
  • Для уменьшения суммы счета при созданном или захолдированном СКО.

POST (Уровень доступа: Базовый)

https://api.intellectmoney.ru/merchant/purchaseToRefund

Заголовки запроса

Параметр Свойства Описание
Accept STRING OPTIONAL application/json Заголовок, указывающий формат данных, которые клиент хочет получить от сервера.
Content-Type STRING OPTIONAL application/json application/xml Заголовок, указывающий формат данных в теле запроса.
Authorization STRING REQUIRED Bearer {token} Заголовок, используемый для аутентификации клиента с помощью Bearer токена.
Подробнее об использование Bearer токена.
Sign STRING REQUIRED Заголовок с подписью для аутентификации запроса.

Сигнатура подписи:
EshopId::OrderId::Refund::SignSecretKey

Тело запроса

Параметр Свойства Описание
EshopId INT REQUIRED max 6 Номер магазина.
Можно найти в личном кабинете, в разделе магазины.
InvoiceId STRING CONDITION 3xxxxxxxxx Номер СКО.
Условия:
OrderId STRING CONDITION max 50 Номер покупки.
Внутренний номер покупки из вашей системы (интернет-магазина).
По умолчанию в расширенных настройках магазина на вкладке "Подключение магазина" включена опция "Принимать только уникальный номер покупки", что позволяет легко идентифицировать СКО.
Условия:
  • Передается обязательно, если не передан параметр InvoiceId.
OperationAmount DECIMAL OPTIONAL max 13 Сумма операции.
Сумма, на которую необходимо произвести операцию с СКО. Если параметр не передан, будет учтена полная сумма СКО.
Формат: десятичное число с двумя знаками после точки, не использовать запятые и пробелы.
MerchantReceipt OBJECT CONDITION Чек для онлайн-кассы.
Подробнее о правилах формирования чека.
Условия:
  • Передается обязательно при включенной онлайн-кассе.
  • Передается по усмотрению при включенной онлайн-кассе с автогенерацией чеков.
  • Не передается в остальных случаях.
SecretKey STRING CONDITION max 50 Секретный ключ магазина.
Указан в настройках магазина на вкладке "Подключение магазина".
По умолчанию секретный ключ отсутствует, его необходимо указать самостоятельно.
Условия:
  • Передается обязательно, если не передан параметр Hash.
PurchaseHash STRING CONDITION Подпись данных запроса.
Используется для HTML-форм и выполняет те же функции, что и параметр Hash.
Условия:Подробнее о формирование и проверки подписи.

Сигнатура подписи:
EshopId::OrderId::Refund::SecretKey
Hash STRING CONDITION Подпись данных запроса.
Выполняет две ключевые функции:
  1. Целостность данных - защиту от изменений: подпись гарантирует, что информация в запросе не была модифицирована при передаче.
  2. Аутентификацию отправителя - подтверждение, что запрос создан доверенным сервисом (используется секретный ключ магазина, доступный только отправителю).
Подробнее о формирование и проверки подписи.
Условия:
  • Передается обязательно, если не передан параметр SecretKey.
Сигнатура подписи:
EshopId::OrderId::Refund::SecretKey

Тело ответа

Поле Тип Описание
OperationState OperationState Статус выполнения операции.
OperationId GUID Идентификатор операции.
EshopId INT Номер магазина.
Result PurchaseActionData Результат выполнения запроса.
Примеры кода
C#
var client = new HttpClient();

var request = new HttpRequestMessage(HttpMethod.Post, "https://api.intellectmoney.ru/merchant/purchaseToRefund");

request.Headers.Add("Accept", "application/json");
request.Headers.Add("Content-Type", "application/json");
request.Headers.Add("Authorization", "Bearer 9d97820c61424eb6ac0db414ccb7ac60");
request.Headers.Add("Sign", "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855");

var collection = new List<KeyValuePair<string, string>>();
collection.Add(new("EshopId", "450000"));
collection.Add(new("InvoiceId", "3000000000"));
collection.Add(new("OrderId", "Покупка №50"));
collection.Add(new("SecretKey", "my_secret_key"));
collection.Add(new("PurchaseHash", "d41d8cd98f00b204e9800998ecf8427e"));
collection.Add(new("Hash", "d41d8cd98f00b204e9800998ecf8427e"));
var content = new FormUrlEncodedContent(collection);
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
PHP
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => 'https://api.intellectmoney.ru/merchant/purchaseToRefund',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => '',
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_POSTFIELDS => 'EshopId=450000&InvoiceId=3000000000&OrderId=Покупка №50&SecretKey=my_secret_key&PurchaseHash=d41d8cd98f00b204e9800998ecf8427e&Hash=d41d8cd98f00b204e9800998ecf8427e',
    CURLOPT_HTTPHEADER => array(
        'Accept: application/json',
        'Content-Type: application/json',
        'Authorization: Bearer 9d97820c61424eb6ac0db414ccb7ac60',
        'Sign: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855',
   ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
Пример ответов
JSON
{
    "OperationState": {
        "Code": 0,
        "Desc": "Успешно обработана"
    },
    "Result": {
        "Data": "OK",
        "InvoiceRefundId": 117888,
        "State": {
            "Code": 0,
            "Desc": "Успешно обработан"
        }
    }
}
JSON
{
    "OperationState": {
        "Code": 0,
        "Desc": "Успешно обработана"
    },
    "Result": {
        "State": {
            "Code": 2,
            "Desc": "Сумма возврата (1,00 ₽) больше доступного остатка по счёту (0,00 ₽)"
        }
    }
}