WebCheckout API v2.0 Documentation

Entities

With few exceptions (see Special Namespaces) each namespace in the API is related to a single framework class.

For a list of all available entities and their properites & commands, navigate to your WebCheckout instance's url and add "/api" to the end (e.g. yourinstance.webcheckout.net/api).

Entity Serialization

WCO entities are serailized to JSON as objects. When beign sent from the API to the consumer these objects have, at a minimum, the following three values.

Entities are serialized using a minimal set of properties or a more extensive set of properties depending on the request and the level of nesting. Since entities may have other entities as their properties it is more efficient to limit the number of properties the nested entites contain.

Some classes include additional fields in their minimal serialization. These, along with the more expanded serializations are documented for each entity in the API Reference that is available on each WebChecheckout instance.

Sending Entities to the API

When sending an entity back to the API the consumer may exclude the name property. Historically when the API expected a specific type of entity the consumer could just pass in the oid of the entity in place of the object. This practice is deprecated and should not be used in any new interfaces.

Viewing an entity

To get the standard serialization of an object you call get in the appropriate namespace (See Namespace) and specify the oid of the object you want to retrieve.

POST /rest/person/get HTTP/1.1

      {
        "headers": {
          "Authorization": "Bearer eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0="
        },
        "postBody": {
          "oid": 1
        }
      }

HTTP 200

      {
        "apiVersion": "2.0",
        "uri": "/rest/person/get",
        "session": {
          "id": "S-78887",
          "agent": {
            "_class": "person",
            "oid": 533,
            "name": "Super",
            "avatar": null,
            "lastName": null,
            "otherName": "",
            "firstName": "Super",
            "userid": "adminuser"
          },
          "checkoutCenter": null,
          "organization": {
            "_class": "organization",
            "oid": 1,
            "name": "WebCheckout"
          },
          "focusAllocation": null,
          "editingAllocations": null,
          "transientDocuments": null,
          "resetTimeout": false,
          "resetApproved": false
        },
        "status": "ok",
        "notifications": null,
        "alert": null,
        "payload": {
          "_class": "person",
          "oid": 1,
          "name": "Administrator",
          "userid": "admin",
          "barcode": "12345"
        },
        "sessionToken": "eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0=",
        "sessionid": "53a6f8f4-c008-4de1-9ee0-2afd26999000"
      }

You may also specify specific properties to be included in the serialization as a property template. Doing so overrides the default serializations with the exception of the three properties mentioned above (_class, oid, name). For details on property templates see the Property Templates section below.

POST /rest/person/get HTTP/1.1

      {
        "headers": {
          "Authorization": "Bearer eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0="
        },
        "postBody": {
          "oid": 1,
          "properties": [
            "street",
            "street2",
            "city",
            "state",
            "telephone",
            "email"
          ]
        }
      }

HTTP 200

      {
        "apiVersion": "2.0",
        "uri": "/rest/person/get",
        "session": {
          "id": "S-78887",
          "agent": {
            "_class": "person",
            "oid": 533,
            "name": "Super",
            "avatar": null,
            "lastName": null,
            "otherName": "",
            "firstName": "Super",
            "userid": "adminuser"
          },
          "checkoutCenter": null,
          "organization": {
            "_class": "organization",
            "oid": 1,
            "name": "WebCheckout"
          },
          "focusAllocation": null,
          "editingAllocations": null,
          "transientDocuments": null,
          "resetTimeout": false,
          "resetApproved": false
        },
        "status": "ok",
        "notifications": null,
        "alert": null,
        "payload": {
          "_class": "person",
          "oid": 1,
          "name": "Administrator",
          "email": null,
          "telephone": null,
          "state": null,
          "city": null,
          "street2": null,
          "street": null
        },
        "sessionToken": "eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0=",
        "sessionid": "53a6f8f4-c008-4de1-9ee0-2afd26999000"
      }

To allow for the retrieval of multiple entities without requiring multiple requests, you may also supply an array of oids, with or without properties.

POST /rest/person/get HTTP/1.1

      {
        "headers": {
          "Authorization": "Bearer eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0="
        },
        "postBody": {
          "oid": [
            2575,
            2576,
            2577
          ]
        }
      }

HTTP 200

      {
        "apiVersion": "2.0",
        "uri": "/rest/person/get",
        "session": {
          "id": "S-78887",
          "agent": {
            "_class": "person",
            "oid": 533,
            "name": "Super",
            "avatar": null,
            "lastName": null,
            "otherName": "",
            "firstName": "Super",
            "userid": "adminuser"
          },
          "checkoutCenter": null,
          "organization": {
            "_class": "organization",
            "oid": 1,
            "name": "WebCheckout"
          },
          "focusAllocation": null,
          "editingAllocations": null,
          "transientDocuments": null,
          "resetTimeout": false,
          "resetApproved": false
        },
        "status": "ok",
        "notifications": null,
        "alert": null,
        "payload": [
          null,
          null,
          null
        ],
        "sessionToken": "eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0=",
        "sessionid": "53a6f8f4-c008-4de1-9ee0-2afd26999000"
      }

Providing an invalid oid will result in an error

Creating an Entity

Not all entities can be created directly, many are the result of other operations in the API. Where they may be directly created, the namespace will contain a "new" command

For example, the following details the creation of a new resource type.

POST /rest/resourceType/new HTTP/1.1

      {
        "headers": {
          "Authorization": "Bearer eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0="
        },
        "postBody": {
          "name": "Brand New Type 925352562",
          "resourceTypeId": "925352562",
          "organization": {
            "_class": "organization",
            "oid": 1
          }
        }
      }

HTTP 200

      {
        "apiVersion": "2.0",
        "uri": "/rest/resourceType/new",
        "session": {
          "id": "S-78887",
          "agent": {
            "_class": "person",
            "oid": 533,
            "name": "Super",
            "avatar": null,
            "lastName": null,
            "otherName": "",
            "firstName": "Super",
            "userid": "adminuser"
          },
          "checkoutCenter": null,
          "organization": {
            "_class": "organization",
            "oid": 1,
            "name": "WebCheckout"
          },
          "focusAllocation": null,
          "editingAllocations": null,
          "transientDocuments": null,
          "resetTimeout": false,
          "resetApproved": false
        },
        "status": "ok",
        "notifications": null,
        "alert": null,
        "payload": {
          "_class": "resourceType",
          "oid": 2463,
          "name": "Brand New Type 925352562",
          "value": null,
          "deleted": false,
          "parent": null,
          "organization": {
            "_class": "organization",
            "oid": 1,
            "name": "WebCheckout"
          },
          "pirP": true,
          "requiresAuthorization": false,
          "path": "Brand New Type 925352562",
          "origin": "LOCAL",
          "description": null
        },
        "sessionToken": "eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0=",
        "sessionid": "53a6f8f4-c008-4de1-9ee0-2afd26999000"
      }
Editing an Entity

Entities are edited by posting new property values to the update command of the namespace. Update accepts the oid of the object being updated, and the set of new property values.

POST /rest/resource/update HTTP/1.1

      {
        "headers": {
          "Authorization": "Bearer eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0="
        }
      }

HTTP 500

      {
        "apiVersion": "2.0",
        "uri": "/rest/resource/update",
        "session": {
          "id": "S-78887",
          "agent": {
            "_class": "person",
            "oid": 533,
            "name": "Super",
            "avatar": null,
            "lastName": null,
            "otherName": "",
            "firstName": "Super",
            "userid": "adminuser"
          },
          "checkoutCenter": null,
          "organization": {
            "_class": "organization",
            "oid": 1,
            "name": "WebCheckout"
          },
          "focusAllocation": null,
          "editingAllocations": null,
          "transientDocuments": null,
          "resetTimeout": false,
          "resetApproved": false
        },
        "status": "error",
        "notifications": null,
        "alert": null,
        "payload": {
          "message": "There is no applicable method for the generic function\n  #\nwhen called with arguments\n  (#\n   # NIL\n   #).\nSee also:\n  The ANSI Standard, Section 7.6.6",
          "class": "SB-PCL:NO-APPLICABLE-METHOD-ERROR"
        },
        "sessionToken": "eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0=",
        "sessionid": "53a6f8f4-c008-4de1-9ee0-2afd26999000"
      }

As with retrieving, the oid argument for update may be an array of OIDs. The API will apply the edit to each of the entities. The entities must be of the same type.

Deleting an Entity

Deleting of entities is generally forbidden in the API. When allowed, the namespace will contain a delete command.

Properties

Details on all properties exported for a particular entity type can be retrieved using the namespace properties call

For each property the results include:

By default, all wcof entity types have three defined properties:

The full list of properties for each namespace is listed in the the API Reference that is available on each WebChecheckout instance.

POST /rest/checkoutCenter/properties HTTP/1.1

      {
        "headers": {
          "Authorization": "Bearer eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0="
        },
        "postBody": {}
      }

