KimVoice API

Overview
  • All API calls are stateless and require authentication. A JSON Web Token (jwt) needs to be added to the request header. Example: Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1bmlxdWVfbmFtZSI6IjxDbGllbnRJRD4iLCJDbGllbnRTZWNyZXQiOiI8SGFzaGVkQ2xpZW50U2VjcmV0PiIsImlzcyI6IktpbVZvaWNlQVBJIiwiZXhwIjoxNTAzNTAwNjI1LCJuYmYiOjE1MDMzMjc4MjV9.Gwo8F3afFqYU6joyDqkq8O9pwe2gLa3nVMCzBVrV8uU
  • To generate a valid jwt, a call must be made to the Token/LogOn method. This requires a Client ID and Secret. Jwts are valid for 48 hours.
  • All parameter value must be within their respective ranges.
  • On failures for all the APIs to perform the requested operations, the APIs will send the caller a response message of ApiError along with unsuccessful HTTP status codes.
  • If no valid JWT is provided, or if input is invalid, a generic error will be returned without an ApiError object.
List of API Calls


HealthCheck [Comments("Returns current operational mode (normal or disaster recovery).
This is intended to be called at the beginning of any IVR call to ensure the system is available."
)]
[VersionMethod(AvailableSinceVersion = 1)]
HealthCheckModel HealthCheck(
  [Range(1, 1)] Int32 v)
api/V{v}/HealthCheck GET
KeyBox [Comments("Gets Call-Before-Showing Code for a KeyBox.
To get instructions on how to enter the CBS Code, call GetKeyholders().
This should only be accessed AFTER a call to ValidateKeyHolder()."
)]
[VersionMethod(AvailableSinceVersion = 1)]
CbsCodeModel GetCbsCode(
  [Range(1, 1)] Int32 v,
  [Range(1, 2147483647)] Int32 boxNumber,
  [Required] [RegularExpression(@"[0-9\s]{4,4}$")] String shackleCode,
  [Range(10000, 2147483647)] Int32 keyNumber,
  [Range(1, 2147483647)] Int32 primaryMember)
api/V{v}/KeyBox/GetCbsCode?boxNumber={boxNumber}&shackleCode={shackleCode}&keyNumber={keyNumber}&primaryMember={primaryMember} GET
Key [Comments("Returns all Keys and associated information that match the given keyNumber and pin.
This is intended to be called prior to ValidateKeyholder."
)]
[VersionMethod(AvailableSinceVersion = 1)]
KeyHoldersModel GetKeyHolders(
  [Range(1, 1)] Int32 v,
  [Range(10000, 2147483647)] Int32 keyNumber,
  [Required] [RegularExpression(@"[0-9\s]{4,4}$")] String pin)
api/V{v}/Key/GetKeyHolders?keyNumber={keyNumber}&pin={pin} GET
[Comments("This gets basic information about the KeyHolder for a given Key. Used when an agent or board finds or receives an unknown Key.
This does not require a call to ValidateKeyHolder."
)]
[VersionMethod(AvailableSinceVersion = 1)]
IdentifyKeyHolderModel IdentifyKeyHolder(
  [Range(1, 1)] Int32 v,
  [Range(10000, 2147483647)] Int32 keyNumber)
api/V{v}/Key/IdentifyKeyHolder?keyNumber={keyNumber} GET
[Comments("Gets Update Code and instructions for entering that code.
To get the member and pod options, call GetKeyHolders() prior to calling this method.
This should only be accessed AFTER a call to ValidateKeyHolder()."
)]
[VersionMethod(AvailableSinceVersion = 1)]
UpdateCodeModel GetUpdateCode(
  [Range(1, 1)] Int32 v,
  [Range(10000, 2147483647)] Int32 keyNumber,
  [Range(1, 2147483647)] Int32 primaryMember,
  [Range(1, 2147483647)] Int32 updateMember,
  [Range(1, 2)] Int32 podNumber)
api/V{v}/Key/GetUpdateCode?keyNumber={keyNumber}&primaryMember={primaryMember}&updateMember={updateMember}&podNumber={podNumber} GET
[Comments("Determines if KeyHolder is authorized to receive Update or CBS Codes.
If not authorized (due to non-payment, unassigned key, etc.) an ApiError will be returned.
To get the member and pod options, call GetKeyHolders() prior to calling this method.
This is intended to be called prior to GetUpdateCode or GetCBSCode."
)]
[VersionMethod(AvailableSinceVersion = 1)]
ValidateKeyHolderModel ValidateKeyHolder(
  [Range(1, 1)] Int32 v,
  [Range(10000, 2147483647)] Int32 keyNumber,
  [Range(1, 2147483647)] Int32 memberNumber,
  [Range(1, 2)] Int32 podNumber,
CodeType codeType)
api/V{v}/Key/ValidateKeyHolder?keyNumber={keyNumber}&memberNumber={memberNumber}&podNumber={podNumber} GET
Token [Comments("Login with clientID and clientSecret to get a JSON Web Token (JWT).
A valid JWT is required for all other API calls."
)]
[VersionMethod(AvailableSinceVersion = 1)]
String LogOn(
  [Range(1, 1)] Int32 v,
UserLogInModel user)
api/V{v}/Token/LogOn POST