# 5. Перевод денежных средств после подтверждения сделки (Безопасная сделка)

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

&#x20;\
&#x20;&#x20;

![](/files/-M2CQbUZKOZ-Wb8O5MhA)

В Системе МОНЕТА.РУ безопасная сделка состоит из двух этапов, интервал между которыми обусловлен логикой безопасной сделки.

Первый этап - прием платежа, например, с банковской карты покупателя на транзитный счет маркетплейса в Системе "МОНЕТА.РУ" (Создание базовой операции).

Принять платеж можно одним из способов, указанных в Разделе 1. ["Прием платежей с банковской карты на маркетплейсе или в виджете"](/marketplace/platezhnye-zaprosy/1.-oplata-tovara-ili-uslugi-bankovskoi-kartoi-na-saite-ploshadki.md) документации.

После проведения операции платежа Система "МОНЕТА.РУ" сообщит номер операции в параметре **MNT\_OPERATION\_ID**, этот номер операции маркетплейсу необходимо запомнить и учитывать у себя в системе.

Второй этап - это перевод принятого платежа с транзитного счета маркетплейса на расширенный счет продавца в Системе "МОНЕТА.РУ".

Расширенный счет в Системе "МОНЕТА.РУ" открывают только продавцы индивидуальные предприниматели и юридические лица.