HTTP 200

      {
        "apiVersion": "2.0",
        "uri": "/rest/checkoutCenter/properties",
        "session": {
          "id": "S-78887",
          "agent": {
            "_class": "person",
            "oid": 533,
            "name": "Super",
            "avatar": null,
            "lastName": null,
            "otherName": "",
            "firstName": "Super",
            "userid": "adminuser"
          },
          "checkoutCenter": null,
          "organization": {
            "_class": "organization",
            "oid": 1,
            "name": "WebCheckout"
          },
          "focusAllocation": null,
          "editingAllocations": null,
          "transientDocuments": null,
          "resetTimeout": false,
          "resetApproved": false
        },
        "status": "ok",
        "notifications": null,
        "alert": null,
        "payload": [
          {
            "label": "_Class",
            "property": "_class",
            "name": "_class",
            "aliases": null,
            "displayHint": "string",
            "relatedProperties": null,
            "resultColumn": false,
            "type": "string",
            "nullOk": true,
            "multipleValues": false,
            "documentation": "The object's class name as a string",
            "readable": true,
            "readAuth": [
              {
                "type": "defaultAllow"
              }
            ],
            "writable": false,
            "writeAuth": null,
            "dbSortable": false,
            "constraint": null
          },
          {
            "label": "Oid",
            "property": "oid",
            "name": "oid",
            "aliases": null,
            "displayHint": "integer",
            "relatedProperties": null,
            "resultColumn": false,
            "type": "integer",
            "nullOk": true,
            "multipleValues": false,
            "documentation": "The object's unique identifier",
            "readable": true,
            "readAuth": [
              {
                "type": "defaultAllow"
              }
            ],
            "writable": false,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Checkout Center",
            "property": "identity",
            "name": "identity",
            "aliases": null,
            "displayHint": "identity",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "checkoutCenter",
            "nullOk": true,
            "multipleValues": false,
            "documentation": "The object itself",
            "readable": true,
            "readAuth": null,
            "writable": false,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Name",
            "property": "name",
            "name": "name",
            "aliases": null,
            "displayHint": "string",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "string",
            "nullOk": false,
            "multipleValues": false,
            "documentation": "the unique name for this checkout-center",
            "readable": true,
            "readAuth": [
              {
                "type": "defaultAllow"
              }
            ],
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Description",
            "property": "description",
            "name": "description",
            "aliases": null,
            "displayHint": "string",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "string",
            "nullOk": true,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": [
              {
                "type": "defaultAllow"
              }
            ],
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Unique Id",
            "property": "uniqueId",
            "name": "uniqueId",
            "aliases": null,
            "displayHint": "string",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "string",
            "nullOk": false,
            "multipleValues": false,
            "documentation": "Virtual property that will return one valid unique identifier",
            "readable": true,
            "readAuth": null,
            "writable": false,
            "writeAuth": null,
            "dbSortable": false,
            "constraint": null
          },
          {
            "label": "Default Allocation Times",
            "property": "defaultAllocationTimes",
            "name": "defaultAllocationTimes",
            "aliases": null,
            "displayHint": "defaultAllocationTimes",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "defaultAllocationTimes",
            "nullOk": true,
            "multipleValues": false,
            "documentation": "Reader defaults to org's value if self's slot is\n   nil.  Writer sets the slot because any psheet or other js widget\n   displaying a value will show self's effective value.  If self's\n   slot is already set, this acts as expected -- you see that value\n   and change that value.  If self's slot is nil, you see the org's\n   value, and either (a) the org value is fine and you won't try to\n   set a value at the checkout center, (b) the org value is not fine\n   and you enter an override at the checkout center level, or (c) the\n   org value is fine and you enter the same value anyway.  The first\n   two work as expected, and in the third, we can either set the slot\n   value so it continues to override if the org value changes, OR do\n   nothing so that the checkout-center continues to inherit.  For now\n   we'll only write the value if we're replacing a nil with something\n   not already equal to the value inherited from the org level.  Some\n   day we might want to use a display like for policy values that\n   inherit.",
            "readable": true,
            "readAuth": [
              {
                "type": "defaultAllow"
              }
            ],
            "writable": true,
            "writeAuth": null,
            "dbSortable": false,
            "constraint": null
          },
          {
            "label": "Messaging From Address",
            "property": "messagingFromAddress",
            "name": "messagingFromAddress",
            "aliases": null,
            "displayHint": "string",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "string",
            "nullOk": true,
            "multipleValues": false,
            "documentation": "The From: address for email from this checkout-center.  If the address entered contains only whitespace, the organization's :messaging-from-address is returned.",
            "readable": true,
            "readAuth": null,
            "writable": true,
            "writeAuth": null,
            "dbSortable": false,
            "constraint": null
          },
          {
            "label": "Messaging From Address Slot",
            "property": "messagingFromAddressSlot",
            "name": "messagingFromAddressSlot",
            "aliases": null,
            "displayHint": "string",
            "relatedProperties": null,
            "resultColumn": false,
            "type": "string",
            "nullOk": true,
            "multipleValues": false,
            "documentation": "slot-value of messaging-from-address -- needed by UI",
            "readable": true,
            "readAuth": null,
            "writable": false,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Reply To Address",
            "property": "replyToAddress",
            "name": "replyToAddress",
            "aliases": null,
            "displayHint": "string",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "string",
            "nullOk": true,
            "multipleValues": false,
            "documentation": "where to send replies to email",
            "readable": true,
            "readAuth": null,
            "writable": true,
            "writeAuth": null,
            "dbSortable": false,
            "constraint": null
          },
          {
            "label": "Reply To Address Slot",
            "property": "replyToAddressSlot",
            "name": "replyToAddressSlot",
            "aliases": null,
            "displayHint": "string",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "string",
            "nullOk": true,
            "multipleValues": false,
            "documentation": "slot value of reply-to-address -- needed by UI",
            "readable": true,
            "readAuth": null,
            "writable": false,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Override Allocation Recipient Address",
            "property": "overrideAllocationRecipientAddress",
            "name": "overrideAllocationRecipientAddress",
            "aliases": null,
            "displayHint": "string",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "string",
            "nullOk": true,
            "multipleValues": false,
            "documentation": "An override value for all allocation email\n                   recipients, to allow redirecting outbound messages\n                   to another system",
            "readable": true,
            "readAuth": null,
            "writable": true,
            "writeAuth": null,
            "dbSortable": false,
            "constraint": null
          },
          {
            "label": "Renewal Limit",
            "property": "renewalLimit",
            "name": "renewalLimit",
            "aliases": null,
            "displayHint": "integer",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "integer",
            "nullOk": true,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": null,
            "writable": false,
            "writeAuth": null,
            "dbSortable": false,
            "constraint": null
          },
          {
            "label": "Managing Organization",
            "property": "organization",
            "name": "organization",
            "aliases": null,
            "displayHint": "entity",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "organization",
            "nullOk": true,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": [
              {
                "type": "defaultAllow"
              }
            ],
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Metaclass",
            "property": "metaclass",
            "name": "metaclass",
            "aliases": null,
            "displayHint": "selectBox",
            "relatedProperties": null,
            "resultColumn": false,
            "type": "tag",
            "nullOk": true,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": [
              {
                "type": "defaultAllow"
              }
            ],
            "writable": false,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": {
              "name": "resourceClass",
              "type": "orderedSet"
            }
          },
          {
            "label": "Default Delivery Type",
            "property": "defaultDeliveryType",
            "name": "defaultDeliveryType",
            "aliases": null,
            "displayHint": "selectBox",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "tag",
            "nullOk": false,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": null,
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": {
              "name": "deliveryType",
              "type": "orderedSet"
            }
          },
          {
            "label": "Default Resource Selector",
            "property": "defaultResourceSelector",
            "name": "defaultResourceSelector",
            "aliases": null,
            "displayHint": "selectBox",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "tag",
            "nullOk": false,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": null,
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": {
              "name": "resourceSelector",
              "type": "orderedSet"
            }
          },
          {
            "label": "Timeline Zoom Factor",
            "property": "timelineZoomFactor",
            "name": "timelineZoomFactor",
            "aliases": null,
            "displayHint": "selectBox",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "integer",
            "nullOk": true,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": null,
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": {
              "name": "timelineZoomFactor",
              "type": "orderedSet"
            }
          },
          {
            "label": "Timeline Granularity",
            "property": "timelineGranularity",
            "name": "timelineGranularity",
            "aliases": null,
            "displayHint": "integer",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "integer",
            "nullOk": true,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": null,
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Show Resource Timelines",
            "property": "showResourceTimelines",
            "name": "showResourceTimelines",
            "aliases": null,
            "displayHint": "boolean",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "boolean",
            "nullOk": true,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": null,
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Building",
            "property": "building",
            "name": "building",
            "aliases": null,
            "displayHint": "string",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "string",
            "nullOk": true,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": [
              {
                "type": "defaultAllow"
              }
            ],
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Room Number",
            "property": "room",
            "name": "room",
            "aliases": null,
            "displayHint": "string",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "string",
            "nullOk": true,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": [
              {
                "type": "defaultAllow"
              }
            ],
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Address",
            "property": "address",
            "name": "address",
            "aliases": null,
            "displayHint": "string",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "string",
            "nullOk": true,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": [
              {
                "type": "defaultAllow"
              }
            ],
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Telephone",
            "property": "telephone",
            "name": "telephone",
            "aliases": null,
            "displayHint": "string",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "string",
            "nullOk": true,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": [
              {
                "type": "defaultAllow"
              }
            ],
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Default Printer Queue",
            "property": "printQueue",
            "name": "printQueue",
            "aliases": null,
            "displayHint": "string",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "string",
            "nullOk": true,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": null,
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Allocation Mode",
            "property": "allocationMode",
            "name": "allocationMode",
            "aliases": null,
            "displayHint": "selectBox",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "tag",
            "nullOk": false,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": null,
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": {
              "name": "allocationMode",
              "type": "orderedSet"
            }
          },
          {
            "label": "Billing Contact",
            "property": "billingContactName",
            "name": "billingContactName",
            "aliases": null,
            "displayHint": "string",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "string",
            "nullOk": true,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": null,
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Billing Contact Telephone",
            "property": "billingContactPhone",
            "name": "billingContactPhone",
            "aliases": null,
            "displayHint": "string",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "string",
            "nullOk": true,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": null,
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Billing Contact Email",
            "property": "billingContactEmail",
            "name": "billingContactEmail",
            "aliases": null,
            "displayHint": "string",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "string",
            "nullOk": true,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": null,
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Email Template Set",
            "property": "emailTemplateSet",
            "name": "emailTemplateSet",
            "aliases": null,
            "displayHint": "entitySelectBox",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "emailTemplateSet",
            "nullOk": true,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": null,
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": {
              "name": "emailTemplateSets",
              "type": "dynamicOrderedSet"
            }
          },
          {
            "label": "Print Template Set",
            "property": "printTemplateSet",
            "name": "printTemplateSet",
            "aliases": null,
            "displayHint": "selectBox",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "string",
            "nullOk": true,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": null,
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": {
              "name": "printTemplateSet",
              "type": "dynamicOrderedSet"
            }
          },
          {
            "label": "Usage Day Rollover",
            "property": "usageDayRollover",
            "name": "usageDayRollover",
            "aliases": null,
            "displayHint": "wallTime",
            "relatedProperties": null,
            "resultColumn": false,
            "type": "wallTime",
            "nullOk": false,
            "multipleValues": false,
            "documentation": "The beginning of a day for usage purposes",
            "readable": true,
            "readAuth": null,
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Billing Day Rollover",
            "property": "billingDayRollover",
            "name": "billingDayRollover",
            "aliases": null,
            "displayHint": "wallTime",
            "relatedProperties": null,
            "resultColumn": false,
            "type": "wallTime",
            "nullOk": true,
            "multipleValues": false,
            "documentation": "The beginning of a day for billing purposes.  Note that null has special meaning",
            "readable": true,
            "readAuth": null,
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Exclude Closed Time From Usage",
            "property": "usageExcludeClosed",
            "name": "usageExcludeClosed",
            "aliases": null,
            "displayHint": "boolean",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "boolean",
            "nullOk": true,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": null,
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Exclude Closed Time From Fee Calculation",
            "property": "feesExcludeClosed",
            "name": "feesExcludeClosed",
            "aliases": null,
            "displayHint": "boolean",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "boolean",
            "nullOk": true,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": null,
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Exclude Closed Time From Fine Calculation",
            "property": "finesExcludeClosed",
            "name": "finesExcludeClosed",
            "aliases": null,
            "displayHint": "boolean",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "boolean",
            "nullOk": true,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": null,
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Copy Set/Strike People on All Notifications",
            "property": "ccSetStrike",
            "name": "ccSetStrike",
            "aliases": null,
            "displayHint": "boolean",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "boolean",
            "nullOk": true,
            "multipleValues": false,
            "documentation": "send CC email to set and strike people",
            "readable": true,
            "readAuth": null,
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Suppress Patron Emails on Set/Strike Allocations",
            "property": "suppressSetStrikeEmailToPatron",
            "name": "suppressSetStrikeEmailToPatron",
            "aliases": null,
            "displayHint": "boolean",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "boolean",
            "nullOk": true,
            "multipleValues": false,
            "documentation": "Suppress email to patron, accompanying people and contact person for allocation emails when the pickup/return options are set and/or strike, and it's relevant to the email.",
            "readable": true,
            "readAuth": null,
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Patron Portal New Reservation Notification",
            "property": "patronPortalEmailNotification",
            "name": "patronPortalEmailNotification",
            "aliases": null,
            "displayHint": "boolean",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "boolean",
            "nullOk": true,
            "multipleValues": false,
            "documentation": "send email about patron portal new reservations",
            "readable": true,
            "readAuth": null,
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Patron Portal Notification Email Address",
            "property": "patronPortalNotificationEmailAddress",
            "name": "patronPortalNotificationEmailAddress",
            "aliases": null,
            "displayHint": "string",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "string",
            "nullOk": true,
            "multipleValues": false,
            "documentation": "address to send emails to, about new patron portal reservations",
            "readable": true,
            "readAuth": null,
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Patron Portal Help Link",
            "property": "patronPortalHelpLink",
            "name": "patronPortalHelpLink",
            "aliases": null,
            "displayHint": "string",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "string",
            "nullOk": true,
            "multipleValues": false,
            "documentation": "link to use in place of the default for patron portal help",
            "readable": true,
            "readAuth": [
              {
                "type": "defaultAllow"
              }
            ],
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Patron Portal Hide Unauthorized",
            "property": "patronPortalHideUnauthorized",
            "name": "patronPortalHideUnauthorized",
            "aliases": null,
            "displayHint": "boolean",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "boolean",
            "nullOk": true,
            "multipleValues": false,
            "documentation": "",
            "readable": true,
            "readAuth": [
              {
                "type": "defaultAllow"
              }
            ],
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Patron Portal Hide Uncertified",
            "property": "patronPortalHideUncertified",
            "name": "patronPortalHideUncertified",
            "aliases": null,
            "displayHint": "boolean",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "boolean",
            "nullOk": true,
            "multipleValues": false,
            "documentation": "",
            "readable": true,
            "readAuth": [
              {
                "type": "defaultAllow"
              }
            ],
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Copy Reporting Patron on Help Desk Ticket Notifications",
            "property": "ccReportingPatron",
            "name": "ccReportingPatron",
            "aliases": null,
            "displayHint": "boolean",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "boolean",
            "nullOk": true,
            "multipleValues": false,
            "documentation": "Send email to ticket's reporting patron.",
            "readable": true,
            "readAuth": null,
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Require Signature On File",
            "property": "requireSignatureOnFile",
            "name": "requireSignatureOnFile",
            "aliases": null,
            "displayHint": "boolean",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "boolean",
            "nullOk": true,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": null,
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Require Scan To Pickup",
            "property": "forceBarcodeScanning",
            "name": "forceBarcodeScanning",
            "aliases": null,
            "displayHint": "boolean",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "boolean",
            "nullOk": true,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": null,
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Allow Rrt Pickup",
            "property": "allowRrtPickup",
            "name": "allowRrtPickup",
            "aliases": null,
            "displayHint": "boolean",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "boolean",
            "nullOk": true,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": null,
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Allow Rrt Autoassignment",
            "property": "allowRrtAutoassignment",
            "name": "allowRrtAutoassignment",
            "aliases": null,
            "displayHint": "boolean",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "boolean",
            "nullOk": true,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": null,
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Require Scan To Return",
            "property": "requireScanToReturn",
            "name": "requireScanToReturn",
            "aliases": null,
            "displayHint": "boolean",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "boolean",
            "nullOk": true,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": null,
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Allow Return All",
            "property": "allowReturnAll",
            "name": "allowReturnAll",
            "aliases": null,
            "displayHint": "boolean",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "boolean",
            "nullOk": true,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": null,
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Enable Receive Allocation",
            "property": "enableReceiveAllocation",
            "name": "enableReceiveAllocation",
            "aliases": null,
            "displayHint": "boolean",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "boolean",
            "nullOk": true,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": null,
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Form Date And Time Format",
            "property": "formDateTimeFormat",
            "name": "formDateTimeFormat",
            "aliases": null,
            "displayHint": "selectBox",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "tag",
            "nullOk": false,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": null,
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": {
              "name": "dateTimeFormat",
              "type": "dynamicOrderedSet"
            }
          },
          {
            "label": "Agreement Form File Name",
            "property": "agreementFormFileName",
            "name": "agreementFormFileName",
            "aliases": null,
            "displayHint": "string",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "string",
            "nullOk": true,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": null,
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Agreement Form Item Sorting",
            "property": "agreementFormSorting",
            "name": "agreementFormSorting",
            "aliases": null,
            "displayHint": "selectBox",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "tag",
            "nullOk": false,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": null,
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": {
              "name": "agreementFormSorting",
              "type": "orderedSet"
            }
          },
          {
            "label": "Agreement Form Item Grouping",
            "property": "agreementFormGrouping",
            "name": "agreementFormGrouping",
            "aliases": null,
            "displayHint": "selectBox",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "tag",
            "nullOk": false,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": null,
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": {
              "name": "agreementFormGrouping",
              "type": "orderedSet"
            }
          },
          {
            "label": "Use Customizable Agreement Form",
            "property": "customAgreementFormOid",
            "name": "customAgreementFormOid",
            "aliases": null,
            "displayHint": "selectBox",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "integer",
            "nullOk": true,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": null,
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": {
              "name": "customAgreementForms",
              "type": "dynamicOrderedSet"
            }
          },
          {
            "label": "Timezone",
            "property": "timezone",
            "name": "timezone",
            "aliases": null,
            "displayHint": "selectBox",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "string",
            "nullOk": true,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": null,
            "writable": true,
            "writeAuth": null,
            "dbSortable": false,
            "constraint": {
              "name": "timezones",
              "type": "dynamicOrderedSet"
            }
          },
          {
            "label": "Locale",
            "property": "locale",
            "name": "locale",
            "aliases": null,
            "displayHint": "selectBox",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "string",
            "nullOk": true,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": null,
            "writable": true,
            "writeAuth": null,
            "dbSortable": false,
            "constraint": {
              "name": "locales",
              "type": "orderedSet"
            }
          },
          {
            "label": "Circulation Requires Authorization",
            "property": "circulationRequiresAuthorization",
            "name": "circulationRequiresAuthorization",
            "aliases": null,
            "displayHint": "boolean",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "boolean",
            "nullOk": true,
            "multipleValues": false,
            "documentation": "if t, patron must be an active member of a group whose authset contains the checkout-center (scope of #!circulation-authorization) that the operator is trying to reserve/check-out from on behalf of the patron.",
            "readable": true,
            "readAuth": [
              {
                "type": "defaultAllow"
              }
            ],
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Patron Access Requires Authorization",
            "property": "patronAccessRequiresAuthorization",
            "name": "patronAccessRequiresAuthorization",
            "aliases": null,
            "displayHint": "boolean",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "boolean",
            "nullOk": true,
            "multipleValues": false,
            "documentation": "if t, patron must be an active member of a group whose authset contains the checkout-center (scope of #!patron-portal-access-authorization) that the patron is trying to log into.",
            "readable": true,
            "readAuth": [
              {
                "type": "defaultAllow"
              }
            ],
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Patron Portal Message",
            "property": "pirMotd",
            "name": "pirMotd",
            "aliases": null,
            "displayHint": "longString",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "string",
            "nullOk": true,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": [
              {
                "type": "defaultAllow"
              }
            ],
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Patron Portal Short Description",
            "property": "patronPortalShortDescription",
            "name": "patronPortalShortDescription",
            "aliases": null,
            "displayHint": "longString",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "string",
            "nullOk": true,
            "multipleValues": false,
            "documentation": "",
            "readable": true,
            "readAuth": [
              {
                "type": "defaultAllow"
              }
            ],
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Patron Portal Long Description",
            "property": "patronPortalLongDescription",
            "name": "patronPortalLongDescription",
            "aliases": null,
            "displayHint": "longString",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "string",
            "nullOk": true,
            "multipleValues": false,
            "documentation": "",
            "readable": true,
            "readAuth": [
              {
                "type": "defaultAllow"
              }
            ],
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Allow Patron Portal Search For Media In Other Centers",
            "property": "pirMediaCcQuery",
            "name": "pirMediaCcQuery",
            "aliases": null,
            "displayHint": "boolean",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "boolean",
            "nullOk": true,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": [
              {
                "type": "defaultAllow"
              }
            ],
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Schedule Repeats In Patron Portal",
            "property": "repeatsInPir",
            "name": "repeatsInPir",
            "aliases": null,
            "displayHint": "boolean",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "boolean",
            "nullOk": true,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": [
              {
                "type": "defaultAllow"
              }
            ],
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Patron Portal Resource Selection Mode",
            "property": "pirMode",
            "name": "pirMode",
            "aliases": null,
            "displayHint": "selectBox",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "tag",
            "nullOk": false,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": [
              {
                "type": "defaultAllow"
              }
            ],
            "writable": true,
            "writeAuth": null,
            "dbSortable": false,
            "constraint": {
              "name": "pirMode",
              "type": "dynamicOrderedSet"
            }
          },
          {
            "label": "Patron Reservations Require Approval",
            "property": "pirRequiresApproval",
            "name": "pirRequiresApproval",
            "aliases": null,
            "displayHint": "boolean",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "boolean",
            "nullOk": true,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": [
              {
                "type": "defaultAllow"
              }
            ],
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Allow Patrons To Submit Tickets In Patron Portal",
            "property": "pirReportProblems",
            "name": "pirReportProblems",
            "aliases": null,
            "displayHint": "boolean",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "boolean",
            "nullOk": true,
            "multipleValues": false,
            "documentation": "Can a patron report a problem in PIR at this checkout-center",
            "readable": true,
            "readAuth": [
              {
                "type": "defaultAllow"
              }
            ],
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Patron Portal Reservations Require Event Title",
            "property": "pirRequiresEventTitle",
            "name": "pirRequiresEventTitle",
            "aliases": null,
            "displayHint": "selectBox",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "tag",
            "nullOk": false,
            "multipleValues": false,
            "documentation": "require an event title in patron portal",
            "readable": true,
            "readAuth": [
              {
                "type": "defaultAllow"
              }
            ],
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": {
              "name": "eventTitleRequired",
              "type": "orderedSet"
            }
          },
          {
            "label": "Restrict Patron Delivery Locations To This Center",
            "property": "pirRestrictDeliveryLocations",
            "name": "pirRestrictDeliveryLocations",
            "aliases": null,
            "displayHint": "boolean",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "boolean",
            "nullOk": true,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": [
              {
                "type": "defaultAllow"
              }
            ],
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Min Checkout Reserve Time",
            "property": "minCheckoutReserveTime",
            "name": "minCheckoutReserveTime",
            "aliases": null,
            "displayHint": "duration",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "duration",
            "nullOk": true,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": [
              {
                "type": "defaultAllow"
              }
            ],
            "writable": false,
            "writeAuth": null,
            "dbSortable": false,
            "constraint": null
          },
          {
            "label": "Max Checkout Reserve Time",
            "property": "maxCheckoutReserveTime",
            "name": "maxCheckoutReserveTime",
            "aliases": null,
            "displayHint": "circulationPeriod",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "circulationPeriod",
            "nullOk": true,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": [
              {
                "type": "defaultAllow"
              }
            ],
            "writable": false,
            "writeAuth": null,
            "dbSortable": false,
            "constraint": null
          },
          {
            "label": "Reservation Advance Limit",
            "property": "reservationAdvanceLimit",
            "name": "reservationAdvanceLimit",
            "aliases": null,
            "displayHint": "duration",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "duration",
            "nullOk": true,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": [
              {
                "type": "defaultAllow"
              }
            ],
            "writable": false,
            "writeAuth": null,
            "dbSortable": false,
            "constraint": null
          },
          {
            "label": "Patron Portal Reservation Length",
            "property": "pirReservationLength",
            "name": "pirReservationLength",
            "aliases": null,
            "displayHint": "duration",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "duration",
            "nullOk": true,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": [
              {
                "type": "defaultAllow"
              }
            ],
            "writable": false,
            "writeAuth": null,
            "dbSortable": false,
            "constraint": null
          },
          {
            "label": "Patron Portal Start Granularity",
            "property": "pirStartGranularity",
            "name": "pirStartGranularity",
            "aliases": null,
            "displayHint": "integer",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "integer",
            "nullOk": true,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": [
              {
                "type": "defaultAllow"
              }
            ],
            "writable": false,
            "writeAuth": null,
            "dbSortable": false,
            "constraint": null
          },
          {
            "label": "Patron Portal End Granularity",
            "property": "pirEndGranularity",
            "name": "pirEndGranularity",
            "aliases": null,
            "displayHint": "integer",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "integer",
            "nullOk": true,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": [
              {
                "type": "defaultAllow"
              }
            ],
            "writable": false,
            "writeAuth": null,
            "dbSortable": false,
            "constraint": null
          },
          {
            "label": "Set Location In Patron Portal",
            "property": "setLocationInPatronPortal",
            "name": "setLocationInPatronPortal",
            "aliases": null,
            "displayHint": "selectBox",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "tag",
            "nullOk": false,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": [
              {
                "type": "defaultAllow"
              }
            ],
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": {
              "name": "setLocationInPatronPortalOptions",
              "type": "dynamicOrderedSet"
            }
          },
          {
            "label": "Patron Portal Show Credits",
            "property": "patronPortalShowCredits",
            "name": "patronPortalShowCredits",
            "aliases": null,
            "displayHint": "boolean",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "boolean",
            "nullOk": true,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": [
              {
                "type": "defaultAllow"
              }
            ],
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Patron Portal Allow Attachments",
            "property": "patronPortalAllowAttachments",
            "name": "patronPortalAllowAttachments",
            "aliases": null,
            "displayHint": "boolean",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "boolean",
            "nullOk": true,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": [
              {
                "type": "defaultAllow"
              }
            ],
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Patron Portal Allow Notes",
            "property": "patronPortalAllowNotes",
            "name": "patronPortalAllowNotes",
            "aliases": null,
            "displayHint": "boolean",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "boolean",
            "nullOk": true,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": [
              {
                "type": "defaultAllow"
              }
            ],
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Honor External Holds",
            "property": "honorExternalHolds",
            "name": "honorExternalHolds",
            "aliases": null,
            "displayHint": "entityList",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "checkoutCenter",
            "nullOk": true,
            "multipleValues": true,
            "documentation": null,
            "readable": true,
            "readAuth": null,
            "writable": true,
            "writeAuth": null,
            "dbSortable": false,
            "constraint": null
          },
          {
            "label": "Honor External Fines",
            "property": "honorExternalFines",
            "name": "honorExternalFines",
            "aliases": null,
            "displayHint": "entityList",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "checkoutCenter",
            "nullOk": true,
            "multipleValues": true,
            "documentation": null,
            "readable": true,
            "readAuth": null,
            "writable": true,
            "writeAuth": null,
            "dbSortable": false,
            "constraint": null
          },
          {
            "label": "Honor External Lates",
            "property": "honorExternalLates",
            "name": "honorExternalLates",
            "aliases": null,
            "displayHint": "entityList",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "checkoutCenter",
            "nullOk": true,
            "multipleValues": true,
            "documentation": null,
            "readable": true,
            "readAuth": null,
            "writable": true,
            "writeAuth": null,
            "dbSortable": false,
            "constraint": null
          },
          {
            "label": "Enable Rapid Return",
            "property": "enableRapidReturn",
            "name": "enableRapidReturn",
            "aliases": null,
            "displayHint": "boolean",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "boolean",
            "nullOk": true,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": null,
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Require Credit To Circulate",
            "property": "requireCreditToCirculate",
            "name": "requireCreditToCirculate",
            "aliases": null,
            "displayHint": "boolean",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "boolean",
            "nullOk": true,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": null,
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Auto Apply Credits",
            "property": "autoApplyCredits",
            "name": "autoApplyCredits",
            "aliases": null,
            "displayHint": "boolean",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "boolean",
            "nullOk": true,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": null,
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Use Circulation Windows",
            "property": "usePickupReturnWindows",
            "name": "usePickupReturnWindows",
            "aliases": null,
            "displayHint": "boolean",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "boolean",
            "nullOk": true,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": [
              {
                "type": "defaultAllow"
              }
            ],
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Assignment Strategy",
            "property": "assignmentStrategy",
            "name": "assignmentStrategy",
            "aliases": null,
            "displayHint": "selectBox",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "tag",
            "nullOk": false,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": null,
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": {
              "name": "ccAssignmentStrategies",
              "type": "orderedSet"
            }
          },
          {
            "label": "Limit Circulation Of Resources With Tickets",
            "property": "limitCirculationOfResourcesWithTickets",
            "name": "limitCirculationOfResourcesWithTickets",
            "aliases": null,
            "displayHint": "boolean",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "boolean",
            "nullOk": true,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": null,
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": null
          },
          {
            "label": "Rtype Authorizations From",
            "property": "rtypeAuthorizationsFrom",
            "name": "rtypeAuthorizationsFrom",
            "aliases": null,
            "displayHint": "selectBox",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "tag",
            "nullOk": true,
            "multipleValues": false,
            "documentation": "What groups are concidered when authorizing resource for an allocation at the CC",
            "readable": true,
            "readAuth": null,
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": {
              "name": "rtypeAuthorizationsFrom",
              "type": "orderedSet"
            }
          },
          {
            "label": "Group Requirement",
            "property": "groupRequirement",
            "name": "groupRequirement",
            "aliases": null,
            "displayHint": "selectBox",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "tag",
            "nullOk": false,
            "multipleValues": false,
            "documentation": "Does the CC require a group to circulate",
            "readable": true,
            "readAuth": [
              {
                "type": "defaultAllow"
              }
            ],
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": {
              "name": "groupRequirement",
              "type": "orderedSet"
            }
          },
          {
            "label": "Project Requirement",
            "property": "projectRequirement",
            "name": "projectRequirement",
            "aliases": null,
            "displayHint": "selectBox",
            "relatedProperties": null,
            "resultColumn": true,
            "type": "tag",
            "nullOk": false,
            "multipleValues": false,
            "documentation": "Does the CC require a project to circulate",
            "readable": true,
            "readAuth": [
              {
                "type": "defaultAllow"
              }
            ],
            "writable": true,
            "writeAuth": null,
            "dbSortable": true,
            "constraint": {
              "name": "projectRequirement",
              "type": "orderedSet"
            }
          },
          {
            "label": "Calendar",
            "property": "calendar",
            "name": "calendar",
            "aliases": null,
            "displayHint": "entity",
            "relatedProperties": null,
            "resultColumn": false,
            "type": "checkoutCenterCalendar",
            "nullOk": true,
            "multipleValues": false,
            "documentation": "The calendar of this Checkout Center",
            "readable": true,
            "readAuth": null,
            "writable": false,
            "writeAuth": null,
            "dbSortable": false,
            "constraint": null
          },
          {
            "label": "Simultaneity Schedule",
            "property": "simultaneitySchedule",
            "name": "simultaneitySchedule",
            "aliases": null,
            "displayHint": "entity",
            "relatedProperties": null,
            "resultColumn": false,
            "type": "simultaneitySchedule",
            "nullOk": true,
            "multipleValues": false,
            "documentation": null,
            "readable": true,
            "readAuth": null,
            "writable": false,
            "writeAuth": null,
            "dbSortable": false,
            "constraint": null
          },
          {
            "label": "Public Schedule",
            "property": "publicSchedule",
            "name": "publicSchedule",
            "aliases": null,
            "displayHint": "publicSchedule",
            "relatedProperties": null,
            "resultColumn": false,
            "type": "publicSchedule",
            "nullOk": true,
            "multipleValues": false,
            "documentation": "The current schedule for this CC structured for display",
            "readable": true,
            "readAuth": [
              {
                "type": "defaultAllow"
              }
            ],
            "writable": false,
            "writeAuth": null,
            "dbSortable": false,
            "constraint": null
          },
          {
            "label": "Default Task Profile",
            "property": "defaultTaskProfile",
            "name": "defaultTaskProfile",
            "aliases": null,
            "displayHint": "entitySelectBox",
            "relatedProperties": null,
            "resultColumn": false,
            "type": "taskProfile",
            "nullOk": true,
            "multipleValues": false,
            "documentation": "",
            "readable": true,
            "readAuth": null,
            "writable": true,
            "writeAuth": null,
            "dbSortable": false,
            "constraint": {
              "name": "taskProfiles",
              "type": "dynamicOrderedSet"
            }
          },
          {
            "label": "Patron Portal Properties",
            "property": "patronPortalProperties",
            "name": "patronPortalProperties",
            "aliases": null,
            "displayHint": "entityList",
            "relatedProperties": null,
            "resultColumn": false,
            "type": "patronPortalProperty",
            "nullOk": true,
            "multipleValues": true,
            "documentation": null,
            "readable": true,
            "readAuth": [
              {
                "type": "defaultAllow"
              }
            ],
            "writable": false,
            "writeAuth": null,
            "dbSortable": false,
            "constraint": null
          }
        ],
        "sessionToken": "eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0=",
        "sessionid": "53a6f8f4-c008-4de1-9ee0-2afd26999000"
      }
