Syscon Court Web Service REST API October 20, 2020 v. 1.0.7

Web service for external payment and data processing parties.

Authentication /api/v1/auth/login

Allowed Methods: POST (JSON object)

JSON object required fields: login, password (case sensitive)

If successful you will receive a JSON object with token field and this token must be returned in HTTP header for all consecutive data requests. Token has a life span of 1 hour and can be updated during data requests.

Participating Courts /api/v1/courts

Authentication: Required, HTTP header: Authorization: Bearer TOKEN

Allowed Methods: GET

Parameters: None

Returns JSON object with an array of participating static court IDs, which are required for other requests.

API's

Defendant Court Cases /api/v1/cases/:courtID/dl/:driverLicense/ticket/:ticket

Authentication: Required, HTTP header: Authorization: Bearer TOKEN

Allowed Methods: GET

Full Match Parameters: :courtID, :dl and/or :ticket. All parameters are URL-encoded.

Partial Match Parameters: :courtID,:dob (MMDDYYYY) and :pticket (min length is 4 characters). All parameters are URL-encoded. Partial search is matching last characters, i.e. SQL LIKE '%text'.

Example: https://court.syscononline.com:4444/api/v1/cases/1/dl/123456789

Example: https://court.syscononline.com:4444/api/v1/cases/1/dl/123456789/ticket/T123456

Example: https://court.syscononline.com:4444/api/v1/cases/1/ticket/T123456

Example: https://court.syscononline.com:4444/api/v1/cases/1/dob/12131980/pticket/123456

If successful returns JSON object with an array of pending cases (those that are allowed to be paid online along with mustAppear ones) for requested defendant.

Post Payment and Close Case (if paid in full) /api/v1/payments/:courtID

Authentication: Required, HTTP header: Authorization: Bearer TOKEN

Allowed Methods: POST (JSON object)

JSON object required fields:
caseID string, supplied by Defendant Court Cases,
ticketAmount decimal, amountDue from Defendant Court Cases,
transID string, vendor transaction ID,
feeAmount decimal, actual amount of fees that were added to ticket amount by vendor,
nameOnCard string, name on credit card,
transDate string, transaction date and time (MM/DD/YYYY HH24:MI:SS)

If successful returns JSON object with code 1000000.

API Return Codes

  • 0 Bad request or server error
  • -1 Cannot connect to court database
  • 10 Not authenticated
  • 99 Invalid courtID
  • 100 courtID is missing
  • 101 Missing or invalid POST data
  • 102 Missing required POST data fields
  • 103 Case not found
  • 104 Customer must appear in court
  • 105 Case assessment failed
  • 106 Amounts don't match or invalid amount received
  • 107 Invalid offence description or fee group
  • 108, 109 Internal database data error
  • 110-112 Data commit failed
  • 999 GET parameter missing
  • 1000 Invalid argument(s) received
  • 999996 Defendant not found
  • 999999 Temporary: case is locked in Court CMS, try again later
  • 1000000 Success
  • 1000001 Temporary: court registers are closed, try again later (some courts)

Warrants /api/v1/warrants/:courtID/new/:warrantID/:statusID

Authentication: Required, HTTP header: Authorization: Bearer TOKEN

Allowed Methods: GET

Optional Parameters: :warrantID, :statusID. If present then will search for new warrants and warrant status updates that are newer than :warrantID and :statusID.

Example 1: https://court.syscononline.com:4444/api/v1/warrants/210/new

Example 2: https://court.syscononline.com:4444/api/v1/warrants/210/new/30

Example 3: https://court.syscononline.com:4444/api/v1/warrants/210/new/30/2

If successful returns JSON object with two arrays: array of new warrants warrants and array of new warrant status updates statusUpdates. If no optional parameters are present (as in Example 1), then all new warrants and status updates since last request will be returned.

Most fields in returned objects are self-discriptory, here are all possible values for STATUS fields of the warrant status update objects: O outstanding, E executed, W withdrawn, R recalled, D deleted.

