«method»: «expense_report.get_after_change»
В query передается параметр start_date в формате datetime.
В ответе возвращаются все отчеты, у которых дата последнего изменения >= start_date в запросе.
Пользователь запрашивает все изменения отчетов начиная с какого-то момента.
Запрос
{
"jsonrpc": "2.0",
"id": 1,
"method": "expense_report.get_after_change",
"params": {
"authorization": {
"username": "username@smartway.today",
"password": "password"
},
"query": {
"start_date": "2021-06-20"
}
}
}
Ответ
{
"jsonrpc": "2.0",
"result": [
{
"report_id": 263,
"company_id": 29585,
"period_start": "2023-05-17T14:32:05",
"period_end": "2023-05-23T14:32:05",
"status": "Created",
"employee": {
"employee_id": 2657,
"name": "Олег",
"surname": "Карпов",
"patronymic": "Юрьевич"
},
"last_change_date": "2023-05-24T11:32:47.331024",
"prepayments": [
{
"method": 0,
"type": 0,
"amount": 4900
},
{
"method": 0,
"type": 1,
"amount": 10000
}
],
"expenses": [
{
"type": 0,
"name": "химчистка",
"number": "67865",
"amount": 500,
"vat": 0,
"vat_rate": 6,
"date": "2023-05-17T00:00:00"
}
],
"expenses_total": 500,
"prepayments_total": 14900,
"total": 5400,
"items": []
}
],
"id": 1
}
Структура ответа:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| report_id | int | да | Идентификатор авансового отчета в системе Smartway |
| company_id | int | да | Идентификатор компании в системе Smartway |
| period_start | datetime | да | Начало периода, за который отчитывается командируемый |
| period_end | datetime | да | Конец периода, за который отчитывается командируемый |
| status | enum | да | Статус авансового отчета. Возможные значения: Created - создан WaitingSend1C - ожидает отправки в 1с Send1C - отправлен в 1с ErrorSend1C - ошибка при отправке в 1с WaitingApprove - ожидает подтверждения Approved - подтвержден Declined - отклонен |
| employee | object | да | Сотрудник |
| last_change_date | datetime | да | Дата последнего изменения авансового отчета в системе Smartway |
| prepayments | array of objects | нет | Авансы и суточные |
| expenses | array of objects | нет | Расходы к учету |
| expenses_total | decimal | да | Сумма расходов к учету |
| prepayments_total | decimal | да | Сумма суточных и авансов |
| total | decimal | да | Общая сумма суточных, авансов и расходов к учету |
| items | array of objects | нет | Массив услуг, приобретенных в Smartway, по поездке, по которой отчитывается командируемый |
employee
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| employee_id | int | да | id сотрудника в системе Smartway |
| name | string | да | Имя пассажира |
| surname | string | да | Фамилия пассажира |
| patronymic | string | да | Отчество пассажира |
item
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| trip_id | int | да | id поездки в системе Smartway |
| item_id | int | да | id услуги в системе Smartway |
| service_type | enum | да | Вид услуги: air - авиа train - жд aeroexpress - аэроэкспресс |
expenses
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| amount | decimal | да | Сумма расхода |
| name | string | да | Наименование расхода |
| number | string | да | Реквизиты подтверждающего документа: номер документа |
| date | datetime | да | Реквизиты подтверждающего документа: дата документа |
| type | enum | да | Вид документа: «type»: 2 - другой бланк, «type»: 1 - товарный чек, «type»: 0 - кассовый чек |
| vat | decimal | нет | Сумма НДС |
| vat_rate | int | да, если vat <> null |
Ставка НДС Возможные значения: 1 - 20% 2 - 10% 3 - 20/120 4 - 10/110 5 - 0% 6 - без НДС 7 - 5% 8 - 7% 9 - 5/105 10 - 7/107 |
prepayments
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| amount | decimal | да | Сумма аванса или сумма суточных |
| method | enum | да | Тип выплаты: «method»: 1 на карту, «method»: 0 наличные |
| type | enum | да | Тип расхода: «type»: 0 - суточные, «type»: 1 - аванс |
«method»: «expense_report_approval_scheme.list»
В query передается пустая строка. В ответ получаем список всех схем согласования авансовых отчетов, которые есть у аккаунта.
Запрос
{
"jsonrpc": "2.0",
"id": "777",
"method": "expense_report_approval_scheme.list",
"params":
{
"authorization":
{
"username": "username@smartway.today",
"password": "password"
},
"query" : { }
}
}
Ответ
{
"id": "777",
"jsonrpc": "2.0",
"result": [
{
"id": 37,
"name": "схема 1"
},
{
"id": 45,
"name": "схема 2"
},
// ... etc.
]
}
Структура ответа:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| id | int | да | идентификатор схемы согласования в системы Смартвэй |
| name | string | да | название схемы согласования |
«method»: «expense_report.get_files»
В query передается идентификатор авансового отчета в системе Smartway. В ответ получаем вложение, состоящее из ZIP-архива закодированного в base64.
Запрос
{
"jsonrpc": "2.0",
"id": 1,
"method": "expense_report.get_files",
"params": {
"authorization": {
"username": "username@smartway.today",
"password": "password"
},
"query": 271
}
}
Ответ (содержимое content сокращено)
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": "JVBERi0xLjQKJdP0zO.........AAAAAAAA="
}
}