Query Terms

Details on the query terms published for a particular entity type can be retrieved using the namespace queryTerms call.

For each query term the results include:

The full list of query terms for each namespace is listed in the the API Reference that is available on each WebChecheckout instance.

POST /rest/checkoutCenter/queryTerms HTTP/1.1

      {
        "headers": {
          "Authorization": "Bearer eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0="
        },
        "postBody": {}
      }

HTTP 200

      {
        "apiVersion": "2.0",
        "uri": "/rest/checkoutCenter/queryTerms",
        "session": {
          "id": "S-78887",
          "agent": {
            "_class": "person",
            "oid": 533,
            "name": "Super",
            "avatar": null,
            "lastName": null,
            "otherName": "",
            "firstName": "Super",
            "userid": "adminuser"
          },
          "checkoutCenter": null,
          "organization": {
            "_class": "organization",
            "oid": 1,
            "name": "WebCheckout"
          },
          "focusAllocation": null,
          "editingAllocations": null,
          "transientDocuments": null,
          "resetTimeout": false,
          "resetApproved": false
        },
        "status": "ok",
        "notifications": null,
        "alert": null,
        "payload": [
          {
            "name": "Checkout Center",
            "parameter": "identity",
            "documentation": "Undocumented Term",
            "type": "checkoutCenter",
            "displayHint": "autocomplete",
            "constraint": null
          },
          {
            "name": "Unique Id",
            "parameter": "uniqueId",
            "documentation": "Undocumented Term",
            "type": "string",
            "displayHint": "string",
            "constraint": null
          },
          {
            "name": "Autocomplete",
            "parameter": "autocomplete",
            "documentation": "Undocumented Term",
            "type": "string",
            "displayHint": "autocompleteString",
            "constraint": null
          },
          {
            "name": "Contained By Authset",
            "parameter": "containedByAuthset",
            "documentation": "Undocumented Term",
            "type": "authset",
            "displayHint": "autocomplete",
            "constraint": null
          },
          {
            "name": "Contained By Authset Autocomplete",
            "parameter": "containedByAuthsetAutocomplete",
            "documentation": "Undocumented Term",
            "type": "string",
            "displayHint": "autocompleteString",
            "constraint": null
          },
          {
            "name": "Managing Organization",
            "parameter": "organization",
            "documentation": "Undocumented Term",
            "type": "organization",
            "displayHint": "entity",
            "constraint": {
              "name": "organizations",
              "type": "dynamicOrderedSet"
            }
          },
          {
            "name": "Staffed",
            "parameter": "staffed",
            "documentation": "Undocumented Term",
            "type": "boolean",
            "displayHint": "boolean",
            "constraint": null
          },
          {
            "name": "Unstaffed",
            "parameter": "unstaffed",
            "documentation": "Undocumented Term",
            "type": "boolean",
            "displayHint": "boolean",
            "constraint": null
          }
        ],
        "sessionToken": "eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0=",
        "sessionid": "53a6f8f4-c008-4de1-9ee0-2afd26999000"
      }