Example output (formatted):

                      )]}',
                      {
                      	"code":1000000,
                      	"message":"Success!",
                      	"version":"1.0.2",
                      	"warrants":
                      	[
                      		{
                      			"ID":24,
                      			"COURT_CASE_ID":404094,
                      			"CASE_NO":"OM19-00137",
                      			"WARRANT_NO":"WA19-00002",
                      			"LNAME":"SOMENAME",
                      			"FNAME":"JOSHUA",
                      			"MNAME":"BART",
                      			"SUFFIX":null,
                      			"ALIASES":null,
                      			"ADDRESS1":"11 OAKS ST",
                      			"ADDRESS2":null,
                      			"CITY":"COTO DE CAZA",
                      			"STATE":"CA",
                      			"ZIP":"926795230",
                      			"SSN":null,
                      			"SEX":"M",
                      			"RACE":"W",
                      			"BIRTH_DATE":"02\/22\/1992",
                      			"PHONE":"1112223344",
                      			"DL_STATE":"CA",
                      			"DL_NUMBER":"123456789",
                      			"HEIGHT":"510",
                      			"WEIGHT":"165",
                      			"EYE_COLOR":"XXX",
                      			"HAIR_COLOR":"XXX",
                      			"VEHICLE_TAG_NUMBER":null,
                      			"VEHICLE_TAG_STATE":null,
                      			"VEHICLE_TAG_YEAR":null,
                      			"EMPLOYER_NAME":null,
                      			"DATE_ISSUED":"02\/18\/2019 13:24:15",
                      			"REMARK":"2-13-2019-DEFENDANT FAILED TO APPEAR IN COURT FOR ARRAIGNMENT ON THE CHARGE OF PUBLIC DRUNKENESS",
                      			"COURT_CHARGES_STATUTE":"13A-11-10",
                      			"COURT_CHARGES_DESCRIPTION":"PUBLIC DRUNKENESS",
                      			"CHARGE_NO":"2019-01299",
                      			"ECITATION_CODE":null,
                      			"DATE_MODIFIED":"04\/30\/2019 09:55:16",
                      			"BOND_AMOUNT":"0"
                      		},
                      		{
                      			"ID":34,
                      			"COURT_CASE_ID":404820,
                      			"CASE_NO":"OM19-00286",
                      			"WARRANT_NO":"WA19-00009",
                      			"LNAME":"ANOTHERNAME",
                      			"FNAME":"CHARLES",
                      			"MNAME":"NACOMIS",
                      			"SUFFIX":null,
                      			"ALIASES":null,
                      			"ADDRESS1":"28 COUNTY ROAD 216",
                      			"ADDRESS2":null,
                      			"CITY":"OXFORD",
                      			"STATE":"MS",
                      			"ZIP":"386558196",
                      			"SSN":"123456789",
                      			"SEX":"M",
                      			"RACE":"B",
                      			"BIRTH_DATE":"01\/11\/1961",
                      			"PHONE":"2223334455",
                      			"DL_STATE":"MS",
                      			"DL_NUMBER":"111222333",
                      			"HEIGHT":"511",
                      			"WEIGHT":"145",
                      			"EYE_COLOR":"BRO",
                      			"HAIR_COLOR":"BLK",
                      			"VEHICLE_TAG_NUMBER":null,
                      			"VEHICLE_TAG_STATE":null,
                      			"VEHICLE_TAG_YEAR":"1900",
                      			"EMPLOYER_NAME":null,
                      			"DATE_ISSUED":"03\/25\/2019 12:50:10",
                      			"REMARK":"3-20-2019-DEFENDANT FAILED TO APPEAR IN COURT FOR ARRAIGNMENT ON THE CHARGE OF POSSESSION OF PARAPHENALIA-ARRESTED ON 2-27-2019.\r\n5-29-2019-GUILTY PLEA ENTERED BY THE DEFENDANT.  NO FINE IMPOSED BY THE COURT.",
                      			"COURT_CHARGES_STATUTE":"41-29-105(v)(i-xii)(",
                      			"COURT_CHARGES_DESCRIPTION":"POSSESSION OF DRUG PARAPHERNALIA",
                      			"CHARGE_NO":"2019-02354",
                      			"ECITATION_CODE":null,
                      			"DATE_MODIFIED":"06\/04\/2019 10:20:53",
                      			"BOND_AMOUNT":"327"
                      		}
                      	],
                      	"statusUpdates":
                      	[
                      		{
                      			"ID":1,
                      			"COURT_CASE_ID":404094,
                      			"WARRANT_NO":"WA19-00002",
                      			"STATUS":"D",
                      			"DATE_COMPLETED":"04\/30\/2019 09:55:27"
                      		},
                      		{
                      			"ID":3,
                      			"COURT_CASE_ID":404820,
                      			"WARRANT_NO":"WA19-00009",
                      			"STATUS":"E",
                      			"DATE_COMPLETED":"06\/04\/2019 10:21:06"
                      		}
                      	],
                      	"totalTime":12.689143180847
                      }
                    

API Return Codes

  • 0 Bad request or server error
  • -1 Cannot connect to court database
  • 10 Not authenticated
  • 98 DB connection error
  • 99 Invalid courtID
  • 100 courtID is missing
  • 101 Invalid or missing parameters
  • 1000000 Success

Court Charges /api/v1/charges/:courtID

Authentication: Required, HTTP header: Authorization: Bearer TOKEN

Allowed Methods: GET

Parameters: :courtID

Example: https://court.syscononline.com:4444/api/v1/charges/3

If successful returns JSON object with an array of active charges for selected court.

Case Dispositions /api/v1/dispositions/:courtID

Authentication: Required, HTTP header: Authorization: Bearer TOKEN

