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

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

Внимание! Если исполнителем в личном кабинете настроена автовыплата на какое-либо платежное средство, то оплата уйдет на него. Независимо от того, был указан параметр card_id или нет.

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

  1. Сумма выплаты должна быть больше 1000 RUB/50 EUR (выплата на карту менее 1000 RUB/50 EUR доступна только из личного кабинета исполнителя в SOLAR STAFF, при этом будет снята комиссия в размере 100 RUB/2 EUR соответственно).
  2. Сумма выплаты должна быть меньше 6500 EUR/USD за выплату для EUR/USD карт и меньше 450 000 РУБ в календарный месяц (c 1 числа текущего месяца по текущее время) для RUB карт. При превышении данного лимита может быть получено две ошибки:
  • Если у фрилансера нет денег на балансе - You have exceeded the allowed amount of transactions on this card for 30 days. Please use another card. В этом случае выплата не пройдет и останется на балансе компании.
  • Если деньги на балансе есть - Freelancer exceeded the allowed amount of transactions to the card for 30 days. The payment is credited to the freelancer's Solar Staff account. При такой ошибке фрилансеру нужно войти в кабинет вывести деньги самостоятельно.

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

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

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