Searching for Entities

POSTing to a namespace's search method will perform a search across all entities of that type. An empty Request payload will result in the returning of all entites of the type. This should be used with caution as some classes of entity may have hundreds of thousands of instances. There is no built-in limit on the number of results. Extreme result sets may cause performance problems with the server itself.

POST /rest/checkoutCenter/search HTTP/1.1

      {
        "headers": {
          "Authorization": "Bearer eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0="
        },
        "postBody": {}
      }

HTTP 200

      {
        "apiVersion": "2.0",
        "uri": "/rest/checkoutCenter/search",
        "session": {
          "id": "S-78887",
          "agent": {
            "_class": "person",
            "oid": 533,
            "name": "Super",
            "avatar": null,
            "lastName": null,
            "otherName": "",
            "firstName": "Super",
            "userid": "adminuser"
          },
          "checkoutCenter": null,
          "organization": {
            "_class": "organization",
            "oid": 1,
            "name": "WebCheckout"
          },
          "focusAllocation": null,
          "editingAllocations": null,
          "transientDocuments": null,
          "resetTimeout": false,
          "resetApproved": false
        },
        "status": "ok",
        "notifications": null,
        "alert": null,
        "payload": {
          "count": 1,
          "summary": null,
          "result": [
            {
              "_class": "checkoutCenter",
              "oid": 1,
              "name": "WebCheckout",
              "organization": {
                "_class": "organization",
                "oid": 1,
                "name": "WebCheckout"
              },
              "description": null
            }
          ]
        },
        "sessionToken": "eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0=",
        "sessionid": "53a6f8f4-c008-4de1-9ee0-2afd26999000"
      }
Query Argument

Specifying keys and values in the query argument will limit the search to entities matching these query terms and values. See the API Reference that is available on each WebChecheckout instance for a list of available query terms and their arguments.

POST /rest/person/search HTTP/1.1

      {
        "headers": {
          "Authorization": "Bearer eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0="
        },
        "postBody": {
          "query": {
            "firstName": "John"
          }
        }
      }

HTTP 200

      {
        "apiVersion": "2.0",
        "uri": "/rest/person/search",
        "session": {
          "id": "S-78887",
          "agent": {
            "_class": "person",
            "oid": 533,
            "name": "Super",
            "avatar": null,
            "lastName": null,
            "otherName": "",
            "firstName": "Super",
            "userid": "adminuser"
          },
          "checkoutCenter": null,
          "organization": {
            "_class": "organization",
            "oid": 1,
            "name": "WebCheckout"
          },
          "focusAllocation": null,
          "editingAllocations": null,
          "transientDocuments": null,
          "resetTimeout": false,
          "resetApproved": false
        },
        "status": "ok",
        "notifications": null,
        "alert": null,
        "payload": {
          "count": 0,
          "summary": null,
          "result": []
        },
        "sessionToken": "eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0=",
        "sessionid": "53a6f8f4-c008-4de1-9ee0-2afd26999000"
      }

