Метод используется для совершения выплат исполнителю. В процессе выплаты на платёжное средство создаётся три транзакции: снятие суммы с баланса заказчика, зачисление её на баланс исполнителя и вывод на банковскую карту исполнителя.

Параметр card_id в теле запроса не является обязательным. Если его не указывать, то выплата будет произведена на баланс исполнителя (будут созданы только первые две транзакции), при этом минимальная сумма выплаты равна 1 руб./1 евро. В дальнейшем исполнитель сможет вывести средства из своего личного кабинета.

Если параметр card_id указан, то по выплатам на карты существуют следующие ограничения: 

  1. Сумма выплаты должна быть больше 1000 RUB/100 EUR (выплата на карту менее 1000 RUB/100 EUR доступна только из личного кабинета исполнителя в SOLAR STAFF, при этом будет снята комиссия в размере 100 RUB/2 EUR соответственно).
  2. Сумма выплаты должна быть меньше 2 500 EUR за выплату для EUR карт и меньше 400 000 РУБ в календарный месяц (c 1 числа текущего месяца по текущее время) для RUB карт. При превышении данного лимита будет возвращаться ошибка 302, с текстом "You have exceeded the allowed amount of transactions (400 000 RUB) for 30 days. Over-limit sum: 440 000 RUB". Over-limit sum - это сумма с предыдущими транзакциями и текущей.

Кол-во выплат в день не ограничено.Также при выплатах необходимо учитывать возможности карты исполнителя, а именно, сможет ли банк выдавший карту принять необходимый размер выплаты. Если срабатывают ограничения карты на суточный перевод, деньги вернутся на баланс исполнителя. Если банк получателя по каким-либо причинам не примет перевод (целиком либо какую-то часть), выплата получит неуспешный статус. Данная проблема возникает крайне редко и решается в индивидуальном порядке.

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

Адрес для запроса: https://api.solar-staff.com/v1/payment
Имя метода:  payout
Метод отправки запроса: POST
Формат ответа: JSON

Параметры запроса: 

{
   "action" => "payout",
   "email" => "some@email.com",
   "task_id" => 12345, # не обязателен
   "merchant_transaction"  => "ASD123",
   "card_id" => 55, # не обязателен
   "currency" => "RUB",
   "amount" => 3000,    
   "todo_type" => 20, # не обязателен
   "todo_attributes" => "http://some.domain.com",
   "task_title" => "Some task title", # не обязателен
   "task_description" => "Some task description", # не обязателен,
   "client_id" => 1,
   "signature" => "xxxxxxxxxxxxxxxxx"
}


Примечания:

  1. В параметре card_id необходимо передать идентификатор карты, полученный в ответе на запрос инициализации.
  2. В параметре task_id можно передать номер задачи, созданной на стороне личного кабинета в Solar Staff
  3. В параметре merchant_transaction можно передать значение идентификатора на стороне компании, прикрепленного к задаче
  4. В параметре currency необходимо передать код валюты, соответствующий коду валюты заказчика
  5. Параметр amount должен быть целым числом и соответствовать условию 1000 < amount < 200 000 для RUB выплат (100 < amount < 2500 для EUR выплат). Данный параметр определяет сумму "на руки" фрилансеру. Сумма с комиссией Solar Staff посчитается автоматически и будет отражена при ответе в параметре real_amount.
  6. Параметр todo_type  должен содержать код услуги, закрепленный за вами при подключении к Solar Staff API. Если при выплатах вы не используете специфичные коды (вам достаточно кода 20 "Управление размещением медийной рекламы"), то можете не передавать данный параметр. Если при подключении для вас было выбрано несколько различных кодов, то при каждом запросе вам необходимо передавать необходимый код, например, 65 "Tехническая поддержка программного обеспечения"
  7. Параметр todo_attributes. При работе с АПИ по стандартному коду услуги (20 "Управление размещением медийной рекламы") должен содержать URL-адрес площадки размещения рекламы. Если код услуги отличается, то в данном параметре вам необходимо передавать значение атрибута выбранной для вас услуги (либо несколько значений последовательно через точку с запятой ";" даже если значения атрибутов пустые. Например, http://some.domain.com;;). Значение данного параметра пойдет в месячный итоговый отчет 
  8. Параметр merchant_transaction является обязательным. Вы можете передать уникальный номер транзакции своей системы (строка [a-z0-9] до 64 символов) и позже получить его же в методах transactions и transaction_status.
  9. Параметры task_title и task_description являются не обязательными. Используйте эти параметры, если вы хотите давать вашим задачам на выплату более осмысленные названия и описания. Внимание! Разрешены только следующие специальные символы: - , . : ; ( ) _ " № % # @ ^ « »
  10. Вместо параметра email, вы можете передать параметр worker_id, содержащий идентификатор исполнителя, полученный в ответ на запрос worker_create или worker_find
  11. Если превышен лимит выплат на рублёвую карту в месяц, то будет возвращена ошибка с кодом 302.

Параметры ответа:

{
   "currency": "RUB",
   "transaction_id": 234,
   "task_id": 567,
   "status": "Success",
   "status_id": 2,
   "payout_amount": 3000,
   "payout_currency": "RUB",
   "payout_exchange": 1,
   "real_amount": 3360,
   "real_currency": "RUB",
   "real_exchange": 1,
   "real_details": [
       "amount": 3000,
       "commission_amount": 360
   ],
   "card_id": 55,
   "merchant_transaction" : "IN123456789",
   "paid_at": "2018-01-01 12:45:10"
}

Внимание

В связи с требованиями международных платежных систем о представлении дополнительной информации при переводах рублей на не российские карты запросы должны включать в себя следующие данные получателя:

  • first_name
  • middle_name
  • last_name
  • zip
  • city
  • address

При выплатах для исполнителей, которые заполнили указанные поля в своих личных кабинетах, указывать данные в запросе к API не обязательно.

В случае, если данные не заполнены, вместе с ответом сервера возвращается ссылка на терминал персональных данных для их заполнения (см. http://help.solar-staff.com/api-documentation/терминал-персональных-данных).

Пример запроса:

{
   "action" => "payout",
   "email" => "some@email.com",
   "task_id" => 12345, # не обязателен
   "merchant_transaction"  => "ASD123",
   "card_id" => 55, # не обязателен
   "currency" => "RUB",
   "amount" => 3000,    
   "todo_type" => 20, # не обязателен
   "todo_attributes" => "http://some.domain.com",
   "task_title" => "Some task title", # не обязателен
   "task_description" => "Some task description", # не обязателен,
   "client_id" => 1,
   "signature" => "xxxxxxxxxxxxxxxxx",
   "first_name" => "Иван",
   "middle_name" => "Иванович",
   "last_name" => "Иванов",
   "zip" => "220015",
   "city" => "Минск"
   "address" => "ул. Ленина, 10, 20"
}

Пример ошибки, если дополнительные сведения не указаны в полном объеме:

{
   "success":false,
   "code":205,
   "request":{
      "client_id" => 1,
      "signature" => "xxxxxxxxxxxxxxxxx",
      "action":"payout",
      "email" => "some@email.com",
      "todo_attributes" => "http://some.domain.com",
      "currency":"RUB",
      "amount":"3000",
      "card_id":55
   },
   "response":{
      "error_text":"Recipient has to fill personal data to withdraw rubles to non-russian bank cards: recipient's Surname, Name and Patronymic, Country, City, Postcode, Address",
      "terminal_url": "https://www.solar-staff.com/terminal/e6b2c3d5"
   }
}

Вы нашли ответ?