Обзор
API используется для того, чтобы интегрировать возможности сервиса Solar Staff в ваш проект. Описание API предназначено для разработчиков и включает в себя детальное описание всех доступных запросов.
Общая информация
Solar Staff API включает в себя методы работы с заданиями и фрилансерами. После регистрации в качестве администратора компании, вы можете приглашать и создавать фрилансеров, управлять заданиями, инициировать выводы средств на платежные инструменты фрилансеров.
В быстром старте описан наиболее популярный сценарий использования API.
API работает по протоколу HTTP и представляет собой набор методов, с помощью которых совершаются запросы и возвращаются ответы для каждой операции. Все ответы приходят в виде JSON структур. Для работы с API вы можете использовать любую удобную технологию и язык. В данном руководстве приведены примеры работы с API на языке PHP.
Для удобства разработчиков Solar Staff предоставляет песочницу (sandbox), где вы можете тестировать ваше решение до его развёртывания в production. Для начала работы с песочницей обратитесь в отдел продаж Solar Staff.
Основной URL
Текущая версия API - v1
. Так, все ссылки на запросы к API в данной документации включают обязательный основной URL:
https://api.solar-staff.com/v1
Все запросы выполняются методом POST.
Авторизация
Процесс авторизации возможен при наличии персональной подписи, которой должен сопровождаться каждый запрос к API. Процесс формирования подписи запроса описан здесь.
В запросе должны присутствовать следующие обязательные параметры:
client_id
– идентификатор клиента API, указан в разделе Компания -> Интеграцияaction
— название метода APIsignature
– подпись запроса.
Формирование подписи запроса
Подпись запроса - это HEX-представление SHA1-хэша от специально сформированной строки (например, строка вида 19861f409729a42c2a8c0c636cfa0a4fb845e8fb
).
Кодировка подписываемой строки - UTF-8.
Строка состоит из всех параметров запроса, отсортированных по возрастанию их названий (ключей) и "соли" (salt
) запроса. Названия параметров должны быть указаны в нижнем регистре и должны соответствовать регулярному выражению: [a-z_]{1,}
. Параметры разделяются между собой символом "точка с запятой" (;
). Параметры, значение которых пустая строка, не должны присоединяться к подстроке.
Параметры в строке должны иметь вид: param_name:param_value;...;paramN_name:paramN_value, где:
param_name
- название параметраparam_value
- значение параметра. Значение отделяется от названия параметра двоеточием (:
).
После перечисления параметров через разделитель (;
) добавляется также соль запроса - постоянный параметр, который отображается на странице Компания -> Интеграция в блоке Подключение к Production. Пример соли: 1f0c1450e496ad73ecdf0b
.
Пример формирования подписи
Пример кода на PHP5.6
private function _getSignedData(array $data = [])
{
// Сортируем массив параметров по ключу
ksort($data);
$data['signature'] = sha1(implode(';',array_map(function ($k, $v) {return ($k . ':' . $v);},array_keys($data), $data)) . ';' . $salt);
return $data;
}
Пусть необходимо сформировать подпись для запроса на получение списка фрилансеров. Параметры запроса будут: client_id
(значение 6
) и action
(значение workers_list
).
Параметр
client_id
отображается на странице Компания -> Интеграция в блоке Подключение к Production.
Для формирования подписи необходимо:
- Отсортировать массив названий параметров. В данном случае порядок будет следующим: action, client_id.
- Сформировать строку подписи добавив значения параметров и соль:
action:workers_list;client_id:6;1f0c1450e496ad73ecdf0b
. - Создать SHA-1 хэш от сформированной строки. В данном примере он будет вида:
c66640d01f7395e7a519382cb27bb2014523a8b9
.
В итоге, набор параметров для запроса будет дополнен подписью и будет иметь вид:
[
"client_id" : 6,
"action" : "workers_list",
"signature" : "19861f409729a42c2a8c0c636cfa0a4fb845e8fb"
]
Ответ от API
Ответ от API передаётся в формате JSON
.
В ответе на запрос всегда присутствует набор следующих обязательных параметров:
success
– маркер успешности запроса. В случае ошибки значение параметра будетfalse
, иначеtrue
.code
– код ответа. Полный список кодов см. в блоке Коды ошибок и их описание.request
– набор параметров запросаresponse
– данные ответа при успешном запросе или параметрerror_text
с текстом ошибки.
Коды ошибок и их описание
Далее описаны все возможные коды ответов на запросы. Код ответа содержится в параметре code
, текст ответа содержится в параметре response.error_text
ответа API.
HTTP Код | Тип ошибки | Описание |
---|---|---|
200 | Success | Запрос выполнен успешно |
100 | An error has occurred. Please, try again | Во время выполнения запроса произошла ошибка на стороне API. Рекомендуется обратиться в службу поддержки. |
101 | Action not found | Запрашиваемое действие не найдено. Скорее всего, значение параметра action передано неверно. |
102 | Access forbidden. Authorization is necessary | Ошибка авторизации. Не передан один или оба параметра: client_id , signature |
103 | Access forbidden. Authorization data is incorrect | Ошибка авторизации. Некорректное значение в одном или обоих параметрах: client_id , signature |
110 | Object not found | По указанному в параметрах идентификатору объект не может быть найден. Скорее всего, такой объект не существует. |
111 | Object cannot be saved | Изменение объекта невозможно. Рекомендуется обратиться в службу поддержки |
112 | Object cannot be created | Создание объекта невозможно. Рекомендуется обратиться в службу поддержки |
113 | Object cannot be removed | Удаление объекта невозможно. Рекомендуется обратиться в службу поддержки |
202 | Parameter is not passed | Один из параметров не был передан. В ответе будет содержаться указание к исправлению ошибки. |
203 | Invalid parameter. Value is incorrect | Значение одного из параметров передано некорректно. В ответе будет содержаться указание к исправлению ошибки |
204 | No Content | Запрашиваемых данных не найдено. В зависимости от вызываемого метода также может возвращаться дополнительный текст ошибки. Например, в методе создания выплаты может быть передана сумма меньше минимального лимита выплаты (1000 RUB/ 50 EUR/ 50 USD), банковская карта с истекшим сроком действия или не привязанная к аккаунту исполнителя |
205 | Parameters are not passed | Запрос был передан без параметров. Проверьте тело запроса. |
222 | Invalid parameter. | Переданное значение не уникально (применимо для номера телефона). В ответе будет содержаться указание к исправлению ошибки |
300 | Payment declined | При выплате произошла ошибка. Рекомендуется обратиться в службу поддержки |
301 | Merchant_transaction is not unique | В базе уже содержится выплата с вами переданным merchant_transaction параметром (данный параметр должен быть уникальным). |
302 | You have exceeded the allowed amount of transactions for 30 days | Вы достигли лимита и превысили допустимую сумму выплаты на конкретную карточку за календарный месяц (то есть, с 1 числа текущего месяца по текущее время) |
410 | Card cannot be found | По переданному идентификатору карта не может быть найдена, либо принадлежит другому исполнителю |
Быстрый старт
В быстром старте описано как начать работу с Solar Staff API и выполнить наиболее популярные действия в системе:
Перед началом
Пример кода на PHP5.6
/// заполните следующие две строки своими данными
$clientId = 1234;
$salt = "xxxxxxxx1111111"; // соль запроса, Компания -> Интеграция
$params = [
'client_id' => $clientId,
'action' => 'balance'
];
ksort($params);
foreach ($params as $key => $value) {
$signSource .= $key . ':' . $value . ';';
}
$signSource .= $salt;
$sign = sha1($signSource);
$payload = json_encode(array_merge($params, ['signature' => $sign]));
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.solar-staff.com/v1/info");
curl_setopt( $ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
curl_setopt( $ch, CURLOPT_POSTFIELDS, $payload );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
$response = curl_exec($ch);
curl_close($ch);
echo $response;
Перед началом работы с API необходимо настроить доступ и разрешить/запретить выполнять выплаты через API. Для этого перейдите в раздел Компания->Интеграция и добавьте IP-адреса, с которых будет разрешен доступ к API, и при необходимости отметьте чек-бокс Разрешить выплаты из АПИ
.
Обратите внимание, что во всех запросах необходимо передавать следующие обязательные параметры:
client_id
– идентификатор клиента API, указан в кабинете заказчика в разделе «Интеграция»signature
– подпись запроса.
Подробнее см. раздел Авторизация.
Добавление фрилансера
Для добавления фрилансера в вашу команду выполните запрос создания фрилансера.
Адрес запроса: https://api.solar-staff.com/v1/workers
Имя метода: worker_create
Метод отправки запроса должен быть POST.
Список кодов специализаций фрилансера см. здесь.
В ответ будет возвращён JSON-объект с данными фрилансера.
Оплата задачи
Для оплаты задачи и перевода средств на баланс фрилансера используется данный метод. Для того, чтобы автоматически инициировать выплату на банковскую карту фрилансера необходимо передать параметр card_id
, иначе деньги будут переведены на баланс фрилансера.
Адрес запроса: https://api.solar-staff.com/v1/payment
Имя метода: payout
Метод отправки запроса должен быть POST.
В ответе будет возвращен JSON-объект с данными о выплате.
Получить данные о выплате
Для получения данных о выплатах используются следующие методы:
Для получения даннных о выплатах выбранному фрилансеру необходимы следующие данные:
- параметры авторизации (подробнее см. раздел Авторизация)
start_date
иfinish_date
: интервал времени для получения данных о выплатах
Адрес запроса: https://api.solar-staff.com/v1/workers
Имя метода: payout
Метод отправки запроса должен быть POST.
Баланс
Баланс - денежные средства пользователя в системе, т.е. аналог банковского счёта в системе для пользователей и компаний. У каждого фрилансера существует три баланса в разных валютах: рублях, долларах и евро. У компании может существовать баланс только в одной из указанных валют. Поэтому в запросах получения данных о балансе фрилансера всегда возвращаются данные только по балансу фрилансера, валюта которого совпадает с валютой компании.
Получить баланс компании
Пример запроса
curl --location
--request POST'https://api.solar-staff.com/v1/info' \
--data-raw '{
"client_id" : 6,
"action" : "balance",
"signature" : "1f0c1450e496ad73ecdf0b"
}'
Пример ответа
HTTP status 200 OK
{
"success": true,
"code": 200,
"request": {
"client_id": 466,
"action": "balance",
"signature": "***"
},
"response": {
"RUB": "0.00",
"details": {
"cards": "0.00",
"qiwi": "0.00",
"webmoney": "0.00"
}
}
}
Метод используется для получения баланса компании.
Запрос
HTTP запрос
Параметры
Название | Тип | Обязательность | Описание |
---|---|---|---|
action |
string |
Да | Название действия для запроса. В данном методе возможно только значение balance . |
client_id |
integer |
Да | ID компании. Отображается в разделе Компания -> Интеграция. |
signature |
string |
Да | Подпись запроса. Подробнее о формировании подписи см. здесь. |
Ответ
Название | Тип | Описание |
---|---|---|
<код валюты> |
float |
Сумма средств на балансе |
details |
object |
Подробные данные о балансе |
details.cards |
float |
Сумма средств, доступная для вывода на банковские карты. Если разделение по платежным инструментам не настроено, то здесь отображается вся сумма баланса (при этом выплаты могут выполняться на любой платежный инструмент). |
details.qiwi |
float |
Сумма средств, доступная для вывода на кошелек QIWI. Если разделение по платежным инструментам не настроено, то здесь всегда будет 0 . |
details.webmoney |
float |
Сумма средств, доступная для вывода на кошелек WebMoney. Если разделение по платежным инструментам не настроено, то здесь всегда будет 0 . |
Получить баланс фрилансера
Пример запроса
curl --location
--request POST 'https://api.solar-staff.com/v1/workers' \
--data-raw '{
"client_id" : 6,
"action" : "worker_balance",
"signature" : "1f0c1450e496ad73ecdf0b",
"worker_id" : 3
}'
Пример ответа
HTTP status 200 OK
{
"RUB": 32078.45
}
Метод используется для получения баланса фрилансера.
Запрос
HTTP запрос
Параметры
Название | Тип | Обязательность | Описание |
---|---|---|---|
action |
string |
Да | Название действия для запроса. В данном методе возможно только значение worker_balance . |
client_id |
integer |
Да | ID компании. Отображается в разделе Компания -> Интеграция. |
signature |
string |
Да | Подпись запроса. Подробнее о формировании подписи см. здесь. |
email |
string |
Один из параметров email или worker_id обязателен |
Email фрилансера. |
worker_id |
integer |
Один из параметров email или worker_id обязателен |
ID фрилансера(возвращается в метода создания или поиска фрилансера). |
Ответ
Название | Тип | Описание |
---|---|---|
<код валюты> |
float |
Сумма средств на балансе |
Получить курс валют
Пример запроса
curl --location
--request POST 'https://api.solar-staff.com/v1/info' \
--data-raw '{
"client_id" : 6,
"action" : "get_exchange_rate",
"signature" : "1f0c1450e496ad73ecdf0b"
}'
Пример ответа
HTTP status 200 OK
{
"pair": "RUB → EUR",
"rate_buy": 71.03,
"rate_sell": 70.68,
"date": "2018-01-01 10::00:01"
}
Метод используется для получения курса валют на текущий день.
Запрос
HTTP запрос
Параметры
Название | Тип | Обязательность | Описание |
---|---|---|---|
action |
string |
Да | Название действия для запроса. В данном методе возможно только значение get_exchange_rate . |
client_id |
integer |
Да | ID компании. Отображается в разделе Компания -> Интеграция. |
signature |
string |
Да | Подпись запроса. Подробнее о формировании подписи см. здесь. |
pair |
sring |
Нет | Валюты для курса конвертации (по умолчанию будет возвращено значение для RUB->EUR). Возможные значения:
|
Ответ
Название | Тип | Описание |
---|---|---|
pair |
string |
Валюты, для которых будет возвращен курс |
rate_buy |
float |
Курс покупки |
rate_sell |
float |
Курс продажи |
date |
date |
Дата |
Задачи
API включает в себя методы поиска и изменения статуса задач.
Статусы задач
Доступные статусы задач:
- Не подтверждена (
ID=1
) - задача создана - В работе (
ID=2
) - задача принята фрилансером - Ждет приёмки (
ID=3
) - фрилансер выполнил задачу и теперь она ожидает приёмки заказчика - Ждет оплату (
ID=4
) - задача принята заказчиком и ожидает оплаты - Завершена (
ID=5
) - задача оплачена - Отклонена исполнителем (
ID=6
) - фрилансер отклонил задачу - Отклонена заказчиком (
ID=8
) - заказчик отклонил задачу, выполненную фрилансером - Ошибка при выплате (
ID=10
) - Ждет подтверждения отмены от фрилансера (
ID=11
) - заказчик отклонил задачу и далее ожидается подтверждение отмены от фрилансера.
Поиск задачи
Пример запроса
curl --location
--request POST 'https://api.solar-staff.com/v1/task' \
--data-raw '{
"client_id" : 466,
"action" : "search",
"task_id" : 55,
"signature" : "1f0c1450e496ad73ecdf0b"
}'
Пример ответа
HTTP status code: 200 OK
{
"success": true,
"code": 200,
"request": {
"action": "search",
"client_id": "463",
"signature": "xxxxxxxxxxxxxxxxx",
"task_id": "580948"
},
"response": {
"id": 580948,
"merchantTransaction": "174f167c868453e35f6aeed0ca5853ed::56674",
"state": {
"id": 5,
"title": "Завершена",
"title_en": "Completed"
},
"category": {
"id": 2,
"title": "Интернет-реклама",
"title_en": "Internet advertising"
},
"subCategory": {
"id": 20,
"title": "Управление размещением медийной рекламы",
"title_en": "ATL advertising management"
},
"groups": [],
"title": "",
"description": "",
"amount": "57300.00",
"amountOfCommission": "4011.00",
"percentOfCommission": "7.00",
"fullPrice": "61311.00",
"currency": {
"title": "Рубль РФ",
"short_title": "RUB"
},
"creator": {
"id": 355,
"email": "[email protected]",
"first_name": "Дмитрий",
"last_name": "Цапков",
"middle_name": null,
"country": "RU",
"phone": "79039611544",
"workersCategory": null,
"hasAddress": false
},
"payer": {
"id": 355,
"email": "[email protected]",
"first_name": "Дмитрий",
"last_name": "Цапков",
"middle_name": null,
"country": "RU",
"phone": "79039611544",
"workersCategory": null,
"hasAddress": false
},
"worker": {
"id": 38802,
"email": "[email protected]",
"first_name": "zhenia17.06",
"last_name": "Павлычев",
"middle_name": null,
"country": "JP",
"phone": "818040622992",
"workersCategory": {
"id": 8,
"title": "Веб-мастер",
"title_en": "Webmaster"
},
"hasAddress": true
},
"date_created": "2018-09-28 20:58:08",
"date_end": "2018-09-28 20:58:08",
"date_paid": "2018-09-28 20:58:08",
"date_pay_at": null,
"resultLinks": [],
"resultLinksWithIP": [],
"projectsTasksFiles": [],
"acceptanceFiles": [],
"copyright": "0",
"need_report": 0,
"date_report": "2018-09-28 20:58:08",
"nda": "0"
}
}
Метод используется для поиска необходимой задачи по номеру задачи или транзакции (если задача уже оплачена).
Запрос
HTTP запрос
Параметры
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
action |
string |
Да | Действие. В данном методе должно быть значение search . |
client_id |
integer |
Да | ID компании. Отображается в разделе Компания -> Интеграция. |
signature |
integer |
Да | Подпись запроса. Подробнее о формировании подписи см. здесь. |
merchant_transaction |
integer |
Обязателен один из параметров: merchant_transaction или task_id |
Номер транзакции |
task_id |
integer |
Обязателен один из параметров: merchant_transaction или task_id |
ID задачи. |
Ответ
При успешном выполнении запроса возвращается следующий ответ:
Название свойства | Тип | Описание |
---|---|---|
id |
integer |
ID добавленной банковской карты |
merchantTransaction |
integer |
ID транзакции |
state |
object |
Статус задачи. Полный список статусов см. в блоке Статусы задач. |
state.id |
integer |
ID статуса задачи |
state.title |
string |
Название статуса задачи |
state.title_en |
string |
Название статуса задачи (на английском) |
category |
object |
Категория задачи |
category.id |
string |
ID категории задачи |
category.title |
string |
Название категории задачи |
category.title_en |
string |
Название категории задачи (на английском) |
subCategory |
object |
Подкатегория задачи |
subCategory.id |
string |
ID подкатегории задачи |
subCategory.title |
string |
Название подкатегории задачи |
subCategory.title_en |
string |
Название подкатегории задачи (на английском) |
subCategoryAttributes |
object |
Атрибуты подкатегории |
groups |
object |
Группы задачи |
groups.id |
string |
ID группы задач |
groups.title |
string |
Название группы задач |
title |
string |
Название задачи |
description |
string |
Описание задачи |
amount |
float |
Стоимость задачи |
amountOfCommission |
float |
Стоимость комиссии |
percentOfCommission |
float |
Процент комиссии (от стоимости задачи) |
fullPrice |
float |
Полная стоимость задачи (включая комиссию сервиса) |
currency |
string |
Валюта задачи |
currency.title |
string |
Полное название валюты задачи |
currency.short_title |
string |
Краткое название валюты задачи |
creator |
object |
Менеджер (админ), создавший задачу |
creator.id |
string |
ID менеджера, создавшего задачу |
creator.email |
string |
Email менеджера, создавшего задачу |
creator.first_name |
string |
Имя менеджера, создавшего задачу |
creator.last_name |
string |
Фамилия менеджера, создавшего задачу |
creator.country |
string |
Страна менеджера, создавшего задачу |
creator.phone |
string |
Телефон менеджера, создавшего задачу |
creator.workersCategory |
object |
Специальность пользователя (существует только для фрилансеров) |
creator.workersCategory.id |
string |
ID специальности пользователя. Список кодов см. здесь. |
creator.workersCategory.title |
string |
Название специальности пользователя |
creator.workersCategory.title_en |
string |
Название специальности пользователя (на английском) |
payer |
object |
Менеджер (админ), оплативший задачу |
payer.id |
string |
ID менеджера, оплатившего задачу |
payer.email |
string |
Email менеджера, оплатившего задачу |
payer.first_name |
string |
Имя менеджера, оплатившего задачу |
payer.last_name |
string |
Фамилия менеджера, оплатившего задачу |
payer.country |
string |
Страна менеджера, оплатившего задачу |
payer.phone |
string |
Телефон менеджера, оплатившего задачу |
payer.workersCategory |
object |
Специальность пользователя (существует только для фрилансеров) |
payer.workersCategory.id |
string |
ID специальности пользователя |
payer.workersCategory.title |
string |
Название специальности пользователя |
payer.workersCategory.title_en |
string |
Название специальности пользователя (на английском) |
date_created |
float |
Дата создания задачи |
date_end |
float |
Дедлайн задачи |
date_paid |
float |
Дата оплаты задачи |
date_pay_at |
float |
Дата оплаты задачи |
resultLinks |
object |
Ссылки на файлы к задаче |
resultLinksWithIP |
object |
Ссылки на файлы к задаче |
projectsTasksFiles |
object |
Файлы задачи |
acceptanceFiles |
object |
Дата оплаты задачи |
copyright |
boolean |
Признак того, что в задаче требуется передача авторских прав |
need_report |
boolean |
Признак того, что в задаче требуется отчет |
date_report |
date |
Дата создания отчета |
nda |
boolean |
Признак того, что к задаче приложено NDA соглашение |
Создать задачу
Пример запроса
curl --location
--request POST 'https://api.solar-staff.com/v1/task' \
--data-raw '{
"action": "create"
"client_id": 476
"signature": xxxxxxxxxxxxxxxxx
"task_title": "test"
"task_description": "test"
"todo_type": 84
"todo_attributes": "test"
"email": [email protected]
"amount": 1000
"copyright": 1
"date_end": "30.05.2022"
"need_report": 1
"currency": "RUB"
}'
Пример ответа
HTTP status code: 200 OK
{
"success": true,
"code": 200,
"request": {
"action": "create",
"client_id": "463",
"signature": "xxxxxxxxxxxxxxxxx",
"task_title": "test",
"task_description": "test",
"todo_type": "84",
"todo_attributes": "test",
"email": "[email protected]",
"amount": "150",
"copyright": "1",
"date_end": "20.12.2022",
"need_report": "1",
"currency": "EUR"
},
"response": {
"id": 581807,
"merchantTransaction": "",
"state": {
"id": 1,
"title": "Не подтверждена",
"title_en": "Not confirmed"
},
"category": {
"id": 7,
"title": "Контент и электронные СМИ",
"title_en": "Content & Electronic mass media"
},
"subCategory": {
"id": 84,
"title": "Услуги контент-менеджера",
"title_en": "Services of content-manager"
},
"groups": [],
"title": "test",
"description": "test",
"amount": "150.00",
"amountOfCommission": "10.50",
"percentOfCommission": "7.00",
"fullPrice": "160.50",
"currency": {
"title": "Евро",
"short_title": "EUR"
},
"creator": {
"id": 355,
"email": "[email protected]",
"first_name": "Дмитрий",
"last_name": "Цапков",
"middle_name": null,
"country": "RU",
"phone": "79039611544",
"workersCategory": null,
"hasAddress": false
},
"payer": null,
"worker": {
"id": 99188,
"email": "[email protected]",
"first_name": "Светлана",
"last_name": "Шестерова",
"middle_name": null,
"country": "RU",
"phone": "79523375920",
"workersCategory": {
"id": 8,
"title": "Веб-мастер",
"title_en": "Webmaster"
},
"hasAddress": false
},
"date_created": "2021-10-07 11:26:13",
"date_end": "2022-12-20 00:00:00",
"date_paid": null,
"date_pay_at": null,
"resultLinks": [],
"resultLinksWithIP": [],
"projectsTasksFiles": [],
"acceptanceFiles": [],
"copyright": 1,
"need_report": "1",
"date_report": null,
"nda": null
}
}
Метод используется для создания новой задачи.
Для интернет-рекламы, которая показывается на территории РФ, действует закон о маркировке рекламы.
Если вы создаете или оплачиваете задачи соответствующей категории услуг, то необходимо обязательно передать дополнительные атрибуты. В данной версии АПИ вам необходимо будет передать uuid договора, который можно скопировать из интерфейса (на странице создания задачи). В новой версии АПИ вы сможете создавать договора и добавлять данные о конечном заказчиком через АПИ.
Запрос
HTTP запрос
Параметры
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
action |
string |
Да | Действие. В данном методе должно быть значение create . |
client_id |
integer |
Да | ID компании. Отображается в разделе Компания -> Интеграция. |
signature |
integer |
Да | Подпись запроса. Подробнее о формировании подписи см. здесь. |
task_title |
string |
Да | Название задачи |
task_description |
string |
Да | Описание задачи |
todo_type |
integer |
Нет | Код услуги, закрепленный за вами при подключении к Solar Staff API. Если при выплатах вы не используете специфичные коды (вам достаточно кода 20 "Управление размещением медийной рекламы"), то можете не передавать данный параметр. Если при подключении для вас было выбрано несколько различных кодов, то при каждом запросе вам необходимо передавать необходимый код, например, 65 "Tехническая поддержка программного обеспечения" |
todo_attributes |
string |
Нет | Атрибут выбранной услуги (для передачи нескольких значений укажите их последовательно через точку с запятой ";", даже если значения атрибутов пустые. Например, http://some.domain.com;;). Значение данного параметра пойдет в месячный итоговый отчет. При работе с АПИ по стандартному коду услуги (20 "Управление размещением медийной рекламы") должен содержать URL-адрес площадки размещения рекламы. |
email |
string |
Да | Email фрилансера |
amount |
integer |
Да | Стоимость задачи |
copyright |
boolean |
Да | Признак того, что требуется передача авторских прав |
date_end |
date |
Да | Дедлайн задачи |
need_report |
boolean |
Нет | Признак того, что к задаче требуется отчет |
currency |
string |
Да | Валюта задачи |
end_contracts |
object |
Нет | Обязательно для задач по распространению интернет-рекламы, которая показывается на территории РФ. Если вам нужна разаллокация, то для каждой задачи можно добавить несколько договоров. При этом, если общая сумма задачи больше суммы во всех договорах, то остаток будет считаться Производством рекламы. Если меньше, то задача не будет создана и будет возвращена ошибка. |
end_contracts.uuid |
Uuid |
Нет | ID договора для выполнения закона о маркировке рекламы. UUID договора между конечным заказчиком рекламы и исполнителем. UUID отображается в интерфейсе создания задачи в блоке об обязательной маркировке рекламы. Если вы - конечный рекламодатель, то необходимо передать UUID договора между вами и Solar-staff (он отображается автоматически). Если вы - посредник, то необходимо передать UUID договора между конечным заказчиком и исполнителем договора (для добавления договора вам необходимо открыть страницу создания задачи -> выбрать рекламную категорию -> в блоке Обязательной маркировки рекламы добавить данные о конечном рекламодателе, посреднике при необходимости и договоре -> UUID договора будет сгенерирован автоматически). |
end_contracts.sum |
integer |
Нет | Сумма в договоре. Парамтер обязательный, если в задаче более одного договора (несколько контрагентов). Для одного договора параметр необязательный. |
Ответ
При успешном выполнении запроса возвращается следующий ответ:
Название свойства | Тип | Описание |
---|---|---|
id |
integer |
ID добавленной банковской карты |
merchantTransaction |
integer |
ID транзакции |
state |
object |
Статус задачи. Полный список статусов см. в блоке Статусы задач. |
state.id |
integer |
ID статуса задачи |
state.title |
string |
Название статуса задачи |
category |
object |
Категория задачи |
category.id |
string |
ID категории задачи |
category.title |
string |
Название категории задачи |
category.title_en |
string |
Название категории задачи (на английском) |
subCategory |
object |
Подкатегория задачи |
subCategory.id |
string |
ID подкатегории задачи |
subCategory.title |
string |
Название подкатегории задачи |
subCategory.title_en |
string |
Название подкатегории задачи (на английском) |
subCategoryAttributes |
object |
Атрибуты подкатегории |
groups |
object |
Группы задачи |
groups.id |
string |
ID группы задач |
groups.title |
string |
Название группы задач |
title |
string |
Название задачи |
description |
string |
Описание задачи |
amount |
float |
Стоимость задачи |
amountOfCommission |
float |
Стоимость комиссии |
percentOfCommission |
float |
Процент комиссии (от стоимости задачи) |
fullPrice |
float |
Полная стоимость задачи (включая комиссию сервиса) |
currency |
string |
Валюта задачи |
currency.title |
string |
Полное название валюты задачи |
currency.short_title |
string |
Краткое название валюты задачи |
creator |
object |
Менеджер (админ), создавший задачу |
creator.id |
string |
ID менеджера, создавшего задачу |
creator.email |
string |
Email менеджера, создавшего задачу |
creator.first_name |
string |
Имя менеджера, создавшего задачу |
creator.last_name |
string |
Фамилия менеджера, создавшего задачу |
creator.country |
string |
Страна менеджера, создавшего задачу |
creator.phone |
string |
Телефон менеджера, создавшего задачу |
creator.workersCategory |
object |
Специальность пользователя (существует только для фрилансеров) |
creator.workersCategory.id |
string |
ID специальности пользователя. Список кодов см. здесь. |
creator.workersCategory.title |
string |
Название специальности пользователя |
creator.workersCategory.title_en |
string |
Название специальности пользователя (на английском) |
payer |
object |
Менеджер (админ), оплативший задачу |
payer.id |
string |
ID менеджера, оплатившего задачу |
payer.email |
string |
Email менеджера, оплатившего задачу |
payer.first_name |
string |
Имя менеджера, оплатившего задачу |
payer.last_name |
string |
Фамилия менеджера, оплатившего задачу |
payer.country |
string |
Страна менеджера, оплатившего задачу |
payer.phone |
string |
Телефон менеджера, оплатившего задачу |
payer.workersCategory |
object |
Специальность пользователя (существует только для фрилансеров) |
payer.workersCategory.id |
string |
ID специальности пользователя |
payer.workersCategory.title |
string |
Название специальности пользователя |
payer.workersCategory.title_en |
string |
Название специальности пользователя (на английском) |
date_created |
float |
Дата создания задачи |
date_end |
float |
Дедлайн задачи |
date_paid |
float |
Дата оплаты задачи |
date_pay_at |
float |
Дата оплаты задачи |
resultLinks |
object |
Ссылки на файлы к задаче |
resultLinksWithIP |
object |
Ссылки на файлы к задаче |
projectsTasksFiles |
object |
Файлы задачи |
acceptanceFiles |
object |
Дата оплаты задачи |
copyright |
boolean |
Признак того, что в задаче требуется передача авторских прав |
need_report |
boolean |
Признак того, что в задаче требуется отчет |
date_report |
date |
Дата создания отчета |
nda |
boolean |
Признак того, что к задаче приложено NDA соглашение |
Изменение статуса задачи
Пример запроса
curl --location
--request POST 'https://api.solar-staff.com/v1/task' \
--data-raw '{
"client_id" : 466,
"action" : "change_status",
"task_id" : 55,
"new_status" : 4,
"signature" : "1f0c1450e496ad73ecdf0b"
}'
Пример ответа
HTTP status code: 200 OK
{
"success": true,
"code": 200,
"request": {
"action": "change_status",
"client_id": "463",
"signature": "xxxxxxxxxxxxxxxxx",
"task_id": "581745",
"new_status": "4"
},
"response": {
"id": 581745,
"merchantTransaction": "",
"state": {
"id": 4,
"title": "Ждет оплату",
"title_en": "Pending payment"
},
"category": {
"id": 5,
"title": "Программирование / техподдержка",
"title_en": "Software development / Technical support"
},
"subCategory": {
"id": 63,
"title": "Tестирование ПО сайта",
"title_en": "Website software testing"
},
"groups": [],
"title": "Тестирование",
"description": "",
"amount": "1000.00",
"amountOfCommission": "70.00",
"percentOfCommission": "7.00",
"fullPrice": "1070.00",
"currency": {
"title": "Рубль РФ",
"short_title": "RUB"
},
"creator": {
"id": 355,
"email": "[email protected]",
"first_name": "Дмитрий",
"last_name": "Цапков",
"middle_name": null,
"country": "RU",
"phone": "79039611544",
"workersCategory": null,
"hasAddress": false
},
"payer": null,
"worker": {
"id": 2513,
"email": "[email protected]",
"first_name": "Кирилл",
"last_name": "Иванин",
"middle_name": null,
"country": "RU",
"phone": "79835255650",
"workersCategory": {
"id": 8,
"title": "Веб-мастер",
"title_en": "Webmaster"
},
"hasAddress": false
},
"date_created": "2019-06-07 12:40:05",
"date_end": "2019-06-07 00:00:00",
"date_paid": null,
"date_pay_at": null,
"resultLinks": [],
"resultLinksWithIP": [],
"projectsTasksFiles": [],
"acceptanceFiles": [],
"copyright": "0",
"need_report": 0,
"date_report": null,
"nda": "0"
}
}
Метод используется для изменения статуса неоплаченных задач. Задачи могут быть созданы либо через личный кабинет, либо в результате запросов: payout
, payout_qiwi
или payout_webmoney
.
Порядок изменения статусов:
Не подтверждена
(ID=1) можно измененить наВ работе
(ID=2)В работе
(ID=2) можно измененить наЖдет приемки
(ID=3)Ждет приемки
(ID=3) можно изменить на:Ждет оплату
(ID=4) илиВ работе
(ID=2).
Задачи в любом другом статусе нельзя изменить через данный метод.
Полный список статусов задачи см. в блоке Статусы задач.
Запрос
HTTP запрос
Параметры
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
action |
string |
Да | Действие. В данном методе должно быть значение change_status . |
client_id |
integer |
Да | ID компании. Отображается в разделе Компания -> Интеграция. |
signature |
integer |
Да | Подпись запроса. Подробнее о формировании подписи см. здесь. |
merchant_transaction |
integer |
Обязателен один из параметров: merchant_transaction или task_id |
Номер транзакции |
task_id |
integer |
Обязателен один из параметров: merchant_transaction или task_id |
ID задачи. |
new_status |
integer |
Да | ID нового статуса задачи. Полный список статусов см. в блоке Статусы задач. |
Ответ
При успешном выполнении запроса возвращается объект задачи. Подробное описание полей объекта см. в ответе метода поиска задачи.
Оплатить задачу
Пример запроса
curl --location
--request POST 'https://api.solar-staff.com/v1/payment' \
--data-raw '{
"action": "payout",
"client_id": "463",
"email": "[email protected]",
"merchant_transaction": "11583",
"currency": "RUB",
"amount": "1000",
"signature": "xxxxxxxxxxxxxxxxx",
"task_id": "581745"
}'
Пример ответа
HTTP status code: 200 OK
{
"success": true,
"code": 200,
"request": {
"action": "payout",
"client_id": "463",
"email": "[email protected]",
"merchant_transaction": "11583",
"currency": "RUB",
"amount": "1000",
"signature": "xxxxxxxxxxxxxxxxx",
"task_id": "581745"
},
"response": {
"currency": "RUB",
"transaction_id": 1705252,
"task_id": 581745,
"status": "Success",
"status_id": 2,
"payout_amount": 1000,
"real_amount": 1070,
"merchant_transaction": "11583"
}
}
Метод используется для оплаты задачи.
Запрос
HTTP запрос
Параметры
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
action |
string |
Да | Действие. В данном методе должно быть значение payout . |
client_id |
integer |
Да | ID компании. Отображается в разделе Компания -> Интеграция. |
signature |
integer |
Да | Подпись запроса. Подробнее о формировании подписи см. здесь. |
email |
string |
Да | Email пользователя, который оплачивает задачу |
merchant_transaction |
integer |
Да | ID транзакции |
currency |
string |
Да | Валюта задачи |
amount |
integer |
Да | Стоимость задачи |
task_id |
integer |
Да | ID задачи |
end_contract_uuid |
string |
Нет | Обязательно для задач по распространению интернет-рекламы, которая показывается на территории РФ. UUID договора между конечным заказчиком рекламы и исполнителем. UUID отображается в интерфейсе создания задачи в блоке об обязательной маркировке рекламы. Если вы - конечный рекламодатель, то необходимо передать UUID договора между вами и Solar-staff (он отображается автоматически). Если вы - посредник, то необходимо передать UUID договора между конечным заказчиком и исполнителем договора (для добавления договора вам необходимо открыть страницу создания задачи -> выбрать рекламную категорию -> в блоке Обязательной маркировки рекламы добавить данные о конечном рекламодателе, посреднике при необходимости и договоре -> UUID договора будет сгенерирован автоматически). |
Ответ
При успешном выполнении запроса возвращается следующий ответ:
Название свойства | Тип | Описание |
---|---|---|
currency |
string |
Валюта задачи |
transaction_id |
integer |
ID транзакции |
task_id |
integer |
ID задачи |
status |
string |
Название статуса задачи. Полный список статусов см. в блоке Статусы задач. |
status_id |
integer |
ID статуса задачи. Полный список статусов см. в блоке Статусы задач. |
payout_amount |
string |
Стоимость задачи |
real_amount |
string |
Стоимость задачи с комиссией |
Фрилансеры
Раздел содержит описание методов для управления фрилансерами:
- создание или приглашение новых фрилансеров
- получение данных о статусе регистрации фрилансера
- обновление профиля фрилансера
- получение URL-адреса для верификации фрилансера
- удаление фрилансера.
Получение списка фрилансеров
Пример запроса
curl --location
--request POST 'https://api.solar-staff.com/v1/workers' \
--data-raw '{
"client_id" : 466,
"action" : "workers_list",
"email" : "[email protected]",
"signature" : "1f0c1450e496ad73ecdf0b"
}'
Пример ответа
HTTP status code: 200 OK
{
"success": true,
"code": 200,
"request": {
"client_id": 466,
"action": "workers_list",
"signature": "1f0c1450e496ad73ecdf0b"
},
"response": [
{
"id": 99753,
"email": "***@gmail.com",
"first_name": "Ivan",
"last_name": "Ivanov",
"middle_name": null,
"country": "RU",
"phone": "***",
"workersCategory": null,
"hasAddress": false
}
]
}
Метод возвращает фрилансеров, работающих с запрашиваемой компанией.
Доступен фильтр по email
или worker_id
(возвращается в метода создания или поиска фрилансера).
Запрос
HTTP запрос
Параметры
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
action |
string |
Да | Действие. В данном методе должно быть значение workers_list . |
client_id |
integer |
Да | ID компании. Отображается в разделе Компания -> Интеграция. |
signature |
integer |
Да | Подпись запроса. Подробнее о формировании подписи см. здесь. |
email |
string |
Нет | Email фрилансера. |
worker_id |
integer |
Нет | ID фрилансера (возвращается в метода создания или поиска фрилансера). |
Ответ
При успешном выполнении запроса метод возвращает список пользователей в объекте response
.
Название свойства | Тип | Описание |
---|---|---|
id |
integer |
ID фрилансера |
email |
string |
Email пользователя |
first_name |
string |
Имя пользователя |
last_name |
string |
Фамилия пользователя |
middle_name |
string |
Отчество пользователя |
country |
string |
Код страны пользователя |
phone |
string |
Телефон пользователя |
workersCategory |
integer |
Специализация фрилансера. Список кодов см. здесь. |
hasAddress |
boolean |
Признак того, что фрилансер заполнил все поля адреса в личном кабинете. |
Поиск фрилансера
Пример запроса
curl --location
--request POST 'https://api.solar-staff.com/v1/workers' \
--data-raw '{
"client_id" : 466,
"action" : "worker_find",
"email" : "[email protected]",
"signature" : "1f0c1450e496ad73ecdf0b"
}'
Пример ответа
HTTP status code: 200 OK
{
"success": true,
"code": 200,
"request": {
"client_id": 466,
"action": "worker_find",
"signature": "1f0c1450e496ad73ecdf0b"
},
"response": [
{
"id": 99753,
"email": "***@gmail.com",
"first_name": "Ivan",
"last_name": "Ivanov",
"middle_name": null,
"country": "RU",
"phone": "***",
"workersCategory": null,
"hasAddress": false
}
]
}
Метод возвращает фрилансеров по заданному фильтру. Доступен фильтр по email
или worker_id
(возвращается в метода создания или поиска фрилансера).
Запрос
HTTP запрос
Параметры
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
action |
string |
Да | Действие. В данном методе должно быть значение worker_find . |
client_id |
integer |
Да | ID компании. Отображается в разделе Компания -> Интеграция. |
signature |
integer |
Да | Подпись запроса. Подробнее о формировании подписи см. здесь. |
email |
string |
Один из параметров email или worker_id является обязательным |
Email фрилансера. |
worker_id |
integer |
Один из параметров email или worker_id является обязательным |
ID фрилансера (возвращается в метода создания или поиска фрилансера). |
Ответ
При успешном выполнении запроса метод возвращает список пользователей в объекте response
.
Название свойства | Тип | Описание |
---|---|---|
id |
integer |
ID фрилансера |
email |
string |
Email пользователя |
first_name |
string |
Имя пользователя |
last_name |
string |
Фамилия пользователя |
middle_name |
string |
Отчество пользователя |
country |
string |
Код страны пользователя |
phone |
string |
Телефон пользователя |
workersCategory |
integer |
Специализация фрилансера. Список кодов см. здесь. |
hasAddress |
boolean |
Признак того, что фрилансер заполнил все поля адреса в личном кабинете. |
Пригласить фрилансера
Пример запроса
curl --location
--request POST 'https://api.solar-staff.com/v1/workers' \
--data-raw '{
"client_id" : 466,
"action" : "worker_invite",
"email" : "[email protected]",
"language": "ru",
"signature" : "1f0c1450e496ad73ecdf0b"
}'
Пример ответа
HTTP status code: 200 OK
{
"status": "Зарегистрирован",
"status_id": 2,
"email": "[email protected]",
"worker_id": 99756,
"language": "RU"
}
Метод отправляет на email фрилансера приглашение зарегистрироваться в сервисе. После того, как фрилансер перейдет по ссылке из email и заполнит форму регистрации, он будет автоматически добавлен в команду заказчика.
Запрос
HTTP запрос
Параметры
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
action |
string |
Да | Действие. В данном методе должно быть значение worker_invite . |
client_id |
integer |
Да | ID компании. Отображается в разделе Компания -> Интеграция. |
signature |
integer |
Да | Подпись запроса. Подробнее о формировании подписи см. здесь. |
email |
string |
Да | Email, на который будет отправлено приглашение |
language |
string |
Да | Язык сообщения. Доступные значения:
|
Ответ
При успешном выполнении запроса метод возвращает список пользователей в объекте response
.
Название свойства | Тип | Описание |
---|---|---|
status |
string |
Статус фрилансера. Доступные значения:
|
status_id |
integer |
ID статуса пользователя. |
email |
string |
Email пользователя |
worker_id |
string |
ID фрилансера (возвращается в метода создания или поиска фрилансера) |
language |
string |
Код языка, на котором было отправлено приглашение. |
Создать фрилансера
Пример запроса
curl --location
--request POST 'https://api.solar-staff.com/v1/workers' \
--data-raw '{
"client_id" : 466,
"action" : "worker_create",
"email" : "[email protected]",
"password" : "S0MePa$W0rd",
"first_name" : "Иван",
"last_name" : "Иванов",
"middle_name" : "Иванович",
"phone" : "79261234567",
"specialization" : 1,
"country" : "RU",
"send_message" : 1,
"language" : "ru",
"signature" : "1f0c1450e496ad73ecdf0b"
}'
Пример ответа
HTTP status code: 200 OK
{
"id": 99760,
"email": "[email protected]",
"first_name": "Иван",
"last_name": "Иванов",
"middle_name": null,
"country": "RU",
"phone": "79261234567",
"workersCategory": {
"id": 1,
"title": "Веб-дизайнер",
"title_en": "Web Designer"
},
"hasAddress": false
}
Метод служит для создания нового фрилансера.
Указанный в запросе адрес электронной почты будет использован в качестве идентификатора пользователя в Solar Staff. Если уже существует фрилансер с переданным email, то он будет добавлен в вашу команду. При этом остальные его данные не будут изменены (переданные имя/фамилия/телефон/специализация сохранены не будут).
Запрос
HTTP запрос
Параметры
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
action |
string |
Да | Действие. В данном методе должно быть значение worker_create . |
client_id |
integer |
Да | ID компании. Отображается в разделе Компания -> Интеграция. |
signature |
integer |
Да | Подпись запроса. Подробнее о формировании подписи см. здесь. |
email |
string |
Да | Email фрилансера. |
password |
string |
Да | Пароль. Пароль может состоять из любых символов количеством от 5 до 60. |
first_name |
string |
Да | Имя фрилансера |
last_name |
string |
Да | Фамилия фрилансера |
middle_name |
string |
Да | Отчество фрилансера |
phone |
string |
Нет | Телефон фрилансера. Номер телефона должен начинаться с кода страны без знака + . Например, для России - 79617065684 , для Латвии - 3712982892345 . |
specialization |
integer |
Да | Код специализации фрилансера. Список кодов см. здесь. |
country |
string |
Да | Код страны фрилансера согласно стандарту ISO 3166. |
tax_doc_number |
string |
Обязательно, если передан tax_doc_type |
Номер налогового документа |
tax_doc_type |
string |
Обязательно, если передан tax_doc_number |
Тип налогового документа. Доступные значения различаются в зависимости от страны фрилансера:
|
send_message |
boolean |
Да | признак, определяющий необходимость отправить исполнителю письмо со ссылкой на подтверждение регистрации в сервисе. Значение 1 для отправки сообщения фрилансеру. |
language |
string |
Нет | Язык email, если он будет отправлен фрилансеру. Допустимые значения: ru для русского или en для английского. |
Ответ
При успешном выполнении запроса метод возвращает объект созданного пользователя.
Название свойства | Тип | Описание |
---|---|---|
id |
integer |
ID пользователя. |
email |
string |
Email пользователя |
first_name |
string |
Имя фрилансера |
last_name |
string |
Фамилия фрилансера |
country |
string |
Код страны фрилансера |
phone |
string |
Телефон фрилансера |
workersCategory |
string |
Специализация фрилансера |
workersCategory.id |
integer |
ID специализации фрилансера |
workersCategory.title |
string |
Название специализации фрилансера |
Получение данных о статусе регистрации и верификации фрилансера
Пример запроса
curl --location
--request POST 'https://api.solar-staff.com/v1/status' \
--data-raw '{
"action" : "worker_status",
"client_id" : 1,
"signature" : "xxxxxxxxxxxxxxxxx",
"email" : "[email protected]"
}'
Пример ответа
HTTP status code: 200 OK
{
"email": "[email protected]",
"status": "reg_success"
"taxation_status":{
"id":"1",
"title_en":"Natural person",
"title_ru":"Физическое лицо"
},
"verification_status": "verified"
}
Метод служит для получения данных о статусе регистрации и верификации фрилансера.
Запрос
HTTP запрос
Параметры
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
action |
string |
Да | Действие. В данном методе должно быть значение worker_status . |
client_id |
integer |
Да | ID компании. Отображается в разделе Компания -> Интеграция. |
signature |
integer |
Да | Подпись запроса. Подробнее о формировании подписи см. здесь. |
worker_id |
integer |
Обязателен один из параметров worker_id или email |
ID фрилансера (возвращается в метода создания или поиска фрилансера). |
email |
string |
Обязателен один из параметров worker_id или email |
Email фрилансера. |
Ответ
При успешном выполнении запроса метод возвращает следующие данные:
Название свойства | Тип | Описание |
---|---|---|
email |
string |
Email пользователя |
status |
string |
Статус регистрации |
taxation_status |
string |
Налоговый статус |
taxation_status.id |
integer |
ID налогового статуса |
taxation_status.title_en |
string |
Название налогового статуса (на английском языке) |
taxation_status.title_ru |
string |
Название налогового статуса (на русском языке) |
verification_status |
string |
Статус верификации. Возможные значения: verified - верифицирован, not_verified - не верифицирован. |
Обновить профиль фрилансера
Пример запроса
curl --location
--request POST 'https://api.solar-staff.com/v1/workers' \
--data-raw '{
"client_id" : 466,
"action" : "worker_update",
"email" : "[email protected]",
"last_name" : "Иванович",
"signature" : "1f0c1450e496ad73ecdf0b"
}'
Пример ответа
HTTP status code: 200 OK
{
"id": 99760,
"email": "[email protected]",
"first_name": "Иван",
"last_name": "Иванович",
"middle_name": null,
"country": "RU",
"phone": "79261234567",
"workersCategory": {
"id": 1,
"title": "Веб-дизайнер",
"title_en": "Web Designer"
},
"hasAddress": false
}
Метод служит для обновления профиля фрилансера по ID фрилансера или его email. Обновить профиль можно только для фрилансеров, который не являются ИП. Добавить или обновить налоговые данные (параметры tax_doc_number
и tax_doc_type
) для фрилансеров из России можно только для Физических лиц.
Запрос
HTTP запрос
Параметры
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
action |
string |
Да | Действие. В данном методе должно быть значение worker_update . |
client_id |
integer |
Да | ID компании. Отображается в разделе Компания -> Интеграция. |
signature |
integer |
Да | Подпись запроса. Подробнее о формировании подписи см. здесь. |
worker_id |
integer |
Обязателен один из параметров worker_id или email |
ID фрилансера (возвращается в метода создания или поиска фрилансера). |
email |
string |
Обязателен один из параметров worker_id или email |
Email фрилансера. |
first_name |
string |
Нет | Имя фрилансера |
last_name |
string |
Нет | Фамилия фрилансера |
middle_name |
string |
Нет | Отчество фрилансера |
specialization |
integer |
Нет | Код специализации фрилансера. Список кодов см. здесь. |
country |
string |
Нет | Код страны фрилансера согласно стандарту ISO 3166. |
zip |
string |
Нет | Индекс фрилансера |
city |
string |
Нет | Город фрилансера |
address |
string |
Нет | Адрес фрилансера |
phone |
string |
Нет | Телефон фрилансера (только если он не был указан ранее, иначе переданное значение будет проигнорировано) |
password |
string |
Нет | Пароль фрилансера (только если он не был указан ранее, иначе переданное значение будет проигнорировано) |
tax_doc_number |
string |
Нет | Номер налогового документа. Параметр обязательный для добавления или обновления налоговых данных (также обязательно должен быть передан tax_doc_type ) |
tax_doc_type |
string |
Нет | Тип налогового документа. Параметр обязательный для добавления или обновления налоговых данных (также обязательно должен быть передан tax_doc_number ). Доступные значения различаются в зависимости от страны фрилансера:
|
Ответ
При успешном выполнении запроса метод возвращает объект созданного пользователя. Также ответ сервера содержит поле hasAddress
, значение которого указывает на наличие или отсутствие заполненного адреса (всех его полей).
Название свойства | Тип | Описание |
---|---|---|
id |
integer |
ID пользователя. |
email |
string |
Email пользователя |
first_name |
string |
Имя фрилансера |
middle_name |
string |
Отчество фрилансера |
last_name |
string |
Фамилия фрилансера |
country |
string |
Код страны фрилансера |
phone |
string |
Телефон фрилансера |
workersCategory |
string |
Специализация фрилансера |
workersCategory.id |
integer |
ID специализации фрилансера |
workersCategory.title |
string |
Название специализации фрилансера |
workersCategory.title_en |
string |
Название специализации фрилансера (на английском) |
hasAddress |
boolean |
Признак того, что фрилансер заполнил адрес (1 , если заполнено) |
Удалить фрилансера
Пример запроса
curl --location
--request POST 'https://api.solar-staff.com/v1/workers' \
--data-raw '{
"client_id" : 466,
"action" : "worker_remove",
"email" : "[email protected]",
"signature" : "1f0c1450e496ad73ecdf0b"
}'
Пример ответа
HTTP status code: 200 OK
{
"removed": true
}
Метод служит для удаления фрилансера из команды аккаунта компании. Обратите внимание, что исполнитель при этом удален не будет. Все выплаты, поставленные на данного исполнителя, останутся в статистике в личном кабинете Solar Staff. В дальнейшем данного исполнителя можно будет снова пригласить в команду, используя метод создания фрилансера.
Запрос
HTTP запрос
Параметры
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
action |
string |
Да | Действие. В данном методе должно быть значение worker_remove . |
client_id |
integer |
Да | ID компании. Отображается в разделе Компания -> Интеграция. |
signature |
integer |
Да | Подпись запроса. Подробнее о формировании подписи см. здесь. |
worker_id |
integer |
Обязателен один из параметров worker_id или email |
ID фрилансера (возвращается в метода создания или поиска фрилансера). |
email |
string |
Обязателен один из параметров worker_id или email |
Email фрилансера. |
Ответ
При успешном выполнении запроса метод возвращает результат удаления пользователя из команды.
Название свойства | Тип | Описание |
---|---|---|
removed |
boolean |
Удален ли пользователь (true , если удаление выполнено успешно) |
Сгенерировать ссылку на терминал
Пример запроса
curl --location
--request POST 'https://api.solar-staff.com/v1/workers' \
--data-raw '{
"client_id" : 466,
"action" : "worker_verification",
"email" : "[email protected]",
"signature" : "1f0c1450e496ad73ecdf0b"
}'
Пример ответа
HTTP status code: 200 OK
{
"terminal_url": "https://solar-staff.com/verification/?email=testert573%40gmail.com&token=_act-cb4b4d69-3558-452f-ba0b-13f4dc526a6c",
}
Метод служит для получения URL-адреса, где фрилансер может пройти верификацию. Верификация - это подтверждение личности и персональных данных фрилансера. Подробное описание процесса верификации см. здесь.
Запрос
HTTP запрос
Параметры
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
action |
string |
Да | Действие. В данном методе должно быть значение worker_verification . |
client_id |
integer |
Да | ID компании. Отображается в разделе Компания -> Интеграция. |
signature |
integer |
Да | Подпись запроса. Подробнее о формировании подписи см. здесь. |
worker_id |
integer |
Обязателен один из параметров worker_id или email |
ID фрилансера (возвращается в метода создания или поиска фрилансера). |
email |
string |
Обязателен один из параметров worker_id или email |
Email фрилансера. |
Ответ
При успешном выполнении запроса метод возвращает следующие данные:
Название свойства | Тип | Описание |
---|---|---|
terminal_url |
string |
URL терминала |
Коды специализаций фрилансеров
Далее приведен список всех доступных специализаций фрилансеров. Специализацию необходимо передать в качестве параметра запроса в методе создания нового фрилансера.
Для загрузки файла со списком специализаций перейдите по ссылке.
Платежные инструменты
Раздел содержит описание методов для управления привязкой банковских карт фрилансеров (как платежного инструментадля вывода средств): получить список добавленных фрилансером карт, получить статус карты, удалить карту и инициировать создание терминала привязки карты.
Получить список банковских карт фрилансера
Пример запроса
curl --location
--request POST 'https://api.solar-staff.com/v1/workers' \
--data-raw '{
"client_id" : 466,
"action" : "cards_list",
"email" : "[email protected]",
"signature" : "1f0c1450e496ad73ecdf0b"
}'
Пример ответа
HTTP status 200 OK
{
"card_id": 78767,
"currency": "RUB",
"verify_status_id": 1,
"verify_status": "Инициализирована привязка",
"card_number": null,
"country": "RU",
"card_expire": null,
"card_holder": null,
"terminal_url": "https://processing-staging.local-staff.com/terminal/cff75fe-946866e-9e27827-630ec9b"
}
Метод используется для получения списка банковских карт, привязанных к аккаунту фрилансера. Если карта в статусе Инициализирована привязка, то ответ будет содержать параметр terminal_url
- это адрес терминала, на который должен быть перенаправлен исполнитель для ввода данных карты.
Запрос
HTTP запрос
Параметры
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
action |
string |
Да | Действие. В данном методе должно быть значение cards_list . |
client_id |
integer |
Да | ID компании. Отображается в разделе Компания -> Интеграция. |
signature |
integer |
Да | Подпись запроса. Подробнее о формировании подписи см. здесь. |
email |
string |
Один из параметров email или worker_id является обязательным |
Email фрилансера. |
worker_id |
integer |
Один из параметров email или worker_id является обязательным |
ID фрилансера (возвращается в метода создания или поиска фрилансера). |
Ответ
Название свойства | Тип | Описание |
---|---|---|
card_id |
integer |
ID добавленной банковской карты |
currency |
string |
Код валюты |
verify_status_id |
integer |
ID статуса верификации. Возможные статусы:
|
verify_status |
string |
Название статуса верификации |
card_number |
string |
Номер банковской карты |
country |
string |
Код страны |
card_expire |
string |
Срок действия банковской карты |
card_holder |
string |
Владелец банковской карты |
terminal_url |
string |
Сгенерированный URL-адрес терминала для привзяки банковской карты. |
Инициализация терминала привязки банковской карты
Пример запроса
curl --location
--request POST 'https://api.solar-staff.com/v1/workers' \
--data-raw '{
"client_id" : 466,
"action" : "card_verify",
"email" : "[email protected]",
"currency" : "RUB",
"language" : "EN",
"redirect_url" : "http://som.domen.com",
"signature" : "1f0c1450e496ad73ecdf0b"
}'
Пример ответа
HTTP status 200 OK
{
"card_id": 78767,
"currency": "RUB",
"verify_status_id": 1,
"verify_status": "Инициализирована привязка",
"card_number": null,
"country": "RU",
"card_expire": null,
"card_holder": null,
"terminal_url": "https://processing-staging.local-staff.com/terminal/cff75fe-946866e-9e27827-630ec9b/en"
}
Метод используется для инициализации процесса привязки нового платежного инструмента. Ответ будет содержать параметр terminal_url
- это адрес терминала, на который должен быть перенаправлен исполнитель для ввода данных карты.
Запрос
HTTP запрос
Параметры
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
action |
string |
Да | Действие. В данном методе должно быть значение card_verify . |
client_id |
integer |
Да | ID компании. Отображается в разделе Компания -> Интеграция. |
signature |
integer |
Да | Подпись запроса. Подробнее о формировании подписи см. здесь. |
email |
string |
Да | Email фрилансера. |
currency |
string |
Нет | Код валюты согласно стандарту ISO 4217. Если код валюты будет заполнен, то в терминале поле выбора валюты карты будет предзаполнено и у исполнителя не будет возможности выбрать иную. Доступные значения:
|
language |
string |
Нет | Язык терминала. Если параметр не передать, то язык терминала будет выбран в зависимости от текущей локали браузера фрилансера. Доступные значения:
|
redirect_url |
string |
Нет | URL-адрес, на который будет переадресован фрилансер при отмене ввода данных, либо при успешном вводе и сохранении данных в терминале. Для указания языка терминала добавьте в конец ссылки параметр lang со значением ru для русского языка или en для английского. |
Ответ
Название свойства | Тип | Описание |
---|---|---|
card_id |
integer |
ID добавленной банковской карты |
currency |
string |
Код валюты |
verify_status_id |
integer |
ID статуса верификации. Возможные статусы:
|
verify_status |
string |
Название статуса верификации |
card_number |
string |
Номер банковской карты |
country |
string |
Код страны |
card_expire |
string |
Срок действия банковской карты |
card_holder |
string |
Владелец банковской карты |
terminal_url |
string |
Сгенерированный URL-адрес терминала для привзяки банковской карты. |
Получить статус карты
Пример запроса
curl --location
--request POST 'https://api.solar-staff.com/v1/workers' \
--data-raw '{
"client_id" : 466,
"action" : "card_status",
"email" : "[email protected]",
"card_id": 78767,
"signature" : "1f0c1450e496ad73ecdf0b"
}'
Пример ответа
HTTP status 200 OK
{
"card_id":55,
"currency":"RUB",
"verify_status_id":4,
"verify_status":"Привязана",
"card_number":"4234 56** **** 7890",
"card_expire":"12/18",
"card_holder":"IVAN IVANOV",
"terminal_url":null
}
Метод позволяет получить статус привязки банковской карты в кабинете фрилансера. Параметры запроса включают в себя ID банковской карты.
Запрос
HTTP запрос
Параметры
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
action |
string |
Да | Действие. В данном методе должно быть значение card_status . |
client_id |
integer |
Да | ID компании. Отображается в разделе Компания -> Интеграция. |
signature |
integer |
Да | Подпись запроса. Подробнее о формировании подписи см. здесь. |
card_id |
integer |
Да | ID банковской карты (возвращается в методах инициализации терминала банковской карты или получения списка привязанных банковских карт) |
email |
string |
Один из параметров email или worker_id является обязательным |
Email фрилансера. |
worker_id |
integer |
Один из параметров email или worker_id является обязательным |
ID фрилансера (возвращается в метода создания или поиска фрилансера). |
Ответ
Название свойства | Тип | Описание |
---|---|---|
card_id |
integer |
ID добавленной банковской карты |
currency |
string |
Код валюты |
verify_status_id |
integer |
ID статуса верификации. Возможные статусы:
|
verify_status |
string |
Название статуса верификации |
card_number |
string |
Номер банковской карты |
card_expire |
string |
Срок действия банковской карты |
card_holder |
string |
Владелец банковской карты |
terminal_url |
string |
Сгенерированный URL-адрес терминала для привзяки банковской карты. Если банковская карта уже привязана, то параметр будет равен null . |
Удалить банковскую карту
Пример запроса
curl --location
--request POST 'https://api.solar-staff.com/v1/workers' \
--data-raw '{
"client_id" : 466,
"action" : "card_remove",
"email" : "[email protected]",
"card_id": 78767,
"signature" : "1f0c1450e496ad73ecdf0b"
}'
Пример ответа
HTTP status 200 OK
{
"removed": true
}
Метод позволяет удалить банковскую карту, привязанную фрилансером. Параметры запроса включают в себя ID банковской карты.
Запрос
HTTP запрос
Параметры
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
action |
string |
Да | Действие. В данном методе должно быть значение card_remove . |
client_id |
integer |
Да | ID компании. Отображается в разделе Компания -> Интеграция. |
signature |
integer |
Да | Подпись запроса. Подробнее о формировании подписи см. здесь. |
card_id |
integer |
Да | ID банковской карты (возвращается в методах инициализации терминала банковской карты или получения списка привязанных банковских карт) |
email |
string |
Один из параметров email или worker_id является обязательным |
Email фрилансера. |
worker_id |
integer |
Один из параметров email или worker_id является обязательным |
ID фрилансера (возвращается в метода создания или поиска фрилансера). |
Ответ
Название свойства | Тип | Описание |
---|---|---|
removed |
boolean |
Результат удаления банковской карты фрилансера (true - удалена, false - не удалена) |
Выплаты
Раздел содержит описание методов для проведения выплат на баланс, банковскую карту или электронные кошельки фрилансера.
Получить актуальный курс валют
Пример запроса
curl --location
--request POST'https://api.solar-staff.com/v1/info' \
--data-raw '{
"action" => "get_exchange_rate",
"client_id" => 1,
"pair" => "RUBEUR",
"signature" => "xxxxxxxxxxxxxxxxx"
}'
Пример ответа
HTTP status 200 OK
{
"pair": "RUB → EUR",
"rate_buy": 71.03,
"rate_sell": 70.68,
"date": "2018-01-01 10::00:01"
}
Метод используется для получения актуального курса валют на текущий день.
Запрос
HTTP запрос
Параметры
Название | Тип | Обязательность | Описание |
---|---|---|---|
action |
string |
Да | Название действия для запроса. В данном методе возможно только значение balance . |
client_id |
integer |
Да | ID компании. Отображается в разделе Компания -> Интеграция. |
pair |
string |
Нет | Валюты, для которых запрашивается курс. Доступны значения: RUBEUR (по умолчанию), RUBUSD. |
signature |
string |
Да | Подпись запроса. Подробнее о формировании подписи см. здесь |
Ответ
Название | Тип | Описание |
---|---|---|
pair |
string |
Валюты, для которых запрашивается курс. |
rate_buy |
float |
Курс покупки валюты |
rate_sell |
float |
Курс продажи валюты |
date |
date |
Дата опреации |
Получить список выплат
Пример запроса
curl --location
--request POST 'https://api.solar-staff.com/v1/info' \
--data-raw '{
"client_id" : 466,
"action" : "payouts",
"start_date" : "2020-08-01 00:00:00",
"finish_date" : "2020-08-02 23:59:59",
"signature" : "1f0c1450e496ad73ecdf0b"
}'
Пример ответа
HTTP status 200 OK
{
"totalCount": 663,
"totalSum": 1214314.47,
"details": {
"2017-08-01": {
"12": {
"count": 1,
"sum": 1995.95
},
"17": {
"count": 1,
"sum": 1998.49
}
},
"2017-08-02": {
"11": {
"count": 424,
"sum": 741218.21
},
"19": {
"count": 25,
"sum": 49869.25
}
}
}
}
Метод позволяет получить данные о количестве оплаченных задач и суммарных списаниях за указанный период с детализацией по дням и часам.
Запрос
HTTP запрос
Параметры
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
action |
string |
Да | Действие. В данном методе должно быть значение payouts . |
client_id |
integer |
Да | ID компании. Отображается в разделе Компания -> Интеграция. |
signature |
integer |
Да | Подпись запроса. Подробнее о формировании подписи см. здесь. |
start_date |
datetime |
Да | Дата начала интервала (например, 2020-08-01 00:00:00 ) |
finish_date |
datetime |
Да | Дата окончания интервала (например, 2020-08-02 23:59:59 ) |
Ответ
Название свойства | Тип | Описание |
---|---|---|
totalCount |
integer |
Общее количество оплаченных заказов |
totalSum |
float |
Общая сумма оплаченных заказов |
details |
object |
Подробные данные об оплатах с детализацией по дням и часам |
details.<date> |
object |
Дата |
details.<date>.<hour> |
object |
Время выплаты (например, значение 11 означает, оплаты были выполнены в период времени с 11:00:00 до 11:59:59 ) |
details.<date>.<hour>.count |
integer |
Количество оплаченных заказов в указанный интервал времени |
details.<date>.<hour>.sum |
float |
Стоимость оплаченных заказов в указанный интервал времени |
Создать выплату на баланс или банковскую карту фрилансера
Пример запроса
curl --location
--request POST 'https://api.solar-staff.com/v1/payment' \
--data-raw '{
"action" : "payout",
"email" : "[email protected]",
"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"
}'
Пример ответа
HTTP status 200 OK
{
"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"
}
Метод служит для выплат средств на баланс или банковскую карту фрилансера (банковская карта должна быть успешно привязана к аккаунту фрилансера в личном кабинете). Для выплаты на банковскую карту будут созданы три транзакции: снятие суммы с баланса заказчика, зачисление её на баланс исполнителя и вывод на банковскую карту исполнителя. Данным методом можно оплатить как уже созданную задачу, так и создать новую (если передаётся ID задачи, то именно данная задача будет оплачена, если не передаётся, то будет создана и оплачена новая задача).
Наличие параметра card_id
(идентификатор карты) определяет куда будут переведены средства:
- Если параметр
card_id
не указан, то выплата будет произведена на баланс фрилансера (т.е. будут выполнены 2 транзакции: снятие суммы с баланса заказчика и зачисление её на баланс фрилансера). В этом случае минимальная сумма выплаты равна 1 RUB/1 EUR/1 USD. В дальнейшем фрилансер сможет вывести перечисленные средства из своего личного кабинета. - Если параметр
card_id
указан, то выплата будет выполнена на банковскую карту фрилансера.
Ограничения для выплаты на банковскую карту
- Сумма выплаты должна быть больше 1000 RUB/50 EUR/50 USD (выплата на карту менее 1000 RUB/ 50 EUR/ 50 USD доступна только из личного кабинета исполнителя в Solar Staff, так как при этом будет снята комиссия в размере 50 RUB/2 EUR/2 USD соответственно).
- Сумма выплаты должна быть меньше 6 500 EUR / 6500 USD / 450 000 RUB в календарный месяц (c 1 числа текущего месяца по текущее время). При превышении данного лимита будет возвращаться ошибка 302: Freelancer exceeded the allowed amount of transactions to the card for 30 days
.
- Количество выплат в день не ограничено.
Если при выплате на банковскую карту возникли какие-либо ошибки на стороне банка, выдавшего карту, и деньги не дошли (или дошли не все), то оставшиеся средства будут зачислены на баланс фрилансера. Пример ошибки на стороне банка: превышен суточный лимит переводов на карту. Если же по каким-то причинам банк не примет перевод (целиком либо какую-то часть), выплата получит неуспешный статус. Данная проблема возникает крайне редко и решается в индивидуальном порядке.
Запрос
HTTP запрос
Параметры
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
action |
string |
Да | Действие. В данном методе должно быть значение payout . |
client_id |
integer |
Да | ID компании. Отображается в разделе Компания -> Интеграция. |
signature |
integer |
Да | Подпись запроса. Подробнее о формировании подписи см. здесь. |
email |
string |
Один из параметров email или worker_id является обязательным |
Email фрилансера |
worker_id |
integer |
Один из параметров email или worker_id является обязательным |
ID фрилансера (возвращается в метода создания или поиска фрилансера). |
task_id |
integer |
Нет | ID задачи. Если параметр не передаётся, то будет создана (и сразу оплачена) новая задача. Если задача с таким ID будет найдена, то она будет оплачена. |
merchant_transaction |
string |
Да | ID транзакции. Допустимые символы [a-z0-9] количеством до 64 символов. |
card_id |
integer |
Нет | ID банковской карты. Если параметр не передан или передан некорректно, то выплата будет выполнена на баланс фрилансера. |
currency |
string |
Да | Код валюты заказчика |
amount |
integer |
Да | Стоимость задачи. Данный параметр определяет сумму "на руки" фрилансеру. Сумма с комиссией Solar Staff посчитается автоматически и будет отражена при ответе в параметре real_amount . |
todo_type |
string |
Нет | Код услуги, закрепленный за вами при подключении к Solar Staff API. Если при выплатах вы не используете специфичные коды (вам достаточно кода 20 "Управление размещением медийной рекламы"), то можете не передавать данный параметр. Если при подключении для вас было выбрано несколько различных кодов, то при каждом запросе вам необходимо передавать необходимый код, например, 65 "Tехническая поддержка программного обеспечения" |
todo_attributes |
string |
Да | Атрибут выбранной услуги (для передачи нескольких значений укажите их последовательно через точку с запятой ";", даже если значения атрибутов пустые. Например, http://some.domain.com;; ). Значение данного параметра пойдет в месячный итоговый отчет. При работе с АПИ по стандартному коду услуги (20 "Управление размещением медийной рекламы") должен содержать URL-адрес площадки размещения рекламы. |
task_title |
string |
Нет | Название задачи. В названии и описании задачи разрешены только буквы и следующие специальные символы: - , . : ; ( ) _ " № % # @ ^ « » |
task_description |
string |
Нет | Описание задачи |
first_name |
string |
Нет | Имя фрилансера. Параметр обязателен для выплат в рублях на карты не российских банков, если он не заполнен в аккаунте фрилансера. |
middle_name |
string |
Нет | Отчество фрилансера. Параметр обязателен для выплат в рублях на карты не российских банков, если он не заполнен в аккаунте фрилансера. |
last_name |
string |
Нет | Фамилия фрилансера. Параметр обязателен для выплат в рублях на карты не российских банков, если он не заполнен в аккаунте фрилансера. |
zip |
string |
Нет | Индекс фрилансера. Параметр обязателен для выплат в рублях на карты не российских банков, если он не заполнен в аккаунте фрилансера. |
city |
string |
Нет | Город фрилансера. Параметр обязателен для выплат в рублях на карты не российских банков, если он не заполнен в аккаунте фрилансера. |
address |
string |
Нет | Адрес фрилансера. Параметр обязателен для выплат в рублях на карты не российских банков, если он не заполнен в аккаунте фрилансера. |
Ответ
Название свойства | Тип | Описание |
---|---|---|
currency |
string |
Название валюты заказчика |
transaction_id |
integer |
ID транзакции |
task_id |
integer |
ID задачи |
status |
string |
Статус выплаты. |
status_id |
integer |
ID статуса выплаты. |
payout_amount |
integer |
Сумма выплаты |
payout_currency |
string |
Валюта выплаты |
payout_exchange |
float |
Курс конвертации выплаты. Поле возвращается только если выплата выполнялась на платежный инструмент. Если выплата выполнялась на баланс пользователя, то данного параметра не будет в ответе. При этом, если фрилансер в настройках аккаунта указал, что все выплаты через API должны оставаться на балансе, а при вызове запроса были переданы данные платежного срдества, то выплата все равно останется на балансе. |
real_amount |
float |
Стоимость оплаченных заказов в указанный интервал времени |
real_currency |
float |
Стоимость оплаченных заказов в указанный интервал времени |
real_details |
object |
Подробности выплаты |
real_details.amount |
integer |
Сумма выплаты, которая поступит фрилансера |
real_details.commission_amount |
integer |
Сумма комиссии |
card_id |
integer |
ID банковской карты, если выплата выполнялась на банковскую карту |
merchant_transaction |
string |
ID транзакции |
paid_at |
datetime |
Дата выплаты. |
Создать выплату на электронный кошелек
Пример запроса
curl --location
--request POST 'https://api.solar-staff.com/v1/payment' \
--data-raw '{
"action" : "payout_epayments",
"email" : "[email protected]",
"wallet_number" : "001-123456",
"currency" : "RUB",
"amount" : 3000,
"todo_type" : 20,
"todo_attributes" : "http://some.domain.com",
"task_id" : 12345,
"merchant_transaction" : "ASD123",
"task_title" : "Some task title",
"task_description" : "Some task description",
"client_id" : 1,
"signature" : "xxxxxxxxxxxxxxxxx"
}'
Пример ответа
HTTP status 200 OK
{
"currency": "RUB",
"transaction_id" : 234,
"task_id": 567,
"status": "Success",
"status_id": 2,
"payout_amount": 3000,
"payout_currency": "RUB",
"payout_exchange": 1,
"real_amount": 3000,
"real_currency": "RUB",
"real_details": [
"amount": 3000,
"commission_amount": 360
],
"wallet_number": "001-123456",
"merchant_transaction": "IN123456789",
"paid_at": "2018-01-01 12:45:10"
}
Метод служит для выполнения выплат на различные типы электронных кошельков: Qiwi или WMZ.
Количество выплат в день на стороне Solar Staff не ограничено. Выплата на WMZ может быть произведена в любой валюте. Конвертация произойдет по курсу ЦБ РФ (для рублей) и Европейского центрального банка (для долларов и евро) автоматически на момент инициализации выплаты.
Запрос
HTTP запрос
Параметры
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
action |
string |
Да | Действие. Различается в зависимости от типа электронного кошелька:
|
client_id |
integer |
Да | ID компании. Отображается в разделе Компания -> Интеграция. |
signature |
integer |
Да | Подпись запроса. Подробнее о формировании подписи см. здесь. |
email |
string |
Один из параметров email или worker_id является обязательным |
Email фрилансера |
worker_id |
integer |
Один из параметров email или worker_id является обязательным |
ID фрилансера (возвращается в метода создания или поиска фрилансера). |
task_id |
integer |
Нет | ID задачи. Если задача с таким ID будет найдена, то она будет оплачена, в противном случае в ответе будет содержаться сообщение с ошибкой о том, что задача не найдена. |
wallet_number |
string |
Да | Идентификатор электронного кошелька |
merchant_transaction |
string |
Да | ID транзакции. Допустимые символы [a-z0-9] количеством до 64 символов. |
currency |
string |
Да | Код валюты заказчика |
amount |
integer |
Да | Стоимость задачи. Данный параметр определяет сумму "на руки" фрилансеру. Сумма с комиссией Solar Staff посчитается автоматически и будет отражена при ответе в параметре real_amount . |
todo_type |
string |
Нет | Код услуги, закрепленный за вами при подключении к Solar Staff API. Если при выплатах вы не используете специфичные коды (вам достаточно кода 20 "Управление размещением медийной рекламы"), то можете не передавать данный параметр. Если при подключении для вас было выбрано несколько различных кодов, то при каждом запросе вам необходимо передавать необходимый код, например, 65 "Tехническая поддержка программного обеспечения" |
todo_attributes |
string |
Да | Атрибут выбранной услуги (для передачи нескольких значений укажите их последовательно через точку с запятой ";", даже если значения атрибутов пустые. Например, http://some.domain.com;; ). Значение данного параметра пойдет в месячный итоговый отчет. При работе с АПИ по стандартному коду услуги (20 "Управление размещением медийной рекламы") должен содержать URL-адрес площадки размещения рекламы. |
task_title |
string |
Нет | Название задачи. В названии и описании задачи разрешены только буквы и следующие специальные символы: - , . : ; ( ) _ " № % # @ ^ « » |
task_description |
string |
Нет | Описание задачи |
Ответ
Название свойства | Тип | Описание |
---|---|---|
currency |
string |
Название валюты заказчика |
transaction_id |
integer |
ID транзакции |
task_id |
integer |
ID задачи |
status |
string |
Статус выплаты. |
status_id |
integer |
ID статуса выплаты. |
payout_amount |
integer |
Сумма выплаты |
payout_currency |
string |
Валюта выплаты |
payout_exchange |
float |
Стоимость оплаченных заказов в указанный интервал времени |
real_amount |
float |
Стоимость оплаченных заказов в указанный интервал времени |
real_currency |
float |
Стоимость оплаченных заказов в указанный интервал времени |
real_details |
object |
Подробности выплаты |
real_details.amount |
integer |
Сумма выплаты, которая поступит фрилансера |
real_details.commission_amount |
integer |
Сумма комиссии |
wallet_number |
string |
Идентификатор электронного кошелька |
merchant_transaction |
string |
ID транзакции |
paid_at |
datetime |
Дата выплаты. |
Транзакции
Раздел содержит описание методов для получения данных о транзакциях.
Статусы транзакций
Доступные статусы транзакций:
Waiting for confirm
(ID=1) - выплата принята в обработку, вознаграждение еще не доставлено на выбранное платежное средство. Мониторинг и завершение выплаты производится администраторами Solar Staff.Success
(ID=2) - выплата принята, вознаграждение успешно доставлено на выбранное платежное средство. Зачисление на Qiwi- и WebMoney-кошельки мгновенно, на карты - до 6 банковских дней.Declined
(ID=3) - выплата на выбранное платежное средство не была совершена.Refunded
(ID=4) - статус дублирующей транзакции, созданной после отмены транзакции на вывод. Вознаграждение полностью возвращено на баланс исполнителя.Partially completed
(ID=5) - выплата произведена частично. Оставшаяся часть вознаграждения будет выводится на платежное средство до полного успеха, либо будет возвращена на баланс исполнителя, если ни один шлюз не сможет доставить оставшуюся часть вознаграждения.
Получить транзакции для аккаунта компании
Пример запроса
curl --location
--request POST 'https://api.solar-staff.com/v1/info' \
--data-raw '{
"action" : "transactions",
"client_id" : 466,
"signature" : "xxxxxxxxxxxxxxxxx",
"start_date" : "2018-01-01 00:00:00",
"finish_date" : "2018-01-31 23:59:59",
"page_size" : "100",
"page_num" : "1"
}'
Пример ответа
HTTP status 200 OK
{
"transaction_id": 34952,
"transaction_type": "up",
"task_id": 16006,
"currency": "RUB",
"amount": 1000,
"card":
{
"id":12333,
"number": "4234 29** **** 2567 "
},
"merchant_transaction": "IN123456789",
"status": "Success",
"status_id": 2,
"date": "2016-11-14 16:51:53",
"task_amount": 10,
"task_currency": 1,
"commission_amount": 1,
"freelancer_id": 123,
"merchant_txid": "321xxx123"
}
Метод используется для получения данных о транзакциях по балансу аккаунта компании.
Запрос
HTTP запрос
Параметры
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
action |
string |
Да | Действие. В данном методе должно быть значение transactions . |
client_id |
integer |
Да | ID компании. Отображается в разделе Компания -> Интеграция. |
signature |
integer |
Да | Подпись запроса. Подробнее о формировании подписи см. здесь. |
start_date |
datetime |
Да | Дата начала интервала |
finish_date |
datetime |
Да | Дата окончания интервала |
page_size |
integer |
Нет | Количество возвращаемых записей. По умолчанию значение 20 . |
page_num |
integer |
Нет | Номер страницы, которую необходимо показать в результате запроса. По умолчанию значение 1 . |
Ответ
Название свойства | Тип | Описание |
---|---|---|
transactions |
object |
Код валюты |
transactions.transaction_id |
integer |
ID транзакции |
transactions.transaction_type |
string |
Тип транзакции. Доступные значения:
|
transactions.task_id |
integer |
ID задачи. Список задач, поставленных на фрилансера, см. в личном кабинете аккаунта компании. |
transactions.invoice_number |
integer |
ID инвойса, если транзакция была на пополнение баланса заказчика |
transactions.currency |
string |
Валюта транзакции |
transactions.amount |
integer |
Стоимость транзакции с комиссией |
transactions.merchant_transaction |
string |
Номер транзакции или номер инвойса (для транзакций на пополнение). Номер транзакции возвращается также при вызове одного из запросов: payout, payout_qiwi или payout_webmoney. |
transactions.status |
string |
Статус транзакции |
transactions.status_id |
integer |
ID статуса транзакции |
transactions.date |
datetime |
Дата выполнения транзакции |
transactions.task_amount |
string |
Стоимость задачи (возвращается для транзакций - оплат задач) |
transactions.task_currency |
string |
Валюта задачи (возвращается для транзакций - оплат задач) |
transactions.commission_amount |
string |
Сумма комиссии (возвращается для транзакций - оплат задач) |
transactions.freelancer_id |
string |
ID фрилансера (возвращается для транзакций - оплат задач) |
transactions.merchant_txid |
string |
ID транзакции (возвращается для транзакций - оплат задач) |
pages |
integer |
Общее количество страниц |
previous_page |
integer |
Номер предыдущей страницы |
current_page |
integer |
Номер текущей страницы |
next_page |
integer |
Номер следующей страницы |
Получить данные о транзакции
Пример запроса
curl --location
--request POST 'https://api.solar-staff.com/v1/info' \
--data-raw '{
"action" : "transaction_status",
"client_id" : 466,
"signature" : "xxxxxxxxxxxxxxxxx",
"merchant_transaction" : "IN123456789"
}'
Пример ответа
HTTP status 200 OK
[
{
"transaction_id": 123,
"transaction_type": "down",
"task_id": 55,
"currency": "RUB",
"amount": 3360,
"card":
{
"id":55,
"number": "4234 29** **** 2567"
},
"wallet":
{
"id":12334,
"number": 79876543210
},
"merchant_transaction": "IN123456789",
"status": "Success",
"status_id": 2,
"date": "2016-11-14 16:51:53"
},...
]
Метод используется для получения данных о конкретной транзакции.
Запрос
HTTP запрос
Параметры
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
action |
string |
Да | Действие. В данном методе должно быть значение transaction_status . |
client_id |
integer |
Да | ID компании. Отображается в разделе Компания -> Интеграция. |
signature |
integer |
Да | Подпись запроса. Подробнее о формировании подписи см. здесь. |
merchant_transaction |
string |
Один из параметров обязателен: merchant_transaction или transaction_id |
Номер транзакции |
transaction_id |
integer |
Один из параметров обязателен: merchant_transaction или transaction_id |
ID транзакции |
Ответ
Название свойства | Тип | Описание |
---|---|---|
transaction_id |
integer |
ID транзакции |
transaction_type |
string |
Тип транзакции. Доступные значения:
|
task_id |
integer |
ID задачи |
currency |
string |
Валюта транзакции |
amount |
integer |
Сумма транзакции с комиссией. |
card |
object |
Данные банковской карты, если в транзакции была выплата на банковскую карту |
card.id |
integer |
ID банковской карты |
card.number |
string |
Номер банковской карты |
wallet |
object |
Данные электронного кошелька, если в транзакции была выплата на электронный кошелёк |
wallet.id |
integer |
ID электронного кошелька |
wallet.number |
string |
Номер электронного кошелька |
merchant_transaction |
string |
Номер транзакции |
status |
string |
Статус транзакции. Возможные статусы см. здесь. |
status_id |
integer |
ID статуса транзакции. Возможные статусы см. здесь. |
date |
datetime |
Дата выполнения транзакции |
Если запрашивается статус транзакции, отличной от той, что выводится с баланса исполнителя, то ответ также будет содержать информацию о статусе выплаты по задаче:
payout_status_id
- идентификатор статусаpayout_status
- строка с расшифровкой статуса.
Получить транзакции фрилансера
Пример запроса
curl --location
--request POST 'https://api.solar-staff.com/v1/workers' \
--data-raw '{
"action" : "worker_transactions",
"client_id" : 466,
"signature" : "xxxxxxxxxxxxxxxxx",
"start_date" : "2018-01-01 00:00:00",
"finish_date" : "2018-01-31 23:59:59",
"email" : "[email protected]",
"page_size" : "100",
"page_num" : "1"
}'
Пример ответа
HTTP status 200 OK
{
"transactions": [
{
"transaction_id": 34952,
"transaction_type": "up",
"task_id": 16006,
"currency": "RUB",
"amount": 1000,
"card":
{
"id":12333,
"number": "4234 29** **** 2567 "
},
"merchant_transaction": "IN123456789",
"status": "Success",
"status_id": 2,
"date": "2016-11-14 16:51:53"
},...
],
"pages": 20,
"previous_page": 1,
"current_page": 1,
"next_page": 2
}
Метод позволяет получить данные о транзакциях по балансу исполнителя. Набор данных будет содержать всю информацию о выплатах и выводах с баланса фрилансера за запрашиваемый период.
Запрос
HTTP запрос
Параметры
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
action |
string |
Да | Действие. В данном методе должно быть значение worker_transactions . |
client_id |
integer |
Да | ID компании. Отображается в разделе Компания -> Интеграция. |
signature |
integer |
Да | Подпись запроса. Подробнее о формировании подписи см. здесь. |
email |
string |
Один из параметров email или worker_id является обязательным |
Email фрилансера. |
worker_id |
integer |
Один из параметров email или worker_id является обязательным |
ID фрилансера (возвращается в метода создания или поиска фрилансера). |
start_date |
datetime |
Да | Дата начала интервала |
finish_date |
datetime |
Да | Дата окончания интервала |
page_size |
integer |
Нет | Количество возвращаемых записей. По умолчанию значение 20 . |
page_num |
integer |
Нет | Номер страницы, которую необходимо показать в результате запроса. По умолчанию значение 1 . |
Ответ
Название свойства | Тип | Описание |
---|---|---|
transactions |
object |
Код валюты |
transactions.transaction_id |
integer |
ID транзакции |
transactions.transaction_type |
string |
Тип транзакции. Доступные значения:
|
transactions.task_id |
integer |
ID задачи. Список задач фрилансера см. в личном кабинете аккаунта компании. |
transactions.currency |
string |
Валюта транзакции |
transactions.amount |
integer |
Стоимость транзакции с комиссией |
transactions.card или transactions.wallet |
object |
Данные о платежном инструменте, на который были выведены средства |
transactions.card.id или transactions.wallet.id |
integer |
ID платежного инструмента, на который были выведены средства |
transactions.card.number или transactions.wallet.number |
string |
Номер платежного инструмента, на который были выведены средства |
transactions.merchant_transaction |
string |
Номер транзакции, отправленное параметром при вызове одного из запросов: payout, payout_qiwi или payout_webmoney. |
transactions.status |
string |
Название статуса транзакции. Возможные статусы см. здесь. |
transactions.status_id |
integer |
ID статуса. Возможные статусы см. здесь. |
transactions.date |
datetime |
Дата выполнения транзакции |
pages |
integer |
Общее количество страниц |
previous_page |
integer |
Номер предыдущей страницы |
current_page |
integer |
Номер текущей страницы |
next_page |
integer |
Номер следующей страницы |