Multiple terms may be combined using an "and" or "or" term.

POST /rest/person/search HTTP/1.1

      {
        "headers": {
          "Authorization": "Bearer eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0="
        },
        "postBody": {
          "query": {
            "and": {
              "firstName": "John",
              "lastName": "Smith"
            }
          }
        }
      }

HTTP 200

      {
        "apiVersion": "2.0",
        "uri": "/rest/person/search",
        "session": {
          "id": "S-78887",
          "agent": {
            "_class": "person",
            "oid": 533,
            "name": "Super",
            "avatar": null,
            "lastName": null,
            "otherName": "",
            "firstName": "Super",
            "userid": "adminuser"
          },
          "checkoutCenter": null,
          "organization": {
            "_class": "organization",
            "oid": 1,
            "name": "WebCheckout"
          },
          "focusAllocation": null,
          "editingAllocations": null,
          "transientDocuments": null,
          "resetTimeout": false,
          "resetApproved": false
        },
        "status": "ok",
        "notifications": null,
        "alert": null,
        "payload": {
          "count": 0,
          "summary": null,
          "result": []
        },
        "sessionToken": "eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0=",
        "sessionid": "53a6f8f4-c008-4de1-9ee0-2afd26999000"
      }

POST /rest/person/search HTTP/1.1

      {
        "headers": {
          "Authorization": "Bearer eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0="
        },
        "postBody": {
          "query": {
            "or": {
              "firstName": "John",
              "lastName": "Kim"
            }
          }
        }
      }

HTTP 200

      {
        "apiVersion": "2.0",
        "uri": "/rest/person/search",
        "session": {
          "id": "S-78887",
          "agent": {
            "_class": "person",
            "oid": 533,
            "name": "Super",
            "avatar": null,
            "lastName": null,
            "otherName": "",
            "firstName": "Super",
            "userid": "adminuser"
          },
          "checkoutCenter": null,
          "organization": {
            "_class": "organization",
            "oid": 1,
            "name": "WebCheckout"
          },
          "focusAllocation": null,
          "editingAllocations": null,
          "transientDocuments": null,
          "resetTimeout": false,
          "resetApproved": false
        },
        "status": "ok",
        "notifications": null,
        "alert": null,
        "payload": {
          "count": 0,
          "summary": null,
          "result": []
        },
        "sessionToken": "eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0=",
        "sessionid": "53a6f8f4-c008-4de1-9ee0-2afd26999000"
      }

Specifying a non-existing query term, or an improperly formatted value will result in an error.

Properties Argument

As with getting an individual entity, with searching you may specify the properties you would like to be encluded with each result. This is done by providing a property template to the properties argument. For details on property templates see the Property Templates section below. As always, the mandatory three properties will be included.

Limit Argument

The limit argument will limit the number of results returned, even if more results match the query terms.

POST /rest/person/search HTTP/1.1

      {
        "headers": {
          "Authorization": "Bearer eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0="
        },
        "postBody": {
          "limit": 5
        }
      }

HTTP 200

      {
        "apiVersion": "2.0",
        "uri": "/rest/person/search",
        "session": {
          "id": "S-78887",
          "agent": {
            "_class": "person",
            "oid": 533,
            "name": "Super",
            "avatar": null,
            "lastName": null,
            "otherName": "",
            "firstName": "Super",
            "userid": "adminuser"
          },
          "checkoutCenter": null,
          "organization": {
            "_class": "organization",
            "oid": 1,
            "name": "WebCheckout"
          },
          "focusAllocation": null,
          "editingAllocations": null,
          "transientDocuments": null,
          "resetTimeout": false,
          "resetApproved": false
        },
        "status": "ok",
        "notifications": null,
        "alert": null,
        "payload": {
          "count": 3,
          "summary": null,
          "result": [
            {
              "_class": "person",
              "oid": 533,
              "name": "Super",
              "userid": "adminuser",
              "barcode": null
            },
            {
              "_class": "person",
              "oid": 1393,
              "name": "Window",
              "userid": "windowworker",
              "barcode": null
            },
            {
              "_class": "person",
              "oid": 1,
              "name": "Administrator",
              "userid": "admin",
              "barcode": "12345"
            }
          ]
        },
        "sessionToken": "eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0=",
        "sessionid": "53a6f8f4-c008-4de1-9ee0-2afd26999000"
      }
Order-by Argument

The order-by argument causes the results of the find to be sorted by the named property. It is an error to provide a name that is not a property in the namespace being searched for. It is also an error to provide the name of a property that is not "dbSortable".

POST /rest/person/search HTTP/1.1

      {
        "headers": {
          "Authorization": "Bearer eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0="
        },
        "postBody": {
          "limit": 5,
          "orderBy": "sortableName"
        }
      }

HTTP 200

      {
        "apiVersion": "2.0",
        "uri": "/rest/person/search",
        "session": {
          "id": "S-78887",
          "agent": {
            "_class": "person",
            "oid": 533,
            "name": "Super",
            "avatar": null,
            "lastName": null,
            "otherName": "",
            "firstName": "Super",
            "userid": "adminuser"
          },
          "checkoutCenter": null,
          "organization": {
            "_class": "organization",
            "oid": 1,
            "name": "WebCheckout"
          },
          "focusAllocation": null,
          "editingAllocations": null,
          "transientDocuments": null,
          "resetTimeout": false,
          "resetApproved": false
        },
        "status": "ok",
        "notifications": null,
        "alert": null,
        "payload": {
          "count": 3,
          "summary": null,
          "result": [
            {
              "_class": "person",
              "oid": 1,
              "name": "Administrator",
              "userid": "admin",
              "barcode": "12345"
            },
            {
              "_class": "person",
              "oid": 533,
              "name": "Super",
              "userid": "adminuser",
              "barcode": null
            },
            {
              "_class": "person",
              "oid": 1393,
              "name": "Window",
              "userid": "windowworker",
              "barcode": null
            }
          ]
        },
        "sessionToken": "eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0=",
        "sessionid": "53a6f8f4-c008-4de1-9ee0-2afd26999000"
      }
Order-direction Argument

The order-direction argument determines the sort order of the order-by argument and takes one of two values:

The argument is ignored if you have not provided an order-by property.

POST /rest/person/search HTTP/1.1

      {
        "headers": {
          "Authorization": "Bearer eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0="
        },
        "postBody": {
          "limit": 5,
          "orderBy": "sortableName",
          "orderDirection": "desc"
        }
      }

HTTP 200

      {
        "apiVersion": "2.0",
        "uri": "/rest/person/search",
        "session": {
          "id": "S-78887",
          "agent": {
            "_class": "person",
            "oid": 533,
            "name": "Super",
            "avatar": null,
            "lastName": null,
            "otherName": "",
            "firstName": "Super",
            "userid": "adminuser"
          },
          "checkoutCenter": null,
          "organization": {
            "_class": "organization",
            "oid": 1,
            "name": "WebCheckout"
          },
          "focusAllocation": null,
          "editingAllocations": null,
          "transientDocuments": null,
          "resetTimeout": false,
          "resetApproved": false
        },
        "status": "ok",
        "notifications": null,
        "alert": null,
        "payload": {
          "count": 3,
          "summary": null,
          "result": [
            {
              "_class": "person",
              "oid": 1393,
              "name": "Window",
              "userid": "windowworker",
              "barcode": null
            },
            {
              "_class": "person",
              "oid": 533,
              "name": "Super",
              "userid": "adminuser",
              "barcode": null
            },
            {
              "_class": "person",
              "oid": 1,
              "name": "Administrator",
              "userid": "admin",
              "barcode": "12345"
            }
          ]
        },
        "sessionToken": "eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0=",
        "sessionid": "53a6f8f4-c008-4de1-9ee0-2afd26999000"
      }
Order-nulls Argument

The order-null argument determines where null values are sorted in the results and takes one of two values

The argument is ignored if you have not provided an order-by property.

Order Argument

The order argument expands on the previous order-* arguments allowing for sorting by multiple properties. Accepts a list of objects specifying "by", "direction", and "nulls" options. Returns results sorted by each option in turn.

POST /rest/person/search HTTP/1.1

      {
        "headers": {
          "Authorization": "Bearer eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0="
        },
        "postBody": {
          "order": [
            {
              "by": "lastName",
              "direction": "desc"
            },
            {
              "by": "userid",
              "direction": "asc"
            }
          ]
        }
      }

HTTP 200

      {
        "apiVersion": "2.0",
        "uri": "/rest/person/search",
        "session": {
          "id": "S-78887",
          "agent": {
            "_class": "person",
            "oid": 533,
            "name": "Super",
            "avatar": null,
            "lastName": null,
            "otherName": "",
            "firstName": "Super",
            "userid": "adminuser"
          },
          "checkoutCenter": null,
          "organization": {
            "_class": "organization",
            "oid": 1,
            "name": "WebCheckout"
          },
          "focusAllocation": null,
          "editingAllocations": null,
          "transientDocuments": null,
          "resetTimeout": false,
          "resetApproved": false
        },
        "status": "ok",
        "notifications": null,
        "alert": null,
        "payload": {
          "count": 3,
          "summary": null,
          "result": [
            {
              "_class": "person",
              "oid": 533,
              "name": "Super",
              "userid": "adminuser",
              "barcode": null
            },
            {
              "_class": "person",
              "oid": 1393,
              "name": "Window",
              "userid": "windowworker",
              "barcode": null
            },
            {
              "_class": "person",
              "oid": 1,
              "name": "Administrator",
              "userid": "admin",
              "barcode": "12345"
            }
          ]
        },
        "sessionToken": "eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0=",
        "sessionid": "53a6f8f4-c008-4de1-9ee0-2afd26999000"
      }
Offset Argument

The offset argument will ignore the first N results before returning any matches.

POST /rest/person/search HTTP/1.1

      {
        "headers": {
          "Authorization": "Bearer eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0="
        },
        "postBody": {
          "limit": 5,
          "offset": 0,
          "orderBy": "sortableName",
          "orderDirection": "desc"
        }
      }

HTTP 200

      {
        "apiVersion": "2.0",
        "uri": "/rest/person/search",
        "session": {
          "id": "S-78887",
          "agent": {
            "_class": "person",
            "oid": 533,
            "name": "Super",
            "avatar": null,
            "lastName": null,
            "otherName": "",
            "firstName": "Super",
            "userid": "adminuser"
          },
          "checkoutCenter": null,
          "organization": {
            "_class": "organization",
            "oid": 1,
            "name": "WebCheckout"
          },
          "focusAllocation": null,
          "editingAllocations": null,
          "transientDocuments": null,
          "resetTimeout": false,
          "resetApproved": false
        },
        "status": "ok",
        "notifications": null,
        "alert": null,
        "payload": {
          "count": 3,
          "summary": null,
          "result": [
            {
              "_class": "person",
              "oid": 1393,
              "name": "Window",
              "userid": "windowworker",
              "barcode": null
            },
            {
              "_class": "person",
              "oid": 533,
              "name": "Super",
              "userid": "adminuser",
              "barcode": null
            },
            {
              "_class": "person",
              "oid": 1,
              "name": "Administrator",
              "userid": "admin",
              "barcode": "12345"
            }
          ]
        },
        "sessionToken": "eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0=",
        "sessionid": "53a6f8f4-c008-4de1-9ee0-2afd26999000"
      }

POST /rest/person/search HTTP/1.1

      {
        "headers": {
          "Authorization": "Bearer eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0="
        },
        "postBody": {
          "limit": 5,
          "offset": 5,
          "orderBy": "sortableName",
          "orderDirection": "desc"
        }
      }

