Privileged and Confidential This endpoint design has been confidentially shared with you. It is still under development and is subject to change without notice. Please do not share this document or API endpoint details with anyone who is not authorized to have access. For more information read about scopes.
Generate a report based on the report type for the organization. The report fetches the data for all the child orgs in the org hierarchy based on the organisation uuid passed in the request.
Resource
v1/vehicle-suppliers/suppliers/:org_id/reports
HTTP Method
POST
Access Method
Client Credentials
Required scopes
Primary - solutions.suppliers.reports
Usage
The client should access the Get Organizations API that fetches the child organizations for the given organisation. This API returns the encrypted IDs for the linked organizations . The clients can then use the encrypted organization ID in the below request for the generateReport API for generating the report.
For getting the master organisation’s encrypted uuid please reach out to support team.
Example Request
curl --location 'https:
--header "Authorization: Bearer <TOKEN>" \
-H "Content-Type: application/json" \
--data '{
"reportType": "<report_type>",
"filters": [
{
"field": "dateRange",
"operator": "OPERATOR_IN_RANGE",
"value": [
"1687559400000",
"1687732199000"
]
}
]
}'
Request Path Parameters
Name |
Type |
Required |
Description |
org_id |
string |
Y |
Encrypted organisation UUID. |
Request Body Parameters
Name |
Type |
Required |
Description |
filters |
Array of Filter |
N |
This has a list of filters that needs to be added for specific report types to be generated. |
reportType |
string |
Y |
This is an enum . Values are mentioned in ReportType |
Filter
Name |
Type |
Required |
Description |
field |
string |
N |
This represents the field on which the filter needs to be applied. (example:- “dateRange”) |
operator |
Enum Operator |
Y |
This is an enum which represents eligible operators. |
value |
List of strings |
Y |
Values which need to be applied as filters. |
Example Response
{
"report": {
"id": "dsuirhwiuhrfbryrurptpt",
"fileName": "abcs.csv",
"orgId": "qoiewoifpwionfwoinwovmow4ivmp",
"reportType": "REPORT_TYPE_DRIVER_QUALITY",
"startTime": "2023-03-30T00:13:55.926Z",
"endTime": "2023-03-30T00:13:55.926Z",
"status": "REPORT_STATUS_IN_PROGRESS",
"failedReason": "REPORT_GENERATION_FAILED_REASON_NONE",
"createdAt": "2023-06-30T00:13:55.926Z",
"updatedAt": "2023-06-30T00:13:55.926Z",
"completedAt": "2023-06-30T00:13:58.926Z"
}
}
Response Fields
Name |
Type |
Description |
report |
Object of Report |
Report |
Request Entities
Operator
Name |
Value |
Description |
OPERATOR_IN_RANGE |
OPERATOR_IN_RANGE |
Operator to be used for range filters (example date range filter to add filter between 2 date range a,b) |
OPERATOR_IN |
OPERATOR_IN |
Operator to be used for in filters |
Response Entities
Report
Name |
type |
Description |
id |
string |
This is the report id. |
fileName |
string |
This is the file name for requested report. |
orgId |
string |
This is organization id (obfuscated). |
reportType |
string |
Represents the type of the report ReportType. |
startTime |
string |
ISO UTC time format for example 2023-03-30T00:13:55.926Z. |
endTime |
string |
ISO UTC time format for example 2023-03-30T00:13:55.926Z. |
status |
string |
Represents the generation status of the report ReportStatus. |
failedReason |
string |
One of the values in FailedReason. |
createdAt |
string |
ISO UTC time format for example 2023-03-30T00:13:55.926Z. |
updatedAt |
string |
ISO UTC time format for example 2023-03-30T00:13:55.926Z. |
completedAt |
string |
ISO UTC time format for example 2023-03-30T00:13:55.926Z, represents the time when the report generation was completed. |
ReportType
Name |
Description |
REPORT_TYPE_ORGANIZATION |
List of organizations. |
REPORT_TYPE_PAYMENTS_ORDER |
Report having payment information for orders. |
REPORT_TYPE_PAYMENTS_DRIVER |
Report having payment information for driver. |
REPORT_TYPE_PAYMENTS_ORGANIZATION |
Report having payment information for organization. |
REPORT_TYPE_DRIVER_QUALITY |
Report having driver quality related information. |
REPORT_TYPE_DRIVER_ACTIVITY |
Report having driver activity related information. |
REPORT_TYPE_TRIP_ACTIVITY |
Report having trips related information. |
REPORT_TYPE_DRIVER_STATUS |
Report having driver realtime status and onboarding status related information. |
REPORT_TYPE_DRIVER |
Report having driver information. |
REPORT_TYPE_TRIP |
Report having trip information. |
REPORT_TYPE_VEHICLE_PERFORMANCE |
Report having vehicle performance related information. |
REPORT_TYPE_DRIVER_PERFORMANCE |
Report having driver performance related information. |
REPORT_TYPE_BACKFILL_REALTIME_DRIVER_STATUS_CHANGE_WEBHOOK_EVENTS |
Report containing failed delivery events for REALTIME_DRIVER_STATUS_CHANGE webhook |
ReportStatus
Name |
Description |
REPORT_STATUS_COMPLETED |
Report generation is completed. |
REPORT_STATUS_FAILED |
Report generation failed due to some issue. |
REPORT_STATUS_IN_PROGRESS |
Report generation is in progress. |
FailedReason
Name |
Description |
REPORT_GENERATION_FAILED_REASON_INTERNAL_SERVER_ERROR |
Failed due to some internal error. |
REPORT_GENERATION_FAILED_REASON_NONE |
No failure occured. |
Notes
- DateRange to be passed in request should be in epoch format(milliseconds) and UTC timezone.
- For example, if we intend to download the report for date 24th June 2023 to 25th June 2023 IST timezone, then the epoch values to be sent in the filter request should be 1687559400000, 1687645800000.
- The date represented in the supplier portal List view for reports generated through this endpoint will have a date in yyyy-mm-dd format with the supplier’s configured timezone.
- In 3hour time frame (computed from the request time for the latest request), there can be only six reports(irrespective of reportType) in progress status per organization uuid. Hence, we can have six reports concurrently generated per organization uuid. The additional generate request will error out and won’t perform report generation.
Rate Limit
- Rate limit for this endpoint is 600 requests per 10 minutes per Developer Application.
Endpoint Specific Errors
Http Status Code |
Code |
Message |
400 |
bad_request |
The request parameters are invalid. |
500 |
internal_server_error |
Internal server error. |
403 |
unauthenticated |
User does not have permission. |
429 |
rate_limited |
Number of requests exceeds allowed limit. |
503 |
service_unavailable |
Service unavailable. |
401 |
unauthorized |
Invalid OAuth 2.0 credentials. |