# 8. Выплаты продавцу на банковскую карту

Если продавцом, клиентом маркетплейса, выступает физическое лицо, то возможно перечисление принятых платежей на банковскую карту продавца. &#x20;

![](https://2155819351-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LeCGKBm1Zliq35dlNBR%2F-M28dt_lCeuh7j8QGoqs%2F-M28mLxUvf-j3SISvu9G%2Fc2c.png?alt=media\&token=3b7fe385-fd33-430a-b22a-290c98dca0e9)

Для выплаты необходимо предварительно получить данные банковской карты продавца.&#x20;

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

После списания денежных средств с карты покупателя маркетплейсу будет сообщен токен - это номер операции платежа, в котором зашифрованы карточные данные.

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

Для последующих выплат на привязанную карту продавца необходимо использовать токен, равный номеру операции.\
Из этого номера нужно сформировать PAYMENTTOKEN путем добавления строкового нуля перед значением MNT\_OPERATION\_ID.

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

```javascript
Запрос:
{  
   "Envelope":{  
      "Header":{  
         "Security":{  
            "UsernameToken":{  
               "Username":"Username",
               "Password":"Password"
            }
         }
      },
      "Body":{  
         "PaymentRequest":{  
            "payer":"номер транзитного счета площадки",
            "payee":"Номер шлюза",
            "amount":"сумма",
            "isPayerAmount":true,
            "paymentPassword":"*****",
            "clientTransaction":"tb-20170220-1487659653",
            "description":"tb-20170220-1487659653",
            "operationInfo":{  
               "attribute":[  
                  {  
                     "key":"PAYMENTTOKEN",
                     "value":"0123456789"
                  }
               ]
            }
         }
      }
   }
}
Ответ:

{  
   "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\TransferRequest();

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

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

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

    $request->isPayerAmount = true;

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

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

    //краткое описание операции.
    $request->description = 'Описание перевода на банковскую карту';

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

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

    $request->operationInfo = $operation;

    //запрос на перевод средств
    //с транзитного счёта магазина/маркетплейса на банк. карту организации(продавца) - физического лица
    $result = $monetaSdk->monetaService->Transfer($request);

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

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

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

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

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

Интерфейс [MONETA.MerchantAPI](http://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 %}