HTTP 200

      {
        "apiVersion": "2.0",
        "uri": "/rest/person/search",
        "session": {
          "id": "S-78887",
          "agent": {
            "_class": "person",
            "oid": 533,
            "name": "Super",
            "avatar": null,
            "lastName": null,
            "otherName": "",
            "firstName": "Super",
            "userid": "adminuser"
          },
          "checkoutCenter": null,
          "organization": {
            "_class": "organization",
            "oid": 1,
            "name": "WebCheckout"
          },
          "focusAllocation": null,
          "editingAllocations": null,
          "transientDocuments": null,
          "resetTimeout": false,
          "resetApproved": false
        },
        "status": "ok",
        "notifications": null,
        "alert": null,
        "payload": {
          "count": 3,
          "summary": null,
          "result": []
        },
        "sessionToken": "eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0=",
        "sessionid": "53a6f8f4-c008-4de1-9ee0-2afd26999000"
      }
Count Argument

The count argument revises the type of value returned by search. It no longer returns an array, instead it returns an integer count of the number of matching entities. This operation is far more efficient that returing a list of results.

OIDs Only Argument

The oidsOnly argument revises the return value of the search. Instead of returning an array of entities, it returns an array of OIDsfor the result. This may be used for performance reasons when it would be better to retrieve entites as they are needed. For example, see the CSV Export section below.

POST /rest/person/search HTTP/1.1

      {
        "headers": {
          "Authorization": "Bearer eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0="
        },
        "postBody": {
          "limit": 10,
          "oidsOnly": true
        }
      }

HTTP 200

      {
        "apiVersion": "2.0",
        "uri": "/rest/person/search",
        "session": {
          "id": "S-78887",
          "agent": {
            "_class": "person",
            "oid": 533,
            "name": "Super",
            "avatar": null,
            "lastName": null,
            "otherName": "",
            "firstName": "Super",
            "userid": "adminuser"
          },
          "checkoutCenter": null,
          "organization": {
            "_class": "organization",
            "oid": 1,
            "name": "WebCheckout"
          },
          "focusAllocation": null,
          "editingAllocations": null,
          "transientDocuments": null,
          "resetTimeout": false,
          "resetApproved": false
        },
        "status": "ok",
        "notifications": null,
        "alert": null,
        "payload": {
          "count": 3,
          "summary": null,
          "result": [
            1393,
            1,
            533
          ]
        },
        "sessionToken": "eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0=",
        "sessionid": "53a6f8f4-c008-4de1-9ee0-2afd26999000"
      }
MultiQuery Argument

The mutiQuery argument allows for multiple searches for the same entity type in a single call. It accepts an array of query definitions, including all above arguments with the exception of properties which if provided to search still applies to all returned results.

The result is an array of search result payloads in the same order as the queries.

POST /rest/person/search HTTP/1.1

      {
        "headers": {
          "Authorization": "Bearer eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0="
        },
        "postBody": {
          "multiQuery": [
            {
              "query": {
                "firstName": "John"
              }
            },
            {
              "query": {
                "userid": "admin"
              }
            }
          ],
          "properties": [
            "street",
            "street2",
            "city",
            "state",
            "telephone",
            "email"
          ]
        }
      }

HTTP 200

      {
        "apiVersion": "2.0",
        "uri": "/rest/person/search",
        "session": {
          "id": "S-78887",
          "agent": {
            "_class": "person",
            "oid": 533,
            "name": "Super",
            "avatar": null,
            "lastName": null,
            "otherName": "",
            "firstName": "Super",
            "userid": "adminuser"
          },
          "checkoutCenter": null,
          "organization": {
            "_class": "organization",
            "oid": 1,
            "name": "WebCheckout"
          },
          "focusAllocation": null,
          "editingAllocations": null,
          "transientDocuments": null,
          "resetTimeout": false,
          "resetApproved": false
        },
        "status": "ok",
        "notifications": null,
        "alert": null,
        "payload": [
          {
            "count": 0,
            "summary": null,
            "result": []
          },
          {
            "count": 1,
            "summary": null,
            "result": [
              {
                "_class": "person",
                "oid": 1,
                "name": "Administrator",
                "email": null,
                "telephone": null,
                "state": null,
                "city": null,
                "street2": null,
                "street": null
              }
            ]
          }
        ],
        "sessionToken": "eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0=",
        "sessionid": "53a6f8f4-c008-4de1-9ee0-2afd26999000"
      }
Other Standard Entity Methods
Search Configurations

A namespace may have a set of predefined find configurations describing a set of query terms, and a set of result properties for a search. The list for each entity type can be retrieved by GETing the namespace searchConfigs asset. The results are the name and guid of the config and a flag to tell if it is the default query config for the entity type. A full configuration may be retrieved by posting to the configurations/searchConfig. See configuration in Special Namespaces for details.

Please note that configurations are highly unstable and likely to change considerably in upcomming releases.

POST /rest/allocation/search HTTP/1.1

      {
        "headers": {
          "Authorization": "Bearer eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0="
        },
        "postBody": {}
      }

HTTP 200

      {
        "apiVersion": "2.0",
        "uri": "/rest/allocation/search",
        "session": {
          "id": "S-78887",
          "agent": {
            "_class": "person",
            "oid": 533,
            "name": "Super",
            "avatar": null,
            "lastName": null,
            "otherName": "",
            "firstName": "Super",
            "userid": "adminuser"
          },
          "checkoutCenter": null,
          "organization": {
            "_class": "organization",
            "oid": 1,
            "name": "WebCheckout"
          },
          "focusAllocation": null,
          "editingAllocations": null,
          "transientDocuments": null,
          "resetTimeout": false,
          "resetApproved": false
        },
        "status": "ok",
        "notifications": null,
        "alert": null,
        "payload": {
          "count": 0,
          "summary": null,
          "result": []
        },
        "sessionToken": "eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0=",
        "sessionid": "53a6f8f4-c008-4de1-9ee0-2afd26999000"
      }
Export to CSV

Any collection of the same entity type may be exported to CSV by posting the name of the output file, the properties requested in order, and the list of OIDs to include in order.

POST /rest/person/exportCSV HTTP/1.1

	{
	  "headers": {
	    "Authorization": "Bearer eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0="
	  }
	}

HTTP 500

	{
	  "apiVersion": "2.0",
	  "uri": "/rest/person/exportCSV",
	  "session": {
	    "id": "S-78887",
	    "agent": {
	      "_class": "person",
	      "oid": 533,
	      "name": "Super",
	      "avatar": null,
	      "lastName": null,
	      "otherName": "",
	      "firstName": "Super",
	      "userid": "adminuser"
	    },
	    "checkoutCenter": null,
	    "organization": {
	      "_class": "organization",
	      "oid": 1,
	      "name": "WebCheckout"
	    },
	    "focusAllocation": null,
	    "editingAllocations": null,
	    "transientDocuments": null,
	    "resetTimeout": false,
	    "resetApproved": false
	  },
	  "status": "error",
	  "notifications": null,
	  "alert": null,
	  "payload": {
	    "message": "Properties list required for wcof-entites",
	    "class": "COMMON-LISP:SIMPLE-ERROR"
	  },
	  "sessionToken": "eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0=",
	  "sessionid": "53a6f8f4-c008-4de1-9ee0-2afd26999000"
	}

Getting the resulting URI, assuming it is done in the context of the same authorized session, will return the generated csv data as an attachment. Note, here, that this is not currently a rest API operation. Hence the use of the "GET" operation.

GET wco?method=get-asset&name=foo.csv

HTTP 200

	  Content-Disposition:attachment; filename=foo.csv
	  Content-Type:text/csv; charset=utf-8

	  "Person ID",person.oid
	  admin,1
Exports

In addition to exportCSV, entites may have additional possible export formats defined. A list of all exports available may be retrieved by GETting the namespaces exports asset. For consistancy, all export methods take the same set of arguments as exportCSV however some reports may ignore some of the arguments.

POST /rest/allocation/exports HTTP/1.1

      {
        "headers": {
          "Authorization": "Bearer eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0="
        },
        "postBody": {}
      }

HTTP 200

      {
        "apiVersion": "2.0",
        "uri": "/rest/allocation/exports",
        "session": {
          "id": "S-78887",
          "agent": {
            "_class": "person",
            "oid": 533,
            "name": "Super",
            "avatar": null,
            "lastName": null,
            "otherName": "",
            "firstName": "Super",
            "userid": "adminuser"
          },
          "checkoutCenter": null,
          "organization": {
            "_class": "organization",
            "oid": 1,
            "name": "WebCheckout"
          },
          "focusAllocation": null,
          "editingAllocations": null,
          "transientDocuments": null,
          "resetTimeout": false,
          "resetApproved": false
        },
        "status": "ok",
        "notifications": null,
        "alert": null,
        "payload": [
          {
            "name": "exportCSV",
            "label": "Export CSV"
          },
          {
            "name": "byItemUsageReport",
            "label": "Usage Report"
          },
          {
            "name": "agreementFormBundle",
            "label": "Form Archive"
          }
        ],
        "sessionToken": "eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0=",
        "sessionid": "53a6f8f4-c008-4de1-9ee0-2afd26999000"
      }

POST /rest/person/exports HTTP/1.1

      {
        "headers": {
          "Authorization": "Bearer eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0="
        },
        "postBody": {}
      }

HTTP 200

      {
        "apiVersion": "2.0",
        "uri": "/rest/person/exports",
        "session": {
          "id": "S-78887",
          "agent": {
            "_class": "person",
            "oid": 533,
            "name": "Super",
            "avatar": null,
            "lastName": null,
            "otherName": "",
            "firstName": "Super",
            "userid": "adminuser"
          },
          "checkoutCenter": null,
          "organization": {
            "_class": "organization",
            "oid": 1,
            "name": "WebCheckout"
          },
          "focusAllocation": null,
          "editingAllocations": null,
          "transientDocuments": null,
          "resetTimeout": false,
          "resetApproved": false
        },
        "status": "ok",
        "notifications": null,
        "alert": null,
        "payload": [
          {
            "name": "exportCSV",
            "label": "Export CSV"
          },
          {
            "name": "exportImportable",
            "label": "Export Importable"
          }
        ],
        "sessionToken": "eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0=",
        "sessionid": "53a6f8f4-c008-4de1-9ee0-2afd26999000"
      }
Commands

Apart from the standard methods all entities have as documented above, some namespaces have additional commands defined. The list of available commands can be retrieved by GETing the namespaces commands operation.

The full list of commands for each namespace is listed in the the API Reference that is available on each WebChecheckout instance.

POST /rest/group/commands HTTP/1.1

      {
        "headers": {
          "Authorization": "Bearer eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0="
        },
        "postBody": {}
      }

