API Usage Workflow
- Authenticate using the
auth/v1endpoint to obtain a JWT token - Use the token in subsequent requests in the X-Authorization header
- Generate a report using the
/report/generateendpoint - Check report status using the URL returned in the response
- Since reports take time to generate, the API follows a polling approach where users request a report, then periodically check its status until completion.
- Download the completed report when status indicates it’s ready
Authentication of API user
API users must authenticate using JWT tokens passed in theX-Authorization header with the format Bearer YOUR-JWT-TOKEN. Tokens can be obtained from the auth/v1 endpoint using client credentials (clientId and clientSecret).
For testing purposes, you can request test credentials from the support team.
Error Handling
The API returns appropriate HTTP status codes and detailed error messages:- 400: Bad Request - Invalid parameters or request structure
- 401: Unauthorized - Missing or invalid authentication token
- 403: Forbidden - Insufficient permissions for the requested operation
- 429: Too Many Requests - Rate limit exceeded
- 500: Internal Server Error - Something went wrong on the server side
Testing in Staging Environment
- URL: https://operator-financial-reporting.staging.ezprk.dev
- Database: Contains sample parking transactions for testing purposes
- Test Operator ID: 60879 (use this ID for testing report generation)
- Data Range: Test data is available for last two days, each day having 5 records
- Authentication: Use test credentials provided by the support team
- Rate Limits: 30 requests per 10 min in test environment
Report Formats and Limitations
- Available formats: JSON or CSV
- Maximum report size: 100,000 records
- Historical data available: Up to 3 months from current date
- Default columns: Always included in the report
- Additional fields: Can be requested as needed
Response Format and Pagination
- All successful responses use HAL+JSON format with hypermedia links
- Long-running operations follow the HATEOAS pattern with self-referencing links
- Reports follow an asynchronous generation pattern with status polling