Для перевода денежных средств с транзитного счета маркетплейса на расширенный счет продавца маркетплейса в Системе "МОНЕТА.РУ" необходимо использовать запрос PaymentRequest с помощью интерфейса [MONETA.MerchantAPI](https://www.moneta.ru/doc/MONETA.MerchantAPI.v2.ru.pdf), где **payer**=НОМЕР ТРАНЗИТНОГО СЧЕТА ПЛОЩАДКИ, а **payee**=НОМЕРА РАСШИРЕННОГО СЧЕТА ПРОДАВЦА.

```javascript
Запрос:
{
   "Envelope":{
      "Header":{
         "Security":{
            "UsernameToken":{
               "Username":"логин",
               "Password":"пароль"
            }
         }
      },
      "Body":{
         "PaymentRequest":{
            "payer":"НОМЕР ТРАНЗИТНОГО СЧЕТА ПЛОЩАДКИ",
            "payee":"НОМЕРА РАСШИРЕННОГО СЧЕТА ПРОДАВЦА",
            "amount":"сумма",
            "clientTransaction":"внешний идентификатор транзакции",
            "operationInfo":{
               "attribute":[
                  {
                     "key":"PARENTID",
                     "value":"12345678"
                  }
               ]
            }
         }
      }
   }
}

Ответ:

"Envelope":{
  "Body":{
    "PaymentResponse":{
      "id": "номер операции в системе МОНЕТУ.РУ",
      "attribute": [
...
         {
            "value": "SUCCEED",
            "key": "statusid"
         }
...
      ]
    }
  }
}
```

```php
<?php

$sdkAppFileName = __DIR__ . "/../moneta-sdk-lib/autoload.php";
include_once($sdkAppFileName);

try {
    $monetaSdk = new \Moneta\MonetaSdk();
    $monetaSdk->checkMonetaServiceConnection();

    $request = new \Moneta\Types\PaymentRequest();

    //номер счёта (в системе МОНЕТА.РУ) для списания средств
    //номер транзитного счёта магазина/маркетплейса
    $request->payer = '';

    //номер счёта (в системе МОНЕТА.РУ) для зачисления средств
    //номер расширенного счёта организации/продавца
    $request->payee = '';

    //сумма перевода
    $request->amount = '10.00';

    //номер транзакции в учётной системе магазина/маркетплейса.
    $request->clientTransaction = 'my-order-id-10_2';

    //платёжный пароль магазина/маркетплейса.
    $request->paymentPassword = '*******************';

    $operation = new \Moneta\Types\OperationInfo();

    //в параметре указывается номер базовой операции - это операция платежа на транзитный счёт магазина/маркетплейса.
    $attribute = new \Moneta\Types\KeyValueAttribute();
    $attribute->key = 'PARENTID';
    $attribute->value = '';
    $operation->addAttribute($attribute);

    $request->operationInfo = $operation;

    //запрос на перевод средств внутри системы МОНЕТА.РУ
    //с транзитного счёта магазина/маркетплейса на расширенный счёт организации(продавца)
    $result = $monetaSdk->monetaService->Payment($request);

    if (!$result['id']) {
        throw new Exception(print_r($result, true));
    }

    echo "Запрос обработан.";

    foreach ($result['attribute'] as $key => $attribute) {
        if ('statusid' === $attribute['key']) {
            if ((new \Moneta\Types\OperationStatus())::SUCCEED !== $attribute['value']) {
                echo " Операция НЕ проведена полностью.";
            }
            break;
        }
    }

} catch (Exception $e) {
    echo "Ошибка:<br />";
    echo "<pre>" . $e->getMessage() . "</pre>";
}
```

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

Для перевода денежных средств с расширенного счета продавца в Системе "МОНЕТА.РУ" на банковские реквизиты продавца необходимо использовать запрос PaymentRequest с помощью интерфейса [MONETA.MerchantAPI](https://www.moneta.ru/doc/MONETA.MerchantAPI.v2.ru.pdf), где **payer**=НОМЕРА РАСШИРЕННОГО СЧЕТА ПРОДАВЦА, а **payee**=5.

```javascript
Запрос:
{  
   "Envelope":{  
      "Header":{  
         "Security":{  
            "UsernameToken":{  
               "Username":"Username",
               "Password":"Password"
            }
         }
      },
      "Body":{  
         "PaymentRequest":{  
            "payer":НОМЕР РАСШИРЕННОГО СЧЕТА ПРОДАВЦА,
            "payee":5,
            "amount":10,
            "clientTransaction":"Внешний номер операции",
            "paymentPassword":12345,
            "isPayerAmount":true,
            "operationInfo":{  
               "attribute":[  
                  {  
                     "key":"WIREPAYMENTPURPOSE",
                     "value":"Перечисление суммы переводов денежных средств по Договору № ___ от DD.MM.YYYY. НДС не облагается."
                  }
               ]
            }
         }
      }
   }
}

```

```php
<?php

$sdkAppFileName = __DIR__ . "/../moneta-sdk-lib/autoload.php";
include_once($sdkAppFileName);

try {
    $monetaSdk = new \Moneta\MonetaSdk();
    $monetaSdk->checkMonetaServiceConnection();

    $request = new \Moneta\Types\PaymentRequest();

    //номер счёта (в системе МОНЕТА.РУ) для списания средств
    //номер расширенного счёта организации(продавца)
    $request->payer = '';

    //получатель перевода
    //5 - будет осуществлён банковский перевод по реквизитам; в банк организации(продавца)
    $request->payee = '5';

    //сумма перевода
    $request->amount = '10.00';

    //номер транзакции в учётной системе магазина/маркетплейса.
    $request->clientTransaction = 'my-order-id-10_3';

    //платёжный пароль магазина/маркетплейса.
    $request->paymentPassword = '***********';

    $request->isPayerAmount = true;

    $request->description = 'Перечисление на банковские реквизиты организации(продавца)';

    //запрос на перевод средств
    //с расширенного счёта организации(продавца) на банковские реквизиты организации(продавца)
    $result = $monetaSdk->monetaService->Payment($request);

    if (!$result['id']) {
        throw new Exception(print_r($result, true));
    }

    echo "Запрос обработан.";

    foreach ($result['attribute'] as $key => $attribute) {
        if ('statusid' === $attribute['key']) {
            if ((new \Moneta\Types\OperationStatus())::SUCCEED !== $attribute['value']) {
                echo " Операция НЕ проведена полностью.";
            }
            break;
        }
    }

} catch (Exception $e) {
    echo "Ошибка:<br />";
    echo "<pre>" . $e->getMessage() . "</pre>";
}
```

{% hint style="info" %}
Запросы маркетплейс отправляет в рамках интерфейса MONETA.MerchantAPI.

Интерфейс [MONETA.MerchantAPI](https://www.moneta.ru/doc/MONETA.MerchantAPI.v2.ru.pdf) представляет собой Web-сервис, описанный по спецификации Web Services Description Language [(WSDL)](https://service.moneta.ru/services.wsdl), использующий протокол Simple Object Access Protocol (SOAP) для передачи информации.
{% endhint %}

<br>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.payanyway.ru/marketplace/platezhnye-zaprosy/6.-bezopasnaya-sdelka.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
