Introduction
AutoVu Pay-by-Plate Sync allows payment providers to integrate with Genetec Security Center and AutoVu Patroller seamlessly. As illustrated in the picture below, there are two ways to integrate with Pay-by-Plate Sync:
Develop a C# module that will be hosted by AutoVu's Pay-by-Plate Sync server. This module is responsible for communicating with the payment provider proprietary system and translate its data model into one that Security Center understands. This approach requires of the payment provider a knowledge of .NET development.
Develop an HTTP REST service that complies with the protocol defined in this document. This approach requires of the payment provider a knowledge of web service development.
This section explains the latter option. It lists all methods a payment provider’s REST service is required to implement in order to communicate with AutoVu's Pay-by-Plate Sync.
Methods
The following methods are required to be implemented in order to integrate with AutoVu Pay-by-Plate Sync.
GET api/pbp/v2014-06/zones: Lists all parking zones supported by the payment provider for the specified API key.*
GET api/pbp/v2014-06/zones/{zoneId}/permits?continuationToken={continuationToken}: Lists all permits for a specified zone.
POST api/pbp/v2014-06/isvalid: Validates that the specified plate number has at least one valid permit for the specified zones. This method will be called during the “last-chance lookup”.
POST api/pbp/v2014-06/permits/search: Queries the payment provider for permits that match specific search criteria. The query requires a list of plate numbers that will be matched in each provided zone. If a matched permit is present in one of the zones provided, it will be returned.
NEW! The following methods are called only during certification and access should be restricted by a development API key. During certification, Genetec will call these methods to populate test data. The payment provider's service implementation cannot be certified unless these methods are exposed. Once the implementation is complete, it can be tested automatically from the “Certification” section of this web site.
POST api/pbp/v2014-06/zones/{zoneId}/permits/{permitId}?forceCreate={forceCreate}: Adds a permit to a specified zone, or modifies an existing permit.
POST api/pbp/v2014-06/zones/{zoneId}: Adds or modifies a specified zone.
POST api/pbp/v2014-06/zones/{zoneId}/permits/{permitId}/delete: Deletes a permit from a specified zone.
POST api/pbp/v2014-06/zones/{zoneId}/delete: Deletes a specified zone.
Versioning
In order to maintain functionality across different versions, each request must specify the expected API version. For the latest API version, all request should start with:
https://{your-base-uri}/api/pbp/v2014-06/...
Security
Due to the private nature of the data sent to the REST Service, it is strongly recommended to use HTTPS when transmitting data. The REST service uses an API key authentication mechanism in order to protect the API against unauthorized access. The key can be composed of any string and needs to be sent with every request to the REST service. It is up to the implementer of the REST service to determine if a specific key gives access to certain methods only. If the API key is invalid, the HTTP response shall contain the error code 401 (Unauthorized).
HTTP Request Header
X-ApiKey: F39CA88C-6E02-4120-AA27-1A87C2E90ABB