Order background checks for a driver
/api/vendor/v1/ordersOrder the services selected by the request flags using multipart/form-data and an Idempotency-Key. Reuse the same key and body to retrieve the same order; a different body returns 409.
Authorization
X-API-KeystringrequiredThe environment's prefix (
snt_test_on this server;GET /mereturns the environment), 8 characters,_, then the secret. Shown once, when the key is created in the Sentinel Developers portal. A key works only against the server that issued it.
Headers
Idempotency-Keystringat most 64 charactersrequiredA value of your choosing, unique per order (a UUID, say): printable ASCII, at most 64 characters.
Request body
first_namestringrequiredlast_namestringrequiredmiddle_namestringname_suffixstringdate_of_birthstring · daterequiredYYYY-MM-DD.
license_numberstringrequiredlicense_statestringrequiredThe two-letter state code.
class_typestringThe license class (A, B, C...).
issue_datestring · dateexpiry_datestring · datemc_numberstringrequiredThe carrier's MC (or MX / FF) docket number, for example MC-123456. You are responsible for sending the right one. It is stored on the order and shown on your invoice; the carrier doesn't need to be a Sentinel customer.
ssnstringThe driver's full SSN, digits with optional dashes or spaces. Required with CDLIS, refused without it.
cdl_imagefilerequiredThe front of the CDL.
back_of_cdlfileThe back of the CDL (optional).
mvr_requestedanyOmitted means false; request at least one service.
psp_requestedanyOmitted means false; request at least one service.
cdlis_requestedanyOmitted means false; request at least one service.
driver_reviews_requestedanyOmitted means false; request at least one service.
Responses
200Idempotent-Replayedheader · stringtruewhen the answer is an order already placed with this Idempotency-Key.Locationheader · stringThe order's address, to poll.
Cache-Controlheader · stringno-store: order results are never cached.
idstring · uuidrequiredstatusstringrequiredmc_numberstringrequiredsubmission_datestring · date-timerequiredcompleted_datestring · date-time | nullrequiredThe order's final time when completed; otherwise null.
mvr_statusstring | nullrequiredprocessing: being worked on, including when Sentinel staff are checking it; completed: the report is ready; no_record: the provider has no record of this driver, billed as a no-record result. Null when not ordered.
psp_statusstring | nullrequiredprocessing: being worked on, including when Sentinel staff are checking it; completed: the report is ready; no_record: the provider has no record of this driver, billed as a no-record result. Null when not ordered.
cdlis_statusstring | nullrequiredprocessing: being worked on, including when Sentinel staff are checking it; completed: the report is ready; no_record: the provider has no record of this driver, billed as a no-record result. Null when not ordered.
driver_reviews_statusstring | nullrequiredprocessing: being worked on, including when Sentinel staff are checking it; completed: the report is ready; no_record: the provider has no record of this driver, billed as a no-record result. Null when not ordered.
mvr_filestring | nullrequiredAuthenticated download URL when completed; otherwise null.
psp_filestring | nullrequiredAuthenticated download URL when completed; otherwise null.
cdlis_filestring | nullrequiredAuthenticated download URL when completed; otherwise null.
driver_reviews_dataobject | nullrequiredReviews of the driver matched on the exact name and date of birth. Never the reviewer, the reviewing carrier or any record id.
ShowHide 2 fields
foundbooleanrequiredFalse when no review of the driver was found.
reviewsarray of objectrequiredShowHide 3 fields
ratingnumber | nullrequiredtextstring | nullrequireddatestring · date | nullrequired
safety_scoreinteger | nullrequiredsafety_gradestring | nullrequiredsafety_risk_levelstring | nullrequired
202Retry-Afterheader · integerSeconds to wait before retrying.
Locationheader · stringThe order's address, to poll.
Idempotent-Replayedheader · stringtruewhen the answer is an order already placed with this Idempotency-Key.Cache-Controlheader · stringno-store: order results are never cached.
idstring · uuidrequiredstatusstringrequiredmc_numberstringrequiredsubmission_datestring · date-timerequiredcompleted_datestring · date-time | nullrequiredThe order's final time when completed; otherwise null.
mvr_statusstring | nullrequiredprocessing: being worked on, including when Sentinel staff are checking it; completed: the report is ready; no_record: the provider has no record of this driver, billed as a no-record result. Null when not ordered.
psp_statusstring | nullrequiredprocessing: being worked on, including when Sentinel staff are checking it; completed: the report is ready; no_record: the provider has no record of this driver, billed as a no-record result. Null when not ordered.
cdlis_statusstring | nullrequiredprocessing: being worked on, including when Sentinel staff are checking it; completed: the report is ready; no_record: the provider has no record of this driver, billed as a no-record result. Null when not ordered.
driver_reviews_statusstring | nullrequiredprocessing: being worked on, including when Sentinel staff are checking it; completed: the report is ready; no_record: the provider has no record of this driver, billed as a no-record result. Null when not ordered.
mvr_filestring | nullrequiredAuthenticated download URL when completed; otherwise null.
psp_filestring | nullrequiredAuthenticated download URL when completed; otherwise null.
cdlis_filestring | nullrequiredAuthenticated download URL when completed; otherwise null.
driver_reviews_dataobject | nullrequiredReviews of the driver matched on the exact name and date of birth. Never the reviewer, the reviewing carrier or any record id.
ShowHide 2 fields
foundbooleanrequiredFalse when no review of the driver was found.
reviewsarray of objectrequiredShowHide 3 fields
ratingnumber | nullrequiredtextstring | nullrequireddatestring · date | nullrequired
safety_scoreinteger | nullrequiredsafety_gradestring | nullrequiredsafety_risk_levelstring | nullrequired
400errorobjectrequiredShowHide 4 fields
order_idstring · uuididempotency_conflictonly: the order the key already belongs to.codestringrequiredvalidation_error(400).invalid_api_key(401).api_key_expired(401).account_not_approved(403).account_suspended(403).service_not_enabled(403).permission_denied(403).not_found(404).method_not_allowed(405).idempotency_conflict(409).in_progress(409).payload_too_large(413).unsupported_media_type(415).mvr_state_unavailable(422).rate_limited(429).internal_error(500).rate_limit_unavailable(503).price_unavailable(503).request_unavailable: another HTTP error.
messagestringrequiredFor people; may change. Use
codein your code.fieldsobject | nullrequiredPer-field messages, for validation errors.
401WWW-Authenticateheader · string
errorobjectrequiredShowHide 4 fields
order_idstring · uuididempotency_conflictonly: the order the key already belongs to.codestringrequiredvalidation_error(400).invalid_api_key(401).api_key_expired(401).account_not_approved(403).account_suspended(403).service_not_enabled(403).permission_denied(403).not_found(404).method_not_allowed(405).idempotency_conflict(409).in_progress(409).payload_too_large(413).unsupported_media_type(415).mvr_state_unavailable(422).rate_limited(429).internal_error(500).rate_limit_unavailable(503).price_unavailable(503).request_unavailable: another HTTP error.
messagestringrequiredFor people; may change. Use
codein your code.fieldsobject | nullrequiredPer-field messages, for validation errors.
403errorobjectrequiredShowHide 4 fields
order_idstring · uuididempotency_conflictonly: the order the key already belongs to.codestringrequiredvalidation_error(400).invalid_api_key(401).api_key_expired(401).account_not_approved(403).account_suspended(403).service_not_enabled(403).permission_denied(403).not_found(404).method_not_allowed(405).idempotency_conflict(409).in_progress(409).payload_too_large(413).unsupported_media_type(415).mvr_state_unavailable(422).rate_limited(429).internal_error(500).rate_limit_unavailable(503).price_unavailable(503).request_unavailable: another HTTP error.
messagestringrequiredFor people; may change. Use
codein your code.fieldsobject | nullrequiredPer-field messages, for validation errors.
409Retry-Afterheader · integerin_progressonly: seconds to wait before retrying with the same key.
errorobjectrequiredShowHide 4 fields
order_idstring · uuididempotency_conflictonly: the order the key already belongs to.codestringrequiredvalidation_error(400).invalid_api_key(401).api_key_expired(401).account_not_approved(403).account_suspended(403).service_not_enabled(403).permission_denied(403).not_found(404).method_not_allowed(405).idempotency_conflict(409).in_progress(409).payload_too_large(413).unsupported_media_type(415).mvr_state_unavailable(422).rate_limited(429).internal_error(500).rate_limit_unavailable(503).price_unavailable(503).request_unavailable: another HTTP error.
messagestringrequiredFor people; may change. Use
codein your code.fieldsobject | nullrequiredPer-field messages, for validation errors.
413errorobjectrequiredShowHide 4 fields
order_idstring · uuididempotency_conflictonly: the order the key already belongs to.codestringrequiredvalidation_error(400).invalid_api_key(401).api_key_expired(401).account_not_approved(403).account_suspended(403).service_not_enabled(403).permission_denied(403).not_found(404).method_not_allowed(405).idempotency_conflict(409).in_progress(409).payload_too_large(413).unsupported_media_type(415).mvr_state_unavailable(422).rate_limited(429).internal_error(500).rate_limit_unavailable(503).price_unavailable(503).request_unavailable: another HTTP error.
messagestringrequiredFor people; may change. Use
codein your code.fieldsobject | nullrequiredPer-field messages, for validation errors.
415errorobjectrequiredShowHide 4 fields
order_idstring · uuididempotency_conflictonly: the order the key already belongs to.codestringrequiredvalidation_error(400).invalid_api_key(401).api_key_expired(401).account_not_approved(403).account_suspended(403).service_not_enabled(403).permission_denied(403).not_found(404).method_not_allowed(405).idempotency_conflict(409).in_progress(409).payload_too_large(413).unsupported_media_type(415).mvr_state_unavailable(422).rate_limited(429).internal_error(500).rate_limit_unavailable(503).price_unavailable(503).request_unavailable: another HTTP error.
messagestringrequiredFor people; may change. Use
codein your code.fieldsobject | nullrequiredPer-field messages, for validation errors.
422errorobjectrequiredShowHide 4 fields
order_idstring · uuididempotency_conflictonly: the order the key already belongs to.codestringrequiredvalidation_error(400).invalid_api_key(401).api_key_expired(401).account_not_approved(403).account_suspended(403).service_not_enabled(403).permission_denied(403).not_found(404).method_not_allowed(405).idempotency_conflict(409).in_progress(409).payload_too_large(413).unsupported_media_type(415).mvr_state_unavailable(422).rate_limited(429).internal_error(500).rate_limit_unavailable(503).price_unavailable(503).request_unavailable: another HTTP error.
messagestringrequiredFor people; may change. Use
codein your code.fieldsobject | nullrequiredPer-field messages, for validation errors.
429Retry-Afterheader · integerSeconds to wait before trying again.
errorobjectrequiredShowHide 4 fields
order_idstring · uuididempotency_conflictonly: the order the key already belongs to.codestringrequiredvalidation_error(400).invalid_api_key(401).api_key_expired(401).account_not_approved(403).account_suspended(403).service_not_enabled(403).permission_denied(403).not_found(404).method_not_allowed(405).idempotency_conflict(409).in_progress(409).payload_too_large(413).unsupported_media_type(415).mvr_state_unavailable(422).rate_limited(429).internal_error(500).rate_limit_unavailable(503).price_unavailable(503).request_unavailable: another HTTP error.
messagestringrequiredFor people; may change. Use
codein your code.fieldsobject | nullrequiredPer-field messages, for validation errors.
503Retry-Afterheader · integerrate_limit_unavailableonly: seconds to wait before trying again.
errorobjectrequiredShowHide 4 fields
order_idstring · uuididempotency_conflictonly: the order the key already belongs to.codestringrequiredvalidation_error(400).invalid_api_key(401).api_key_expired(401).account_not_approved(403).account_suspended(403).service_not_enabled(403).permission_denied(403).not_found(404).method_not_allowed(405).idempotency_conflict(409).in_progress(409).payload_too_large(413).unsupported_media_type(415).mvr_state_unavailable(422).rate_limited(429).internal_error(500).rate_limit_unavailable(503).price_unavailable(503).request_unavailable: another HTTP error.
messagestringrequiredFor people; may change. Use
codein your code.fieldsobject | nullrequiredPer-field messages, for validation errors.