The OPS-COM Controller provides a simple JSON based API to integrate with. Clients use this API to directly feed paid permit details into OPS-COM from other systems such as Parking Meters.  



Make sure you set the HTTP Content-Type header to be application/json.


Making API Requests

Raw Request

POST /api/OC-TOMA/v1/permits/push HTTP/1.1
Host: controller.operationscommander.com
Accept: application/json
Content-Type: application/json
Cache-Control: no-cache

{
	"apiToken": "YOUR-API-TOKEN",
	"Amount": "14.50",
	"CurrencyID": "CAD",
	"LicencePlate": "PL8RDR",
	"zone": "Lot 4",
	"permitNo": "L4-1138",
	"startTime": "2018-07-02T09:00:00",
	"endTime": "2018-07-02T09:30:00"
}



JavaScript Request

var request = new XMLHttpRequest();

request.open('POST', 'https://controller.operationscommander.com/api/OC-TOMA/v1/permits/push');

request.setRequestHeader('Content-Type', 'application/json');
request.setRequestHeader('Accept', 'application/json');

request.onreadystatechange = function () {
  if (this.readyState === 4) {
    console.log('Status:', this.status);
    console.log('Headers:', this.getAllResponseHeaders());
    console.log('Body:', this.responseText);
  }
};


var body = {
	"apiToken": "YOUR-API-TOKEN",
	"Amount": "14.50",
	"CurrencyID": "CAD",
	"LicencePlate": "PL8RDR",
	"zone": "Lot 4",
	"permitNo": "L4-1138",
	"startTime": "2018-07-02T09:00:00",
	"endTime": "2018-07-02T09:30:00"
}
request.send(JSON.stringify(body));



Request Object Attributes

AttributeTypeLimitsPossible NamesDescription
apiTokenString

50-character alphanumeric including dashes

apiToken(Required) Your supplied API Token.
AmountString9-character decimal

amount

Amount

(Optional) Transaction amount This must contain at least 3 digits, two of which are penny values.

The minimum allowable value is $0.01, and the maximum allowable value is $999999.99.

CurrencyString10-characters

currency

CurrencyID

(Optional) CAD, USD

Start Date

String

20-characters

Y-m-d\TH:i:s format.

startTime

StartDateUtc

(Required) Must be in the format of Y-m-d\TH:i:s

e.g. 2000-05-30T14:38:22

For formatting help, see PHP Date Formatting

End DateString

20-characters

Y-m-d\TH:i:s format.

endTime

EndDateUtc

(Required) Must be in the format of Y-m-d\TH:i:s

e.g. 2000-05-30T14:38:22

For formatting help, see PHP Date Formatting

License PlateString25-characters

plate

LicencePlate

(Required) The plate of the vehicle.
Ticket NumberString50-characters

permitNo

TicketNumber

(Optional)
Zone NameString200-characters

zone

ParkingZoneName

(Optional) If the zone does not match a zone in our system, it will be a disconnected record and may not report properly.



Successful Response

The response will be a json object. 

Content-Type: application/json

{
    "status": "success",
    "reference_id": "1a9b5375-cb75-4c71-9939-eeae550b09ac",
    "InternalReferenceID": "1a9b5375-cb75-4c71-9939-eeae550b09ac"
}


Related Pages



In order for a client to use this, they would have to have paid for the right to integrate with OPS-COM, been issued an API Key and had their integration validated by testing with us.


Server setup

The Addresses used for testing and production:

https://controller-dev1.parkadmin.com/api/OC-TOMA/v1/permits/push

https://controller-preview.operationscommander.com/api/OC-TOMA/v1/permits/push

https://controller.operationscommander.com/api/OC-TOMA/v1/permits/push


nGinx needs to have Access-Control-Allow-Origin : * to work.

The controller also needs to be behind a certificate. 




Client Setup

There is some setup related to getting clients to use the API. First, they must have an API token that exists on the API token table. They then have to have a api_permission record that lists what kind of permission the token can has. 

The permission needed for this api request is permit-create.