HTTP 200

      {
        "apiVersion": "2.0",
        "uri": "/rest/group/commands",
        "session": {
          "id": "S-78887",
          "agent": {
            "_class": "person",
            "oid": 533,
            "name": "Super",
            "avatar": null,
            "lastName": null,
            "otherName": "",
            "firstName": "Super",
            "userid": "adminuser"
          },
          "checkoutCenter": null,
          "organization": {
            "_class": "organization",
            "oid": 1,
            "name": "WebCheckout"
          },
          "focusAllocation": null,
          "editingAllocations": null,
          "transientDocuments": null,
          "resetTimeout": false,
          "resetApproved": false
        },
        "status": "ok",
        "notifications": null,
        "alert": null,
        "payload": [
          {
            "name": "addAuthsetsToGroups",
            "constructor": null,
            "requiredArguments": [
              {
                "name": "authsets",
                "type": "authset",
                "documentation": null,
                "constraint": null,
                "displayHint": "entity",
                "initform": null,
                "ordinal": null,
                "multiple": true
              },
              {
                "name": "groups",
                "type": "group",
                "documentation": null,
                "constraint": null,
                "displayHint": "entity",
                "initform": null,
                "ordinal": null,
                "multiple": true
              }
            ],
            "optionalArguments": null,
            "auth": [
              {
                "type": "sysauth",
                "entity": "groups",
                "auths": [
                  "MANAGE-AUTHS"
                ]
              }
            ],
            "documentation": "UNDOCUMENTED FRAMEWORK COMMAND"
          },
          {
            "name": "addCheckoutCentersToGroups",
            "constructor": null,
            "requiredArguments": [
              {
                "name": "checkoutCenters",
                "type": "checkoutCenter",
                "documentation": null,
                "constraint": null,
                "displayHint": "entity",
                "initform": null,
                "ordinal": null,
                "multiple": true
              },
              {
                "name": "groups",
                "type": "group",
                "documentation": null,
                "constraint": null,
                "displayHint": "entity",
                "initform": null,
                "ordinal": null,
                "multiple": true
              },
              {
                "name": "scope",
                "type": "tag",
                "documentation": null,
                "constraint": null,
                "displayHint": "selectBox",
                "initform": null,
                "ordinal": null,
                "multiple": null
              }
            ],
            "optionalArguments": null,
            "auth": [
              {
                "type": "sysauth",
                "entity": "groups",
                "auths": [
                  "MANAGE-AUTHS"
                ]
              }
            ],
            "documentation": "UNDOCUMENTED FRAMEWORK COMMAND"
          },
          {
            "name": "addGroupAuthset",
            "constructor": null,
            "requiredArguments": [
              {
                "name": "group",
                "type": "group",
                "documentation": null,
                "constraint": null,
                "displayHint": "entity",
                "initform": null,
                "ordinal": null,
                "multiple": null
              },
              {
                "name": "authset",
                "type": "authset",
                "documentation": null,
                "constraint": null,
                "displayHint": "entity",
                "initform": null,
                "ordinal": null,
                "multiple": null
              }
            ],
            "optionalArguments": null,
            "auth": [
              {
                "type": "sysauth",
                "entity": "group",
                "auths": [
                  "MANAGE-AUTHS"
                ]
              }
            ],
            "documentation": "Add an authset to group's primary authset (the top-level one\nmeant to hold ad hoc types/authsets in a place that cannot be\naccidentally reused)."
          },
          {
            "name": "addGroupCheckoutCenter",
            "constructor": null,
            "requiredArguments": [
              {
                "name": "group",
                "type": "group",
                "documentation": null,
                "constraint": null,
                "displayHint": "entity",
                "initform": null,
                "ordinal": null,
                "multiple": null
              },
              {
                "name": "checkoutCenter",
                "type": "checkoutCenter",
                "documentation": null,
                "constraint": null,
                "displayHint": "entity",
                "initform": null,
                "ordinal": null,
                "multiple": null
              },
              {
                "name": "scope",
                "type": "tag",
                "documentation": null,
                "constraint": null,
                "displayHint": "selectBox",
                "initform": null,
                "ordinal": null,
                "multiple": null
              }
            ],
            "optionalArguments": null,
            "auth": [
              {
                "type": "sysauth",
                "entity": "group",
                "auths": [
                  "MANAGE-PIR-ACCESS"
                ]
              }
            ],
            "documentation": "Add a checkout-center to group's primary authset (the top-level one\nmeant to hold ad hoc types/authsets in a place that cannot be\naccidentally reused)."
          },
          {
            "name": "addGroupResourceType",
            "constructor": null,
            "requiredArguments": [
              {
                "name": "group",
                "type": "group",
                "documentation": null,
                "constraint": null,
                "displayHint": "entity",
                "initform": null,
                "ordinal": null,
                "multiple": null
              },
              {
                "name": "rtype",
                "type": "resourceType",
                "documentation": null,
                "constraint": null,
                "displayHint": "entity",
                "initform": null,
                "ordinal": null,
                "multiple": null
              }
            ],
            "optionalArguments": null,
            "auth": [
              {
                "type": "sysauth",
                "entity": "group",
                "auths": [
                  "MANAGE-AUTHS"
                ]
              }
            ],
            "documentation": "Add a resource-type to group's primary authset (the top-level one\nmeant to hold ad hoc types/authsets in a place that cannot be\naccidentally reused)."
          },
          {
            "name": "addGroupSection",
            "constructor": null,
            "requiredArguments": [
              {
                "name": "group",
                "type": "group",
                "documentation": null,
                "constraint": null,
                "displayHint": "entity",
                "initform": null,
                "ordinal": null,
                "multiple": null
              },
              {
                "name": "section",
                "type": "section",
                "documentation": null,
                "constraint": null,
                "displayHint": "entity",
                "initform": null,
                "ordinal": null,
                "multiple": null
              }
            ],
            "optionalArguments": null,
            "auth": [
              {
                "type": "sysauth",
                "entity": [
                  "applicationObject"
                ],
                "auths": [
                  "MANAGE-AUTHS"
                ]
              }
            ],
            "documentation": "Add section to group."
          },
          {
            "name": "addResourceTypesToGroups",
            "constructor": null,
            "requiredArguments": [
              {
                "name": "resourceTypes",
                "type": "resourceType",
                "documentation": null,
                "constraint": null,
                "displayHint": "entity",
                "initform": null,
                "ordinal": null,
                "multiple": true
              },
              {
                "name": "groups",
                "type": "group",
                "documentation": null,
                "constraint": null,
                "displayHint": "entity",
                "initform": null,
                "ordinal": null,
                "multiple": true
              }
            ],
            "optionalArguments": null,
            "auth": [
              {
                "type": "sysauth",
                "entity": "groups",
                "auths": [
                  "MANAGE-AUTHS"
                ]
              }
            ],
            "documentation": "UNDOCUMENTED FRAMEWORK COMMAND"
          },
          {
            "name": "copyGroup",
            "constructor": null,
            "requiredArguments": [
              {
                "name": "group",
                "type": "group",
                "documentation": null,
                "constraint": null,
                "displayHint": "entity",
                "initform": null,
                "ordinal": null,
                "multiple": null
              }
            ],
            "optionalArguments": null,
            "auth": [
              {
                "type": "sysauth",
                "entity": [
                  "applicationObject"
                ],
                "auths": [
                  "MANAGE-AUTHS"
                ]
              }
            ],
            "documentation": "Deep-copy group: (1) Shallow-copy group. (2) Set new group's\nsections to copies of group's sections. (3) Insert sections' members\ninto respective copies.  User needs to hand-edit group's and sections'\nnames to be more meaningful than 'Copy of Copy of Copy of Foo'."
          },
          {
            "name": "copySectionToGroup",
            "constructor": null,
            "requiredArguments": [
              {
                "name": "section",
                "type": "section",
                "documentation": null,
                "constraint": null,
                "displayHint": "entity",
                "initform": null,
                "ordinal": null,
                "multiple": null
              },
              {
                "name": "group",
                "type": "group",
                "documentation": null,
                "constraint": null,
                "displayHint": "entity",
                "initform": null,
                "ordinal": null,
                "multiple": null
              }
            ],
            "optionalArguments": null,
            "auth": [
              {
                "type": "sysauth",
                "entity": [
                  "applicationObject"
                ],
                "auths": [
                  "MANAGE-AUTHS"
                ]
              }
            ],
            "documentation": "Shallow copy section, then copy its members to the copy."
          },
          {
            "name": "copySectionsToGroup",
            "constructor": null,
            "requiredArguments": [
              {
                "name": "sections",
                "type": "section",
                "documentation": null,
                "constraint": null,
                "displayHint": "entity",
                "initform": null,
                "ordinal": null,
                "multiple": true
              },
              {
                "name": "group",
                "type": "group",
                "documentation": null,
                "constraint": null,
                "displayHint": "entity",
                "initform": null,
                "ordinal": null,
                "multiple": null
              }
            ],
            "optionalArguments": null,
            "auth": [
              {
                "type": "sysauth",
                "entity": [
                  "applicationObject"
                ],
                "auths": [
                  "MANAGE-AUTHS"
                ]
              }
            ],
            "documentation": "Shallow copy section, then copy its members to the copy."
          },
          {
            "name": "copySectionsToGroups",
            "constructor": null,
            "requiredArguments": [
              {
                "name": "sections",
                "type": "section",
                "documentation": null,
                "constraint": null,
                "displayHint": "entity",
                "initform": null,
                "ordinal": null,
                "multiple": true
              },
              {
                "name": "groups",
                "type": "group",
                "documentation": null,
                "constraint": null,
                "displayHint": "entity",
                "initform": null,
                "ordinal": null,
                "multiple": true
              }
            ],
            "optionalArguments": null,
            "auth": [
              {
                "type": "sysauth",
                "entity": [
                  "applicationObject"
                ],
                "auths": [
                  "MANAGE-AUTHS"
                ]
              }
            ],
            "documentation": "Shallow copy section every section to every group, copying the members to the copy."
          },
          {
            "name": "createPrimaryAuthset",
            "constructor": null,
            "requiredArguments": [
              {
                "name": "group",
                "type": "group",
                "documentation": null,
                "constraint": null,
                "displayHint": "entity",
                "initform": null,
                "ordinal": null,
                "multiple": null
              }
            ],
            "optionalArguments": null,
            "auth": [
              {
                "type": "sysauth",
                "entity": "group",
                "auths": [
                  "MANAGE-AUTHS"
                ]
              }
            ],
            "documentation": "Create and attach a primary authset to group if one doesn't exist.  Raise an exception if one already exists, to force the user to do explicit checking."
          },
          {
            "name": "deleteAuthsetsFromGroups",
            "constructor": null,
            "requiredArguments": [
              {
                "name": "authsets",
                "type": "authset",
                "documentation": null,
                "constraint": null,
                "displayHint": "entity",
                "initform": null,
                "ordinal": null,
                "multiple": true
              },
              {
                "name": "groups",
                "type": "group",
                "documentation": null,
                "constraint": null,
                "displayHint": "entity",
                "initform": null,
                "ordinal": null,
                "multiple": true
              }
            ],
            "optionalArguments": null,
            "auth": [
              {
                "type": "sysauth",
                "entity": "groups",
                "auths": [
                  "MANAGE-AUTHS"
                ]
              }
            ],
            "documentation": "UNDOCUMENTED FRAMEWORK COMMAND"
          },
          {
            "name": "deleteCheckoutCentersFromGroups",
            "constructor": null,
            "requiredArguments": [
              {
                "name": "checkoutCenters",
                "type": "checkoutCenter",
                "documentation": null,
                "constraint": null,
                "displayHint": "entity",
                "initform": null,
                "ordinal": null,
                "multiple": true
              },
              {
                "name": "groups",
                "type": "group",
                "documentation": null,
                "constraint": null,
                "displayHint": "entity",
                "initform": null,
                "ordinal": null,
                "multiple": true
              }
            ],
            "optionalArguments": null,
            "auth": [
              {
                "type": "sysauth",
                "entity": "groups",
                "auths": [
                  "MANAGE-AUTHS"
                ]
              }
            ],
            "documentation": "UNDOCUMENTED FRAMEWORK COMMAND"
          },
          {
            "name": "deleteGroup",
            "constructor": null,
            "requiredArguments": [
              {
                "name": "group",
                "type": "group",
                "documentation": null,
                "constraint": null,
                "displayHint": "entity",
                "initform": null,
                "ordinal": null,
                "multiple": null
              }
            ],
            "optionalArguments": null,
            "auth": [
              {
                "type": "sysauth",
                "entity": [
                  "applicationObject"
                ],
                "auths": [
                  "MANAGE-AUTHS"
                ]
              }
            ],
            "documentation": "Delete group, possibly with a bunch of keyword arguments usable\nby group's wcof-create method.  The caller can further populate\nits slots and add section, an authset, or whatever."
          },
          {
            "name": "deleteGroupAuthset",
            "constructor": null,
            "requiredArguments": [
              {
                "name": "group",
                "type": "group",
                "documentation": null,
                "constraint": null,
                "displayHint": "entity",
                "initform": null,
                "ordinal": null,
                "multiple": null
              }
            ],
            "optionalArguments": null,
            "auth": [
              {
                "type": "sysauth",
                "entity": "group",
                "auths": [
                  "MANAGE-AUTHS"
                ]
              }
            ],
            "documentation": "Disconnect authset from group."
          },
          {
            "name": "deleteResourceTypesFromGroups",
            "constructor": null,
            "requiredArguments": [
              {
                "name": "resourceTypes",
                "type": "resourceType",
                "documentation": null,
                "constraint": null,
                "displayHint": "entity",
                "initform": null,
                "ordinal": null,
                "multiple": true
              },
              {
                "name": "groups",
                "type": "group",
                "documentation": null,
                "constraint": null,
                "displayHint": "entity",
                "initform": null,
                "ordinal": null,
                "multiple": true
              }
            ],
            "optionalArguments": null,
            "auth": [
              {
                "type": "sysauth",
                "entity": "groups",
                "auths": [
                  "MANAGE-AUTHS"
                ]
              }
            ],
            "documentation": "UNDOCUMENTED FRAMEWORK COMMAND"
          },
          {
            "name": "deleteSections",
            "constructor": null,
            "requiredArguments": [
              {
                "name": "sections",
                "type": "section",
                "documentation": null,
                "constraint": null,
                "displayHint": "entity",
                "initform": null,
                "ordinal": null,
                "multiple": true
              }
            ],
            "optionalArguments": null,
            "auth": [
              {
                "type": "sysauth",
                "entity": [
                  "applicationObject"
                ],
                "auths": [
                  "MANAGE-AUTHS"
                ]
              }
            ],
            "documentation": "Delete sections. No need to provide the group as it's contained in each section."
          },
          {
            "name": "groupPersonSetExpiration",
            "constructor": null,
            "requiredArguments": [
              {
                "name": "group",
                "type": "group",
                "documentation": null,
                "constraint": null,
                "displayHint": "entity",
                "initform": null,
                "ordinal": null,
                "multiple": null
              },
              {
                "name": "person",
                "type": "person",
                "documentation": null,
                "constraint": null,
                "displayHint": "entity",
                "initform": null,
                "ordinal": null,
                "multiple": null
              },
              {
                "name": "date",
                "type": "timestamp",
                "documentation": null,
                "constraint": null,
                "displayHint": "timestamp",
                "initform": null,
                "ordinal": null,
                "multiple": null
              }
            ],
            "optionalArguments": null,
            "auth": [
              {
                "type": "sysauth",
                "entity": "group",
                "auths": [
                  "MANAGE-AUTHS"
                ]
              }
            ],
            "documentation": "Set end-date for person in every section of group."
          },
          {
            "name": "new",
            "constructor": true,
            "requiredArguments": [
              {
                "name": "organization",
                "type": "organization",
                "documentation": null,
                "constraint": {
                  "name": "organizations",
                  "type": "dynamicOrderedSet"
                },
                "displayHint": "entity",
                "initform": null,
                "ordinal": null,
                "multiple": null
              }
            ],
            "optionalArguments": [
              {
                "name": "name",
                "type": "string",
                "documentation": null,
                "constraint": null,
                "displayHint": "string",
                "initform": null,
                "ordinal": null,
                "multiple": null
              },
              {
                "name": "status",
                "type": "tag",
                "documentation": null,
                "constraint": null,
                "displayHint": "selectBox",
                "initform": null,
                "ordinal": null,
                "multiple": null
              },
              {
                "name": "patronVisible",
                "type": "boolean",
                "documentation": null,
                "constraint": null,
                "displayHint": "boolean",
                "initform": true,
                "ordinal": null,
                "multiple": null
              },
              {
                "name": "contact",
                "type": "person",
                "documentation": null,
                "constraint": null,
                "displayHint": "entity",
                "initform": null,
                "ordinal": null,
                "multiple": null
              },
              {
                "name": "role",
                "type": "string",
                "documentation": null,
                "constraint": null,
                "displayHint": "string",
                "initform": null,
                "ordinal": null,
                "multiple": null
              },
              {
                "name": "contactNote",
                "type": "string",
                "documentation": null,
                "constraint": null,
                "displayHint": "string",
                "initform": null,
                "ordinal": null,
                "multiple": null
              },
              {
                "name": "groupIdentifier",
                "type": "string",
                "documentation": null,
                "constraint": null,
                "displayHint": "string",
                "initform": null,
                "ordinal": null,
                "multiple": null
              },
              {
                "name": "origin",
                "type": "string",
                "documentation": null,
                "constraint": null,
                "displayHint": "string",
                "initform": null,
                "ordinal": null,
                "multiple": null
              },
              {
                "name": "policyClass",
                "type": "policyClass",
                "documentation": null,
                "constraint": {
                  "name": "sessionOrgPolicyClass",
                  "type": "dynamicOrderedSet"
                },
                "displayHint": "entity",
                "initform": null,
                "ordinal": null,
                "multiple": null
              },
              {
                "name": "description",
                "type": "string",
                "documentation": null,
                "constraint": null,
                "displayHint": "string",
                "initform": null,
                "ordinal": null,
                "multiple": null
              },
              {
                "name": "startDate",
                "type": "timestamp",
                "documentation": null,
                "constraint": null,
                "displayHint": "timestamp",
                "initform": null,
                "ordinal": null,
                "multiple": null
              },
              {
                "name": "endDate",
                "type": "timestamp",
                "documentation": null,
                "constraint": null,
                "displayHint": "timestamp",
                "initform": null,
                "ordinal": null,
                "multiple": null
              },
              {
                "name": "note",
                "type": "string",
                "documentation": null,
                "constraint": null,
                "displayHint": "string",
                "initform": null,
                "ordinal": null,
                "multiple": null
              },
              {
                "name": "telephone",
                "type": "string",
                "documentation": null,
                "constraint": null,
                "displayHint": "string",
                "initform": null,
                "ordinal": null,
                "multiple": null
              },
              {
                "name": "email",
                "type": "string",
                "documentation": null,
                "constraint": null,
                "displayHint": "string",
                "initform": null,
                "ordinal": null,
                "multiple": null
              },
              {
                "name": "url",
                "type": "string",
                "documentation": null,
                "constraint": null,
                "displayHint": "string",
                "initform": null,
                "ordinal": null,
                "multiple": null
              }
            ],
            "auth": [
              {
                "type": "sysauth",
                "entity": "organization",
                "auths": [
                  "MANAGE-AUTHS"
                ]
              }
            ],
            "documentation": "Create a group"
          },
          {
            "name": "shallowCopyGroup",
            "constructor": null,
            "requiredArguments": [
              {
                "name": "group",
                "type": "group",
                "documentation": null,
                "constraint": null,
                "displayHint": "entity",
                "initform": null,
                "ordinal": null,
                "multiple": null
              }
            ],
            "optionalArguments": null,
            "auth": [
              {
                "type": "sysauth",
                "entity": [
                  "applicationObject"
                ],
                "auths": [
                  "MANAGE-AUTHS"
                ]
              }
            ],
            "documentation": "Create a new group, identical to group (at the top level), except\nfor the following: name <- 'Copy of ', group-identifier =\n'Copy of '."
          },
          {
            "name": "shallowCopySectionToGroup",
            "constructor": null,
            "requiredArguments": [
              {
                "name": "section",
                "type": "section",
                "documentation": null,
                "constraint": null,
                "displayHint": "entity",
                "initform": null,
                "ordinal": null,
                "multiple": null
              },
              {
                "name": "group",
                "type": "group",
                "documentation": null,
                "constraint": null,
                "displayHint": "entity",
                "initform": null,
                "ordinal": null,
                "multiple": null
              }
            ],
            "optionalArguments": null,
            "auth": [
              {
                "type": "sysauth",
                "entity": [
                  "applicationObject"
                ],
                "auths": [
                  "MANAGE-AUTHS"
                ]
              }
            ],
            "documentation": "Create a new section, identical to section (at the top level), except\nfor the following: name <- 'Copy of ', section-identifier =\n'Copy of '."
          }
        ],
        "sessionToken": "eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0=",
        "sessionid": "53a6f8f4-c008-4de1-9ee0-2afd26999000"
      }
