Reports API
General notes
Embeddable fields
| Name | Type | Description |
|---|---|---|
report_setting | ReportSetting | Report setting for report ReportSetting. |
project | Project | Project of report Project. |
edit_allowed | bool | Indicates if tasks to_invoice_price and to_invoice_time can be edited. |
Content
Reports collection:
Single report:
Report to PDF
Approve report
More:
Reports collection
Reports index
This method needs permission
accessonreports
Request
| Index behaviour | Definition |
|---|---|
| Paginated by default | Yes |
| Sorting | id, name, report_setting_id, to_invoice_price, is_active, state, approved_at, sent_at, invoiced_at, from_at, to_at, created_at, updated_at, hash |
| Filters | id:enum, name:string, report_setting_id:int, to_invoice_price:int, is_active:int, state:bool, approved_at:date, sent_at:date, invoiced_at:date, from_at:int, to_at:date, created_at:date, updated_at:date, hash:string |
| Embedded | - |
GET /api/v0/reports HTTP/1.1
Content-Type: application/json
Responses
200 OK
GET /api/v0/reports HTTP/1.1
Content-Type: application/json
{
"items": [
{
"id": 11,
"name": "01 Initiation",
"report_setting_id": 11,
"to_invoice_price": 9500,
"is_active": true,
"state": 1,
"approved_at": null,
"sent_at": null,
"invoiced_at": null,
"from_at": "2023-01-01T00:00:00+0100",
"to_at": "2023-01-31T23:59:59+0100",
"created_at": "2023-01-11T15:46:49+0100",
"updated_at": "2023-01-11T17:26:10+0100",
"hash": "heXH149oREPbrv0KJeqrQF9eABosyDYP3LIPuigJP90uezEGHVvJFpLoKQkdIfJS",
"_links": [
{
"href": "/api/v0/reports/11",
"rel": "self",
"type": "GET"
}
]
}
],
"_meta": {
"page": 1,
"total_pages": 5,
"records": 5,
"per_page": 1
}
}
Single report
Report detail
GET /api/v0/reports/{report_id}
This method needs permission
readonreports.
Get Report detail.
Request
| Index behaviour | Definition |
|---|---|
| Embedded | - |
Request
GET /api/v0/reports/11 HTTP/1.1
Content-Type: application/json
Response
200 OK
GET /api/v0/reports/11 HTTP/1.1
Content-Type: application/json
{
"id": 11,
"name": "01 Initiation",
"report_setting_id": 11,
"to_invoice_price": 9500,
"is_active": true,
"state": 1,
"approved_at": null,
"sent_at": null,
"invoiced_at": null,
"from_at": "2023-01-01T00:00:00+0100",
"to_at": "2023-01-31T23:59:59+0100",
"created_at": "2023-01-11T15:46:49+0100",
"updated_at": "2023-01-11T17:26:10+0100",
"hash": "heXH149oREPbrv0KJeqrQF9eABosyDYP3LIPuigJP90uezEGHVvJFpLoKQkdIfJS",
"_links": [
{
"href": "/api/v0/reports/11",
"rel": "self",
"type": "GET"
}
]
}
404 NOT FOUND
Report was not found.
GET /api/v0/reports/50 HTTP/1.1
Content-Type: application/json
Status-Code: 404
{
"type": "NotFound",
"message": "Required model was not found.",
"id": "0cd85449-05fe-4866-9802-8192e6785fc7"
}
Update report
PUT/PATCH /api/v0/reports/{report_id}
This method needs permission
updateonreports.
Method for updating Report data.
Request
| Param | Type | Description | Requirements |
|---|---|---|---|
state | int | Report state | Required. Must be enumerator of report_state |
invoice_number | int | Report invoice number | Required. |
For PATCH method any field can be omitted.
PUT /api/v0/reports/1 HTTP/1.1
Content-Type: application/json
{
"state": 2,
"invoice_number": 20230001
}
Response
200 OK
Report successfully updated.
PUT /api/reports/1 HTTP/1.1
Content-Type: application/json
{
"id": 11,
"name": "01 Initiation",
"report_setting_id": 11,
"to_invoice_price": 9500,
"is_active": true,
"state": 2,
"approved_at": null,
"sent_at": "2023-01-13T14:18:22+0100",
"invoiced_at": null,
"from_at": "2023-01-01T00:00:00+0100",
"to_at": "2023-01-31T23:59:59+0100",
"created_at": "2023-01-11T15:46:49+0100",
"updated_at": "2023-01-13T14:18:22+0100",
"hash": "heXH149oREPbrv0KJeqrQF9eABosyDYP3LIPuigJP90uezEGHVvJFpLoKQkdIfJS",
"_links": [
{
"href": "/api/v0/reports/11",
"rel": "self",
"type": "GET"
}
]
}
404 NOT FOUND
Report was not found.
PUT /api/v0/reports/2 HTTP/1.1
Content-Type: application/json
Status-Code: 404
{
"type": "NotFound",
"message": "Required model was not found.",
"id": "0cd85449-05fe-4866-9802-8192e6785fc7"
}
422 UNPROCESSABLE ENTITY
Validation error occurred.
PUT /api/v0/reports/2 HTTP/1.1
Content-Type: application/json
{
"type" : "ValidationError",
"message" : "The given data was invalid.",
"id" : "fe1b04de-b347-43b5-8118-864c1eefaccf",
"errors": [
{
"field": "state",
"message": "The state field is required."
}
]
}
Delete report
DELETE /api/v0/reports/{report_id}
This method needs permission
deleteonreports.
Method for deleting Report.
Request
DELETE /api/v0/reports/1 HTTP/1.1
Content-Type: application/json
Response
204 NO CONTENT
Report successfully deleted.
404 NOT FOUND
Report was not found.
DELETE /api/v0/reports/1 HTTP/1.1
Content-Type: application/json
Status-Code: 404
{
"type": "NotFound",
"message": "Required model was not found.",
"id": "0cd85449-05fe-4866-9802-8192e6785fc7"
}
Download report as PDF
GET /api/v0/reports/{report_id}/download-pdf
This method needs report hash
Request
GET /api/v0/reports/6/download-pdf?hash=GyhrUFdG84Buc9EVVHqvkJevxATxs6KLVwipvXS07jdSqa5vaPiSJZip2o4U21QP
Content-Type: application/json
Response
403 FORBIDDEN
Incorrect hash given.
404 NOT FOUND
Report was not found.
200 OK
Report as PDF will be downloaded and shown.
Approve Report
POST /api/v0/reports/{report_id}/approved
This method requires hash and logged-in User or known ClientUserAgent.
Request
GET /api/v0/reports/6/approved
Content-Type: application/json
{
"hash": "xACuGpAo8GZF4kHHuKBj6MsqoHcsTX5Et73ZTvVgF77khjbn"
}
Response
403 FORBIDDEN
Incorrect hash given.
401 UNAUTHORIZED
User is not logged-in and client's user-agent is unknown.
404 NOT FOUND
Report was not found.
200 OK
Report is approved by User or Client. Report copy as PDF is saved to the server and email is sent to responsible person.
View Public Report
This method needs report hash
Embeddable fields
| Name | Type | Description |
|---|---|---|
report_setting | ReportSetting | Report setting for report ReportSetting. |
responsible_user | ResponsibleUser | |
report_tasks | ReportTask | Collection of ReportTasks. |
Request
GET /api/v0/reports/6/public?hash=GyhrUFdG84Buc9EVVHqvkJevxATxs6KLVwipvXS07jdSqa5vaPiSJZip2o4U21QP
Content-Type: application/json
403 FORBIDDEN
Incorrect hash given.
404 NOT FOUND
Report was not found.
200 OK
Report will be shown.
Issue external (idoklad) invoice
GET /api/v0/reports/{report_id}/issue-invoice
This method requires permissions
updateon Report.Request
GET /api/v0/reports/6/issue-invoice
Content-Type: application/json
204 NO CONTENT
Report will be converted to new IDoklad invoice.