NAV Navbar

Обзор

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. Процесс формирования подписи запроса описан здесь.

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

Формирование подписи запроса

Подпись запроса - это HEX-представление SHA1-хэша от специально сформированной строки (например, строка вида 19861f409729a42c2a8c0c636cfa0a4fb845e8fb).

Кодировка подписываемой строки - UTF-8.

Строка состоит из всех параметров запроса, отсортированных по возрастанию их названий (ключей) и "соли" (salt) запроса. Названия параметров должны быть указаны в нижнем регистре и должны соответствовать регулярному выражению: [a-z_]{1,}. Параметры разделяются между собой символом "точка с запятой" (;). Параметры, значение которых пустая строка, не должны присоединяться к подстроке.

Параметры в строке должны иметь вид: param_name:param_value;...;paramN_name:paramN_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.

Для формирования подписи необходимо:

  1. Отсортировать массив названий параметров. В данном случае порядок будет следующим: action, client_id.
  2. Сформировать строку подписи добавив значения параметров и соль: action:workers_list;client_id:6;1f0c1450e496ad73ecdf0b.
  3. Создать SHA-1 хэш от сформированной строки. В данном примере он будет вида: c66640d01f7395e7a519382cb27bb2014523a8b9.

В итоге, набор параметров для запроса будет дополнен подписью и будет иметь вид:

[
"client_id" : 6, "action" : "workers_list", "signature" : "19861f409729a42c2a8c0c636cfa0a4fb845e8fb" ]

Ответ от API

Ответ от API передаётся в формате JSON.

В ответе на запрос всегда присутствует набор следующих обязательных параметров:

Коды ошибок и их описание

Далее описаны все возможные коды ответов на запросы. Код ответа содержится в параметре 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 и выполнить наиболее популярные действия в системе:

Quickstart

Перед началом

Пример кода на 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, и при необходимости отметьте чек-бокс Разрешить выплаты из АПИ.

Обратите внимание, что во всех запросах необходимо передавать следующие обязательные параметры:

Подробнее см. раздел Авторизация.

Добавление фрилансера

Для добавления фрилансера в вашу команду выполните запрос создания фрилансера.

Адрес запроса: https://api.solar-staff.com/v1/workers

Имя метода: worker_create

Метод отправки запроса должен быть POST.

Список кодов специализаций фрилансера см. здесь.

В ответ будет возвращён JSON-объект с данными фрилансера.

Оплата задачи

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

Адрес запроса: https://api.solar-staff.com/v1/payment

Имя метода: payout

Метод отправки запроса должен быть POST.

В ответе будет возвращен JSON-объект с данными о выплате.

Получить данные о выплате

Для получения данных о выплатах используются следующие методы:

Для получения даннных о выплатах выбранному фрилансеру необходимы следующие данные:

Адрес запроса: 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). Возможные значения:
  • RUBEUR,
  • RUBUSD

Ответ

Название Тип Описание
pair string Валюты, для которых будет возвращен курс
rate_buy float Курс покупки
rate_sell float Курс продажи
date date Дата

Задачи

API включает в себя методы поиска и изменения статуса задач.

Статусы задач

Доступные статусы задач:

Статусы задач

Поиск задачи

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

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",
         "compensateWorkerServiceFee": true
    }'

Пример ответа

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 Нет Сумма в договоре. Парамтер обязательный, если в задаче более одного договора (несколько контрагентов). Для одного договора параметр необязательный.
compensateWorkerServiceFee boolean Нет Компенсация комиссии фрилансера на вывод средств. Если параметр не указан, то компенсация комиссии фрилансера будет применена.

Ответ

При успешном выполнении запроса возвращается следующий ответ:

Название свойства Тип Описание
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.

Порядок изменения статусов:

Задачи в любом другом статусе нельзя изменить через данный метод.

Полный список статусов задачи см. в блоке Статусы задач.

Запрос

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 Стоимость задачи с комиссией

Фрилансеры

Раздел содержит описание методов для управления фрилансерами:

Получение списка фрилансеров

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

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 Да Язык сообщения. Доступные значения:
  • ru - русский язык
  • en - английский язык.

Ответ

При успешном выполнении запроса метод возвращает список пользователей в объекте response.

Название свойства Тип Описание
status string Статус фрилансера. Доступные значения:
  • Приглашен (ID=1) - фрилансер ещё не зарегистрирован
  • Зарегистрирован (ID=2) - фрилансер зарегистрирован
  • Отклонен (ID=3) - фрилансер удален из команды заказчика
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 Тип налогового документа. Доступные значения различаются в зависимости от страны фрилансера:
  • Россия - необходимо передать INN (должен состоять из 12 цифр)
  • Белоруссия - необходимо передать UNP (должен состоять из 9 цифр)
  • Аргентина - необходимо передать CUIT/CUIL (должен состоять из 11 цифр)
  • Боливия - необходимо передать один из параметров NIT (должен состоять из 15 цифр), CI (должен состоять из 8 цифр) или CE (должен иметь вид E-12345612)
  • Бразилия - необходимо передать один из параметров CPF (должен иметь вид 450.539.758-09), CNPJ (должен иметь вид 55.694.732/0001-10)
  • Чили - необходимо передать RUT (должен иметь вид 33444111-3 или 334441113)
  • Китай - необходимо передать PASS
  • Колумбия - необходимо передать один из параметров NIT (должен иметь вид 901.458.652-7 или 901458.6527), CC (должен иметь вид 1.004.922.993 или 1004922993), CE (максимум - 12 символов), PASS (максимум - 12 символов) или PEP (максимум - 15 символов)
  • Коста-Рика - необходимо передать один из параметров CI (должен состоять из 9 цифр), CJ (должен состоять из 10 цифр и начинаться с 3) или CR (должен состоять из 11 - 22 символов)
  • Доминиканская Республика - необходимо передать один из параметров RN (первая цифра должна быть 1, 4 или 5), CE (должен состоять из 11 цифр) или PASS (должен состоять из 7 - 12 символов)
  • Эквадор - необходимо передать один из параметров CI (должен иметь вид 1.004.922.993 или 1004922993), RUC (должен состоять из 13 цифр), CE или PASS (должен состоять из 7 - 12 символов)
  • Панама - необходимо передать один из параметров RUC (должен состоять из 7 - 12 символов), CE или PASS
  • Парагвай - необходимо передать один из параметров RUC (должен состоять из 8 цифр) или CI (должен состоять из 7 цифр)
  • Перу - необходимо передать один из параметров RUC (должен состоять из 11 цифр), CE (должен состоять из 4 - 12 цифр), PASS (минимум - 4 символа) или DNI (должен состоять из 8 цифр или 11 символов)
  • Танзания - необходимо передать один из параметров NI, PASS или MIL
  • Уганда - необходимо передать один из параметров NI, PASS или MIL
  • Уругвай - необходимо передать один из параметров CI (должен состоять из 8 цифр), RUT (должен состоять из 12 цифр), DE (должен иметь вид 33475876) или PASS (должен иметь вид NNFE4379)
  • TAXID для всех остальных стран
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). Доступные значения различаются в зависимости от страны фрилансера:
  • Россия - необходимо передать INN (должен состоять из 12 символов)
  • Белоруссия - необходимо передать UNP
  • Аргентина - необходимо передать CUIT/CUIL
  • Боливия - необходимо передать один из параметров NIT, CI или CE
  • Бразилия - необходимо передать один из параметров CPF, CNPJ
  • Чили - необходимо передать RUT
  • Китай - необходимо передать PASS
  • Колумбия - необходимо передать один из параметров NIT, CC, CE, PASS или PEP
  • Коста-Рика - необходимо передать один из параметров CI, CJ или CR
  • Доминиканская Республика - необходимо передать один из параметров RN, CE или PASS
  • Эквадор - необходимо передать один из параметров CI, RUC, CE или PASS
  • Панама - необходимо передать один из параметров RUC, CE или PASS
  • Парагвай - необходимо передать один из параметров RUC или CI
  • Перу - необходимо передать один из параметров RUC, CE, PASS или DNI
  • Танзания - необходимо передать один из параметров NI, PASS или MIL
  • Уганда - необходимо передать один из параметров NI, PASS или MIL
  • Уругвай - необходимо передать один из параметров CI, RUT, DE или PASS
  • TAXID для всех остальных стран