Allowed Methods: GET

Parameters: :courtID

Example: https://court.syscononline.com:4444/api/v1/dispositions/3

If successful returns JSON object with an array of available dispositions for selected court.

Defendant Court Cases /api/v1/cases/:courtID/dl/:driverLicense/ticket/:ticket/id/:caseID

Authentication: Required, HTTP header: Authorization: Bearer TOKEN

Allowed Methods: GET

Full Match Parameters: :courtID, :caseID (internal ID of the case), :dl and/or :ticket (ticked can be a ticket number or court case number). All parameters are URL-encoded.

Partial Match Parameters: :courtID,:dob (MMDDYYYY) and :pticket (min length is 4 characters). All parameters are URL-encoded. Partial search is matching last characters, i.e. SQL LIKE '%text'.

Example: https://court.syscononline.com:4444/api/v1/cases/3/id/12345

Example: https://court.syscononline.com:4444/api/v1/cases/3/dl/123456789

Example: https://court.syscononline.com:4444/api/v1/cases/3/dl/123456789/ticket/T123456

Example: https://court.syscononline.com:4444/api/v1/cases/3/ticket/MC20-01234

Example: https://court.syscononline.com:4444/api/v1/cases/3/dob/12131980/pticket/123456

If successful returns JSON object with an array of pending cases (only those that are allowed to be paid online) for requested defendant.

Update Case ODR Status /api/v1/cases/:courtID

Authentication: Required, HTTP header: Authorization: Bearer TOKEN

Allowed Methods: POST (JSON object)

JSON object required fields: caseID, statusODR one-character status value (case sensitive)

Statuses can only be updated if defendant appearance not required by court. ODR statuses let court clerks know that the case is in ODR system and they should avoid modifications. The ODR status values can be A for active cases and C for completed.

Update Case Charge /api/v1/cases/:courtID

Authentication: Required, HTTP header: Authorization: Bearer TOKEN

Allowed Methods: POST (JSON object)

JSON object required fields: caseID, chargeID (case sensitive)

Charges can only be updated for cases that: 1) have no assessments and 2) defendant appearance not required. If successful then the case data should be requested once again to retrieve updated charge and amount due.

Update Case Balance Due /api/v1/cases/:courtID

Authentication: Required, HTTP header: Authorization: Bearer TOKEN

Allowed Methods: POST (JSON object)

JSON object required fields: caseID, adjustmentAmount (case sensitive)

Balances can only be updated if defendant appearance not required by court. The balance adjustment will automatically assess the case if it was not assessed, so case charge can no longer be changed after balance was adjusted. If successful then the case data should be requested once again to retrieve updated amount due.

Update Case Disposition /api/v1/cases/:courtID

Authentication: Required, HTTP header: Authorization: Bearer TOKEN

Allowed Methods: POST (JSON object)

JSON object required fields: caseID, dispositionCode (case sensitive)

Dispositions can only be updated for cases where defendant appearance not required. Completes court trial docket entry if successful.

More endpoints will be added here soon.

API Return Codes

  • 0 Bad request or server error
  • -1 Cannot connect to court database
  • 10 Not authenticated
  • 99 Invalid courtID
  • 100 courtID is missing
  • 101 Missing or invalid POST data
  • 102 Missing required POST data fields
  • 103 Case not found
  • 104 Customer must appear in court
  • 105 Case assessment failed
  • 106 Amounts don't match or invalid amount received
  • 107 Invalid offence description or fee group
  • 108, 109 Internal database data error
  • 110-112 Data commit failed
  • 999 GET parameter missing
  • 1000 Invalid argument(s) received
  • 999996 Defendant not found
  • 999999 Temporary: case is locked in Court CMS, try again later
  • 1000000 Success
  • 1000001 Temporary: court registers are closed, try again later (some courts)
  • 1000099 Invalid Court Case
  • 1000100 Invalid New Charge
  • 1000101 Case is already assessed or balance failed
  • 1000102 Charge docket entry not found for this case

Court Case Info /api/v1/export/:courtID/cases/:type/:MM/:DD/:YYYY

Authentication: Required, HTTP header: Authorization: Bearer TOKEN

Allowed Methods: GET

Parameters: :courtID, :type (type can be either new or final), :MM/:DD/:YYYY inclusive date after which cases were created or completed.

Example: https://court.syscononline.com:4444/api/v1/export/1/cases/final/02/14/2020

If successful returns JSON object with an array of new or active cases that were created or completed (based on :type) on or after :MM/:DD/:YYYY date.

API Return Codes

  • 0 Bad request or server error
  • -1 Cannot connect to court database
  • 10 Not authenticated
  • 99 Invalid courtID
  • 100 courtID is missing
  • 999 GET parameter missing
  • 1000 Invalid argument(s) received
  • 1000000 Success
  • 1000100 Invalid export parameter