{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://raw.githubusercontent.com/api-evangelist/argyle/refs/heads/main/json-schema/clientsession.json",
  "title": "ClientSession",
  "type": "object",
  "description": "Client connection session object.",
  "properties": {
    "verification": {
      "type": "string",
      "format": "uuid",
      "description": "Verification ID associated with the session."
    },
    "configuration": {
      "$ref": "#/components/schemas/ClientSessionConfiguration"
    },
    "link": {
      "type": "string",
      "description": "URL used to launch the payroll or banking frontend experience. For payroll, use it as `connectUrl` when initializing the [Web SDK](/link/initialization/web#initialize-with-connecturl); the returned session URL already determines whether the session runs in Sandbox or Production. Alternatively, open it directly for [Hosted Link](/link/initialization/hosted-link). For banking, use it to launch either an Embedded banking session or a Hosted banking session. Session links expire after one hour. A new session link can be created at any time by creating another session for the active verification."
    },
    "data_source": {
      "type": "string",
      "enum": [
        "payroll",
        "banking"
      ],
      "description": "Source of connection data."
    }
  }
}