Обзор
API используется для того, чтобы интегрировать возможности сервиса Solar Staff в ваш проект. Описание API предназначено для разработчиков и включает в себя детальное описание всех доступных запросов.
Общая информация
Solar Staff API включает в себя методы работы с заданиями и фрилансерами. После регистрации в качестве администратора компании, вы можете приглашать и создавать фрилансеров, управлять заданиями, инициировать выводы средств на платежные инструменты фрилансеров.
В быстром старте описан наиболее популярный сценарий использования API.
API работает по протоколу HTTP и представляет собой набор методов, с помощью которых совершаются запросы и возвращаются ответы для каждой операции. Все ответы приходят в виде JSON структур. Для работы с API вы можете использовать любую удобную технологию и язык. В данном руководстве приведены примеры работы с API на языке PHP.
Для удобства разработчиков Solar Staff предоставляет песочницу (sandbox), где вы можете тестировать ваше решение до его развёртывания в production. Для начала работы с песочницей обратитесь в отдел продаж Solar Staff.
Основной URL
Текущая версия API - v2
. Так, все ссылки на запросы к API в данной документации включают обязательный основной URL:
https://my.solarstaff.com/api
В заголовке любого запроса необходимо передавать следующее: Accept: application/json
.
Авторизация
Для аутентификации используется JWT токен. После получения JWT токена его необходимо передавать в заголовке запросов: Authorization: Bearer TOKEN_HERE
.
Если у вас несколько компаний, то в заголовке запросов можно передавать параметр x-company-id
- ID компании. В этом случае можно параллельно выполнять запросы для всех компаний без обновления токена - передавая в каждый запрос ID компании.
Процесс аутентификации имеет вид:
Запрос JWT токена
Пример запроса
curl --location
--request POST 'https://my.solarstaff.com/api/login' \
--data-raw '{
"username": "Ivan",
"password": "123123",
"code": 0
}'
Пример ответа Если параметр code был передан корректно или у пользователя не настроена двухфакторная аутентификация:
HTTP status 200 OK
{
"token": "eyJhbGciOiJIUzUxMiIsI...",
"refreshToken": "c84f18a2-c6c7-4850-be15-93f9cbaef3b3"
}
Если параметр code не был передан, а у пользователя настроена двухфакторная аутентификация:
HTTP status 200 OK
{
"2FA": {
"type": "SMS" | "Google",
"number": "+8279823472"
}
}
Запрос позволяет получить JWT токен, который используется для аутентификации для всех остальных запросов.
Запрос
HTTP запрос
Тело запроса
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
username |
string |
Да | Имя пользователя |
password |
string |
Да | Пароль |
code |
string |
нет | Код двухфакторной аутентификации. В зависимости от настроек профиля пользователя:
|
Ответ
Название свойства | Тип | Описание |
---|---|---|
token |
string |
JWT токен |
refreshToken |
string |
JWT токен, который используется для обновления токена |
Обновление JWT токена
Пример запроса
curl --location
--request POST 'https://my.solarstaff.com/api/token/refresh' \
--data-raw '{
"refreshToken": "c84f18a2-c6c7-4850-be15-93f9cbaef3b3"
}'
Пример ответа
HTTP status 200 OK
{
"token": "eyJhbGciOiJIUzUxMiIsI...",
"refreshToken": "c84f18a2-c6c7-4850-be15-93f9cbaef3b3"
}
Запрос позволяет получить обновленный JWT токен, который используется для аутентификации для всех остальных запросов.
Запрос
HTTP запрос
Тело запроса
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
refreshToken |
string |
Да | JWT токен |
Ответ
Название свойства | Тип | Описание |
---|---|---|
token |
string |
JWT токен |
refreshToken |
string |
JWT токен, который используется для обновления токена |
Ответ от API
Ответ от API передаётся в формате JSON
.
Коды ошибок и их описание
Далее описаны все возможные коды ответов на запросы.
HTTP Код | Тип ошибки | Описание |
---|---|---|
200 | Success | Запрос выполнен успешно |
401 | Error: Unauthorized | Неверные данные для аутентификации |
403 | Forbidden | Доступ запрещен, ошибка авторизации |
422 | Validation error | Ошибка валидации. Подробности ошибки содержатся в в теле ответа в виде {fieldName: errorText} |
409 | Error while executing request | Ошибка в процессе выполнения запроса. Подробности содержатся в теле ответа в виде {"error description"} |
Быстрый старт
В быстром старте описано как начать работу с Solar Staff API и выполнить наиболее популярные действия в системе:
Перед началом
Авторизация
Для аутентификации используется JWT токен. После получения JWT токена его необходимо передавать в заголовке запросов: Authorization: Bearer TOKEN_HERE
.
Для запроса JWT токена необходимо выполнить запрос генерации JWT токена, передав логин, пароль и при необходимости код 2FA аутентификаации.
Адрес и тип запроса: POST https://my.solarstaff.com/api​/login
Далее полученный JWT токен необходимо передавать в заголовке всех дальнейших запросов.
Подробнее см. раздел Авторизация.
Сценарии работы с API
Основные сценарии использования API различаются в зависимости от способа работы с фрилансерами:
- Вы работаете с фрилансерами, которые имеют возможность зарегистрироваться и выполнять основные операции в сервисе Solar-staff.
- Ваши фрилансеры не будут создавать аккаунты в сервисе Solar-staff и вы будете инициировать выплаты им самостоятельно.
Если ваши фрилансеры самостоятельно зарегистрируются и будут работать в сервисе Solar-staff, то рекомендуемые шаги следующие:
- Найти или пригласить фрилансера. Приглашение со ссылкой на регистрацию будет отправлено на email фрилансера. Для проверки статуса регистрации необходимо выполнить запрос поиска фрилансера с фильтром по email - для пользователей, выполнивших и подтвердивших регистрацию, параметр isRegistered должен быть true. Далее фрилансер самостоятельно должен выполнить верификацию.
- Создать новую задачу.
- Фрилансер подтверждает и выполняет задачу.
- Принять задачу.
- Оплатить задачу. Оплата за задачу будет списана с баланса заказчика и переведена на баланс фрилансера.
Если фрилансеры, работающие с вами, не будут самостоятельно работать в сервисе Solar-staff (изменять статусы задач, добавлять платежные инструменты или выводить полученную оплату за задачи), то рекомендуемые шаги следующие:
- Найти или пригласить фрилансера. Фрилансеру необходимо будет заполнить данные и подтвердить регистрацию в сервисе, пройдя по ссылке из полученного письма.
- Создать новую задачу
- Последовательно изменить статусы задачи: принята фрилансером, выполнена.
- Принять задачу.
- Оплатить задачу.
- Найти платежный инструмент фрилансера или добавить новый. Добавить новый платежный инструмент может только фрилансер. Для добавления платежного инструмента необходимо отправить код подтверждения операции фрилансеру и далее сгенерировать ссылку на терминал, где фрилансер сможет ввести данные нового платежного инструмента.
- Создать выплату на платежный инструмент фрилансера за оплаченную задачу.
Приглашение фрилансера
Для добавления фрилансера в вашу команду выполните запрос приглашения фрилансера.
Адрес и тип запроса: POST https://my.solarstaff.com/api/customer/freelancers
При успешном выполнении запроса возвращается пустой ответ с кодом 200.
Создание задачи
Для создания задачи используется данный запрос, куда необходимо передать все обязательные параметры задачи: категорию, атрибуты, название, описание и стоимость.
Адрес и тип запроса: POST https://my.solarstaff.com/api​/tasks
При успешном выполнении запроса возвращается пустой ответ с кодом 200.
Изменение статуса задачи
Жизненный цикл задачи имеет вид:
- создать задачу
- принять задачу в работу
- выполнить задачу
- принять/отклонить результат работы
- оплатить задачу
При работе через API необходимо все данные шаги выполнить последовательно. Для оплаты задачи используется отдельный запрос (оплата выполняется только на баланс фрилансера). Все остальные переходы между статусами выполняются запросом изменения статуса задач. То есть, последовательно необходимо выполнить запрос для следующих статусов:
- принять задачу в работу (
ID=2
) - выполнить задачу (
ID=3
) - принять результат работы (
ID=4
)
Адрес и тип запроса: PUT https://my.solarstaff.com/api/customer/tasks/{taskId||uuid}
При успешном выполнении запроса возвращается пустой ответ с кодом 200.
Оплата задачи
Для оплаты задачи используется данный запрос, куда необходимо передать только ID задачи.
Адрес и тип запроса: POST https://my.solarstaff.com/api/customer/tasks/pay
При успешном выполнении запроса возвращается пустой ответ с кодом 200.
Задачи
API включает в себя запросы для управления задачами.
Статусы задач
Доступные статусы задач в системе (на схеме только основные статусы, полный список статусов в таблице ниже):
Название статуса | ID | Описание | Инициатор перевода в статус |
---|---|---|---|
Не подтверждена |
ID=1 |
Задача создана | Заказчик |
В работе |
ID=2 |
Фрилансер принял задачу в работу | Фрилансер |
Проверка заказчиком |
ID=3 |
Фрилансер выполнил задачу и теперь она ожидает приёмки заказчика | Фрилансер |
Ждет оплату |
ID=4 |
Задача принята заказчиком и ожидает оплаты | Заказчик |
Завершена |
ID=5 |
Задача оплачена | Заказчик |
Отклонена исполнителем |
ID=6 |
Фрилансер отклонил задачу | Фрилансер |
Отклонена заказчиком |
ID=8 |
Заказчик отклонил задачу, выполненную фрилансером | Заказчик |
Ждет подтверждения отмены от фрилансера |
ID=11 |
Заказчик отклонил задачу и далее ожидается подтверждение отмены от фрилансера | Заказчик |
В очереди на оплату |
ID=12 |
Заказчик инициировал оплату, но оплата еще в процессе. После обработки статус задачи автоматически изменится на Завершена (ID=5 ). Если задача находится в этом статусе слишком долго, обратитесь, пожалуйста, в тех. поддержку |
Заказчик |
Инициирован спор |
ID=13 |
Фрилансер нажал Оспорить задачу и ожидает ответа от заказчика | Фрилансер |
Согласование заказчиком |
ID=14 |
Если фрилансер не выполнил задачу до наступления дедлайна, заказчик должен выбрать что делать дальше: продлить дедлайн или отменить задачу | Автоматически по наступлению дедлайна |
Согласование изменений |
ID=16 |
Заказчик предложил изменить какие-то параметры задачи и ждет ответа от фрилансера | Заказчик |
Управление задачами
Раздел включает запросы получения, создания задач и изменения статуса задач.
Получить список задач
Пример запроса
curl -X GET "https://my.solarstaff.com/api/customer/tasks?filter[creatorId]=123"
-H "accept: */*"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ..."
Пример ответа
HTTP status code: 200 OK
{
"items": [
{
"attributes":: {
"id": 78,
"title": "Типы 3D-визуализации",
"titleEn": "3D-visualisation types",
"description": "Description",
"descriptionEn": "Description",
"type": "multiselect",
"attrTypeId": "18",
"values": [
{
"title": "Текстурирование",
"titleEn": "Texturing",
"id": 63,
}
]
"options": [
{
"id": 59,
"value": "Low poly",
"valueEn": "Low poly",
}
]
}
],
"category": {
"id": 20,
"title": "Управление размещением медийной рекламы",
"titleEn": "ATL advertising management",
"titleDoc": "Услуги по управлению размещением рекламных материалов на интернет сайтах",
"titleDocEn": "Services on managing advertising materials' placement at websites"
},
"parentCategory": {
"id": 2,
"title": "Интернет-реклама",
"titleEn": "Internet advertising"
},
"commissionAmount": 7.29,
"commissionPercent": 9,
"copyright": false,
"createType": "API",
"currency": {
"currency": "EUR",
"id": 3
},
"customer": {
"id": 2955,
"title": "ааап"
},
"creator": {
"id": 100740,
"fullName": "Иван Иванов"
},
"worker": {
"id": 100871,
"email": "[email protected]",
"firstName": "Александр",
"lastName": "Иванов",
"isVerified": true
},
"dateCreated": "2021-08-06 11:17:13",
"dateAccepted": null,
"dateEnd": "2021-08-07 14:17:13",
"dateFinished": null,
"datePaid": "2021-08-06 14:17:13",
"datePayAt": null,
"documentDate": "2021-08-06 14:17:13",
"description": "Some task description",
"uuid": "123e4567-e89b-12d3-a456-426655440000",
"files": [
{
"id": 252479,
"name": "0cbb62da64de73d3bb82b366d37b573f.pdf",
"typeId": 5,
"ownerId": 100556
}
],
"id": 583689,
"needReport": false,
"price": 81,
"state": 5,
"title": "freel tailand",
"deadline": {
"type": 0,
"triggerDate": null,
"isComingUp": false
},
"hold": {
"type": "without_hold",
"isActive": false
},
"insurance": {
"status": 0
},
"group": {
"id": 654,
"title": "группа 654"
},
"messageCount": 0,
"shareCommission": 1,
"sharedCommission": 10,
"activeDispute": null,
"activeChangesetId": null
}
]
"pagination": {
"count": 20,
"total": 102,
"perPage": 20,
"page": 1,
"pages": 6
}
}
Метод используется для поиска задач по различным фильтрам.
Запрос
HTTP запрос
Параметры запроса
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
filter[creatorId] |
integer |
Нет | ID пользователя, создавшего задачу |
filter[workerId] |
integer |
Нет | ID исполнителя. Для получения списка фрилансеров используйте данный запрос |
filter[companyId] |
integer |
Нет | ID компании. Для получения списка компаний используйте данный запрос |
filter[dateCreatedFrom] |
string |
Нет | Дата создания задачи (начало интервала дат). Формат - YYYY-MM-DD (например, 2020-09-03 ), время в этом случае будет считаться 00:00:00 |
filter[dateCreatedTo] |
string |
Нет | Дата создания задачи (окончание интервала дат). Формат - YYYY-MM-DD (например, 2020-09-03 ), время в этом случае будет считаться 23:59:59 |
filter[dateEndFrom] |
string |
Нет | Дата дедлайна задачи (начало интервала дат). Формат - YYYY-MM-DD (например, 2020-09-03 ), время в этом случае будет считаться 00:00:00 |
filter[dateEndTo] |
string |
Нет | Дата дедлайна задачи (окончание интервала дат). Формат - YYYY-MM-DD (например, 2020-09-03 ), время в этом случае будет считаться 23:59:59 |
filter[dateFinishedFrom] |
string |
Нет | Дата выполнения задачи (начало интервала дат). Формат - YYYY-MM-DD (например, 2020-09-03 ), время в этом случае будет считаться 00:00:00 |
filter[dateFinishedTo] |
string |
Нет | Дата выполнения задачи (окончание интервала дат). Формат - YYYY-MM-DD (например, 2020-09-03 ), время в этом случае будет считаться 23:59:59 |
filter[dateReportFrom] |
string |
Нет | Дата генерации акта (начало интервала дат). Формат - YYYY-MM-DD (например, 2020-09-03 ), время в этом случае будет считаться 00:00:00 |
filter[dateReportTo] |
string |
Нет | Дата генерации акта (окончание интервала дат). Формат - YYYY-MM-DD (например, 2020-09-03 ), время в этом случае будет считаться 23:59:59 |
filter[dateAcceptedFrom] |
string |
Нет | Дата принятия задачи заказчиком (начало интервала дат). Формат - YYYY-MM-DD (например, 2020-09-03 ), время в этом случае будет считаться 00:00:00 |
filter[dateAcceptedTo] |
string |
Нет | Дата принятия задачи заказчиком (окончание интервала дат). Формат - `YYYY-MM-DD (например, 2020-09-03), время в этом случае будет считаться 23:59:59` |
filter[datePaidFrom] |
string |
Нет | Дата оплаты задачи (начало интервала дат). Формат - YYYY-MM-DD (например, 2020-09-03 ), время в этом случае будет считаться 00:00:00 |
filter[datePaidTo] |
string |
Нет | Дата оплаты задачи (окончание интервала дат). Формат - YYYY-MM-DD (например, 2020-09-03 ), время в этом случае будет считаться 23:59:59 |
filter[hasPayout] |
boolean |
Нет | Признак необходимости возврата только оплаченных задач. Если передан 0, то будут возвращены задачи без выплат (запрос для создания выплат см. здесь). |
filter[priceFrom] |
integer |
Нет | Стоимость задачи (начало интервала) |
filter[priceTo] |
integer |
Нет | Стоимость задачи (окончание интервала) |
filter[search] |
string |
Нет | Название или описание задачи. Поиск будет выполнен по любому тексту, входящему в название или описание. |
filter[state] |
integer |
Нет | Статус задачи. Может быть передано как одно, так и несколько значений (например, state[]=2&state[]=3 ) |
filter[currencyId] |
integer |
Нет | ID валюты. Возможные значения:
|
filter[groupId] |
integer |
Нет | ID группы задач |
filter[deadlineType] |
integer |
Нет | ID типа дедлайна. Возможные значения:
|
filter[workerTaxationStatus] |
integer |
Нет | Налоговый статус фрилансера. Возможные значения:
|
filter[hasCopyright] |
boolean |
Нет | Признак необходимости передачи интеллектуальных прав. |
filter[hasReport] |
boolean |
Нет | Признак необходимости наличия отчета для выполнения задачи. |
filter[payedBy] |
integer |
Нет | ID пользователя, который оплатил задачу |
sort |
string |
Нет | Атрибут, по которому будет выполнена сортировка. Возможные значения:
|
direction |
string |
Нет | Направление сортировки. Возможные значения:
|
page |
integer |
Нет | Номер страницы для постраничного вывода |
size |
integer |
Нет | Количество элементов на странице (по умолчанию значение - 20, максимальное значение - 500) |
Ответ
При успешном выполнении запроса возвращается следующий ответ:
Название свойства | Тип | Описание |
---|---|---|
items |
list |
Список элементов |
id |
integer |
ID задачи |
attributes |
object |
Атрибуты задачи |
attributes.id |
integer |
ID атрибута |
attributes.title |
string |
Название |
attributes.titleEn |
string |
Название атрибута на английском |
attributes.description |
string |
Описание атрибута |
attributes.descriptionEn |
string |
Описание атрибута на английском/td> |
attributes.type |
string |
Тип поля (например, multiselect) |
attributes.attrTypeId |
integer |
ID типа поля для атрибута |
attributes.values |
object |
Значение |
attributes.values.title |
string |
Значение атрибута |
attributes.values.titleEn |
integer |
Значение атрибута на английском |
attributes.values.id |
object |
ID значения атрибута |
attributes.options |
object |
Список значений (применимо только для полей со списком значений: select, multiselect) |
attributes.options.id |
integer |
ID значения атрибута |
attributes.options.value |
string |
Значение атрибута |
attributes.options.valueEn |
string |
Значение атрибута на английском |
category |
object |
Категория задачи |
category.id |
integer |
ID категории |
category.title |
string |
Название категории |
category.titleEn |
string |
Название категории (на английском) |
category.titleDoc |
string |
Название категории для отчетных документов |
category.titleDocEn |
string |
Название категории для отчетных документов (на английском) |
parentCategory |
object |
Категория задачи (родительская) |
category.id |
string |
ID категории задачи |
category.title |
string |
Название категории задачи |
category.title_en |
string |
Название категории задачи (на английском) |
commissionAmount |
float |
Сумма комиссии |
commissionPercent |
float |
Процент комиссии |
copyright |
string |
Признак передачи прав на интеллектуальную собственность |
createType |
string |
Способ создания задачи (через API или через интерфейс) |
currency |
object |
Валюта задачи |
currency.currency |
string |
Название валюты задачи |
currency.id |
integer |
ID валюты задачи |
customer |
object |
Заказчик |
customer.id |
string |
ID компании |
customer.title |
string |
Название компании |
creator |
object |
Пользователь, создавший задачу |
creator.id |
integer |
ID пользователя, создавшего задачу |
creator.fullName |
string |
ФИО пользователя, создавшего задачу |
worker |
object |
Фрилансер |
worker.id |
integer |
ID фрилансера (возвращается в запросе поиска фрилансера) |
worker.email |
string |
Email фрилансера |
worker.firstName |
string |
Имя фрилансера |
worker.lastName |
string |
Фамилия фрилансера |
worker.isVerified |
boolean |
Признак пройдена ли верификация у фрилансера |
dateCreated |
string |
Дата создания задачи |
dateAccepted |
string |
Дата принятия задачи заказчиком |
dateEnd |
string |
Дата дедлайна по задаче |
dateFinished |
string |
Дата выполнения задачи фрилансером |
datePaid |
string |
Дата получения оплаты задачи |
datePayAt |
string |
Дата, в которую платеж был инициирован |
documentDate |
string |
Дата генерации отчетных документов |
description |
string |
Описание задачи |
uuid |
uuid |
uuid задачи |
needReport |
boolean |
Необходим ли отчет по задаче |
price |
float |
Стоимость задачи |
state |
integer |
Статус задачи |
title |
string |
Название задачи |
hasPayout |
boolean |
Признак наличие выплаты по задаче |
files |
object |
Файлы, приложенные к задаче |
files.id |
string |
ИД файла |
files.name |
string |
Название файла |
files.typeId |
string |
Тип файла |
files.ownerId |
string |
ИД пользователя, добавившего файл (файлы могут добавлять и заказчики, и фрилансеры) |
deadline |
object |
Дедлайн |
deadline.type |
integer |
Тип дедлайна (мягкий 1 или жесткий 2 ) |
deadline.triggerDate |
string |
Дата дедлайна |
deadline.isComingUp |
boolean |
Признак того, что до дедлайна сталось менее 3 суток |
group |
object |
Группа задач |
group.id |
integer |
Ид группы задач |
group.title |
string |
Название группы задач |
hold |
object |
Холдирование средств |
hold.type |
string |
Тип холдирования |
hold.isActive |
boolean |
Активно ли холдирование средств для данной задачи |
insurance |
object |
Страховка |
insurance.status |
integer |
Наличие страховки |
messageCount |
integer |
Количество сообщений |
shareCommission |
boolean |
Признак разделения комиссии с фрилансером (если 0, то комиссия полностью оплачивается заказчиком, если 1, то 1% комиссии заказчика будет компенсирован фрилансером). |
sharedCommission |
string |
Сумма комиссии, которая будет компенсирована фрилансером (применимо только если shareCommission = 1 ) |
activeDispute |
boolean |
Есть ли открытый спор |
activeChangesetId |
integer |
Есть ли открытое согласование изменений по данной задаче |
issueCode |
string |
Ошибка при обработке задачи (например, если у заказчика включена безопасная сделка и он принял задачу, но денег для холдирования на балансе недостаточно) |
pagination |
list |
Постраничный вывод элементов |
pagination.count |
integer |
Количество возвращенных элементов |
pagination.total |
integer |
Всего элементов, доступных по запрашиваемому фильтру |
pagination.perPage |
integer |
Количество элементов на странице |
pagination.page |
integer |
Номер страницы |
pagination.pages |
integer |
Всего страниц |
Получить задачу по ID
Пример запроса
curl -X GET "https://my.solarstaff.com/api/customer/tasks/c6e8e285-1e0a-4a11-a676-89211c0adccc"
-H "accept: */*"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ..."
Пример ответа
HTTP status code: 200 OK
{
"attributes": [
{
"attribute": {
"title": "URL-адрес ",
"titleEn": "URL-address",
"type": "1"
},
"attributeType": {
"title": "Адрес сайта",
"titleEn": "URL adress ",
"type": "text"
},
"values": [
{
"title": "http://some.domain.com"
}
]
}
],
"messages": [],
"creator": {
"id": 100740,
"fullName": "Иван Иванов"
},
"worker": {
"id": 100871,
"email": "[email protected]",
"firstName": "Александр",
"lastName": "Иванов",
"isVerified": true
},
"files": [],
"links": [],
"messageCount": 0,
"attributes":: {
"id": 78,
"title": "Типы 3D-визуализации",
"titleEn": "3D-visualisation types",
"description": "Description",
"descriptionEn": "Description",
"type": "multiselect",
"attrTypeId": "18",
"values": [
{
"title": "Текстурирование",
"titleEn": "Texturing",
"id": 63,
}
]
"options": [
{
"id": 59,
"value": "Low poly",
"valueEn": "Low poly",
}
]
}
],
"category": {
"id": 20,
"title": "Управление размещением медийной рекламы",
"titleEn": "ATL advertising management",
"titleDoc": "Услуги по управлению размещением рекламных материалов на интернет сайтах",
"titleDocEn": "Services on managing advertising materials' placement at websites"
},
"parentCategory": {
"id": 2,
"title": "Интернет-реклама",
"titleEn": "Internet advertising"
},
"commissionAmount": 7.29,
"commissionPercent": 9,
"copyright": false,
"createType": "API",
"currency": {
"currency": "EUR",
"id": 3
},
"customer": {
"id": 2955,
"title": "ФИО заказчика"
},
"dateCreated": "2021-08-06 11:17:13",
"dateAccepted": null,
"dateEnd": "2021-08-07 14:17:13",
"dateFinished": null,
"datePaid": "2021-08-06 14:17:13",
"datePayAt": null,
"documentDate": "2021-08-06 14:17:13",
"description": "Some task description",
"uuid": "123e4567-e89b-12d3-a456-426655440000",
"id": 583689,
"needReport": false,
"price": 81,
"state": 5,
"title": "freel tailand",
"deadline": {
"type": 0,
"triggerDate": null,
"isComingUp": false
},
"hold": {
"type": "without_hold",
"isActive": false
},
"insurance": {
"status": 0
},
"activeDispute": null,
"activeChangesetId": null,
"shareCommission": 1,
"sharedCommission": 10
}
Метод используется для получения подробностей задачи по ее ID.
Запрос
HTTP запрос
Path-параметры
В качестве параметра пути необходимо передать taskId или taskUuid, которые можно получить в данном запрос
Ответ
При успешном выполнении запроса возвращается следующий ответ:
Название свойства | Тип | Описание |
---|---|---|
id |
integer |
ID задачи |
attributes |
object |
Атрибуты задачи |
attributes.id |
integer |
ID атрибута |
attributes.title |
string |
Название |
attributes.titleEn |
string |
Название атрибута на английском |
attributes.description |
string |
Описание атрибута |
attributes.descriptionEn |
string |
Описание атрибута на английском/td> |
attributes.type |
string |
Тип поля (например, multiselect) |
attributes.attrTypeId |
integer |
ID типа поля для атрибута |
attributes.values |
object |
Значение |
attributes.values.title |
string |
Значение атрибута |
attributes.values.titleEn |
integer |
Значение атрибута на английском |
attributes.values.id |
object |
ID значения атрибута |
attributes.options |
object |
Список значений (применимо только для полей со списком значений: select, multiselect) |
attributes.options.id |
integer |
ID значения атрибута |
attributes.options.value |
string |
Значение атрибута |
attributes.options.valueEn |
string |
Значение атрибута на английском |
category |
object |
Категория задачи |
category.id |
integer |
ID категории |
category.title |
string |
Название категории |
category.titleEn |
string |
Название категории (на английском) |
category.titleDoc |
string |
Название категории для отчетных документов |
category.titleDocEn |
string |
Название категории для отчетных документов (на английском) |
parentCategory |
object |
Категория задачи (родительская) |
category.id |
string |
ID категории задачи |
category.title |
string |
Название категории задачи |
category.title_en |
string |
Название категории задачи (на английском) |
commissionAmount |
float |
Сумма комиссии |
commissionPercent |
float |
Процент комиссии |
copyright |
string |
Признак передачи прав на интеллектуальную собственность |
createType |
string |
Способ создания задачи (через API или через интерфейс) |
currency |
object |
Валюта задачи |
currency.currency |
string |
Название валюты задачи |
currency.id |
integer |
ID валюты задачи |
customer |
object |
Заказчик |
customer.id |
string |
ID компании |
customer.title |
string |
Название компании |
creator |
object |
Пользователь, создавший задачу |
creator.id |
integer |
ID пользователя, создавшего задачу |
creator.fullName |
string |
ФИО пользователя, создавшего задачу |
worker |
object |
Фрилансер |
worker.id |
integer |
ID фрилансера (возвращается в запросе поиска фрилансера) |
worker.email |
string |
Email фрилансера |
worker.firstName |
string |
Имя фрилансера |
worker.lastName |
string |
Фамилия фрилансера |
worker.isVerified |
boolean |
Признак пройдена ли верификация у фрилансера |
dateCreated |
string |
Дата создания задачи |
dateAccepted |
string |
Дата принятия задачи заказчиком |
dateEnd |
string |
Дата дедлайна по задаче |
dateFinished |
string |
Дата завершения задачи |
datePaid |
string |
Дата получения оплаты задачи |
datePayAt |
string |
Дата, в которую платеж был инициирован |
documentDate |
string |
Дата генерации отчетных документов |
needReport |
boolean |
Необходим ли отчет по задаче |
description |
string |
Описание задачи |
uuid |
uuid |
uuid задачи |
price |
float |
Стоимость задачи |
state |
integer |
Статус задачи |
title |
string |
Название задачи |
files |
object |
Файлы, приложенные к задаче |
files.id |
string |
ИД файла |
files.name |
string |
Название файла |
files.typeId |
string |
Тип файла |
files.ownerId |
string |
ИД пользователя, добавившего файл (файлы могут добавлять и заказчики, и фрилансеры) |
deadline |
object |
Дедлайн |
deadline.type |
integer |
Тип дедлайна (мягкий 1 или жесткий 2 ). Сейчас для всех задач применяется мягкий дедлайн. |
deadline.triggerDate |
string |
Дата дедлайна |
deadline.isComingUp |
boolean |
Признак того, что до дедлайна сталось менее 3 суток |
hold |
object |
Холдирование средств |
hold.type |
string |
Тип холдирования |
hold.isActive |
boolean |
Активно ли холдирование средств для данной задачи |
insurance |
object |
Страховка |
insurance.status |
integer |
Наличие страховки |
hasPayout |
boolean |
Признак наличие выплаты по задаче |
messageCount |
integer |
Количество сообщений |
shareCommission |
boolean |
Признак разделения комиссии с фрилансером (если 0, то комиссия полностью оплачивается заказчиком, если 1, то 1% комиссии заказчика будет компенсирован фрилансером). |
sharedCommission |
string |
Сумма комиссии, которая будет компенсирована фрилансером (применимо только если shareCommission = 1 ) |
activeDispute |
boolean |
Есть ли открытый спор |
activeChangesetId |
integer |
ID открытого согласования изменений по данной задаче |
serviceFeeCompensation |
integer |
Сумма компенсации комиссии за фрилансера |
serviceFeeCompensationPercent |
integer |
Процент от стоимости задачи, определяющий сумму компенсации комиссии за фрилансера |
Создать задачу
Пример запроса
curl -X POST "https://my.solarstaff.com/api/customer/tasks"
-H "accept: */*"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ..."
-d '{
"uuid": "123e4567-e89b-12d3-a456-426655440000",
"categoryId": 37,
"attributes": [
{
"id": 37,
"value": "1"
}
],
"acceptanceFileIds": [
100
],
"copyright": true,
"needReport": true,
"title": "string",
"description": "string",
"externalId": "string",
"fileIds": [
100
],
"workerId": 1,
"editGroup": [
100
],
"deadline": "2022-06-22T08:57:53.299Z",
"price": 1000,
"validateOnly": false,
"needInsurance": false,
"shareCommission": 0,
"advData": {
"endContracts": [
{
"uuid": "73d13481-e71c-4edb-b251-a48bbcfa4133",
"sum": 100
},
{
"uuid": "e923e2f9-f1ed-4cb4-a293-e2d1b21fdac1",
"sum": 200
},
{
"uuid": "38f680a8-53e8-4bf1-bfde-04bea8351022",
"sum": 250
}
]
}
},
"shareComission": 0'
Пример ответа
HTTP status code: 200 OK
Метод используется для создания новой задачи.
Для интернет-рекламы, которая показывается на территории РФ, действует закон о маркировке рекламы. Поэтому, если вы создаете задачи соответствующей категории услуг, то необходимо обязательно передать дополнительные атрибуты. Подробности см. здесь.
Запрос
HTTP запрос
Тело запроса
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
uuid |
string |
Нет | UUID задачи (если параметр не передан, то будет определен автоматически) |
categoryId |
integer |
Да | ID услуги и работы для задачи. Для получения всех доступных услуг и работ для задач используйте данный запрос |
attributes |
object |
Да | Атрибуты задачи. Обязателен хотя бы 1 атрибут. Для получения всех доступных атрибутов задач используйте данный запрос |
attributes.id |
integer |
Да | ID атрибута |
attributes.value |
string |
Да | Значение атрибута задачи. Для атрибутов типа select необходимо передавать текстовое значение атрибута |
acceptanceFileIds |
array |
Нет | Файлы, которые фрилансер должен подписать, чтобы принять задачу |
copyright |
boolean |
Нет | Признак необходимости передачи прав интеллектуальной собственности |
needReport |
boolean |
Нет | Признак необходимости приложить отчет к выполненной задаче |
title |
string |
Да | Название задачи |
description |
string |
Да | Описание задачи |
fileIds |
string |
Нет | Файлы, которые будут приложены к задаче |
workerId |
integer |
Да | ID фрилансера. Для получения списка фрилансеров используйте данный запрос |
editGroup |
array |
Нет | Группа задачи. Для получения доступных групп используйте данный запрос |
externalId |
string |
Нет | ID, который можно задать при создании задачи (merchant_txid) |
deadline |
date |
Да | Дедлайн задачи (например, 2022-05-19 11:53:03 ) |
price |
float |
Да | Стоимость задачи |
needInsurance |
boolean |
Нет | Наличие страховки к задаче |
validateOnly |
boolean |
Нет | Параметр, который определяет будет ли создана задача. Если значение true, то будут выполнены все проверки для создания задачи и возвращен ответ можно ли создавать задачу, однако, сама задача создана не будет. |
advData |
object |
Нет | Данные для выполнения закона о маркировке рекламы. Подробнее см. здесь. Если вам нужна разаллокация, то для каждой задачи можно добавить несколько договоров. При этом, если общая сумма задачи больше суммы во всех договорах, то остаток будет считаться Производством рекламы. Если меньше, то задача не будет создана и будет возвращена ошибка. |
advData.endContracts.uuid |
Uuid |
Нет | ID договора для выполнения закона о маркировке рекламы. Подробнее см. здесь |
advData.endContracts.sum |
integer |
Нет | Сумма в договоре. Параметр обязательный, если в задаче более одного договора (несколько контрагентов). Для одного договора параметр необязательный. Подробнее см. здесь |
shareCommission |
boolean |
Нет | Признак разделения комиссии с фрилансером (если 0, то комиссия полностью оплачивается заказчиком, если 1, то 1% комиссии заказчика будет компенсирован фрилансером). Если параметр не указан, то комиссия оплачивается заказчиком. |
Ответ
При успешном выполнении запроса возвращается UUID созданной задачи.
Получить информацию о страховке
Пример запроса
curl -X GET "https://my.solarstaff.com/api/customer/insurance/info"
-H "accept: */*"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ..."
Пример ответа
HTTP status code: 200 OK
Метод используется для получения информации о страховке задач для запрашиваемого фрилансера.
Запрос
HTTP запрос
Тело запроса
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
workerId |
integer |
Да | ID фрилансера (возвращается в запросе поиска фрилансера) |
categoryId |
integer |
Да | Категория задач (подробнее см. запрос получения списка категорий задач) |
Ответ
Название свойства | Тип | Описание |
---|---|---|
canBeInsured |
boolean |
Признак того, что задача может быть застрахована |
acceptanceRequired |
boolean |
Необходимо ли подтверждение фрилансера для страхования задачи |
cost |
float |
Стоимость страховки (в рублях) |
insureByDefault |
boolean |
Признак того, что задачи будут застрахованы автоматически |
Изменить статус задачи
Пример запроса
curl -X PUT "https://my.solarstaff.com/api/customer/tasks/c6e8e285-1e0a-4a11-a676-89211c0adccc"
-H "accept: */*"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ..."
Пример ответа
HTTP status code: 200 OK
Метод используется для изменения статуса задачи для действий фрилансера. Перед использованием данного запроса обратитесь, пожалуйста, в поддержку SolarStaff - необходимо добавить дополнительные права доступа к сервису. Доступные для изменения статусы: принять задачу в работу (ID=2
), выполнить задачу (ID=3
), отклонить задачу (ID=6
), а так же подтвердить отмену задачи в случае, если отмена была запрошена заказчиком (ID=8
).
Также есть дополнительные запросы для отклонения задачи или возвращения ее в работу.
Запрос
HTTP запрос
Path-параметры
В качестве параметра пути необходимо передать taskId или taskUuid, которые можно получить в данном запросе.
Тело запроса
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
state |
integer |
Да | Статус задачи. Доступные для изменения статусы: принять задачу (ID=2 ), выполнить задачу (ID=3 ), отклонить задачу (ID=6 ), а так же подтвердить отмену задачи в случае, если отмена была запрошена заказчиком (ID=8 ). |
Ответ
При успешном выполнении запроса возвращается пустой ответ.
Возможные ошибки:
Необходимо подписать договор-оферту. В этом случае необходимо проверить наличие новой оферты, которая обязательна для принятия задачи в работу и потом принять ее.
{ "error": "Для принятия задачи необходимо подписать договор оферты", "code": 11 }
Продлить дедлайн
Пример запроса
curl -X POST "https://my.solarstaff.com/api/customer/tasks/prolong-deadline"
-H "accept: */*"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ..."
Пример ответа
HTTP status code: 200 OK
Метод используется для продления дедлайна задачи только для задач в статусе Ждет действий от заказчика.
Запрос
HTTP запрос
Тело запроса
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
taskId |
integer |
Обязателен один из параметров: taskId или uuid |
ID задачи. Для получения списка задач используется данный запрос. |
uuid |
string |
Обязателен один из параметров: taskId или uuid |
UUID задачи. |
deadline |
date |
Да | Дата нового дедлайна в формате 2022-07-25T15:00:58.295Z |
Ответ
При успешном выполнении запроса возвращается пустой ответ.
Проверить наличие ограничений для принятия задачи в работу
Пример запроса
curl -X GET "http://solar-staff.comapi/customer/freelancers/check-task-requirements?taskUuid=837843c9-72e5-48e2-a133-e97e347373af&freelancerUuid=ec304480-5e3f-4bb7-a9e5-dbb49fb673e9"
-H "accept: */*"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ..."
-H "Content-Type: application/json"
Пример ответа
HTTP status code: 200 OK
{
"name": "agreementRequired",
"data"
:{
"url": "http://solar.com/agreement-template?uuid=4b8d3847-5651-40f5-b534-48b273974c5c ",
"templateUuid": "4b8d3847-5651-40f5-b534-48b273974c5c",
"code": "forced_update",
"reason": "Для работы с задачами необходимо принять новый Договор-оферту.
"
}}
Запрос показывает может ли фрилансер взять задачу в работу или есть какие-то ограничения (необходимо переподписать оферту , пройти верификацию и тд). Поэтому данный запрос необходимо вызвать перед изменением статуса задачи на Принять задачу в работу (ID=2). Возможные ограничения:
- необходимо переподписать оферту - необходимо будет отобразить фрилансеру новую оферту, убедиться, что он подтвердил свое согласие с ней и вызвать следующий запрос Принять оферту от лица фрилансера
- необходимо пройти верификацию
- необходимо принять файлы NDA
- и требования по задачам с рекламой (указание ИНН/ОГРНИП/телефона). Подробнее см. Закон о маркировке рекламы
Запрос
HTTP запрос
Параметры запроса
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
taskUuid |
uuid |
Да | Uuid задачи, возвращается в запросе получения задачи по ID или получения списка задач |
freelancerUuid |
uuid |
Да | Uuid фрилансера, возвращается в запросе приглашения нового фрилансера |
Ответ
Если никаких ограничений нет, то возвращается пустой ответ.
Название свойства | Тип | Описание |
---|---|---|
name |
string |
Название ограничения (например, agreementRequired - необходимо подписать оферту) |
data |
object |
Подробности документа, который необходимо подписать (или другого ограничения, которое необходимо выполнить для принятия задачи в работу). Если ограничение связано с прохождением верификации (name=verification), то поле будет содержать пустой объект. |
data.url |
string |
URL, где можно подписать документ |
data.templateUuid |
string |
Код ограничения |
data.code |
string |
Код ограничения |
reason |
string |
Причина ограничения (например, Задача входит в санкционный список, поэтому перед принятием ее в работу необходимо подписать оферту) |
Принять задачу
Пример запроса
curl -X POST "https://my.solarstaff.com/api/customer/tasks/accept"
-H "accept: */*"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ..."
-d '{
"uuid": "123e4567-e89b-12d3-a456-426655440000"
}'
Пример ответа
HTTP status code: 200 OK
Метод используется для того, чтобы принять результат работы фрилансера. Может быть запрошен только для задач в статусе Выполнена (ID=3
).
Запрос
HTTP запрос
Тело запроса
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
taskId |
integer |
Обязателен один из параметров: taskId или uuid |
ID задачи. Для получения списка задач используется данный запрос. |
uuid |
string |
Обязателен один из параметров: taskId или uuid |
UUID задачи. |
Тело запроса
Дополнительных параметров не требуется.
Ответ
При успешном выполнении запроса возвращается пустой ответ.
Оплатить задачу
Пример запроса
curl -X POST "https://my.solarstaff.com/api/customer/tasks/pay"
-H "accept: */*"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ..."
-d '{
"uuid": "123e4567-e89b-12d3-a456-426655440000"
}'
Пример ответа
HTTP status code: 200 OK
Метод используется для оплаты задачи. Деньги будут списаны с баланса заказчика и добавлены на баланс фрилансера. Оплатить задачу можно только из статуса Ждет оплаты (ID = 4)
Запрос
HTTP запрос
Тело запроса
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
taskId |
integer |
Обязателен один из параметров: taskId или uuid |
ID задачи. Для получения списка задач используется данный запрос. |
uuid |
string |
Обязателен один из параметров: taskId или uuid |
UUID задачи. |
Ответ
При успешном выполнении запроса возвращается пустой ответ.
Оплатить задачу (сразу после создания)
Пример запроса
curl -X POST "https://my.solarstaff.com/api/customer/tasks/quick-pay"
-H "accept: */*"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ..."
-d '{
"taskId": 1
} '
Пример ответа
HTTP status code: 200 OK
Метод используется для оплаты задачи из статуса Новая
. То есть, сразу после создания задачи для ее оплаты можно вызвать данный запрос и она перейдет в статус Оплачена
(в отличие от предыдущего запроса, который переведет задачу в статус Оплачена
только из статуса Ждет оплаты
). Данный метод применим только если в задаче не было дополнительных документов (оферт или NDA), которые фрилансер должен подписать.
Запрос
HTTP запрос
Тело запроса
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
taskId |
integer |
Обязателен один из параметров: taskId или uuid |
ID задачи. Для получения списка задач используется данный запрос. |
uuid |
string |
Обязателен один из параметров: taskId или uuid |
UUID задачи |
companyId |
integer |
нет | ID компании |
Ответ
При успешном выполнении запроса возвращается пустой ответ.
Отклонить задачу
Пример запроса
curl -X POST "https://my.solarstaff.com/api/customer/tasks/decline
-H "accept: */*"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ..."
-d '{
"taskId": 180012
}'
Пример ответа
HTTP status code: 200 OK
Метод используется для отклонения задачи. В зависимости от изначального статуса задачи после выполнения запроса статус задачи будет изменен на:
- для статусов Новая (ID=1), В работе (ID=2), Ждет подтверждения отмены (ID=11) -> новый статус будет Отклонена заказчиком (ID=8)
- для статусов Ждет оплату (ID=4) и Проверка заказчиком (ID=3) -> новый статус будет Подтверждение отмены (ID=11)
- для статусов Согласовние изменений (ID=16), Спор инициирован (ID=13), Оплачена (ID=5), Отклонена исполнителем (ID=6) и Подтверждение отмены (ID=11) будет возвращена ошибка.
Запрос
HTTP запрос
Тело запроса
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
taskId |
integer |
да | ID задачи. Для получения списка задач используется данный запрос. |
Ответ
При успешном выполнении запроса возвращается пустой ответ.
Вернуть задачу в работу
Пример запроса
curl -X POST "https://my.solarstaff.com/api/customer/tasks/return-to-work
-H "accept: */*"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ..."
-d '{
"taskId": 180012
}'
Пример ответа
HTTP status code: 200 OK
Метод используется для возвращения задачи в работу задачи. В работу (ID статуса = 2) задача может быть возвращена только из статуса Проверка заказчиком (ID статуса = 3). Для всех остальных статусов будет возвращена ошибка. Подробную схему статусов задач см. здесь.
Запрос
HTTP запрос
Тело запроса
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
taskId |
integer |
да | ID задачи. Для получения списка задач используется данный запрос. |
Ответ
При успешном выполнении запроса возвращается пустой ответ.
Закон о маркировке рекламы
Раздел включает запросы, необходимые для создания задач по распространению рекламы на территории РФ. Подробное описание см. здесь.
Если вы - конечный рекламодатель, то в запрос создания задачи необходимо передать ID договора с Solar-staff, который возвращается в запросе получения данных для ОРД о компании (в договоре с Solar-staff параметр isPrimary
должен быть true).
Если вы - посредник и не конечный рекламодатель, то необходимо добавить данные о конечном заказчике и того, с кем у него заключен договор, следующим образом:
Если вам нужна разаллокация, то для каждой задачи можно добавить несколько договоров. При этом, если сумма задачи больше суммы во всех добавленных договорах, то остаток будет считаться Производством рекламы. Для получения всех договоров, связанных с задачей см данный запрос.
Добавить данные заказчика
Пример запроса
curl -X POST "https://my.solarstaff.com/api/customer/ord/organization"
-H "accept: */*"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ..."
-H "Content-Type: application/json"
-d "{
"externalOrganisationId": "1as7ac19-5y33-4a3a-94b3-b4a26374de4d",
"fullOpf": "Название",
"inn": "11111111",
"ogrn": "123132",
"regionNumber": "12"
}"
Пример ответа
HTTP status code: 200 OK
Метод используется для добавления данных заказчика. Если вы - посредник, то вам необходимо добавить данные о конечном заказчике:
- добавить данные конечного заказчика
- добавить данные исполнителя договора с конечным заказчиком. Если вы - исполнитель договора с конечным заказчиком, то при создании договора вам необходимо использовать uuid, возвращаемый в запросе получения данных о вашей компании.
Запрос
HTTP запрос
Тело запроса
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
externalOrganisationId |
uuid |
Да | UUID заказчика |
fullOpf |
string |
Обязательно только для юридических лиц (в параметре legalType вы указали LEGAL_TYPE_LEGAL или LEGAL_TYPE_FOREIGN_LEGAL) | Организационно-правовая форма (ОПФ) и полное наименование |
inn |
string |
Обязательно для всех заказчиков из РФ | ИНН |
ogrn |
string |
Нет | Основной государственный регистрационный номер (ОГРН) |
fio |
string |
Обязательно для формы собственности - физическое лицо или индивидуальный предприниматель. | ФИО |
ogrnip |
string |
Нет | Основной государственный регистрационный номер индивидуального предпринимателя (ОГРНИП). |
registrationNumber |
string |
Обязательно для формы собственности - юридическое лицо не из РФ | Регистрационный номер или его аналог. |
phoneNumber |
string |
Обязательно для формы собственности - физическое лицо не из РФ | Номер телефона |
taxId |
string |
Обязательно для формы собственности - юридическое лицо не из РФ. | Номер налогоплательщика или его аналог в стране регистрации. |
regionNumber |
string |
Обязательно для заказчиков не из РФ | Код страны из общероссийского классификатора стран мира |
paymentNumber |
string |
Обязательно для физических лиц не из РФ | Номер электронного средства платежа |
Ответ
При успешном выполнении запроса возвращается пустой ответ.
Получить список добавленных заказчиков
Пример запроса
curl -X GET "https://my.solarstaff.com/api/customer/ord/organization"
-H "accept: */*"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ..."
-H "Content-Type: application/json"
Пример ответа
HTTP status code: 200 OK
{
"items": [
{
"uuid":"a740f1bf-fc7a-4e68-9ad9-0a23688f3b00",
"title":"Org title 2",
"type":"organisation",
"isPrimary":false
},
{
"uuid":"a740f1bf-fc7a-4e68-9ad9-0a23688f3bfe",
"title":"Org title 1",
"type":"organisation",
"isPrimary":false
}
],
"pagination":
{
"count":2,
"total":2,
"perPage":20,
"page":1,
"pages":1
}
}
Метод используется для получения списка всех добавленных вами заказчиков.
Запрос
HTTP запрос
Параметры
Дополнительных параметров не требуется.
Ответ
Название свойства | Тип | Описание |
---|---|---|
uuid |
uuid |
UUID заказчика |
title |
string |
Название заказчика |
type |
string |
Тип заказчика |
isPrimary |
boolean |
Возвращается true , если данный заказчик был добавлен вами. |
Получить данные заказчика по id
Пример запроса
curl -X GET "https://my.solarstaff.com/api/customer/ord/organization/537ed52b-bb6f-452c-bd71-7c82fff7fbf7"
-H "accept: */*"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ..."
-H "Content-Type: application/json"
Пример ответа
HTTP status code: 200 OK
{
"data":
{
"externalOrganisationId":"537ed52b-bb6f-452c-bd71-7c82fff7fbf7",
"inn":"3664069397",
"isOpc":true,
"isPp":true,
"fio":"",
"fullOpf":"OOO Test Org",
"individualAccountDescription":"",
"legalType":"LEGAL_TYPE_LEGAL",
"ogrn":"1053600591197",
"ogrnip":"0",
"paymentNumber":"",
"phoneNumber":"",
"regionNumber":"",
"platforms":[
{
"externalPlatformId":"dbb88349-0b82-45d3-bc6f-b973a2faeb1c",
"isPlatformOwner":false
}],
"postAddress":null,
"regionNumber":"",
"registrationNumber":"",
"shortOpf":"",
"taxId":"",
"trustedPerson":"",
"violationDescription":""
},
"uuid":"a740f1bf-fc7a-4e68-9ad9-0a23688f3bfe",
"title":"Org title 1",
"type":"organisation",
"isPrimary":false
}
Метод используется для получения данных о добавленном заказчике.
Запрос
HTTP запрос
Path-параметры
В качестве параметра пути необходимо передать uuid заказчика.
Ответ
Название свойства | Тип | Описание |
---|---|---|
externalOrganisationId |
string |
UUID заказчика |
fullOpf |
string |
Организационно-правовая форма (ОПФ) и полное наименование |
inn |
string |
ИНН |
isOpc |
boolean |
Является оператором рекламной системы (ОРС) |
isPp |
boolean |
Является рекламораспространителем (РР) |
ogrn |
string |
Основной государственный регистрационный номер (ОГРН) |
fio |
string |
ФИО |
individualAccountDescription |
string |
Описание: юридическое лицо, физическое лицо, ИП, иностранное физическое лицо, иностранное юридическое лицо, иностранный ИП. |
legalType |
string |
Форма собственности:
|
ogrnip |
string |
Основной государственный регистрационный номер индивидуального предпринимателя (ОГРНИП). |
registrationNumber |
string |
Регистрационный номер или его аналог. |
phoneNumber |
string |
Номер телефона |
taxId |
string |
Номер налогоплательщика или его аналог в стране регистрации. |
paymentNumber |
string |
Номер электронного средства платежа. Для иностранных физических лиц. |
platforms.externalPlatformId |
string |
uuid площадки. Так как Solar-staff не регистрирует креативы самостоятельно, то площадки также не будут добавлены. Поэтому значение данного параметра всегда будет пустым. |
platforms.isPlatformOwner |
boolean |
Является владельцем площадки. Так как Solar-staff не регистрирует креативы самостоятельно, то площадки также не будут добавлены. Поэтому значение данного параметра всегда будет пустым. |
postAddress |
string |
Почтовый адрес |
regionNumber |
string |
Код страны регистрации в соответствии с ОКСМ. |
shortOpf |
string |
Организационно-правовая форма (ОПФ) и сокращенное наименование. |
trustedPerson |
string |
Должность и ФИО лица, имеющего право без доверенности действовать от имени юридического лица. Для юридических лиц. |
violationDescription |
string |
Сведения о несоблюдении требований к распространению рекламы в интернете со стороны рекламодателя (РД), рекламораспространителя (РР) или оператора рекламной системы (ОРС). |
Добавить данные договора
Пример запроса
curl -X POST "https://my.solarstaff.com/api/customer/ord/contract"
-H "accept: */*"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ..."
-H "Content-Type: application/json"
-d "{
"externalOrganisationCustomerId": "8jk2bc19-5y33-4a3a-94b3-b4a26374de3n",
"externalOrganisationPerformerId": "1as7ac19-5y33-4a3a-94b3-b4a26374de4d",
"contractNumber":"1",
"contractDate": "11.01.2020"
}"
Пример ответа
HTTP status code: 200 OK
Метод используется для добавления данных договора. После добавления данных конечного заказчика вам необходимо добавить договор между конечным заказчиком и его исполнителем. Может быть 2 случая:
- вы заключили договор с конечным заказчиком. В этом случае вам необходимо создать конечного заказчика, получить
uuid
вашей компании и добавить договор, где в параметрexternalOrganisationCustomerId
передатьuuid
созданного заказчика, а вexternalOrganisationPerformerId
передать вашuuid
. - между вами и конечным заказчиком есть еще посредник или посредники. В этом случае вам необходимо выполнить два запроса: добавить данные конечного заказчика и добавить данные исполнителя договора с конечным заказчиком.
Запрос
HTTP запрос
Тело запроса
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
externalContractId |
uuid |
Да | UUID договора |
externalOrganisationCustomerId |
uuid |
Да | ID инициатора (заказчика). Возвращается в запросе создания или получения данных данных о заказчике. |
externalOrganisationPerformerId |
uuid |
Да | ID исполнителя. Возвращается в запросе создания или получения данных данных о заказчике. |
contractNumber |
string |
Нет | Номер договора |
contractDate |
string |
Да | Дата договора |
contractType |
string |
Да | Тип договора:
|
subjectType |
string |
Да | Cведения о предмете договора:
|
Ответ
При успешном выполнении запроса возвращается пустой ответ.
Получить список добавленных договоров
Пример запроса
curl -X GET "https://my.solarstaff.com/api/customer/ord/contract"
-H "accept: */*"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ..."
-H "Content-Type: application/json"
Пример ответа
HTTP status code: 200 OK
{
"items":[
{
"uuid":"a740f1bf-fc7a-4e68-9ad9-0a23688f3b01",
"title":"Contract org1-org2",
"type":"contract",
"isPrimary":false
}
],
"pagination":
{
"count":1,
"total":1,
"perPage":20,
"page":1,
"pages":1
}
}
Метод используется для получения списка всех добавленных договоров.
Запрос
HTTP запрос
Параметры
Дополнительных параметров запроса нет.
Ответ
Название | Тип | Описание |
---|---|---|
uuid |
uuid |
UUID договора |
title |
string |
Название договора |
type |
uuid |
Тип договора |
isPrimary |
boolean |
Является договором с конечным заказчиком. |
Получить данные договора по ID
Пример запроса
curl -X GET "https://my.solarstaff.com/api/customer/ord/contract/1as7ac19-5y33-4a3a-94b3-b4a26374de4d"
-H "accept: */*"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ..."
-H "Content-Type: application/json"
Пример ответа
HTTP status code: 200 OK
{
"data":
{
"externalContractId":"a740f1bf-fc7a-4e68-9ad9-0a23688f3b01",
"contractType":"CONTRACT_TYPE_SERVICE",
"externalOrganisationCustomerId":"eea5a0b5-4a7c-456b-9b1c-227d6ca6ac9d",
"externalOrganisationPerformerId":"eea5a0b5-4a7c-456b-9b1c-227d6ca6ac9d",
"isCreativeReporter":false,
"actionType":"ACTION_TYPE_INVALID",
"subjectType":"SUBJECT_TYPE_DISTRIBUTION",
"contractNumber":"1111",
"contractDate":"2022-10-20",
"additionalContractNumber":"",
"additionalContractNumberDate":"",
"price":"100.00",
"withNds":false,
"externalParentId":"",
"createdAt":"2022-10-20T09:55:53.277309Z",
"editedAt":"2022-10-26T20:34:57.839708Z",
"createdBy":
{
"id":"92",
"email":"[email protected]",
"name":"\u041b\u0443\u043a\u0430\u0448\u043e\u0432 \u041c\u0430\u043a\u0441\u0438\u043c"
},
"editedBy":null
},
"uuid":"a740f1bf-fc7a-4e68-9ad9-0a23688f3b01",
"title":"Contract org1-org2",
"type":"contract",
"isPrimary":false
}
Метод используется для получения данных о добавленном договоре по его uuid.
Запрос
HTTP запрос
Path-параметры
В качестве параметра пути необходимо передать UUID договора.
Ответ
Название | Тип | Описание |
---|---|---|
data.externalContractId |
uuid |
UUID договора |
data.externalOrganisationCustomerId |
uuid |
ID инициатора (заказчика) |
data.externalOrganisationPerformerId |
uuid |
ID исполнителя |
data.contractType |
string |
Тип договора:
|
data.contractNumber |
string |
Номер договора |
data.contractDate |
string |
Дата договора |
data.isCreativeReporter |
string |
Обязан ли исполнитель регистрировать креативы |
data.actionType |
string |
Описание действий посредника-представителя:
|
data.subjectType |
string |
Сведения о предмете договора:
|
data.additionalContractNumber |
string |
Номер дополнительного соглашения (для дополнительных соглашений) |
data.additionalContractNumberDate |
string |
Дата дополнительного соглашения |
data.price |
float |
Цена договора при наличии |
data.withNds |
string |
Применён ли налог на добавленную стоимость (НДС) к цене. |
data.externalParentId |
uuid |
UUID родительского договора |
data.createdAt |
string |
Дата добавления договора в ОРД |
data.editedAt |
string |
Дата изменения данных в договоре в ОРД |
data.createdBy.id |
integer |
ID пользователя, добавившего договор |
data.createdBy.email |
string |
Email пользователя, добавившего договор |
data.createdBy.name |
string |
Имя пользователя |
data.editedBy |
string |
ID пользователя, обновившего данные о договоре |
uuid |
uuid |
UUID договора |
title |
string |
Название договора |
type |
uuid |
Тип договора |
isPrimary |
boolean |
Является договором с конечным заказчиком. |
Получить данные договора по ID задачи
Пример запроса
curl -X GET "https://my.solarstaff.com/api/customer/ord/task-summary/1as7ac19-5y33-4a3a-94b3-b4a26374de4d"
-H "accept: */*"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ..."
-H "Content-Type: application/json"
Пример ответа
HTTP status code: 200 OK
{
"endContract": {
"uuid": "4a0355a7-9019-4208-8f86-6becde69ef",
"title": "100623 (2020-10-15)",
"type": "contract",
"customer": {
"uuid": "96cf28dc-43fe-495e-ae02-db8a8a06fb",
"title": "ааа",
"type": "organisation",
"externalOrganisationId": "96cf28dc-43fe-495e-ae02-db8a8a06fb",
"inn": "6174387653",
"isOpc": false,
"isPp": false,
"fio": "",
"fullOpf": "ааа",
"individualAccountDescription": "",
"legalAddress": {
"address": "",
"locality": "",
"postcode": ""
},
"legalType": "LEGAL_TYPE_LEGAL",
"ogrn": "22222222",
"ogrnip": "0",
"paymentNumber": "",
"phoneNumber": "",
"platforms": [],
"postAddress": {
"address": "",
"locality": "",
"postcode": ""
},
"regionNumber": "",
"registrationNumber": "",
"shortOpf": "",
"taxId": "",
"trustedPerson": "",
"violationDescription": ""
},
"performer": {
"uuid": "0109ce50-ff03-4c1c-96af-26bf816597fc",
"title": "ООО ",
"type": "organisation",
"externalOrganisationId": "0109ce50-ff03-4c1c-96af-26bf816597fc",
"inn": "7733228841",
"isOpc": false,
"isPp": false,
"fio": "",
"fullOpf": "ООО ",
"individualAccountDescription": "",
"legalType": "LEGAL_TYPE_LEGAL",
"ogrn": "1157746300964",
"ogrnip": "0",
"paymentNumber": "",
"phoneNumber": "",
"platforms": [],
"postAddress": null,
"regionNumber": "",
"registrationNumber": "",
"shortOpf": "",
"taxId": "",
"trustedPerson": "",
"violationDescription": ""
},
"contractSum": null,
"actionType": "ACTION_TYPE_INVALID",
"additionalContractNumber": "",
"additionalContractNumberDate": "",
"contractDate": "2020-10-15",
"contractNumber": "100623",
"contractType": "CONTRACT_TYPE_SERVICE",
"externalContractId": "4a0355a7-9019-4208-8f86-6becde69e",
"externalOrganisationCustomerId": "96cf28dc-43fe-495e-ae02-db8a8a06f",
"externalOrganisationPerformerId": "0109ce50-ff03-4c1c-96af-26bf816597fc",
"externalParentId": "",
"isCreativeReporter": false,
"price": "",
"subjectType": "SUBJECT_TYPE_INTERMEDIARY",
"withNds": false
},
"endContracts": [
{
"uuid": "4a0355a7-9019-4208-8f86-6becde69e",
"title": "100623 (2020-10-15)",
"type": "contract",
"customer": {
"uuid": "96cf28dc-43fe-495e-ae02-db8a8a06fb0a",
"title": "ааа",
"type": "organisation",
"externalOrganisationId": "96cf28dc-43fe-495e-ae02-db8a8a06fb0a",
"inn": "6174387653",
"isOpc": false,
"isPp": false,
"fio": "",
"fullOpf": "ааа",
"individualAccountDescription": "",
"legalAddress": {
"address": "",
"locality": "",
"postcode": ""
},
"legalType": "LEGAL_TYPE_LEGAL",
"ogrn": "22222222",
"ogrnip": "0",
"paymentNumber": "",
"phoneNumber": "",
"platforms": [],
"postAddress": {
"address": "",
"locality": "",
"postcode": ""
},
"regionNumber": "",
"registrationNumber": "",
"shortOpf": "",
"taxId": "",
"trustedPerson": "",
"violationDescription": ""
},
"performer": {
"uuid": "0109ce50-ff03-4c1c-96af-26bf816597fc",
"title": "ООО "Солар Стафф Рус"",
"type": "organisation",
"externalOrganisationId": "0109ce50-ff03-4c1c-96af-26bf816597fc",
"inn": "7733228841",
"isOpc": false,
"isPp": false,
"fio": "",
"fullOpf": "ООО "Солар Стафф Рус"",
"individualAccountDescription": "",
"legalType": "LEGAL_TYPE_LEGAL",
"ogrn": "1157746300964",
"ogrnip": "0",
"paymentNumber": "",
"phoneNumber": "",
"platforms": [],
"postAddress": null,
"regionNumber": "",
"registrationNumber": "",
"shortOpf": "",
"taxId": "",
"trustedPerson": "",
"violationDescription": ""
},
"contractSum": 4000,
"actionType": "ACTION_TYPE_INVALID",
"additionalContractNumber": "",
"additionalContractNumberDate": "",
"contractDate": "2020-10-15",
"contractNumber": "100623",
"contractType": "CONTRACT_TYPE_SERVICE",
"externalContractId": "4a0355a7-9019-4208-8f86-6becde69ef5a",
"externalOrganisationCustomerId": "96cf28dc-43fe-495e-ae02-db8a8a06fb0a",
"externalOrganisationPerformerId": "0109ce50-ff03-4c1c-96af-26bf816597fc",
"externalParentId": "",
"isCreativeReporter": false,
"price": "",
"subjectType": "SUBJECT_TYPE_INTERMEDIARY",
"withNds": false
},
{
"uuid": "54963b34-7840-43a3-a668-5f6d95ff30bc",
"title": "продв.реш.123 (2023-06-03)",
"type": "contract",
"customer": {
"uuid": "e2ce0768-0ff1-49b7-834e-8e38ed36bd83",
"title": "Продвинутые решения",
"type": "organisation",
"externalOrganisationId": "e2ce0768-0ff1-49b7-834e-8e38ed36bd83",
"inn": "4975396448",
"isOpc": false,
"isPp": false,
"fio": "",
"fullOpf": "Продвинутые решения",
"individualAccountDescription": "",
"legalAddress": {
"address": "",
"locality": "",
"postcode": ""
},
"legalType": "LEGAL_TYPE_LEGAL",
"ogrn": "0",
"ogrnip": "0",
"paymentNumber": "",
"phoneNumber": "",
"platforms": [],
"postAddress": {
"address": "",
"locality": "",
"postcode": ""
},
"regionNumber": "",
"registrationNumber": "",
"shortOpf": "",
"taxId": "4975396448",
"trustedPerson": "",
"violationDescription": ""
},
"performer": {
"uuid": "96cf28dc-43fe-495e-ae02-db8a8a06fb0a",
"title": "ааа",
"type": "organisation",
"externalOrganisationId": "96cf28dc-43fe-495e-ae02-db8a8a06fb0a",
"inn": "6174387653",
"isOpc": false,
"isPp": false,
"fio": "",
"fullOpf": "ааа",
"individualAccountDescription": "",
"legalAddress": {
"address": "",
"locality": "",
"postcode": ""
},
"legalType": "LEGAL_TYPE_LEGAL",
"ogrn": "22222222",
"ogrnip": "0",
"paymentNumber": "",
"phoneNumber": "",
"platforms": [],
"postAddress": {
"address": "",
"locality": "",
"postcode": ""
},
"regionNumber": "",
"registrationNumber": "",
"shortOpf": "",
"taxId": "",
"trustedPerson": "",
"violationDescription": ""
},
"contractSum": 200,
"actionType": "ACTION_TYPE_OTHER",
"additionalContractNumber": "",
"additionalContractNumberDate": "",
"contractDate": "2023-06-03",
"contractNumber": "продв.реш.123",
"contractType": "CONTRACT_TYPE_SERVICE",
"externalContractId": "54963b34-7840-43a3-a668-5f6d95ff30bc",
"externalOrganisationCustomerId": "e2ce0768-0ff1-49b7-834e-8e38ed36bd83",
"externalOrganisationPerformerId": "96cf28dc-43fe-495e-ae02-db8a8a06fb0a",
"externalParentId": "",
"isCreativeReporter": false,
"price": "",
"subjectType": "SUBJECT_TYPE_INTERMEDIARY",
"withNds": true
}
],
"customerContract": {
"uuid": "4a0355a7-9019-4208-8f86-6becde69ef5a",
"title": "100623 (2020-10-15)",
"type": "contract",
"customer": {
"uuid": "96cf28dc-43fe-495e-ae02-db8a8a06fb0a",
"title": "ааа",
"type": "organisation",
"externalOrganisationId": "96cf28dc-43fe-495e-ae02-db8a8a06fb0a",
"inn": "6174387653",
"isOpc": false,
"isPp": false,
"fio": "",
"fullOpf": "ааа",
"individualAccountDescription": "",
"legalAddress": {
"address": "",
"locality": "",
"postcode": ""
},
"legalType": "LEGAL_TYPE_LEGAL",
"ogrn": "22222222",
"ogrnip": "0",
"paymentNumber": "",
"phoneNumber": "",
"platforms": [],
"postAddress": {
"address": "",
"locality": "",
"postcode": ""
},
"regionNumber": "",
"registrationNumber": "",
"shortOpf": "",
"taxId": "",
"trustedPerson": "",
"violationDescription": ""
},
"performer": {
"uuid": "0109ce50-ff03-4c1c-96af-26bf816597fc",
"title": "ООО "Солар Стафф Рус"",
"type": "organisation",
"externalOrganisationId": "0109ce50-ff03-4c1c-96af-26bf816597fc",
"inn": "7733228841",
"isOpc": false,
"isPp": false,
"fio": "",
"fullOpf": "ООО "Солар Стафф Рус"",
"individualAccountDescription": "",
"legalType": "LEGAL_TYPE_LEGAL",
"ogrn": "1157746300964",
"ogrnip": "0",
"paymentNumber": "",
"phoneNumber": "",
"platforms": [],
"postAddress": null,
"regionNumber": "",
"registrationNumber": "",
"shortOpf": "",
"taxId": "",
"trustedPerson": "",
"violationDescription": ""
},
"contractSum": null,
"actionType": "ACTION_TYPE_INVALID",
"additionalContractNumber": "",
"additionalContractNumberDate": "",
"contractDate": "2020-10-15",
"contractNumber": "100623",
"contractType": "CONTRACT_TYPE_SERVICE",
"externalContractId": "4a0355a7-9019-4208-8f86-6becde69ef5a",
"externalOrganisationCustomerId": "96cf28dc-43fe-495e-ae02-db8a8a06fb0a",
"externalOrganisationPerformerId": "0109ce50-ff03-4c1c-96af-26bf816597fc",
"externalParentId": "",
"isCreativeReporter": false,
"price": "",
"subjectType": "SUBJECT_TYPE_INTERMEDIARY",
"withNds": false
},
"workerAgreement": {
"customerName": "TMS Solarweb ltd",
"customerTaxValue": "HE 329931",
"customerPhone": "+35-725-378-701",
"performerName": "Смит Вессен",
"performerPhone": "78679098776",
"performerCountry": "RU",
"performerTaxValue": "743937218239",
"contractNumber": "16561",
"contractDate": "2021-05-01",
"sum": 4200,
"currency": {
"currency": "RUB",
"id": 1
}
}
}
Метод используется для получения данных о договорах по uuid задачи.
Запрос
HTTP запрос
Path-параметры
В качестве параметра пути необходимо передать UUID задачи.
Ответ
Название | Тип | Описание |
---|---|---|
endContract.uuid |
uuid |
UUID договора |
endContract.title |
string |
Название договора |
endContract.type |
string |
Тип договора |
endContract.customer |
object |
Заказчик в договоре |
endContract.performer |
object |
Исполнитель |
endContract.contractSum |
string |
Сумма в контракте |
endContract.actionType |
string |
Описание действий посредника-представителя:
|
endContract.additionalContractNumber |
string |
Номер дополнительного соглашения (для дополнительных соглашений) |
endContract.additionalContractNumberDate |
string |
Дата дополнительного соглашения |
endContract.contractDate |
string |
Дата договора |
endContract.contractNumber |
string |
Номер договора |
endContract.contractType |
string |
Тип договора:
|
endContract.externalContractId |
string |
Номер родительского договора |
endContract.externalOrganisationCustomerId |
string |
ИД заказчика в родительского договоре |
endContract.externalOrganisationPerformerId |
string |
ИД исполнителя в родительского договоре |
endContract.externalParentId |
string |
UUID родительского договора |
endContract.isCreativeReporter |
string |
Обязан ли исполнитель регистрировать креативы |
endContract.price |
float |
Цена договора при наличии |
endContract.subjectType |
string |
Сведения о предмете договора:
|
endContract.withNds |
string |
Применён ли налог на добавленную стоимость (НДС) к цене. |
endContracts |
string |
UUID договора |
endContract |
object |
Все договора в цепочке контрагентов. Структура объекта аналогична endContract |
customerContract |
object |
Конечный договор первого заказчика. Структура объекта аналогична endContract |
workerAgreement.customerName |
string |
Имя заказчика в договоре с исполнителем |
workerAgreement.customerTaxValue |
string |
Налоговый номер заказчика в договоре с исполнителем |
workerAgreement.customerPhone |
string |
Номер телефона заказчика в договоре с исполнителем |
workerAgreement.performerName |
string |
Имя исполнителя |
workerAgreement.performerPhone |
string |
Номер телефона |
workerAgreement.performerCountry |
string |
Страна исполнителя |
workerAgreement.performerTaxValue |
string |
Налоговый номер исполнителя |
workerAgreement.contractNumber |
string |
Номер договора |
workerAgreement.contractDate |
string |
Дата договора |
workerAgreement.sum |
string |
Сумма в договоре |
workerAgreement.currency.currency |
string |
Название валюты в договоре |
workerAgreement.currency.id |
integer |
ИД валюты в договоре |
Чат задачи
В каждой задаче заказчик и фрилансер могут оставить сообщения. В данном разделе можно получить все сообщения, которые есть на данный момент, а также оставить новые.
Получить переписку по задаче
Пример запроса
curl -X GET "https://my.solarstaff.com/api/customer/tasks/583689/messages"
-H "accept: */*"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ..."
Метод используется для получения сообщений по запрашиваемой задаче.
Запрос
HTTP запрос
Path-параметры
В качестве параметра пути необходимо передать ID задачи.
Добавить сообщение в задаче
Пример запроса
curl -X POST "https://my.solarstaff.com/api/customer/tasks/messages"
-H "accept: */*"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ..."
-H "Content-Type: application/json"
-d '{
"taskId":583689,
"message:"Task is ready"
}'
Пример ответа
HTTP status code: 200 OK
Метод используется для добавления сообщения в задаче. Сообщения добавляются от имени авторизованного пользователя.
Запрос
HTTP запрос
Тело запроса
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
taskId |
integer |
Да | ID задачи |
message |
string |
Да | Текст сообщения |
Ответ
При успешном выполнении запроса возвращается пустой ответ.
Группа задач
Получить группы задач
Пример запроса
curl -X GET "https://my.solarstaff.com/api/customer/task-groups"
-H "accept: */*"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ..."
Пример ответа
HTTP status code: 200 OK
{
"items": [
{
"id": 650,
"companyId": 2955,
"color": "FFFFFF",
"title": "string",
"createdAt": "2021-12-01 20:59:52"
}
],
"pagination": {
"count": 3,
"total": 3,
"perPage": 20,
"page": 1,
"pages": 1
}
}
Метод используется для получения списка групп задач.
Запрос
HTTP запрос
Параметры
Дополнительных параметров запроса нет.
Ответ
Название свойства | Тип | Описание |
---|---|---|
items |
object |
Группы задач |
items.id |
integer |
ID группы задач |
items.companyId |
integer |
ID заказчика |
items.color |
string |
Цвет иконки группы |
items.title |
string |
Название группы |
items.createdAt |
string |
Дата создания группы задач |
pagination |
object |
Страницы |
pagination.count |
integer |
Текущая страница |
pagination.total |
integer |
Количество страниц |
pagination.perPage |
integer |
Количество задач на странице |
pagination.page |
integer |
Количество страниц |
pagination.pages |
integer |
Количество страниц |
Переименовать группу задач
Пример запроса
curl -X PUT "https://my.solarstaff.com/api/customer/task-groups"
-H "accept: */*"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ..."
-H "Content-Type: application/json"
-d "{
"groupId":650,
"title":"new name"
}"
Пример ответа
HTTP status code: 200 OK
{
"actorId": 100740,
"companyId": 2955,
"groupId": 650,
"title": "new name"
}
Метод используется для изменения названия группы задач.
Запрос
HTTP запрос
Тело запроса
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
groupId |
integer |
Да | ID группы |
title |
string |
Да | Новое названи группы задач |
Ответ
Название свойства | Тип | Описание |
---|---|---|
actorId |
integer |
ID пользователя, обновившего название группы задач |
companyId |
integer |
ID компании |
groupId |
integer |
ID группы задач |
title |
string |
Название группы задач |
Создать группу задач
Пример запроса
curl -X POST "https://my.solarstaff.com/api/customer/task-groups"
-H "accept: */*"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ..."
-H "Content-Type: application/json"
-d "{
"title": "new task group"
}"
Пример ответа
HTTP status code: 200 OK
{
"actorId": 100740,
"companyId": 2955,
"title": "new task group"
}
Метод используется для создания группы задач.
Запрос
HTTP запрос
Тело запроса
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
title |
string |
Да | Новое названи группы задач |
Ответ
Название свойства | Тип | Описание |
---|---|---|
actorId |
integer |
ID пользователя, запросившего создание задач |
companyId |
integer |
ID компании |
title |
string |
Название группы задач |
Удалить группу задач
Пример запроса
curl -X DELETE "https://my.solarstaff.com/api/customer/task-groups"
-H "accept: */*"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ..."
-H "Content-Type: application/json"
-d "{
"groupId": 650
}"
Пример ответа
HTTP status code: 200 OK
{
"actorId": 100740,
"companyId": 2955,
"groupId": 650
}
Метод используется для удаления группы задач.
Запрос
HTTP запрос
Тело запроса
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
groupId |
integer |
Да | ID группы задач |
Ответ
Название свойства | Тип | Описание |
---|---|---|
actorId |
integer |
ID пользователя, запросившего создание задач |
companyId |
integer |
ID компании |
groupId |
integer |
ID группы задач |
Файлы задачи
Добавить файл к задаче
Пример запроса
curl -X POST "https://my.solarstaff.com/api/customer/tasks/files"
-H "accept: */*"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ..."
-d '{
"uuid": "123e4567-e89b-12d3-a456-426655440000",
"file": "/Users/solar/tmp/1c_report_example.xml",
"type": "5"
}'
Пример ответа
HTTP status code: 200 OK
Метод используется для добавления файлов к задаче.
Запрос
HTTP запрос
Тело запроса
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
file |
string |
Да | Путь к файлу, который надо загрузить (например, /Users/solar/tmp/1c_report_example.xml ) |
taskId |
integer |
Обязателен один из параметров: taskId или uuid |
ID задачи. Для получения списка задач используется данный запрос. |
uuid |
string |
Обязателен один из параметров: taskId или uuid |
UUID задачи. |
type |
integer |
Да | Тип файла. Возможные значения:
|
Ответ
При успешном выполнении запроса возвращается пустой ответ.
Фрилансеры
Раздел содержит описание методов для управления фрилансерами: пригласить фрилансера, изменить его данные или удалить из команды заказчика.
Получить список фрилансеров
Пример запроса
curl -X GET "https://my.solarstaff.com/api/customer/freelancers?filter[taxationStatusId]=1"
-H "accept: */*"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ..."
-H "Content-Type: application/json"
Пример ответа
HTTP status code: 200 OK
{
"items": [
{
"id": 0,
"uuid": "1as7ac19-5y33-4a3a-94b3-b4a26374de4d"
"email": "string",
"name": "string",
"taxationStatusId": 0,
"taxationBlockedTill": "string",
"categoryTitle": "string",
"categoryTitleEn": "string",
"details": {
"firstName": "string",
"lastName": "string",
"note": "string",
"specialization": "string"
},
"country": "AM",
"isVerified": true,
"isInviteSent": true,
"inviteSentAt": "2021-12-23T18:48:40.800Z",
"registerDate": "2021-12-23T18:48:40.800Z",
"isRegistered": true
}
],
"pagination": {
"count": 20,
"total": 41,
"perPage": 20,
"page": 1,
"pages": 3
}
}
Запрос служит для получения списка фрилансеров.
Запрос
HTTP запрос
Параметры запроса
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
filter[taxationStatusId] |
integer |
Да | ID налогового статуса. Возможные значения:
|
filter[isVerified] |
boolean |
Да | Верифицирован ли аккаунт фрилансера |
filter[isInviteEmailSent] |
boolean |
Да | Признак того, было ли отправлено приглашение фрилансеру |
filter[dateInvitedFrom] |
string |
Да | Дата отправки приглашения (начало интервала) |
filter[dateInvitedTo] |
string |
Да | Дата отправки приглашения (окончание интервала) |
page |
integer |
Нет | Номер страницы для постраничного вывода |
size |
integer |
Нет | Количество элементов на странице (по умолчанию значение - 20, максимальное значение - 500) |
Ответ
Название свойства | Тип | Описание |
---|---|---|
items |
list |
Список фрилансеров |
items.id |
integer |
ID фрилансера |
items.uuid |
uuid |
UUID фрилансера |
items.email |
string |
Email фрилансера |
items.name |
string |
Имя фрилансера |
items.taxationStatusId |
integer |
Налоговый статус фрилансера |
items.taxationBlockedTill |
integer |
Дата, до которой налоговый статус не может быть изменен |
items.categoryTitle |
string |
Специализация фрилансера |
items.categoryTitleEn |
string |
Название специализации на английском языке |
items.details |
object |
Личные данные фрилансера |
items.details.firstName |
string |
Имя фрилансера |
items.details.lastName |
string |
Фамилия фрилансера |
items.details.note |
string |
Описание фрилансера |
items.details.specialization |
string |
Специализация фрилансера |
items.country |
string |
Код страны фрилансера (двухбуквенный код, например, AM - Армения) |
items.isVerified |
boolean |
Признак того, что аккаунт верифицирован |
items.isInviteSent |
boolean |
Признак того, что приглашение отправлено |
items.inviteSentAt |
string |
Дата отправки приглашения |
items.registerDate |
string |
Дата регистрации |
items.isRegistered |
boolean |
Признак того, что фрилансер подтвердил приглашение и заполнил личные данные |
items.isTaxPaymentAllowed |
boolean |
Признак включения автоуплаты налогов |
pagination |
list |
Постраничный вывод элементов |
pagination.count |
integer |
Количество возвращенных элементов |
pagination.total |
integer |
Всего элементов, доступных по запрашиваемому фильтру |
pagination.perPage |
integer |
Количество элементов на странице |
pagination.page |
integer |
Номер страницы |
pagination.pages |
integer |
Всего страниц |
Найти фрилансера по email
Пример запроса
curl -X GET "https://my.solarstaff.com/api/customer/freelancer-by-email/{email}"
-H "accept: */*"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ..."
-H "Content-Type: application/json"
Пример ответа
HTTP status code: 200 OK
{
"id": 1,
"uuid": "abc123",
"email": "[email protected]",
"name": "John Doe",
"taxationStatusId": 2,
"taxationBlockedTill": "2023-12-31",
"categoryTitle": "Категория",
"categoryTitleEn": "Category",
"details": {
"firstName": "Иван",
"lastName": "Иванов",
"note": "Примечание",
"specialization": "Специализация"
},
"isVerified": true,
"country": "RU",
"isInviteSent": true,
"inviteSentAt": "2023-11-16T10:44:40.694Z",
"registerDate": "2023-11-15T15:30:00.000Z",
"isRegistered": true,
"isTaxPaymentAllowed": true,
"emailConfirmationStatus": 1,
"phoneConfirmationStatus": 1
}
Запрос служит для поиска фрилансера по email.
Запрос
HTTP запрос
Path-параметры
В качестве параметра пути необходимо передать Email фрилансера.
Ответ
Название свойства | Тип | Описание |
---|---|---|
id |
integer |
ID фрилансера |
uuid |
integer |
UUID фрилансера |
email |
string |
Email фрилансера |
name |
string |
Имя фрилансера |
taxationStatusId |
integer |
Налоговый статус фрилансера |
taxationBlockedTill |
integer |
Дата, до которой налоговый статус не может быть изменен |
categoryTitle |
string |
Специализация фрилансера |
categoryTitleEn |
string |
Название специализации на английском языке |
details |
object |
Личные данные фрилансера |
details.firstName |
string |
Имя фрилансера |
details.lastName |
string |
Фамилия фрилансера |
details.note |
string |
Описание фрилансера |
details.specialization |
string |
Специализация фрилансера |
country |
string |
Код страны фрилансера (двухбуквенный код, например, AM - Армения) |
isVerified |
boolean |
Признак того, что аккаунт верифицирован |
isInviteSent |
boolean |
Признак того, что приглашение отправлено |
inviteSentAt |
string |
Дата отправки приглашения |
registerDate |
string |
Дата регистрации |
isRegistered |
boolean |
Признак того, что фрилансер подтвердил приглашение и заполнил личные данные |
isTaxPaymentAllowed |
boolean |
Признак включения автоуплаты налогов |
emailConfirmationStatus |
boolean |
Подтвержден ли email фрилансера |
phoneConfirmationStatus |
boolean |
Подтвержден ли номер телефона фрилансера |
Найти фрилансера по номеру телефона
Пример запроса
curl -X GET "https://my.solarstaff.com/api/customer/freelancer-by-phone/{phone}"
-H "accept: */*"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ..."
-H "Content-Type: application/json"
Пример ответа
HTTP status code: 200 OK
{
"id": 1,
"uuid": "abc123",
"email": "[email protected]",
"name": "John Doe",
"taxationStatusId": 2,
"taxationBlockedTill": "2023-12-31",
"categoryTitle": "Категория",
"categoryTitleEn": "Category",
"details": {
"firstName": "Иван",
"lastName": "Иванов",
"note": "Примечание",
"specialization": "Специализация"
},
"isVerified": true,
"country": "RU",
"isInviteSent": true,
"inviteSentAt": "2023-11-16T10:44:40.694Z",
"registerDate": "2023-11-15T15:30:00.000Z",
"isRegistered": true,
"isTaxPaymentAllowed": true,
"emailConfirmationStatus": 1,
"phoneConfirmationStatus": 1
}
Запрос служит для поиска фрилансера по номеру телефона.
Запрос
HTTP запрос
Path-параметры
В качестве параметра пути необходимо передать номер телефона фрилансера.
Ответ
Название свойства | Тип | Описание |
---|---|---|
id |
integer |
ID фрилансера |
uuid |
integer |
UUID фрилансера |
email |
string |
Email фрилансера |
name |
string |
Имя фрилансера |
taxationStatusId |
integer |
Налоговый статус фрилансера |
taxationBlockedTill |
integer |
Дата, до которой налоговый статус не может быть изменен |
categoryTitle |
string |
Специализация фрилансера |
categoryTitleEn |
string |
Название специализации на английском языке |
details |
object |
Личные данные фрилансера |
details.firstName |
string |
Имя фрилансера |
details.lastName |
string |
Фамилия фрилансера |
details.note |
string |
Описание фрилансера |
details.specialization |
string |
Специализация фрилансера |
country |
string |
Код страны фрилансера (двухбуквенный код, например, AM - Армения) |
isVerified |
boolean |
Признак того, что аккаунт верифицирован |
isInviteSent |
boolean |
Признак того, что приглашение отправлено |
inviteSentAt |
string |
Дата отправки приглашения |
registerDate |
string |
Дата регистрации |
isRegistered |
boolean |
Признак того, что фрилансер подтвердил приглашение и заполнил личные данные |
isTaxPaymentAllowed |
boolean |
Признак включения автоуплаты налогов |
emailConfirmationStatus |
boolean |
Подтвержден ли email фрилансера |
phoneConfirmationStatus |
boolean |
Подтвержден ли номер телефона фрилансера |
Получить данные фрилансера
Пример запроса
curl -X GET "https://my.solarstaff.com/api/customer/freelancers/12"
-H "accept: */*"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ..."
-H "Content-Type: application/json"
Пример ответа
HTTP status code: 200 OK
{
"id": 12,
"email": "[email protected]",
"name": "Ivanich",
"taxationStatusId": 0,
"taxationBlockedTill": "",
"categoryTitle": "Разработчик",
"categoryTitleEn": "Developer",
"details": {
"firstName": "Иван",
"lastName": "Иванов",
"note": "",
"specialization": "Developer"
},
"country": "AM",
"isVerified": true,
"isInviteSent": true,
"inviteSentAt": "2021-12-23T18:48:40.800Z",
"registerDate": "2021-12-23T18:48:40.800Z",
"isRegistered": true
}
Запрос служит для получения данных фрилансера по его ID или Uuid.
Запрос
HTTP запрос
Path-параметры
В качестве параметра пути необходимо передать ID или UUID фрилансера.
Ответ
Название свойства | Тип | Описание |
---|---|---|
id |
integer |
ID фрилансера |
uuid |
integer |
UUID фрилансера |
email |
string |
Email фрилансера |
phone |
string |
Номер телефона фрилансера |
name |
string |
Имя фрилансера |
taxationStatusId |
integer |
Налоговый статус фрилансера |
taxationBlockedTill |
integer |
Дата, до которой налоговый статус не может быть изменен |
categoryTitle |
string |
Специализация фрилансера |
categoryTitleEn |
string |
Название специализации на английском языке |
details |
object |
Личные данные фрилансера |
details.firstName |
string |
Имя фрилансера |
details.lastName |
string |
Фамилия фрилансера |
details.note |
string |
Описание фрилансера |
details.specialization |
string |
Специализация фрилансера |
country |
string |
Код страны фрилансера (двухбуквенный код, например, AM - Армения) |
isVerified |
boolean |
Признак того, что аккаунт верифицирован |
isInviteSent |
boolean |
Признак того, что приглашение отправлено |
inviteSentAt |
string |
Дата отправки приглашения |
isRegistered |
boolean |
Признак того, что фрилансер подтвердил приглашение и заполнил личные данные |
isTaxPaymentAllowed |
boolean |
Признак включения автоуплаты налогов |
emailConfirmationStatus |
boolean |
Подтвержден ли email фрилансера |
phoneConfirmationStatus |
boolean |
Подтвержден ли номер телефона фрилансера |
Пригласить фрилансера
Пример запроса
curl -X POST "https://my.solarstaff.com/api/customer/freelancers"
-H "accept: */*"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ..."
-H "Content-Type: application/json"
-d "{
"email": "[email protected]",
"note": "new developer",
"inEnglish": true,
"sendEmail": true
}"
Пример ответа
HTTP status code: 200 OK
{
"uuid": "b2e2671d-f850-493f-83ba-f236d3192974"
}
Запрос служит для добавления фрилансера в команду. После успешного вызова данного запроса фрилансер будет добавлен в вашу команду и вы сможете с ним работать. Фрилансера можно добавить 2 способами:
- по email. В этом случае необходимо передать email в описанный далее запрос. Если фрилансер еще не зарегистрирован в сервисе, то на указанную электронную почту придет приглашение для регистрации, где фрилансер сможет заполнить свои личные данные.
- по номеру телефона. В этом случае необходимо передать
phone
. Приглашение в этом случае не будет отправлено. После установки приложения или при регистрации в сервисе фрилансеру будет предложено заполнить полную форму регистрации.
В ответе на запрос будет возвращен UUID фрилансера, который вы в дальнейшем сможете использовать в запросах получения данных о фрилансере, удаления фриласнера из команды, получения данных о платежных инструментах или добавления новых платежных инструментов. Обратите внимание, что вы не можете задать свой UUID для нового фрилансера - он будет сгенерирован сервисом автоматически при регистрации фрилансера.
Запрос
HTTP запрос
Тело запроса
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
email |
string |
Обязательно, если не передан phone |
Email фрилансера |
phone |
string |
Обязательно, если не передан email |
Номер телефона фрилансера (формат телефона - только цифры, без пробелов и специальных символов) |
country |
string |
Да | Буквенный код страны фрилансера. Список стран см. в данном запросе |
firstName |
string |
Нет | Имя фрилансера |
lastName |
string |
Нет | Фамилия фрилансера |
middleName |
string |
Нет | Отчество фрилансера |
city |
string |
Нет | Город |
address |
string |
Нет | Адрес |
postalCode |
string |
Нет | Почтовый индекс |
note |
string |
Нет | Описание фрилансера |
inEnglish |
boolean |
Нет | Признак того, что приглашение необходимо отправлять на английском языке |
sendEmail |
boolean |
Нет | Признак того, необходимо ли отправлять сообщение. Если нет, то фрилансер будет добавлен в команду заказчика, но сообщение ему не будет отправлено. |
Если необязательные поля переданы, то при прохождении по ссылке-приглашению или после ввода номера телефона (если в данном запросе был передан phone
) фрилансер увидит добавленные значения и ему просто надо будет подтвердить регистрацию.
Ответ
Название свойства | Тип | Описание |
---|---|---|
uuid |
string |
UUID фрилансера |
Изменить данные профиля
Пример запроса
curl -X PUT "https://my.solarstaff.com/api/customer/freelancers"
-H "Accept: application/json"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ..."
-H "Content-Type: application/json"
-d "{
"freelancerId": 11,
"firstName": "Ivan",
"lastName": "Ivanov",
"note": "description",
"specialization": "25",
"freelancerUuid": "8e947213-c114-41ec-a9ae-0242ac130002",
"companyId": 2
}"
Данный запрос служит для изменения данных профиля фрилансера: имени, фамилии, специализации или описания.
Запрос
HTTP запрос
Тело запроса
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
freelancerId |
integer |
Да | Id фрилансера |
firstName |
string |
Нет | Имя фрилансера |
lastName |
string |
Нет | Фамилия фрилансера |
note |
string |
Нет | Описание фрилансера |
specialization |
integer |
Нет | Специализация фрилансера. Для получения списка специализаций фрилансеров см. следующий запрос. |
freelancerUuid |
uuid |
Нет | Uuid фрилансера |
companyId |
integer |
Нет | Id компании |
Ответ
При успешном выполнении запроса возвращается пустой ответ.
Запросить код для изменения контактных данных
Пример запроса
curl -X POST "https://my.solarstaff.com/api/customer/freelancers/request-code-for-change-contacts"
-H "Accept: application/json"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ..."
-H "Content-Type: application/json"
-d "{
"freelancerId": 1,
"email": "[email protected]",
"phone": "+1234567890"
} "
Данный запрос служит для изменения контактных данных фрилансера: номера телефона или email (изменить можно только один из параметров). В запросе необходимо передать новые значения контактных данных и ID фрилансера. После этого фрилансеру в смс будет отправлен код, который будет необходимо передать в запросе /api/customer/freelancers/change-contacts
(подробнее см. далее).
Запрос
HTTP запрос
Тело запроса
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
freelancerId |
integer |
Да | ID фрилансера |
email |
string |
Нет | Email фрилансера |
phone |
string |
Нет | Номер телефона фрилансера |
Ответ
При успешном выполнении запроса возвращается пустой ответ.
Подтвердить изменение контактных данных
Пример запроса
curl -X POST "https://my.solarstaff.com/api/customer/freelancers/change-contacts"
-H "Accept: application/json"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ..."
-H "Content-Type: application/json"
-d "{
"freelancerId": 1,
"code": "123123",
}"
Для изменения контактных данных фрилансера (номера телефона, email или обоих) используется приведенный ниже запрос в формате JSON. Важно передать в запросе уникальный код, полученный при выполнении запроса на изменение контактных данных, а также идентификатор (ID) фрилансера. Если предоставленный код верный, контактные данные фрилансера будут обновлены на те, которые были указаны в запросе изменения контактных данных.
Запрос
HTTP запрос
Тело запроса
Название параметра | Тип | Обязательный | Описание |
---|---|---|---|
freelancerId |
integer |
Да | ID фрилансера |
code |
string |
Да | Код, полученный в запросе на изменение контактных данных |
Ответ
При успешном выполнении запроса возвращается пустой ответ.
Сгенерировать ссылку верификации
Пример запроса
curl -X GET "https://my.solarstaff.com/api/customer/freelancers/verification-link?freelancerId=123"
-H "Accept: application/json"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ..."
-H "Content-Type: application/json"
Пример ответа
HTTP status code: 200 OK
{
"terminal_url":"https://link-to-verification-terminal"
}
Верификация аккаунта - акт подтверждения подлинности данных личности и документов. Подробнее про верификацию см. в базе знаний.
Данный запрос служит для генерации ссылки на верификацию, которую вы сможете отправить фрилансеру.
Запрос
HTTP запрос
Параметры запроса
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
freelancerId |
integer |
Да | Id фрилансера |
redirectUrl |
integer |
Нет | URL, на который будет возвращен исполнитель после верификации |
Ответ
Название свойства | Тип | Описание |
---|---|---|
terminal_url |
string |
URL терминала верификации |
Изменить налоговый статус фрилансера
Пример запроса
curl -X POST "https://my.solarstaff.com/api/customer/freelancers/change-taxation-status"
-H "Accept: application/json"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ..."
-H "Content-Type: application/json"
-d "{
"freelancerId": 123,
"taxationStatusId": 1
}"
Пример запроса с передачей Uuid:
curl -X POST "https://my.solarstaff.com/api/customer/freelancers/change-taxation-status"
-H "Accept: application/json"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ..."
-H "Content-Type: application/json"
-d "{
"freelancerUuid": "8e947213-c114-41ec-a9ae-0242ac130002",
"taxationStatusId": 1
}"
Пример ответа
HTTP status code: 200 OK
{
"linkToTerminal": "http://link.com"
}
Запрос служит для изменения налогового статуса фрилансера (применимо только для фрилансеров из России): - Если запрашивается смена статуса на физическое лицо, то статус меняется сразу и в ответе возвращается пустая строка. - Если запрашивается смена статуса на Самозанятого или ИП, то в ответе будет возвращена ссылка на страницу, где фрилансер сможет ввести свои налоговые данные.
Подробнее про налоговые статусы фрилансера из РФ см. здесь
Запрос
HTTP запрос
Тело запроса
Название параметра | Тип | Обязательный | Описание |
---|---|---|---|
freelancerId |
integer |
Обязателен один из параметров: freelancerId или freelancerUuid |
Id фрилансера |
freelancerUuid |
uuid |
Обязателен один из параметров: freelancerId или freelancerUuid |
UUID фрилансера, например, 8e947213-c114-41ec-a9ae-0242ac130002 |
taxationStatusId |
integer |
Да | Id налогового статуса. Возможные значения:
|
Ответ
Название свойства | Тип | Описание |
---|---|---|
linkToTerminal |
string |
URL терминала изменения налогового статуса |
Добавить налоговый номер фрилансера
Пример запроса
curl -X POST "https://my.solarstaff.com/api/customer/freelancers/add-tax-document"
-H "Accept: application/json"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ..."
-H "Content-Type: application/json"
-d "{
"freelancerId": 100934,
"type": "INN",
"taxNumber": "709849850606"
} "
Пример запроса с передачей Uuid:
curl -X POST "https://my.solarstaff.com/api/customer/freelancers/add-tax-document"
-H "Accept: application/json"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ..."
-H "Content-Type: application/json"
-d "{
"freelancerUuid": "8e947213-c114-41ec-a9ae-0242ac130002",
"type": "INN",
"taxNumber": "709849850606"
}"
Запрос служит для добавления налогового номера фрилансера. Например, для сохранения номера ИНН.
Запрос
HTTP запрос
Тело запроса
Название параметра | Тип | Обязательный | Описание |
---|---|---|---|
freelancerId |
integer |
Обязателен один из параметров: freelancerId или freelancerUuid |
Id фрилансера |
freelancerUuid |
uuid |
Обязателен один из параметров: freelancerId или freelancerUuid |
UUID фрилансера, например, 8e947213-c114-41ec-a9ae-0242ac130002 |
type |
string |
Да | Тип налогового документа. Возможные значения:
|
taxNumber |
string |
Да | Номер налогового документа |
Ответ
При успешном выполнении запроса возвращается пустой ответ.
Удалить фрилансера из команды
Пример запроса
curl -X DELETE "https://my.solarstaff.com/api/customer/freelancers"
-H "accept: */*"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ..."
-H "Content-Type: application/json"
-d "{
"freelancerId": 12
}"
Пример ответа
HTTP status code: 200 OK
При успешном выполнении запроса возвращается пустой ответ.
Запрос служит для удаления фрилансера из команды.
Запрос
HTTP запрос
Тело запроса
Название параметра | Тип | Обязательный | Описание |
---|---|---|---|
freelancerId |
integer |
Обязателен один из параметров: freelancerId или freelancerUuid |
ID фрилансера |
freelancerUuid |
string |
Обязателен один из параметров: freelancerId или freelancerUuid |
UUID фрилансера, например, 8e947213-c114-41ec-a9ae-0242ac130002 |
Ответ
При успешном выполнении запроса возвращается пустой ответ.
Проверить наличие новой оферты [устаревший]
Пример запроса
curl -X GET "https://my.solarstaff.com/api/customer/freelancers/check-requirements?taskUuid=1as7ac19-5y33-4a3a-94b3-b4a26374de4d"
-H "accept: */*"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ..."
-H "Content-Type: application/json"
Пример ответа
HTTP status code: 200 OK
{
"url": "http://solar-staff.com/agreement",
"templateUuid": "1as7ac19-5y33-4a3a-94b3-b4a26374de4d"
}
Запрос считается устаревшим. Мы настоятельно рекомендуем не использовать его в новых проектах и по возможности переходить на альтернативный метод для аналогичной функциональности - Проверка наличия ограничений для принятия задачи в работу.
Запрос служит для проверки наличия новых оферт, которые фрилансеру необходимо принять перед продолжением работы в сервисе (обязательно необходимо проверять запрос перед принятием задачи в работу). Далее вам необходимо будет отобразить фрилансеру новую оферту, убедиться, что он подтвердил свое согласие с ней и вызвать следующий запрос Принять оферту от лица фрилансера.
Запрос
HTTP запрос
Параметры запроса
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
taskUuid |
uuid |
Да | Uuid задачи, возвращается в запросе получения задачи по ID или получения списка задач |
freelancerUuid |
uuid |
Да | Uuid фрилансера, возвращается в запросе приглашения нового фрилансера |
Ответ
Если никаких ограничений нет, то возвращается пустой ответ.
Название свойства | Тип | Описание |
---|---|---|
url |
string |
URL документа, который требуется переподписать |
templateUuid |
uuid |
UUID документа |
code |
string |
Код ограничения |
reason |
string |
Причина ограничения (Задача входит в санкционный список, поэтому перед принятием ее в работу необходимо подписать оферту) |
Принять оферту
Пример запроса
curl -X POST "https://my.solarstaff.com/api/customer/freelancers/sign-agreement"
-H "accept: */*"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ..."
-H "Content-Type: application/json"
-d "{
"templateUuid": "1as7ac19-5y33-4a3a-94b3-b4a26374de4d",
"freelancerId": 100934
}"
Пример ответа
HTTP status code: 200 OK
При успешном выполнении запроса возвращается пустой ответ.
Запрос позволяет подписать оферту от лица фрилансера. В запросе проверки наличия новых оферт возвращаются ID оферты (который необходимо передать входным параметров в данный запрос) и ссылка на ее отображение (для показа ее фрилансеру в вашем сервисе).
Запрос
HTTP запрос
Тело запроса
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
freelancerId |
integer |
Обязателен один из параметров: freelancerId или freelancerUuid |
Id фрилансера |
freelancerUuid |
uuid |
Обязателен один из параметров: freelancerId или freelancerUuid |
UUID фрилансера, например, 8e947213-c114-41ec-a9ae-0242ac130002 |
templateUuid |
uuid |
Да | Uuid оферты |
Ответ
При успешном выполнении запроса возвращается пустой ответ.
Финансы
Баланс - денежные средства пользователя в системе, т.е. аналог банковского счёта в системе для пользователей и компаний. У каждого фрилансера существует три баланса в разных валютах: рублях, долларах и евро. У компании баланс может быть только в одной из указанных валют. Поэтому в запросах получения данных о балансе фрилансера всегда возвращаются данные только по балансу фрилансера, валюта которого совпадает с валютой компании.
Раздел включает в себя следующие блоки:
Создать выплату за задачу
Пример запроса
curl --location
--request POST 'https://my.solarstaff.com/api/customer/tasks/payout' \
--data-raw '{
"taskId": 583695,
"payoutEndpointType": 1,
"payoutEndpointId": 79093
}'
Пример ответа
HTTP status 200 OK
При успешном выполнении запроса возвращается пустой ответ.
Запрос используется для выплаты средств за оплаченную задачу с баланса фрилансера на карту / расчетный счет / кошелек. То есть запрос может быть использован только для выплаты средств за оплаченную задачу - нельзя передать произвольную сумму для выплаты с баланса фрилансера. В запрос необходимо будет передать ID задачи и платежного инструмента, куда необходимо отправить выплату. Также можно указать дополнительным параметром валюту, из которой будет выполнена конвертация в целевую валюту. Например, для вывода средств с баланса в рублях на банковскую карту Казахстана необходимо выполнить конвертацию в евро, иначе выплата не будет выполнена.
Запрос
HTTP запрос
Тело запроса
Название | Тип | Обязательность | Описание |
---|---|---|---|
taskId |
integer |
Обязателен один из параметров: taskId или uuid |
ID задачи. Для получения списка задач используется данный запрос. |
uuid |
string |
Обязателен один из параметров: taskId или uuid |
UUID задачи. |
payoutEndpointType |
string |
Да | Тип платежного инструмента. Возможные значения:
|
payoutEndpointId |
integer |
Да | ID платежного инструмента, который был добавлен фрилансером. Вы можете добавить новый платежный инструмент или выбрать платежный инструмент из тех, которые уже добавлены фрилансером. |
currencyId |
integer |
Нет | ID валюты, в которую надо сконвертировать выплату. Значения ID можно посмотреть в запросе получения списка валют. |
Ответ
При успешном выполнении запроса возвращается пустой ответ.
Получить статус выплаты по номеру задачи
Пример запроса
curl --location
--request GET 'https://my.solarstaff.com/api/customer/tasks/payout/432453' \
Пример ответа
HTTP status 200 OK
{
"payoutStatus": 2
}
Запрос используется для получения статуса выплаты. После создания выплаты вы можете вызвать данный запрос, чтобы убедиться, что выплата выполнена и деньги дошли до фрилансера.
Запрос
HTTP запрос
Path-параметры
В качестве параметра пути необходимо передать ID или uuid задачи. Для получения списка задач используется данный запрос.
Ответ
Название свойства | Тип | Описание |
---|---|---|
payoutStatus |
integer |
Статус выплаты. Возможные значения:
|
Получить список транзакций
Пример запроса
curl --location
--request GET 'https://my.solarstaff.com/api/customer/transactions' \
Пример ответа
HTTP status 200 OK
{ "items": [ { "id": 1710153, "type": 2, "amount": 1030, "createdAt": "2021-01-28 10:34:12", "currency": { "currency": "RUB", "id": 1 }, "balanceId": 246709 } ], "pagination": { "count": 20, "total": 383, "perPage": 20, "page": 1, "pages": 20 } }
Запрос используется для получения списка всех транзакций.
Запрос
HTTP запрос
Параметры
Дополнительных параметров запроса нет.
Ответ
Название свойства | Тип | Описание |
---|---|---|
id |
integer |
Id транзакции |
type |
integer |
Тип транзакции. Возможные значения:
|
amount |
float |
Сумма транзакции |
createdAt |
string |
Дата создания транзакции |
currency.currency |
string |
Название валюты |
currency.id |
integer |
Id валюты. |
balanceId |
integer |
Id баланса |
Получить платежные инструменты фрилансера
Пример запроса
curl --location
--request GET 'https://my.solarstaff.com/api/customer/freelancers/payout-endpoints?freelancerId=1' \
-H "accept: */*"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ..."
-H "Content-Type: application/json"
Пример ответа
HTTP status 200 OK
{
"wallets": [
{
"createdAt": "2021-07-20 06:33:14",
"currency": {
"currency": "RUB",
"id": 1
},
"id": 48998,
"number": "2099772984",
"status": 1,
"walletType": 2,
"type": 2,
"ownerId": 100870,
"autoPay": true
}
],
"cards": [
{
"createdAt": "2021-01-25 10:32:47",
"currency": {
"currency": "EUR",
"id": 3
},
"expire": "03/26",
"holder": "DINA BOOM",
"id": 79082,
"number": "5213 24** **** 9877",
"status": 4,
"cardType": 1,
"type": 1,
"ownerId": 100870,
"country": "RU",
"autoPay": true
}
],
"ibans": []
}
Запрос используется для получения списка доступных платежных инструментов фрилансеров.
Запрос
HTTP запрос
Параметры запроса
Название | Тип | Обязательность | Описание |
---|---|---|---|
freelancerId |
integer |
Обязателен один из параметров: freelancerId или freelancerUuid |
ID фрилансера |
freelancerUuid |
string |
Обязателен один из параметров: freelancerId или freelancerUuid |
UUID фрилансера, например, 8e947213-c114-41ec-a9ae-0242ac130002 |
Ответ
Название свойства | Тип | Описание |
---|---|---|
wallets |
string |
Добавленные фрилансером электронные кошельки |
wallets.createdAt |
string |
Дата добавления |
wallets.currency |
object |
Валюта |
wallets.currency.currency |
string |
Название валюты |
wallets.currency.id |
integer |
ID валюты |
wallets.id |
integer |
ID кошелька |
wallets.number |
string |
Номер кошелька |
wallets.status |
string |
Статус |
wallets.walletType |
string |
Тип кошелька. Возможные значения:
|
wallets.type |
string |
Тип платежного инструмента. Возможные значения:
|
wallets.ownerId |
string |
ID фрилансера |
wallets.autoPay |
boolean |
Установлена ли автовыплата на платежное средство |
cards |
string |
URL терминала для добавления платежного инструмента |
cards.createdAt |
string |
Дата добавления |
cards.currency |
object |
Валюта |
cards.currency.currency |
string |
Название валюты |
cards.currency.id |
integer |
ID валюты |
cards.expire |
string |
Дата окончания действия карты |
cards.holder |
string |
Фамилия и имя владельца |
cards.id |
string |
ID карты |
cards.number |
string |
Номер карты (возвращаются первые 6 и последние 4 цифры) |
cards.status |
string |
Статус. Возможные значения:
|
cards.cardType |
string |
Тип карты. Возможные значения:
|
cards.type |
string |
Тип платежного инструмента. Возможные значения:
|
cards.ownerId |
string |
ID фрилансера |
cards.country |
string |
Страна, где была выпущена банковская карта |
cards.autoPay |
boolean |
Установлена ли автовыплата на платежное средство |
iban |
string |
Добавленные фрилансером расчетные счета |
iban.createdAt |
string |
Дата добавления |
iban.currency |
object |
Валюта |
iban.currency.currency |
string |
Название валюты |
iban.currency.id |
integer |
ID валюты |
iban.id |
integer |
ID расчетного счета |
iban.number |
string |
Номер расчетного счета |
iban.status |
string |
Статус. Возможные значения:
|
iban.bankAccountType |
string |
Тип счета. Возможные значения:
|
iban.type |
string |
Тип платежного инструмента. Возможные значения:
|
iban.ownerId |
integer |
ID фрилансера |
iban.autoPay |
boolean |
Установлена ли автовыплата на платежное средство |
Добавить банковскую карту
Пример запроса
curl --location
--request POST 'https://my.solarstaff.com/api/customer/freelancers/cards' \
--data-raw '{
"code": 583695,
"freelancerId": 1
}'
Пример ответа
HTTP status 200 OK
{
"redirect": "https://link-to-payment-terminal",
"uuid": "425fcc9b-df96-4f15-85fe-f3e259be7442"
}
Запрос используется для добавления нового платежного инструмента для фрилансера. Запрос возвращает ссылку на терминал добавления платежного инструмента. Перед выполнением запроса необходимо также запросить код, который придет на номер телефона фрилансера. Процесс добавления нового платежного инструмента имеет следующий вид:
- запросить код, который будет отправлен на телефон фрилансера
- выполнить запрос добавления платежного инструмента, передав входящим параметром код, отправленный на предыдущем шаге -> запрос возвращает ссылку на терминал, где фрилансер может ввести данные платежного инструмента
- фрилансер заполняет данные нового платежного инструмента.
Запрос
HTTP запрос
Тело запроса
Название | Тип | Обязательность | Описание |
---|---|---|---|
code |
integer |
Да | Код, который был отправлен на номер телефона фрилансера |
freelancerId |
integer |
Обязателен один из параметров: freelancerId или freelancerUuid |
ID фрилансера |
freelancerUuid |
string |
Обязателен один из параметров: freelancerId или freelancerUuid |
UUID фрилансера, например, 8e947213-c114-41ec-a9ae-0242ac130002 |
redirectUrl |
integer |
Нет | URL, на который будет возвращен исполнитель после привязки платежного средства |
Ответ
Название свойства | Тип | Описание |
---|---|---|
redirect |
string |
URL терминала для добавления платежного инструмента |
uuid |
string |
UUID добавленного платежного средства, например, 8e947213-c114-41ec-a9ae-0242ac130002 |
Добавить счет
Пример запроса
curl --location
--request POST 'https://my.solarstaff.com/api/customer/freelancers/bank-accounts' \
--data-raw '{
"code": 583695,
"freelancerId": 1
}'
Пример ответа
HTTP status 200 OK
{
"redirect": "https://link-to-payment-terminal",
"uuid": "425fcc9b-df96-4f15-85fe-f3e259be7442"
}
Запрос используется для добавления нового счета для фрилансера. Запрос возвращает ссылку на терминал добавления платежного инструмента. Перед выполнением запроса необходимо также запросить код, который придет на номер телефона фрилансера. Процесс добавления нового счета имеет следующий вид:
- запросить код, который будет отправлен на телефон фрилансера
- выполнить запрос добавления платежного инструмента, передав входящим параметром код, отправленный на предыдущем шаге -> запрос возвращает ссылку на терминал, где фрилансер может ввести данные платежного инструмента
- фрилансер заполняет данные нового платежного инструмента.
Запрос
HTTP запрос
Тело запроса
Название | Тип | Обязательность | Описание |
---|---|---|---|
code |
integer |
Да | Код, который был отправлен на номер телефона фрилансера |
freelancerId |
integer |
Обязателен один из параметров: freelancerId или freelancerUuid |
ID фрилансера |
freelancerUuid |
string |
Обязателен один из параметров: freelancerId или freelancerUuid |
UUID фрилансера, например, 8e947213-c114-41ec-a9ae-0242ac130002 |
bankAccountType |
integer |
Да | Тип счета. Возможные значения:
|
redirectUrl |
integer |
Нет | URL, на который будет возвращен исполнитель после привязки платежного средства |
Ответ
Название свойства | Тип | Описание |
---|---|---|
redirect |
string |
URL терминала для добавления платежного инструмента |
uuid |
string |
UUID добавленного платежного средства, например, 8e947213-c114-41ec-a9ae-0242ac130002 |
Добавить электронный кошелек
Пример запроса
curl --location
--request POST 'https://my.solarstaff.com/api/customer/freelancers/wallets' \
--data-raw '{
"code": 583695,
"freelancerId": 1
}'
Пример ответа
HTTP status 200 OK
{
"redirect": "https://link-to-payment-terminal",
"uuid": "425fcc9b-df96-4f15-85fe-f3e259be7442"
}
Запрос используется для добавления нового электронного кошелька для фрилансера. Запрос возвращает ссылку на терминал добавления платежного инструмента. Перед выполнением запроса необходимо также запросить код, который придет на номер телефона фрилансера. Процесс добавления нового счета имеет следующий вид:
- запросить код, который будет отправлен на телефон фрилансера
- выполнить запрос добавления платежного инструмента, передав входящим параметром код, отправленный на предыдущем шаге -> запрос возвращает ссылку на терминал, где фрилансер может ввести данные платежного инструмента
- фрилансер заполняет данные нового платежного инструмента.
Запрос
HTTP запрос
Тело запроса
Название | Тип | Обязательность | Описание |
---|---|---|---|
code |
integer |
Да | Код, который был отправлен на номер телефона фрилансера |
freelancerId |
integer |
Обязателен один из параметров: freelancerId или freelancerUuid |
ID фрилансера |
freelancerUuid |
string |
Обязателен один из параметров: freelancerId или freelancerUuid |
UUID фрилансера, например, 8e947213-c114-41ec-a9ae-0242ac130002 |
walletType |
integer |
Да | Тип счета. Возможные значения:
|
redirectUrl |
integer |
Нет | URL, на который будет возвращен исполнитель после привязки платежного средства |
Ответ
Название свойства | Тип | Описание |
---|---|---|
redirect |
string |
URL терминала для добавления платежного инструмента |
uuid |
string |
UUID добавленного платежного средства, например, 8e947213-c114-41ec-a9ae-0242ac130002 |
Удалить банковскую карту
Пример запроса
curl --location
--request DELETE 'https://my.solarstaff.com/api/customer/freelancers/cards/123?freelancerId=123' \
Пример ответа
HTTP status 200 OK
Запрос используется для удаления банковской карты.
Запрос
HTTP запрос
Path-параметры
В качестве параметра пути необходимо передать ID платежного инструмента
Параметры запроса
Название | Тип | Обязательность | Описание |
---|---|---|---|
freelancerId или freelancerUuid |
integer |
Да | ID или Uuid фрилансера |
Ответ
При успешном выполнении запроса возвращается пустой ответ.
Удалить электронный кошелек
Пример запроса
curl --location
--request DELETE 'https://my.solarstaff.com/api/customer/freelancers/wallets/123?freelancerId=123' \
Пример ответа
HTTP status 200 OK
Запрос используется для удаления электронного кошелька фрилансера.
Запрос
HTTP запрос
Path-параметры
В качестве параметра пути необходимо передать ID платежного инструмента
Параметры запроса
Название | Тип | Обязательность | Описание |
---|---|---|---|
freelancerId или freelancerUuid |
integer |
Да | ID или Uuid фрилансера |
Ответ
При успешном выполнении запроса возвращается пустой ответ.
Удалить счет
Пример запроса
curl --location
--request DELETE 'https://my.solarstaff.com/api/customer/freelancers/bank-accounts/123?freelancerId=123' \
Пример ответа
HTTP status 200 OK
Запрос используется для удаления счета фрилансера.
Запрос
HTTP запрос
Path-параметры
В качестве параметра пути необходимо передать ID платежного инструмента
Параметры запроса
Название | Тип | Обязательность | Описание |
---|---|---|---|
freelancerId или freelancerUuid |
integer |
Да | ID или Uuid фрилансера |
Ответ
При успешном выполнении запроса возвращается пустой ответ.
Запросить код для добавления нового платежного инструмента
Пример запроса
curl --location
--request POST 'https://my.solarstaff.com/api/customer/freelancers/request-code-for-new-payout-endpoint' \
--data-raw '{
"freelancerId": 583695
}'
Пример ответа
HTTP status 200 OK
{
"type": "SMS",
"number": "412341"
}
Запрос используется для отправки кода подтверждения на номер телефона фрилансера. Для добавления нового платежного инструмента фрилансер должен подтвердить данную операцию.
Запрос
HTTP запрос
Тело запроса
Название | Тип | Обязательность | Описание |
---|---|---|---|
freelancerId |
integer |
Обязателен один из параметров: freelancerId или freelancerUuid |
ID фрилансера |
freelancerUuid |
string |
Обязателен один из параметров: freelancerId или freelancerUuid |
UUID фрилансера, например, 8e947213-c114-41ec-a9ae-0242ac130002 |
Ответ
Название свойства | Тип | Описание |
---|---|---|
type |
string |
Тип отправленного сообщения: SMS или Google. |
number |
string |
Номер телефона фрилансера, если было отправлено SMS-сообщение. |
Компания
Раздел содержит описание методов для управления компанией.
Получить компании пользователя
Пример запроса
curl -X GET "https://my.solarstaff.com/api/customer/companies"
-H "accept: */*"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ..."
Пример ответа
HTTP status code: 200 OK
{
"items": [
{
"id": 2955,
"companyName": "Цвет",
"brandName": "Цвет",
"safeDealEnabled": true,
"isDefault": true,
"currency": {
"currency": "RUB",
"id": 1
}
}
],
"pagination": {
"count": 1,
"total": 1,
"perPage": 20,
"page": 1,
"pages": 1
}
}
Запрос служит для получения компаний авторизованного пользователя.
Запрос
HTTP запрос
Параметры
Дополнительных параметров у запроса нет.
Ответ
Название свойства | Тип | Описание |
---|---|---|
id |
integer |
ID компании |
companyName |
string |
Название компании |
brandName |
string |
Название проекта |
safeDealEnabled |
boolean |
Включена ли безопасная сделка |
isDefault |
boolean |
Отображается ли данная компания по умолчанию |
currency |
object |
Валюта |
currency.currency |
string |
Название валюты |
currency.id |
integer |
ID валюты |
Изменить компанию
Пример запроса
curl -X PATCH "https://my.solarstaff.com/api/customer/companies"
-H "accept: */*"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ..."
-d "{
"companyId": 123
}"
Пример ответа
HTTP status code: 200 OK
{
"token": "eyJhbGciOiJIUzUxMiIsI...",
"refreshToken": "c84f18a2-c6c7-4850-be15-93f9cbaef3b3"
}
Запрос служит для выбора компании, с которой вы будете работать - если в вашем аккаунте добавлено несколько компаний, то этим запросом вы можете выбрать с какой компанией будете сейчас работать. В ответе запроса будет возвращен новый JWT токен, который необходимо использовать для аутентификации для всех остальных запросов.
Запрос
HTTP запрос
Тело запроса
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
companyId |
integer |
Да | ID компании. Список доступных вам компаний возвращается в этом запросе |
Ответ
Название свойства | Тип | Описание |
---|---|---|
token |
string |
JWT токен |
refreshToken |
string |
JWT токен, который используется для обновления токена |
Получить баланс компании
Пример запроса
curl -X GET "https://my.solarstaff.com/api/customer/balance
-H "accept: */*"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ..."
Пример ответа
HTTP status code: 200 OK
{
"currency": {
"currency": "RUB",
"id": 1
},
"showVat": true,
"balanceAmount": 1067273.53,
"balanceAmountVat": 213454.71,
"holdAmount": 149225.08,
"holdAmountVat": 29845.02
}
Запрос служит для получения баланса компании.
Запрос
HTTP запрос
Параметры
Дополнительных параметров запроса нет.
Ответ
Название свойства | Тип | Описание |
---|---|---|
currency |
object |
Валюта |
currency.currency |
string |
Название валюты |
currency.id |
integer |
ID валюты |
showVat |
boolean |
Отображается ли в задачах VAT |
balanceAmount |
string |
Баланс |
balanceAmountVat |
string |
VAT на балансе |
holdAmount |
string |
Захолдированная сумма |
holdAmountVat |
string |
Захолдированная сумма VAT |
Документы
Раздел содержит описание методов для управления документами.
Получить список документов
Пример запроса
curl -X GET "https://my.solarstaff.com/api/customer/documents"
-H "accept: */*"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ..."
-H "Content-Type: application/json"
Пример ответа
HTTP status code: 200 OK
{
"items": [
{
"fileId": 252345,
"type": 6,
"documentId": 10743,
"invoiceStatusId": 1,
"reportStatusId": null,
"amount": 100,
"number": "2955-211126-18",
"currency": {
"currency": "RUB",
"id": 1
},
"createdAt": "2021-11-26 04:54:39",
"topUpBalanceDate": "-0001-11-30 00:00:00",
"sfFileId": null
}
}
Запрос служит для получения списка документов.
Запрос
HTTP запрос
Параметры запроса
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
filter[type] |
integer |
Нет | Тип документа. Возможные значения:
|
filter[dateFrom] |
date |
Нет | Дата действия документа (начало интервала) |
filter[dateTo] |
date |
Нет | Дата действия документа (окончание интервала) |
sort |
string |
Нет | Параметр для сортировки результатов. Возможные значения:
|
direction |
string |
Нет | Направление сортировки. Возможные значения:
|
Ответ
Название свойства | Тип | Описание |
---|---|---|
fileId |
integer |
ID файла |
type |
integer |
Тип документа. Возможные значения:
|
documentId |
integer |
ID документа |
invoiceStatusId |
integer |
ID статуса инвойса |
reportStatusId |
integer |
ID статуса акта |
amount |
string |
Сумма в документе |
number |
string |
Номер документа |
currency |
object |
Валюта |
currency.currency |
string |
Название валюты |
currency.id |
string |
ID валюты |
createdAt |
string |
Дата генерации документа |
topUpBalanceDate |
string |
Дата пополнения баланса |
sfFileId |
boolean |
ID счета-фактуры (применимо для счетов, сгенерированных для пополнения баланса) |
Загрузить документ
Пример запроса
curl -X GET "https://my.solarstaff.com/api/customer/documents/download"
-H "accept: */*"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ..."
-H "Content-Type: application/json"
Пример ответа
HTTP status code: 200 OK
При успешном выполнении запроса возвращается пустой ответ
Запрос служит для загрузки документа - после успешного выполнения запроса ссылка на документ будет отправлена на ваш email.
Запрос
HTTP запрос
Параметры запроса
Название параметра | Тип | Обязательное | Описание |
---|---|---|---|
filter[type] |
integer |
Нет | Тип документа. Возможные значения:
|
filter[dateFrom] |
date |
Нет | Дата действия документа (начало интервала) |
filter[dateTo] |
date |
Нет | Дата действия документа (окончание интервала) |
Ответ
При успешном выполнении запроса возвращается пустой ответ и инициируется отправка email со ссылкой на скачивание документа (в формате zip архива).
Профиль пользователя
В разделе собраны запросы для работы с профилем пользователя:
Личные данные
Получить личные данные
Пример запроса
curl -X GET "https://my.solarstaff.com/api/profile"
-H "accept: */*"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ..."
-H "Content-Type: application/json"
Пример ответа
HTTP status 200 OK
{
"languageStringValue": "RU",
"name": "Ivanov Ivan",
"postCode": "123123",
"physicalAddress": "Moscow, Lenina 23",
"city": "Moscow",
"inn": "123123123",
"ip": "10.244.1.113",
"birthDate": "11.03.2000",
"gridsSettings": "{\"freelancers_table_column\":[\"expander\",\"date\",\"regDate\",\"email\",\"category\",\"freelancer\",\"notes\",\"paysystems\",\"invitationStatus\",\"freelancer_registered\",\"taxation_status_id\",\"freelancer_is_verified\",\"actions\"],\"ftasks_pageSize\":100,\"columns_ftasks\":[\"checkbox\",\"actions\",\"id\",\"merchant_txid\",\"creator_name\",\"payer_name\",\"worker_name\",\"worker_email\",\"taxation_status\",\"id_uploaded\",\"note\",\"groups\",\"task_title\",\"description\",\"task_caption\",\"task_attributes\",\"date_create\",\"price\",\"price_to_pay\",\"price_with_vat\",\"currency\",\"date\",\"date_end\",\"date_finished\",\"date_paid\",\"reports\",\"intellectual_property\",\"status\",\"deadline\"]}",
"loginNotification": true,
"id": 100,
"uuid": "2b69eb5d-e0e3-11ec-95b5-fa84c4fedfee",
"email": "[email protected]",
"username": "[email protected]",
"firstName": "Иван",
"middleName": "",
"lastName": "Иванов",
"regDate": "2020-10-30",
"twoFaMethod": "sms",
"taxationStatus": 1,
"phone": "44454545",
"country": "RU",
"state": null,
"flags": 0,
"type": "customer",
"defaultSmsGate": null,
"language": "RU",
"isVerified": false,
"specialization": null
}
Метод используется для получения личных данных авторизованного пользователя.
Запрос
HTTP запрос
Параметры
В запросе дополнительных параметров нет. Применимо только для авторизованного пользователя.
Ответ
Название | Тип | Описание |
---|---|---|
postCode |
string |
Индекс почтового адреса пользователя |
physicalAddress |
string |
Адрес пользователя |
city |
string |
Город |
inn |
string |
ИНН (применимо для пользователей из России) |
ip |
string |
IP-адреса, с которых разрешен вход |
birthDate |
string |
Дата рождения |
gridsSettings |
object |
[Системное поле] Настройки интерфейса личного кабинета |
id |
integer |
ID пользователя |
email |
string |
Email пользователя |
username |
string |
Логин пользователя |
firstName |
string |
Имя пользователя |
middleName |
string |
Отчество пользователя |
lastName |
string |
Фамилия пользователя |
regDate |
string |
Дата регистрации |
twoFaMethod |
boolean |
Признак того, включена ли двухфакторная аутентификация |
taxationStatus |
string |
Налоговый статус пользователя (применимо только для фрилансеров) |
phone |
string |
Телефон пользователя |
country |
string |
Страна пользователя |
state |
string |
Регион пользователя |
flags |
string |
|
type |
string |
[Системное поле] Тип пользователя: заказчик или фрилансер |
language |
string |
Язык интерфейса пользователя |
isVerified |
string |
Верифицирован ли пользователь (применимо только для фрилансеров) |
Настройки аккаунта
Изменить язык
Пример запроса
curl -X PUT "https://my.solarstaff.com/api/profile/language"
-H "accept: */*"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ..."
-H "Content-Type: application/json"
-d "{
"language": "RU"
}"
Пример ответа
HTTP status 200 OK
При успешном выполнении запроса ожидается пустой ответ.
Метод используется для изменения языка - будет изменен язык для всех сообщений, категорий задач и т.д. Доступные варианты: русский (RU) и английский (EN).
Запрос
HTTP запрос
Тело запроса
Название | Тип | Обязательность | Описание |
---|---|---|---|
language |
string |
Да | Название языка. Возможные варианты:
|
Ответ
При успешном выполнении запроса ожидается пустой ответ.
Справочник
В разделе приведены запросы получения вариантов значений различных параметров. Например, валют, типов дедлайнов и налоговых статусов.
Список валют
Пример запроса
curl --location
--request GET 'https://my.solarstaff.com/api/lookups/currencies' \
Пример ответа
HTTP status 200 OK
{
"RUB": 1,
"USD": 2,
"EUR": 3
}
Метод используется для получения списка валют и их ID.
Запрос
HTTP запрос
Параметры
Дополнительных параметров запроса нет.
Ответ
Название | Тип | Описание |
---|---|---|
<код валюты> |
integer |
ID валюты |
Курс валют
Пример запроса
curl --location
--request GET 'https://my.solarstaff.com/api/exchanges' \
Пример ответа
HTTP status 200 OK
[
{
"base": {
"currency": "EUR",
"id": 3
},
"target": {
"currency": "RUB",
"id": 1
},
"rate": 79.401
},
{
"base": {
"currency": "USD",
"id": 2
},
"target": {
"currency": "RUB",
"id": 1
},
"rate": 74.329
},
{
"base": {
"currency": "EUR",
"id": 3
},
"target": {
"currency": "USD",
"id": 2
},
"rate": 1.0576
},
{
"base": {
"currency": "RUB",
"id": 1
},
"target": {
"currency": "EUR",
"id": 3
},
"rate": 81.8194
},
{
"base": {
"currency": "RUB",
"id": 1
},
"target": {
"currency": "USD",
"id": 2
},
"rate": 76.5928
},
{
"base": {
"currency": "USD",
"id": 2
},
"target": {
"currency": "EUR",
"id": 3
},
"rate": 1.0898
}
]
Метод используется для получения актуального курса валют.
Примеры расчета сумм после конвертации:
Валюта вывода | Валюта выплаты | Курс конвертации | Пример расчета |
---|---|---|---|
EUR | RUB | 79.401 | 1000 EUR * 79.401 = 79401 RUB |
USD | RUB | 74.329 | 1000 USD * 74.329 = 74329 RUB |
EUR | USD | 1.0576 | 1000 EUR * 1.0576 = 1057.6 USD |
RUB | EUR | 81.8194 | 1000 RUB / 81.8194 = 12.23 EUR |
RUB | USD | 76.5928 | 1000 RUB / 76.5928 = 13.06 USD |
USD | EUR | 1.0898 | 1000 USD / 1.0898 = 917.43 EUR |
Запрос
HTTP запрос
Параметры
Дополнительных параметров запроса нет.
Ответ
Название | Тип | Описание |
---|---|---|
base.currency |
string |
Название основной валюты, которую надо перевести в другую |
base.id |
integer |
ID основной валюты |
target.currency |
string |
ID требуемой валюты, в которую будет выполнен перевод |
target.id |
integer |
ID требуемой валюты, в которую будет выполнен перевод |
rate |
integer |
Курс |
Дедлайны задач
Пример запроса
curl --location
--request GET 'https://my.solarstaff.com/api/lookups/deadlines' \
Пример ответа
HTTP status 200 OK
{
"SOFT": 1,
"HARD": 2
}
Метод используется для получения дедлайнов и их ID.
Запрос
HTTP запрос
Параметры
Дополнительных параметров запроса нет.
Ответ
Название | Тип | Описание |
---|---|---|
<тип дедлайна> |
integer |
ID дедлайна |
Налоговые статусы
Пример запроса
curl --location
--request GET 'https://my.solarstaff.com/api/lookups/taxation-statuses' \
Пример ответа
HTTP status 200 OK
{
"NATURAL": 1,
"NATURAL_TITLE": "Natural person",
"SELF_EMPLOYED": 3,
"SELF_EMPLOYED_TITLE": "Self employed person",
"SOLE_PROPRIETOR": 4,
"SOLE_PROPRIETOR_TITLE": "Individual entrepreneur"
}
Метод используется для получения налоговых статусов и их ID.
Запрос
HTTP запрос
Параметры
Дополнительных параметров запроса нет.
Ответ
Название | Тип | Описание |
---|---|---|
<налоговый статус> |
integer |
ID налогового статуса |
<налоговый статус>_TITLE |
string |
Название налогового статуса |
Категории задач
Пример запроса
curl --location
--request GET 'https://my.solarstaff.com/api/customer/lookups/categories' \
Пример ответа
HTTP status 200 OK
{
"items": [
{
"id": 1,
"title": "Печатные СМИ",
"titleEn": "Printed mass media"
},
{
"id": 2,
"title": "Интернет-реклама",
"titleEn": "Internet advertising"
}
]
}
Метод используется для получения категорий задач.
Запрос
HTTP запрос
Параметры
Дополнительных параметров запроса нет.
Ответ
Название | Тип | Описание |
---|---|---|
id |
integer |
ID категории |
title |
string |
Название категории задач |
titleEn |
string |
Название категории задач (на английском языке) |
Название услуг и работ
Пример запроса
curl --location
--request GET 'https://my.solarstaff.com/api/lookups/services/1' \
Пример ответа
HTTP status 200 OK
{
"items": [
{
"id": 3,
"title": "Копирайтинг",
"titleEn": "Copywriting",
"titleDoc": "Написание текстов статей/обзоров",
"titleDocEn": "Сopywriting of texts of articles/reviews"
},
{
"id": 2,
"title": "Работы по созданию иллюстраций к текстам (включая фотографию)",
"titleEn": "Work on creation of illustrations for texts (incl. photos)",
"titleDoc": "Работы по созданию иллюстраций (включая фотографические) к текстам статей периодического СМИ",
"titleDocEn": "Work on creation of illustrations (incl. photos) for texts of articles of periodic mass media"
}
]
"pagination": {
"count": 20,
"total": 23,
"perPage": 9999,
"page": 1,
"pages": 1
}
}
Метод используется для получения услуг и работ по запрашиваемой категории задач.
Запрос
HTTP запрос
Path-параметры
В качестве параметра пути необходимо передать ID категории задач.
Параметры
Название | Тип | Описание |
---|---|---|
page |
integer |
Нет |
size |
integer |
Нет |
Ответ
Название | Тип | Описание |
---|---|---|
id |
integer |
ID услуги и работы |
title |
string |
Название услуги и работы |
titleEn |
string |
Название услуги и работы (на английском языке) |
titleDoc |
string |
Название услуги и работы в акте |
titleDocEn |
string |
Название услуги и работы в акте (на английском языке) |
pagination |
list |
Постраничный вывод элементов |
pagination.count |
integer |
Количество возвращенных элементов |
pagination.total |
integer |
Всего элементов, доступных по запрашиваемому фильтру |
pagination.perPage |
integer |
Количество элементов на странице |
pagination.page |
integer |
Номер страницы |
pagination.pages |
integer |
Всего страниц |
Атрибуты задач
Пример запроса
curl --location
--request GET 'https://my.solarstaff.com/api/lookups/service-attributes/1' \
Пример ответа
HTTP status 200 OK
{
"items": [
{
"id": 6,
"title": "Наименование СМИ",
"titleEn": "Name of mass media",
"type": "text"
},
{
"id": 9,
"title": "Номер издания",
"titleEn": "Issue",
"type": "text"
},
{
"id": 31,
"title": "Формат видео",
"titleEn": "Video format",
"type": "select",
"attrTypeId": 11,
"options": [
{
"id": 26,
"value": "SD",
"valueEn": "SD"
},
{
"id": 27,
"value": "HD",
"valueEn": "HD"
},
{
"id": 29,
"value": "FullHD",
"valueEn": "FullHD"
},
{
"id": 28,
"value": "UHD",
"valueEn": "UHD"
},
{
"id": 30,
"value": "4K",
"valueEn": "4K"
}
]
},
],
"pagination": {
"count": 20,
"total": 23,
"perPage": 9999,
"page": 1,
"pages": 1
}
}
Метод используется для получения атрибутов по запрашиваемой услуге.
Запрос
HTTP запрос
Path-параметры
В качестве параметра пути необходимо передать ID услуги.
Параметры
Название | Тип | Описание |
---|---|---|
id |
integer |
ID услуги |
page |
integer |
Нет |
size |
integer |
Нет |
Ответ
Название | Тип | Описание |
---|---|---|
items |
list |
Элементы списка |
items.id |
integer |
ID атрибута |
items.title |
string |
Название атрибута |
items.titleEn |
string |
Название атрибута (на английском языке) |
items.attrTypeId |
integer |
ID типа атрибута |
options |
object |
Значения атрибута (для типа select) |
options.id |
integer |
ID значения |
options.value |
string |
Текст |
options.valueEn |
string |
Текст на английском |
pagination |
list |
Постраничный вывод элементов |
pagination.count |
integer |
Количество возвращенных элементов |
pagination.total |
integer |
Всего элементов, доступных по запрашиваемому фильтру |
pagination.perPage |
integer |
Количество элементов на странице |
pagination.page |
integer |
Номер страницы |
pagination.pages |
integer |
Всего страниц |
Дополнительные документы для принятия задачи
Пример запроса
curl --location
--request GET 'https://my.solarstaff.com/api/customer/lookups/acceptance-files' \
Пример ответа
HTTP status 200 OK
{
"items": [
{
"id": 1049,
"fileId": 123,
"title": "Соглашение о неразглашении (NDA)",
"titleEn": "Non-disclosure agreement"
}
]
}
Метод используется для получения списка документов, которые обязательно должен принять фрилансер перед выполнением задач. Например, NDA. Если вы хотите загрузить подобный документ в сервис, то обратитесь в техническую поддержку.
Запрос
HTTP запрос
Параметры
Дополнительных параметров запроса нет.
Ответ
Название | Тип | Описание |
---|---|---|
id |
integer |
ID документа |
fileId |
integer |
ID файла с документом |
title |
string |
Название документа |
titleEn |
string |
Название документа (на английском языке) |
Специализации фрилансера
Пример запроса
curl --location
--request GET 'https://my.solarstaff.com/api/lookups/specializations' \
Пример ответа
HTTP status 200 OK
[
{
"id": 1,
"title": "Бухгалтер",
"titleEn": "Accountant",
},
{
"id": 158,
"title": "Актер",
"titleEn": "Actor",
}
]
Метод используется для получения доступных специализаций для фрилансера.
Запрос
HTTP запрос
Параметры
Дополнительных параметров запроса нет.
Ответ
Название | Тип | Описание |
---|---|---|
id |
integer |
ID специализации |
title |
string |
Название специализации |
titleEn |
string |
Название специализации (на английском языке) |
Коды стран
Пример запроса
curl --location
--request GET 'https://my.solarstaff.com/api/customer/ord/get-arccw-codes' \
Пример ответа
HTTP status 200 OK
{
"items": [
{
"id": 1049,
"title": "Латвия"
}
]
}
Метод используется для получения списка стран и их идентификаторов из Общероссийского классификатора стран мира.
Запрос
HTTP запрос
Параметры
Дополнительных параметров запроса нет.
Ответ
Название | Тип | Описание |
---|---|---|
id |
integer |
ID страны |
title |
string |
Название страны |
WebHooks
WebHooks - уведомления сервисов о событиях, выполненных в Solar-staff. Вы можете добавить собственный URL, на который будут отправляться все доступные уведомления о событиях. Для добавления URL, на который будут отправляться сообщения, используйте этот запрос. Далее вы можете настроить на своей стороне обработку только нужных событий. Solar-staff всегда отправляет все доступные события на добавленный вами URL-адрес, а далее вы можете на своей стороне добавить обработку только нужных вам событий (для определения типа события используйте поле name
).
Доступные события:
- регистрация фрилансера. Если вы работаете по АПИ, то фрилансеру необходимо самостоятельно завершить регистрацию. Вы можете настроить webhook, чтобы вам пришло уведомление после того, как фрилансер перейдет по ссылке из письма и заполнит форму регистрации
- добавление/удаление платежного инструмента. Добавление платежного инструмента также выполняется лично фрилансером, поэтому можно настроить уведомление вашего сервиса после того, как фрилансер добавит платежный инструмент
- изменение налогового статуса исполнителя
- подключение или отключение автоуплаты налога для физических лиц из России
Пример сообщения, которое будет отправлено на указанный URL:
{
"timestamp": 1674539549,
"name": "cardAdded",
"payload": {
"ownerId": 6,
"id": 11
}
}
Параметры:
name
- название события,payload
- данные по событию. Возможные значения:- для добавления платежного инструмента будут возвращены параметры ownerId - ид пользователя, который добавил карту и id - ид платежного средства
- для регистрации фрилансера будет возвращен uuid фрилансера
- для изменения налогового статуса исполнителя (применимо только для фрилансеров из РФ) будет возвращен uuid фрилансера и налоговый статус
- для автоуплаты налога физических лиц будет возвращен uuid фрилансера и значение true, если автоуплата включена и false, если отключена
timestamp
- дата события
В каждом запросе передается специальный заголовок X-Sign
, с подписью содержимого. Подпись считается как sha256(body . secret)
. Где:
secret
- секрет, который доступен в запросеGET api/v1/customer/web-hook
body
- тело запроса
Если у вас несколько компаний, то для настройки webhook для каждой из них необходимо перейти в нужную компанию и выполнить запрос на создание webhook.
Если сервис, на который была настроена отправка, не отвечает, или отвечает HTTP кодом, отличным от 200
, то Solar-staff будет продолжать пытаться отправить уведомление в течение 24 часов.
Получить webhook
Пример запроса
curl --location
--request GET 'https://my.solarstaff.com/api/customer/web-hook' \
Пример ответа
HTTP status 200 OK
{
"url": "https://webhook.site/588190fc-47d6-47f2-bded-17216bfe6e92",
"status": "enabled",
"secret": "bb940556f36a5ae58063f151e51f5318",
"lastTriggered": null,
"lastError": null
}
Метод используется для получения подробностей по webhook.
Запрос
HTTP запрос
Параметры
Дополнительных параметров нет.
Ответ
Название | Тип | Описание |
---|---|---|
url |
string |
URL, на который будут отправляться уведомления |
status |
string |
Статус. Доступные параметры:
|
secret |
string |
Код, который будет дополнительно приходить в каждом отправленном уведомлении |
lastTriggered |
string |
Время отправки последнего уведомления |
lastError |
string |
Время последнего недоставленного уведомления |
Создать/обновить webhook
Пример запроса
curl --location
--request POST 'https://my.solarstaff.com/api/customer/web-hook' \
--data-raw '{
"status" : "enabled",
"url" : "https://test.com"
}'
Пример ответа
HTTP status 200 OK
Метод используется для добавления или обновления webhook. То есть, для добавления URL-адреса, на который будут отправляться все доступные события: добавление и удаление платежного инструмента фрилансера. Для включения отправки событий передайте входящим параметром для поля status
значение enabled
, а для отключения отправки событий - значение disabled
.
Запрос
HTTP запрос
Параметры
Название | Тип | Обязательность | Описание |
---|---|---|---|
status |
string |
Да | Статус. Доступные параметры:
|
url |
string |
Да | URL, на который необходимо отправить уведомление |
Ответ
При успешном выполнении запроса возвращается пустой ответ.
Удалить webhook
Пример запроса
curl --location
--request DELETE 'https://my.solarstaff.com/api/customer/web-hook' \
--data-raw '{
"status" : "enabled",
"url" : "https://test.com"
}'
Пример ответа
HTTP status 200 OK
Метод используется для удаления webhook.
Запрос
HTTP запрос
Параметры
Дополнительных параметров нет.
Ответ
При успешном выполнении запроса возвращается пустой ответ.
Коллекция Postman
С SolarStaff API можно работать с помощью подготовленной коллекции запросов Postman. В описании коллекции вы найдете краткую инструкцию о работе с переменными и выполнении запросов в Postman.
Для использования коллекции запросов Postman:
Шаг 1
Откройте коллекцию запросов Postman
Шаг 2
Нажмите Fork Collection, чтобы скопировать коллекцию запросов в свое рабочее пространство в Postman.
В открывшемся окне укажите название копии и рабочего пространства, в котором будет создана копия коллекции. Установите флажок Watch original collection, если хотите получать уведомления об изменении в оригинальной коллекции запросов.
Введите название и выберите рабочее пространство.
Шаг 3
Перейдите в запрос токена и заполните ваши данные для авторизации.
Шаг 4
Перейдите в настройки коллекции и скопируйте полученный токен в блоке авторизации коллекции
Release notes
Август 2024
Добавлен:
- Добавлен параметр shareCommission в запрос управления задачами вместо compensateWorkerServiceFee. Теперь вы можете разделить 1% комиссии с фрилансером.
Июнь 2024
Добавлен запрос получения списка специализаций для фрилансера.
Апрель 2024
Добавлены:
- новые события для вебхуков: регистрация фрилансера, изменение налогового статуса фрилансера и включение / отключение автоуплаты налога
- параметр для компенсации комиссии фрилансера
compensationType
в запрос создания задачи. Параметр определяет тип платежного средства, куда фрилансер будет выводить средства. Для разных платежных средств процент комиссии отличается, поэтому параметр позволяет определить точный процент комиссии для фрилансера. - в ответе запроса добавления платежных средств добавлен параметр UUID платежного средства.
- при получении списка платежных средств теперь возвращается параметр, который показывает установлена ли автовыплата на это платежное средство.
Ноябрь 2023
В ответ запроса получения списка документов для принятия задачи в работу добавлен параметр fileId
.
Добавлен параметр компенсации комиссии фрилансера compensateWorkerServiceFee
в запрос создания задачи.
Октябрь 2023
В запрос создания выплаты за задачу теперь можно передать валюту, через которую необходимо выполнить конвертацию перед выводом средств.
Август 2023
Добавлены:
- Запрос добавления налоговых данных фрилансера
- Запрос изменения личных данных фрилансера
- Разаллокация для ОРД. Подробнее см здесь
Июль 2023
Добавлены:
- Запрос получения выплаты по задаче
Май 2023
Добавлены:
Март 2023
Добавлены:
- Запросы проверки наличия новых оферт для фрилансера и подтверждение согласия с офертами
- Запрос выбора компании пользователя
- Запросы удаления платежных инструментов фрилансера (банковской карты, счета или электронного кошелька)
- В запросе добавления заказчика для ОРД для заказчиков не из РФ теперь обязательный параметр Код ОКСМ
Январь 2023
Добавлены:
- Параметр
redirect_url
(адрес, куда будет возвращен пользователь) в методы привязки карты, счета и кошелька, а также верификации фрилансера - В ответе запроса получения списка фрилансеров теперь возвращается признак включения автоуплаты налогов