Update an existing inspection report
require 'uri'
require 'net/http'
url = URI('https://api.keeptruckin.com/v2/inspection_reports/1')
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request['Authorization'] = "Bearer <OAUTH_TOKEN>"
request['Content-Type'] = 'application/json'
params = {
:status => 'corrected'
}
request.body = params.to_json
response = http.request(request)
puts response.read_body
Add External Ids
To add external ids to an inspection report record just add the following to the request body. External ID represents a unique identifier for an inspection report in an external system. The name of this external system is stored as integration_name
. The combination of external_id
and integration_name
will always be unique.
{
"status":"corrected",
# other attributes for an inspection report
...
...
...
# add external id for inspection report
"external_ids_attributes":[
{
"external_id":"987",
"integration_name":"generic_tms"
}
]
}
Add Mechanic Details (Defect Level Resolution)
To add mechanic details to an inspection report record , simply include the following in the defect_statuses
field within the request body: mechanic_note
, mechanic_id
, mechanic_name
, status
, mechanic_signed_at
, and resolved_defects
. resolved_defects
should be an array containing the IDs of inspected parts.
{
"defect_statuses": {
"status":"repaired",
# other attributes for defect statuses
...
...
...
# add mechanic details
"mechanic_note": "this is a mechanic note",
"mechanic_id": 1053583,
"mechanic_name": "Name of Mechanic",
"mechanic_signed_at": "2023-10-09T00:00:00-05:00",
"resolved_defects": [4311],
}
Responses based on enabled features
Depending upon the features enabled for your company you will receive variations in the response payload as per the details given below,
If you have Custom Defect List feature enabled and the driver has used the inspection form with Custom Defect List enabled, you will receive defects
object inside every object in inspected_parts
array which specifies the type of defect. title
specifies the name of the defect selected by the driver for a part, whereas severity
defines if the selected defect is a major
or minor
defect. If any of the defect selected for a part by the driver has severity as major the part will be considered to have a major defect.
If you have Defect Level Resolution feature enabled you will receive mechanic_details
in objects inside theinspected_parts
array along with the status
of the part. Please note mechanic_signature_url
and mechanic_signed_at
values at the inspection_report
object level will be null
, since the mechanic details are contained inside every inspected_part
. The status of a part can be one of these values open
, repaired
, no_repair_needed
and good
. Also note that, you will receive resolver
object inside the mechanic_details
object and a mechanic_name
inside mechanic_details
separately, here mechanic
object specifies the logged in user(dispatcher/fleet manager) where as mechanic_name
is the name entered(could be different from the logged in user) while resolving the defect.
If Defect Level Resolution is enabled external_resolver_id
can be supplied as a request body parameter in defect_statuses
. The external_resolver_id
serves as an identifier for the resolver within your system. This will be supplied back in Motive's public APIs related to inspection reports only and will not be visible on the dashboard.
Note: If you have Defect Level Resolution enabled, status
field passed in PUT API will not update the status of the inspection report and will result in an error as below with 400 http status code.
{error: "inspection report status update is not allowed when defect level resolution is enabled"}
{
"inspection_report": {
"id": 9,
"log_id": 1,
"date": "2016-07-22",
"time": "2016-07-22T14:00:00Z",
"odometer": 253,
"carrier_name": "Demo Carrier",
"location": "Omaha, NE",
"status": "corrected",
"mechanic_signed_at": "2016-07-22T14:00:00Z",
"mechanic_signature_url": "https://keep-truckin-development.s3.amazonaws.com/uploads/inspection_report/mechanic_signature_upload/9/open-uri20160712-30633-thc30n?AWSAccessKeyId=AKIAJH12345&Expires=1481274629&Signature=Qi1mXnl0ylJ5tCuds789Ocq44L4%3D",
"driver_signed_at": "2016-07-22T14:00:00Z",
"driver_signature_url": "https://keep-truckin-development.s3.amazonaws.com/uploads/inspection_report/driver_signature_upload/9/open-uri20160729-30645-1jeoj77?AWSAccessKeyId=AKIAJH12345&Expires=1481274629&Signature=Qi1mXnl0ylJ5tCuds789Ocq44L4%3D",
"reviewer_signed_at": "2016-07-22T14:00:00Z",
"reviewer_signature_url": "https://keep-truckin-development.s3.amazonaws.com/uploads/inspection_report/reviewer_signature_upload/9/open-uri20160729-30645-1jeoj77?AWSAccessKeyId=AKIAJH12345&Expires=1481274629&Signature=Qi1mXnl0ylJ5tCuds789Ocq44L4%3D",
"entity_num": "entity_num",
"entity_type": "vehicle",
"is_rejected": false,
"inspection_type": "pre-trip",
"declaration": "I declare that this vehicle has been inspected in accordance with the applicable requirements.",
"inspected_parts": [
{
"id": 5,
"category": "Brakes",
"notes": "notes",
"type": "major",
"picture_url": "https://keep-truckin-preview.s3.amazonaws.com/uploads/defect/picture_upload/23137/15c31555-6642-4215-a3cd-81def1d329012396939324379336808.jpg?X"
}
],
"not_inspected_parts": [
{
"category": "9 - Emergency Equipment & Safety Devices"
},
{
"category": "15 - Heater/Defroster"
}
],
"vehicle": {
"id": 4,
"number": "Demo Vehicle",
"year": "2016",
"make": "Demo",
"model": "Vehicle",
"vin": "WP0AB2966NS458669",
"metric_units": false
},
"asset": {
"id": 101,
"make": "Toyota",
"metric_units": true,
"model": "Camry",
"name": "V123",
"year": 2022
},
"mechanic": {
"id": 12,
"first_name": "Joe",
"last_name": "Williams",
"username": null,
"email": "joe@example.com",
"driver_company_id": "123",
"mcleod_id": null,
"status": "active",
"role": "driver"
},
"driver": {
"id": 11,
"first_name": "Demo",
"last_name": "Driver",
"username": "demo_driver",
"email": null,
"driver_company_id": "123",
"mcleod_id": null,
"status": "active",
"role": "driver"
},
"reviewer": {
"id": 13,
"first_name": "John",
"last_name": "Williams",
"username": null,
"email": "john@example.com",
"driver_company_id": "123",
"mcleod_id": null,
"status": "active",
"role": "driver"
},
"external_ids": [
{
"external_id": "201",
"integration_name": "generic_tms"
},
{
"external_id": "Truck123",
"integration_name": "generic_maintenance_system"
}
],
"entries": [
{
"name": "Tractor Plate #",
"value": "2743186",
"position": 1
},
{
"name": "Trailer Plate #",
"value": "T473278",
"position": 2
}
]
}
}
{
"inspection_report": {
"id": 9,
"log_id": 1,
"date": "2016-07-22",
"time": "2016-07-22T14:00:00Z",
"odometer": 253,
"carrier_name": "Demo Carrier",
"location": "Omaha, NE",
"status": "corrected",
"mechanic_signed_at": "2016-07-22T14:00:00Z",
"mechanic_signature_url": "https://keep-truckin-development.s3.amazonaws.com/uploads/inspection_report/mechanic_signature_upload/9/open-uri20160712-30633-thc30n?AWSAccessKeyId=AKIAJH12345&Expires=1481274629&Signature=Qi1mXnl0ylJ5tCuds789Ocq44L4%3D",
"driver_signed_at": "2016-07-22T14:00:00Z",
"driver_signature_url": "https://keep-truckin-development.s3.amazonaws.com/uploads/inspection_report/driver_signature_upload/9/open-uri20160729-30645-1jeoj77?AWSAccessKeyId=AKIAJH12345&Expires=1481274629&Signature=Qi1mXnl0ylJ5tCuds789Ocq44L4%3D",
"reviewer_signed_at": "2016-07-22T14:00:00Z",
"reviewer_signature_url": "https://keep-truckin-development.s3.amazonaws.com/uploads/inspection_report/reviewer_signature_upload/9/open-uri20160729-30645-1jeoj77?AWSAccessKeyId=AKIAJH12345&Expires=1481274629&Signature=Qi1mXnl0ylJ5tCuds789Ocq44L4%3D",
"entity_num": "entity_num",
"entity_type": "vehicle",
"is_rejected": false,
"inspection_type": "pre-trip",
"declaration": "I declare that this vehicle has been inspected in accordance with the applicable requirements.",
"inspected_parts": [
{
"id": 5,
"category": "Brakes",
"notes": "notes",
"type": "major",
"picture_url": "https://keep-truckin-preview.s3.amazonaws.com/uploads/defect/picture_upload/23137/15c31555-6642-4215-a3cd-81def1d329012396939324379336808.jpg?X",
"defects": [
{
"title": "Air pressure gauge failure",
"severity": "major"
},
{
"title": "Slow air pressure build up rate",
"severity": "major"
},
{
"title": "Air loss rate exceeds prescribed limit",
"severity": "minor"
}
],
}
],
"not_inspected_parts": [
{
"category": "9 - Emergency Equipment & Safety Devices"
},
{
"category": "15 - Heater/Defroster"
}
],
"vehicle": {
"id": 4,
"number": "Demo Vehicle",
"year": "2016",
"make": "Demo",
"model": "Vehicle",
"vin": "WP0AB2966NS458669",
"metric_units": false
},
"asset": {
"id": 101,
"make": "Toyota",
"metric_units": true,
"model": "Camry",
"name": "V123",
"year": 2022
},
"mechanic": {
"id": 12,
"first_name": "Joe",
"last_name": "Williams",
"username": null,
"email": "joe@example.com",
"driver_company_id": "123",
"mcleod_id": null,
"status": "active",
"role": "driver"
},
"driver": {
"id": 11,
"first_name": "Demo",
"last_name": "Driver",
"username": "demo_driver",
"email": null,
"driver_company_id": "123",
"mcleod_id": null,
"status": "active",
"role": "driver"
},
"reviewer": {
"id": 13,
"first_name": "John",
"last_name": "Williams",
"username": null,
"email": "john@example.com",
"driver_company_id": "123",
"mcleod_id": null,
"status": "active",
"role": "driver"
},
"external_ids": [
{
"external_id": "201",
"integration_name": "generic_tms"
},
{
"external_id": "Truck123",
"integration_name": "generic_maintenance_system"
}
],
"entries": [
{
"name": "Tractor Plate #",
"value": "2743186",
"position": 1
},
{
"name": "Trailer Plate #",
"value": "T473278",
"position": 2
}
]
}
}
{
"inspection_report": {
"id": 9,
"log_id": 1,
"date": "2016-07-22",
"time": "2016-07-22T14:00:00Z",
"odometer": 253,
"carrier_name": "Demo Carrier",
"location": "Omaha, NE",
"status": "resolved",
"mechanic_signed_at": null,
"mechanic_signature_url": null,
"driver_signed_at": "2016-07-22T14:00:00Z",
"driver_signature_url": "https://keep-truckin-development.s3.amazonaws.com/uploads/inspection_report/driver_signature_upload/9/open-uri20160729-30645-1jeoj77?AWSAccessKeyId=AKIAJH12345&Expires=1481274629&Signature=Qi1mXnl0ylJ5tCuds789Ocq44L4%3D",
"reviewer_signed_at": "2016-07-22T14:00:00Z",
"reviewer_signature_url": "https://keep-truckin-development.s3.amazonaws.com/uploads/inspection_report/reviewer_signature_upload/9/open-uri20160729-30645-1jeoj77?AWSAccessKeyId=AKIAJH12345&Expires=1481274629&Signature=Qi1mXnl0ylJ5tCuds789Ocq44L4%3D",
"entity_num": "entity_num",
"entity_type": "vehicle",
"is_rejected": false,
"inspection_type": "pre-trip",
"declaration": "I declare that this vehicle has been inspected in accordance with the applicable requirements.",
"inspected_parts": [
{
"id": 5,
"category": "Brakes",
"notes": "notes",
"type": "major",
"picture_url": "https://keep-truckin-preview.s3.amazonaws.com/uploads/defect/picture_upload/23137/15c31555-6642-4215-a3cd-81def1d329012396939324379336808.jpg?X",
"status": "[open]/[repaired]/[no_repair_needed]/[good]",
"mechanic_details": {
"resolver": {
"id": 1005,
"first_name": "Joshua",
"last_name": "Lee",
"username": "Joshua Lee",
"email": "joshua@democarrier.com",
"driver_company_id": "123",
"status": "active",
"role": "driver"
},
"mechanic_name": "Joshua Lee",
"mechanic_signed_at": "2016-07-22T14:00:00Z",
"mechanic_note": "this is resolved person note, could be anything",
"mechanic_signature": "https://keep-truckin-development.s3.amazonaws.com/uploads/inspection_report/mechanic_signature_upload/9/open-uri20160712-30633-thc30n?AWSAccessKeyId=AKIAJH12345&Expires=1481274629&Signature=Qi1mXnl0ylJ5tCuds789Ocq44L4%3D"
}
}
],
"not_inspected_parts": [
{
"category": "9 - Emergency Equipment & Safety Devices"
},
{
"category": "15 - Heater/Defroster"
}
],
"vehicle": {
"id": 4,
"number": "Demo Vehicle",
"year": "2016",
"make": "Demo",
"model": "Vehicle",
"vin": "WP0AB2966NS458669",
"metric_units": false
},
"asset": {
"id": 101,
"make": "Toyota",
"metric_units": true,
"model": "Camry",
"name": "V123",
"year": 2022
},
"mechanic": {
"id": 12,
"first_name": "Joe",
"last_name": "Williams",
"username": null,
"email": "joe@example.com",
"driver_company_id": "123",
"mcleod_id": null,
"status": "active",
"role": "driver"
},
"driver": {
"id": 11,
"first_name": "Demo",
"last_name": "Driver",
"username": "demo_driver",
"email": null,
"driver_company_id": "123",
"mcleod_id": null,
"status": "active",
"role": "driver"
},
"reviewer": {
"id": 13,
"first_name": "John",
"last_name": "Williams",
"username": null,
"email": "john@example.com",
"driver_company_id": "123",
"mcleod_id": null,
"status": "active",
"role": "driver"
},
"external_ids": [
{
"external_id": "201",
"integration_name": "generic_tms"
},
{
"external_id": "Truck123",
"integration_name": "generic_maintenance_system"
}
],
"entries": [
{
"name": "Tractor Plate #",
"value": "2743186",
"position": 1
},
{
"name": "Trailer Plate #",
"value": "T473278",
"position": 2
}
]
}
}
{
"inspection_report": {
"id": 9,
"log_id": 1,
"date": "2016-07-22",
"time": "2016-07-22T14:00:00Z",
"odometer": 253,
"carrier_name": "Demo Carrier",
"location": "Omaha, NE",
"status": "resolved",
"mechanic_signed_at": null,
"mechanic_signature_url": null,
"driver_signed_at": "2016-07-22T14:00:00Z",
"driver_signature_url": "https://keep-truckin-development.s3.amazonaws.com/uploads/inspection_report/driver_signature_upload/9/open-uri20160729-30645-1jeoj77?AWSAccessKeyId=AKIAJH12345&Expires=1481274629&Signature=Qi1mXnl0ylJ5tCuds789Ocq44L4%3D",
"reviewer_signed_at": "2016-07-22T14:00:00Z",
"reviewer_signature_url": "https://keep-truckin-development.s3.amazonaws.com/uploads/inspection_report/reviewer_signature_upload/9/open-uri20160729-30645-1jeoj77?AWSAccessKeyId=AKIAJH12345&Expires=1481274629&Signature=Qi1mXnl0ylJ5tCuds789Ocq44L4%3D",
"entity_num": "entity_num",
"entity_type": "vehicle",
"is_rejected": false,
"inspection_type": "pre-trip",
"declaration": "I declare that this vehicle has been inspected in accordance with the applicable requirements.",
"inspected_parts": [
{
"id": 5,
"category": "Brakes",
"notes": "notes",
"type": "major",
"picture_url": "https://keep-truckin-preview.s3.amazonaws.com/uploads/defect/picture_upload/23137/15c31555-6642-4215-a3cd-81def1d329012396939324379336808.jpg?X",
"status": "[open]/[repaired]/[no_repair_needed]/[good]",
"mechanic_details": {
"resolver": {
"id": 1005,
"first_name": "Joshua",
"last_name": "Lee",
"username": "Joshua Lee",
"email": "joshua@democarrier.com",
"driver_company_id": "123",
"status": "active",
"role": "driver"
},
"external_resolver_id": "111",
"mechanic_name": "Joshua Lee",
"mechanic_signed_at": "2016-07-22T14:00:00Z",
"mechanic_note": "this is resolved person note, could be anything",
"mechanic_signature": "https://keep-truckin-development.s3.amazonaws.com/uploads/inspection_report/mechanic_signature_upload/9/open-uri20160712-30633-thc30n?AWSAccessKeyId=AKIAJH12345&Expires=1481274629&Signature=Qi1mXnl0ylJ5tCuds789Ocq44L4%3D"
},
"defects": [
{
"title": "Air pressure gauge failure",
"severity": "major"
},
{
"title": "Slow air pressure build up rate",
"severity": "major"
},
{
"title": "Air loss rate exceeds prescribed limit",
"severity": "minor"
}
],
}
],
"not_inspected_parts": [
{
"category": "9 - Emergency Equipment & Safety Devices"
},
{
"category": "15 - Heater/Defroster"
}
],
"vehicle": {
"id": 4,
"number": "Demo Vehicle",
"year": "2016",
"make": "Demo",
"model": "Vehicle",
"vin": "WP0AB2966NS458669",
"metric_units": false
},
"asset": {
"id": 101,
"make": "Toyota",
"metric_units": true,
"model": "Camry",
"name": "V123",
"year": 2022
},
"mechanic": {
"id": 12,
"first_name": "Joe",
"last_name": "Williams",
"username": null,
"email": "joe@example.com",
"driver_company_id": "123",
"mcleod_id": null,
"status": "active",
"role": "driver"
},
"driver": {
"id": 11,
"first_name": "Demo",
"last_name": "Driver",
"username": "demo_driver",
"email": null,
"driver_company_id": "123",
"mcleod_id": null,
"status": "active",
"role": "driver"
},
"reviewer": {
"id": 13,
"first_name": "John",
"last_name": "Williams",
"username": null,
"email": "john@example.com",
"driver_company_id": "123",
"mcleod_id": null,
"status": "active",
"role": "driver"
},
"external_ids": [
{
"external_id": "201",
"integration_name": "generic_tms"
},
{
"external_id": "Truck123",
"integration_name": "generic_maintenance_system"
}
],
"entries": [
{
"name": "Tractor Plate #",
"value": "2743186",
"position": 1
},
{
"name": "Trailer Plate #",
"value": "T473278",
"position": 2
}
]
}
}