Ответ

При успешном выполнении запроса метод возвращает объект созданного пользователя. Также ответ сервера содержит поле 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 статуса верификации. Возможные статусы:
  • Инициализирована привязка (ID=1) - открыт терминал привязки банковской карты
  • Привязана (ID=4) - банковская карта добавлена в аккаунт фрилансера
  • Заблокирована (ID=5) - банковская карта заблокирована
  • Не привязана (ID=6) - банковская карта не добавлена
  • Удалена (ID=7) - банковская карта была удалена
  • Дубликат (ID=8) - подобная карта уже существует в системе (не обязательно у данного исполнителя) и её нельзя привязать повторно, вам необходимо использовать другую карту или привязать новую.
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. Если код валюты будет заполнен, то в терминале поле выбора валюты карты будет предзаполнено и у исполнителя не будет возможности выбрать иную. Доступные значения:
  • RUB - российские рубли
  • EUR - евро
  • USD - доллары
language string Нет Язык терминала. Если параметр не передать, то язык терминала будет выбран в зависимости от текущей локали браузера фрилансера. Доступные значения:
  • RU - руский язык
  • EN - английский язык
redirect_url string Нет URL-адрес, на который будет переадресован фрилансер при отмене ввода данных, либо при успешном вводе и сохранении данных в терминале. Для указания языка терминала добавьте в конец ссылки параметр lang со значением ru для русского языка или en для английского.

Ответ

Название свойства Тип Описание
card_id integer ID добавленной банковской карты
currency string Код валюты
verify_status_id integer ID статуса верификации. Возможные статусы:
  • Инициализирована привязка (ID=1) - открыт терминал привязки банковской карты
  • Привязана (ID=4) - банковская карта добавлена в аккаунт фрилансера
  • Заблокирована (ID=5) - банковская карта заблокирована
  • Не привязана (ID=6) - банковская карта не добавлена
  • Удалена (ID=7) - банковская карта была удалена
  • Дубликат (ID=8) - подобная карта уже существует в системе (не обязательно у данного исполнителя) и её нельзя привязать повторно, вам необходимо использовать другую карту или привязать новую.
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 статуса верификации. Возможные статусы:
  • Инициализирована привязка (ID=1) - открыт терминал привязки банковской карты
  • Привязана (ID=4) - банковская карта добавлена в аккаунт фрилансера
  • Заблокирована (ID=5) - банковская карта заблокирована
  • Не привязана (ID=6) - банковская карта не добавлена
  • Удалена (ID=7) - банковская карта была удалена
  • Дубликат (ID=8) - подобная карта уже существует в системе (не обязательно у данного исполнителя) и её нельзя привязать повторно, вам необходимо использовать другую карту или привязать новую.
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 (идентификатор карты) определяет куда будут переведены средства:

Ограничения для выплаты на банковскую карту - Сумма выплаты должна быть больше 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 Да Действие. Различается в зависимости от типа электронного кошелька:
  • payout_epayments для выплаты на кошелек ePayments
  • payout_webmoney для выплаты на WebMoney
  • payout_qiwi для выплаты на кошелёк QIWI
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 Дата выплаты.

Транзакции

Раздел содержит описание методов для получения данных о транзакциях.

Статусы транзакций

Доступные статусы транзакций:

Получить транзакции для аккаунта компании

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

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 Тип транзакции. Доступные значения:
  • down - списание
  • up - пополнение
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 Тип транзакции. Доступные значения:
  • down - списание
  • up - пополнение
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 Дата выполнения транзакции

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

Получить транзакции фрилансера

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

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 Тип транзакции. Доступные значения:
  • down - списание
  • up - пополнение
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 Номер следующей страницы