Property Templates

At its least sophisticated, a property template is simply an array of property names.

POST /rest/checkoutCenter/get HTTP/1.1

      {
        "headers": {
          "Authorization": "Bearer eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0="
        },
        "postBody": {
          "properties": [
            "pickupDefault",
            "returnDefault",
            "organization"
          ],
          "oid": 1
        }
      }

HTTP 200

      {
        "apiVersion": "2.0",
        "uri": "/rest/checkoutCenter/get",
        "session": {
          "id": "S-78887",
          "agent": {
            "_class": "person",
            "oid": 533,
            "name": "Super",
            "avatar": null,
            "lastName": null,
            "otherName": "",
            "firstName": "Super",
            "userid": "adminuser"
          },
          "checkoutCenter": null,
          "organization": {
            "_class": "organization",
            "oid": 1,
            "name": "WebCheckout"
          },
          "focusAllocation": null,
          "editingAllocations": null,
          "transientDocuments": null,
          "resetTimeout": false,
          "resetApproved": false
        },
        "status": "ok",
        "notifications": null,
        "alert": null,
        "payload": {
          "_class": "checkoutCenter",
          "oid": 1,
          "name": "WebCheckout",
          "organization": {
            "_class": "organization",
            "oid": 1,
            "name": "WebCheckout"
          }
        },
        "sessionToken": "eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0=",
        "sessionid": "53a6f8f4-c008-4de1-9ee0-2afd26999000"
      }

However, some of these properties may themselves be entities with properties, as with organization above. Property templates allow for a recursive request for the properties of properties. If the base property is non-null, the "subProperties" template will be applied to the base properties value.

POST /rest/checkoutCenter/get HTTP/1.1

      {
        "headers": {
          "Authorization": "Bearer eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0="
        },
        "postBody": {
          "properties": [
            "pickupDefault",
            "returnDefault",
            {
              "property": "organization",
              "subProperties": [
                "timezone",
                "locale"
              ]
            }
          ],
          "oid": 1
        }
      }

HTTP 200

      {
        "apiVersion": "2.0",
        "uri": "/rest/checkoutCenter/get",
        "session": {
          "id": "S-78887",
          "agent": {
            "_class": "person",
            "oid": 533,
            "name": "Super",
            "avatar": null,
            "lastName": null,
            "otherName": "",
            "firstName": "Super",
            "userid": "adminuser"
          },
          "checkoutCenter": null,
          "organization": {
            "_class": "organization",
            "oid": 1,
            "name": "WebCheckout"
          },
          "focusAllocation": null,
          "editingAllocations": null,
          "transientDocuments": null,
          "resetTimeout": false,
          "resetApproved": false
        },
        "status": "ok",
        "notifications": null,
        "alert": null,
        "payload": {
          "_class": "checkoutCenter",
          "oid": 1,
          "name": "WebCheckout",
          "organization": {
            "_class": "organization",
            "oid": 1,
            "name": "WebCheckout",
            "locale": "en_US",
            "timezone": "America/Chicago"
          }
        },
        "sessionToken": "eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0=",
        "sessionid": "53a6f8f4-c008-4de1-9ee0-2afd26999000"
      }

The "subProperties" value is itself is a property template. This allows for unlimited nesting of templates.

POST /rest/checkoutCenter/get HTTP/1.1

      {
        "headers": {
          "Authorization": "Bearer eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0="
        },
        "postBody": {
          "properties": [
            "pickupDefault",
            "returnDefault",
            {
              "property": "organization",
              "subProperties": [
                "timezone",
                "locale",
                {
                  "property": "administrator",
                  "subProperties": [
                    "barcode"
                  ]
                }
              ]
            }
          ],
          "oid": 1
        }
      }

HTTP 200

      {
        "apiVersion": "2.0",
        "uri": "/rest/checkoutCenter/get",
        "session": {
          "id": "S-78887",
          "agent": {
            "_class": "person",
            "oid": 533,
            "name": "Super",
            "avatar": null,
            "lastName": null,
            "otherName": "",
            "firstName": "Super",
            "userid": "adminuser"
          },
          "checkoutCenter": null,
          "organization": {
            "_class": "organization",
            "oid": 1,
            "name": "WebCheckout"
          },
          "focusAllocation": null,
          "editingAllocations": null,
          "transientDocuments": null,
          "resetTimeout": false,
          "resetApproved": false
        },
        "status": "ok",
        "notifications": null,
        "alert": null,
        "payload": {
          "_class": "checkoutCenter",
          "oid": 1,
          "name": "WebCheckout",
          "organization": {
            "_class": "organization",
            "oid": 1,
            "name": "WebCheckout",
            "administrator": null,
            "locale": "en_US",
            "timezone": "America/Chicago"
          }
        },
        "sessionToken": "eyJ0eXBlIjogInNlc3Npb24iLCAidmFsdWUiOiAiNTNhNmY4ZjQtYzAwOC00ZGUxLTllZTAtMmFmZDI2OTk5MDAwIn0=",
        "sessionid": "53a6f8f4-c008-4de1-9ee0-2afd26999000"
      }