После списания денежных средств с карты покупателя маркетплейсу будет сообщен токен - это номер операции платежа, в котором зашифрованы карточные данные.
Маркетплейсу необходимо сохранить полученный токен, связав его с уникальным идентификатором продавца в учетной системе маркетплейса.
Для последующих выплат на привязанную карту продавца необходимо использовать токен, равный номеру операции.
Из этого номера нужно сформировать PAYMENTTOKEN путем добавления строкового нуля перед значением MNT_OPERATION_ID.
Для перевода денежных средств с транзитного счета маркетплейса на банковскую карту продавца необходимо использовать запрос PaymentRequest в рамках интерфейса MONETA.MerchantAPI, где payer=НОМЕР ТРАНЗИТНОГО СЧЕТА ПЛОЩАДКИ, а payee=НОМЕР ШЛЮЗА. Номера необходимо уточнить у сотрудника НКО "МОНЕТА" (ООО)В атрибутах перевода необходимо указать номер базовой операции в поле PARENTID.
<?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']) {thrownewException(print_r($result,true)); }echo"Запрос обработан.";if ((new\Moneta\Types\OperationStatus())::SUCCEED !== $result['status']) {echo" Операция НЕ проведена полностью."; }} catch (Exception $e) {echo"Ошибка:<br />";echo"<pre>". $e->getMessage()."</pre>";}
Запросы маркетплейс отправляет в рамках интерфейса MONETA.MerchantAPI.
Интерфейс MONETA.MerchantAPI представляет собой Web-сервис, описанный по спецификации Web Services Description Language (WSDL), использующий протокол Simple Object Access Protocol (SOAP) для передачи информации.