Create a detailed interim report for tracking project progress during active project phases. This endpoint combines financial drawdown data, risk status assessments, and site visit documentation into a single comprehensive report.
Request Body
The unique identifier of the project for which the interim report is being created
The month of the reporting period (1-12)
The year of the reporting period
The edition number of the report (defaults to 1 for new reports)
General comments or notes about the project status for this reporting period
Aggregate financial information for the reporting period Total amount drawn down across all facilities
Overall surplus (positive) or shortfall (negative) amount
Array of facility-specific drawdown information Identifier of the project facility
Amount drawn down for this facility
Facility-specific surplus or shortfall amount
Array of risk assessment entries for the reporting period ID of the risk input setting being assessed
ID of the risk status legend entry that applies
Notes explaining the risk assessment or changes from previous period
Site visit information (optional, only include if a site visit occurred) Date of the site visit in YYYY-MM-DD format
Detailed notes from the site visit
Array of files (photos, documents) from the site visit Original filename of the uploaded file
S3 location path where the file is stored
Size of the file in bytes
MIME type of the file (e.g., image/jpeg, application/pdf)
Example Request
{
"project_id" : "123456789" ,
"month" : 6 ,
"year" : 2024 ,
"edition" : 1 ,
"comments" : "Q2 progress showing strong advancement on main structure" ,
"aggregate" : {
"amount" : 150000 ,
"surplus_shortfall" : 5000
},
"facility" : [
{
"facility_id" : "987654321" ,
"amount" : 75000 ,
"surplus_shortfall" : 2500
},
{
"facility_id" : "987654322" ,
"amount" : 75000 ,
"surplus_shortfall" : 2500
}
],
"riskStatus" : [
{
"input_setting_id" : "111" ,
"risk_status_legend_id" : "222" ,
"notes" : "Risk level maintained at low due to good weather conditions"
},
{
"input_setting_id" : "333" ,
"risk_status_legend_id" : "444" ,
"notes" : "Material delivery risk increased due to supply chain delays"
}
],
"visit" : {
"date" : "2024-06-15" ,
"notes" : "Foundation work completed ahead of schedule. Steel frame installation proceeding well. No safety issues observed." ,
"files" : [
{
"filename" : "foundation_complete.jpg" ,
"s3_location" : "projects/123456789/site-visits/2024-06/foundation_complete.jpg" ,
"file_size" : 2048576 ,
"mime_type" : "image/jpeg"
},
{
"filename" : "steel_frame_progress.jpg" ,
"s3_location" : "projects/123456789/site-visits/2024-06/steel_frame_progress.jpg" ,
"file_size" : 1536789 ,
"mime_type" : "image/jpeg"
}
]
}
}
Response
Returns the created report with its unique identifier:
Unique identifier of the created interim report
ISO timestamp when the report was created
ID of the associated project
Month of the reporting period
Year of the reporting period
Edition number of the report
ID of the template used for report generation
Report type (will be “INTERIM_REPORT”)
Example Response
{
"id" : "789012345" ,
"created_date" : "2024-06-20T10:30:00.000Z" ,
"project_id" : "123456789" ,
"month" : 6 ,
"year" : 2024 ,
"edition" : 1 ,
"template_id" : "555666777" ,
"type" : "INTERIM_REPORT"
}
Automatic Actions
When an interim report is successfully created, the system automatically:
Creates Project Event : Logs a REPORT_UPLOADED event for audit tracking
Updates Project Comments : Saves the comments field to the project record
Applies Template : Uses the first available interim report template for the environment
Validates Data : Ensures all required data relationships exist and are valid
Error Responses
Bad Request - Missing required fields or invalid data format{
"statusCode" : 400 ,
"message" : "Project ID is required" ,
"error" : "Bad Request"
}
Forbidden - User does not have access to the specified project{
"statusCode" : 403 ,
"message" : "User does not have access to this project" ,
"error" : "Forbidden"
}
Not Found - Project or referenced entities not found{
"statusCode" : 404 ,
"message" : "Project not found" ,
"error" : "Not Found"
}
Notes
All monetary amounts should be provided as numbers (not strings)
Site visit information is optional - omit the entire visit object if no visit occurred
Risk status assessments are required for all interim reports
The system automatically determines the appropriate template based on the project’s environment
File uploads must be completed separately before creating the report - provide S3 locations in the request