API Reference

If any part of an order request doesn't pass validation the order will not be created and a 400 code error response will be returned. In addition, a list of validation errors will be included in the body. Each error list item includes two properties: an attribute and message. The attribute specifies which part of the order request body did not pass validation, and the message indicates what was wrong with the specified attribute that caused the order request to fail validation.

{
  "code": 400,
  "status": "validation-error",
  "errors": [
    {
      "attr": "external_property_id",
      "message": "missing"
    },
    {
      "attr": "billing_entity_slug",
      "message": "unrecognized"
    }
  ]
}

Validation Error Definitions

AttributeMessageDescription
api_keymissingAn api_key was not defined.
api_keyunauthorizedNot an authorized api_key. Must be a valid api_key.
external_property_idmissingAn external_property_id was not defined.
external_property_idemptyThe external_property_id was set to an empty string. Cannot be an empty string.
billing_entity_slugmissingA billing_entity_slug was not defined.
billing_entity_slugunauthorizedNot an authorized billing_entity_slug. Must be a valid billing_entity_slug that is associated with the api_key.
property{}missingA property object was not defined.
property.location{}missingA property.location object was not defined.
property.location.streetmissingA property.location.street was not defined.
property.location.streetemptyThe property.location.street was set to an empty. Cannot be an empty string.
property.location.citymissingA property.location.city was not defined.
property.location.cityemptyThe property.location.city was set to an empty string. Cannot be an empty string.
property.location.statemissingA property.location.state was not defined.
property.location.stateunrecognizedNot a valid property.location.state. Must be a valid two-letter US state abbreviation.
property.location.postal_codemissingA property.location.postal_code was not defined.
property.location.postal_codeunrecognizedNot a valid property.location.postal_code. Must be a valid five-digit US zip code.
property.property_typemissingA property.property_type was not defined.
property.property_typeunrecognizedNot a valid property.property_type. Must be a valid property type supported by PlanOmatic.
services[]missingA services[] array was not defined.
services[]emptyThe services[] array was set to an empty array. A minimum of one service list item is required.
services[].slugmissingA services[].slug was not defined for at least one service list item.
services[].slugunrecognizedAt least one service list item has an invalid services[].slug. Must be a valid slug corresponding to a service provided by PlanOmatic.
services[].slugduplicateTwo or more service list items have the same services[].slug. Duplicate services are not accepted.
services[].sluginvalidIncompatible services ordered together. Certain services cannot be ordered together. Contact your CSM for more info.
services[].quantitymissingA services[].slug was not defined for at least one service list item.
services[].quantityinvalidAt least one service list item has an invalid services[].quantity. Must be a valid quantity corresponding to the service_slug.
property_access{}missingA property_access{} was not defined.
property_access.vacantmissingA property_access.vacant was not defined.
property_access.vacantunrecognizedThe property_access.vacant was not a boolean value (true or false).
property_access.method_of_accessmissingA property_access.method_of_access was not defined.
property_access.method_of_accessunrecognizedNot a valid property_access.method_of_access. Must be a valid method of access supported by PlanOmatic.
property_access.access_codemissingThe property_access.method_of_access was set to "lockbox_code" or "keypad" and a property_access.access_code was not defined. A property_access.access_code is required when the property_access.method_of_access is set to "lockbox_code" or "keypad"
property_access.access_codeemptyThe property_access.method_of_access was set to "lockbox_code" or "keypad" and the property_access.access_code was set to an empty string. Cannot be an empty string when the property_access.method_of_access is set to "lockbox_code" or "keypad".
property_access.lockbox_locationmissingThe property_access.method_of_access was set to "lockbox_code" or "keypad" and a property_access.lockbox_location was not defined. Required when the property_access.method_of_access is set to "lockbox_code" or "keypad"
property_access.lockbox_locationemptyThe property_access.method_of_access was set to "lockbox_code" or "keypad" and the property_access.lockbox_location was set to an empty string. Cannot be an empty string when the property_access.method_of_access is set to "lockbox_code" or "keypad".
property_access.preferred_dateunrecognizedThe property_access.preferred_date was not formatted properly. Must be YYYY-MM-DD.
property_access.preferred_dateinvalidThe property_access.preferred_date was too soon. Must be at least one day in the future.
property_access.onsite_contact_namemissingA property_access.onsite_contact_name was not defined.
property_access.onsite_contact_nameemptyThe property_access.onsite_contact_name was set to an empty string. Cannot be an empty string.
property_access.onsite_contact_phonemissingA property_access.onsite_contact_phone was not defined.
property_access.onsite_contact_phoneinvalidThe property_access.onsite_contact_phone was not a valid phone number. Must be a valid US phone number with 10-11 digits.