{
  "openapi": "3.0.4",
  "info": {
    "title": "Access Charity CRM API",
    "description": "\r\n<h1 style=\"padding-top: 30px;\">\r\n    <br />\r\n    Using the API\r\n</h1>\r\n<p>General information on using the Access Charity CRM API</p>\r\n<div>\r\n    <div id='CharityCRMUsingAPICollapseAfter'></div>\r\n    <div>\r\n        <h2>Rate Limiting</h2>\r\n        <p>\r\n            The API has two types of calls available:\r\n            <ul>\r\n                <li>Single calls - these run to completion before returning.</li>\r\n                <li>Bulk calls - these run asynchronous and return an id to poll for the result.</li>\r\n            </ul>\r\n        </p>\r\n        <h2>Single Calls</h2>\r\n        <p>\r\n            <ul>\r\n                <li>For single calls be aware that many concurrent calls may result in longer wait times. </li>\r\n                <li>If you have this situation consider using the bulk endpoints.</li>\r\n            </ul>\r\n            <h2>Bulk Calls</h2>\r\n            <ul>\r\n                <li>For bulk calls we expect a rate not exceeding one call a minute.</li>\r\n                <li>If you have lots of data flowing regularly in small batches it is recommended to group that and send in less frequent larger batches.</li>\r\n                <li>This will allow for faster calls and processing overall.</li>\r\n            </ul>\r\n        </p>\r\n    </div>\r\n    <div>\r\n        <h2>Dates</h2>\r\n        <p>\r\n            The API will return dates in the format specified by ISO 8601.\r\n        </p>\r\n        <p>\r\n            It is recommended to post dates in this format.\r\n        </p>\r\n        <p>\r\n            <ul>\r\n                <li>If you just need the date use: **YYYY-MM-DD** (e.g. 2018-12-25)</li>\r\n                <li>If you need a time component use: **YYYY-MM-DDTHH:MM:SS** (e.g. 2018-12-25T12:30:00)</li>\r\n            </ul>\r\n        </p>\r\n        <p>\r\n            Other date formats may work but can not be guaranteed.\r\n        </p>\r\n    </div>\r\n    <div>\r\n        <h2>Filtering</h2>\r\n        <p>\r\n            When performing GET requests with a filter you may perform multiple searches via an IN query.\r\n            This is done by concatenating multiple search values with a | (pipe).\r\n        </p>\r\n        <p>\r\n            For example for the /api/lookupvalue/{lookupName} call the search may be:\r\n        </p>\r\n        <p>\r\n            <ul>\r\n                <li>lookupName=PaymentType|CommunicationCategory.</li>\r\n                <li>Bulk calls - these run asynchronous and return an id to poll for the result.</li>\r\n            </ul>\r\n        </p>\r\n        <p>\r\n            This will return both the PaymentType LOV and CommunicationCategory LOV at once, saving on the number of API calls you need to perform.\r\n        </p>\r\n    </div>\r\n    <div>\r\n        <h2>Changes</h2>\r\n        <p>\r\n            The changes set of endpoints allows syncing of certain data to any number of third party systems.\r\n        </p>\r\n        <p>\r\n            To set this up use the following process:\r\n        </p>\r\n        <p>\r\n            <ul>\r\n                <li>Call the resources endpoint to see a list of available data types to sync.</li>\r\n                <li>Call the subscribe endpoint with the resource you want to subscribe to and your system name.</li>\r\n                <li>Call the subscriptions endpoint with your system name to check you are subscribed.</li>\r\n            </ul>\r\n        </p>\r\n        <p>\r\n            At this point you are subscribed to changes for specific data. The application will make this data available from this point onwards, retrospective change tracking will not be available.\r\n        </p>\r\n        <p>\r\n            If you wish to stop tracking changes to a resource call the unsubscribe endpoint.\r\n        </p>\r\n        <p>\r\n            To get the changes use the following process:\r\n        </p>\r\n        <p>\r\n            <ul>\r\n                <li>Call the Changes endpoint with your system name, this will return a list of all changes available.</li>\r\n                <li>\r\n                    Once you have synced and dealt with a change and do not wish it to appear again call the acknowledge endpoint.\r\n                    <ul>\r\n                        <li>This will remove the change from future queries to the changes endpoint.</li>\r\n                    </ul>\r\n                </li>\r\n            </ul>\r\n        </p>\r\n        <p>\r\n            Multiple systems can all subscribe and sync to changes as each will get and acknowledge the changes independently.\r\n        </p>\r\n    </div>\r\n    <div>\r\n        <h2>Security</h2>\r\n        <p>\r\n            An API key and Bearer token must be supplied to authorize your calls to the API.\r\n        </p>\r\n        <p>\r\n            <ul>\r\n                <li>The Bearer token in JWT format. Example: 'Bearer {token}'.</li>\r\n                <ul>\r\n                    <div>\r\n                        <p>\r\n                            <em>Type</em> : apiKey<br>\r\n                            <em>Name</em> : Authorization<br>\r\n                            <em>In</em> : HEADER\r\n                        </p>\r\n                    </div>\r\n                </ul>\r\n                <li>API Key required for all calls.</li>\r\n                <ul>\r\n                    <div>\r\n                        <p>\r\n                            <em>Type</em> : apiKey<br>\r\n                            <em>Name</em> : X-API-Key<br>\r\n                            <em>In</em> : HEADER\r\n                        </p>\r\n                    </div>\r\n                </ul>\r\n            </ul>\r\n        </p>\r\n        <p>\r\n            This will return both the PaymentType LOV and CommunicationCategory LOV at once, saving on the number of API calls you need to perform.\r\n        </p>\r\n    </div>\r\n    <div>\r\n        <h2>Validation and Defaults</h2>\r\n        <p>\r\n            When performing POST requests, data validation will occur and defaults may be applied.\r\n        </p>\r\n        <p>\r\n            Where examples are displayed.\r\n        </p>\r\n        <p>\r\n            <ul>\r\n                <img alt=\"Example tab\" src=\"/swagger-ui/resources/ScreenshotExample.png\">\r\n            </ul>\r\n        </p>\r\n        <p>\r\n            There will be a <b>schema</b> tab which will also summarise the defaults and validation.\r\n        </p>\r\n        <p>\r\n            <ul>\r\n                <img alt=\"Schema tab\" src=\"/swagger-ui/resources/ScreenshotSchema.png\">\r\n            </ul>\r\n        </p>\r\n    </div>\r\n</div>",
    "version": "v1"
  },
  "servers": [
    {
      "url": "/latest"
    }
  ],
  "paths": {
    "/api/account/signin": {
      "post": {
        "tags": [
          "Account"
        ],
        "summary": "Sign In",
        "description": "Signs a user into the API",
        "operationId": "SignIn",
        "requestBody": {
          "description": "The request body containing the user name and password",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/SignInRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SignInRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SignInRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SignInRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Sign in successful",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ClientTokenResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClientTokenResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClientTokenResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid Sign In attempt"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/actions/{actionRef}": {
      "get": {
        "tags": [
          "Action"
        ],
        "summary": "Get By Action Ref",
        "description": "Gets the action with the specified action ref",
        "operationId": "GetActionById",
        "parameters": [
          {
            "name": "actionRef",
            "in": "path",
            "description": "The action ref of the action to get",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ActionGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ActionGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ActionGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Action record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "put": {
        "tags": [
          "Action"
        ],
        "summary": "Put Single",
        "description": "Updates a single action record",
        "operationId": "PutActionSingle",
        "parameters": [
          {
            "name": "actionRef",
            "in": "path",
            "description": "The id of the action to update",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The updated action",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ActionPutRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ActionPutRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ActionPutRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ActionPutRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Action updated",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ActionGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ActionGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ActionGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Action record not found"
          },
          "400": {
            "description": "Record not valid for updating"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/actions": {
      "get": {
        "tags": [
          "Action"
        ],
        "summary": "Get",
        "description": "Returns a collection of action records for the given page and filter",
        "operationId": "GetActions",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ActionRef",
            "in": "query",
            "description": "The unique ID for the action",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "RecordOwner",
            "in": "query",
            "description": "The owner of this action if needed",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Created",
            "in": "query",
            "description": "The date the action was created",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "CreatedBy",
            "in": "query",
            "description": "The user who created the action",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Modified",
            "in": "query",
            "description": "The date the action was last changed",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "ModifiedBy",
            "in": "query",
            "description": "The user who last changed the action",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Subject",
            "in": "query",
            "description": "The subject of the action\r\n<ul><li>For new records this must not be empty</li></ul>",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ActionOnUser",
            "in": "query",
            "description": "The user or user group to be reminded about an action\r\n<ul><li>User must exist</li></ul>",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Status",
            "in": "query",
            "description": "The status i.e complete, in progress, etc\r\n<ul><li>Must exist in the 'ActionStatus' lookup</li></ul><ul><li>Default is In Progress</li></ul>",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Priority",
            "in": "query",
            "description": "The Priority, High, Normal or low.\r\n<ul><li>For new records this must not be empty</li></ul><ul><li> Must exist as an existing priority</li></ul><ul><li>Default is Normal</li></ul>",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Category",
            "in": "query",
            "description": "The category that the action falls in\r\n<ul><li>Must exist in the 'ActionCategory' lookup</li></ul>",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SubCategory",
            "in": "query",
            "description": "The sub category that the action falls in\r\n<ul><li>Must exist in the lookup for the given category</li></ul>",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Narrative",
            "in": "query",
            "description": "The notes or narrative for an action",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Response",
            "in": "query",
            "description": "Notes added in response to an action",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "StartDate",
            "in": "query",
            "description": "The date on which the action may start\r\n<ul><li>Defaults to Current Date</li></ul>",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "StartTime",
            "in": "query",
            "description": "The time on which the action may start\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Default is 09:00</li></ul>",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "DueDate",
            "in": "query",
            "description": "The date by which the action should be completed",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "DueTime",
            "in": "query",
            "description": "The time by which the action should be completed\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Must be a valid time</li></ul><ul><li>Default is Set to the start time</li></ul>",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ReminderType",
            "in": "query",
            "description": "The type of reminder alert to be used for an action (i.e. none or Email)\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Must exist in the 'Alert Type' lookup</li></ul><ul><li>Default is Email</li></ul>",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ReminderDate",
            "in": "query",
            "description": "The date when the specified user will be reminded of an action",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "ReminderTime",
            "in": "query",
            "description": "The time when the specified user will be reminded of an action\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Default is Set to the due time</li></ul>",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ReminderProcessed",
            "in": "query",
            "description": "A flag indicating if the reminder alert for an action has been sent\r\n<ul><li>For new records this must not be empty</li></ul>",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Completed",
            "in": "query",
            "description": "The date the action was completed",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "CompletedBy",
            "in": "query",
            "description": "The user who completed the action",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "DataHubId",
            "in": "query",
            "description": "A reference to the action in Access DataHub",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "DuplicateAgainstAllMembers",
            "in": "query",
            "description": "Whether the action has been duplicated against all members",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ActionGetResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ActionGetResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ActionGetResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "Action"
        ],
        "summary": "Post Single",
        "description": "Posts a single action record",
        "operationId": "PostActionSingle",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The action.<p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ActionPostRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ActionPostRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ActionPostRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ActionPostRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Valid for Posting"
          },
          "201": {
            "description": "Record posted successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ActionGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ActionGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ActionGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/actions/bulk": {
      "post": {
        "tags": [
          "Action"
        ],
        "summary": "Post In Bulk",
        "description": "Posts a collection of action records",
        "operationId": "PostActionBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The collection of actions.\r\n            <p>For a detailed description of defaults and validation, select the<b> Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ActionPostRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ActionPostRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ActionPostRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ActionPostRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Records posted to import table. Import ID and record count returned to enable progress monitoring"
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "put": {
        "tags": [
          "Action"
        ],
        "summary": "Put Bulk",
        "description": "Updates a collection of action records",
        "operationId": "PutActionBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The updated actions",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ActionPutBulkRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ActionPutBulkRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ActionPutBulkRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ActionPutBulkRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Posted to import tables. ImportId and RecordCount returned to check processing progress"
          },
          "400": {
            "description": "File not accepted for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/actions/csv": {
      "get": {
        "tags": [
          "Action"
        ],
        "summary": "Get CSV Template",
        "description": "Gets a template CSV file with the required headers for posting a action CSV file",
        "operationId": "GetActionCSV",
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "Action"
        ],
        "summary": "Post Actions CSV File",
        "description": "Uploads a CSV file containing action records",
        "operationId": "PostActionCSV",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "file": {
                    "title": "File Title",
                    "type": "string",
                    "description": "The file to upload",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Posted to import tables. ImportId and RecordCount returned to check processing progress"
          },
          "400": {
            "description": "File not accepted for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/admin/healthCheck": {
      "get": {
        "tags": [
          "Admin"
        ],
        "summary": "Get Health",
        "description": "Returns a health check summary with a collection of health check results",
        "operationId": "GetHealthCheck",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/HealthCheckGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HealthCheckGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/HealthCheckGetResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/admin/crmVersion": {
      "get": {
        "tags": [
          "Admin"
        ],
        "summary": "Get CRM Version",
        "description": "Returns the version of the CRM application",
        "operationId": "GetCRMVersion",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AdminCrmVersionGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminCrmVersionGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminCrmVersionGetResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/attachment/{attachmentRef}": {
      "get": {
        "tags": [
          "Attachment"
        ],
        "summary": "Get Attachment by Id",
        "description": "Gets the attachment with the specified Attachment Ref",
        "operationId": "GetAttachmentById",
        "parameters": [
          {
            "name": "attachmentRef",
            "in": "path",
            "description": "the Unique Ref of the Attachment",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AttachmentGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AttachmentGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AttachmentGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Attachment record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "delete": {
        "tags": [
          "Attachment"
        ],
        "summary": "Delete By Id",
        "description": "Deletes the attachment with the specified Attachment Ref",
        "operationId": "DeleteAttachmentById",
        "parameters": [
          {
            "name": "attachmentRef",
            "in": "path",
            "description": "The unique ref of the attachment to delete",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Record Deleted"
          },
          "400": {
            "description": "Record not valid for deleting"
          },
          "404": {
            "description": "Attachment record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/attachment": {
      "get": {
        "tags": [
          "Attachment"
        ],
        "summary": "Get",
        "description": "Returns a collection of attachments for the given page, filter and search criteria",
        "operationId": "GetAttachments",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "AttachmentRef",
            "in": "query",
            "description": "Filter to apply on AttachmentRef",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "Ref",
            "in": "query",
            "description": "Filter to apply on Ref",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "RefType",
            "in": "query",
            "description": "Filter to apply on RefType",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Description",
            "in": "query",
            "description": "Filter to apply on Description",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Priority",
            "in": "query",
            "description": "Filter to apply on Priority",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Extension",
            "in": "query",
            "description": "Filter to apply on Extension",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "AttachType",
            "in": "query",
            "description": "Filter to apply on AttachType",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "FileName",
            "in": "query",
            "description": "Filter to apply on FileName",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "AdmDocumentId",
            "in": "query",
            "description": "Filter to apply on AdmDocumentId",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AttachmentGetResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AttachmentGetResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AttachmentGetResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "Attachment"
        ],
        "summary": "Post Single",
        "description": "<p>Posts a single attachment<p>",
        "operationId": "PostAttachmentSingle",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The attachment. \r\n            <p><ul><li>Encode the byte array of your attachment into a String using the Base64 encoding scheme.</li></ul></p><p>For a detailed description of defaults and validation, select the<b> Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/AttachmentPostRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AttachmentPostRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AttachmentPostRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AttachmentPostRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Valid for Posting"
          },
          "201": {
            "description": "Record posted successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AttachmentGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AttachmentGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AttachmentGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/attachment/bulk": {
      "post": {
        "tags": [
          "Attachment"
        ],
        "summary": "Post In Bulk",
        "description": "<p>Posts a collection of attachment records</p>",
        "operationId": "PostAttachmentBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The collection of attachments.\r\n            <p><ul><li>Encode the byte array of your attachment into a String using the Base64 encoding scheme.</li></ul></p><p>For a detailed description of defaults and validation, select the<b> Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/AttachmentPostRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/AttachmentPostRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/AttachmentPostRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/AttachmentPostRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Records posted to import table. Import ID and record count returned to enable progress monitoring"
          },
          "400": {
            "description": "Record not valid for posting."
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/Changes/resources": {
      "get": {
        "tags": [
          "Changes"
        ],
        "summary": "Get Resources",
        "description": "Gets all the resources available",
        "operationId": "GetResources",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/Changes/subscribe": {
      "post": {
        "tags": [
          "Changes"
        ],
        "summary": "Subscribe",
        "description": "Subscribes a system to an available resource",
        "operationId": "SubscribeByResource",
        "requestBody": {
          "description": "Contains the resourceName and systemName details",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Subscription"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Subscription"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Subscription"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Subscription"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Invalid Resource"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/Changes/unsubscribe": {
      "delete": {
        "tags": [
          "Changes"
        ],
        "summary": "Unsubscribe",
        "description": "Unsubscribes a system to an available resource",
        "operationId": "UnsubscribeByResource",
        "requestBody": {
          "description": "Contains the resourceName and systemName details",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Subscription"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Subscription"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Subscription"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Subscription"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Invalid Resource"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/Changes/subscriptions": {
      "get": {
        "tags": [
          "Changes"
        ],
        "summary": "Get Subscriptions",
        "description": "Gets a list of subscribed resources for a system",
        "operationId": "GetSubscriptionsBySystem",
        "parameters": [
          {
            "name": "systemName",
            "in": "query",
            "description": "The system to get the subscription list for",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionsGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionsGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionsGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "The system name must be supplied"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/Changes/{resourceName}": {
      "get": {
        "tags": [
          "Changes"
        ],
        "summary": "Get Changes By Resource Name",
        "description": "Gets a list of changes for a resource and acknowledges them as being sent.\r\nFor performance reasons the actual quantity of data returned maybe less that the page size specified.\r\nPlease continue to page through the data until no data is returned.",
        "operationId": "GetChangesByResourceName",
        "parameters": [
          {
            "name": "resourceName",
            "in": "path",
            "description": "The resource to get changes for",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "systemName",
            "in": "query",
            "description": "The system to get the changes for",
            "required": true,
            "schema": {
              "minLength": 1,
              "type": "string",
              "description": "The system to get the changes for",
              "example": "System Name"
            },
            "example": "System Name"
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "exclusiveMaximum": false,
              "minimum": 1,
              "exclusiveMinimum": false,
              "type": "integer",
              "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
              "format": "int32"
            }
          },
          {
            "name": "lastSuccessDate",
            "in": "query",
            "description": "An optional date indicating when the system last successfully retrieved changes.\r\nIf set, then changes from this date and time (plus a small buffer) will be included.",
            "schema": {
              "type": "string",
              "description": "An optional date indicating when the system last successfully retrieved changes.\r\nIf set, then changes from this date and time (plus a small buffer) will be included.",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "dataEnginePageId",
            "in": "query",
            "description": "Internal use only. An optional id used by Access Data Engine.\r\nNot recommended for use by other systems.",
            "schema": {
              "type": "integer",
              "description": "Internal use only. An optional id used by Access Data Engine.\r\nNot recommended for use by other systems.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "baseChangesOnly",
            "in": "query",
            "description": "Whether to read only changes that are based on the base version of the resource",
            "schema": {
              "type": "boolean",
              "description": "Whether to read only changes that are based on the base version of the resource",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ChangeGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChangeGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChangeGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "The system name must be supplied"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/communications/{communicationId}": {
      "get": {
        "tags": [
          "Communication"
        ],
        "summary": "Get By ID",
        "description": "Gets the communication record with the specified communicationId",
        "operationId": "GetCommunicationById",
        "parameters": [
          {
            "name": "communicationId",
            "in": "path",
            "description": "The communication id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "IncludeAttachments",
            "in": "query",
            "description": "Whether to include attachments",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CommunicationGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommunicationGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommunicationGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Communication record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "put": {
        "tags": [
          "Communication"
        ],
        "summary": "Put Single",
        "description": "Updates a single communication record",
        "operationId": "PutCommunicationSingle",
        "parameters": [
          {
            "name": "communicationId",
            "in": "path",
            "description": "The id of the communication to update",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the records should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The updated communication",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CommunicationPutRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CommunicationPutRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CommunicationPutRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CommunicationPutRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Communication updated",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CommunicationGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommunicationGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommunicationGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "communication record not found"
          },
          "400": {
            "description": "Record not valid for updating"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/communications": {
      "get": {
        "tags": [
          "Communication"
        ],
        "summary": "Get",
        "description": "Returns a collection of communications for the given page and filter",
        "operationId": "GetCommunications",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "SerialNumber",
            "in": "query",
            "description": "Filter to apply on serial number",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Category",
            "in": "query",
            "description": "Filter to apply on category",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "CommunicationType",
            "in": "query",
            "description": "Filter to apply on communication type",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Subject",
            "in": "query",
            "description": "Filter to apply on Subject",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "CommunicationRef",
            "in": "query",
            "description": "Filter to apply on the reference for the communication",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ExternalRef",
            "in": "query",
            "description": "Filter to apply on external reference",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ExternalRefType",
            "in": "query",
            "description": "Filter to apply on external type",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ContactExternalRef",
            "in": "query",
            "description": "Filter to apply on external reference of the contact",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "MailingId",
            "in": "query",
            "description": "Filter to apply on Mailing Id of the communication",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CommunicationGetResponseCollectionResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommunicationGetResponseCollectionResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommunicationGetResponseCollectionResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "Communication"
        ],
        "summary": "Post Single",
        "description": "Posts a single communication record",
        "operationId": "PostCommunicationSingle",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The communication\r\n            <p>For a detailed description of defaults and validation, select the<b> Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CommunicationPostRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CommunicationPostRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CommunicationPostRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CommunicationPostRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Valid for Posting"
          },
          "201": {
            "description": "Record posted successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CommunicationGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommunicationGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommunicationGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/communications/bulk": {
      "post": {
        "tags": [
          "Communication"
        ],
        "summary": "Post In Bulk",
        "description": "Posts a collection of communication records",
        "operationId": "PostCommunicationBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The collection of communications\r\n            <p>For a detailed description of defaults and validation, select the<b> Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/CommunicationPostRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/CommunicationPostRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/CommunicationPostRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/CommunicationPostRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Records posted to import table. Import ID and record count returned to enable progress monitoring"
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "put": {
        "tags": [
          "Communication"
        ],
        "summary": "Put Bulk",
        "description": "Updates a collection of communication records",
        "operationId": "PutCommunicationBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the records should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The updated communications",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/CommunicationPutBulkRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/CommunicationPutBulkRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/CommunicationPutBulkRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/CommunicationPutBulkRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Posted to import tables. ImportId and RecordCount returned to check processing progress"
          },
          "400": {
            "description": "File not accepted for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/communications/csv": {
      "get": {
        "tags": [
          "Communication"
        ],
        "summary": "Get CSV Template",
        "description": "Gets a template CSV file with the required headers for posting a Communication CSV file",
        "operationId": "GetCommunicationCSV",
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "Communication"
        ],
        "summary": "Post Communications CSV File",
        "description": "Uploads a CSV file containing contact communication records",
        "operationId": "PostCommunicationCSV",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the records should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "file": {
                    "title": "File Title",
                    "type": "string",
                    "description": "The file to upload",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Posted to import tables. ImportId and RecordCount returned to check processing progress"
          },
          "400": {
            "description": "File not accepted for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/communications/emailLogging": {
      "post": {
        "tags": [
          "Communication"
        ],
        "summary": "Log Email",
        "description": "Logs a single forwarded email, where the email addresses are held within the content of the email",
        "operationId": "PostCommunicationSingleEmailLogging",
        "requestBody": {
          "description": "The email.<p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/EmailLoggingPostRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EmailLoggingPostRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/EmailLoggingPostRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/EmailLoggingPostRequest"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Posted to email log tables. Emails that match existing contacts will be automatically posted as communications"
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/consentpurposes/{purpose}": {
      "get": {
        "tags": [
          "ConsentPurpose"
        ],
        "summary": "Get By Purpose",
        "description": "Gets the mailing purpose record with the specified purpose",
        "operationId": "GetConsentPurposeById",
        "parameters": [
          {
            "name": "purpose",
            "in": "path",
            "description": "The purpose name of the consent purpose to get",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ConsentPurposeGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsentPurposeGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsentPurposeGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Consent Purpose record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/consentpurposes": {
      "get": {
        "tags": [
          "ConsentPurpose"
        ],
        "summary": "Get",
        "description": "Returns a collection of mailing purposes for the given page and filter",
        "operationId": "GetConsentPurposes",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Category",
            "in": "query",
            "description": "Filter to apply on category",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "MailingPreference",
            "in": "query",
            "description": "Filter to apply on mailing preference",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ImportId",
            "in": "query",
            "description": "Filter to apply on import ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConsentPurposeGetResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConsentPurposeGetResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConsentPurposeGetResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "ConsentPurpose"
        ],
        "summary": "Post Single",
        "description": "Posts a single mailing purpose record",
        "operationId": "PostConsentPurposeSingle",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The consent purpose\r\n            <p>For a detailed description of defaults and validation, select the<b> Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ConsentPurposePostRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConsentPurposePostRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ConsentPurposePostRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ConsentPurposePostRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Valid for Posting",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "201": {
            "description": "Record posted successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ConsentPurposeGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsentPurposeGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsentPurposeGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/consentpurposes/bulk": {
      "post": {
        "tags": [
          "ConsentPurpose"
        ],
        "summary": "Post In Bulk",
        "description": "Posts a collection of mailing purpose records",
        "operationId": "PostConsentPurposeBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The collection of consent purposes\r\n            <p>For a detailed description of defaults and validation, select the<b> Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ConsentPurposePostRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ConsentPurposePostRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ConsentPurposePostRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ConsentPurposePostRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Records posted to import table. Import ID and record count returned to enable progress monitoring"
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/consentpurposes/csv": {
      "get": {
        "tags": [
          "ConsentPurpose"
        ],
        "summary": "Get CSV Template",
        "description": "Gets a template CSV file with the required headers for posting a ConsentPurpose CSV file",
        "operationId": "GetConsentPurposeCSV",
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "ConsentPurpose"
        ],
        "summary": "Post Consent Purposes CSV File",
        "description": "Uploads a CSV file containing mailing purpose records",
        "operationId": "PostPurposesCSV",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "file": {
                    "title": "File Title",
                    "type": "string",
                    "description": "The file to upload",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Posted to import tables. ImportId and RecordCount returned to check processing progress"
          },
          "400": {
            "description": "File not accepted for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/contactaddresses/{id}": {
      "get": {
        "tags": [
          "ContactAddress"
        ],
        "summary": "Get By ID",
        "description": "Gets the address record with the specified Id",
        "operationId": "GetContactAddressById",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id of the contact address to get",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "IncludePreferences",
            "in": "query",
            "description": "Whether to include preferences",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ContactAddressSingleGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactAddressSingleGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactAddressSingleGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Address record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "delete": {
        "tags": [
          "ContactAddress"
        ],
        "summary": "Delete By ID",
        "description": "Deletes the address record with the specified Id",
        "operationId": "DeleteContactAddressById",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id of the contact address to delete",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Record deleted"
          },
          "400": {
            "description": "Record not valid for deleting"
          },
          "404": {
            "description": "Address record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/contactaddresses": {
      "get": {
        "tags": [
          "ContactAddress"
        ],
        "summary": "Get",
        "description": "Returns a collection of addresses for the given page and filter",
        "operationId": "GetContactAddresses",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "SerialNumber",
            "in": "query",
            "description": "The serial number to filter on",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ContactAddressGetResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ContactAddressGetResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ContactAddressGetResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "ContactAddress"
        ],
        "summary": "Post Single",
        "description": "Posts a single contact address record",
        "operationId": "PostContactAddressSingle",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The contact address\r\n            <p>For a detailed description of defaults and validation, select the<b> Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ContactAddressPostRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ContactAddressPostRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ContactAddressPostRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ContactAddressPostRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Valid for Posting"
          },
          "201": {
            "description": "Record posted successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ContactAddressSingleGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactAddressSingleGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactAddressSingleGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/contactaddresses/bulk": {
      "post": {
        "tags": [
          "ContactAddress"
        ],
        "summary": "Post In Bulk",
        "description": "Posts a collection of contact address records",
        "operationId": "PostContactAddressBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The collection of contact addresses\r\n            <p>For a detailed description of defaults and validation, select the<b> Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ContactAddressPostRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ContactAddressPostRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ContactAddressPostRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ContactAddressPostRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Records posted to import table. Import ID and record count returned to enable progress monitoring"
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/contactaddresses/csv": {
      "get": {
        "tags": [
          "ContactAddress"
        ],
        "summary": "Get CSV Template",
        "description": "Gets a template CSV file with the required headers for posting a ContactAddress CSV file",
        "operationId": "GetContactAddressCSV",
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "ContactAddress"
        ],
        "summary": "Post Contact Addresses CSV File",
        "description": "Uploads a CSV file containing contact address records",
        "operationId": "PostContactAddressesCSV",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "file": {
                    "title": "File Title",
                    "type": "string",
                    "description": "The file to upload",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Posted to import tables. ImportId and RecordCount returned to check processing progress"
          },
          "400": {
            "description": "File not accepted for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/contactconsent": {
      "get": {
        "tags": [
          "ContactConsent"
        ],
        "summary": "Get",
        "description": "Returns a collection of contact consent for the given page and filter",
        "operationId": "GetContactConsent",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "SerialNumber",
            "in": "query",
            "description": "The serial number of the contact",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ContactConsentGetResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ContactConsentGetResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ContactConsentGetResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "ContactConsent"
        ],
        "summary": "Post Single",
        "description": "Posts a single contact consent record",
        "operationId": "PostContactConsentSingle",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The contact Consent to post\r\n            <p>For a detailed description of defaults and validation, select the<b> Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ContactConsentPostRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ContactConsentPostRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ContactConsentPostRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ContactConsentPostRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Valid for Posting",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "201": {
            "description": "Record posted successfully - historic consent will have no return object",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ContactConsentGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactConsentGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactConsentGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/contactconsent/bulk": {
      "post": {
        "tags": [
          "ContactConsent"
        ],
        "summary": "Post In Bulk",
        "description": "Posts a collection of contact consent records",
        "operationId": "PostContactConsentBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The collection of contact Consents\r\n            <p>For a detailed description of defaults and validation, select the<b> Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ContactConsentPostRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ContactConsentPostRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ContactConsentPostRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ContactConsentPostRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Records posted to import table. Import ID and record count returned to enable progress monitoring"
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/contactconsent/csv": {
      "get": {
        "tags": [
          "ContactConsent"
        ],
        "summary": "Get CSV Template",
        "description": "Gets a template CSV file with the required headers for posting a ContactConsent CSV file",
        "operationId": "GetContactConsentCSV",
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "ContactConsent"
        ],
        "summary": "Post Contact Consent CSV File",
        "description": "Uploads a CSV file containing contact consent records",
        "operationId": "PostContactConsentCSV",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "file": {
                    "title": "File Title",
                    "type": "string",
                    "description": "The file to upload",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Posted to import tables. ImportId and RecordCount returned to check processing progress"
          },
          "400": {
            "description": "File not accepted for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/contacts/{serialNumber}": {
      "get": {
        "tags": [
          "Contact"
        ],
        "summary": "Get By Serial Number",
        "description": "Gets the contact record with the specified serial number, in addition to any specified inclusion details",
        "operationId": "GetContactById",
        "parameters": [
          {
            "name": "serialNumber",
            "in": "path",
            "description": "The serial number of the contact to get",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "IncludeAddresses",
            "in": "query",
            "description": "Whether to include addresses",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeConsent",
            "in": "query",
            "description": "Whether to include consent",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludePreferences",
            "in": "query",
            "description": "Whether to include preferences",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeProfiles",
            "in": "query",
            "description": "Whether to include profiles",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeGroups",
            "in": "query",
            "description": "Whether to include groups",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeExternalReferences",
            "in": "query",
            "description": "Whether to include external references",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeRelationships",
            "in": "query",
            "description": "Whether to include relationships",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludePayments",
            "in": "query",
            "description": "Whether to include payments",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeCommunications",
            "in": "query",
            "description": "Whether to include communications",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeTeams",
            "in": "query",
            "description": "Whether to include teams",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeSocialMedia",
            "in": "query",
            "description": "Whether to include social media accounts",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ContactGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Contact record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/contacts": {
      "get": {
        "tags": [
          "Contact"
        ],
        "summary": "Get",
        "description": "Returns a collection of contact records for the given page, filter and search criteria",
        "operationId": "GetContacts",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "SerialNumber",
            "in": "query",
            "description": "Filter to apply on serial number",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "DataHubId",
            "in": "query",
            "description": "Filter to apply on DataHubId",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ExternalRef",
            "in": "query",
            "description": "Filter to apply on external reference",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PrimaryCategory",
            "in": "query",
            "description": "Filter to apply on primary category",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "FirstName",
            "in": "query",
            "description": "Filter to apply on first name",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Keyname",
            "in": "query",
            "description": "Filter to apply on keyname",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Postcode",
            "in": "query",
            "description": "Filter to apply on postcode",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EmailAddress",
            "in": "query",
            "description": "Filter to apply on email address",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "DayTelephone",
            "in": "query",
            "description": "Filter to apply on day telephone",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EveningTelephone",
            "in": "query",
            "description": "Filter to apply on evening telephone",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "MobileNumber",
            "in": "query",
            "description": "Filter to apply on mobile number",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ContactType",
            "in": "query",
            "description": "Filter to add on ContactType",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Alumni",
            "in": "query",
            "description": "Filter to add on Alumni",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Committee",
            "in": "query",
            "description": "Filter to add on committee",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Volunteer",
            "in": "query",
            "description": "Filter to add on volunteer",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Funder",
            "in": "query",
            "description": "Filter to add on funder",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Prospect",
            "in": "query",
            "description": "Filter to add on prospect",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "PostNominal",
            "in": "query",
            "description": "Filter to add on PostNominal",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "AddressType",
            "in": "query",
            "description": "Filter to add on AddressType",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Address",
            "in": "query",
            "description": "Filter to add on Address",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Town",
            "in": "query",
            "description": "Filter to add on the town of the address",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "County",
            "in": "query",
            "description": "Filter to add on the county of the address",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Country",
            "in": "query",
            "description": "Filter to add on the country of the address",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Region",
            "in": "query",
            "description": "Filter to add on the region the contact is in",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "FaxNumber",
            "in": "query",
            "description": "Filter to add on the contact’s fax number",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Gender",
            "in": "query",
            "description": "Filter to add on the contact’s gender",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Website",
            "in": "query",
            "description": "Filter to add on the contact’s website",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "MaritalStatus",
            "in": "query",
            "description": "Filter to add on the contact’s marital status",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Occupation",
            "in": "query",
            "description": "Filter to add on the contact’s occupation",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "JobTitle",
            "in": "query",
            "description": "Filter to add on the contact’s job title",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "CharityNumber",
            "in": "query",
            "description": "Filter to add on the charity commission number for the organisation",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "VATNumber",
            "in": "query",
            "description": "Filter to add on the contact's VAT number",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "TaxStatus",
            "in": "query",
            "description": "Filter to add on the contact's tax status",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SocialSecurity",
            "in": "query",
            "description": "Filter to add on the contact's social security number",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Nationality",
            "in": "query",
            "description": "Filter to add on the contact's nationality",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Ethnicity",
            "in": "query",
            "description": "Filter to add on the contact's ethnicity",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SourceCode",
            "in": "query",
            "description": "Filter to add on the source of the contact record (e.g. how the contact was recruited / introduced)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Origin",
            "in": "query",
            "description": "Filter to add on the this is related to the source of the contact",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PreferredLanguage",
            "in": "query",
            "description": "Filter to add on the contacts preferred language",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "CommitteeType",
            "in": "query",
            "description": "Filter to add on the committee type",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "CommitteeSubType",
            "in": "query",
            "description": "Filter to add on the committee sub type",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "VolunteerSourceCode",
            "in": "query",
            "description": "Filter to add on the Volunteer Source Code",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "VolunteerEmergencyName",
            "in": "query",
            "description": "Filter to add on the contact's emergency contact's name",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "VolunteerEmergencyNumber",
            "in": "query",
            "description": "Filter to add on the contact's emergency contact's phone number",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "FunderUrl",
            "in": "query",
            "description": "Filter to add on the URL of the Funder",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Constituency",
            "in": "query",
            "description": "Filter to add on the Parliamentary Constituency corresponding to the current postcode",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Trust",
            "in": "query",
            "description": "Filter to add on trust",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "DefaultToAnonymous",
            "in": "query",
            "description": "Filter to add on the default to anon",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "AnnualSeasonalAddress",
            "in": "query",
            "description": "Filter to add on annual seasonal address",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "NotMailingAddress",
            "in": "query",
            "description": "Filter to add on not mailing address",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ActiveMember",
            "in": "query",
            "description": "Filter for contacts with active memberships",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ActivePledge",
            "in": "query",
            "description": "Filter for contacts with active pledges",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "HasLegacy",
            "in": "query",
            "description": "Filter for contacts who have active or completed legacies",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "LegacyPledged",
            "in": "query",
            "description": "Filter for contacts who have a pledged legacies",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "DonorCategory",
            "in": "query",
            "description": "Filter for contacts by donor category",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "DonorSubCategory",
            "in": "query",
            "description": "Filter for contacts by donor sub category",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "search",
            "in": "query",
            "description": "The search to apply to the collection",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ContactGetResponseCollectionResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactGetResponseCollectionResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactGetResponseCollectionResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "Contact"
        ],
        "summary": "Post Single",
        "description": "<h2>Posts a single contact record</h2>\r\n<p>When each contact record is processed through the API, if both the 'serialNumber' and the 'isNew' fields do not have values, a Dupe Check is run against the existing contacts.</p>\r\n<p>Each Dupe Check is then run in turn, according to whether a set of conditions is met. Below is a list of each Dupe Check that is run. If a Dupe is found, the 'serialNumber' of the incoming record is updated to match the duplicate contact record, \r\nand the 'isNew' flag is set to false (meaning most defaults are not applied, and the imported record is treated as an update of an existing contact).</p>\r\n<h2>Dupe Rules</h2>\r\n<p>When these fields match an existing contacts details in the dame fields, then the imported contact is treated as a duplicate, and the exiting contact is updated with the new details.</p>\r\n<ul>\r\n  <li>External Reference</li>\r\n  <li>EmailAddress, FirstName and KeyName</li>\r\n  <li>Postcode, FirstName and KeyName</li>\r\n  <li>DayTelephone, FirstName and KeyName</li>\r\n  <li>EveningTelephone, FirstName and KeyName</li>\r\n</ul>\r\n<h2>Address Updates</h2>\r\n<p>When adding a new address to an existing contact, it is recommended to use the ContactAddress POST endpoints. These endpoints will automatically archive the previous address if necessary.\r\nIf you include address fields for a contact that may already exist, you should provide all address fields. For any fields that should be left blank, use the appropriate sentinel values.</p>",
        "operationId": "PostContactSingle",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "createLookups",
            "in": "query",
            "description": "\"True\" to indicate that new lookups and source codes should be created rather than validated against",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "<p>Defaults for the Contacts resource are only applied if the 'isNew' field is set to true</p>\r\n<p>The 'isNew' field itself defaults to false if the contact is matched (is a dupe) of an existing contact</p>\r\n<p>For a detailed description of defaults and validation, select the<b> Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ContactPostRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ContactPostRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ContactPostRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ContactPostRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Valid for Posting"
          },
          "201": {
            "description": "Record posted successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ContactGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/contacts/bulk": {
      "post": {
        "tags": [
          "Contact"
        ],
        "summary": "Post In Bulk",
        "description": "<h2>Posts a collection of contacts records</h2>\r\n<p>When each contact record is processed through the API, if both the 'serialNumber' and the 'isNew' fields do not have values, a Dupe Check is run against the existing contacts.</p>\r\n<p>Each Dupe Check is then run in turn, according to whether a set of conditions is met. Below is a list of each Dupe Check that is run. If a Dupe is found, the 'serialNumber' of the incoming record is updated to match the duplicate contact record, \r\nand the 'isNew' flag is set to false (meaning most defaults are not applied, and the imported record is treated as an update of an existing contact).</p>\r\n<h2>Dupe Rules</h2>\r\n<p>When these fields match an existing contacts details in the dame fields, then the imported contact is treated as a duplicate, and the exiting contact is updated with the new details.</p>\r\n<ul>\r\n  <li>External Reference</li>\r\n  <li>EmailAddress, FirstName and KeyName</li>\r\n  <li>Postcode, FirstName and KeyName</li>\r\n  <li>DayTelephone, FirstName and KeyName</li>\r\n  <li>EveningTelephone, FirstName and KeyName</li>\r\n</ul>\r\n<h2>Address Updates</h2>\r\n<p>When adding a new address to an existing contact, it is recommended to use the ContactAddress POST endpoints. These endpoints will automatically archive the previous address if necessary.\r\nIf you include address fields for a contact that may already exist, you should provide all address fields. For any fields that should be left blank, use the appropriate sentinel values.</p>",
        "operationId": "PostContactBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "createLookups",
            "in": "query",
            "description": "\"True\" to indicate that new lookups and source codes should be created rather than validated against",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The collection of contacts\r\n            <p>Defaults for the Contacts resource are only applied if the 'isNew' field is set to true</p><p>The 'isNew' field itself defaults to false if the contact is matched (is a dupe) of an existing contact</p><p>For a detailed description of defaults and validation, select the<b> Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ContactPostRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ContactPostRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ContactPostRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ContactPostRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Records posted to import table. Import ID and record count returned to enable progress monitoring"
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/contacts/csv": {
      "get": {
        "tags": [
          "Contact"
        ],
        "summary": "Get CSV Template",
        "description": "Gets a template CSV file with the required headers for posting a Contact CSV file",
        "operationId": "GetContactCSV",
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "Contact"
        ],
        "summary": "Post Contacts CSV File",
        "description": "Uploads a CSV file containing contact records",
        "operationId": "PostContactCSV",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "createLookups",
            "in": "query",
            "description": "\"True\" to indicate that new lookups and source codes should be created rather than validated against",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "file": {
                    "title": "File Title",
                    "type": "string",
                    "description": "The file to upload",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Posted to import tables. ImportId and RecordCount returned to check processing progress"
          },
          "400": {
            "description": "File not accepted for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/contacts/modified": {
      "get": {
        "tags": [
          "Contact"
        ],
        "summary": "Get Modified Contacts",
        "description": "Returns a collection of new and updated contact records from a given date, in the order they where last modified",
        "operationId": "GetCreatedContacts",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "DateFrom",
            "in": "query",
            "description": "Return data that have been affected since this date",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2022-12-06"
            },
            "example": "2022-12-06"
          },
          {
            "name": "SystemName",
            "in": "query",
            "description": "The system name making the request",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Data Engine"
            },
            "example": "Data Engine"
          },
          {
            "name": "Fields",
            "in": "query",
            "description": "A comma delimited list of fields to return",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ResourceName",
            "in": "query",
            "description": "Resource name",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Contact"
            },
            "example": "Contact"
          },
          {
            "name": "ResourceVersion",
            "in": "query",
            "description": "Resource version",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "BaseChangesOnly",
            "in": "query",
            "description": "Whether to read only changes that are based on the base version of the resource",
            "required": true,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ContactGetResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ContactGetResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ContactGetResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/contacts/deleted": {
      "get": {
        "tags": [
          "Contact"
        ],
        "summary": "Get Deleted Contacts",
        "description": "Returns a collection of deleted contact records from a given date, in the order they where deleted",
        "operationId": "GetDeletedContacts",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "DateFrom",
            "in": "query",
            "description": "Return data that have been affected since this date",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2022-12-06"
            },
            "example": "2022-12-06"
          },
          {
            "name": "SystemName",
            "in": "query",
            "description": "The system name making the request",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Data Engine"
            },
            "example": "Data Engine"
          },
          {
            "name": "Fields",
            "in": "query",
            "description": "A comma delimited list of fields to return",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ResourceName",
            "in": "query",
            "description": "Resource name",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Contact"
            },
            "example": "Contact"
          },
          {
            "name": "ResourceVersion",
            "in": "query",
            "description": "Resource version",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "BaseChangesOnly",
            "in": "query",
            "description": "Whether to read only changes that are based on the base version of the resource",
            "required": true,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ContactGetResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ContactGetResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ContactGetResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/contacts/merged": {
      "get": {
        "tags": [
          "Contact"
        ],
        "summary": "Get Merged Contacts",
        "description": "Returns a collection of merged contact records from a given period, in the order they where merged",
        "operationId": "GetMergedContacts",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "DateFrom",
            "in": "query",
            "description": "Return data that have been affected since this date",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "SystemName",
            "in": "query",
            "description": "The system name making the request",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Fields",
            "in": "query",
            "description": "A comma delimited list of fields to return",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ResourceName",
            "in": "query",
            "description": "Resource name",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ResourceVersion",
            "in": "query",
            "description": "Resource version",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "BaseChangesOnly",
            "in": "query",
            "description": "Whether to read only changes that are based on the base version of the resource",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ContactGetResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ContactGetResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ContactGetResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/contactexternalreference/{contactExternalReferenceId}": {
      "get": {
        "tags": [
          "ContactExternalReference"
        ],
        "summary": "Get By ID",
        "description": "Gets the contact external reference record with the specified external reference ID",
        "operationId": "GetContactExternalReferenceById",
        "parameters": [
          {
            "name": "contactExternalReferenceId",
            "in": "path",
            "description": "The external reference id of the external reference to get",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ContactExternalReferenceGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactExternalReferenceGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactExternalReferenceGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "External Reference record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/contactexternalreference": {
      "get": {
        "tags": [
          "ContactExternalReference"
        ],
        "summary": "Get",
        "description": "Returns a collection of external references for the given page and filter",
        "operationId": "GetContactExternalReferences",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "SerialNumber",
            "in": "query",
            "description": "Filter to apply on serial number of the contact",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SystemName",
            "in": "query",
            "description": "Filter to apply on external system name",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "FieldName",
            "in": "query",
            "description": "Filter to apply on field name in the external system",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Reference",
            "in": "query",
            "description": "Filter to apply on reference in the external system",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ContactExternalReferenceGetResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ContactExternalReferenceGetResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ContactExternalReferenceGetResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "ContactExternalReference"
        ],
        "summary": "Post Single",
        "description": "Posts a single contact external reference record",
        "operationId": "PostContactExternalReferenceSingle",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The external reference.\r\n            <p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ContactExternalReferencePostRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ContactExternalReferencePostRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ContactExternalReferencePostRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ContactExternalReferencePostRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Valid for Posting"
          },
          "201": {
            "description": "Record posted successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ContactExternalReferenceGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactExternalReferenceGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactExternalReferenceGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/contactexternalreference/bulk": {
      "post": {
        "tags": [
          "ContactExternalReference"
        ],
        "summary": "Post In Bulk",
        "description": "Posts a collection of contact external reference records",
        "operationId": "PostContactExternalReferenceBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The collection of external references.\r\n            <p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ContactExternalReferencePostRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ContactExternalReferencePostRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ContactExternalReferencePostRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ContactExternalReferencePostRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Records posted to import table. Import ID and record count returned to enable progress monitoring"
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/contactexternalreference/csv": {
      "get": {
        "tags": [
          "ContactExternalReference"
        ],
        "summary": "Get CSV Template",
        "description": "Gets a template CSV file with the required headers for posting a Contact External References CSV file",
        "operationId": "GetContactExternalReferencesCSV",
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "ContactExternalReference"
        ],
        "summary": "Post Contact External References CSV File",
        "description": "Uploads a CSV file containing external references for a set of contacts",
        "operationId": "PostContactExternalReferenceCSV",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "file": {
                    "title": "File Title",
                    "type": "string",
                    "description": "The file to upload",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Posted to import tables. ImportId and RecordCount returned to check processing progress"
          },
          "400": {
            "description": "File not accepted for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/contactexternalreference/{id}": {
      "delete": {
        "tags": [
          "ContactExternalReference"
        ],
        "summary": "Delete Contact External Reference",
        "description": "Deleting a contact external reference based on the ContactExternalRefID",
        "operationId": "DeleteContactExternalReference",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of contact external reference",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Contact external reference deleted successfully"
          },
          "400": {
            "description": "Record not valid for deletion"
          },
          "404": {
            "description": "Contact external reference with specified ID was not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/contactgroups": {
      "get": {
        "tags": [
          "ContactGroup"
        ],
        "summary": "Get",
        "description": "Returns a collection of group member records for the given page and filter",
        "operationId": "GetContactGroup",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "SerialNumber",
            "in": "query",
            "description": "Filter to apply on serial number",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "GroupId",
            "in": "query",
            "description": "Filter to apply on Group ID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Title",
            "in": "query",
            "description": "Filter to apply on Group Title",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "WorkspacePublish",
            "in": "query",
            "description": "A flag whether the group should be shown in workspace",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ContactGroupGetResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ContactGroupGetResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ContactGroupGetResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "ContactGroup"
        ],
        "summary": "Post Single",
        "description": "<h2>Posts a single group member record</h2>\r\n<p>When a ContactGroup record is posted (representing Group Members), the following occurs:</p>\r\n<p>\r\n<ul>\r\n  <li>If <b>groupId</b> is not provided and <b>groupTitle</b> is, a new group with that title will be created.\r\n    <ul><li>When multiple ContactGroup records are imported (bulk POST, or Csv upload) with identical <b>groupTitle</b> values, this will create one group for these group members to be added to.</li></ul></li>\r\n  <li>If a <b>groupId</b> is provided, the validation will check to see if this group exists. If it doesn't, an error will be raised and the import will not proceed</li>\r\n  <li>If a <b>groupId</b> is provided, the <b>groupTitle</b> value in the imported record is ignored (the system treats the record as an addition to an existing group, and will not try to update the existing group title)</li>\r\n  <li>If a new group is created, the <b>groupId</b> will default to the new value in the 'GroupId' sequence</li>\r\n  <li>The group member record is imported. If the record caused a new group to be created, the group member will be associated with this new group</li>\r\n</ul>\r\n</p>",
        "operationId": "PostContactGroupSingle",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The group member to post.\r\n            <p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ContactGroupPostRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ContactGroupPostRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ContactGroupPostRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ContactGroupPostRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Valid for Posting"
          },
          "201": {
            "description": "Record posted successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ContactGroupGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactGroupGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactGroupGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/contactgroups/bulk": {
      "post": {
        "tags": [
          "ContactGroup"
        ],
        "summary": "Post In Bulk",
        "description": "<h2>Posts a collection of group member records</h2>\r\n<p>When a ContactGroup record is posted (representing Group Members), the following occurs:</p>\r\n<p>\r\n<ul>\r\n  <li>If <b>groupId</b> is not provided and <b>groupTitle</b> is, a new group with that title will be created.\r\n    <ul><li>When multiple ContactGroup records are imported (bulk POST, or Csv upload) with identical <b>groupTitle</b> values, this will create one group for these group members to be added to.</li></ul></li>\r\n  <li>If a <b>groupId</b> is provided, the validation will check to see if this group exists. If it doesn't, an error will be raised and the import will not proceed</li>\r\n  <li>If a <b>groupId</b> is provided, the <b>groupTitle</b> value in the imported record is ignored (the system treats the record as an addition to an existing group, and will not try to update the existing group title)</li>\r\n  <li>If a new group is created, the <b>groupId</b> will default to the new value in the 'GroupId' sequence</li>\r\n  <li>The group member record is imported. If the record caused a new group to be created, the group member will be associated with this new group</li>\r\n</ul>\r\n</p>",
        "operationId": "PostContactGroupBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The collection of group members.\r\n            <p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ContactGroupPostRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ContactGroupPostRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ContactGroupPostRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ContactGroupPostRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Records posted to import table. Import ID and record count returned to enable progress monitoring"
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/contactgroups/csv": {
      "get": {
        "tags": [
          "ContactGroup"
        ],
        "summary": "Get CSV Template",
        "description": "Gets a template CSV file with the required headers for posting a Contact Groups CSV file",
        "operationId": "GetContactGroupCSV",
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "ContactGroup"
        ],
        "summary": "Post Contact Groups CSV File",
        "description": "Uploads a CSV file containing the details of which groups a set of contacts belong to",
        "operationId": "PostContactGroupCSV",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "file": {
                    "title": "File Title",
                    "type": "string",
                    "description": "The file to upload",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Posted to import tables. ImportId and RecordCount returned to check processing progress"
          },
          "400": {
            "description": "File not accepted for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/contactgroups/{groupId}/{serialNumber}": {
      "delete": {
        "tags": [
          "ContactGroup"
        ],
        "summary": "Delete Contact Group By Id",
        "description": "Provide groupId, serialNumber to delete a contact from a group",
        "operationId": "DeleteContactGroupById",
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "description": "groupId of the contact group",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "serialNumber",
            "in": "path",
            "description": "serialNumber of the contact",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "The Contact has been removed from the Group"
          },
          "400": {
            "description": "Record is not valid for deletion"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "The groupId or serialNumber are invalid"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/contactpicture/{serialNumber}": {
      "get": {
        "tags": [
          "ContactPicture"
        ],
        "summary": "Get Picture By Serial Number",
        "description": "<p>Gets the contacts picture with the specified serial number</p>\r\n</p>\r\n<p>\r\n<ul>\r\n  <li>Uses base64 encoding which converts the picture into a byte array</li>\r\n  <li>If no pictures are found for a given contact, the default picture will be returned rather than null.</li>\r\n</ul>\r\n</p>",
        "operationId": "GetContactPictureById",
        "parameters": [
          {
            "name": "serialNumber",
            "in": "path",
            "description": "the serialNumber of the contact requested",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ContactPictureGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactPictureGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactPictureGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Contact record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "delete": {
        "tags": [
          "ContactPicture"
        ],
        "summary": "Delete By SerialNumber",
        "description": "Deletes the contacts picture with the specified SerialNumber",
        "operationId": "DeleteContactPictureById",
        "parameters": [
          {
            "name": "serialNumber",
            "in": "path",
            "description": "The id of the contact to delete the picture",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Record deleted"
          },
          "400": {
            "description": "Record is not valid for deletion"
          },
          "404": {
            "description": "Contact record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/contactpicture": {
      "get": {
        "tags": [
          "ContactPicture"
        ],
        "summary": "Get",
        "description": "<p>Returns a collection of pictures for contacts for the given page, filter and search criteria</p>\r\n<p>\r\n<ul>\r\n  <li>Uses base64 encoding which converts the picture into a byte array</li>\r\n  <li>If no pictures are found for a given contact, the default picture will be returned rather than null.</li>\r\n</ul>\r\n</p>",
        "operationId": "GetContactPictures",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "SerialNumber",
            "in": "query",
            "description": "Filter to apply on serial number",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PictureModifiedDate",
            "in": "query",
            "description": "Filter to apply on last modified date",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "search",
            "in": "query",
            "description": "The search to apply to the collection",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ContactPictureGetResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ContactPictureGetResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ContactPictureGetResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "ContactPicture"
        ],
        "summary": "Post Single",
        "description": "Posts a single contact picture record",
        "operationId": "PostContactPictureSingle",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The contact.<p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ContactPicturePostRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ContactPicturePostRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ContactPicturePostRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ContactPicturePostRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Valid for Posting"
          },
          "201": {
            "description": "Record posted successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ContactPictureGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactPictureGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactPictureGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/contactpicture/bulk": {
      "post": {
        "tags": [
          "ContactPicture"
        ],
        "summary": "Post In Bulk",
        "description": "Posts a collection of contact picture records",
        "operationId": "PostContactPictureBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The collection of pictures for contacts.<p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ContactPicturePostRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ContactPicturePostRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ContactPicturePostRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ContactPicturePostRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Records posted to import table. Import ID and record count returned to enable progress monitoring"
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/contactpicture/modified": {
      "get": {
        "tags": [
          "ContactPicture"
        ],
        "summary": "Get Modified Pictures",
        "description": "Returns a collection of new, updated and deleted contact pictures from a given date, in the order they where last modified",
        "operationId": "GetModifiedContactPictures",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "DateFrom",
            "in": "query",
            "description": "Return data that have been affected since this date",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2022-12-06"
            },
            "example": "2022-12-06"
          },
          {
            "name": "SystemName",
            "in": "query",
            "description": "The system name making the request",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Data Engine"
            },
            "example": "Data Engine"
          },
          {
            "name": "Fields",
            "in": "query",
            "description": "A comma delimited list of fields to return",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ResourceName",
            "in": "query",
            "description": "Resource name",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Contact"
            },
            "example": "Contact"
          },
          {
            "name": "ResourceVersion",
            "in": "query",
            "description": "Resource version",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "BaseChangesOnly",
            "in": "query",
            "description": "Whether to read only changes that are based on the base version of the resource",
            "required": true,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ContactPictureGetResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ContactPictureGetResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ContactPictureGetResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/contactpreferences/{preferenceId}": {
      "get": {
        "tags": [
          "ContactPreference"
        ],
        "summary": "Get By Preference ID",
        "description": "Gets the contact preference record with the specified preference ID",
        "operationId": "GetContactPreferenceById",
        "parameters": [
          {
            "name": "preferenceId",
            "in": "path",
            "description": "The preference ID of the preference to get",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ContactPreferenceGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactPreferenceGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactPreferenceGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Contact Profile record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "delete": {
        "tags": [
          "ContactPreference"
        ],
        "summary": "Delete Preference By ID",
        "description": "Deletes the Preference with the specified Preference Id",
        "operationId": "DeleteContactPreferenceById",
        "parameters": [
          {
            "name": "preferenceId",
            "in": "path",
            "description": "The preference ID of the preference to get",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Record deleted"
          },
          "400": {
            "description": "Record not valid for deletion"
          },
          "404": {
            "description": "Preference record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/contactpreferences": {
      "get": {
        "tags": [
          "ContactPreference"
        ],
        "summary": "Get",
        "description": "Returns a collection of contact preference records for the given page, filter and search criteria",
        "operationId": "GetContactPreferences",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "SerialNumber",
            "in": "query",
            "description": "Filter to apply on the serial number",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Preference",
            "in": "query",
            "description": "Filter to apply on the preference",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Method",
            "in": "query",
            "description": "Filter to apply on the method",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Address",
            "in": "query",
            "description": "Filter to apply on the 1st part of the address",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Town",
            "in": "query",
            "description": "Filter to apply on the town of the address",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "County",
            "in": "query",
            "description": "Filter to apply on the county of the address",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Country",
            "in": "query",
            "description": "Filter to apply on the country of the address",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ContactPreferenceGetResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ContactPreferenceGetResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ContactPreferenceGetResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "ContactPreference"
        ],
        "summary": "Post Single",
        "description": "<p>Posts a single contact preference record</p>\r\n<h2>Additional Validation</h2>\r\n<ul>\r\n  <li>When <b>doNotContact</b> is 'false' and <b>serialNumber</b>, <b>preference</b> and <b>addressId</b> values of the imported record match up to a single preference record, a validation error will be raised</li>\r\n</li><li>The same preference record can not be duplicated twice in the import data. If <b>serialNumber</b>, <b>preference</b> and <b>addressId</b> values for one record match another record in the import, this will raise an error\r\n</li><li>A contact may only have one preference for a particular mailing type that is marked as 'doNotContact'. Therefore:\r\n</li>\r\n<ul><li>When <b>serialNumber</b> and <b>preference</b> match up to a either an existing record, or another record in the import data, a check is performed. This check ensures that there would not end up being two preference records for the contact\r\nfor the same MAILINGTYPE that are both marked as 'doNotContact'. A violation of this check would cause a validation error to be raised on import</li></ul>\r\n</ul>\r\n\r\n<h2>Serial Number</h2>\r\n<p>When a Contact record is being imported with nested contact preference records, the serial number does not need to be supplied for the preference records. The serial number is inherited from the parent contact record.\r\nHowever, when importing contact preference records on their own, a serial number of an existing contact is required.\r\n</p>\r\n<h2>Updating</h2>\r\n<p>When posting preferences you may set the 'UpdateIfExists' flag. This will allow that record to be considered an update if a matching pref already exists.\r\nWhen this flag is off, if a matching pref exists, validation will return informing the user.</p>",
        "operationId": "PostContactPreferenceSingle",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The contact preference to post.\r\n            <p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ContactPreferencePostRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ContactPreferencePostRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ContactPreferencePostRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ContactPreferencePostRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Valid for Posting"
          },
          "201": {
            "description": "Record posted successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ContactPreferenceGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactPreferenceGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactPreferenceGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/contactpreferences/bulk": {
      "post": {
        "tags": [
          "ContactPreference"
        ],
        "summary": "Post In Bulk",
        "description": "<p>Posts a collection of contact preference records</p>\r\n<h2>Additional Validation</h2>\r\n<ul>\r\n  <li>When <b>doNotContact</b> is 'false' and <b>serialNumber</b>, <b>preference</b> and <b>addressId</b> values of the imported record match up to a single preference record, a validation error will be raised</li>\r\n</li><li>The same preference record can not be duplicated twice in the import data. If <b>serialNumber</b>, <b>preference</b> and <b>addressId</b> values for one record match another record in the import, this will raise an error\r\n</li><li>A contact may only have one preference for a particular mailing type that is marked as 'doNotContact'. Therefore:\r\n</li>\r\n<ul><li>When <b>serialNumber</b> and <b>preference</b> match up to a either an existing record, or another record in the import data, a check is performed. This check ensures that there would not end up being two preference records for the contact\r\nfor the same MAILINGTYPE that are both marked as 'doNotContact'. A violation of this check would cause a validation error to be raised on import</li></ul>\r\n</ul>\r\n\r\n<h2>Serial Number</h2>\r\n<p>When a Contact record is being imported with nested contact preference records, the serial number does not need to be supplied for the preference records. The serial number is inherited from the parent contact record.\r\nHowever, when importing contact preference records on their own, a serial number of an existing contact is required.\r\n</p>\r\n<h2>Updating</h2>\r\n<p>When posting preferences you may set the 'UpdateIfExists' flag. This will allow that record to be considered an update if a matching pref already exists.\r\nWhen this flag is off, if a matching pref exists, validation will return informing the user.</p>",
        "operationId": "PostContactPreferenceBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The collection of contact preferences.\r\n            <p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ContactPreferencePostRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ContactPreferencePostRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ContactPreferencePostRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ContactPreferencePostRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Records posted to import table. Import ID and record count returned to enable progress monitoring"
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/contactpreferences/csv": {
      "get": {
        "tags": [
          "ContactPreference"
        ],
        "summary": "Get CSV Template",
        "description": "Gets a template CSV file with the required headers for posting a Contact Preference CSV file",
        "operationId": "GetContactPreferenceCSV",
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "ContactPreference"
        ],
        "summary": "Post Contact Preference CSV File",
        "description": "Uploads a CSV file containing the communication preference records for a set of contacts",
        "operationId": "PostContactPreferencesCSV",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "file": {
                    "title": "File Title",
                    "type": "string",
                    "description": "The file to upload",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Posted to import tables. ImportId and RecordCount returned to check processing progress"
          },
          "400": {
            "description": "File not accepted for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/contactprofiles/{profileId}": {
      "get": {
        "tags": [
          "ContactProfile"
        ],
        "summary": "Get By Profile ID",
        "description": "Gets the contact profile record with the specified profile ID",
        "operationId": "GetContactProfileById",
        "parameters": [
          {
            "name": "profileId",
            "in": "path",
            "description": "The profile ID of the profile to get",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ContactProfileGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactProfileGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactProfileGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Contact Profile record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "put": {
        "tags": [
          "ContactProfile"
        ],
        "summary": "Put Single",
        "description": "Updates a single contact profile record",
        "operationId": "PutContactProfileSingle",
        "parameters": [
          {
            "name": "profileId",
            "in": "path",
            "description": "The id of the profile to update",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The updated profile",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ContactProfilePutRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ContactProfilePutRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ContactProfilePutRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ContactProfilePutRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Contact Profile updated",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ContactProfileGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactProfileGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactProfileGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Contact Profile record not found"
          },
          "400": {
            "description": "Record not valid for updating"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "delete": {
        "tags": [
          "ContactProfile"
        ],
        "summary": "Delete By ID",
        "description": "Deletes the contact profile with the specified id",
        "operationId": "DeleteContactProfileById",
        "parameters": [
          {
            "name": "profileId",
            "in": "path",
            "description": "The profile id of the contact profile record to delete",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Record deleted"
          },
          "400": {
            "description": "Record not valid for deletion"
          },
          "404": {
            "description": "Contact Profile record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/contactprofiles": {
      "get": {
        "tags": [
          "ContactProfile"
        ],
        "summary": "Get",
        "description": "Returns a collection of contact profile records for the given page, filter and search criteria",
        "operationId": "GetContactProfiles",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "SerialNumber",
            "in": "query",
            "description": "Filter to apply on serial number",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Category",
            "in": "query",
            "description": "Filter to apply on category",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Name",
            "in": "query",
            "description": "Filter to apply on name",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Value",
            "in": "query",
            "description": "Filter to apply on value",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Priority",
            "in": "query",
            "description": "Filter to apply on priority (High, Normal or Low)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ExternalRef",
            "in": "query",
            "description": "The Id of the record the profile is against",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ExternalRefType",
            "in": "query",
            "description": "The type of the record the profile is against",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ContactProfileGetResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ContactProfileGetResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ContactProfileGetResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "ContactProfile"
        ],
        "summary": "Post Single",
        "description": "<p>Posts a single contact profile record</P>\r\n<P>When a Contact record is being imported with nested contact profile records, the serial number does not need to be supplied for the profile records. The serial number is inherited from the parent contact record.</P>\r\n<P>However, when importing contact profile records on their own, a serial number of an existing contact is required.</P>",
        "operationId": "PostContactProfileSingle",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The contact profile to post.\r\n            <p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ContactProfilePostRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ContactProfilePostRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ContactProfilePostRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ContactProfilePostRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Valid for Posting"
          },
          "201": {
            "description": "Record posted successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ContactProfileGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactProfileGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactProfileGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/contactprofiles/bulk": {
      "post": {
        "tags": [
          "ContactProfile"
        ],
        "summary": "Post In Bulk",
        "description": "<P>Posts a collection of contact profile records</P>\r\n<P>When a Contact record is being imported with nested contact profile records, the serial number does not need to be supplied for the profile records. The serial number is inherited from the parent contact record.</P>\r\n<P>However, when importing contact profile records on their own, a serial number of an existing contact is required.</P>",
        "operationId": "PostContactProfileBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The collection of contact profiles.\r\n            <p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ContactProfilePostRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ContactProfilePostRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ContactProfilePostRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ContactProfilePostRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Records posted to import table. Import ID and record count returned to enable progress monitoring"
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "put": {
        "tags": [
          "ContactProfile"
        ],
        "summary": "Put Bulk",
        "description": "Updates a collection of contact profile records",
        "operationId": "PutContactProfileBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The updated contact profiles",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ContactProfilePutBulkRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ContactProfilePutBulkRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ContactProfilePutBulkRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ContactProfilePutBulkRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Posted to import tables. ImportId and RecordCount returned to check processing progress"
          },
          "400": {
            "description": "File not accepted for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/contactprofiles/csv": {
      "get": {
        "tags": [
          "ContactProfile"
        ],
        "summary": "Get CSV Template",
        "description": "Gets a template CSV file with the required headers for posting a ContactProfile CSV file",
        "operationId": "GetContactProfileCSV",
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "ContactProfile"
        ],
        "summary": "Post Contact Profiles CSV File",
        "description": "Uploads a CSV file containing contact profile records",
        "operationId": "PostContactProfileCSV",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "file": {
                    "title": "File Title",
                    "type": "string",
                    "description": "The file to upload",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Posted to import tables. ImportId and RecordCount returned to check processing progress"
          },
          "400": {
            "description": "File not accepted for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/contactsocialmedia/{accountId}": {
      "get": {
        "tags": [
          "ContactSocialMedia"
        ],
        "summary": "Get By Account ID",
        "description": "Gets the social media account with the specified account ID",
        "operationId": "GetContactSocialMediaById",
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "The account id of the social media account to get",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ContactSocialMediaGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactSocialMediaGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactSocialMediaGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Social Media record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "delete": {
        "tags": [
          "ContactSocialMedia"
        ],
        "summary": "Delete By Account ID",
        "description": "Deletes the social media account with the specified AccountId",
        "operationId": "DeleteContactSocialMediaById",
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "The account id of the social media account to delete",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Record Deleted"
          },
          "400": {
            "description": "Record not valid for deletion"
          },
          "404": {
            "description": "Contact record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/contactsocialmedia": {
      "get": {
        "tags": [
          "ContactSocialMedia"
        ],
        "summary": "Get",
        "description": "Returns a collection of social media accounts for the given page and filter",
        "operationId": "GetContactSocialMedia",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "AccountId",
            "in": "query",
            "description": "The Account Id to filter on",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SocialMediaRef",
            "in": "query",
            "description": "The Social Media Ref to filter on",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "UserName",
            "in": "query",
            "description": "The UserName to filter on",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Url",
            "in": "query",
            "description": "The Url to filter on",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Platform",
            "in": "query",
            "description": "The Platform to filter on",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ExternalRef",
            "in": "query",
            "description": "The ExternalRef to filter on",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ExternalRefType",
            "in": "query",
            "description": "The ExternalRefType to filter on",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "FollowerCount",
            "in": "query",
            "description": "The FollowerCount to filter on",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "FollowingCount",
            "in": "query",
            "description": "The FollowingCount to filter on",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PostCount",
            "in": "query",
            "description": "The PostCount to filter on",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ContactSocialMediaGetResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ContactSocialMediaGetResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ContactSocialMediaGetResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "ContactSocialMedia"
        ],
        "summary": "Post Single",
        "description": "Posts a single social media account",
        "operationId": "PostContactSocialMediaSingle",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The social media account to post.\r\n            <p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ContactSocialMediaPostRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ContactSocialMediaPostRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ContactSocialMediaPostRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ContactSocialMediaPostRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Valid for Posting"
          },
          "201": {
            "description": "Record posted successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ContactSocialMediaGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactSocialMediaGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactSocialMediaGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/contactsocialmedia/bulk": {
      "post": {
        "tags": [
          "ContactSocialMedia"
        ],
        "summary": "Post In Bulk",
        "description": "Posts a collection of social media accounts",
        "operationId": "PostContactSocialMediaBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The collection of social media accounts.\r\n            <p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ContactSocialMediaPostRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ContactSocialMediaPostRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ContactSocialMediaPostRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ContactSocialMediaPostRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Records posted to import table. Import ID and record count returned to enable progress monitoring"
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/contactsocialmedia/csv": {
      "get": {
        "tags": [
          "ContactSocialMedia"
        ],
        "summary": "Get CSV Template",
        "description": "Gets a template CSV file with the required headers for posting a Contact Social Media CSV file",
        "operationId": "GetContactSocialMediaCSV",
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "ContactSocialMedia"
        ],
        "summary": "Post Contact Social Media CSV File",
        "description": "Uploads a CSV file containing the details of social media account which belong to a set of contacts",
        "operationId": "PostContactSocialMediaCSV",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the account should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "file": {
                    "title": "File Title",
                    "type": "string",
                    "description": "The file to upload",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Posted to import tables. ImportId and RecordCount returned to check processing progress"
          },
          "400": {
            "description": "File not accepted for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/destinationcodes/{destinationCode}": {
      "get": {
        "tags": [
          "DestinationCode"
        ],
        "summary": "Get By ID",
        "description": "Gets the destination code record with the specified destination code",
        "operationId": "GetDestinationCodeById",
        "parameters": [
          {
            "name": "destinationCode",
            "in": "path",
            "description": "The destination code to get",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "IncludeDestinationCodeRelationship",
            "in": "query",
            "description": "Whether to include the Destination Codes relationships to other Destination Codes",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DestinationCodeGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DestinationCodeGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DestinationCodeGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Destination Code record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/destinationcodes": {
      "get": {
        "tags": [
          "DestinationCode"
        ],
        "summary": "Get",
        "description": "Returns a collection of destination codes for the given page and filter",
        "operationId": "GetDestinationCodes",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "DestinationCode",
            "in": "query",
            "description": "Filter to apply on Destination Code",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "DestinationType",
            "in": "query",
            "description": "Filter to apply on Destination Type",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "LedgerCode",
            "in": "query",
            "description": "Filter to apply on in memory serial number",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ExcludeFromDropDown",
            "in": "query",
            "description": "Filter to apply for codes excluded from drop down",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DestinationCodeGetResponseCollectionResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DestinationCodeGetResponseCollectionResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DestinationCodeGetResponseCollectionResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "DestinationCode"
        ],
        "summary": "Post Single",
        "description": "Posts a single destination code record",
        "operationId": "PostDestinationCodeSingle",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The destinationCode.\r\n            <p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/DestinationCodePostRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DestinationCodePostRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/DestinationCodePostRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/DestinationCodePostRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Valid for Posting"
          },
          "201": {
            "description": "Record posted successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DestinationCodeGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DestinationCodeGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DestinationCodeGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/destinationcodes/bulk": {
      "post": {
        "tags": [
          "DestinationCode"
        ],
        "summary": "Post In Bulk",
        "description": "Posts a collection of destination code records",
        "operationId": "PostDestinationCodeBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The collection of destination codes.\r\n            <p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/DestinationCodePostRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/DestinationCodePostRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/DestinationCodePostRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/DestinationCodePostRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Records posted to import table. Import ID and record count returned to enable progress monitoring"
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/destinationcodes/csv": {
      "get": {
        "tags": [
          "DestinationCode"
        ],
        "summary": "Get CSV Template",
        "description": "Gets a template CSV file with the required headers for posting a Destination code CSV file",
        "operationId": "GetDestinationCodeCSV",
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "DestinationCode"
        ],
        "summary": "Post Destination Code CSV File",
        "description": "Uploads a CSV file containing Destination code records",
        "operationId": "PostDestinationCodeCSV",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "file": {
                    "title": "File Title",
                    "type": "string",
                    "description": "The file to upload",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Posted to import tables. ImportId and RecordCount returned to check processing progress"
          },
          "400": {
            "description": "File not accepted for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/destinationcoderelationships": {
      "post": {
        "tags": [
          "DestinationCodeRelationship"
        ],
        "summary": "Post Single",
        "description": "Posts a single destination code relationship record",
        "operationId": "PostDestinationCodeRelationshipSingle",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The relationship.\r\n            <p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/DestinationCodeRelationshipPostRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DestinationCodeRelationshipPostRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/DestinationCodeRelationshipPostRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/DestinationCodeRelationshipPostRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Valid for Posting"
          },
          "201": {
            "description": "Record posted successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DestinationCodeRelationshipGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DestinationCodeRelationshipGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DestinationCodeRelationshipGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/destinationcoderelationships/bulk": {
      "post": {
        "tags": [
          "DestinationCodeRelationship"
        ],
        "summary": "Post In Bulk",
        "description": "Posts a collection of destination code relationship records",
        "operationId": "PostDestinationCodeRelationshipBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The collection of destinationCode relationships.\r\n            <p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/DestinationCodeRelationshipPostRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/DestinationCodeRelationshipPostRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/DestinationCodeRelationshipPostRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/DestinationCodeRelationshipPostRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Records posted to import table. Import ID and record count returned to enable progress monitoring"
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/destinationcoderelationships/csv": {
      "get": {
        "tags": [
          "DestinationCodeRelationship"
        ],
        "summary": "Get CSV Template",
        "description": "Gets a template CSV file with the required headers for posting a destination code relationship CSV file",
        "operationId": "GetDestinationCodeRelationshipCSV",
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "DestinationCodeRelationship"
        ],
        "summary": "Post destination code relationship CSV File",
        "description": "Uploads a CSV file containing contact destination code relationship records",
        "operationId": "PostDestinationCodeRelationshipCSV",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "file": {
                    "title": "File Title",
                    "type": "string",
                    "description": "The file to upload",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Posted to import tables. ImportId and RecordCount returned to check processing progress"
          },
          "400": {
            "description": "File not accepted for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/educations/{educationId}": {
      "get": {
        "tags": [
          "Education"
        ],
        "summary": "Get By ID",
        "description": "Gets the education with the specified ID",
        "operationId": "GetEducationById",
        "parameters": [
          {
            "name": "educationId",
            "in": "path",
            "description": "The education id of the education to get",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EducationGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EducationGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EducationGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Education record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "put": {
        "tags": [
          "Education"
        ],
        "summary": "Put Single",
        "description": "Updates a single education record",
        "operationId": "PutEducationSingle",
        "parameters": [
          {
            "name": "educationId",
            "in": "path",
            "description": "The id of the education to update",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The updated education",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/EducationPutRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EducationPutRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/EducationPutRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/EducationPutRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Education updated",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EducationGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EducationGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EducationGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Education record not found"
          },
          "400": {
            "description": "Record not valid for updating"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "delete": {
        "tags": [
          "Education"
        ],
        "summary": "Delete By ID",
        "description": "Deletes the education with the specified EducationId",
        "operationId": "DeleteEducationById",
        "parameters": [
          {
            "name": "educationId",
            "in": "path",
            "description": "The education id of the education record to delete",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Record deleted"
          },
          "400": {
            "description": "Record not valid for deletion"
          },
          "404": {
            "description": "Education record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/educations": {
      "get": {
        "tags": [
          "Education"
        ],
        "summary": "Get",
        "description": "Returns a collection of education records for the given page and filter",
        "operationId": "GetEducations",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "EducationId",
            "in": "query",
            "description": "The unique ID for the Education",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Created",
            "in": "query",
            "description": "The date the Education was created",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "CreatedBy",
            "in": "query",
            "description": "The user who created the Education",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Modified",
            "in": "query",
            "description": "The date the Education was last changed",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "ModifiedBy",
            "in": "query",
            "description": "The user who last changed the Education",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SerialNumber",
            "in": "query",
            "description": "The SerialNumber to filter on\r\n<ul><li>For new records this value cannot be empty</li></ul><ul><li>This value must exist as an existing contact</li></ul>",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "YearOfEntry",
            "in": "query",
            "description": "The YearOfEntry to filter on\r\n<ul><li>Must be a four digit integer</li></ul>",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "ClassOf",
            "in": "query",
            "description": "The ClassOf to filter on\r\n<ul><li>Must be a four digit integer</li></ul>",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "InstitutionName",
            "in": "query",
            "description": "The InstitutionName to filter on\r\n<ul><li>For new records this value cannot be empty</li></ul><ul><li>Default is LibraryDefinition: DefaultInstitution</li></ul>",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "InstitutionType",
            "in": "query",
            "description": "The InstitutionType to filter on\r\n<ul><li>This value must exist in the 'Institution Type' lookup</li></ul>",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "FacultyOrSchool",
            "in": "query",
            "description": "The FacultyOrSchool to filter on\r\n<ul><li>For new records this value cannot be empty</li></ul><ul><li>This value must exist in the 'Faculty / School' lookup</li></ul>",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "CourseName",
            "in": "query",
            "description": "The CourseName to filter on\r\n<ul><li>For new records this value cannot be empty</li></ul><ul><li>This value must exist in the 'Course Name' lookup</li></ul>",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "QualificationLevel",
            "in": "query",
            "description": "The QualificationLevel to filter on\r\n<ul><li>This value must exist in the 'Qualification Level' lookup</li></ul>",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "QualificationType",
            "in": "query",
            "description": "The QualificationType to filter on\r\n<ul><li>This value must exist in the 'Qualification Type' lookup</li></ul>",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Award",
            "in": "query",
            "description": "The Award to filter on\r\n<ul><li>This value must exist in the 'Award' lookup</li></ul>",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Grade",
            "in": "query",
            "description": "The Grade to filter on\r\n<ul><li>This value must exist in the second column of the 'Award' lookup</li></ul>",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "GPA",
            "in": "query",
            "description": "The GPA to filter on",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "PersonalTutor",
            "in": "query",
            "description": "The PersonalTutor to filter on",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "BoardingStatus",
            "in": "query",
            "description": "The BoardingStatus to filter on",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "BoardingHouse",
            "in": "query",
            "description": "The BoardingHouse to filter on",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "InternationalExchange",
            "in": "query",
            "description": "The InternationalExchange to filter on\r\n<ul><li>This value must exist in the 'InternationalExchange' lookup</li></ul>",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ExchangeNotes",
            "in": "query",
            "description": "The ExchangeNotes to filter on",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "FoundationYearNotes",
            "in": "query",
            "description": "The FoundationYearNotes to filter on",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "GapYearNotes",
            "in": "query",
            "description": "The GapYearNotes to filter on",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "StudyAbroadNotes",
            "in": "query",
            "description": "The StudyAbroadNotes to filter on",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "YearOfLeaving",
            "in": "query",
            "description": "The YearOfLeaving to filter on\r\n<ul><li>Must be a four digit integer</li></ul>",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "ReasonForLeaving",
            "in": "query",
            "description": "The ReasonForLeaving to filter on\r\n<ul><li>This value must exist in the 'Reason For Leaving' lookup</li></ul>",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Notes",
            "in": "query",
            "description": "The Notes to filter on",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "StudentNumber",
            "in": "query",
            "description": "The StudentNumber to filter on",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "College",
            "in": "query",
            "description": "The College to filter on",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Department",
            "in": "query",
            "description": "The Department to filter on",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "CourseCode",
            "in": "query",
            "description": "The CourseCode to filter on",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "StartDate",
            "in": "query",
            "description": "The StartDate to filter on",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "EndDate",
            "in": "query",
            "description": "The EndDate to filter on",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "AwardDate",
            "in": "query",
            "description": "The AwardDate to filter on",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "GraduationDate",
            "in": "query",
            "description": "The GraduationDate to filter on",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "Studied",
            "in": "query",
            "description": "The Studied to filter on",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "AwardClass",
            "in": "query",
            "description": "The AwardClass to filter on",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "AttendanceType",
            "in": "query",
            "description": "The AttendanceType to filter on",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "DegreeFormat",
            "in": "query",
            "description": "The DegreeFormat to filter on",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "UCASNumber",
            "in": "query",
            "description": "The UCASNumber to filter on",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ThesisTitle",
            "in": "query",
            "description": "The ThesisTitle to filter on",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "FeeStatus",
            "in": "query",
            "description": "The FeeStatus to filter on",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "CountryOfPlacement",
            "in": "query",
            "description": "The CountryOfPlacement to filter on",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "DurationOfPlacement",
            "in": "query",
            "description": "The DurationOfPlacement to filter on",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "HostInstitution",
            "in": "query",
            "description": "The HostInstitution to filter on",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PlacementType",
            "in": "query",
            "description": "The PlacementType to filter on",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PlacementStart",
            "in": "query",
            "description": "The PlacementStart to filter on",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "PlacementEnd",
            "in": "query",
            "description": "The PlacementEnd to filter on",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EducationGetResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EducationGetResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EducationGetResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "Education"
        ],
        "summary": "Post Single",
        "description": "Posts a single education record",
        "operationId": "PostEducationSingle",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The education.\r\n            <p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/EducationPostRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EducationPostRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/EducationPostRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/EducationPostRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Valid for Posting"
          },
          "201": {
            "description": "Record posted successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EducationGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EducationGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EducationGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/educations/bulk": {
      "post": {
        "tags": [
          "Education"
        ],
        "summary": "Post In Bulk",
        "description": "Posts a collection of education records",
        "operationId": "PostEducationBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The collection of educations.\r\n            <p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EducationPostRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EducationPostRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EducationPostRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EducationPostRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Records posted to import table. Import ID and record count returned to enable progress monitoring"
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "put": {
        "tags": [
          "Education"
        ],
        "summary": "Put Bulk",
        "description": "Updates a collection of education records",
        "operationId": "PutEducationBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The updated educations",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EducationPutBulkRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EducationPutBulkRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EducationPutBulkRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EducationPutBulkRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Posted to import tables. ImportId and RecordCount returned to check processing progress"
          },
          "400": {
            "description": "File not accepted for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/educations/csv": {
      "get": {
        "tags": [
          "Education"
        ],
        "summary": "Get CSV Template",
        "description": "Gets a template CSV file with the required headers for posting a education CSV file",
        "operationId": "GetEducationCSV",
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "Education"
        ],
        "summary": "Post Educations CSV File",
        "description": "Uploads a CSV file containing education records",
        "operationId": "PostEducationCSV",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "file": {
                    "title": "File Title",
                    "type": "string",
                    "description": "The file to upload",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Posted to import tables. ImportId and RecordCount returned to check processing progress"
          },
          "400": {
            "description": "File not accepted for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/employments/{employmentId}": {
      "get": {
        "tags": [
          "Employment"
        ],
        "summary": "Get By Id",
        "description": "Gets the employment with the specified id",
        "operationId": "GetEmploymentById",
        "parameters": [
          {
            "name": "employmentId",
            "in": "path",
            "description": "The employment id of the employment to get",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EmploymentGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmploymentGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmploymentGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Employment record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "put": {
        "tags": [
          "Employment"
        ],
        "summary": "Put Single",
        "description": "Updates a single employment record",
        "operationId": "PutEmploymentSingle",
        "parameters": [
          {
            "name": "employmentId",
            "in": "path",
            "description": "The id of the employment to update",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The updated employment",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/EmploymentPutRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EmploymentPutRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/EmploymentPutRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/EmploymentPutRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Employment updated",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EmploymentGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmploymentGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmploymentGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Employment record not found"
          },
          "400": {
            "description": "Record not valid for updating"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "delete": {
        "tags": [
          "Employment"
        ],
        "summary": "Delete By ID",
        "description": "Deletes the employment with the specified id",
        "operationId": "DeleteEmploymentById",
        "parameters": [
          {
            "name": "employmentId",
            "in": "path",
            "description": "The employment id of the employment record to delete",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Record deleted"
          },
          "400": {
            "description": "Record not valid for deletion"
          },
          "404": {
            "description": "Employment record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/employments": {
      "get": {
        "tags": [
          "Employment"
        ],
        "summary": "Get",
        "description": "Returns a collection of employment records for the given page and filter",
        "operationId": "GetEmployments",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Created",
            "in": "query",
            "description": "Filter to apply on Created",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "CreatedBy",
            "in": "query",
            "description": "Filter to apply on CreatedBy",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Modified",
            "in": "query",
            "description": "Filter to apply on Modified",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ModifiedBy",
            "in": "query",
            "description": "Filter to apply on ModifiedBy",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SerialNumber",
            "in": "query",
            "description": "The Serial Number of the employee's contact record",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EmployerId",
            "in": "query",
            "description": "The Serial Number of the employer's contact record",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EmployerName",
            "in": "query",
            "description": "The name of the employer",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Position",
            "in": "query",
            "description": "The employee's position in the employer's organisation",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Department",
            "in": "query",
            "description": "The department corresponding to the employment",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Responsibilities",
            "in": "query",
            "description": "The responsibilities of the contact during the employment",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Retired",
            "in": "query",
            "description": "Indicates that the employee retired from this employment",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Inactive",
            "in": "query",
            "description": "Indicates that the employee is not active in this employment",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "SICCode",
            "in": "query",
            "description": "The SIC code for this employment",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SOCCode",
            "in": "query",
            "description": "The SOC code for this employment",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "City",
            "in": "query",
            "description": "The City the Employment took place in",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Country",
            "in": "query",
            "description": "The Country the Employment took place in",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "StartDate",
            "in": "query",
            "description": "The start date of the employment",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "EndDate",
            "in": "query",
            "description": "The end date of the employment",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "SalaryRange",
            "in": "query",
            "description": "The salary range for the employment",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Notes",
            "in": "query",
            "description": "Informal notes recorded against the employment record",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EmploymentGetResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EmploymentGetResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EmploymentGetResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "Employment"
        ],
        "summary": "Post Single",
        "description": "Posts a single employment record",
        "operationId": "PostEmploymentSingle",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The employment.\r\n            <p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/EmploymentPostRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EmploymentPostRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/EmploymentPostRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/EmploymentPostRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Valid for Posting"
          },
          "201": {
            "description": "Record posted successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EmploymentGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmploymentGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmploymentGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/employments/bulk": {
      "post": {
        "tags": [
          "Employment"
        ],
        "summary": "Post In Bulk",
        "description": "Posts a collection of employment records",
        "operationId": "PostEmploymentBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The collection of employments.\r\n            <p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EmploymentPostRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EmploymentPostRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EmploymentPostRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EmploymentPostRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Records posted to import table. Import ID and record count returned to enable progress monitoring"
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "put": {
        "tags": [
          "Employment"
        ],
        "summary": "Put Bulk",
        "description": "Updates a collection of employment records",
        "operationId": "PutEmploymentBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The updated employments",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EmploymentPutBulkRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EmploymentPutBulkRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EmploymentPutBulkRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EmploymentPutBulkRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Posted to import tables. ImportId and RecordCount returned to check processing progress"
          },
          "400": {
            "description": "File not accepted for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/employments/csv": {
      "get": {
        "tags": [
          "Employment"
        ],
        "summary": "Get CSV Template",
        "description": "Gets a template CSV file with the required headers for posting a employment CSV file",
        "operationId": "GetEmploymentCSV",
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "Employment"
        ],
        "summary": "Post Employments CSV File",
        "description": "Uploads a CSV file containing employment records",
        "operationId": "PostEmploymentCSV",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "file": {
                    "title": "File Title",
                    "type": "string",
                    "description": "The file to upload",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Posted to import tables. ImportId and RecordCount returned to check processing progress"
          },
          "400": {
            "description": "File not accepted for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/eventBooking/{bookingId}": {
      "get": {
        "tags": [
          "EventBooking"
        ],
        "summary": "Get Booking By Booking Id",
        "description": "Gets the event booking with the specified booking id",
        "operationId": "GetEventBookingById",
        "parameters": [
          {
            "name": "bookingId",
            "in": "path",
            "description": "The Booking Id of the event booking to get",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "IncludeAccommodation",
            "in": "query",
            "description": "Whether to include accommodation",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeActivities",
            "in": "query",
            "description": "Whether to include activities",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeSeatingPlans",
            "in": "query",
            "description": "Whether to include seating plans",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeSellingSpace",
            "in": "query",
            "description": "Whether to include selling space",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeSeminars",
            "in": "query",
            "description": "Whether to include seminars",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeTrainingCourses",
            "in": "query",
            "description": "Whether to include training courses",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeWorkshops",
            "in": "query",
            "description": "Whether to include workshops",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAdditionalAttendees",
            "in": "query",
            "description": "Whether to include additional attendees",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeProfiles",
            "in": "query",
            "description": "Whether to include profiles",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludePreferences",
            "in": "query",
            "description": "Whether to include communication preferences",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeCosts",
            "in": "query",
            "description": "Whether to include costs",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EventBookingGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventBookingGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventBookingGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Event Booking record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "put": {
        "tags": [
          "EventBooking"
        ],
        "summary": "Put Single Event Booking",
        "description": "Updates a single event booking record",
        "operationId": "PutEventBookingSingle",
        "parameters": [
          {
            "name": "bookingId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The event booking",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/EventBookingPutRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EventBookingPutRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/EventBookingPutRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/EventBookingPutRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Valid for Posting"
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/eventBooking": {
      "get": {
        "tags": [
          "EventBooking"
        ],
        "summary": "Get Bookings",
        "description": "Returns a collection of event bookings records for the given page and filter",
        "operationId": "GetEventBookings",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "EventId",
            "in": "query",
            "description": "Filter to apply on EventId",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SerialNumber",
            "in": "query",
            "description": "Filter to apply on the SerialNumber of the booker",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SourceCode",
            "in": "query",
            "description": "Filter to apply on SourceCode",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "BookingStatus",
            "in": "query",
            "description": "Filter to apply on the BookingStatus",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OrganisationId",
            "in": "query",
            "description": "Filter to apply on the SerialNumber of the organisation",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "BookingStage",
            "in": "query",
            "description": "Filter to apply on the workflow stage",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "MainAttendeeSerialNumber",
            "in": "query",
            "description": "Filter to apply on the SerialNumber of the main Attendee",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ExternalRef",
            "in": "query",
            "description": "Filter to apply on the ExternalRef",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "BookingExternalRef",
            "in": "query",
            "description": "Filter to apply on the BookingExternalRef",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Invoiced",
            "in": "query",
            "description": "Filter to apply on the Invoiced amount",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "Outstanding",
            "in": "query",
            "description": "Filter to apply on the Outstanding amount",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "Paid",
            "in": "query",
            "description": "Filter to apply on the Paid amount",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "InProgress",
            "in": "query",
            "description": "Filter to apply on the InProgress amount",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "ExpectedAdmin",
            "in": "query",
            "description": "Filter to apply on the ExpectedAdmin amount",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "ExpectedDonation",
            "in": "query",
            "description": "Filter to apply on the ExpectedDonation amount",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "ExpectedFees",
            "in": "query",
            "description": "Filter to apply on the ExpectedFees amount",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "ExpectedSponsorship",
            "in": "query",
            "description": "Filter to apply on the ExpectedSponsorship amount",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "ExpectedTotalValue",
            "in": "query",
            "description": "Filter to apply on the ExpectedTotalValue amount",
            "schema": {
              "type": "number",
              "format": "double"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EventBookingGetResponseCollectionResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventBookingGetResponseCollectionResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventBookingGetResponseCollectionResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "EventBooking"
        ],
        "summary": "Post Single Booking",
        "description": "Posts a single event booking record",
        "operationId": "PostEventBookingSingle",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The event booking.<p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/EventBookingPostRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EventBookingPostRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/EventBookingPostRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/EventBookingPostRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Valid for Posting"
          },
          "201": {
            "description": "Record posted successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EventBookingGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventBookingGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventBookingGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/eventBooking/bulk": {
      "post": {
        "tags": [
          "EventBooking"
        ],
        "summary": "Post Bookings In Bulk",
        "description": "Posts a collection of event Booking records",
        "operationId": "PostEventBookingBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The collection of event Bookings.<p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EventBookingPostRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EventBookingPostRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EventBookingPostRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EventBookingPostRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Records posted to import table. Import ID and record count returned to enable progress monitoring"
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/eventBooking/attendee/{bookingRef}": {
      "get": {
        "tags": [
          "EventBooking"
        ],
        "summary": "Get Attendee By Booking Ref",
        "description": "Gets the event attendee with the specified booking ref",
        "operationId": "GetEventAttendeeById",
        "parameters": [
          {
            "name": "bookingRef",
            "in": "path",
            "description": "The Booking Reference of the event attendee to get",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "IncludeAccommodation",
            "in": "query",
            "description": "Whether to include accommodation",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeActivities",
            "in": "query",
            "description": "Whether to include activities",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeSeatingPlans",
            "in": "query",
            "description": "Whether to include seating plans",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeSellingSpace",
            "in": "query",
            "description": "Whether to include selling space",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeSeminars",
            "in": "query",
            "description": "Whether to include seminars",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeTrainingCourses",
            "in": "query",
            "description": "Whether to include training courses",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeWorkshops",
            "in": "query",
            "description": "Whether to include workshops",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeProfiles",
            "in": "query",
            "description": "Whether to include profiles",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EventAttendeeGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventAttendeeGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventAttendeeGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Event Attendee record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "put": {
        "tags": [
          "EventBooking"
        ],
        "summary": "Put Single Additional Attendee",
        "description": "Updates a single event additional attendee record",
        "operationId": "PutEventAttendeeSingle",
        "parameters": [
          {
            "name": "bookingRef",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The event attendee.<p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/EventAttendeePutRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EventAttendeePutRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/EventAttendeePutRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/EventAttendeePutRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Valid for Posting"
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/eventBooking/attendee": {
      "get": {
        "tags": [
          "EventBooking"
        ],
        "summary": "Get Attendees",
        "description": "Returns a collection of event attendee records for the given page and filter",
        "operationId": "GetEventAttendees",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "BookingRef",
            "in": "query",
            "description": "The reference of the Booking",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "BookingId",
            "in": "query",
            "description": "The unique ID of the Booking",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EventId",
            "in": "query",
            "description": "The Id of the event",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SerialNumber",
            "in": "query",
            "description": "The serial number",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Name",
            "in": "query",
            "description": "Full name of the attendee",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "AttendeeType",
            "in": "query",
            "description": "The type of the attendee",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "AttendanceStatus",
            "in": "query",
            "description": "Attendance status of the associated attendee",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ConfirmationDate",
            "in": "query",
            "description": "Date of the attendance confirmation",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "FirstName",
            "in": "query",
            "description": "First Name of the attendee",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Keyname",
            "in": "query",
            "description": "Last name of the attendee",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "HasSeatingPreference",
            "in": "query",
            "description": "Specifies whether the attendee has a seating preference",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "ExternalRef",
            "in": "query",
            "description": "External reference",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Confidential",
            "in": "query",
            "description": "Specifies whether the attendee wishes to remain anonymous",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EventAttendeeGetResponseCollectionResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventAttendeeGetResponseCollectionResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventAttendeeGetResponseCollectionResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "EventBooking"
        ],
        "summary": "Post Single Additional Attendee",
        "description": "Posts a single event additional attendee record",
        "operationId": "PostEventAttendeeSingle",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The event attendee.\r\n            <p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/EventAttendeePostRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EventAttendeePostRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/EventAttendeePostRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/EventAttendeePostRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Valid for Posting"
          },
          "201": {
            "description": "Record posted successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EventAttendeeGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventAttendeeGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventAttendeeGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/eventBooking/attendee/bulk": {
      "post": {
        "tags": [
          "EventBooking"
        ],
        "summary": "Post Additional Attendees In Bulk",
        "description": "Posts a collection of event additional attendee records",
        "operationId": "PostEventAttendeeBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The collection of event attendees.<p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EventAttendeePostRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EventAttendeePostRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EventAttendeePostRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EventAttendeePostRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Records posted to import table. Import ID and record count returned to enable progress monitoring"
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/eventBooking/structure/{structureBookingRef}": {
      "get": {
        "tags": [
          "EventBooking"
        ],
        "summary": "Get Attendee structure By Structure Booking Ref",
        "description": "Gets the structures for an event attendee with the specified structure booking ref",
        "operationId": "GetEventAttendeeStructureById",
        "parameters": [
          {
            "name": "structureBookingRef",
            "in": "path",
            "description": "The unique structureBookingRef value of the event attendee structure to get",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EventAttendeeStructureGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventAttendeeStructureGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventAttendeeStructureGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Event Attendee Structure record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/eventBooking/structure": {
      "get": {
        "tags": [
          "EventBooking"
        ],
        "summary": "Get Attendee Structures",
        "description": "Returns a collection of event attendee structure records for the given page and filter",
        "operationId": "GetEventAttendeeStructures",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "BookingRef",
            "in": "query",
            "description": "The Id of the attendee",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "StructureId",
            "in": "query",
            "description": "The Id of the structure",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EventId",
            "in": "query",
            "description": "The Id of the event",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "StructureType",
            "in": "query",
            "description": "The type of the structure",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Description",
            "in": "query",
            "description": "The description of the structure",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "StartDate",
            "in": "query",
            "description": "The start date of the structure",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "EndDate",
            "in": "query",
            "description": "The end date of the structure",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "ExternalRef",
            "in": "query",
            "description": "The external reference of the structure",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ExternalRefType",
            "in": "query",
            "description": "The external reference type of the structure",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EventAttendeeStructureGetResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EventAttendeeStructureGetResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EventAttendeeStructureGetResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "EventBooking"
        ],
        "summary": "Post Single Structure for Attendee",
        "description": "Posts a single event attendee structure record",
        "operationId": "PostEventAttendeeStructureSingle",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The event attendee structure.<p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/EventAttendeeStructurePostRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EventAttendeeStructurePostRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/EventAttendeeStructurePostRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/EventAttendeeStructurePostRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Valid for Posting"
          },
          "201": {
            "description": "Record posted successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EventAttendeeStructureGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventAttendeeStructureGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventAttendeeStructureGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/eventBooking/structure/bulk": {
      "post": {
        "tags": [
          "EventBooking"
        ],
        "summary": "Post Structures For Attendees In Bulk",
        "description": "Posts a collection of event attendee structure records",
        "operationId": "PostEventAttendeeStructureBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The collection of event attendee structures.<p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EventAttendeeStructurePostRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EventAttendeeStructurePostRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EventAttendeeStructurePostRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EventAttendeeStructurePostRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Records posted to import table. Import ID and record count returned to enable progress monitoring"
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/eventBooking/profile/{profileId}": {
      "get": {
        "tags": [
          "EventBooking"
        ],
        "summary": "Get By Profile ID",
        "description": "Gets the event attendee profile record with the specified profile ID",
        "operationId": "GetEventAttendeeProfileById",
        "parameters": [
          {
            "name": "profileId",
            "in": "path",
            "description": "The profile ID of the profile to get",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EventAttendeeProfileGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventAttendeeProfileGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventAttendeeProfileGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Event Attendee Profile record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "delete": {
        "tags": [
          "EventBooking"
        ],
        "summary": "Delete Profile By ID",
        "description": "Deletes the Profile with the specified Profile Id",
        "operationId": "DeleteEventAttendeeProfileById",
        "parameters": [
          {
            "name": "profileId",
            "in": "path",
            "description": "The profile id of the profile record to delete",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Record deleted"
          },
          "400": {
            "description": "Record not valid for deletion"
          },
          "404": {
            "description": "Profile record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/eventBooking/profile": {
      "get": {
        "tags": [
          "EventBooking"
        ],
        "summary": "Get",
        "description": "Returns a collection of attendee and booking profile records for the given page and filter",
        "operationId": "GetEventAttendeeProfiles",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ProfileId",
            "in": "query",
            "description": "The ProfileId to filter on",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "BookingId",
            "in": "query",
            "description": "The BookingId to filter on",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "BookingRef",
            "in": "query",
            "description": "The BookingRef to filter on",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Category",
            "in": "query",
            "description": "The Category to filter on",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Name",
            "in": "query",
            "description": "The Name to filter on",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Value",
            "in": "query",
            "description": "The Value to filter on",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Priority",
            "in": "query",
            "description": "The Priority to filter on",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EffectiveFrom",
            "in": "query",
            "description": "The EffectiveFrom to filter on",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "EffectiveTo",
            "in": "query",
            "description": "The EffectiveTo to filter on",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "Notes",
            "in": "query",
            "description": "The Notes to filter on",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "BookingProfile",
            "in": "query",
            "description": "The BookingProfile to filter on",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EventAttendeeProfileGetResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EventAttendeeProfileGetResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EventAttendeeProfileGetResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "EventBooking"
        ],
        "summary": "Post Single",
        "description": "Posts a single EventAttendee profile record",
        "operationId": "PostEventAttendeeProfileSingle",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The EventAttendee profile to post.<p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/EventAttendeeProfilePostRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EventAttendeeProfilePostRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/EventAttendeeProfilePostRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/EventAttendeeProfilePostRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Valid for Posting"
          },
          "201": {
            "description": "Record posted successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EventAttendeeProfileGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventAttendeeProfileGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventAttendeeProfileGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/eventBooking/profile/bulk": {
      "post": {
        "tags": [
          "EventBooking"
        ],
        "summary": "Post In Bulk",
        "description": "Posts a collection of EventAttendee profile records",
        "operationId": "PostEventAttendeeProfileBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The collection of EventAttendee profiles.<p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EventAttendeeProfilePostRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EventAttendeeProfilePostRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EventAttendeeProfilePostRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EventAttendeeProfilePostRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Records posted to import table. Import ID and record count returned to enable progress monitoring"
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/events/{eventId}": {
      "get": {
        "tags": [
          "Event"
        ],
        "summary": "Get Event By Event Id",
        "description": "Gets the event with the specified Event Id",
        "operationId": "GetEventByEventId",
        "parameters": [
          {
            "name": "eventId",
            "in": "path",
            "description": "The event id of the event to get",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "IncludeAttendeeTypes",
            "in": "query",
            "description": "Whether to include attendee types",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeWebPaymentTypes",
            "in": "query",
            "description": "Whether to include web payment types",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeBudgets",
            "in": "query",
            "description": "Whether to include budgets",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAccommodation",
            "in": "query",
            "description": "Whether to include accommodation",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeSellingSpace",
            "in": "query",
            "description": "Whether to include selling spaces",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeActivities",
            "in": "query",
            "description": "Whether to include activities",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeSeminars",
            "in": "query",
            "description": "Whether to include seminars",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeWorkshops",
            "in": "query",
            "description": "Whether to include workshops",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeTrainingCourses",
            "in": "query",
            "description": "Whether to include training courses",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeSeatingPlans",
            "in": "query",
            "description": "Whether to include seating plans",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeEventCosts",
            "in": "query",
            "description": "Whether to include event costs",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeKeyContacts",
            "in": "query",
            "description": "Whether to include Key Contacts",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeEventProfiles",
            "in": "query",
            "description": "Whether to include event profiles",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EventGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Event record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "put": {
        "tags": [
          "Event"
        ],
        "summary": "Put Single Event",
        "description": "<p>Updates a single event record</p>\r\n<p>When including web attendee types in an event update it will remove all existing web attendee types for that event and replace them with the values from the incoming request.</p>",
        "operationId": "PutEventSingle",
        "parameters": [
          {
            "name": "eventId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The event",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/EventPutRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EventPutRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/EventPutRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/EventPutRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Valid for Posting"
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/events": {
      "get": {
        "tags": [
          "Event"
        ],
        "summary": "Get Events",
        "description": "Returns a collection of event records for the given page and filter",
        "operationId": "GetEvents",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "EventId",
            "in": "query",
            "description": "The Id of the event",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EventName",
            "in": "query",
            "description": "The name of the event",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EventType",
            "in": "query",
            "description": "The type of event - chargeable or free",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Type",
            "in": "query",
            "description": "The category type of event",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Description",
            "in": "query",
            "description": "The event description",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "LocationId",
            "in": "query",
            "description": "The id of the location for the event",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "LocationName",
            "in": "query",
            "description": "The name of the event location",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "StartDate",
            "in": "query",
            "description": "The start date for the event",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "StartTime",
            "in": "query",
            "description": "The start time of the event",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EndDate",
            "in": "query",
            "description": "The end date of the event",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "EndTime",
            "in": "query",
            "description": "The end time of the event",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "StageId",
            "in": "query",
            "description": "The unique ID for the workflow stage of the object",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "StageName",
            "in": "query",
            "description": "The name of the stage the event is at",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PublishToWeb",
            "in": "query",
            "description": "If the event should be published to the web",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "PublishOnWebUntil",
            "in": "query",
            "description": "When the event should be published on the web till",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EventNotes",
            "in": "query",
            "description": "Notes concerning the event",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SourceNotes",
            "in": "query",
            "description": "Notes concerning the Source Codes configured for the event",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "RecordOwner",
            "in": "query",
            "description": "The record owner",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "FinancialNotes",
            "in": "query",
            "description": "Notes concerning finance for the event.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "MailingPreference",
            "in": "query",
            "description": "The mailing preference to be used when new mailings are created for the event",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PublishSeminars",
            "in": "query",
            "description": "Should seminars be available on the web",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "PublishWorkshops",
            "in": "query",
            "description": "Should workshops be available on the web",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "PublishTrainingCourses",
            "in": "query",
            "description": "Should training courses be available on the web",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "PublishActivities",
            "in": "query",
            "description": "Should activities be available on the web",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "PublishAccommodation",
            "in": "query",
            "description": "Should accommodation be available on the web",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "JustGivingEventId",
            "in": "query",
            "description": "The ID for the event on Just Giving",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "HideAttendeeDetails",
            "in": "query",
            "description": "If attendee details should be hidden on the web",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "JGCustomCodeSource",
            "in": "query",
            "description": "Just Giving Custom Code Source",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "JGCustomCodeDestination",
            "in": "query",
            "description": "Just Giving Custom Code Destination",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "JGCustomCodeEventId",
            "in": "query",
            "description": "Just Giving Custom Code Event ID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "WebBookingFinalUrl",
            "in": "query",
            "description": "Web booking final Url",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "TargetFees",
            "in": "query",
            "description": "The target amount of fees for the event",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "TargetAdmin",
            "in": "query",
            "description": "The target amount of admin for the event",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "TargetDonation",
            "in": "query",
            "description": "The target donation amount for the event",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "TargetSponsorship",
            "in": "query",
            "description": "The target sponsorship amount for the event",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "TotalBudget",
            "in": "query",
            "description": "The total budget for the event",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "AttendeeTypeNotes",
            "in": "query",
            "description": "Notes regarding attendee types",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ExternalRef",
            "in": "query",
            "description": "External Ref for the event",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ExternalRefType",
            "in": "query",
            "description": "External Ref for the event",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EventGetResponseCollectionResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventGetResponseCollectionResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventGetResponseCollectionResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "Event"
        ],
        "summary": "Post Single Event",
        "description": "Posts a single event record",
        "operationId": "PostEventSingle",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "createLookups",
            "in": "query",
            "description": "\"True\" to create the lookups value if they don't exist",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The event.<p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/EventPostRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EventPostRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/EventPostRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/EventPostRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Valid for Posting"
          },
          "201": {
            "description": "Record posted successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EventGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/events/bulk": {
      "post": {
        "tags": [
          "Event"
        ],
        "summary": "Post Events In Bulk",
        "description": "Posts a collection of event records",
        "operationId": "PostEventBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The collection of events.<p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EventPostRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EventPostRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EventPostRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EventPostRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Records posted to import table. Import ID and record count returned to enable progress monitoring"
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/events/csv": {
      "get": {
        "tags": [
          "Event"
        ],
        "summary": "Get CSV Template for Events",
        "description": "Gets a template CSV file with the required headers for posting a Event CSV file",
        "operationId": "GetEventCSV",
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "Event"
        ],
        "summary": "Post Event CSV",
        "description": "Uploads a CSV file containing event records",
        "operationId": "PostEventCSV",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "file": {
                    "title": "File Title",
                    "type": "string",
                    "description": "The file to upload",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Posted to import tables. ImportId and RecordCount returned to check processing progress"
          },
          "400": {
            "description": "File not accepted for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/events/attendeeType/{attendeeTypeId}": {
      "get": {
        "tags": [
          "Event"
        ],
        "summary": "Get Attendee Type By Attendee Type Id",
        "description": "Gets the event attendee types with the specified Attendee Type Id",
        "operationId": "GetAttendeeTypeByAttendeeTypeId",
        "parameters": [
          {
            "name": "attendeeTypeId",
            "in": "path",
            "description": "The id of the attendee type to get",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "IncludeCosts",
            "in": "query",
            "description": "Whether to include costs",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EventAttendeeTypeGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventAttendeeTypeGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventAttendeeTypeGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Attendee Type record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "put": {
        "tags": [
          "Event"
        ],
        "summary": "Put Single EventAttendeeType",
        "description": "<p>Updates a single eventAttendeeType record</p>\r\n<p>When including costs in an attendee type update it will remove all existing costs for that attendee type and replace them with the values from the incoming request.</p>",
        "operationId": "PutEventAttendeeTypeSingle",
        "parameters": [
          {
            "name": "attendeeTypeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The attendee type",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/EventAttendeeTypePutRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EventAttendeeTypePutRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/EventAttendeeTypePutRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/EventAttendeeTypePutRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Valid for Posting"
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/events/attendeeType": {
      "get": {
        "tags": [
          "Event"
        ],
        "summary": "Get Attendee Types",
        "description": "Returns a collection of event attendee types records for the given page and filter",
        "operationId": "GetAttendeeTypes",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "AttendeeTypeId",
            "in": "query",
            "description": "The unique ID of the Attendee Type",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EventId",
            "in": "query",
            "description": "The Id of the event",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "AttendeeType",
            "in": "query",
            "description": "The type of attendee",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "MaxAllowed",
            "in": "query",
            "description": "The maximum capacity for the attendee type",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Allocated",
            "in": "query",
            "description": "The current allocated amount of attendees for the attendee type",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Remaining",
            "in": "query",
            "description": "The current remaining amount of attendees for the attendee type",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "WebName",
            "in": "query",
            "description": "The web name of the attendee type",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "WebAvailableStart",
            "in": "query",
            "description": "Date the attendee type starts being available on the web",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "WebAvailableEnd",
            "in": "query",
            "description": "Date the attendee type ends being available on the web",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "PlacesPerTicket",
            "in": "query",
            "description": "The number of allocated attendees per ticket",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MemberOnly",
            "in": "query",
            "description": "Whether the attendee type is for members only",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ExternalRef",
            "in": "query",
            "description": "External ref of the event attendee type",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ExternalRefType",
            "in": "query",
            "description": "Type fo external ref",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EventAttendeeTypeGetResponseCollectionResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventAttendeeTypeGetResponseCollectionResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventAttendeeTypeGetResponseCollectionResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "Event"
        ],
        "summary": "Post Single Attendee Type",
        "description": "Posts a single attendee type record",
        "operationId": "PostAttendeeTypeSingle",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "createLookups",
            "in": "query",
            "description": "\"True\" to indicate that the record needs to have lookups created",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The attendee type.<p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/EventAttendeeTypePostRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EventAttendeeTypePostRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/EventAttendeeTypePostRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/EventAttendeeTypePostRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Valid for Posting"
          },
          "201": {
            "description": "Record posted successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EventAttendeeTypeGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventAttendeeTypeGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventAttendeeTypeGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/events/attendeeType/bulk": {
      "post": {
        "tags": [
          "Event"
        ],
        "summary": "Post Attendee Types In Bulk",
        "description": "Posts a collection of attendee Type records",
        "operationId": "PostAttendeeTypeBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The collection of attendee types.<p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EventAttendeeTypePostRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EventAttendeeTypePostRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EventAttendeeTypePostRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EventAttendeeTypePostRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Records posted to import table. Import ID and record count returned to enable progress monitoring"
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/events/attendeeType/csv": {
      "get": {
        "tags": [
          "Event"
        ],
        "summary": "Get CSV Template for Attendee Types",
        "description": "Gets a template CSV file with the required headers for posting a Event Attendee Type CSV file",
        "operationId": "GetAttendeeTypeCSV",
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "Event"
        ],
        "summary": "Post Attendee Type CSV",
        "description": "Uploads a CSV file containing attendee type records",
        "operationId": "PostAttendeeTypeCSV",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "file": {
                    "title": "File Title",
                    "type": "string",
                    "description": "The file to upload",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Posted to import tables. ImportId and RecordCount returned to check processing progress"
          },
          "400": {
            "description": "File not accepted for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/events/structure/{structureId}": {
      "get": {
        "tags": [
          "Event"
        ],
        "summary": "Get Structure By Structure ID",
        "description": "Gets the event structure with the specified ID",
        "operationId": "GetStructureById",
        "parameters": [
          {
            "name": "structureId",
            "in": "path",
            "description": "The structure id of the event structure to get",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "IncludeSubstructures",
            "in": "query",
            "description": "Whether to include child structures, such as seats of a table.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeCosts",
            "in": "query",
            "description": "Whether to include event costs",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EventStructureGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventStructureGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventStructureGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Structure record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "put": {
        "tags": [
          "Event"
        ],
        "summary": "Put Single Structure",
        "description": "Updates a single Event Structure record",
        "operationId": "PutEventStructureSingle",
        "parameters": [
          {
            "name": "structureId",
            "in": "path",
            "description": "The id of the Event Structure to update",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The updated Event Structure",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/EventStructurePutRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EventStructurePutRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/EventStructurePutRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/EventStructurePutRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Event Structure updated",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EventStructureGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventStructureGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventStructureGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Event Structure record not found"
          },
          "400": {
            "description": "Record not valid for updating"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/events/structure": {
      "get": {
        "tags": [
          "Event"
        ],
        "summary": "Get Structure",
        "description": "Returns a collection of Event Structure records for the given page and filter",
        "operationId": "GetEventStructures",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "StructureId",
            "in": "query",
            "description": "The Id of the structure",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EventId",
            "in": "query",
            "description": "The event Id that the structure is related to",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ParentStructureId",
            "in": "query",
            "description": "The structure id that this sub structure is related to",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "StartDate",
            "in": "query",
            "description": "The date on which the structure starts",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "StartTime",
            "in": "query",
            "description": "The time at which the structure starts",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EndDate",
            "in": "query",
            "description": "The date on which the structure ends",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "EndTime",
            "in": "query",
            "description": "The time at which the structure ends",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PlacesTaken",
            "in": "query",
            "description": "The number of places taken",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PlacesRemaining",
            "in": "query",
            "description": "The number of places remaining",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Created",
            "in": "query",
            "description": "The date the structure was created",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "CreatedBy",
            "in": "query",
            "description": "The user that created the structure",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Modified",
            "in": "query",
            "description": "The date the structure was last modified",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "ModifiedBy",
            "in": "query",
            "description": "The user that last modified the structure",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "StructureType",
            "in": "query",
            "description": "The type of structure\r\n<ul><li>Must exist in the ''EventStructureType'' lookup </li></ul><ul><li> For new records this must not be empty</li></ul>",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Description",
            "in": "query",
            "description": "The description of the structure\r\n<ul><li>For new records this must not be empty</li></ul>",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Capacity",
            "in": "query",
            "description": "The total capacity for the structure\r\n<ul><li>For table structures this must be less than 1000</li></ul>",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Notes",
            "in": "query",
            "description": "The notes",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EventStructureGetResponseCollectionResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventStructureGetResponseCollectionResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventStructureGetResponseCollectionResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "Event"
        ],
        "summary": "Post Single Structure",
        "description": "Posts a single Event Structure record",
        "operationId": "PostEventStructureSingle",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The Event Structure.\r\n            <p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/EventStructurePostRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EventStructurePostRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/EventStructurePostRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/EventStructurePostRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Valid for Posting"
          },
          "201": {
            "description": "Record posted successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EventStructureGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventStructureGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventStructureGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/events/structure/bulk": {
      "post": {
        "tags": [
          "Event"
        ],
        "summary": "Post Structures In Bulk",
        "description": "Posts a collection of Event Structure records",
        "operationId": "PostEventStructureBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The collection of Event Structures.<p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EventStructurePostRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EventStructurePostRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EventStructurePostRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EventStructurePostRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Records posted to import table. Import ID and record count returned to enable progress monitoring"
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "put": {
        "tags": [
          "Event"
        ],
        "summary": "Put Structures In Bulk",
        "description": "Updates a collection of Event Structure records",
        "operationId": "PutEventStructureBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The updated Event Structures",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EventStructurePutBulkRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EventStructurePutBulkRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EventStructurePutBulkRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EventStructurePutBulkRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Posted to import tables. ImportId and RecordCount returned to check processing progress"
          },
          "400": {
            "description": "File not accepted for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/events/structure/csv": {
      "get": {
        "tags": [
          "Event"
        ],
        "summary": "Get CSV Template for Structures",
        "description": "Gets a template CSV file with the required headers for posting a Event Structure CSV file",
        "operationId": "GetEventStructureCSV",
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "Event"
        ],
        "summary": "Post Structure CSV",
        "description": "Uploads a CSV file containing Event Structure records",
        "operationId": "PostEventStructureCSV",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "file": {
                    "title": "File Title",
                    "type": "string",
                    "description": "The file to upload",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Posted to import tables. ImportId and RecordCount returned to check processing progress"
          },
          "400": {
            "description": "File not accepted for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/events/invitedInterested": {
      "get": {
        "tags": [
          "Event"
        ],
        "summary": "Get Invited Interested Contacts",
        "description": "Returns a collection of event invited / interested records for the given page and filter",
        "operationId": "GetInvitedInterested",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "EventId",
            "in": "query",
            "description": "The Id of the event",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SerialNumber",
            "in": "query",
            "description": "The serial number of the invited / interested contact",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Relationship",
            "in": "query",
            "description": "A description of the relationship between the contact and event",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "DateAdded",
            "in": "query",
            "description": "The date the contact was added as an invited / interested contact",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "Notes",
            "in": "query",
            "description": "Notes for the relationship",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "GroupType",
            "in": "query",
            "description": "The type of group that was invited to the event",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "GroupName",
            "in": "query",
            "description": "The name of the group that was invited to the event",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "NumberOfPlaces",
            "in": "query",
            "description": "The number of places required",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "AttendeeType",
            "in": "query",
            "description": "The attendee type of the invited / interested contact",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SponsorAmount",
            "in": "query",
            "description": "The sponsor amount for the invited / interested contact",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "SourceCode",
            "in": "query",
            "description": "The source code for the invited / interested contact",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "AttendeeStatus",
            "in": "query",
            "description": "If the invited contact has been added as an attendee",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EventInvitedInterestedGetResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EventInvitedInterestedGetResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EventInvitedInterestedGetResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/events/keyContact": {
      "get": {
        "tags": [
          "Event"
        ],
        "summary": "Get Key Contacts",
        "description": "Returns a collection of event key contact records for the given page and filter",
        "operationId": "GetKeyContacts",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "KeyContactId",
            "in": "query",
            "description": "The Id of the key contact",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EventId",
            "in": "query",
            "description": "The Id of the event",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SerialNumber",
            "in": "query",
            "description": "The serial number of the key contact",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Relationship",
            "in": "query",
            "description": "A description of the relationship between the contact and event",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "DateAdded",
            "in": "query",
            "description": "The date the contact was added as a key contact",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "Notes",
            "in": "query",
            "description": "Notes for the relationship",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EventKeyContactGetResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EventKeyContactGetResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EventKeyContactGetResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "Event"
        ],
        "summary": "Post Single Key Contact",
        "description": "Posts a single Event Key Contact record",
        "operationId": "PostEventKeyContactSingle",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The key contact.<p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/EventKeyContactPostRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EventKeyContactPostRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/EventKeyContactPostRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/EventKeyContactPostRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Valid for Posting"
          },
          "201": {
            "description": "Record posted successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EventKeyContactGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventKeyContactGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventKeyContactGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/events/keyContact/bulk": {
      "post": {
        "tags": [
          "Event"
        ],
        "summary": "Post Key Contacts In Bulk",
        "description": "Posts a collection of Event Key Contact records",
        "operationId": "PostEventKeyContactBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The collection of Event Key Contacts.<p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EventKeyContactPostRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EventKeyContactPostRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EventKeyContactPostRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EventKeyContactPostRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Records posted to import table. Import ID and record count returned to enable progress monitoring"
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "put": {
        "tags": [
          "Event"
        ],
        "summary": "Put Key Contacts In Bulk",
        "description": "Updates a collection of Event Key Contacts records",
        "operationId": "PutEventKeyContactBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The updated Event Key Contacts",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EventKeyContactPutBulkRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EventKeyContactPutBulkRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EventKeyContactPutBulkRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EventKeyContactPutBulkRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Posted to import tables. ImportId and RecordCount returned to check processing progress"
          },
          "400": {
            "description": "File not accepted for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/events/keyContact/csv": {
      "get": {
        "tags": [
          "Event"
        ],
        "summary": "Get CSV Template for Key Contacts",
        "description": "Gets a template CSV file with the required headers for posting a Event Key Contact CSV file",
        "operationId": "GetEventKeyContactCSV",
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "Event"
        ],
        "summary": "Post Event Key Contact CSV",
        "description": "Uploads a CSV file containing Event Key Contact records",
        "operationId": "PostEventKeyContactCSV",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "file": {
                    "title": "File Title",
                    "type": "string",
                    "description": "The file to upload",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Posted to import tables. ImportId and RecordCount returned to check processing progress"
          },
          "400": {
            "description": "File not accepted for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/events/keyContact/{keyContactId}": {
      "put": {
        "tags": [
          "Event"
        ],
        "summary": "Put Single Key Contact",
        "description": "Updates a single Event Key Contact record",
        "operationId": "PutEventKeyContactSingle",
        "parameters": [
          {
            "name": "keyContactId",
            "in": "path",
            "description": "The id of the Event Key Contact to update",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The updated Event Key Contact",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/EventKeyContactPutRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EventKeyContactPutRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/EventKeyContactPutRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/EventKeyContactPutRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Event Key Contact updated",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EventKeyContactGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventKeyContactGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventKeyContactGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Event Key Contact record not found"
          },
          "400": {
            "description": "Record not valid for updating"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "delete": {
        "tags": [
          "Event"
        ],
        "summary": "Delete Key Contact By ID",
        "description": "Deletes the key contact with the specified KeyContactId",
        "operationId": "DeleteKeyContactById",
        "parameters": [
          {
            "name": "keyContactId",
            "in": "path",
            "description": "The Key Contact id of the record to delete",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Record deleted"
          },
          "400": {
            "description": "Record not valid for deletion"
          },
          "404": {
            "description": "Key Contact record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/events/profile": {
      "get": {
        "tags": [
          "Event"
        ],
        "summary": "Get Event Profiles",
        "description": "Returns a collection of event profile records for the given page and filter",
        "operationId": "GetProfile",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ParameterId",
            "in": "query",
            "description": "The Id of the profile",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EventId",
            "in": "query",
            "description": "The Event Id of the event",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ParameterCategory",
            "in": "query",
            "description": "The type of profile for the Event",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ParameterName",
            "in": "query",
            "description": "The name of the profile",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ParameterValue",
            "in": "query",
            "description": "The value of the profile",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Priority",
            "in": "query",
            "description": "The priority of the profile",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EffectiveFrom",
            "in": "query",
            "description": "Valid from the specified date",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "EffectiveTo",
            "in": "query",
            "description": "Valid until the specified date",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "ParameterNote",
            "in": "query",
            "description": "Any other information about the profile",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Additional1",
            "in": "query",
            "description": "Additional field 1",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Additional2",
            "in": "query",
            "description": "Additional field 2",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Additional3",
            "in": "query",
            "description": "Additional field 3",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Additional4",
            "in": "query",
            "description": "Additional field 4",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Additional5",
            "in": "query",
            "description": "Additional field 5",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "BookingProfile",
            "in": "query",
            "description": "Flag to indicate whether the parameter is brought through from the event",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "AttendeeProfile",
            "in": "query",
            "description": "Flag to indicate whether the profile is brought through to each individual attendee for each booking against the specified event",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EventProfileGetResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EventProfileGetResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EventProfileGetResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "Event"
        ],
        "summary": "Post Single Profile",
        "description": "Posts a single Event Profile record",
        "operationId": "PostEventProfileSingle",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The profile.<p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/EventProfilePostRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EventProfilePostRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/EventProfilePostRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/EventProfilePostRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Valid for Posting"
          },
          "201": {
            "description": "Record posted successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EventProfileGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventProfileGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventProfileGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/events/profile/bulk": {
      "post": {
        "tags": [
          "Event"
        ],
        "summary": "Post Profile In Bulk",
        "description": "Posts a collection of Event Profile records",
        "operationId": "PostEvenProfileBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The collection of Event Profiles.<p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EventProfilePostRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EventProfilePostRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EventProfilePostRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EventProfilePostRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Records posted to import table. Import ID and record count returned to enable progress monitoring"
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "put": {
        "tags": [
          "Event"
        ],
        "summary": "Put Profiles In Bulk",
        "description": "Updates a collection of Event Profile records",
        "operationId": "PutEventProfileBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The updated Event Profiles",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EventProfilePutBulkRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EventProfilePutBulkRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EventProfilePutBulkRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EventProfilePutBulkRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Posted to import tables. ImportId and RecordCount returned to check processing progress"
          },
          "400": {
            "description": "File not accepted for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/events/profile/csv": {
      "get": {
        "tags": [
          "Event"
        ],
        "summary": "Get CSV Template for Profiles",
        "description": "Gets a template CSV file with the required headers for posting a Event Profile CSV file",
        "operationId": "GetEventProfileCSV",
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "Event"
        ],
        "summary": "Post Event Profile CSV",
        "description": "Uploads a CSV file containing Event Profile records",
        "operationId": "PostEventProfileCSV",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "file": {
                    "title": "File Title",
                    "type": "string",
                    "description": "The file to upload",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Posted to import tables. ImportId and RecordCount returned to check processing progress"
          },
          "400": {
            "description": "File not accepted for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/events/profile/{parameterId}": {
      "put": {
        "tags": [
          "Event"
        ],
        "summary": "Put Single Profile",
        "description": "Updates a single Event Profile record",
        "operationId": "PutEventProfileSingle",
        "parameters": [
          {
            "name": "parameterId",
            "in": "path",
            "description": "The id of the Event Profile to update",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The updated Event Profile",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/EventProfilePutRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EventProfilePutRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/EventProfilePutRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/EventProfilePutRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Event Profile updated",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EventProfileGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventProfileGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventProfileGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Event Profile record not found"
          },
          "400": {
            "description": "Record not valid for updating"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "delete": {
        "tags": [
          "Event"
        ],
        "summary": "Delete Event Profile By ID",
        "description": "Deletes the profile with the specified parameterId",
        "operationId": "DeleteProfileById",
        "parameters": [
          {
            "name": "parameterId",
            "in": "path",
            "description": "The Parameter id of the record to delete",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Record deleted"
          },
          "400": {
            "description": "Record not valid for deletion"
          },
          "404": {
            "description": "Key Contact record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/giftaiddeclarations/{declarationId}": {
      "get": {
        "tags": [
          "GiftAidDeclaration"
        ],
        "summary": "Get By Declaration ID",
        "description": "Gets the gift aid declaration with the specified declaration id",
        "operationId": "GetGiftAidDeclarationByDeclarationId",
        "parameters": [
          {
            "name": "declarationId",
            "in": "path",
            "description": "The declaration Id of the gift aid declaration to get",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "IncludeDeclarationAttachments",
            "in": "query",
            "description": "Whether to include attachments",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GiftAidDeclarationGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GiftAidDeclarationGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GiftAidDeclarationGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Gift Aid Declaration record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "put": {
        "tags": [
          "GiftAidDeclaration"
        ],
        "summary": "Put Single",
        "description": "Updates a single Gift Aid Declaration record",
        "operationId": "PutGiftAidDeclarationSingle",
        "parameters": [
          {
            "name": "declarationId",
            "in": "path",
            "description": "The id of the Gift Aid Declaration to update",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The updated Gift Aid Declaration",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/GiftAidDeclarationPutRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GiftAidDeclarationPutRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/GiftAidDeclarationPutRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/GiftAidDeclarationPutRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Gift Aid Declaration updated",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GiftAidDeclarationGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GiftAidDeclarationGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GiftAidDeclarationGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Gift Aid Declaration record not found"
          },
          "400": {
            "description": "Record not valid for updating"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/giftaiddeclarations": {
      "get": {
        "tags": [
          "GiftAidDeclaration"
        ],
        "summary": "Get",
        "description": "Returns a collection of gift aid declarations for the given page and filter",
        "operationId": "GetGiftAidDeclaration",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "DeclarationId",
            "in": "query",
            "description": "Filter to apply on DeclarationId",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SerialNumber",
            "in": "query",
            "description": "Filter to apply on serial number",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "DeclarationType",
            "in": "query",
            "description": "Filter to apply on declaration type",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "CharityName",
            "in": "query",
            "description": "Filter to apply on charity",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SourceCode",
            "in": "query",
            "description": "Filter to apply on source code",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "search",
            "in": "query",
            "description": "The search to apply to the collection (currently unused)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GiftAidDeclarationGetResponseCollectionResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GiftAidDeclarationGetResponseCollectionResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GiftAidDeclarationGetResponseCollectionResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "GiftAidDeclaration"
        ],
        "summary": "Post Single",
        "description": "<h2>Posts a single gift aid declaration record</h2>\r\n<p>The 'EffectiveFromDate' defaults to the start of the financial year and can be back dated a number of years, so that previous donations become claimable.</p>\r\n<ul>\r\n  <li>The 'GiftAidBackDate' LibraryDefinition indicates how mane years the gift aid declaration can be back dated</li>\r\n  <li>The 'FinancialYearEnd' LookupValue indicates the Day and Month at which the financial year starts.</li>\r\n</ul>\r\n<p>E.g.</p>\r\n<ul><li>When the 'GiftAidBackDate' LibraryDefinition is 4 and the 'FinancialYearEnd' LookupValue is '31 March'. \r\n  Then if the current date was 2018-01-01 the EffectiveFromDate would default to 2013-04-01 </li></ul>",
        "operationId": "PostGiftAidDeclarationSingle",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The gift Aid declaration\r\n            <p>When a SerialNumber has been provided in the import, the SerialNumber, Title, FirstName, KeyName, OtherInitial will be taken from the contacts record</p><p>If a SerialNumber has not been provided then a new contact will be created</p><p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/GiftAidDeclarationPostRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GiftAidDeclarationPostRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/GiftAidDeclarationPostRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/GiftAidDeclarationPostRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Valid for Posting",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "201": {
            "description": "Record posted successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GiftAidDeclarationGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GiftAidDeclarationGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GiftAidDeclarationGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/giftaiddeclarations/bulk": {
      "post": {
        "tags": [
          "GiftAidDeclaration"
        ],
        "summary": "Post In Bulk",
        "description": "<h2>Posts a collection of gift aid declaration records</h2>\r\n<p>The 'EffectiveFromDate' defaults to the start of the financial year and can be back dated a number of years, so that previous donations become claimable.</p>\r\n<ul>\r\n  <li>The 'GiftAidBackDate' LibraryDefinition indicates how mane years the gift aid declaration can be back dated</li>\r\n  <li>The 'FinancialYearEnd' LookupValue indicates the Day and Month at which the financial year starts.</li>\r\n</ul>\r\n<p>E.g.</p>\r\n<ul><li>When the 'GiftAidBackDate' LibraryDefinition is 4 and the 'FinancialYearEnd' LookupValue is '31 March'. \r\n  Then if the current date was 2018-01-01 the EffectiveFromDate would default to 2013-04-01 </li></ul>",
        "operationId": "PostGiftAidDeclarationBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The collection of gift Aid declarations\r\n            <p>When a SerialNumber has been provided in the import, the SerialNumber, Title, FirstName, KeyName, OtherInitial will be taken from the contacts record</p><p>If a SerialNumber has not been provided then a new contact will be created</p><p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/GiftAidDeclarationPostRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/GiftAidDeclarationPostRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/GiftAidDeclarationPostRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/GiftAidDeclarationPostRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Records posted to import table. Import ID and record count returned to enable progress monitoring"
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/giftaiddeclarations/csv": {
      "get": {
        "tags": [
          "GiftAidDeclaration"
        ],
        "summary": "Get CSV Template",
        "description": "Gets a template CSV file with the required headers for posting a gift aid declaration CSV file",
        "operationId": "GetGiftAidDeclarationCSV",
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "GiftAidDeclaration"
        ],
        "summary": "Gift Aid Declaration CSV File",
        "description": "Uploads a CSV file containing gift aid declaration records",
        "operationId": "PostGiftAidDeclarationCSV",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "file": {
                    "title": "File Title",
                    "type": "string",
                    "description": "The file to upload",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Posted to import tables. ImportId and RecordCount returned to check processing progress"
          },
          "400": {
            "description": "File not accepted for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/groups/{groupId}": {
      "get": {
        "tags": [
          "Groups"
        ],
        "summary": "Get By Group ID",
        "description": "Gets the group record with the specified group ID, along with group members when inclusions are added",
        "operationId": "GetGroupById",
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "description": "The group id of the group to get",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "IncludeGroupMembers",
            "in": "query",
            "description": "Whether to include members of the group",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GroupGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GroupGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GroupGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Group record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/groups": {
      "get": {
        "tags": [
          "Groups"
        ],
        "summary": "Get",
        "description": "Returns a collection of group records for the given page and filter",
        "operationId": "GetGroups",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Category",
            "in": "query",
            "description": "Filter to apply on category",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Priority",
            "in": "query",
            "description": "Filter to apply on priority",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Title",
            "in": "query",
            "description": "Filter to apply on title",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Archived",
            "in": "query",
            "description": "Filter to apply on Archived",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "SavedSearch",
            "in": "query",
            "description": "A flag whether the group has a saved search",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "WorkspacePublish",
            "in": "query",
            "description": "A flag whether the group should be shown in workspace",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GroupGetResponseCollectionResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GroupGetResponseCollectionResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GroupGetResponseCollectionResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "Groups"
        ],
        "summary": "Post Single",
        "description": "<h2>Posts a single group record</h2>\r\n<p>Importing Groups with Group Members.</p>\r\n<ul>\r\n  <li>Group members can be included when posting a group, and will inherit the Group ID of the parent group.</li>\r\n  <li>For bulk importing large numbers of group members, it is better to use the ContactGroup API resource.</li>\r\n</ul>",
        "operationId": "PostGroupSingle",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The group. <p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/GroupPostRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GroupPostRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/GroupPostRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/GroupPostRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Valid for Posting"
          },
          "201": {
            "description": "Record posted successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GroupGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GroupGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GroupGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/groups/bulk": {
      "post": {
        "tags": [
          "Groups"
        ],
        "summary": "Post In Bulk",
        "description": "<h2>Posts a collection of group records</h2>\r\n<p>Importing Groups with Group Members.</p>\r\n<ul>\r\n  <li>Group members can be included when posting a group, and will inherit the Group ID of the parent group.</li>\r\n  <li>For bulk importing large numbers of group members, it is better to use the ContactGroup API resource.</li>\r\n</ul>",
        "operationId": "PostGroupsBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The collection of groups\r\n            <p>Select the <b>Schema</b> tab below, rather than the description tab, for details of defaults and validations</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/GroupPostRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/GroupPostRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/GroupPostRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/GroupPostRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Records posted to import table. Import ID and record count returned to enable progress monitoring"
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/groups/csv": {
      "get": {
        "tags": [
          "Groups"
        ],
        "summary": "Get CSV Template",
        "description": "Gets a template CSV file with the required headers for posting a Group CSV file",
        "operationId": "GetGroupCSV",
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "Groups"
        ],
        "summary": "Post Group CSV File",
        "description": "<h2>Uploads a CSV file containing group records</h2>\r\n<p>Importing Groups with Group Members.</p>\r\n<ul>\r\n  <li>When uploading a CSV, only 10 group members per group can be added.</li>\r\n  <li>For bulk importing large numbers of group members, it is better to use the ContactGroup API resource.</li>\r\n</ul>",
        "operationId": "PostGroupCSV",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "file": {
                    "title": "File Title",
                    "type": "string",
                    "description": "The file to upload",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Posted to import tables. ImportId and RecordCount returned to check processing progress"
          },
          "400": {
            "description": "File not accepted for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/imports/status/{importId}": {
      "get": {
        "tags": [
          "Import"
        ],
        "summary": "Get By Import Id",
        "description": "Gets the status of an import given an importId",
        "operationId": "GetImportStatus",
        "parameters": [
          {
            "name": "importId",
            "in": "path",
            "description": "The id of the import",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ImportGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImportGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImportGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Import record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/imports/status": {
      "get": {
        "tags": [
          "Import"
        ],
        "summary": "Get",
        "description": "Gets the status of a set of imports given a filter and pagination details",
        "operationId": "GetImportCollectionStatus",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "required": true,
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "required": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "required": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "required": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Status",
            "in": "query",
            "description": "Filter to apply on status",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ImportId",
            "in": "query",
            "description": "Filter to apply on importId",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ResourceName",
            "in": "query",
            "description": "Filter to apply on status",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "RequestOrigin",
            "in": "query",
            "description": "Filter to apply on status",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ValidationOnly",
            "in": "query",
            "description": "If the import was validating only",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ImportType",
            "in": "query",
            "description": "The HttpsMethod of the request",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ImportGetResponseCollectionResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImportGetResponseCollectionResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImportGetResponseCollectionResponse"
                }
              }
            }
          },
          "404": {
            "description": "Validation errors not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/imports/validationErrors/{importId}": {
      "get": {
        "tags": [
          "Import"
        ],
        "summary": "Get Validation Errors",
        "description": "Gets the validation errors of an import given an importId",
        "operationId": "GetImportValidation",
        "parameters": [
          {
            "name": "importId",
            "in": "path",
            "description": "The id of the import",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SqlValidationError"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SqlValidationError"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SqlValidationError"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Validation errors not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/imports/{importId}": {
      "get": {
        "tags": [
          "Import"
        ],
        "summary": "Get Imported Data",
        "description": "Gets the data imported for an importId given pagination details",
        "operationId": "GetImportedData",
        "parameters": [
          {
            "name": "importId",
            "in": "path",
            "description": "The id of the import",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "required": true,
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "required": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "required": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "required": true,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": { }
              },
              "application/json": {
                "schema": { }
              },
              "text/json": {
                "schema": { }
              }
            }
          },
          "404": {
            "description": "Validation errors not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/invoices/{invoiceId}": {
      "get": {
        "tags": [
          "Invoice"
        ],
        "summary": "Get Invoice",
        "description": "Gets the invoice with the specified Invoice ID",
        "operationId": "GetInvoiceByInvoiceId",
        "parameters": [
          {
            "name": "invoiceId",
            "in": "path",
            "description": "The invoice id of the invoice to get",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "IncludeInvoiceItem",
            "in": "query",
            "description": "Whether to include the invoice item lines",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Invoice record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "put": {
        "tags": [
          "Invoice"
        ],
        "summary": "Put Single Invoice",
        "description": "Updates a single invoice record",
        "operationId": "PutInvoiceSingle",
        "parameters": [
          {
            "name": "invoiceId",
            "in": "path",
            "description": "The Id for the invoice to update",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The updated invoice",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/InvoicePutRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoicePutRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoicePutRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/InvoicePutRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/invoices": {
      "get": {
        "tags": [
          "Invoice"
        ],
        "summary": "Get Invoices",
        "description": "Returns a collection of invoices for the given page and filter",
        "operationId": "GetInvoices",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "InvoiceId",
            "in": "query",
            "description": "Filter to apply on invoiceId",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SerialNumber",
            "in": "query",
            "description": "Filter to apply on serial number",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "InvoiceType",
            "in": "query",
            "description": "Filter to apply on invoice type",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Status",
            "in": "query",
            "description": "Filter to apply on status",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PurchaseOrderNo",
            "in": "query",
            "description": "Filter to apply on purchase order number",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Company",
            "in": "query",
            "description": "Filter to apply on the company code",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "DataHubId",
            "in": "query",
            "description": "Filter to apply on Data Hub ID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "search",
            "in": "query",
            "description": "The search to apply to the collection",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceGetResponseCollectionResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceGetResponseCollectionResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceGetResponseCollectionResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/invoices/bulk": {
      "put": {
        "tags": [
          "Invoice"
        ],
        "summary": "Put Bulk",
        "description": "Updates a collection of invoice records",
        "operationId": "PutInvoiceBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "If the update is only for validation",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The updated Invoices",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/InvoiceWithInvoiceIdPutRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/InvoiceWithInvoiceIdPutRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/InvoiceWithInvoiceIdPutRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/InvoiceWithInvoiceIdPutRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Posted to import tables. ImportId and RecordCount returned to check processing progress"
          },
          "400": {
            "description": "File not accepted for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/legacies/{legacyId}": {
      "get": {
        "tags": [
          "Legacy"
        ],
        "summary": "Get By Id",
        "description": "Gets the legacy with the specified id",
        "operationId": "GetLegacyById",
        "parameters": [
          {
            "name": "legacyId",
            "in": "path",
            "description": "The legacy id of the legacy to get",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "IncludeLegacyItems",
            "in": "query",
            "description": "Whether to include legacy items",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeBeneficiaries",
            "in": "query",
            "description": "Whether to include beneficiaries",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeActions",
            "in": "query",
            "description": "Whether to include actions",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeCommunications",
            "in": "query",
            "description": "Whether to include communications",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeLegacyItemAllocations",
            "in": "query",
            "description": "Whether to include legacy item allocations (destination codes) on each legacy item.\r\nOnly applies when IncludeLegacyItems is also true.",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/LegacyGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LegacyGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/LegacyGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Legacy record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "put": {
        "tags": [
          "Legacy"
        ],
        "summary": "Put Single",
        "description": "Updates a single legacy record",
        "operationId": "PutLegacySingle",
        "parameters": [
          {
            "name": "legacyId",
            "in": "path",
            "description": "The id of the legacy to update",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The updated legacy",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/LegacyPutRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LegacyPutRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/LegacyPutRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/LegacyPutRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Legacy updated",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/LegacyGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LegacyGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/LegacyGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Legacy record not found"
          },
          "400": {
            "description": "Record not valid for updating"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "delete": {
        "tags": [
          "Legacy"
        ],
        "summary": "Delete By ID",
        "description": "Deletes the legacy with the specified id",
        "operationId": "DeleteLegacyById",
        "parameters": [
          {
            "name": "legacyId",
            "in": "path",
            "description": "The legacy id of the legacy record to delete",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Record deleted"
          },
          "400": {
            "description": "Record not valid for deletion"
          },
          "404": {
            "description": "Legacy record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/legacies": {
      "get": {
        "tags": [
          "Legacy"
        ],
        "summary": "Get",
        "description": "Returns a collection of legacy records for the given page and filter",
        "operationId": "GetLegacies",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "LegacyId",
            "in": "query",
            "description": "The unique ID for the legacy record",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SerialNumber",
            "in": "query",
            "description": "The serial number of the contact associated with the legacy",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Created",
            "in": "query",
            "description": "The date the record was created",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "CreatedBy",
            "in": "query",
            "description": "The user who created the record",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Description",
            "in": "query",
            "description": "A description of the legacy",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Stage",
            "in": "query",
            "description": "The current stage of the legacy\r\n<ul><li>Must be one of: 'Enquiry', 'Pledged', 'Registered', 'In Progress', 'Complete'</li></ul>",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "DoNotPublish",
            "in": "query",
            "description": "Whether the legacy should not be published",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "NotifiedDate",
            "in": "query",
            "description": "The date the organisation was notified of the legacy",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "FinalisedDate",
            "in": "query",
            "description": "The date the legacy was finalised",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "StaffContact",
            "in": "query",
            "description": "The staff contact responsible for the legacy",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SourceCode",
            "in": "query",
            "description": "The source code for the legacy\r\n<ul><li>Must exist as an existing source code</li></ul>",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Notes",
            "in": "query",
            "description": "Notes about the legacy",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ExecutorType",
            "in": "query",
            "description": "The type of executor for the legacy\r\n<ul><li>Must exist in the 'Executor Type' lookup</li></ul>",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "WillDate",
            "in": "query",
            "description": "The date the will was made",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "ProbateDate",
            "in": "query",
            "description": "The date probate was granted",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "CodicilDate",
            "in": "query",
            "description": "The date of the codicil",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "Codicils",
            "in": "query",
            "description": "Details of any codicils",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "MemorialDetails",
            "in": "query",
            "description": "Details of any memorial arrangements",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "NetEstateValue",
            "in": "query",
            "description": "The net value of the estate",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "GrossEstateValue",
            "in": "query",
            "description": "The gross value of the estate",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "ShareHoldingsAndProperty",
            "in": "query",
            "description": "Details of any share holdings and property",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "DeedOfIndemnity",
            "in": "query",
            "description": "Whether a deed of indemnity has been provided",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "DeedOfVariation",
            "in": "query",
            "description": "Whether a deed of variation has been provided",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "DeedOfVariationDetails",
            "in": "query",
            "description": "Details of the deed of variation",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Withdrawn",
            "in": "query",
            "description": "The date the legacy was withdrawn\r\n<ul><li>WithdrawnBy must be set if Withdrawn is set</li></ul>",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "WithdrawnBy",
            "in": "query",
            "description": "The user who withdrew the legacy\r\n<ul><li>Withdrawn must be set if WithdrawnBy is set</li></ul>",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "LifeExpectancy",
            "in": "query",
            "description": "The life expectancy in years",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "Modified",
            "in": "query",
            "description": "The date the record was last modified",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "ModifiedBy",
            "in": "query",
            "description": "The user who last modified the record\r\n<ul><li>Default is API</li></ul>",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LegacyGetResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LegacyGetResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LegacyGetResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "Legacy"
        ],
        "summary": "Post Single",
        "description": "Posts a single legacy record",
        "operationId": "PostLegacySingle",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The legacy. <p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/LegacyPostRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LegacyPostRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/LegacyPostRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/LegacyPostRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Valid for Posting"
          },
          "201": {
            "description": "Record posted successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/LegacyGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LegacyGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/LegacyGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/legacies/bulk": {
      "post": {
        "tags": [
          "Legacy"
        ],
        "summary": "Post In Bulk",
        "description": "Posts a collection of legacy records",
        "operationId": "PostLegacyBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The collection of legacies.\r\n            <p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/LegacyPostRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/LegacyPostRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/LegacyPostRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/LegacyPostRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Records posted to import table. Import ID and record count returned to enable progress monitoring"
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "put": {
        "tags": [
          "Legacy"
        ],
        "summary": "Put Bulk",
        "description": "Updates a collection of legacy records",
        "operationId": "PutLegacyBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The updated legacies",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/LegacyPutBulkRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/LegacyPutBulkRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/LegacyPutBulkRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/LegacyPutBulkRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Posted to import tables. ImportId and RecordCount returned to check processing progress"
          },
          "400": {
            "description": "File not accepted for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/legacies/csv": {
      "get": {
        "tags": [
          "Legacy"
        ],
        "summary": "Get CSV Template",
        "description": "Gets a template CSV file with the required headers for posting a legacy CSV file",
        "operationId": "GetLegacyCSV",
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "Legacy"
        ],
        "summary": "Post Legacies CSV File",
        "description": "Uploads a CSV file containing legacy records",
        "operationId": "PostLegacyCSV",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "file": {
                    "title": "File Title",
                    "type": "string",
                    "description": "The file to upload",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Posted to import tables. ImportId and RecordCount returned to check processing progress"
          },
          "400": {
            "description": "File not accepted for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/legacyItems/{itemId}": {
      "get": {
        "tags": [
          "LegacyItem"
        ],
        "summary": "Get By Id",
        "description": "Gets the legacy item with the specified id",
        "operationId": "GetLegacyItemById",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The item id of the legacy item to get",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "IncludeLegacyItemAllocations",
            "in": "query",
            "description": "Whether to include legacy item allocations (destination codes)",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/LegacyItemGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LegacyItemGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/LegacyItemGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Legacy Item record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "put": {
        "tags": [
          "LegacyItem"
        ],
        "summary": "Put Single",
        "description": "Updates a single legacy item record",
        "operationId": "PutLegacyItemSingle",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The id of the legacy item to update",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The updated legacy item",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/LegacyItemPutRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LegacyItemPutRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/LegacyItemPutRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/LegacyItemPutRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Legacy Item updated",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/LegacyItemGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LegacyItemGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/LegacyItemGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Legacy Item record not found"
          },
          "400": {
            "description": "Record not valid for updating"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "delete": {
        "tags": [
          "LegacyItem"
        ],
        "summary": "Delete By ID",
        "description": "Deletes the legacy item with the specified id",
        "operationId": "DeleteLegacyItemById",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The item id of the legacy item record to delete",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Record deleted"
          },
          "400": {
            "description": "Record not valid for deletion"
          },
          "404": {
            "description": "Legacy Item record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/legacyItems": {
      "get": {
        "tags": [
          "LegacyItem"
        ],
        "summary": "Get",
        "description": "Returns a collection of legacy item records for the given page and filter",
        "operationId": "GetLegacyItems",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ItemId",
            "in": "query",
            "description": "The unique ID for the legacy item record",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "LegacyId",
            "in": "query",
            "description": "The unique ID of the parent legacy record",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Created",
            "in": "query",
            "description": "The date the record was created",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "CreatedBy",
            "in": "query",
            "description": "The user who created the record",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Description",
            "in": "query",
            "description": "A description of the legacy item",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Type",
            "in": "query",
            "description": "The type of legacy\r\n<ul><li>Must exist in the 'Legacy Type' lookup</li></ul>",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EstimatedValue",
            "in": "query",
            "description": "The estimated value of the legacy item",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "Range",
            "in": "query",
            "description": "The range of the legacy item value",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ItemType",
            "in": "query",
            "description": "The item type of the legacy item\r\n<ul><li>Must exist in the 'Legacy Item Type' lookup</li></ul>",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PaymentMethod",
            "in": "query",
            "description": "The payment method for the legacy item\r\n<ul><li>Must exist in the 'Payment Type' lookup</li></ul>",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EstimatedReceiptDate",
            "in": "query",
            "description": "The estimated date of receipt for the legacy item",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "ActualReceiptDate",
            "in": "query",
            "description": "The actual date of receipt for the legacy item",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "TaxClaimable",
            "in": "query",
            "description": "Whether the legacy item is tax claimable",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Currency",
            "in": "query",
            "description": "The currency of the legacy item",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SourceCode",
            "in": "query",
            "description": "The source code for the legacy item\r\n<ul><li>Must exist as an existing source code</li></ul>",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Status",
            "in": "query",
            "description": "The status of the legacy item",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Notes",
            "in": "query",
            "description": "Notes about the legacy item",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Modified",
            "in": "query",
            "description": "The date the record was last modified",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "ModifiedBy",
            "in": "query",
            "description": "The user who last modified the record\r\n<ul><li>Default is API</li></ul>",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LegacyItemGetResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LegacyItemGetResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LegacyItemGetResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "LegacyItem"
        ],
        "summary": "Post Single",
        "description": "Posts a single legacy item record",
        "operationId": "PostLegacyItemSingle",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The legacy item. <p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/LegacyItemPostRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LegacyItemPostRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/LegacyItemPostRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/LegacyItemPostRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Valid for Posting"
          },
          "201": {
            "description": "Record posted successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/LegacyItemGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LegacyItemGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/LegacyItemGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/legacyItems/bulk": {
      "post": {
        "tags": [
          "LegacyItem"
        ],
        "summary": "Post In Bulk",
        "description": "Posts a collection of legacy item records",
        "operationId": "PostLegacyItemBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The collection of legacy items.\r\n            <p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/LegacyItemPostRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/LegacyItemPostRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/LegacyItemPostRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/LegacyItemPostRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Records posted to import table. Import ID and record count returned to enable progress monitoring"
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "put": {
        "tags": [
          "LegacyItem"
        ],
        "summary": "Put Bulk",
        "description": "Updates a collection of legacy item records",
        "operationId": "PutLegacyItemBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The updated legacy items",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/LegacyItemPutBulkRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/LegacyItemPutBulkRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/LegacyItemPutBulkRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/LegacyItemPutBulkRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Posted to import tables. ImportId and RecordCount returned to check processing progress"
          },
          "400": {
            "description": "File not accepted for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/legacyItems/csv": {
      "get": {
        "tags": [
          "LegacyItem"
        ],
        "summary": "Get CSV Template",
        "description": "Gets a template CSV file with the required headers for posting a legacy item CSV file",
        "operationId": "GetLegacyItemCSV",
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "LegacyItem"
        ],
        "summary": "Post Legacy Items CSV File",
        "description": "Uploads a CSV file containing legacy item records",
        "operationId": "PostLegacyItemCSV",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "file": {
                    "title": "File Title",
                    "type": "string",
                    "description": "The file to upload",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Posted to import tables. ImportId and RecordCount returned to check processing progress"
          },
          "400": {
            "description": "File not accepted for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/logs/error/{errorId}": {
      "get": {
        "tags": [
          "Log"
        ],
        "summary": "Get",
        "description": "Gets the error for the given error id",
        "operationId": "GetErrorById",
        "parameters": [
          {
            "name": "errorId",
            "in": "path",
            "description": "The error id within the log",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Error record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/lookupvalue/{lookupName}": {
      "get": {
        "tags": [
          "LookupValue"
        ],
        "summary": "Get By Lookup Name",
        "description": "Gets the Lookup and Lookup Values with the specified Lookup Name",
        "operationId": "GetLookupValueByLookupName",
        "parameters": [
          {
            "name": "lookupName",
            "in": "path",
            "description": "The name of the lookup to get",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/LookupGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LookupGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/LookupGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Lookup record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/lookupvalue": {
      "get": {
        "tags": [
          "LookupValue"
        ],
        "summary": "Get",
        "description": "Returns a collection of lookup Values for the given page and filter",
        "operationId": "GetLookups",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "LookupName",
            "in": "query",
            "description": "The LookupName of the Lookup",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "LookupType",
            "in": "query",
            "description": "The record type the Lookup applies to",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "LookupField",
            "in": "query",
            "description": "The Field that the lookup Applies to",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "NotUserEditable",
            "in": "query",
            "description": "Whether the Lookup is user editable",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Created",
            "in": "query",
            "description": "When the record was created",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "CreatedBy",
            "in": "query",
            "description": "The user who created the record",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Modified",
            "in": "query",
            "description": "The date the record was last modified",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "ModifiedBy",
            "in": "query",
            "description": "The user who last modified the record",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SingleValueLookup",
            "in": "query",
            "description": "Whether the Lookup will only contain a single Value",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "RecordOwner",
            "in": "query",
            "description": "The owner of the Lookup record",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LookupGetResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LookupGetResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LookupGetResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "LookupValue"
        ],
        "summary": "Post Single Lookup Value",
        "operationId": "PostLookupValueSingle",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The lookup.<p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/LookupValuePostRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LookupValuePostRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/LookupValuePostRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/LookupValuePostRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Valid for Posting"
          },
          "201": {
            "description": "Record posted successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/LookupValueGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LookupValueGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/LookupValueGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/lookupvalue/bulk": {
      "post": {
        "tags": [
          "LookupValue"
        ],
        "summary": "Post Lookup Value In Bulk",
        "description": "Posts a collection of Lookup Value records",
        "operationId": "PostLookupValueBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The collection of Lookup Values.<p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/LookupValuePostRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/LookupValuePostRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/LookupValuePostRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/LookupValuePostRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Records posted to import table. Import ID and record count returned to enable progress monitoring"
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/lookupvalue/csv": {
      "get": {
        "tags": [
          "LookupValue"
        ],
        "summary": "Get CSV Template",
        "description": "Gets a template CSV file with the required headers for posting a lookup value CSV file",
        "operationId": "GetLookupValueCSV",
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "LookupValue"
        ],
        "summary": "Post Lookup Value CSV File",
        "description": "Uploads a CSV file containing lookup value records",
        "operationId": "PostLookupValueCSV",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "file": {
                    "title": "File Title",
                    "type": "string",
                    "description": "The file to upload",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Posted to import tables. ImportId and RecordCount returned to check processing progress"
          },
          "400": {
            "description": "File not accepted for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/memberships/{membershipDetailId}": {
      "get": {
        "tags": [
          "Membership"
        ],
        "summary": "Get Single",
        "description": "Gets the current membership details for the given membership id, in addition to any specified inclusion details",
        "operationId": "GetMembershipById",
        "parameters": [
          {
            "name": "membershipDetailId",
            "in": "path",
            "description": "The membership detail id of the membership to get",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "IncludeAdditionalMembers",
            "in": "query",
            "description": "Whether to include additional members",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeCriteriaBasedFees",
            "in": "query",
            "description": "Whether to include criteria fees",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeFixedFees",
            "in": "query",
            "description": "Whether to include fixed fees",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeInclusiveBenefits",
            "in": "query",
            "description": "Whether to include inclusive benefits",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeMembershipCards",
            "in": "query",
            "description": "Whether to include membership cards",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeOptionalBenefits",
            "in": "query",
            "description": "Whether to include optional benefits",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeDiscounts",
            "in": "query",
            "description": "Whether to include discounts",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludePreferences",
            "in": "query",
            "description": "Whether to include communication preferences",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeProfiles",
            "in": "query",
            "description": "Whether to include contact profiles",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MembershipGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MembershipGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MembershipGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Membership record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "put": {
        "tags": [
          "Membership"
        ],
        "summary": "Put Single",
        "description": "Updates a single membership record",
        "operationId": "PutMembershipSingle",
        "parameters": [
          {
            "name": "membershipDetailId",
            "in": "path",
            "description": "The membership detail id of the membership to update",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the records should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The updated membership",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/MembershipPutRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MembershipPutRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/MembershipPutRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MembershipPutRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Membership updated",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MembershipGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MembershipGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MembershipGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Membership record not found"
          },
          "400": {
            "description": "Record not valid for updating"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "delete": {
        "tags": [
          "Membership"
        ],
        "summary": "Delete Membership Period",
        "description": "<h2>Delete a Membership Period (MembershipDetail)</h2>\r\n        <p>Deletion will not occur if:</p>\r\n        <ul><li>The Membership Period has a Payment Type of Direct Debit, and syncing occurs with Access Payments</li>\r\n        <li>The Membership Period is the main membership for that member</li>\r\n        <li>The Membership Period has any transactions against it</li>\r\n        <li>The Membership Period is not either Pending or Set Criteria Fees</li></ul>",
        "operationId": "DeleteMembershipDetail",
        "parameters": [
          {
            "name": "membershipDetailId",
            "in": "path",
            "description": "ID of the Membership Period to delete",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not deleted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Membership Period deleted OK"
          },
          "400": {
            "description": "Unable to delete Membership Period, see validation errors"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Could not find Membership Period"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/memberships": {
      "get": {
        "tags": [
          "Membership"
        ],
        "summary": "Get Bulk",
        "description": "Returns a collection of membership records for the given page, filter and search criteria",
        "operationId": "GetMemberships",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "MembershipId",
            "in": "query",
            "description": "Filter to apply on membership id",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "MembershipDetailId",
            "in": "query",
            "description": "Filter to apply on membership detail id",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SerialNumber",
            "in": "query",
            "description": "Filter to apply on serial number",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SchemeId",
            "in": "query",
            "description": "Filter to apply on type id",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PeriodId",
            "in": "query",
            "description": "Filter to apply on period id",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "BandId",
            "in": "query",
            "description": "Filter to apply on band id",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SchemeIsArchived",
            "in": "query",
            "description": "A flag to indicate if the scheme has been archived",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "MembershipStatus",
            "in": "query",
            "description": "Filter to apply on membership status",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PayerSerialNumber",
            "in": "query",
            "description": "Filter to apply on the payer serial number",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MembershipGetResponseCollectionResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MembershipGetResponseCollectionResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MembershipGetResponseCollectionResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "Membership"
        ],
        "summary": "Post Single",
        "description": "Posts a single membership record",
        "operationId": "PostMembershipSingle",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "createLookups",
            "in": "query",
            "description": "\"True\" to indicate that new lookups and source codes should be created rather than validated against",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The membership.<p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/MembershipPostRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MembershipPostRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/MembershipPostRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MembershipPostRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Valid for Posting"
          },
          "201": {
            "description": "Record posted successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MembershipGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MembershipGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MembershipGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/memberships/bulk": {
      "post": {
        "tags": [
          "Membership"
        ],
        "summary": "Post Bulk",
        "description": "Posts a collection of memberships records",
        "operationId": "PostMembershipBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "createLookups",
            "in": "query",
            "description": "\"True\" to indicate that new lookups and source codes should be created rather than validated against",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The collection of memberships.\r\n            <p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/MembershipPostRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/MembershipPostRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/MembershipPostRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/MembershipPostRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Records posted to import table. Import ID and record count returned to enable progress monitoring"
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/memberships/csv": {
      "get": {
        "tags": [
          "Membership"
        ],
        "summary": "Get CSV Template",
        "description": "Gets a template CSV file with the required headers for posting a Membership CSV file",
        "operationId": "GetMembershipCSV",
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "Membership"
        ],
        "summary": "Post CSV",
        "description": "Uploads a CSV file containing membership records",
        "operationId": "PostMembershipCSV",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "createLookups",
            "in": "query",
            "description": "\"True\" to indicate that new lookups and source codes should be created rather than validated against",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "file": {
                    "title": "File Title",
                    "type": "string",
                    "description": "The file to upload",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Posted to import tables. ImportId and RecordCount returned to check processing progress"
          },
          "400": {
            "description": "File not accepted for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/memberships/autorenew/{membershipId}": {
      "post": {
        "tags": [
          "Membership"
        ],
        "summary": "Auto Renew Single",
        "description": "Automatically renews a single membership record",
        "operationId": "RenewMembershipSingle",
        "parameters": [
          {
            "name": "membershipId",
            "in": "path",
            "description": "The membership id of the membership to renew",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Record renewed",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MembershipGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MembershipGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MembershipGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Record not renewing"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/memberships/autorenew/bulk": {
      "post": {
        "tags": [
          "Membership"
        ],
        "summary": "Auto Renew Bulk",
        "description": "Automatically renews a collection of membership records",
        "operationId": "RenewMembershipBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The collection of memberships",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/MembershipAutoRenewPostRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MembershipAutoRenewPostRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/MembershipAutoRenewPostRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MembershipAutoRenewPostRequest"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Records posted to import table. Import ID and record count returned to enable progress monitoring"
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/memberships/autorenew/csv": {
      "get": {
        "tags": [
          "Membership"
        ],
        "summary": "Get Auto Renew CSV",
        "description": "Gets a template CSV file with the required headers for posting a Membership Autorenew CSV file",
        "operationId": "GetMembershipAutorenewCSV",
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "Membership"
        ],
        "summary": "Post Autorenew CSV",
        "description": "Uploads a CSV file containing membership autorenew records",
        "operationId": "PostMembershipAutorenewCSV",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "file": {
                    "title": "File Title",
                    "type": "string",
                    "description": "The file to upload",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Posted to import tables. ImportId and RecordCount returned to check processing progress"
          },
          "400": {
            "description": "File not accepted for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/memberships/cancel/{membershipId}": {
      "post": {
        "tags": [
          "Membership"
        ],
        "summary": "Cancel Single",
        "description": "Cancels a single membership record",
        "operationId": "CancelsMembershipSingle",
        "parameters": [
          {
            "name": "membershipId",
            "in": "path",
            "description": "The membership id of the membership to cancel",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The cancellation date and reason",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/MembershipCancelPostRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MembershipCancelPostRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/MembershipCancelPostRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MembershipCancelPostRequest"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Record cancelled"
          },
          "400": {
            "description": "Record not cancelled"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/memberships/card/{membershipCardNumber}": {
      "get": {
        "tags": [
          "Membership"
        ],
        "summary": "Get Card",
        "description": "Gets the membership card details for the given membership card number",
        "operationId": "GetMembershipCardByMembershipCardNumber",
        "parameters": [
          {
            "name": "membershipCardNumber",
            "in": "path",
            "description": "The card number of the membership card to get",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MembershipCardGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MembershipCardGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MembershipCardGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Membership card record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "put": {
        "tags": [
          "Membership"
        ],
        "summary": "Put Card",
        "description": "Updates a single membership card record.",
        "operationId": "PutMembershipCardSingle",
        "parameters": [
          {
            "name": "membershipCardNumber",
            "in": "path",
            "description": "The membership card number to update",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The updated membership card details",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/MembershipCardPutRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MembershipCardPutRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/MembershipCardPutRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MembershipCardPutRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MembershipCardGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MembershipCardGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MembershipCardGetResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/memberships/card": {
      "post": {
        "tags": [
          "Membership"
        ],
        "summary": "Post Card",
        "description": "Posts a single membership card record",
        "operationId": "PostMembershipCardSingle",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The membership card.<p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/MembershipCardPostRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MembershipCardPostRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/MembershipCardPostRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MembershipCardPostRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Valid for Posting"
          },
          "201": {
            "description": "Record posted successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MembershipCardGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MembershipCardGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MembershipCardGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/memberships/cards/{membershipId}": {
      "get": {
        "tags": [
          "Membership"
        ],
        "summary": "Get Card By MembershipId",
        "description": "Gets the membership card details for the given membership id",
        "operationId": "GetMembershipCardsByMembershipId",
        "parameters": [
          {
            "name": "membershipId",
            "in": "path",
            "description": "The membership id of the cards to get",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MembershipCardGetResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MembershipCardGetResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MembershipCardGetResponse"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Membership card records not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/memberships/cards/bulk": {
      "post": {
        "tags": [
          "Membership"
        ],
        "summary": "Post Cards Bulk",
        "description": "Posts a collection of membership card records",
        "operationId": "PostMembershipCardsBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The collection of memberships cards to post.\r\n            <p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/MembershipCardPostRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/MembershipCardPostRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/MembershipCardPostRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/MembershipCardPostRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Records posted to import table. Import ID and record count returned to enable progress monitoring"
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/memberships/cards/csv": {
      "get": {
        "tags": [
          "Membership"
        ],
        "summary": "Get Card CSV",
        "description": "Gets a template CSV file with the required headers for posting a Membership Card CSV file",
        "operationId": "GetMembershipCardCSV",
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "Membership"
        ],
        "summary": "Post Card CSV",
        "description": "Uploads a CSV file containing membership card records",
        "operationId": "PostMembershipCardCSV",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "file": {
                    "title": "File Title",
                    "type": "string",
                    "description": "The file to upload",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Posted to import tables. ImportId and RecordCount returned to check processing progress"
          },
          "400": {
            "description": "File not accepted for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/memberships/additionalMember/{membershipCostId}": {
      "get": {
        "tags": [
          "Membership"
        ],
        "summary": "Get Additional Member",
        "description": "Gets the cost details associated with an additional member",
        "operationId": "GetMembershipAdditionalMemberByMembershipCostId",
        "parameters": [
          {
            "name": "membershipCostId",
            "in": "path",
            "description": "The card number of the membership card to get",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MembershipAdditionalMemberGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MembershipAdditionalMemberGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MembershipAdditionalMemberGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Membership card record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "delete": {
        "tags": [
          "Membership"
        ],
        "summary": "Delete By ID",
        "description": "Deletes the additional member with the specified id",
        "operationId": "MembershipAdditionalMemberDelete",
        "parameters": [
          {
            "name": "membershipCostId",
            "in": "path",
            "description": "The membershipCostId of the additional member record to delete",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Record deleted"
          },
          "400": {
            "description": "Record not valid for deletion"
          },
          "404": {
            "description": "Additional member record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/memberships/additionalMember": {
      "post": {
        "tags": [
          "Membership"
        ],
        "summary": "Additional Member Post Single",
        "description": "Posts a single additional member record",
        "operationId": "MembershipAdditionalMemberPostSingle",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The additional member to add <p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/MembershipAdditionalMemberPostRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MembershipAdditionalMemberPostRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/MembershipAdditionalMemberPostRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MembershipAdditionalMemberPostRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Valid for Posting"
          },
          "201": {
            "description": "Record posted successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MembershipAdditionalMemberGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MembershipAdditionalMemberGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MembershipAdditionalMemberGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/membershipscheme/{schemeId}": {
      "get": {
        "tags": [
          "MembershipScheme"
        ],
        "summary": "Get Single",
        "description": "Gets the membership scheme",
        "operationId": "GetMembershipSchemeById",
        "parameters": [
          {
            "name": "schemeId",
            "in": "path",
            "description": "The scheme id of the membership scheme to get",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "IncludePaymentMethods",
            "in": "query",
            "description": "Whether to include payment methods",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeWebPaymentMethods",
            "in": "query",
            "description": "Whether to include web payment methods",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeBands",
            "in": "query",
            "description": "Whether to include membership bands",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludePeriods",
            "in": "query",
            "description": "Whether to include membership periods",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MembershipSchemeGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MembershipSchemeGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MembershipSchemeGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Membership scheme not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/membershipscheme": {
      "get": {
        "tags": [
          "MembershipScheme"
        ],
        "summary": "Get Bulk",
        "description": "Returns a collection of membership scheme records for the given page and filter",
        "operationId": "GetMembershipSchemes",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "SchemeId",
            "in": "query",
            "description": "Filter to apply on Scheme id",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "MembershipType",
            "in": "query",
            "description": "Filter to apply on Membership Type",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PaymentFrequency",
            "in": "query",
            "description": "Filter to apply on Payment Frequency",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PricingType",
            "in": "query",
            "description": "Filter to apply on Pricing Type",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PublishToWeb",
            "in": "query",
            "description": "Filter to apply on Publish To Web",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "WebTitle",
            "in": "query",
            "description": "Filter to apply on Web Title",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Archived",
            "in": "query",
            "description": "A flag to indicate if the scheme has been archived",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludePaymentMethods",
            "in": "query",
            "description": "Whether to include payment methods",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeWebPaymentMethods",
            "in": "query",
            "description": "Whether to include web payment methods",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeBands",
            "in": "query",
            "description": "Whether to include membership bands",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludePeriods",
            "in": "query",
            "description": "Whether to include membership periods",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MembershipSchemeGetResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MembershipSchemeGetResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MembershipSchemeGetResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/payments/{paymentId}": {
      "get": {
        "tags": [
          "Payments"
        ],
        "summary": "Get By Payment ID",
        "description": "Gets the payment record with the specified payment ID",
        "operationId": "GetPaymentById",
        "parameters": [
          {
            "name": "paymentId",
            "in": "path",
            "description": "The payment id of the payment to get",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Payment record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/payments": {
      "get": {
        "tags": [
          "Payments"
        ],
        "summary": "Get",
        "description": "Returns a collection of payment records for the given page and filter",
        "operationId": "GetPayments",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "PaymentBatchId",
            "in": "query",
            "description": "Filter to apply on batch id",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SerialNumber",
            "in": "query",
            "description": "Filter to apply on serial number",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SourceCode",
            "in": "query",
            "description": "Filter to apply on source code",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "DestinationCode",
            "in": "query",
            "description": "Filter to apply on destination code",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "InWork",
            "in": "query",
            "description": "Filter to differentiate approved (false) and in work (true) payments",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentGetResponseCollectionResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentGetResponseCollectionResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentGetResponseCollectionResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "Payments"
        ],
        "summary": "Post Single",
        "description": "<h2>Posts a single payment record</h2>\r\n<p>When importing Payments as single POST, or through the bulk POST calls, the records are processed as follows:</p>\r\n<ul>\r\n<li>The linked Contact and Gift Aid Declaration records are validated (see the relevant sections for more information)</li>\r\n<li>The Payment record itself is validated</li>\r\n<li>If validation passes, the linked Contact and Gift Aid Declaration records are created</li>\r\n<li>A new approved Batch will be created containing all the imported Payment records from the request that have no PaymentBatchID</li>\r\n<li>All the imported Payment records from the request with a PaymentBatchID with be added against the corresponding un-approved batch</li>\r\n<li>Payment Allocations will be created as specified</li>\r\n<li>Soft Credit Payments will be created as specified</li>\r\n<li>Any team security information will be added to the payments</li>\r\n</ul>",
        "operationId": "PostPaymentSingle",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The payment. <p>For a detailed description of defaults and validation, select the<b> Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentPostRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentPostRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentPostRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentPostRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Valid for Posting"
          },
          "201": {
            "description": "Record posted successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/payments/batch/{paymentBatchId}": {
      "get": {
        "tags": [
          "Payments"
        ],
        "summary": "Get By Batch ID",
        "description": "Gets a batch of payments with the specified batch ID",
        "operationId": "GetBatchById",
        "parameters": [
          {
            "name": "paymentBatchId",
            "in": "path",
            "description": "The batch id of the batch to get",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "IncludePayments",
            "in": "query",
            "description": "Whether to include the payments from the batch",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentBatchIncludeGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentBatchIncludeGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentBatchIncludeGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Payment batch not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/payments/batch": {
      "get": {
        "tags": [
          "Payments"
        ],
        "summary": "Get Batches",
        "description": "Returns a collection of batch records for the given page and filter",
        "operationId": "GetBatches",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "PaymentBatchId",
            "in": "query",
            "description": "Filter to apply on batch id",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "BatchType",
            "in": "query",
            "description": "Filter to apply on batch type",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Currency",
            "in": "query",
            "description": "Filter to apply on the currency of the batch",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "IsApproved",
            "in": "query",
            "description": "Filter to check if the batch has been approved",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "BatchDescription",
            "in": "query",
            "description": "Filter to apply on the batch description",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ExpectedNumberOfItems",
            "in": "query",
            "description": "Filter to apply on the number of expected items in the batch",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "ExpectedTotalValue",
            "in": "query",
            "description": "Filter to apply on the total expected value of the batch",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "DefaultSourceCode",
            "in": "query",
            "description": "Filter to apply on the default source code",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "DefaultDestinationCode",
            "in": "query",
            "description": "Filter to apply on the default destination code",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "DefaultPaymentType",
            "in": "query",
            "description": "Filter to apply on the default payment type",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "AccountReference",
            "in": "query",
            "description": "Filter to apply on the account reference",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PayingInReference",
            "in": "query",
            "description": "Filter to apply on the paying in reference",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentBatchGetResponseCollectionResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentBatchGetResponseCollectionResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentBatchGetResponseCollectionResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "Payments"
        ],
        "summary": "Post Batch",
        "description": "<h2>Posts payment records in a single batch</h2>\r\n<p>When importing Payments as part of the Batch POST call, the process is essentially the same as above, with one main difference:</p>\r\n<ul>\r\n<li>The Batch will either be moved to the Approved stage or not, depending on whether the 'isApproved' value was true</li>\r\n<li>The parent Batch record will share it's 'paymentBatchId' with all it's nested Payment records, and will contain all these payments as a result</li>\r\n<li>See the 'PaymentBatchID' field in the schema for details</li>\r\n</ul>\r\n",
        "operationId": "PostBatchSingle",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The batch of payments.\r\n            <p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentBatchPostRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentBatchPostRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentBatchPostRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentBatchPostRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Valid for Posting"
          },
          "201": {
            "description": "Record posted successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentBatchGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentBatchGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentBatchGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/payments/bulk": {
      "post": {
        "tags": [
          "Payments"
        ],
        "summary": "Post In Bulk",
        "description": "<h2>Posts a collection of payment records</h2>\r\n<p>When importing Payments as single POST, or through the bulk POST calls, the records are processed as follows:</p>\r\n<ul>\r\n<li>The linked Contact and Gift Aid Declaration records are validated (see the relevant sections for more information)</li>\r\n<li>The Payment record itself is validated</li>\r\n<li>If validation passes, the linked Contact and Gift Aid Declaration records are created</li>\r\n<li>A new approved Batch will be created containing all the imported Payment records from the request that have no PaymentBatchID</li>\r\n<li>All the imported Payment records from the request with a PaymentBatchID with be added against the corresponding un-approved batch</li>\r\n<li>Payment Allocations will be created as specified</li>\r\n<li>Soft Credit Payments will be created as specified</li>\r\n<li>Any team security information will be added to the payments</li>\r\n</ul>",
        "operationId": "PostPaymentsBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The collection of payments.\r\n            <p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PaymentPostRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PaymentPostRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PaymentPostRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PaymentPostRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Records posted to import table. Import ID and record count returned to enable progress monitoring"
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/payments/allocations": {
      "get": {
        "tags": [
          "Payments"
        ],
        "summary": "Get Payment Allocations",
        "description": "Returns a collection of payment allocation records for the given page and filter",
        "operationId": "GetAllocations",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "PaymentBatchId",
            "in": "query",
            "description": "Filter to apply on batch id",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ParentPaymentId",
            "in": "query",
            "description": "Filter to apply on parent payment id",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SerialNumber",
            "in": "query",
            "description": "Filter to apply on serial number",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PaymentMethod",
            "in": "query",
            "description": "Filter to apply on the payment method",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SourceCode",
            "in": "query",
            "description": "Filter to apply on source code",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "DestinationCode",
            "in": "query",
            "description": "Filter to apply on destination code",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "LedgerCode",
            "in": "query",
            "description": "The ledger code for the payment allocation",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "IncomeStream",
            "in": "query",
            "description": "The income stream for this payment",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "IncomeType",
            "in": "query",
            "description": "The type of income this payment is associated with",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "InWork",
            "in": "query",
            "description": "Indicates if the payment has not yet been approved",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PaymentAllocationSearchGetResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PaymentAllocationSearchGetResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PaymentAllocationSearchGetResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/payments/csv": {
      "get": {
        "tags": [
          "Payments"
        ],
        "summary": "Get CSV Template",
        "description": "Gets a template CSV file with the required headers for posting a Payment CSV file",
        "operationId": "GetPaymentCSV",
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "Payments"
        ],
        "summary": "Post Payment CSV File",
        "description": "<h2>Uploads a CSV file containing payment records</h2>\r\n<p>When importing Payments as part of a Csv upload, the process is again similar, with differences in how the Batches are created.</p>\r\n<ul><li>All the fields relating to the payment batch (prefixed 'PaymentBatch') must match the fields in another row, in order for both payments to be included in the same batch</li>\r\n<li>If the 'batchDetailId' is the same for two different Csv rows, but there are any differences between the two records in the remaining 'PaymentBatch' fields,\r\nthe processor will treat them as if you wanted to import them into two different batches. \r\nThis will trigger a validation error, specifying that the 'paymentBatchId' is not unique in the import.</li>\r\n<li>NOTE - This validation message will hide all other validation messages until it is resolved</li>\r\n<li>If the 'batchDetailId' is empty for two different Csv rows, but both payments belong in the same batch, the processor will only add them to the same batch provided that the remaining 'PaymentBatch' fields are identical in the two rows</li></ul>",
        "operationId": "PostPaymentCSV",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "file": {
                    "title": "File Title",
                    "type": "string",
                    "description": "The file to upload",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Posted to import tables. ImportId and RecordCount returned to check processing progress"
          },
          "400": {
            "description": "File not accepted for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/pledges/{pledgeId}": {
      "get": {
        "tags": [
          "Pledges"
        ],
        "summary": "Get By PledgeId",
        "description": "Gets the pledge record with the specified pledgeId",
        "operationId": "GetPledgeById",
        "parameters": [
          {
            "name": "pledgeId",
            "in": "path",
            "description": "The pledge id of the pledge to get",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PledgeGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PledgeGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PledgeGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Pledge record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/pledges": {
      "get": {
        "tags": [
          "Pledges"
        ],
        "summary": "Get",
        "description": "Returns a collection of pledges for the given page and filter",
        "operationId": "GetPledges",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "PledgeId",
            "in": "query",
            "description": "Filter to apply on pledge id",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SerialNumber",
            "in": "query",
            "description": "Filter to apply on serial number",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PledgeStatus",
            "in": "query",
            "description": "Filter to apply on pledge status",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PaymentFrequency",
            "in": "query",
            "description": "Filter to apply on payment frequency",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Category",
            "in": "query",
            "description": "Filter to apply on the category of the pledge",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Description",
            "in": "query",
            "description": "Filter to apply on the description of the pledge",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "TaxClaimable",
            "in": "query",
            "description": "Filter to apply on tax claimable",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ExternalRef",
            "in": "query",
            "description": "Filter to apply on the external Reference",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ExternalRefType",
            "in": "query",
            "description": "Filter to apply on the external Reference Type",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Currency",
            "in": "query",
            "description": "Filter to apply on the currency of the pledge",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PaymentMethod",
            "in": "query",
            "description": "Filter to apply on the Payment method",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SourceCode",
            "in": "query",
            "description": "Filter to apply on the source code",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "RollNumber",
            "in": "query",
            "description": "Filter to apply on the roll number for payment",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Text1",
            "in": "query",
            "description": "Filter to apply on the text field for payment ref",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Text2",
            "in": "query",
            "description": "Filter to apply on the second text field for payment ref",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "DDIRef",
            "in": "query",
            "description": "Filter to apply on the ddi reference for payment",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "DDIStatus",
            "in": "query",
            "description": "Filter to apply on the status of ddi",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "TreatAsAnon",
            "in": "query",
            "description": "Filter to apply on if the pledge is Anonymous",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "TotalValuePledge",
            "in": "query",
            "description": "Filter to apply on the type of pledge",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PledgeGetResponseCollectionResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PledgeGetResponseCollectionResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PledgeGetResponseCollectionResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "Pledges"
        ],
        "summary": "Post Single",
        "description": "<h2>Posts a single pledge record</h2>\r\n<p>Superseding Pledges.</p>\r\n<ul>\r\n  <li>When importing a pledge you can supersede an existing pledge by setting the SupersedesPledgeId property.</li>\r\n  <li>If the SupersedesPledgeId is set then that pledge and any of its future instalments will be written off.</li>\r\n</ul>",
        "operationId": "PostPledgeSingle",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The pledge.<p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/PledgePostRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PledgePostRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PledgePostRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PledgePostRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Valid for Posting",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "201": {
            "description": "Record posted successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PledgeGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PledgeGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PledgeGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/pledges/bulk": {
      "post": {
        "tags": [
          "Pledges"
        ],
        "summary": "Post In Bulk",
        "description": "<h2>Posts a collection of pledge records</h2>\r\n<p> Superseding Pledges.</p >\r\n<ul>\r\n  <li>When importing a pledge you can supersede an existing pledge by setting the SupersedesPledgeId property.</li>\r\n  <li>If the SupersedesPledgeId is set then that pledge and any of its future instalments will be written off.</li>\r\n</ul> ",
        "operationId": "PostPledgeBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The collection of pledges.<p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PledgePostRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PledgePostRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PledgePostRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PledgePostRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Records posted to import table. Import ID and record count returned to enable progress monitoring"
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/pledges/csv": {
      "get": {
        "tags": [
          "Pledges"
        ],
        "summary": "Get CSV Template",
        "description": "Gets a template CSV file with the required headers for posting a Pledge CSV file",
        "operationId": "GetPledgeCSV",
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "Pledges"
        ],
        "summary": "Post Pledge CSV File",
        "description": "Uploads a CSV file containing pledge records",
        "operationId": "PostPledgeCSV",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "file": {
                    "title": "File Title",
                    "type": "string",
                    "description": "The file to upload",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Posted to import tables. ImportId and RecordCount returned to check processing progress"
          },
          "400": {
            "description": "File not accepted for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/relationships": {
      "get": {
        "tags": [
          "Relationship"
        ],
        "summary": "Get",
        "description": "Returns a collection of contact relationships for the given page and filter",
        "operationId": "GetRelationships",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ParentSerialNumber",
            "in": "query",
            "description": "The serial number of the contact",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ChildSerialNumber",
            "in": "query",
            "description": "The serial number of the contact",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RelationshipGetResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RelationshipGetResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RelationshipGetResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "Relationship"
        ],
        "summary": "Post Single",
        "description": "<h2>Posts a single relationship record</h2>\r\n<ul>\r\n  <li>When the ReverseRelationshipType is left blank in an import, it will default to the Reverse of the relationship type if only one reverse exists against that relationship type.</li>\r\n  <li>If more than one reverse relationship type exists for that relationship type, then the ReverseRelationshipType will not default and validation will fire.</li>\r\n  <ul><li>Note that it will not check the if the default reverse relationship is appropriate for the contact type.</li></ul>\r\n</ul>",
        "operationId": "PostRelationshipSingle",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "<h2>The relationship.</h2>\r\n<p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/RelationshipPostRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RelationshipPostRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RelationshipPostRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RelationshipPostRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Valid for Posting",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "201": {
            "description": "Record posted successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/RelationshipGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RelationshipGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/RelationshipGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/relationships/bulk": {
      "post": {
        "tags": [
          "Relationship"
        ],
        "summary": "Post In Bulk",
        "description": "<h2>Posts a collection of relationship records</h2>\r\n<ul>\r\n  <li>When the ReverseRelationshipType is left blank in an import, it will default to the Reverse of the relationship type if only one reverse exists against that relationship type.</li>\r\n  <li>If more than one reverse relationship type exists for that relationship type, then the ReverseRelationshipType will not default and validation will fire.</li>\r\n  <ul><li>Note that it will not check the if the default reverse relationship is appropriate for the contact type.</li></ul>\r\n</ul>",
        "operationId": "PostRelationshipBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The collection of relationships.\r\n            <p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/RelationshipPostRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/RelationshipPostRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/RelationshipPostRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/RelationshipPostRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Records posted to import table. Import ID and record count returned to enable progress monitoring"
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/relationships/csv": {
      "get": {
        "tags": [
          "Relationship"
        ],
        "summary": "Get CSV Template",
        "description": "Gets a template CSV file with the required headers for posting a Relationship CSV file",
        "operationId": "GetRelationshipCSV",
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "Relationship"
        ],
        "summary": "Post Relationship CSV File",
        "description": "Uploads a CSV file containing relationship records",
        "operationId": "PostRelationshipsCSV",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "file": {
                    "title": "File Title",
                    "type": "string",
                    "description": "The file to upload",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Posted to import tables. ImportId and RecordCount returned to check processing progress"
          },
          "400": {
            "description": "File not accepted for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/relationships/{relationshipId}": {
      "delete": {
        "tags": [
          "Relationship"
        ],
        "summary": "Delete By ID",
        "description": "Deletes the relationship with the specified id",
        "operationId": "RelationshipDelete",
        "parameters": [
          {
            "name": "relationshipId",
            "in": "path",
            "description": "The relationshipId of the relationship record to delete",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Record deleted"
          },
          "404": {
            "description": "Relationship not found"
          },
          "400": {
            "description": "Record not valid for updating"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/salesOrder/{orderNumber}": {
      "get": {
        "tags": [
          "SalesOrder"
        ],
        "summary": "Get By OrderNumber",
        "description": "Gets the sales order record with the specified order number",
        "operationId": "GetSalesOrderById",
        "parameters": [
          {
            "name": "orderNumber",
            "in": "path",
            "description": "The order number of the sales order to get",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SalesOrderGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SalesOrderGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SalesOrderGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Sales Order record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/salesOrder": {
      "get": {
        "tags": [
          "SalesOrder"
        ],
        "summary": "Get",
        "description": "Returns a collection of sales Orders for the given page and filter",
        "operationId": "GetSalesOrders",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderNumber",
            "in": "query",
            "description": "Filter to apply on Order Number",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SerialNumber",
            "in": "query",
            "description": "Filter to apply on Serial Number",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Status",
            "in": "query",
            "description": "Filter to apply on the status on the sales order",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Type",
            "in": "query",
            "description": "Filter to apply on the type on the sales order",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OrderDate",
            "in": "query",
            "description": "Filter to apply on Order Date",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "Currency",
            "in": "query",
            "description": "Filter to apply on the currency on the sales order",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OriginalTotalCost",
            "in": "query",
            "description": "Filter to apply on the total cost",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "TotalCost",
            "in": "query",
            "description": "Filter to apply on the total cost on the sales order",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "SourceCode",
            "in": "query",
            "description": "Filter to apply on the source code",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Description",
            "in": "query",
            "description": "Filter to apply on the description on the sales order",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SourceApplication",
            "in": "query",
            "description": "Filter to apply on the name on the application the sales order came from",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Notes",
            "in": "query",
            "description": "Filter to apply on the notes on the sales order",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Modified",
            "in": "query",
            "description": "Filter to apply on the Date the sales order was modified",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "ModifiedBy",
            "in": "query",
            "description": "Filter to apply on the User who last modified the sales order",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Created",
            "in": "query",
            "description": "Filter to apply on the Date the sales order was created",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "CreatedBy",
            "in": "query",
            "description": "Filter to apply on the  User who created the sales order",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SalesOrderGetResponseCollectionResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SalesOrderGetResponseCollectionResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SalesOrderGetResponseCollectionResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "SalesOrder"
        ],
        "summary": "Post Single",
        "description": "<h2>Posts a single sales order record</h2>\r\n<p>When posting Sales Orders, at least one SalesOrder.Details must be posted.</p>",
        "operationId": "PostSalesOrderSingle",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The sales order. <p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/SalesOrderPostRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SalesOrderPostRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SalesOrderPostRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SalesOrderPostRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Valid for Posting",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "201": {
            "description": "Record posted successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SalesOrderGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SalesOrderGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SalesOrderGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/salesOrder/bulk": {
      "post": {
        "tags": [
          "SalesOrder"
        ],
        "summary": "Post In Bulk",
        "description": "<h2>Posts a collection of sales order records</h2>\r\n<p>When posting Sales Orders, at least one SalesOrder.Details must be posted.</p>",
        "operationId": "PostSalesOrderBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The collection of sales orders.<p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/SalesOrderPostRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/SalesOrderPostRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/SalesOrderPostRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/SalesOrderPostRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Records posted to import table. Import ID and record count returned to enable progress monitoring"
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/salesOrder/product/{productId}": {
      "get": {
        "tags": [
          "SalesOrder"
        ],
        "summary": "Get By ProductId",
        "description": "Gets the sales order product record with the specified product Id",
        "operationId": "GetSalesOrderProductById",
        "parameters": [
          {
            "name": "productId",
            "in": "path",
            "description": "The productId of the sales order product to get",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SalesOrderProductGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SalesOrderProductGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SalesOrderProductGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Sales Order Product record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "put": {
        "tags": [
          "SalesOrder"
        ],
        "summary": "Put Single",
        "description": "Updates a single sales order record",
        "operationId": "PutSalesOrderProductSingle",
        "parameters": [
          {
            "name": "productId",
            "in": "path",
            "description": "The Product Id of the sales order product to update",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The updated sales order product",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/SalesOrderProductPutRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SalesOrderProductPutRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SalesOrderProductPutRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SalesOrderProductPutRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Sales Order Product updated",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SalesOrderProductGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SalesOrderProductGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SalesOrderProductGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Sales Order Product record not found"
          },
          "400": {
            "description": "Record not valid for updating"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/salesOrder/product": {
      "get": {
        "tags": [
          "SalesOrder"
        ],
        "summary": "Get Product",
        "description": "Returns a collection of sales Orders Products for the given page and filter",
        "operationId": "GetSalesOrderProducts",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ProductId",
            "in": "query",
            "description": "Filter to apply on Product Id",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ProductCode",
            "in": "query",
            "description": "Filter to apply on Product Code",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ProductName",
            "in": "query",
            "description": "Filter to apply on the status on the Product Name",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Type",
            "in": "query",
            "description": "Filter to apply on the type of the sales order product",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SellingPrice",
            "in": "query",
            "description": "Filter to apply on Selling Price",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "CostPrice",
            "in": "query",
            "description": "Filter to apply on Cost Price",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "OriginalTotalCost",
            "in": "query",
            "description": "Filter to apply on the total cost",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "DoNotUse",
            "in": "query",
            "description": "Filter to apply on the do not use status",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "DestinationCode",
            "in": "query",
            "description": "Filter to apply on the destination code",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Description",
            "in": "query",
            "description": "Filter to apply on the description",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ProductOrigin",
            "in": "query",
            "description": "Filter to apply on the product origin",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SourceApplication",
            "in": "query",
            "description": "Filter to apply on source application",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Created",
            "in": "query",
            "description": "Filter to apply on the Date the sales order was created",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "Modified",
            "in": "query",
            "description": "Filter to apply on the Date the sales order was modified",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SalesOrderProductGetResponseCollectionResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SalesOrderProductGetResponseCollectionResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SalesOrderProductGetResponseCollectionResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "SalesOrder"
        ],
        "summary": "Post Single Product",
        "description": "Posts a single sales order product record",
        "operationId": "PostSalesOrderProductSingle",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The sales order product. <p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/SalesOrderProductPostRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SalesOrderProductPostRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SalesOrderProductPostRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SalesOrderProductPostRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Valid for Posting",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "201": {
            "description": "Record posted successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SalesOrderProductGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SalesOrderProductGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SalesOrderProductGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/salesOrder/product/bulk": {
      "put": {
        "tags": [
          "SalesOrder"
        ],
        "summary": "Put Sales Order Products In Bulk",
        "description": "Updates a collection of Sales Order Product records",
        "operationId": "PutSalesOrderProductBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The updated Sales Order Products",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/SalesOrderProductPutBulkRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/SalesOrderProductPutBulkRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/SalesOrderProductPutBulkRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/SalesOrderProductPutBulkRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Posted to import tables. ImportId and RecordCount returned to check processing progress"
          },
          "400": {
            "description": "File not accepted for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "SalesOrder"
        ],
        "summary": "Post Products In Bulk",
        "description": "Posts a collection of sales order product records",
        "operationId": "PostSalesOrderProductsBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The collection of sales order products. <p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/SalesOrderProductPostRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/SalesOrderProductPostRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/SalesOrderProductPostRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/SalesOrderProductPostRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Records posted to import table. Import ID and record count returned to enable progress monitoring"
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/sourcecodes/{sourceCode}": {
      "get": {
        "tags": [
          "SourceCode"
        ],
        "summary": "Get By ID",
        "description": "Gets the source code record with the specified source code",
        "operationId": "GetSourceCodeById",
        "parameters": [
          {
            "name": "sourceCode",
            "in": "path",
            "description": "The source code to get",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "IncludeSourceCodeRelationship",
            "in": "query",
            "description": "Whether to include the Source Codes relationships to other Source Codes",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SourceCodeGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceCodeGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceCodeGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Source Code record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/sourcecodes": {
      "get": {
        "tags": [
          "SourceCode"
        ],
        "summary": "Get",
        "description": "Returns a collection of source codes for the given page and filter",
        "operationId": "GetSourceCodes",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "SourceCode",
            "in": "query",
            "description": "Filter to apply on Source Code",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SourceType",
            "in": "query",
            "description": "Filter to apply on Source Type",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "InMemSerialNumber",
            "in": "query",
            "description": "Filter to apply on in memory serial number",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "CertificateType",
            "in": "query",
            "description": "Filter to apply on certificate type",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ExcludeFromDropDown",
            "in": "query",
            "description": "Filter to apply for codes excluded from drop down",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SourceCodeGetResponseCollectionResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceCodeGetResponseCollectionResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceCodeGetResponseCollectionResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "SourceCode"
        ],
        "summary": "Post Single",
        "description": "Posts a single source code record",
        "operationId": "PostSourceCodeSingle",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The sourceCode. <p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/SourceCodePostRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SourceCodePostRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SourceCodePostRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SourceCodePostRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Valid for Posting"
          },
          "201": {
            "description": "Record posted successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SourceCodeGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceCodeGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceCodeGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/sourcecodes/bulk": {
      "post": {
        "tags": [
          "SourceCode"
        ],
        "summary": "Post In Bulk",
        "description": "Posts a collection of source code records",
        "operationId": "PostSourceCodeBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The collection of source codes. <p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/SourceCodePostRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/SourceCodePostRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/SourceCodePostRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/SourceCodePostRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Records posted to import table. Import ID and record count returned to enable progress monitoring"
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/sourcecodes/csv": {
      "get": {
        "tags": [
          "SourceCode"
        ],
        "summary": "Get CSV Template",
        "description": "Gets a template CSV file with the required headers for posting a source code CSV file",
        "operationId": "GetSourceCodeCSV",
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "SourceCode"
        ],
        "summary": "Post Source Code CSV File",
        "description": "Uploads a CSV file containing Source code records",
        "operationId": "PostSourceCodeCSV",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "file": {
                    "title": "File Title",
                    "type": "string",
                    "description": "The file to upload",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Posted to import tables. ImportId and RecordCount returned to check processing progress"
          },
          "400": {
            "description": "File not accepted for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/sourcecoderelationships": {
      "post": {
        "tags": [
          "SourceCodeRelationship"
        ],
        "summary": "Post Single",
        "description": "Posts a single source code relationship",
        "operationId": "PostSourceCodeRelationshipSingle",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The relationship. <p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/SourceCodeRelationshipPostRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SourceCodeRelationshipPostRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SourceCodeRelationshipPostRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SourceCodeRelationshipPostRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Valid for Posting",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "201": {
            "description": "Record posted successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SourceCodeRelationshipGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceCodeRelationshipGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceCodeRelationshipGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/sourcecoderelationships/bulk": {
      "post": {
        "tags": [
          "SourceCodeRelationship"
        ],
        "summary": "Post In Bulk",
        "description": "Posts a collection of source code relationship records",
        "operationId": "PostSourceCodeRelationshipBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The collection of sourceCode relationships. <p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/SourceCodeRelationshipPostRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/SourceCodeRelationshipPostRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/SourceCodeRelationshipPostRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/SourceCodeRelationshipPostRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Records posted to import table. Import ID and record count returned to enable progress monitoring"
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/sourcecoderelationships/csv": {
      "get": {
        "tags": [
          "SourceCodeRelationship"
        ],
        "summary": "Get CSV Template",
        "description": "Gets a template CSV file with the required headers for posting a source code relationship CSV file",
        "operationId": "GetSourceCodeRelationshipCSV",
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "SourceCodeRelationship"
        ],
        "summary": "Source Code Relationship CSV File",
        "description": "Uploads a CSV file containing source code relationship records",
        "operationId": "PostSourceCodeRelationshipCSV",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "file": {
                    "title": "File Title",
                    "type": "string",
                    "description": "The file to upload",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Posted to import tables. ImportId and RecordCount returned to check processing progress"
          },
          "400": {
            "description": "File not accepted for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/userdefinedfield": {
      "get": {
        "tags": [
          "UserDefinedField"
        ],
        "summary": "Get",
        "description": "Returns a collection of user defined fields for the given page and filter",
        "operationId": "GetUserDefinedField",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Area",
            "in": "query",
            "description": "Filter to apply on Area",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Name",
            "in": "query",
            "description": "Filter to apply on Name",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "DataType",
            "in": "query",
            "description": "Filter to apply on DataType",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Caption",
            "in": "query",
            "description": "Filter to apply on Caption",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Description",
            "in": "query",
            "description": "Filter to apply on Description",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/UserDefinedFieldGetResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/UserDefinedFieldGetResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/UserDefinedFieldGetResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/userdefinedview": {
      "get": {
        "tags": [
          "UserDefinedView"
        ],
        "summary": "Get List of bespoke views",
        "description": "Gets a list of bespoke views in the database",
        "operationId": "GetBespokeViews",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/userdefinedview/{viewName}": {
      "get": {
        "tags": [
          "UserDefinedView"
        ],
        "summary": "Get data from a bespoke view",
        "description": "Gets filtered, paged data from a bespoke view",
        "operationId": "GetDataFromBespokeView",
        "parameters": [
          {
            "name": "viewName",
            "in": "path",
            "description": "Name of the View to pull data from",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "FilterColumn",
            "in": "query",
            "description": "Name of the column to filter results by",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "FilterValue",
            "in": "query",
            "description": "Value to filter results by",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default*: 1",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n\r\n*Default:* 50",
            "required": true,
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "OrderByColumn",
            "in": "query",
            "description": "Column to order the results by\r\n\r\n*Example*: RowID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/UserDefinedViewGetDataResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserDefinedViewGetDataResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserDefinedViewGetDataResponse"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/volunteerChecks/{checkId}": {
      "get": {
        "tags": [
          "VolunteerCheck"
        ],
        "summary": "Get By Id",
        "description": "Gets the volunteer check with the specified id",
        "operationId": "GetVolunteerCheckById",
        "parameters": [
          {
            "name": "checkId",
            "in": "path",
            "description": "The check id of the volunteer check to get",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/VolunteerCheckGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VolunteerCheckGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/VolunteerCheckGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Volunteer Check record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "put": {
        "tags": [
          "VolunteerCheck"
        ],
        "summary": "Put Single",
        "description": "Updates a single volunteer check record",
        "operationId": "PutVolunteerCheckSingle",
        "parameters": [
          {
            "name": "checkId",
            "in": "path",
            "description": "The id of the volunteer check to update",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The updated volunteer check",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/VolunteerCheckPutRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VolunteerCheckPutRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/VolunteerCheckPutRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/VolunteerCheckPutRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Volunteer Check updated",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/VolunteerCheckGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VolunteerCheckGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/VolunteerCheckGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Volunteer Check record not found"
          },
          "400": {
            "description": "Record not valid for updating"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "delete": {
        "tags": [
          "VolunteerCheck"
        ],
        "summary": "Delete By ID",
        "description": "Deletes the volunteer check with the specified id",
        "operationId": "DeleteVolunteerCheckById",
        "parameters": [
          {
            "name": "checkId",
            "in": "path",
            "description": "The check id of the volunteer check record to delete",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Record deleted"
          },
          "400": {
            "description": "Record not valid for deletion"
          },
          "404": {
            "description": "Volunteer Check record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/volunteerChecks": {
      "get": {
        "tags": [
          "VolunteerCheck"
        ],
        "summary": "Get",
        "description": "Returns a collection of volunteer check records for the given page and filter",
        "operationId": "GetVolunteerChecks",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "CheckId",
            "in": "query",
            "description": "The unique ID for the record",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SerialNumber",
            "in": "query",
            "description": "The Serial Number of the volunteer",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Created",
            "in": "query",
            "description": "The date the record was created",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "CreatedBy",
            "in": "query",
            "description": "The user who created the record",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "CheckCategory",
            "in": "query",
            "description": "The category for the check",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Status",
            "in": "query",
            "description": "The status of the check",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "CheckType",
            "in": "query",
            "description": "The type of check (e.g. CRB)\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Must exist in the 'PersonnelCheckType' lookup</li></ul>",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "FormSentToApplicant",
            "in": "query",
            "description": "The date when the application form was sent to the volunteer",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "CompleteFormReceived",
            "in": "query",
            "description": "The date when the completed form was received from the contact",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "FormSentToAgency",
            "in": "query",
            "description": "The date when the form was sent to the agency to perform the check",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "FormReturnedByAgency",
            "in": "query",
            "description": "The date when the agency returned the form that was submitted",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "DisclosureReference",
            "in": "query",
            "description": "The reference provided by the agency\r\n<ul><li>Validates dependent on CheckCategory</li></ul>",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "DateOfDeclaration",
            "in": "query",
            "description": "The date when self application was declared",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "CopyOfExistingDocumentationReceived",
            "in": "query",
            "description": "A value of true indicates that the applicant already has a CRB from another company or charity\r\n<ul><li>Default is False</li></ul>",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IssuingBody",
            "in": "query",
            "description": "The name of the issuing body for the clearance\r\n<ul><li>Validates dependent on CheckCategory</li></ul>",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "AgencyNote",
            "in": "query",
            "description": "Notes provided from an agency",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ValidFrom",
            "in": "query",
            "description": "The date from which the check is valid",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "ValidTo",
            "in": "query",
            "description": "The date which the check is valid unitl",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "Notes",
            "in": "query",
            "description": "Informal notes recorded against the check record",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Modified",
            "in": "query",
            "description": "The date the record was last modified",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "ModifiedBy",
            "in": "query",
            "description": "The user who last modified the record\r\n<ul><li>Default is API</li></ul>",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "DestroyDisclosureBy",
            "in": "query",
            "description": "The date the disclosures should be destroyed by",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "IsaNumber",
            "in": "query",
            "description": "Independent Safeguarding authority number",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "IsaStatusChanged",
            "in": "query",
            "description": "Independent Safeguarding Authority status changed",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "IsaNotes",
            "in": "query",
            "description": "Independent Safeguarding Authority Notes",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "DisclosureLevel",
            "in": "query",
            "description": "The level of disclosure required (e.g. Standard, Enhanced)\r\n<ul><li>Must exist in the 'DisclosureType' lookup</li></ul>",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PaidOrVolunteer",
            "in": "query",
            "description": "Whether the contact is paid or a volunteer\r\n<ul><li>Must exist in the 'PaidOrVolunteer' lookup</li></ul>",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "RefereeSerialNumber",
            "in": "query",
            "description": "The serialnumber for the reference\r\n<ul><li>This value must exist as an existing contact</li></ul>",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ReferenceContactType",
            "in": "query",
            "description": "The type of contact for the reference\r\n<ul><li>Must exist in the 'Contact Type' lookup</li></ul><ul><li> Cannot be 'Household'</li></ul>",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ReferenceTitle",
            "in": "query",
            "description": "The title of contact for the reference",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ReferenceFirstName",
            "in": "query",
            "description": "The first name of contact for the reference",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ReferenceOtherInitial",
            "in": "query",
            "description": "The other initial of contact for the reference",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ReferenceKeyname",
            "in": "query",
            "description": "The key name of contact for the reference",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ReferenceRelationshipToApplicant",
            "in": "query",
            "description": "The relationship of contact for the reference",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ReferenceAddressType",
            "in": "query",
            "description": "The address type of contact for the reference",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ReferencePostcode",
            "in": "query",
            "description": "The postcode of contact for the reference",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ReferenceAddress",
            "in": "query",
            "description": "The address of contact for the reference",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ReferenceTown",
            "in": "query",
            "description": "The town of contact for the reference",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ReferenceCounty",
            "in": "query",
            "description": "The county of contact for the reference",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ReferenceCountry",
            "in": "query",
            "description": "The country of contact for the reference",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ReferenceDayTelephone",
            "in": "query",
            "description": "The work telephone number of contact for the reference",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ReferenceEveningTelephone",
            "in": "query",
            "description": "The home telephone of contact for the reference",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ReferenceMobileNumber",
            "in": "query",
            "description": "The mobile number of contact for the reference",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ReferenceFaxNumber",
            "in": "query",
            "description": "The fax number of contact for the reference",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ReferenceEmailAddress",
            "in": "query",
            "description": "The email address of contact for the reference\r\n<ul><li>Must be a valid email address</li></ul>",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ReferenceEmailValidated",
            "in": "query",
            "description": "Date when the email was validated",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "ReferenceValidEmailAddress",
            "in": "query",
            "description": "Checkbox to indicate the email was validated\r\n<ul><li>Default is False</li></ul>",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ReferenceEnvelopeSalutation",
            "in": "query",
            "description": "The envelope salutation of contact for the reference",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ReferenceLetterSalutation",
            "in": "query",
            "description": "The letter salutation of contact for the reference",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "RefereeNotes",
            "in": "query",
            "description": "Any notes regarding the referee",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "InterviewDate",
            "in": "query",
            "description": "The date of the Interview",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "InterviewStartTime",
            "in": "query",
            "description": "The start time of the interview",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "InterviewEndTime",
            "in": "query",
            "description": "The end time of the interview",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "InterviewNotes",
            "in": "query",
            "description": "Any notes regarding the interview",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "InterviewLocationSerialNumber",
            "in": "query",
            "description": "This is the serial number of the contact whose address is the location of the interview\r\n<ul><li>This value must exist as an existing contact</li></ul>",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "InterviewLocation",
            "in": "query",
            "description": "The name of the interview location",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "InterviewAddress",
            "in": "query",
            "description": "The address of the interview location",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "InterviewTown",
            "in": "query",
            "description": "The town of the interview location",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "InterviewCounty",
            "in": "query",
            "description": "The county of the interview location",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "InterviewCountry",
            "in": "query",
            "description": "The country of the interview location",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "InterviewPostcode",
            "in": "query",
            "description": "The postcode of the interview location",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "InterviewLocationNotes",
            "in": "query",
            "description": "Notes related to the interview location",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "InterviewHomeBased",
            "in": "query",
            "description": "Is the interview home based\r\n<ul><li>Default is False</li></ul>",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "DocsReference",
            "in": "query",
            "description": "The reference of the documentation / id",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "DocumentNotes",
            "in": "query",
            "description": "Notes pertinent to the documentation / id",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "DocumentIssueNumber",
            "in": "query",
            "description": "The issue number of the documentation / id",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "DocumentIssuedBy",
            "in": "query",
            "description": "The name of the organisation who issued the documentation / id",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "DocumentIssuedDate",
            "in": "query",
            "description": "The Date that the documentation / id was issued",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "OriginalDocsRequired",
            "in": "query",
            "description": "Indicates whether the original documentation / id is required instead of just a copy\r\n<ul><li>Default is False</li></ul>",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OriginalDocsReceived",
            "in": "query",
            "description": "The Date the original documentation / id was received",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "OriginalDocsReturned",
            "in": "query",
            "description": "The Date the original documentation / id was returned to the contact",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "CheckStage",
            "in": "query",
            "description": "The stage that the check is at\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Has to be one of 'Awaiting Form', 'In Checking', 'Sent To Agency', 'Approved', 'Arranging', 'Confirmed', 'Completed', 'Not Yet Requested', 'Requested', 'Recieved'</li></ul><ul><li>When CheckCategory is one of 'Reference', 'Identification', 'Documentation' this has to be one of 'Not Yet Requested', 'Requested', 'Received', 'Approved'</li></ul><ul><li>When CheckCategory is 'Interview' this has to be one of the following stages Arranging, Confirmed, Completed, Approved</li></ul><ul><li>When CheckCategory is 'Disclosure' this has to be one of the following stages Awaiting Form, In Checking, Sent To Agency, Approved</li></ul>",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Approved",
            "in": "query",
            "description": "The date the personnel check was approved",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "ApprovedBy",
            "in": "query",
            "description": "The user name of the individual who approved the check\r\n<ul><li>Validates dependent on CheckCategory</li></ul>",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Declined",
            "in": "query",
            "description": "The date the personnel check was declined",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "DeclinedBy",
            "in": "query",
            "description": "The user name of the individual who declined the check",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Cancelled",
            "in": "query",
            "description": "The date the personnel check was cancelled",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "CancelledBy",
            "in": "query",
            "description": "The username of the individual who cancelled the check",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VolunteerCheckGetResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VolunteerCheckGetResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VolunteerCheckGetResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "VolunteerCheck"
        ],
        "summary": "Post Single",
        "description": "Posts a single volunteer check record",
        "operationId": "PostVolunteerCheckSingle",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The volunteer check. <p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/VolunteerCheckPostRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VolunteerCheckPostRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/VolunteerCheckPostRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/VolunteerCheckPostRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Valid for Posting"
          },
          "201": {
            "description": "Record posted successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/VolunteerCheckGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VolunteerCheckGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/VolunteerCheckGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/volunteerChecks/bulk": {
      "post": {
        "tags": [
          "VolunteerCheck"
        ],
        "summary": "Post In Bulk",
        "description": "Posts a collection of volunteer check records",
        "operationId": "PostVolunteerCheckBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The collection of volunteer checks. \r\n            <p>For a detailed description of defaults and validation, select the <b>Schema</b> tab below.</p>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/VolunteerCheckPostRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/VolunteerCheckPostRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/VolunteerCheckPostRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/VolunteerCheckPostRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Records posted to import table. Import ID and record count returned to enable progress monitoring"
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "put": {
        "tags": [
          "VolunteerCheck"
        ],
        "summary": "Put Bulk",
        "description": "Updates a collection of volunteer check records",
        "operationId": "PutVolunteerCheckBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The updated volunteer checks",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/VolunteerCheckPutBulkRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/VolunteerCheckPutBulkRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/VolunteerCheckPutBulkRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/VolunteerCheckPutBulkRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Posted to import tables. ImportId and RecordCount returned to check processing progress"
          },
          "400": {
            "description": "File not accepted for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/volunteerChecks/csv": {
      "get": {
        "tags": [
          "VolunteerCheck"
        ],
        "summary": "Get CSV Template",
        "description": "Gets a template CSV file with the required headers for posting a volunteer check CSV file",
        "operationId": "GetVolunteerCheckCSV",
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "VolunteerCheck"
        ],
        "summary": "Post Volunteer Checks CSV File",
        "description": "Uploads a CSV file containing volunteer check records",
        "operationId": "PostVolunteerCheckCSV",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "file": {
                    "title": "File Title",
                    "type": "string",
                    "description": "The file to upload",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Posted to import tables. ImportId and RecordCount returned to check processing progress"
          },
          "400": {
            "description": "File not accepted for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/VolunteerRole": {
      "get": {
        "tags": [
          "VolunteerRole"
        ],
        "summary": "Get",
        "description": "Returns a collection of volunteer role records for the given page, filter and search criteria",
        "operationId": "GetVolunteerRoles",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "SerialNumber",
            "in": "query",
            "description": "Filter to apply on serial number",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Name",
            "in": "query",
            "description": "Filter to apply on name",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "IsPrimary",
            "in": "query",
            "description": "Filter to apply on primary",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Type",
            "in": "query",
            "description": "Filter to apply on type",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "StartDate",
            "in": "query",
            "description": "Filter to apply on start",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "EndDate",
            "in": "query",
            "description": "Filter to apply on end",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "ExternalRef",
            "in": "query",
            "description": "Filter to apply on externalRef",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ExternalRefType",
            "in": "query",
            "description": "Filter to apply on externalRefType",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Team",
            "in": "query",
            "description": "Filter to apply on team name",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "TeamExternalRef",
            "in": "query",
            "description": "Id of the team",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VolunteerRoleGetResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VolunteerRoleGetResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VolunteerRoleGetResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "VolunteerRole"
        ],
        "summary": "Post Single",
        "description": "Posts a single volunteer role record",
        "operationId": "PostVolunteerRoleSingle",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "Validates the volunteer role but it is not post",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "createLookups",
            "in": "query",
            "description": "Create lookups",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "Volunteer role to be posted",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/VolunteerRolePostRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VolunteerRolePostRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/VolunteerRolePostRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/VolunteerRolePostRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Valid for Posting"
          },
          "201": {
            "description": "Record posted successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/VolunteerRoleGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VolunteerRoleGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/VolunteerRoleGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/VolunteerRole/{volunteerRoleId}": {
      "get": {
        "tags": [
          "VolunteerRole"
        ],
        "summary": "Get By Volunteer Role Id",
        "description": "Gets the volunteer role record with the specified id",
        "operationId": "GetVolunteerRoleById",
        "parameters": [
          {
            "name": "volunteerRoleId",
            "in": "path",
            "description": "The id of the volunteer role to get",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/VolunteerRoleGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VolunteerRoleGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/VolunteerRoleGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Volunteer Role record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "put": {
        "tags": [
          "VolunteerRole"
        ],
        "summary": "Put Single",
        "description": "Updates a single volunteer role record",
        "operationId": "PutVolunteerRoleSingle",
        "parameters": [
          {
            "name": "volunteerRoleId",
            "in": "path",
            "description": "Id of the volunteer role that will be updated",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOnly",
            "in": "query",
            "description": "Validates the volunteer role but it is not post",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "Updated volunteer role",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/VolunteerRolePutRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VolunteerRolePutRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/VolunteerRolePutRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/VolunteerRolePutRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Volunteer role updated",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/VolunteerRoleGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VolunteerRoleGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/VolunteerRoleGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Volunteer role record not found"
          },
          "400": {
            "description": "Record not valid for updating"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "delete": {
        "tags": [
          "VolunteerRole"
        ],
        "summary": "Delete By ID",
        "description": "Deletes volunteer role record with the specified Id",
        "operationId": "DeleteVolunteerRoleById",
        "parameters": [
          {
            "name": "volunteerRoleId",
            "in": "path",
            "description": "The id of the volunteer role to delete",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Record deleted"
          },
          "400": {
            "description": "Record not valid for deletion"
          },
          "404": {
            "description": "Volunteer role record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/VolunteerRole/bulk": {
      "post": {
        "tags": [
          "VolunteerRole"
        ],
        "summary": "Post In Bulk",
        "description": "Posts a collection of volunteer role records",
        "operationId": "PostVolunteerRoleBulk",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "Validates the volunteer role but it is not post",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "createLookups",
            "in": "query",
            "description": "Create lookups",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "Volunteer roles to be posted",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/VolunteerRolePostRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/VolunteerRolePostRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/VolunteerRolePostRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/VolunteerRolePostRequest"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Records posted to import table. Import ID and record count returned to enable progress monitoring"
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/entities/{entityName}": {
      "get": {
        "tags": [
          "Entity"
        ],
        "summary": "Get By Entity Name",
        "description": "Gets the entity with the specified name",
        "operationId": "GetEntityById",
        "parameters": [
          {
            "name": "entityName",
            "in": "path",
            "description": "The unique name of the entity to get",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "IncludeEntityFields",
            "in": "query",
            "description": "Whether to include entity fields",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EntityGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EntityGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EntityGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Entity not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/entities": {
      "get": {
        "tags": [
          "Entity"
        ],
        "summary": "Get",
        "description": "Returns a collection of entities for the given page and filter",
        "operationId": "GetEntities",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Name",
            "in": "query",
            "description": "The unique ID name for the Entity",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "StandardEntity",
            "in": "query",
            "description": "Bool to identify if the entity is a standard entity",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Archived",
            "in": "query",
            "description": "Bool to identify if the entity is Archived",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "CountOfCustomFields",
            "in": "query",
            "description": "The number of custom fields in this entity",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Label",
            "in": "query",
            "description": "The display name used for the Entity",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PluralLabel",
            "in": "query",
            "description": "The plural display name used for the Entity",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Description",
            "in": "query",
            "description": "Small description that describes the entity",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SelectPermission",
            "in": "query",
            "description": "The permissions required to read data",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "UpdatePermission",
            "in": "query",
            "description": "The permissions required to update data",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "InsertPermission",
            "in": "query",
            "description": "The permissions required to insert new data",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "DeletePermission",
            "in": "query",
            "description": "The permissions required to delete old data",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "AdminPermission",
            "in": "query",
            "description": "The permissions required alter this entity",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Created",
            "in": "query",
            "description": "When the record was created",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "CreatedBy",
            "in": "query",
            "description": "The user who created the record\r\n<ul><li>Default is 'API'</li></ul>",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Modified",
            "in": "query",
            "description": "When the record was last modified",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "ModifiedBy",
            "in": "query",
            "description": "The user who last modified the record\r\n<ul><li>Default is 'API'</li></ul>",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EntityGetResponseCollectionResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EntityGetResponseCollectionResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EntityGetResponseCollectionResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/entities/{entityName}/data/{id}": {
      "get": {
        "tags": [
          "EntityData"
        ],
        "summary": "Get By Entity Data By Name",
        "description": "Gets the custom Data within the entity by the specified name",
        "operationId": "GetEntityDataById",
        "parameters": [
          {
            "name": "entityName",
            "in": "path",
            "description": "The unique name of the entity",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "The unique id of the row of data in the entity",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "404": {
            "description": "Entity not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "put": {
        "tags": [
          "EntityData"
        ],
        "summary": "Put Single",
        "description": "Updates a single entity Data record",
        "operationId": "PutEntityDataSingle",
        "parameters": [
          {
            "name": "entityName",
            "in": "path",
            "description": "The unique name of the entity",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "The unique id of the row of data in the custom entity",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The custom Data to update",
          "content": {
            "application/json-patch+json": {
              "schema": { }
            },
            "application/json": {
              "schema": { }
            },
            "text/json": {
              "schema": { }
            },
            "application/*+json": {
              "schema": { }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Entity Data updated",
            "content": {
              "text/plain": {
                "schema": { }
              },
              "application/json": {
                "schema": { }
              },
              "text/json": {
                "schema": { }
              }
            }
          },
          "404": {
            "description": "Entity Data record not found"
          },
          "400": {
            "description": "Record not valid for updating"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "delete": {
        "tags": [
          "EntityData"
        ],
        "summary": "Delete By Name",
        "description": "Deletes the custom entity with the specified Name",
        "operationId": "DeleteCustomEntityByName",
        "parameters": [
          {
            "name": "entityName",
            "in": "path",
            "description": "The unique name of the entity",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "The unique id of the row of data in the custom entity",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Record deleted"
          },
          "404": {
            "description": "Entity record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/entities/{entityName}/data": {
      "get": {
        "tags": [
          "EntityData"
        ],
        "summary": "Get",
        "description": "Returns a collection of custom data for the given page and filter",
        "operationId": "GetEntityData",
        "parameters": [
          {
            "name": "entityName",
            "in": "path",
            "description": "The unique name of the entity",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      },
      "post": {
        "tags": [
          "EntityData"
        ],
        "summary": "Post Single",
        "description": "Posts a single record to a custom entity",
        "operationId": "PostEntityDataSingle",
        "parameters": [
          {
            "name": "entityName",
            "in": "path",
            "description": "The unique name of the entity",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The custom Data to add",
          "content": {
            "application/json-patch+json": {
              "schema": { }
            },
            "application/json": {
              "schema": { }
            },
            "text/json": {
              "schema": { }
            },
            "application/*+json": {
              "schema": { }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Record posted successfully",
            "content": {
              "text/plain": {
                "schema": { }
              },
              "application/json": {
                "schema": { }
              },
              "text/json": {
                "schema": { }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/entities/{entityName}/data/bulk": {
      "post": {
        "tags": [
          "EntityData"
        ],
        "summary": "Post In Bulk",
        "description": "Posts a collection of records to a custom entity",
        "operationId": "PostEntityDataBulk",
        "parameters": [
          {
            "name": "entityName",
            "in": "path",
            "description": "The unique name of the entity",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "validationOnly",
            "in": "query",
            "description": "\"True\" to indicate that the record should be validated only and not posted",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The custom Data to add",
          "content": {
            "application/json-patch+json": {
              "schema": { }
            },
            "application/json": {
              "schema": { }
            },
            "text/json": {
              "schema": { }
            },
            "application/*+json": {
              "schema": { }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Records posted to import table. Import ID and record count returned to enable progress monitoring"
          },
          "400": {
            "description": "Record not valid for posting"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/entities/{entityName}/fields/{fieldName}": {
      "get": {
        "tags": [
          "EntityField"
        ],
        "summary": "Get By Entity and Field name",
        "description": "Gets the entity field from an entity, with the specified name",
        "operationId": "GetEntityField",
        "parameters": [
          {
            "name": "entityName",
            "in": "path",
            "description": "Name of the Entity to get the Field from",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fieldName",
            "in": "path",
            "description": "Name of the Field to get",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EntityFieldGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EntityFieldGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EntityFieldGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "Entity or Field not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/entities/{entityName}/fields": {
      "get": {
        "tags": [
          "EntityField"
        ],
        "summary": "Get",
        "description": "Returns a collection of entity fields for the given page and filter",
        "operationId": "GetEntityFields",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Name",
            "in": "query",
            "description": "The unique name for the entity field",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EntityName",
            "in": "path",
            "description": "The name of the entity the field belongs to",
            "required": true,
            "schema": {
              "type": "string",
              "example": "wish"
            },
            "example": "wish"
          },
          {
            "name": "StandardField",
            "in": "query",
            "description": "Bool to identify if the entity field is a standard entity field",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Archived",
            "in": "query",
            "description": "Bool to identify if the entity is Archived",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Label",
            "in": "query",
            "description": "The display name used for the entity field",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Description",
            "in": "query",
            "description": "Small description that describes the entity field",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "DataType",
            "in": "query",
            "description": "Defines the type of data stored in the entity field",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "RelatedEntityName",
            "in": "query",
            "description": "Defines the name of the entity for a related column",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "DefaultValue",
            "in": "query",
            "description": "Defines the default value for data stored in the entity field",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Lookup",
            "in": "query",
            "description": "Defines the data used as a lookup for the entity field",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "QuickSearchable",
            "in": "query",
            "description": "Defines if the field is QuickSearchable",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "CascadeDelete",
            "in": "query",
            "description": "If the field is a relationship field then this defines if \r\nthe record should be deleted when the related record is deleted",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Created",
            "in": "query",
            "description": "When the record was created",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "CreatedBy",
            "in": "query",
            "description": "The user who created the record\r\n<ul><li>Default is 'API'</li></ul>",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Modified",
            "in": "query",
            "description": "When the record was last modified",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "ModifiedBy",
            "in": "query",
            "description": "The user who last modified the record\r\n<ul><li>Default is 'API'</li></ul>",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EntityFieldGetResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EntityFieldGetResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EntityFieldGetResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/entityValidations/{entityValidationId}": {
      "get": {
        "tags": [
          "EntityValidation"
        ],
        "summary": "Get By ID",
        "description": "Gets the custom entityValidation rule with the specified ID",
        "operationId": "GetEntityValidation",
        "parameters": [
          {
            "name": "entityValidationId",
            "in": "path",
            "description": "The id of the custom entity validation rule to get",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EntityValidationGetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EntityValidationGetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EntityValidationGetResponse"
                }
              }
            }
          },
          "404": {
            "description": "EntityValidation record not found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    },
    "/api/entityValidations": {
      "get": {
        "tags": [
          "EntityValidation"
        ],
        "summary": "Get",
        "description": "Returns a collection of entityValidation records for the given page and filter",
        "operationId": "GetEntityValidations",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "The page number to get\r\n\r\n*Default:* 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeCount",
            "in": "query",
            "description": "Whether to include the count in the returned data or not\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllRecords",
            "in": "query",
            "description": "Whether to include all records, this overrides the page size\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "description": "Whether to order the records descending first\r\n\r\n*Default:* False",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "EntityValidationId",
            "in": "query",
            "description": "The unique ID for the entityValidation",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "EntityName",
            "in": "query",
            "description": "The name of the entity of the entityValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "FieldName",
            "in": "query",
            "description": "The name of the entityField of the entityValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Operator",
            "in": "query",
            "description": "The logical operator to use in the entityValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "CreatedBy",
            "in": "query",
            "description": "The user who created the entityValidation",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ModifiedBy",
            "in": "query",
            "description": "The user who last changed the entityValidation",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EntityValidationGetResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EntityValidationGetResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EntityValidationGetResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "An error occurred"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "ActionGetResponse": {
        "type": "object",
        "properties": {
          "actionRef": {
            "type": "string",
            "description": "The unique ID for the action",
            "nullable": true,
            "example": "ACT000485"
          },
          "subject": {
            "type": "string",
            "description": "The subject of the action\r\n<ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "Paid"
          },
          "actionOnUser": {
            "type": "string",
            "description": "The user or user group to be reminded about an action\r\n<ul><li>User must exist</li></ul>",
            "nullable": true,
            "example": "Steve"
          },
          "status": {
            "type": "string",
            "description": "The status i.e complete, in progress, etc\r\n<ul><li>Must exist in the 'ActionStatus' lookup</li></ul><ul><li>Default is In Progress</li></ul>",
            "nullable": true,
            "example": "Completed"
          },
          "priority": {
            "type": "string",
            "description": "The Priority, High, Normal or low.\r\n<ul><li>For new records this must not be empty</li></ul><ul><li> Must exist as an existing priority</li></ul><ul><li>Default is Normal</li></ul>",
            "nullable": true,
            "example": "Normal"
          },
          "category": {
            "type": "string",
            "description": "The category that the action falls in\r\n<ul><li>Must exist in the 'ActionCategory' lookup</li></ul>",
            "nullable": true,
            "example": "Personal"
          },
          "subCategory": {
            "type": "string",
            "description": "The sub category that the action falls in\r\n<ul><li>Must exist in the lookup for the given category</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "narrative": {
            "type": "string",
            "description": "The notes or narrative for an action",
            "nullable": true,
            "example": "\"These have been paid but not put through the system!!!\""
          },
          "response": {
            "type": "string",
            "description": "Notes added in response to an action",
            "nullable": true,
            "example": "I haven't completed this yet"
          },
          "startDate": {
            "type": "string",
            "description": "The date on which the action may start\r\n<ul><li>Defaults to Current Date</li></ul>",
            "format": "date-time",
            "nullable": true,
            "example": "2022-01-18"
          },
          "startTime": {
            "type": "string",
            "description": "The time on which the action may start\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Default is 09:00</li></ul>",
            "nullable": true,
            "example": "09:00"
          },
          "dueDate": {
            "type": "string",
            "description": "The date by which the action should be completed",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-21"
          },
          "dueTime": {
            "type": "string",
            "description": "The time by which the action should be completed\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Must be a valid time</li></ul><ul><li>Default is Set to the start time</li></ul>",
            "nullable": true,
            "example": "09:00"
          },
          "reminderType": {
            "type": "string",
            "description": "The type of reminder alert to be used for an action (i.e. none or Email)\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Must exist in the 'Alert Type' lookup</li></ul><ul><li>Default is Email</li></ul>",
            "nullable": true,
            "example": "Email"
          },
          "reminderDate": {
            "type": "string",
            "description": "The date when the specified user will be reminded of an action",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-21"
          },
          "reminderTime": {
            "type": "string",
            "description": "The time when the specified user will be reminded of an action\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Default is Set to the due time</li></ul>",
            "nullable": true,
            "example": "\"09:00\""
          },
          "reminderProcessed": {
            "type": "boolean",
            "description": "A flag indicating if the reminder alert for an action has been sent\r\n<ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": true
          },
          "relationships": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ActionRelationshipBase"
            },
            "description": "The actions additional relationships",
            "nullable": true
          },
          "recordOwner": {
            "type": "string",
            "description": "The owner of this action if needed",
            "nullable": true,
            "example": "James"
          },
          "created": {
            "type": "string",
            "description": "The date the action was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-11-21T16:05:24.185Z"
          },
          "createdBy": {
            "type": "string",
            "description": "The user who created the action",
            "nullable": true,
            "example": "Steve"
          },
          "modified": {
            "type": "string",
            "description": "The date the action was last changed",
            "format": "date-time",
            "nullable": true,
            "example": "2022-11-21T16:05:24.185Z"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user who last changed the action",
            "nullable": true,
            "example": "John"
          },
          "completed": {
            "type": "string",
            "description": "The date the action was completed",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-21"
          },
          "completedBy": {
            "type": "string",
            "description": "The user who completed the action",
            "nullable": true,
            "example": "Steve"
          },
          "dataHubId": {
            "type": "string",
            "description": "A reference to the action in Access DataHub",
            "format": "uuid",
            "nullable": true,
            "example": "f371bb85-b497-48ee-bb34-8423a23222aa"
          },
          "duplicateAgainstAllMembers": {
            "type": "boolean",
            "description": "Whether the action has been duplicated against all members",
            "nullable": true,
            "example": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on a Action"
      },
      "ActionPostRequest": {
        "required": [
          "actionOnUser",
          "dueDate",
          "subject"
        ],
        "type": "object",
        "properties": {
          "actionRef": {
            "maxLength": 50,
            "type": "string",
            "description": "The unique ID for the action\r\n<ul><li>Must not already exist</li></ul><ul><li>Must be unique within the import</li></ul>",
            "nullable": true,
            "example": "ACT000485"
          },
          "subject": {
            "maxLength": 255,
            "minLength": 1,
            "type": "string",
            "description": "The subject of the action\r\n<ul><li>For new records this must not be empty</li></ul>",
            "example": "Paid"
          },
          "actionOnUser": {
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "description": "The user or user group to be reminded about an action\r\n<ul><li>User must exist</li></ul>",
            "example": "Steve"
          },
          "status": {
            "maxLength": 50,
            "type": "string",
            "description": "The status i.e complete, in progress, etc\r\n<ul><li>Must exist in the 'ActionStatus' lookup</li></ul><ul><li>Default is In Progress</li></ul>",
            "nullable": true,
            "example": "Completed"
          },
          "priority": {
            "maxLength": 50,
            "type": "string",
            "description": "The Priority, High, Normal or low.\r\n<ul><li>For new records this must not be empty</li></ul><ul><li> Must exist as an existing priority</li></ul><ul><li>Default is Normal</li></ul>",
            "nullable": true,
            "example": "Normal"
          },
          "category": {
            "maxLength": 50,
            "type": "string",
            "description": "The category that the action falls in\r\n<ul><li>Must exist in the 'ActionCategory' lookup</li></ul>",
            "nullable": true,
            "example": "Personal"
          },
          "subCategory": {
            "maxLength": 50,
            "type": "string",
            "description": "The sub category that the action falls in\r\n<ul><li>Must exist in the lookup for the given category</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "narrative": {
            "maxLength": 4000,
            "type": "string",
            "description": "The notes or narrative for an action",
            "nullable": true,
            "example": "\"These have been paid but not put through the system!!!\""
          },
          "response": {
            "maxLength": 2000,
            "type": "string",
            "description": "Notes added in response to an action",
            "nullable": true,
            "example": "I haven't completed this yet"
          },
          "startDate": {
            "type": "string",
            "description": "The date on which the action may start\r\n<ul><li>Defaults to Current Date</li></ul>",
            "format": "date-time",
            "nullable": true,
            "example": "2022-01-18"
          },
          "startTime": {
            "maxLength": 50,
            "type": "string",
            "description": "The time on which the action may start\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Default is 09:00</li></ul>",
            "nullable": true,
            "example": "09:00"
          },
          "dueDate": {
            "minLength": 1,
            "type": "string",
            "description": "The date by which the action should be completed",
            "format": "date-time",
            "example": "2022-12-21"
          },
          "dueTime": {
            "maxLength": 50,
            "type": "string",
            "description": "The time by which the action should be completed\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Must be a valid time</li></ul><ul><li>Default is Set to the start time</li></ul>",
            "nullable": true,
            "example": "09:00"
          },
          "reminderType": {
            "maxLength": 20,
            "type": "string",
            "description": "The type of reminder alert to be used for an action (i.e. none or Email)\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Must exist in the 'Alert Type' lookup</li></ul><ul><li>Default is Email</li></ul>",
            "nullable": true,
            "example": "Email"
          },
          "reminderDate": {
            "type": "string",
            "description": "The date when the specified user will be reminded of an action",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-21"
          },
          "reminderTime": {
            "maxLength": 50,
            "type": "string",
            "description": "The time when the specified user will be reminded of an action\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Default is Set to the due time</li></ul>",
            "nullable": true,
            "example": "\"09:00\""
          },
          "reminderProcessed": {
            "type": "boolean",
            "description": "A flag indicating if the reminder alert for an action has been sent\r\n<ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": true
          },
          "relationships": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ActionRelationshipPostRequest"
            },
            "description": "The actions additional relationships",
            "nullable": true
          },
          "recordOwner": {
            "maxLength": 50,
            "type": "string",
            "description": "The owner of this action if needed\r\n<ul><li>Value must be an access right or user</li></ul>",
            "nullable": true,
            "example": "Steve"
          },
          "created": {
            "type": "string",
            "description": "The date the action was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-02-12"
          },
          "createdBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user who created the action \r\n<ul><li>Default is API</li></ul>",
            "nullable": true,
            "example": "Muriel"
          },
          "modified": {
            "type": "string",
            "description": "The date the action was last changed",
            "format": "date-time",
            "nullable": true,
            "example": "2022-02-12"
          },
          "modifiedBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user who last changed the action \r\n<ul><li>Default is API</li></ul>",
            "nullable": true,
            "example": "Muriel"
          },
          "completed": {
            "type": "string",
            "description": "The date the action was completed",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-21"
          },
          "completedBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user who completed the action",
            "nullable": true,
            "example": "Steve"
          },
          "dataHubId": {
            "type": "string",
            "description": "A reference to the action in Access DataHub",
            "format": "uuid",
            "nullable": true,
            "example": "f371bb85-b497-48ee-bb34-8423a23222aa"
          },
          "duplicateAgainstAllMembers": {
            "type": "boolean",
            "description": "Whether the action has been duplicated against all members",
            "nullable": true,
            "example": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on a action to post"
      },
      "ActionPutBulkRequest": {
        "type": "object",
        "properties": {
          "actionRef": {
            "type": "string",
            "description": "The unique ID for the action",
            "nullable": true,
            "example": "ACT000485"
          },
          "subject": {
            "type": "string",
            "description": "The subject of the action\r\n<ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "Paid"
          },
          "actionOnUser": {
            "type": "string",
            "description": "The user or user group to be reminded about an action\r\n<ul><li>User must exist</li></ul>",
            "nullable": true,
            "example": "Steve"
          },
          "status": {
            "type": "string",
            "description": "The status i.e complete, in progress, etc\r\n<ul><li>Must exist in the 'ActionStatus' lookup</li></ul><ul><li>Default is In Progress</li></ul>",
            "nullable": true,
            "example": "Completed"
          },
          "priority": {
            "type": "string",
            "description": "The Priority, High, Normal or low.\r\n<ul><li>For new records this must not be empty</li></ul><ul><li> Must exist as an existing priority</li></ul><ul><li>Default is Normal</li></ul>",
            "nullable": true,
            "example": "Normal"
          },
          "category": {
            "type": "string",
            "description": "The category that the action falls in\r\n<ul><li>Must exist in the 'ActionCategory' lookup</li></ul>",
            "nullable": true,
            "example": "Personal"
          },
          "subCategory": {
            "type": "string",
            "description": "The sub category that the action falls in\r\n<ul><li>Must exist in the lookup for the given category</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "narrative": {
            "type": "string",
            "description": "The notes or narrative for an action",
            "nullable": true,
            "example": "\"These have been paid but not put through the system!!!\""
          },
          "response": {
            "type": "string",
            "description": "Notes added in response to an action",
            "nullable": true,
            "example": "I haven't completed this yet"
          },
          "startDate": {
            "type": "string",
            "description": "The date on which the action may start\r\n<ul><li>Defaults to Current Date</li></ul>",
            "format": "date-time",
            "nullable": true,
            "example": "2022-01-18"
          },
          "startTime": {
            "type": "string",
            "description": "The time on which the action may start\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Default is 09:00</li></ul>",
            "nullable": true,
            "example": "09:00"
          },
          "dueDate": {
            "type": "string",
            "description": "The date by which the action should be completed",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-21"
          },
          "dueTime": {
            "type": "string",
            "description": "The time by which the action should be completed\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Must be a valid time</li></ul><ul><li>Default is Set to the start time</li></ul>",
            "nullable": true,
            "example": "09:00"
          },
          "reminderType": {
            "type": "string",
            "description": "The type of reminder alert to be used for an action (i.e. none or Email)\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Must exist in the 'Alert Type' lookup</li></ul><ul><li>Default is Email</li></ul>",
            "nullable": true,
            "example": "Email"
          },
          "reminderDate": {
            "type": "string",
            "description": "The date when the specified user will be reminded of an action",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-21"
          },
          "reminderTime": {
            "type": "string",
            "description": "The time when the specified user will be reminded of an action\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Default is Set to the due time</li></ul>",
            "nullable": true,
            "example": "\"09:00\""
          },
          "reminderProcessed": {
            "type": "boolean",
            "description": "A flag indicating if the reminder alert for an action has been sent\r\n<ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": true
          },
          "modified": {
            "type": "string",
            "description": "The date the action was last changed",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user who last changed the action",
            "nullable": true,
            "example": "Muriel"
          },
          "completed": {
            "type": "string",
            "description": "The date the action was completed",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-21"
          },
          "completedBy": {
            "type": "string",
            "description": "The user who completed the action",
            "nullable": true,
            "example": "Steve"
          },
          "dataHubId": {
            "type": "string",
            "description": "A reference to the action in Access DataHub",
            "format": "uuid",
            "nullable": true,
            "example": "f371bb85-b497-48ee-bb34-8423a23222aa"
          },
          "duplicateAgainstAllMembers": {
            "type": "boolean",
            "description": "Whether the action has been duplicated against all members",
            "nullable": true,
            "example": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on a action to update"
      },
      "ActionPutRequest": {
        "type": "object",
        "properties": {
          "subject": {
            "type": "string",
            "description": "The subject of the action\r\n<ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "Paid"
          },
          "actionOnUser": {
            "type": "string",
            "description": "The user or user group to be reminded about an action\r\n<ul><li>User must exist</li></ul>",
            "nullable": true,
            "example": "Steve"
          },
          "status": {
            "type": "string",
            "description": "The status i.e complete, in progress, etc\r\n<ul><li>Must exist in the 'ActionStatus' lookup</li></ul><ul><li>Default is In Progress</li></ul>",
            "nullable": true,
            "example": "Completed"
          },
          "priority": {
            "type": "string",
            "description": "The Priority, High, Normal or low.\r\n<ul><li>For new records this must not be empty</li></ul><ul><li> Must exist as an existing priority</li></ul><ul><li>Default is Normal</li></ul>",
            "nullable": true,
            "example": "Normal"
          },
          "category": {
            "type": "string",
            "description": "The category that the action falls in\r\n<ul><li>Must exist in the 'ActionCategory' lookup</li></ul>",
            "nullable": true,
            "example": "Personal"
          },
          "subCategory": {
            "type": "string",
            "description": "The sub category that the action falls in\r\n<ul><li>Must exist in the lookup for the given category</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "narrative": {
            "type": "string",
            "description": "The notes or narrative for an action",
            "nullable": true,
            "example": "\"These have been paid but not put through the system!!!\""
          },
          "response": {
            "type": "string",
            "description": "Notes added in response to an action",
            "nullable": true,
            "example": "I haven't completed this yet"
          },
          "startDate": {
            "type": "string",
            "description": "The date on which the action may start\r\n<ul><li>Defaults to Current Date</li></ul>",
            "format": "date-time",
            "nullable": true,
            "example": "2022-01-18"
          },
          "startTime": {
            "type": "string",
            "description": "The time on which the action may start\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Default is 09:00</li></ul>",
            "nullable": true,
            "example": "09:00"
          },
          "dueDate": {
            "type": "string",
            "description": "The date by which the action should be completed",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-21"
          },
          "dueTime": {
            "type": "string",
            "description": "The time by which the action should be completed\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Must be a valid time</li></ul><ul><li>Default is Set to the start time</li></ul>",
            "nullable": true,
            "example": "09:00"
          },
          "reminderType": {
            "type": "string",
            "description": "The type of reminder alert to be used for an action (i.e. none or Email)\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Must exist in the 'Alert Type' lookup</li></ul><ul><li>Default is Email</li></ul>",
            "nullable": true,
            "example": "Email"
          },
          "reminderDate": {
            "type": "string",
            "description": "The date when the specified user will be reminded of an action",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-21"
          },
          "reminderTime": {
            "type": "string",
            "description": "The time when the specified user will be reminded of an action\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Default is Set to the due time</li></ul>",
            "nullable": true,
            "example": "\"09:00\""
          },
          "reminderProcessed": {
            "type": "boolean",
            "description": "A flag indicating if the reminder alert for an action has been sent\r\n<ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": true
          },
          "modified": {
            "type": "string",
            "description": "The date the action was last changed",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user who last changed the action",
            "nullable": true,
            "example": "Muriel"
          },
          "completed": {
            "type": "string",
            "description": "The date the action was completed",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-21"
          },
          "completedBy": {
            "type": "string",
            "description": "The user who completed the action",
            "nullable": true,
            "example": "Steve"
          },
          "dataHubId": {
            "type": "string",
            "description": "A reference to the action in Access DataHub",
            "format": "uuid",
            "nullable": true,
            "example": "f371bb85-b497-48ee-bb34-8423a23222aa"
          },
          "duplicateAgainstAllMembers": {
            "type": "boolean",
            "description": "Whether the action has been duplicated against all members",
            "nullable": true,
            "example": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on a action to update"
      },
      "ActionRelationshipBase": {
        "type": "object",
        "properties": {
          "relatedRecordType": {
            "type": "string",
            "description": "The related records entity type",
            "nullable": true,
            "example": "Contact"
          },
          "relatedRecordId": {
            "type": "string",
            "description": "The id of the related record",
            "nullable": true,
            "example": "001444"
          },
          "label": {
            "type": "string",
            "description": "The Label",
            "nullable": true,
            "example": "Mr Andrew Taylor"
          }
        },
        "additionalProperties": false,
        "description": "Contains information common to all models for the action manager relationships"
      },
      "ActionRelationshipPostRequest": {
        "required": [
          "relatedRecordId",
          "relatedRecordType"
        ],
        "type": "object",
        "properties": {
          "relatedRecordType": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string",
            "description": "The related records entity type",
            "example": "Contact"
          },
          "relatedRecordId": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string",
            "description": "The id of the related record",
            "example": "001444"
          },
          "label": {
            "maxLength": 100,
            "type": "string",
            "description": "The Label",
            "nullable": true,
            "example": "Mr Andrew Taylor"
          },
          "contactDataHubId": {
            "type": "string",
            "description": "A reference to the contact in Access DataHub",
            "format": "uuid",
            "nullable": true,
            "example": "0cd31ed8-b0ec-4934-aefd-47937507a26d"
          }
        },
        "additionalProperties": false,
        "description": "Contains information common to all models for the action manager relationships"
      },
      "AdminCrmVersionGetResponse": {
        "type": "object",
        "properties": {
          "version": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AttachmentGetResponse": {
        "type": "object",
        "properties": {
          "attachmentRef": {
            "type": "integer",
            "description": "The unique identifier for the attachment",
            "format": "int64",
            "example": 1246
          },
          "scanned": {
            "type": "boolean",
            "description": "Flag whether the attachment has been scanned for threats",
            "example": false
          },
          "ref": {
            "type": "string",
            "description": "The reference of the records that the attachment links to\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Must be an existing Communication Id</li></ul>",
            "nullable": true,
            "example": "COM01"
          },
          "refType": {
            "type": "string",
            "description": "The type of the reference that the attachment links to.\r\n<ul><li>Defaults to 'Communication' if not supplied.</li></ul>",
            "nullable": true,
            "example": "Communication"
          },
          "description": {
            "type": "string",
            "description": "A description of the attachment \r\n<ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "AnnualDinner.docx"
          },
          "priority": {
            "type": "string",
            "description": "The priority of the attachment\r\n<ul><li>Must exist as an existing priority of Urgent, High, Normal, Low</li></ul><ul><li>Defaults to Normal</li></ul>",
            "nullable": true,
            "example": "Normal"
          },
          "extension": {
            "type": "string",
            "description": "The file extension of the attachment\r\n<ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "docx"
          },
          "attachType": {
            "type": "string",
            "description": "The type of attachment\r\n<ul><li>Must exist in the 'AttachmentType' lookup</li></ul><ul><li>Default is Document</li></ul>",
            "nullable": true,
            "example": "Document"
          },
          "fileName": {
            "type": "string",
            "description": "The name of the file\r\n<ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "AnnualDinner"
          },
          "attachmentBytes": {
            "type": "string",
            "description": "The byte array of the attachment \r\n<ul><li>Must not be empty</li></ul>",
            "format": "byte",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the attachment to post"
      },
      "AttachmentPostRequest": {
        "type": "object",
        "properties": {
          "ref": {
            "maxLength": 152,
            "type": "string",
            "description": "The reference of the records that the attachment links to\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Must be an existing Communication Id</li></ul>",
            "nullable": true,
            "example": "COM01"
          },
          "refType": {
            "maxLength": 50,
            "type": "string",
            "description": "The type of the reference that the attachment links to.\r\n<ul><li>Defaults to 'Communication' if not supplied.</li></ul>",
            "nullable": true,
            "example": "Communication"
          },
          "description": {
            "maxLength": 255,
            "type": "string",
            "description": "A description of the attachment \r\n<ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "AnnualDinner.docx"
          },
          "priority": {
            "maxLength": 50,
            "type": "string",
            "description": "The priority of the attachment\r\n<ul><li>Must exist as an existing priority of Urgent, High, Normal, Low</li></ul><ul><li>Defaults to Normal</li></ul>",
            "nullable": true,
            "example": "Normal"
          },
          "extension": {
            "maxLength": 10,
            "type": "string",
            "description": "The file extension of the attachment\r\n<ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "docx"
          },
          "attachType": {
            "maxLength": 50,
            "type": "string",
            "description": "The type of attachment\r\n<ul><li>Must exist in the 'AttachmentType' lookup</li></ul><ul><li>Default is Document</li></ul>",
            "nullable": true,
            "example": "Document"
          },
          "fileName": {
            "maxLength": 255,
            "type": "string",
            "description": "The name of the file\r\n<ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "AnnualDinner"
          },
          "attachmentBytes": {
            "type": "string",
            "description": "The byte array of the attachment \r\n<ul><li>Must not be empty</li></ul>",
            "format": "byte",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the attachment to post"
      },
      "ChangeGetResponse": {
        "type": "object",
        "properties": {
          "resourceName": {
            "type": "string",
            "description": "The Resource Name the changes are for",
            "nullable": true,
            "example": "Access.thankQ.Events.V2.PaymentModifiedChangeSet"
          },
          "systemName": {
            "type": "string",
            "description": "The system name the changes are for",
            "nullable": true,
            "example": "Data Engine"
          },
          "pageSize": {
            "type": "integer",
            "description": "The page size",
            "format": "int32",
            "nullable": true,
            "example": 1000
          },
          "dataCount": {
            "type": "integer",
            "description": "A count of the data returned",
            "format": "int32",
            "nullable": true,
            "example": 61
          },
          "data": {
            "type": "array",
            "items": { },
            "description": "The data that has been changed",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains changed data for a resource"
      },
      "ChangesByResourceFilterGetRequest": {
        "required": [
          "systemName"
        ],
        "type": "object",
        "properties": {
          "systemName": {
            "minLength": 1,
            "type": "string",
            "description": "The system to get the changes for",
            "example": "System Name"
          },
          "pageSize": {
            "maximum": 1000,
            "minimum": 1,
            "type": "integer",
            "description": "The maximum number of records in each page to get.\r\nPlease continue to page through the data until no data is returned.\r\n*Default:* 50",
            "format": "int32"
          },
          "lastSuccessDate": {
            "type": "string",
            "description": "An optional date indicating when the system last successfully retrieved changes.\r\nIf set, then changes from this date and time (plus a small buffer) will be included.",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "dataEnginePageId": {
            "type": "integer",
            "description": "Internal use only. An optional id used by Access Data Engine.\r\nNot recommended for use by other systems.",
            "format": "int32",
            "nullable": true
          },
          "baseChangesOnly": {
            "type": "boolean",
            "description": "Whether to read only changes that are based on the base version of the resource",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains request for getting changes to a resource"
      },
      "ClientTokenResponse": {
        "type": "object",
        "properties": {
          "accessToken": {
            "type": "string",
            "description": "The access JWT",
            "nullable": true
          },
          "expiry": {
            "type": "string",
            "description": "When the token expires",
            "format": "date-time",
            "example": "2022-12-06"
          }
        },
        "additionalProperties": false,
        "description": "Contains a JWT access token along with other useful info for a client"
      },
      "CommunicationGetResponse": {
        "type": "object",
        "properties": {
          "communicationId": {
            "type": "string",
            "description": "The unique id for the communication\r\n<ul><li>Must be unique to the record set being posted</li></ul><ul><li>Must not already exist</li></ul><ul><li>Default is Sequence:CommId</li></ul>",
            "nullable": true,
            "example": "COM01"
          },
          "communicationRef": {
            "type": "string",
            "description": "The reference for the communication\r\n<ul><li>Must not already exist in the database or the Web Area</li></ul><ul><li>Must be unique to the record set being posted</li></ul><ul><li>Default is Sequence:Communication</li></ul>",
            "nullable": true,
            "example": "COMREF00323"
          },
          "serialNumber": {
            "type": "string",
            "description": "The serial number of the contact\r\n<ul><li>Must exist as a contact</li></ul>",
            "nullable": true,
            "example": "0000001"
          },
          "externalRef": {
            "type": "string",
            "description": "The reference to another object\r\n<ul><li>Default is \"None\"</li></ul>",
            "nullable": true,
            "example": "AnnualFundraiser"
          },
          "externalRefType": {
            "type": "string",
            "description": "The related objects type\r\n<ul><li>Default is \"None\"</li></ul>",
            "nullable": true,
            "example": "Event"
          },
          "category": {
            "type": "string",
            "description": "The category for the communication\r\n<ul><li>Must exist in the 'CommunicationCategory' Lookup</li></ul>",
            "nullable": true,
            "example": "Fundraising"
          },
          "communicationType": {
            "type": "string",
            "description": "Type of communication \r\n<ul><li>Must exist in the 'Communication' Lookup</li></ul><ul><li>Default is \"Note\"</li></ul>",
            "nullable": true,
            "example": "Letter"
          },
          "dateOfCommunication": {
            "type": "string",
            "description": "The date on which the communication was logged",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "subject": {
            "type": "string",
            "description": "The subject of the communication\r\n<ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "Hear About Our Latest Event"
          },
          "notes": {
            "type": "string",
            "description": "The detail of the communication",
            "nullable": true,
            "example": "Free text notes in here"
          },
          "priority": {
            "type": "string",
            "description": "The priority of the communication\r\n<ul><li>Must be an existing priority</li></ul><ul><li>Default is \"Normal\"</li></ul>",
            "nullable": true,
            "example": "1"
          },
          "inOrOut": {
            "type": "string",
            "description": "Flag to denote if the Communication is Inbound or Outbound\r\n<ul><li>Must be either 'In' or 'Out'</li></ul>",
            "nullable": true,
            "example": "Out"
          },
          "response": {
            "type": "string",
            "description": "Negative, Positive, Tentative\r\n<ul><li>Must exist in the 'Response' Lookup</li></ul>",
            "nullable": true,
            "example": "..."
          },
          "segmentId": {
            "type": "string",
            "description": "The Segment ID of the sent mailing",
            "nullable": true,
            "example": "Seg000123"
          },
          "author": {
            "type": "string",
            "description": "The user or contact that created this document or communication",
            "nullable": true,
            "example": "John Funding"
          },
          "created": {
            "type": "string",
            "description": "The date the communication was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "type": "string",
            "description": "The user who created the communication\r\n<ul><li>Default is \"API\"</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "modified": {
            "type": "string",
            "description": "The date the communication was last changed",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user who last changed the communication\r\n<ul><li>Default is \"API\"</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "contactDataHubId": {
            "type": "string",
            "description": "A reference to the contact in Access DataHub",
            "format": "uuid",
            "nullable": true,
            "example": "498537b7-27f6-4fc6-ad00-1389c307a95a"
          },
          "contactExternalRef": {
            "type": "string",
            "description": "A reference to the contact in an external system",
            "nullable": true,
            "example": "Ext001"
          },
          "mailingId": {
            "type": "string",
            "description": "The mailing id of the mailing for this communication",
            "nullable": true,
            "example": "M01231"
          },
          "udT01": {
            "type": "string",
            "description": "The user defined text field 01",
            "nullable": true
          },
          "udT02": {
            "type": "string",
            "description": "The user defined text field 02",
            "nullable": true
          },
          "udT03": {
            "type": "string",
            "description": "The user defined text field 03",
            "nullable": true
          },
          "udT04": {
            "type": "string",
            "description": "The user defined text field 04",
            "nullable": true
          },
          "udT05": {
            "type": "string",
            "description": "The user defined text field 05",
            "nullable": true
          },
          "udN01": {
            "type": "number",
            "description": "The user defined number field 01",
            "format": "double",
            "nullable": true,
            "example": 34.22
          },
          "udN02": {
            "type": "number",
            "description": "The user defined number field 02",
            "format": "double",
            "nullable": true
          },
          "udN03": {
            "type": "number",
            "description": "The user defined number field 03",
            "format": "double",
            "nullable": true
          },
          "udN04": {
            "type": "number",
            "description": "The user defined number field 04",
            "format": "double",
            "nullable": true
          },
          "udN05": {
            "type": "number",
            "description": "The user defined number field 05",
            "format": "double",
            "nullable": true
          },
          "udD01": {
            "type": "string",
            "description": "The user defined date field 01",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD02": {
            "type": "string",
            "description": "The user defined date field 02",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD03": {
            "type": "string",
            "description": "The user defined date field 03",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD04": {
            "type": "string",
            "description": "The user defined date field 04",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD05": {
            "type": "string",
            "description": "The user defined date field 05",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udB01": {
            "type": "boolean",
            "description": "The user defined bool field 01",
            "nullable": true,
            "example": false
          },
          "udB02": {
            "type": "boolean",
            "description": "The user defined bool field 02",
            "nullable": true
          },
          "udB03": {
            "type": "boolean",
            "description": "The user defined bool field 03",
            "nullable": true
          },
          "udB04": {
            "type": "boolean",
            "description": "The user defined bool field 04",
            "nullable": true
          },
          "udB05": {
            "type": "boolean",
            "description": "The user defined bool field 05",
            "nullable": true
          },
          "dataHubId": {
            "type": "string",
            "description": "A reference to the communication in Access DataHub",
            "format": "uuid",
            "nullable": true,
            "example": "83a471e5-6d16-4e3b-b33b-6fa6a81f9a18"
          },
          "attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AttachmentGetResponse"
            },
            "description": "The communications's attachments",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on a communication"
      },
      "CommunicationGetResponseCollectionItem": {
        "type": "object",
        "properties": {
          "communicationId": {
            "type": "string",
            "description": "The unique id for the communication\r\n<ul><li>Must be unique to the record set being posted</li></ul><ul><li>Must not already exist</li></ul><ul><li>Default is Sequence:CommId</li></ul>",
            "nullable": true,
            "example": "COM01"
          },
          "communicationRef": {
            "type": "string",
            "description": "The reference for the communication\r\n<ul><li>Must not already exist in the database or the Web Area</li></ul><ul><li>Must be unique to the record set being posted</li></ul><ul><li>Default is Sequence:Communication</li></ul>",
            "nullable": true,
            "example": "COMREF00323"
          },
          "serialNumber": {
            "type": "string",
            "description": "The serial number of the contact\r\n<ul><li>Must exist as a contact</li></ul>",
            "nullable": true,
            "example": "0000001"
          },
          "externalRef": {
            "type": "string",
            "description": "The reference to another object\r\n<ul><li>Default is \"None\"</li></ul>",
            "nullable": true,
            "example": "AnnualFundraiser"
          },
          "externalRefType": {
            "type": "string",
            "description": "The related objects type\r\n<ul><li>Default is \"None\"</li></ul>",
            "nullable": true,
            "example": "Event"
          },
          "category": {
            "type": "string",
            "description": "The category for the communication\r\n<ul><li>Must exist in the 'CommunicationCategory' Lookup</li></ul>",
            "nullable": true,
            "example": "Fundraising"
          },
          "communicationType": {
            "type": "string",
            "description": "Type of communication \r\n<ul><li>Must exist in the 'Communication' Lookup</li></ul><ul><li>Default is \"Note\"</li></ul>",
            "nullable": true,
            "example": "Letter"
          },
          "dateOfCommunication": {
            "type": "string",
            "description": "The date on which the communication was logged",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "subject": {
            "type": "string",
            "description": "The subject of the communication\r\n<ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "Hear About Our Latest Event"
          },
          "notes": {
            "type": "string",
            "description": "The detail of the communication",
            "nullable": true,
            "example": "Free text notes in here"
          },
          "priority": {
            "type": "string",
            "description": "The priority of the communication\r\n<ul><li>Must be an existing priority</li></ul><ul><li>Default is \"Normal\"</li></ul>",
            "nullable": true,
            "example": "1"
          },
          "inOrOut": {
            "type": "string",
            "description": "Flag to denote if the Communication is Inbound or Outbound\r\n<ul><li>Must be either 'In' or 'Out'</li></ul>",
            "nullable": true,
            "example": "Out"
          },
          "response": {
            "type": "string",
            "description": "Negative, Positive, Tentative\r\n<ul><li>Must exist in the 'Response' Lookup</li></ul>",
            "nullable": true,
            "example": "..."
          },
          "segmentId": {
            "type": "string",
            "description": "The Segment ID of the sent mailing",
            "nullable": true,
            "example": "Seg000123"
          },
          "author": {
            "type": "string",
            "description": "The user or contact that created this document or communication",
            "nullable": true,
            "example": "John Funding"
          },
          "created": {
            "type": "string",
            "description": "The date the communication was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "type": "string",
            "description": "The user who created the communication\r\n<ul><li>Default is \"API\"</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "modified": {
            "type": "string",
            "description": "The date the communication was last changed",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user who last changed the communication\r\n<ul><li>Default is \"API\"</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "contactDataHubId": {
            "type": "string",
            "description": "A reference to the contact in Access DataHub",
            "format": "uuid",
            "nullable": true,
            "example": "498537b7-27f6-4fc6-ad00-1389c307a95a"
          },
          "contactExternalRef": {
            "type": "string",
            "description": "A reference to the contact in an external system",
            "nullable": true,
            "example": "Ext001"
          },
          "mailingId": {
            "type": "string",
            "description": "The mailing id of the mailing for this communication",
            "nullable": true,
            "example": "M01231"
          },
          "udT01": {
            "type": "string",
            "description": "The user defined text field 01",
            "nullable": true
          },
          "udT02": {
            "type": "string",
            "description": "The user defined text field 02",
            "nullable": true
          },
          "udT03": {
            "type": "string",
            "description": "The user defined text field 03",
            "nullable": true
          },
          "udT04": {
            "type": "string",
            "description": "The user defined text field 04",
            "nullable": true
          },
          "udT05": {
            "type": "string",
            "description": "The user defined text field 05",
            "nullable": true
          },
          "udN01": {
            "type": "number",
            "description": "The user defined number field 01",
            "format": "double",
            "nullable": true,
            "example": 34.22
          },
          "udN02": {
            "type": "number",
            "description": "The user defined number field 02",
            "format": "double",
            "nullable": true
          },
          "udN03": {
            "type": "number",
            "description": "The user defined number field 03",
            "format": "double",
            "nullable": true
          },
          "udN04": {
            "type": "number",
            "description": "The user defined number field 04",
            "format": "double",
            "nullable": true
          },
          "udN05": {
            "type": "number",
            "description": "The user defined number field 05",
            "format": "double",
            "nullable": true
          },
          "udD01": {
            "type": "string",
            "description": "The user defined date field 01",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD02": {
            "type": "string",
            "description": "The user defined date field 02",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD03": {
            "type": "string",
            "description": "The user defined date field 03",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD04": {
            "type": "string",
            "description": "The user defined date field 04",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD05": {
            "type": "string",
            "description": "The user defined date field 05",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udB01": {
            "type": "boolean",
            "description": "The user defined bool field 01",
            "nullable": true,
            "example": false
          },
          "udB02": {
            "type": "boolean",
            "description": "The user defined bool field 02",
            "nullable": true
          },
          "udB03": {
            "type": "boolean",
            "description": "The user defined bool field 03",
            "nullable": true
          },
          "udB04": {
            "type": "boolean",
            "description": "The user defined bool field 04",
            "nullable": true
          },
          "udB05": {
            "type": "boolean",
            "description": "The user defined bool field 05",
            "nullable": true
          },
          "dataHubId": {
            "type": "string",
            "description": "A reference to the communication in Access DataHub",
            "format": "uuid",
            "nullable": true,
            "example": "83a471e5-6d16-4e3b-b33b-6fa6a81f9a18"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on a communication"
      },
      "CommunicationGetResponseCollectionResponse": {
        "type": "object",
        "properties": {
          "pageNumber": {
            "type": "integer",
            "description": "The page number for the data in the response",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "The page size for the data in the response",
            "format": "int32"
          },
          "totalCount": {
            "type": "integer",
            "description": "The total number of items in the data collection",
            "format": "int32",
            "nullable": true
          },
          "pageCount": {
            "type": "integer",
            "description": "The total number of pages in the data collection",
            "format": "int32",
            "nullable": true,
            "readOnly": true
          },
          "hasNextPage": {
            "type": "boolean",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CommunicationGetResponseCollectionItem"
            },
            "description": "The collection of items",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Holds response information for a collection of data"
      },
      "CommunicationPostRequest": {
        "type": "object",
        "properties": {
          "communicationId": {
            "maxLength": 152,
            "type": "string",
            "description": "The unique id for the communication\r\n<ul><li>Must be unique to the record set being posted</li></ul><ul><li>Must not already exist</li></ul><ul><li>Default is Sequence:CommId</li></ul>",
            "nullable": true,
            "example": "COM01"
          },
          "communicationRef": {
            "type": "string",
            "description": "The reference for the communication\r\n<ul><li>Must not already exist in the database or the Web Area</li></ul><ul><li>Must be unique to the record set being posted</li></ul><ul><li>Default is Sequence:Communication</li></ul>",
            "nullable": true,
            "example": "COMREF00323"
          },
          "serialNumber": {
            "maxLength": 50,
            "type": "string",
            "description": "The serial number of the contact\r\n<ul><li>Must exist as a contact</li></ul>",
            "nullable": true,
            "example": "0000001"
          },
          "externalRef": {
            "maxLength": 50,
            "type": "string",
            "description": "The reference to another object\r\n<ul><li>Default is \"None\"</li></ul>",
            "nullable": true,
            "example": "AnnualFundraiser"
          },
          "externalRefType": {
            "maxLength": 50,
            "type": "string",
            "description": "The related objects type\r\n<ul><li>Default is \"None\"</li></ul>",
            "nullable": true,
            "example": "Event"
          },
          "category": {
            "maxLength": 50,
            "type": "string",
            "description": "The category for the communication\r\n<ul><li>Must exist in the 'CommunicationCategory' Lookup</li></ul>",
            "nullable": true,
            "example": "Fundraising"
          },
          "communicationType": {
            "maxLength": 50,
            "type": "string",
            "description": "Type of communication \r\n<ul><li>Must exist in the 'Communication' Lookup</li></ul><ul><li>Default is \"Note\"</li></ul>",
            "nullable": true,
            "example": "Letter"
          },
          "dateOfCommunication": {
            "type": "string",
            "description": "The date on which the communication was logged",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "subject": {
            "maxLength": 255,
            "type": "string",
            "description": "The subject of the communication\r\n<ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "Hear About Our Latest Event"
          },
          "notes": {
            "type": "string",
            "description": "The detail of the communication",
            "nullable": true,
            "example": "Free text notes in here"
          },
          "priority": {
            "maxLength": 50,
            "type": "string",
            "description": "The priority of the communication\r\n<ul><li>Must be an existing priority</li></ul><ul><li>Default is \"Normal\"</li></ul>",
            "nullable": true,
            "example": "1"
          },
          "inOrOut": {
            "maxLength": 50,
            "type": "string",
            "description": "Flag to denote if the Communication is Inbound or Outbound\r\n<ul><li>Must be either 'In' or 'Out'</li></ul>",
            "nullable": true,
            "example": "Out"
          },
          "response": {
            "maxLength": 100,
            "type": "string",
            "description": "Negative, Positive, Tentative\r\n<ul><li>Must exist in the 'Response' Lookup</li></ul>",
            "nullable": true,
            "example": "..."
          },
          "segmentId": {
            "maxLength": 50,
            "type": "string",
            "description": "The Segment ID of the sent mailing",
            "nullable": true,
            "example": "Seg000123"
          },
          "author": {
            "maxLength": 50,
            "type": "string",
            "description": "The user or contact that created this document or communication",
            "nullable": true,
            "example": "John Funding"
          },
          "created": {
            "type": "string",
            "description": "The date the communication was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user who created the communication\r\n<ul><li>Default is \"API\"</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "modified": {
            "type": "string",
            "description": "The date the communication was last changed",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user who last changed the communication\r\n<ul><li>Default is \"API\"</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "contactDataHubId": {
            "type": "string",
            "description": "A reference to the contact in Access DataHub",
            "format": "uuid",
            "nullable": true,
            "example": "498537b7-27f6-4fc6-ad00-1389c307a95a"
          },
          "contactExternalRef": {
            "maxLength": 50,
            "type": "string",
            "description": "A reference to the contact in an external system",
            "nullable": true,
            "example": "Ext001"
          },
          "mailingId": {
            "maxLength": 50,
            "type": "string",
            "description": "The mailing id of the mailing for this communication",
            "nullable": true,
            "example": "M01231"
          },
          "udT01": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 01",
            "nullable": true
          },
          "udT02": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 02",
            "nullable": true
          },
          "udT03": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 03",
            "nullable": true
          },
          "udT04": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 04",
            "nullable": true
          },
          "udT05": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 05",
            "nullable": true
          },
          "udN01": {
            "type": "number",
            "description": "The user defined number field 01",
            "format": "double",
            "nullable": true,
            "example": 34.22
          },
          "udN02": {
            "type": "number",
            "description": "The user defined number field 02",
            "format": "double",
            "nullable": true
          },
          "udN03": {
            "type": "number",
            "description": "The user defined number field 03",
            "format": "double",
            "nullable": true
          },
          "udN04": {
            "type": "number",
            "description": "The user defined number field 04",
            "format": "double",
            "nullable": true
          },
          "udN05": {
            "type": "number",
            "description": "The user defined number field 05",
            "format": "double",
            "nullable": true
          },
          "udD01": {
            "type": "string",
            "description": "The user defined date field 01",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD02": {
            "type": "string",
            "description": "The user defined date field 02",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD03": {
            "type": "string",
            "description": "The user defined date field 03",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD04": {
            "type": "string",
            "description": "The user defined date field 04",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD05": {
            "type": "string",
            "description": "The user defined date field 05",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udB01": {
            "type": "boolean",
            "description": "The user defined bool field 01",
            "nullable": true,
            "example": false
          },
          "udB02": {
            "type": "boolean",
            "description": "The user defined bool field 02",
            "nullable": true
          },
          "udB03": {
            "type": "boolean",
            "description": "The user defined bool field 03",
            "nullable": true
          },
          "udB04": {
            "type": "boolean",
            "description": "The user defined bool field 04",
            "nullable": true
          },
          "udB05": {
            "type": "boolean",
            "description": "The user defined bool field 05",
            "nullable": true
          },
          "dataHubId": {
            "type": "string",
            "description": "A reference to the communication in Access DataHub",
            "format": "uuid",
            "nullable": true,
            "example": "83a471e5-6d16-4e3b-b33b-6fa6a81f9a18"
          },
          "attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AttachmentPostRequest"
            },
            "description": "The communications's attachments",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on a communication to post"
      },
      "CommunicationPutBulkRequest": {
        "type": "object",
        "properties": {
          "communicationRef": {
            "type": "string",
            "description": "The reference for the communication",
            "nullable": true,
            "example": "COMREF00323"
          },
          "serialNumber": {
            "type": "string",
            "description": "The serial number of the contact",
            "nullable": true,
            "example": "12353782"
          },
          "externalRef": {
            "type": "string",
            "description": "The reference to another object",
            "nullable": true,
            "example": "M102110388-H1"
          },
          "communicationId": {
            "type": "string",
            "description": "The unique id for the communication",
            "nullable": true,
            "example": "COM01"
          },
          "dataHubId": {
            "type": "string",
            "description": "A reference to the communication in Access DataHub",
            "format": "uuid",
            "nullable": true,
            "example": "e7475a37-0795-480f-ab31-bda092e7abcf"
          },
          "category": {
            "type": "string",
            "description": "The category for the communication",
            "nullable": true,
            "example": "Personal"
          },
          "communicationType": {
            "type": "string",
            "description": "Type of communication",
            "nullable": true,
            "example": "Letter"
          },
          "dateOfCommunication": {
            "type": "string",
            "description": "The date on which the communication was logged",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "subject": {
            "type": "string",
            "description": "The subject of the communication",
            "nullable": true,
            "example": "Paid"
          },
          "notes": {
            "type": "string",
            "description": "The detail of the communication",
            "nullable": true,
            "example": "Free text notes in here"
          },
          "priority": {
            "type": "string",
            "description": "The priority of the communication",
            "nullable": true,
            "example": "Normal"
          },
          "inOrOut": {
            "type": "string",
            "description": "Flag to denote if the Communication is Inbound or Outbound",
            "nullable": true,
            "example": "Out"
          },
          "response": {
            "type": "string",
            "description": "Negative, Positive, Tentative",
            "nullable": true,
            "example": "I haven't completed this yet"
          },
          "segmentId": {
            "type": "string",
            "description": "The Segment ID of the sent mailing",
            "nullable": true,
            "example": "Seg000123"
          },
          "author": {
            "type": "string",
            "description": "The user or contact that created this document or communication",
            "nullable": true,
            "example": "John Funding"
          },
          "modified": {
            "type": "string",
            "description": "The date the communication was last changed",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user who last changed the communication",
            "nullable": true,
            "example": "Muriel"
          },
          "contactDataHubId": {
            "type": "string",
            "description": "A reference to the contact in Access DataHub",
            "format": "uuid",
            "nullable": true,
            "example": "30e0e70d-3d1f-46a0-a7dc-95577ecc3dfe"
          },
          "contactExternalRef": {
            "type": "string",
            "description": "A reference to the contact in an external system",
            "nullable": true,
            "example": "117450"
          },
          "udT01": {
            "type": "string",
            "description": "The user defined text field 01",
            "nullable": true,
            "example": "User Defined Text Field Here"
          },
          "udT02": {
            "type": "string",
            "description": "The user defined text field 02",
            "nullable": true
          },
          "udT03": {
            "type": "string",
            "description": "The user defined text field 03",
            "nullable": true
          },
          "udT04": {
            "type": "string",
            "description": "The user defined text field 04",
            "nullable": true
          },
          "udT05": {
            "type": "string",
            "description": "The user defined text field 05",
            "nullable": true
          },
          "udN01": {
            "type": "number",
            "description": "The user defined number field 01",
            "format": "double",
            "nullable": true,
            "example": 34.22
          },
          "udN02": {
            "type": "number",
            "description": "The user defined number field 02",
            "format": "double",
            "nullable": true
          },
          "udN03": {
            "type": "number",
            "description": "The user defined number field 03",
            "format": "double",
            "nullable": true
          },
          "udN04": {
            "type": "number",
            "description": "The user defined number field 04",
            "format": "double",
            "nullable": true
          },
          "udN05": {
            "type": "number",
            "description": "The user defined number field 05",
            "format": "double",
            "nullable": true
          },
          "udD01": {
            "type": "string",
            "description": "The user defined date field 01",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD02": {
            "type": "string",
            "description": "The user defined date field 02",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD03": {
            "type": "string",
            "description": "The user defined date field 03",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD04": {
            "type": "string",
            "description": "The user defined date field 04",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD05": {
            "type": "string",
            "description": "The user defined date field 05",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udB01": {
            "type": "boolean",
            "description": "The user defined bool field 01",
            "nullable": true,
            "example": false
          },
          "udB02": {
            "type": "boolean",
            "description": "The user defined bool field 02",
            "nullable": true
          },
          "udB03": {
            "type": "boolean",
            "description": "The user defined bool field 03",
            "nullable": true
          },
          "udB04": {
            "type": "boolean",
            "description": "The user defined bool field 04",
            "nullable": true
          },
          "udB05": {
            "type": "boolean",
            "description": "The user defined bool field 05",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on a communication to update"
      },
      "CommunicationPutRequest": {
        "type": "object",
        "properties": {
          "category": {
            "type": "string",
            "description": "The category for the communication",
            "nullable": true,
            "example": "Personal"
          },
          "communicationType": {
            "type": "string",
            "description": "Type of communication",
            "nullable": true,
            "example": "Letter"
          },
          "dateOfCommunication": {
            "type": "string",
            "description": "The date on which the communication was logged",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "subject": {
            "type": "string",
            "description": "The subject of the communication",
            "nullable": true,
            "example": "Paid"
          },
          "notes": {
            "type": "string",
            "description": "The detail of the communication",
            "nullable": true,
            "example": "Free text notes in here"
          },
          "priority": {
            "type": "string",
            "description": "The priority of the communication",
            "nullable": true,
            "example": "Normal"
          },
          "inOrOut": {
            "type": "string",
            "description": "Flag to denote if the Communication is Inbound or Outbound",
            "nullable": true,
            "example": "Out"
          },
          "response": {
            "type": "string",
            "description": "Negative, Positive, Tentative",
            "nullable": true,
            "example": "I haven't completed this yet"
          },
          "segmentId": {
            "type": "string",
            "description": "The Segment ID of the sent mailing",
            "nullable": true,
            "example": "Seg000123"
          },
          "author": {
            "type": "string",
            "description": "The user or contact that created this document or communication",
            "nullable": true,
            "example": "John Funding"
          },
          "modified": {
            "type": "string",
            "description": "The date the communication was last changed",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user who last changed the communication",
            "nullable": true,
            "example": "Muriel"
          },
          "contactDataHubId": {
            "type": "string",
            "description": "A reference to the contact in Access DataHub",
            "format": "uuid",
            "nullable": true,
            "example": "30e0e70d-3d1f-46a0-a7dc-95577ecc3dfe"
          },
          "contactExternalRef": {
            "type": "string",
            "description": "A reference to the contact in an external system",
            "nullable": true,
            "example": "117450"
          },
          "udT01": {
            "type": "string",
            "description": "The user defined text field 01",
            "nullable": true,
            "example": "User Defined Text Field Here"
          },
          "udT02": {
            "type": "string",
            "description": "The user defined text field 02",
            "nullable": true
          },
          "udT03": {
            "type": "string",
            "description": "The user defined text field 03",
            "nullable": true
          },
          "udT04": {
            "type": "string",
            "description": "The user defined text field 04",
            "nullable": true
          },
          "udT05": {
            "type": "string",
            "description": "The user defined text field 05",
            "nullable": true
          },
          "udN01": {
            "type": "number",
            "description": "The user defined number field 01",
            "format": "double",
            "nullable": true,
            "example": 34.22
          },
          "udN02": {
            "type": "number",
            "description": "The user defined number field 02",
            "format": "double",
            "nullable": true
          },
          "udN03": {
            "type": "number",
            "description": "The user defined number field 03",
            "format": "double",
            "nullable": true
          },
          "udN04": {
            "type": "number",
            "description": "The user defined number field 04",
            "format": "double",
            "nullable": true
          },
          "udN05": {
            "type": "number",
            "description": "The user defined number field 05",
            "format": "double",
            "nullable": true
          },
          "udD01": {
            "type": "string",
            "description": "The user defined date field 01",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD02": {
            "type": "string",
            "description": "The user defined date field 02",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD03": {
            "type": "string",
            "description": "The user defined date field 03",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD04": {
            "type": "string",
            "description": "The user defined date field 04",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD05": {
            "type": "string",
            "description": "The user defined date field 05",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udB01": {
            "type": "boolean",
            "description": "The user defined bool field 01",
            "nullable": true,
            "example": false
          },
          "udB02": {
            "type": "boolean",
            "description": "The user defined bool field 02",
            "nullable": true
          },
          "udB03": {
            "type": "boolean",
            "description": "The user defined bool field 03",
            "nullable": true
          },
          "udB04": {
            "type": "boolean",
            "description": "The user defined bool field 04",
            "nullable": true
          },
          "udB05": {
            "type": "boolean",
            "description": "The user defined bool field 05",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on a communication to update"
      },
      "ConsentPurposeGetResponse": {
        "type": "object",
        "properties": {
          "importId": {
            "type": "string",
            "description": "The import ID of the Consent Purpose",
            "nullable": true,
            "example": "ImportID0001"
          },
          "purpose": {
            "type": "string",
            "description": "The name of the Consent Purpose\r\n<ul><li>Must be unique in the imported records</li></ul><ul><li> Must not already exist</li></ul>",
            "nullable": true,
            "example": "Annual Newsletter"
          },
          "category": {
            "type": "string",
            "description": "The category the Consent Purpose belongs to\r\n<ul><li>Must exist in the 'Mailing Purpose Category' lookup</li></ul>",
            "nullable": true,
            "example": "Newsletter"
          },
          "description": {
            "type": "string",
            "description": "The description of the Consent Purpose",
            "nullable": true,
            "example": "Annual emails including any update to the organisation"
          },
          "mailingPreference": {
            "type": "string",
            "description": "The mailing preference associated with the Consent Purpose\r\n<ul><li>Must exist in the 'MailingPreference' lookup</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "requiredForContact": {
            "type": "boolean",
            "description": "Whether explicit consent is required to send a mailing with regards to the Consent Purpose\r\n<ul><li>Default is 'true'</li></ul>",
            "nullable": true,
            "example": true
          },
          "individual": {
            "type": "boolean",
            "description": "Whether the Consent Purpose applies to individuals\r\n<ul><li>Default is 'true'</li></ul>",
            "nullable": true,
            "example": true
          },
          "organisation": {
            "type": "boolean",
            "description": "Whether the Consent Purpose applies to organisations\r\n<ul><li>Default is 'true'</li></ul>",
            "nullable": true,
            "example": true
          },
          "household": {
            "type": "boolean",
            "description": "Whether the Consent Purpose applies to households",
            "nullable": true
          },
          "expiryMonths": {
            "type": "integer",
            "description": "How many months before the consent recorded against the Consent Purpose becomes invalid\r\n<ul><li>Default is LibraryDefinition: ContactPurposeDefaultExpiryMonths</li></ul>",
            "format": "int32",
            "nullable": true,
            "example": 24
          },
          "webPublish": {
            "type": "boolean",
            "description": "Whether to publish the Consent Purpose to the Web\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": true
          },
          "webDescription": {
            "type": "string",
            "description": "The description of the Consent Purpose on the Web\r\n<ul><li>When WebPublish = true this must not be empty</li></ul>",
            "nullable": true,
            "example": "Annual emails including any update to the organisation"
          },
          "webAgreementText": {
            "type": "string",
            "description": "The agreement text for the Consent Purpose on the Web\r\n<ul><li>When WebPublish = true this must not be empty</li></ul>",
            "nullable": true,
            "example": "Click here to consent to hear the latest and greatest from our organisation"
          },
          "widgetConsent": {
            "type": "boolean",
            "description": "Whether the Consent Purpose should be used in Widgets\r\n<ul><li>Cannot be true for multiple records in the imported</li></ul><ul><li>Cannot be true if record already exists with WidgetConsent set to true</li></ul><ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "widgetSourceCode": {
            "type": "string",
            "description": "The Source Code for the Consent Purpose when used in Widgets\r\n<ul><li>When WidgetConsent = true this must not be empty</li></ul><ul><li>Must be an existing Source Code</li></ul>",
            "nullable": true,
            "example": ""
          },
          "widgetAgreementText": {
            "type": "string",
            "description": "The agreement text for the Consent Purpose when used in Widgets\r\n<ul><li>When WidgetConsent = true this must not be empty</li></ul>",
            "nullable": true,
            "example": ""
          },
          "created": {
            "type": "string",
            "description": "When the record was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "type": "string",
            "description": "The user who created the record\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "modified": {
            "type": "string",
            "description": "When the record was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user who last modified the record\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          }
        },
        "additionalProperties": false
      },
      "ConsentPurposePostRequest": {
        "required": [
          "category",
          "purpose"
        ],
        "type": "object",
        "properties": {
          "purpose": {
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "description": "The name of the Consent Purpose\r\n<ul><li>Must be unique in the imported records</li></ul><ul><li> Must not already exist</li></ul>",
            "example": "Annual Newsletter"
          },
          "category": {
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "description": "The category the Consent Purpose belongs to\r\n<ul><li>Must exist in the 'Mailing Purpose Category' lookup</li></ul>",
            "example": "Newsletter"
          },
          "description": {
            "maxLength": 2000,
            "type": "string",
            "description": "The description of the Consent Purpose",
            "nullable": true,
            "example": "Annual emails including any update to the organisation"
          },
          "mailingPreference": {
            "maxLength": 50,
            "type": "string",
            "description": "The mailing preference associated with the Consent Purpose\r\n<ul><li>Must exist in the 'MailingPreference' lookup</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "requiredForContact": {
            "type": "boolean",
            "description": "Whether explicit consent is required to send a mailing with regards to the Consent Purpose\r\n<ul><li>Default is 'true'</li></ul>",
            "nullable": true,
            "example": true
          },
          "individual": {
            "type": "boolean",
            "description": "Whether the Consent Purpose applies to individuals\r\n<ul><li>Default is 'true'</li></ul>",
            "nullable": true,
            "example": true
          },
          "organisation": {
            "type": "boolean",
            "description": "Whether the Consent Purpose applies to organisations\r\n<ul><li>Default is 'true'</li></ul>",
            "nullable": true,
            "example": true
          },
          "household": {
            "type": "boolean",
            "description": "Whether the Consent Purpose applies to households",
            "nullable": true
          },
          "expiryMonths": {
            "type": "integer",
            "description": "How many months before the consent recorded against the Consent Purpose becomes invalid\r\n<ul><li>Default is LibraryDefinition: ContactPurposeDefaultExpiryMonths</li></ul>",
            "format": "int32",
            "nullable": true,
            "example": 24
          },
          "webPublish": {
            "type": "boolean",
            "description": "Whether to publish the Consent Purpose to the Web\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": true
          },
          "webDescription": {
            "maxLength": 2000,
            "type": "string",
            "description": "The description of the Consent Purpose on the Web\r\n<ul><li>When WebPublish = true this must not be empty</li></ul>",
            "nullable": true,
            "example": "Annual emails including any update to the organisation"
          },
          "webAgreementText": {
            "maxLength": 255,
            "type": "string",
            "description": "The agreement text for the Consent Purpose on the Web\r\n<ul><li>When WebPublish = true this must not be empty</li></ul>",
            "nullable": true,
            "example": "Click here to consent to hear the latest and greatest from our organisation"
          },
          "widgetConsent": {
            "type": "boolean",
            "description": "Whether the Consent Purpose should be used in Widgets\r\n<ul><li>Cannot be true for multiple records in the imported</li></ul><ul><li>Cannot be true if record already exists with WidgetConsent set to true</li></ul><ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "widgetSourceCode": {
            "maxLength": 20,
            "type": "string",
            "description": "The Source Code for the Consent Purpose when used in Widgets\r\n<ul><li>When WidgetConsent = true this must not be empty</li></ul><ul><li>Must be an existing Source Code</li></ul>",
            "nullable": true,
            "example": ""
          },
          "widgetAgreementText": {
            "maxLength": 2000,
            "type": "string",
            "description": "The agreement text for the Consent Purpose when used in Widgets\r\n<ul><li>When WidgetConsent = true this must not be empty</li></ul>",
            "nullable": true,
            "example": ""
          },
          "created": {
            "type": "string",
            "description": "When the record was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user who created the record\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "modified": {
            "type": "string",
            "description": "When the record was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user who last modified the record\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          }
        },
        "additionalProperties": false
      },
      "ContactAddressGetResponse": {
        "type": "object",
        "properties": {
          "isPreferredAddress": {
            "type": "boolean",
            "description": "Indicates whether an address is the preferred address for a contact",
            "nullable": true,
            "example": true
          },
          "addressId": {
            "type": "string",
            "description": "The address id\r\n<ul><li>For new records this must not already exist</li></ul><ul><li>Must be unique in the imported records</li></ul><ul><li>Default is Sequence: AddressID</li></ul>",
            "nullable": true,
            "example": "Z122139"
          },
          "serialNumber": {
            "type": "string",
            "description": "The serial number of the contact\r\n<ul><li>Must be a serial number of an existing contact</li></ul>",
            "nullable": true,
            "example": "123456789"
          },
          "addressType": {
            "type": "string",
            "description": "The type of the address \r\n<ul><li>Must exist in the 'AddressDescription' lookup</li></ul><ul><li>Default is LibraryDefinition: DefaultExtraAddressType</li></ul>",
            "nullable": true,
            "example": "Residential"
          },
          "address": {
            "type": "string",
            "description": "The 1st part of the address\r\n<ul><li>One of the following fields needs to be populated: Postcode, Address, Town, County, EmailAddress, DayTelephone, EveningTelephone, Mobile, Fax</li></ul>",
            "nullable": true,
            "example": "98  Fordham Rd"
          },
          "town": {
            "type": "string",
            "description": "The town of the address",
            "nullable": true,
            "example": "Kettering"
          },
          "county": {
            "type": "string",
            "description": "The county of the address",
            "nullable": true,
            "example": "Northamptonshire"
          },
          "country": {
            "type": "string",
            "description": "The country of the address\r\n<ul><li>Default is LibraryDefinition: DefaultCountry</li></ul>",
            "nullable": true,
            "example": "England"
          },
          "postcode": {
            "type": "string",
            "description": "The postcode of the address",
            "nullable": true,
            "example": "NN5 4DD"
          },
          "useAddressFrom": {
            "type": "string",
            "description": "The date from when the address is to be recorded against the contact record as the contact's address",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "useAddressUntil": {
            "type": "string",
            "description": "The date until when the address is to be recorded against the contact record as the contact's address",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "annualSeasonalAddress": {
            "type": "boolean",
            "description": "Indicates that the address is used annually to specify a seasonal address based on the dates entered in the Address From and Address To fields\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": true
          },
          "notMailingAddress": {
            "type": "boolean",
            "description": "Indicates if the address can be mailed to or not\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": true
          },
          "dayTelephone": {
            "type": "string",
            "description": "The contact’s day time telephone number",
            "nullable": true,
            "example": "023452948238"
          },
          "tpsDayTelephone": {
            "type": "boolean",
            "description": "Whether the contact's day number is on the TPS",
            "nullable": true,
            "example": "True"
          },
          "eveningTelephone": {
            "type": "string",
            "description": "The contact’s evening telephone number",
            "nullable": true,
            "example": "023452948238"
          },
          "tpsEveningTelephone": {
            "type": "boolean",
            "description": "Whether the contact's evening number is on the TPS",
            "nullable": true,
            "example": "False"
          },
          "mobileNumber": {
            "type": "string",
            "description": "The contact’s mobile number",
            "nullable": true,
            "example": "023452948238"
          },
          "tpsMobileNumber": {
            "type": "boolean",
            "description": "Whether the contact's mobile number is on the TPS",
            "nullable": true,
            "example": "False"
          },
          "emailAddress": {
            "type": "string",
            "description": "The contact’s email address\r\n<ul><li>Must be a valid e-mail address</li></ul>",
            "nullable": true,
            "example": "b_simmons@hotmail.com"
          },
          "emailAddressValidated": {
            "type": "string",
            "description": "The date when the email address was last fully validated",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "emailAddressValid": {
            "type": "boolean",
            "description": "Indicates whether or not the email address has been fully validated, and is usable",
            "nullable": true,
            "example": true
          },
          "faxNumber": {
            "type": "string",
            "description": "The contact’s fax number",
            "nullable": true,
            "example": ""
          },
          "created": {
            "type": "string",
            "description": "When the record was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "type": "string",
            "description": "The user who created the record\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "modified": {
            "type": "string",
            "description": "When the record was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user who last modified the record\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "dataHubId": {
            "type": "string",
            "description": "A reference to the address in Access DataHub",
            "format": "uuid",
            "nullable": true,
            "example": "f335aeea-ddd5-4c32-8f5f-c99ac448310c"
          },
          "udT01": {
            "type": "string",
            "description": "The user defined text field 01",
            "nullable": true,
            "example": "User Defined Text Field Here"
          },
          "udT02": {
            "type": "string",
            "description": "The user defined text field 02",
            "nullable": true
          },
          "udT03": {
            "type": "string",
            "description": "The user defined text field 03",
            "nullable": true
          },
          "udT04": {
            "type": "string",
            "description": "The user defined text field 04",
            "nullable": true
          },
          "udT05": {
            "type": "string",
            "description": "The user defined text field 05",
            "nullable": true
          },
          "udT06": {
            "type": "string",
            "description": "The user defined text field 06",
            "nullable": true
          },
          "udT07": {
            "type": "string",
            "description": "The user defined text field 07",
            "nullable": true
          },
          "udT08": {
            "type": "string",
            "description": "The user defined text field 08",
            "nullable": true
          },
          "udT09": {
            "type": "string",
            "description": "The user defined text field 09",
            "nullable": true
          },
          "udT10": {
            "type": "string",
            "description": "The user defined text field 10",
            "nullable": true
          },
          "udN01": {
            "type": "number",
            "description": "The user defined number field 01",
            "format": "double",
            "nullable": true,
            "example": 34.22
          },
          "udN02": {
            "type": "number",
            "description": "The user defined number field 02",
            "format": "double",
            "nullable": true
          },
          "udN03": {
            "type": "number",
            "description": "The user defined number field 03",
            "format": "double",
            "nullable": true
          },
          "udN04": {
            "type": "number",
            "description": "The user defined number field 04",
            "format": "double",
            "nullable": true
          },
          "udN05": {
            "type": "number",
            "description": "The user defined number field 05",
            "format": "double",
            "nullable": true
          },
          "udN06": {
            "type": "number",
            "description": "The user defined number field 06",
            "format": "double",
            "nullable": true
          },
          "udN07": {
            "type": "number",
            "description": "The user defined number field 07",
            "format": "double",
            "nullable": true
          },
          "udN08": {
            "type": "number",
            "description": "The user defined number field 08",
            "format": "double",
            "nullable": true
          },
          "udN09": {
            "type": "number",
            "description": "The user defined number field 09",
            "format": "double",
            "nullable": true
          },
          "udN10": {
            "type": "number",
            "description": "The user defined number field 10",
            "format": "double",
            "nullable": true
          },
          "udD01": {
            "type": "string",
            "description": "The user defined date field 01",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD02": {
            "type": "string",
            "description": "The user defined date field 02",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD03": {
            "type": "string",
            "description": "The user defined date field 03",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD04": {
            "type": "string",
            "description": "The user defined date field 04",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD05": {
            "type": "string",
            "description": "The user defined date field 05",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD06": {
            "type": "string",
            "description": "The user defined date field 06",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD07": {
            "type": "string",
            "description": "The user defined date field 07",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD08": {
            "type": "string",
            "description": "The user defined date field 08",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD09": {
            "type": "string",
            "description": "The user defined date field 09",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD10": {
            "type": "string",
            "description": "The user defined date field 10",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udB01": {
            "type": "boolean",
            "description": "The user defined bool field 01",
            "nullable": true,
            "example": false
          },
          "udB02": {
            "type": "boolean",
            "description": "The user defined bool field 02",
            "nullable": true
          },
          "udB03": {
            "type": "boolean",
            "description": "The user defined bool field 03",
            "nullable": true
          },
          "udB04": {
            "type": "boolean",
            "description": "The user defined bool field 04",
            "nullable": true
          },
          "udB05": {
            "type": "boolean",
            "description": "The user defined bool field 05",
            "nullable": true
          },
          "udB06": {
            "type": "boolean",
            "description": "The user defined bool field 06",
            "nullable": true
          },
          "udB07": {
            "type": "boolean",
            "description": "The user defined bool field 07",
            "nullable": true
          },
          "udB08": {
            "type": "boolean",
            "description": "The user defined bool field 08",
            "nullable": true
          },
          "udB09": {
            "type": "boolean",
            "description": "The user defined bool field 09",
            "nullable": true
          },
          "udB10": {
            "type": "boolean",
            "description": "The user defined bool field 10",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on a contacts address"
      },
      "ContactAddressPostRequest": {
        "type": "object",
        "properties": {
          "addressId": {
            "maxLength": 50,
            "type": "string",
            "description": "The address id\r\n<ul><li>For new records this must not already exist</li></ul><ul><li>Must be unique in the imported records</li></ul><ul><li>Default is Sequence: AddressID</li></ul>",
            "nullable": true,
            "example": "Z122139"
          },
          "serialNumber": {
            "maxLength": 50,
            "type": "string",
            "description": "The serial number of the contact\r\n<ul><li>Must be a serial number of an existing contact</li></ul>",
            "nullable": true,
            "example": "123456789"
          },
          "addressType": {
            "maxLength": 50,
            "type": "string",
            "description": "The type of the address \r\n<ul><li>Must exist in the 'AddressDescription' lookup</li></ul><ul><li>Default is LibraryDefinition: DefaultExtraAddressType</li></ul>",
            "nullable": true,
            "example": "Residential"
          },
          "address": {
            "maxLength": 255,
            "type": "string",
            "description": "The 1st part of the address\r\n<ul><li>One of the following fields needs to be populated: Postcode, Address, Town, County, EmailAddress, DayTelephone, EveningTelephone, Mobile, Fax</li></ul>",
            "nullable": true,
            "example": "98  Fordham Rd"
          },
          "town": {
            "maxLength": 100,
            "type": "string",
            "description": "The town of the address",
            "nullable": true,
            "example": "Kettering"
          },
          "county": {
            "maxLength": 100,
            "type": "string",
            "description": "The county of the address",
            "nullable": true,
            "example": "Northamptonshire"
          },
          "country": {
            "maxLength": 50,
            "type": "string",
            "description": "The country of the address\r\n<ul><li>Default is LibraryDefinition: DefaultCountry</li></ul>",
            "nullable": true,
            "example": "England"
          },
          "postcode": {
            "maxLength": 15,
            "type": "string",
            "description": "The postcode of the address",
            "nullable": true,
            "example": "NN5 4DD"
          },
          "useAddressFrom": {
            "type": "string",
            "description": "The date from when the address is to be recorded against the contact record as the contact's address",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "useAddressUntil": {
            "type": "string",
            "description": "The date until when the address is to be recorded against the contact record as the contact's address",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "annualSeasonalAddress": {
            "type": "boolean",
            "description": "Indicates that the address is used annually to specify a seasonal address based on the dates entered in the Address From and Address To fields\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": true
          },
          "notMailingAddress": {
            "type": "boolean",
            "description": "Indicates if the address can be mailed to or not\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": true
          },
          "dayTelephone": {
            "maxLength": 30,
            "type": "string",
            "description": "The contact’s day time telephone number",
            "nullable": true,
            "example": "023452948238"
          },
          "tpsDayTelephone": {
            "type": "boolean",
            "description": "Whether the contact's day number is on the TPS",
            "nullable": true,
            "example": "True"
          },
          "eveningTelephone": {
            "maxLength": 30,
            "type": "string",
            "description": "The contact’s evening telephone number",
            "nullable": true,
            "example": "023452948238"
          },
          "tpsEveningTelephone": {
            "type": "boolean",
            "description": "Whether the contact's evening number is on the TPS",
            "nullable": true,
            "example": "False"
          },
          "mobileNumber": {
            "maxLength": 30,
            "type": "string",
            "description": "The contact’s mobile number",
            "nullable": true,
            "example": "023452948238"
          },
          "tpsMobileNumber": {
            "type": "boolean",
            "description": "Whether the contact's mobile number is on the TPS",
            "nullable": true,
            "example": "False"
          },
          "emailAddress": {
            "maxLength": 255,
            "type": "string",
            "description": "The contact’s email address\r\n<ul><li>Must be a valid e-mail address</li></ul>",
            "nullable": true,
            "example": "b_simmons@hotmail.com"
          },
          "emailAddressValidated": {
            "type": "string",
            "description": "The date when the email address was last fully validated",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "emailAddressValid": {
            "type": "boolean",
            "description": "Indicates whether or not the email address has been fully validated, and is usable",
            "nullable": true,
            "example": true
          },
          "faxNumber": {
            "maxLength": 30,
            "type": "string",
            "description": "The contact’s fax number",
            "nullable": true,
            "example": ""
          },
          "created": {
            "type": "string",
            "description": "When the record was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user who created the record\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "modified": {
            "type": "string",
            "description": "When the record was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user who last modified the record\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "dataHubId": {
            "type": "string",
            "description": "A reference to the address in Access DataHub",
            "format": "uuid",
            "nullable": true,
            "example": "f335aeea-ddd5-4c32-8f5f-c99ac448310c"
          },
          "udT01": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 01",
            "nullable": true,
            "example": "User Defined Text Field Here"
          },
          "udT02": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 02",
            "nullable": true
          },
          "udT03": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 03",
            "nullable": true
          },
          "udT04": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 04",
            "nullable": true
          },
          "udT05": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 05",
            "nullable": true
          },
          "udT06": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 06",
            "nullable": true
          },
          "udT07": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 07",
            "nullable": true
          },
          "udT08": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 08",
            "nullable": true
          },
          "udT09": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 09",
            "nullable": true
          },
          "udT10": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 10",
            "nullable": true
          },
          "udN01": {
            "type": "number",
            "description": "The user defined number field 01",
            "format": "double",
            "nullable": true,
            "example": 34.22
          },
          "udN02": {
            "type": "number",
            "description": "The user defined number field 02",
            "format": "double",
            "nullable": true
          },
          "udN03": {
            "type": "number",
            "description": "The user defined number field 03",
            "format": "double",
            "nullable": true
          },
          "udN04": {
            "type": "number",
            "description": "The user defined number field 04",
            "format": "double",
            "nullable": true
          },
          "udN05": {
            "type": "number",
            "description": "The user defined number field 05",
            "format": "double",
            "nullable": true
          },
          "udN06": {
            "type": "number",
            "description": "The user defined number field 06",
            "format": "double",
            "nullable": true
          },
          "udN07": {
            "type": "number",
            "description": "The user defined number field 07",
            "format": "double",
            "nullable": true
          },
          "udN08": {
            "type": "number",
            "description": "The user defined number field 08",
            "format": "double",
            "nullable": true
          },
          "udN09": {
            "type": "number",
            "description": "The user defined number field 09",
            "format": "double",
            "nullable": true
          },
          "udN10": {
            "type": "number",
            "description": "The user defined number field 10",
            "format": "double",
            "nullable": true
          },
          "udD01": {
            "type": "string",
            "description": "The user defined date field 01",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD02": {
            "type": "string",
            "description": "The user defined date field 02",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD03": {
            "type": "string",
            "description": "The user defined date field 03",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD04": {
            "type": "string",
            "description": "The user defined date field 04",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD05": {
            "type": "string",
            "description": "The user defined date field 05",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD06": {
            "type": "string",
            "description": "The user defined date field 06",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD07": {
            "type": "string",
            "description": "The user defined date field 07",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD08": {
            "type": "string",
            "description": "The user defined date field 08",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD09": {
            "type": "string",
            "description": "The user defined date field 09",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD10": {
            "type": "string",
            "description": "The user defined date field 10",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udB01": {
            "type": "boolean",
            "description": "The user defined bool field 01",
            "nullable": true,
            "example": false
          },
          "udB02": {
            "type": "boolean",
            "description": "The user defined bool field 02",
            "nullable": true
          },
          "udB03": {
            "type": "boolean",
            "description": "The user defined bool field 03",
            "nullable": true
          },
          "udB04": {
            "type": "boolean",
            "description": "The user defined bool field 04",
            "nullable": true
          },
          "udB05": {
            "type": "boolean",
            "description": "The user defined bool field 05",
            "nullable": true
          },
          "udB06": {
            "type": "boolean",
            "description": "The user defined bool field 06",
            "nullable": true
          },
          "udB07": {
            "type": "boolean",
            "description": "The user defined bool field 07",
            "nullable": true
          },
          "udB08": {
            "type": "boolean",
            "description": "The user defined bool field 08",
            "nullable": true
          },
          "udB09": {
            "type": "boolean",
            "description": "The user defined bool field 09",
            "nullable": true
          },
          "udB10": {
            "type": "boolean",
            "description": "The user defined bool field 10",
            "nullable": true
          },
          "preferredAddress": {
            "type": "boolean",
            "description": "Preferred flag for address",
            "nullable": true
          },
          "preferredEmail": {
            "type": "boolean",
            "description": "Preferred flag for email address",
            "nullable": true
          },
          "preferredMobile": {
            "type": "boolean",
            "description": "Preferred flag for mobile",
            "nullable": true
          },
          "preferredDayTelephone": {
            "type": "boolean",
            "description": "Preferred flag for day telephone",
            "nullable": true
          },
          "preferredEveningTelephone": {
            "type": "boolean",
            "description": "Preferred flag for evening telephone",
            "nullable": true
          },
          "preferredFaxNumber": {
            "type": "boolean",
            "description": "Preferred flag for fax number",
            "nullable": true
          },
          "contactDataHubId": {
            "type": "string",
            "description": "A reference to the contact in Access DataHub",
            "format": "uuid",
            "nullable": true,
            "example": "241ac267-d46e-4ee5-845e-113607a6c5fd"
          },
          "preferences": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ContactPreferenceChildPostRequest"
            },
            "description": "The new preferences that the new address will be used for",
            "nullable": true
          },
          "previousAddresses": {
            "type": "string",
            "description": "Comma delimited list of Address Ids we wish to mark as previous",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the address to post"
      },
      "ContactAddressSingleGetResponse": {
        "type": "object",
        "properties": {
          "addressId": {
            "type": "string",
            "description": "The address id\r\n<ul><li>For new records this must not already exist</li></ul><ul><li>Must be unique in the imported records</li></ul><ul><li>Default is Sequence: AddressID</li></ul>",
            "nullable": true,
            "example": "Z122139"
          },
          "serialNumber": {
            "type": "string",
            "description": "The serial number of the contact\r\n<ul><li>Must be a serial number of an existing contact</li></ul>",
            "nullable": true,
            "example": "123456789"
          },
          "addressType": {
            "type": "string",
            "description": "The type of the address \r\n<ul><li>Must exist in the 'AddressDescription' lookup</li></ul><ul><li>Default is LibraryDefinition: DefaultExtraAddressType</li></ul>",
            "nullable": true,
            "example": "Residential"
          },
          "address": {
            "type": "string",
            "description": "The 1st part of the address\r\n<ul><li>One of the following fields needs to be populated: Postcode, Address, Town, County, EmailAddress, DayTelephone, EveningTelephone, Mobile, Fax</li></ul>",
            "nullable": true,
            "example": "98  Fordham Rd"
          },
          "town": {
            "type": "string",
            "description": "The town of the address",
            "nullable": true,
            "example": "Kettering"
          },
          "county": {
            "type": "string",
            "description": "The county of the address",
            "nullable": true,
            "example": "Northamptonshire"
          },
          "country": {
            "type": "string",
            "description": "The country of the address\r\n<ul><li>Default is LibraryDefinition: DefaultCountry</li></ul>",
            "nullable": true,
            "example": "England"
          },
          "postcode": {
            "type": "string",
            "description": "The postcode of the address",
            "nullable": true,
            "example": "NN5 4DD"
          },
          "useAddressFrom": {
            "type": "string",
            "description": "The date from when the address is to be recorded against the contact record as the contact's address",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "useAddressUntil": {
            "type": "string",
            "description": "The date until when the address is to be recorded against the contact record as the contact's address",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "annualSeasonalAddress": {
            "type": "boolean",
            "description": "Indicates that the address is used annually to specify a seasonal address based on the dates entered in the Address From and Address To fields\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": true
          },
          "notMailingAddress": {
            "type": "boolean",
            "description": "Indicates if the address can be mailed to or not\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": true
          },
          "dayTelephone": {
            "type": "string",
            "description": "The contact’s day time telephone number",
            "nullable": true,
            "example": "023452948238"
          },
          "tpsDayTelephone": {
            "type": "boolean",
            "description": "Whether the contact's day number is on the TPS",
            "nullable": true,
            "example": "True"
          },
          "eveningTelephone": {
            "type": "string",
            "description": "The contact’s evening telephone number",
            "nullable": true,
            "example": "023452948238"
          },
          "tpsEveningTelephone": {
            "type": "boolean",
            "description": "Whether the contact's evening number is on the TPS",
            "nullable": true,
            "example": "False"
          },
          "mobileNumber": {
            "type": "string",
            "description": "The contact’s mobile number",
            "nullable": true,
            "example": "023452948238"
          },
          "tpsMobileNumber": {
            "type": "boolean",
            "description": "Whether the contact's mobile number is on the TPS",
            "nullable": true,
            "example": "False"
          },
          "emailAddress": {
            "type": "string",
            "description": "The contact’s email address\r\n<ul><li>Must be a valid e-mail address</li></ul>",
            "nullable": true,
            "example": "b_simmons@hotmail.com"
          },
          "emailAddressValidated": {
            "type": "string",
            "description": "The date when the email address was last fully validated",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "emailAddressValid": {
            "type": "boolean",
            "description": "Indicates whether or not the email address has been fully validated, and is usable",
            "nullable": true,
            "example": true
          },
          "faxNumber": {
            "type": "string",
            "description": "The contact’s fax number",
            "nullable": true,
            "example": ""
          },
          "created": {
            "type": "string",
            "description": "When the record was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "type": "string",
            "description": "The user who created the record\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "modified": {
            "type": "string",
            "description": "When the record was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user who last modified the record\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "dataHubId": {
            "type": "string",
            "description": "A reference to the address in Access DataHub",
            "format": "uuid",
            "nullable": true,
            "example": "f335aeea-ddd5-4c32-8f5f-c99ac448310c"
          },
          "udT01": {
            "type": "string",
            "description": "The user defined text field 01",
            "nullable": true,
            "example": "User Defined Text Field Here"
          },
          "udT02": {
            "type": "string",
            "description": "The user defined text field 02",
            "nullable": true
          },
          "udT03": {
            "type": "string",
            "description": "The user defined text field 03",
            "nullable": true
          },
          "udT04": {
            "type": "string",
            "description": "The user defined text field 04",
            "nullable": true
          },
          "udT05": {
            "type": "string",
            "description": "The user defined text field 05",
            "nullable": true
          },
          "udT06": {
            "type": "string",
            "description": "The user defined text field 06",
            "nullable": true
          },
          "udT07": {
            "type": "string",
            "description": "The user defined text field 07",
            "nullable": true
          },
          "udT08": {
            "type": "string",
            "description": "The user defined text field 08",
            "nullable": true
          },
          "udT09": {
            "type": "string",
            "description": "The user defined text field 09",
            "nullable": true
          },
          "udT10": {
            "type": "string",
            "description": "The user defined text field 10",
            "nullable": true
          },
          "udN01": {
            "type": "number",
            "description": "The user defined number field 01",
            "format": "double",
            "nullable": true,
            "example": 34.22
          },
          "udN02": {
            "type": "number",
            "description": "The user defined number field 02",
            "format": "double",
            "nullable": true
          },
          "udN03": {
            "type": "number",
            "description": "The user defined number field 03",
            "format": "double",
            "nullable": true
          },
          "udN04": {
            "type": "number",
            "description": "The user defined number field 04",
            "format": "double",
            "nullable": true
          },
          "udN05": {
            "type": "number",
            "description": "The user defined number field 05",
            "format": "double",
            "nullable": true
          },
          "udN06": {
            "type": "number",
            "description": "The user defined number field 06",
            "format": "double",
            "nullable": true
          },
          "udN07": {
            "type": "number",
            "description": "The user defined number field 07",
            "format": "double",
            "nullable": true
          },
          "udN08": {
            "type": "number",
            "description": "The user defined number field 08",
            "format": "double",
            "nullable": true
          },
          "udN09": {
            "type": "number",
            "description": "The user defined number field 09",
            "format": "double",
            "nullable": true
          },
          "udN10": {
            "type": "number",
            "description": "The user defined number field 10",
            "format": "double",
            "nullable": true
          },
          "udD01": {
            "type": "string",
            "description": "The user defined date field 01",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD02": {
            "type": "string",
            "description": "The user defined date field 02",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD03": {
            "type": "string",
            "description": "The user defined date field 03",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD04": {
            "type": "string",
            "description": "The user defined date field 04",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD05": {
            "type": "string",
            "description": "The user defined date field 05",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD06": {
            "type": "string",
            "description": "The user defined date field 06",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD07": {
            "type": "string",
            "description": "The user defined date field 07",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD08": {
            "type": "string",
            "description": "The user defined date field 08",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD09": {
            "type": "string",
            "description": "The user defined date field 09",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD10": {
            "type": "string",
            "description": "The user defined date field 10",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udB01": {
            "type": "boolean",
            "description": "The user defined bool field 01",
            "nullable": true,
            "example": false
          },
          "udB02": {
            "type": "boolean",
            "description": "The user defined bool field 02",
            "nullable": true
          },
          "udB03": {
            "type": "boolean",
            "description": "The user defined bool field 03",
            "nullable": true
          },
          "udB04": {
            "type": "boolean",
            "description": "The user defined bool field 04",
            "nullable": true
          },
          "udB05": {
            "type": "boolean",
            "description": "The user defined bool field 05",
            "nullable": true
          },
          "udB06": {
            "type": "boolean",
            "description": "The user defined bool field 06",
            "nullable": true
          },
          "udB07": {
            "type": "boolean",
            "description": "The user defined bool field 07",
            "nullable": true
          },
          "udB08": {
            "type": "boolean",
            "description": "The user defined bool field 08",
            "nullable": true
          },
          "udB09": {
            "type": "boolean",
            "description": "The user defined bool field 09",
            "nullable": true
          },
          "udB10": {
            "type": "boolean",
            "description": "The user defined bool field 10",
            "nullable": true
          },
          "preferences": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ContactPreferenceBase"
            },
            "description": "The preferences that an address is used for.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on a contacts address"
      },
      "ContactConsentGetResponse": {
        "type": "object",
        "properties": {
          "serialNumber": {
            "type": "string",
            "description": "The serial number of the contact\r\n<ul><li>Must be a serial number of an existing contact, or a contact record that is part of the same import</li></ul>",
            "nullable": true,
            "example": "123456789"
          },
          "purpose": {
            "type": "string",
            "description": "The specific area of consent\r\n<ul><li>Must exist as an existing purpose</li></ul>",
            "nullable": true,
            "example": "Annual Newsletter"
          },
          "channel": {
            "type": "string",
            "description": "The channel the consent is for (i.e. Post, Email, Phone or SMS)\r\n<ul><li>Must be one of the following: Mail, Phone, Email, SMS</li></ul>",
            "nullable": true,
            "example": "Mail"
          },
          "status": {
            "type": "string",
            "description": "The status (i.e. Granted, Denied, …) of the consent \r\n<ul><li>Must exist in the 'Mailing Purpose Consent Status' lookup</li></ul><ul><li>Must exist in the 'Mailing Purpose Consent Status' lookup and marked as IncludeAsStandrard when channel is one of 'SMS','Email'</li></ul>",
            "nullable": true,
            "example": "Granted"
          },
          "sourceCode": {
            "type": "string",
            "description": "The source code for where the consent came from\r\n<ul><li>Must exist as an existing source code</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "received": {
            "type": "string",
            "description": "When the consent was received",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "receivedBy": {
            "type": "string",
            "description": "The user who received the consent\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "API"
          },
          "expiry": {
            "type": "string",
            "description": "When the consent expires",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "notes": {
            "type": "string",
            "description": "Additional notes on the consent",
            "nullable": true,
            "example": "Free text notes in here"
          },
          "dataHubId": {
            "type": "string",
            "description": "A reference to the contact in Access DataHub",
            "format": "uuid",
            "nullable": true,
            "example": "04078ccf-4013-47f0-88c2-d6c80f17bdac"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the purposes that the contact has consented to"
      },
      "ContactConsentPostRequest": {
        "required": [
          "channel",
          "purpose",
          "status"
        ],
        "type": "object",
        "properties": {
          "serialNumber": {
            "maxLength": 50,
            "type": "string",
            "description": "The serial number of the contact\r\n<ul><li>Must be a serial number of an existing contact, or a contact record that is part of the same import</li></ul>",
            "nullable": true,
            "example": "123456789"
          },
          "purpose": {
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "description": "The specific area of consent\r\n<ul><li>Must exist as an existing purpose</li></ul>",
            "example": "Annual Newsletter"
          },
          "channel": {
            "maxLength": 20,
            "minLength": 1,
            "type": "string",
            "description": "The channel the consent is for (i.e. Post, Email, Phone or SMS)\r\n<ul><li>Must be one of the following: Mail, Phone, Email, SMS</li></ul>",
            "example": "Mail"
          },
          "status": {
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "description": "The status (i.e. Granted, Denied, …) of the consent \r\n<ul><li>Must exist in the 'Mailing Purpose Consent Status' lookup</li></ul><ul><li>Must exist in the 'Mailing Purpose Consent Status' lookup and marked as IncludeAsStandrard when channel is one of 'SMS','Email'</li></ul>",
            "example": "Granted"
          },
          "sourceCode": {
            "maxLength": 20,
            "type": "string",
            "description": "The source code for where the consent came from\r\n<ul><li>Must exist as an existing source code</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "received": {
            "type": "string",
            "description": "When the consent was received",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "receivedBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user who received the consent\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "API"
          },
          "expiry": {
            "type": "string",
            "description": "When the consent expires",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "notes": {
            "maxLength": 300,
            "type": "string",
            "description": "Additional notes on the consent",
            "nullable": true,
            "example": "Free text notes in here"
          },
          "dataHubId": {
            "type": "string",
            "description": "A reference to the contact in Access DataHub",
            "format": "uuid",
            "nullable": true,
            "example": "04078ccf-4013-47f0-88c2-d6c80f17bdac"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the purposes that the contact has consented to"
      },
      "ContactExternalReferenceGetResponse": {
        "type": "object",
        "properties": {
          "externalReferenceId": {
            "type": "string",
            "description": "The id for the external reference \r\n<ul><li>Must be unique to the record set being posted</li></ul><ul><li>Must not already exist</li></ul><ul><li>Default is Sequence: ExternalRefID</li></ul>",
            "nullable": true,
            "example": "123456789-0001-11524063"
          },
          "serialNumber": {
            "type": "string",
            "description": "The serial number of the contact \r\n<ul><li>Must exist as a contact</li></ul>",
            "nullable": true,
            "example": "123456789"
          },
          "systemName": {
            "type": "string",
            "description": "The external system name",
            "nullable": true,
            "example": "JustGiving"
          },
          "fieldName": {
            "type": "string",
            "description": "The field name in the external system",
            "nullable": true,
            "example": "Funder ID"
          },
          "website": {
            "type": "string",
            "description": "The website of the external reference",
            "nullable": true,
            "example": "https://www.google.com/"
          },
          "reference": {
            "type": "string",
            "description": "The reference in the external system \r\n<ul><li>Must not already exist</li></ul>",
            "nullable": true,
            "example": "684567347"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the external references for the contact"
      },
      "ContactExternalReferencePostRequest": {
        "required": [
          "reference"
        ],
        "type": "object",
        "properties": {
          "externalReferenceId": {
            "maxLength": 200,
            "type": "string",
            "description": "The id for the external reference \r\n<ul><li>Must be unique to the record set being posted</li></ul><ul><li>Must not already exist</li></ul><ul><li>Default is Sequence: ExternalRefID</li></ul>",
            "nullable": true,
            "example": "123456789-0001-11524063"
          },
          "serialNumber": {
            "maxLength": 50,
            "type": "string",
            "description": "The serial number of the contact \r\n<ul><li>Must exist as a contact</li></ul>",
            "nullable": true,
            "example": "123456789"
          },
          "systemName": {
            "maxLength": 150,
            "type": "string",
            "description": "The external system name",
            "nullable": true,
            "example": "JustGiving"
          },
          "fieldName": {
            "maxLength": 100,
            "type": "string",
            "description": "The field name in the external system",
            "nullable": true,
            "example": "Funder ID"
          },
          "website": {
            "type": "string",
            "description": "The website of the external reference",
            "nullable": true,
            "example": "https://www.google.com/"
          },
          "reference": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string",
            "description": "The reference in the external system \r\n<ul><li>Must not already exist</li></ul>",
            "example": "684567347"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the external references for the contact"
      },
      "ContactGetResponse": {
        "type": "object",
        "properties": {
          "isNew": {
            "type": "boolean",
            "description": "Whether the record is a new contact. Leave this null for a dupe check and match to occur against existing contacts. Note that the dupe checking process doesn’t occur if this value is set to true or false. Set this to false along with supplying the known SerialNumber for updates to occur.",
            "nullable": true,
            "example": true
          },
          "serialNumber": {
            "type": "string",
            "description": "The serial number",
            "nullable": true
          },
          "contactType": {
            "type": "string",
            "description": "Individual, Organisation or Household\r\n<ul><li>Must be 'Individual', 'Organisation' or 'Household'</li></ul><ul><li>When committee = true or funder = true then must be 'Organisation'</li></ul><ul><li>Default is 'Individual'</li></ul>",
            "nullable": true,
            "example": "Individual"
          },
          "primaryCategory": {
            "type": "string",
            "description": "The primary category of the contact\r\n<ul><li>Must exist in the 'PrimaryCategory' lookup</li></ul>",
            "nullable": true,
            "example": "Supporter"
          },
          "alumni": {
            "type": "boolean",
            "description": "Whether the contact is an alumnus\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "committee": {
            "type": "boolean",
            "description": "Whether the contact is a committee\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "volunteer": {
            "type": "boolean",
            "description": "Whether the contact is a volunteer\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": true
          },
          "funder": {
            "type": "boolean",
            "description": "Whether the contact is a funder\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "prospect": {
            "type": "boolean",
            "description": "Whether the contact is a prospect\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": true
          },
          "title": {
            "type": "string",
            "description": "Title of the contact",
            "nullable": true,
            "example": "Mr"
          },
          "firstName": {
            "type": "string",
            "description": "First name of  the contact",
            "nullable": true,
            "example": "Ben"
          },
          "otherInitial": {
            "type": "string",
            "description": "The other initials of the contact",
            "nullable": true,
            "example": "T"
          },
          "keyname": {
            "type": "string",
            "description": "The surname or organisation name of the contact",
            "nullable": true,
            "example": "Simmons"
          },
          "previousName": {
            "type": "string",
            "description": "The previous name of the contact",
            "nullable": true,
            "example": ""
          },
          "defaultToAnonymous": {
            "type": "boolean",
            "description": "When true, this indicates that all transactions processed from the contact should be regarded as anonymous  \r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "postNominal": {
            "type": "string",
            "description": "Qualifications or awards which form part of the contact's name (e.g. OBE)",
            "nullable": true,
            "example": "BSc"
          },
          "addressType": {
            "type": "string",
            "description": "The type of the address \r\n<ul><li>Must exist in the 'AddressDescription' lookup</li></ul>",
            "nullable": true,
            "example": "Residential"
          },
          "address": {
            "type": "string",
            "description": "The 1st part of the address\r\n<ul><li>When preferredCommunicationChannel = 'letter'</li></ul><ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "98  Fordham Rd"
          },
          "town": {
            "type": "string",
            "description": "The town of the address",
            "nullable": true,
            "example": "Kettering"
          },
          "county": {
            "type": "string",
            "description": "The county of the address",
            "nullable": true,
            "example": "Northamptonshire"
          },
          "country": {
            "type": "string",
            "description": "The country of the address\r\n<ul><li>Default is the value specified in the Library Definition DefaultCountry</li></ul>",
            "nullable": true,
            "example": "England"
          },
          "postcode": {
            "type": "string",
            "description": "The postcode of the address",
            "nullable": true,
            "example": "NN5 4DD"
          },
          "useAddressFrom": {
            "type": "string",
            "description": "The date from when the address is to be recorded against the contact record as the contact's address",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "useAddressUntil": {
            "type": "string",
            "description": "The date until when the address is to be recorded against the contact record as the contact's address",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "annualSeasonalAddress": {
            "type": "boolean",
            "description": "Indicates that the address is used annually to specify a seasonal address based on the dates entered in the Address From and Address To fields\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "notMailingAddress": {
            "type": "boolean",
            "description": "Indicates if the address can be mailed to or not",
            "nullable": true,
            "example": false
          },
          "latitude": {
            "type": "number",
            "description": "The latitude of the contact's Address",
            "format": "double",
            "nullable": true,
            "example": -26.73794
          },
          "longitude": {
            "type": "number",
            "description": "The longitude of the contact's Address",
            "format": "double",
            "nullable": true,
            "example": 35.91756
          },
          "region": {
            "type": "string",
            "description": "The region the contact is in",
            "nullable": true,
            "example": ""
          },
          "letterSalutation": {
            "type": "string",
            "description": "The salutation to be used within letters sent to the contact (i.e. following Dear)",
            "nullable": true,
            "example": "Mr Simmons"
          },
          "envelopeSalutation": {
            "type": "string",
            "description": "The salutation to be used on envelopes addressed to the contact",
            "nullable": true,
            "example": "Mr Simmons"
          },
          "dayTelephone": {
            "type": "string",
            "description": "The contact’s day time telephone number",
            "nullable": true,
            "example": "023452948238"
          },
          "tpsDayTelephone": {
            "type": "boolean",
            "description": "Whether the contact's day number is on the TPS",
            "nullable": true,
            "example": "True"
          },
          "eveningTelephone": {
            "type": "string",
            "description": "The contact’s evening telephone number",
            "nullable": true,
            "example": "023452948238"
          },
          "tpsEveningTelephone": {
            "type": "boolean",
            "description": "Whether the contact's evening number is on the TPS",
            "nullable": true,
            "example": "False"
          },
          "mobileNumber": {
            "type": "string",
            "description": "The contact’s mobile number\r\n<ul><li> For new records this must not be empty when the preferredCommunicationChannel = 'sms' </li></ul>",
            "nullable": true,
            "example": ""
          },
          "tpsMobileNumber": {
            "type": "boolean",
            "description": "Whether the contact's mobile number is on the TPS",
            "nullable": true,
            "example": "False"
          },
          "emailAddress": {
            "type": "string",
            "description": "The contact’s email address\r\n<ul><li>Must be a valid e-mail address</li></ul><ul><li>For new records this must not be empty when the preferredCommunicationChannel = 'email'</li></ul>",
            "nullable": true,
            "example": "b_simmons@hotmail.com"
          },
          "emailAddressValidated": {
            "type": "string",
            "description": "The date when the email address was last fully validated",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "emailAddressValid": {
            "type": "boolean",
            "description": "Indicates whether or not the email address has been fully validated, and is usable",
            "nullable": true,
            "example": true
          },
          "faxNumber": {
            "type": "string",
            "description": "The contact’s fax number\r\n<ul><li> For new records this must not be empty when the preferredCommunicationChannel = 'fax'</li></ul>",
            "nullable": true,
            "example": ""
          },
          "gender": {
            "type": "string",
            "description": "The contact’s gender\r\n<ul><li>Must exist in the 'Gender' lookup</li></ul>",
            "nullable": true,
            "example": "Male"
          },
          "dateOfBirth": {
            "type": "string",
            "description": "The contact’s date of birth",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "dateOfBirthIsEstimated": {
            "type": "boolean",
            "description": "Whether the contact’s date of birth is estimated\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "dateOfDeath": {
            "type": "string",
            "description": "The contact’s date of death",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "dateOfDeathIsEstimated": {
            "type": "boolean",
            "description": "Whether the contact’s date of death is estimated\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true
          },
          "website": {
            "type": "string",
            "description": "The contact’s website",
            "nullable": true,
            "example": "https://www.bsimmons.com"
          },
          "maritalStatus": {
            "type": "string",
            "description": "The contact’s marital status\r\n<ul><li>Must exist in the 'Marital Status' lookup</li></ul>",
            "nullable": true,
            "example": "Married"
          },
          "occupation": {
            "type": "string",
            "description": "The contact’s occupation",
            "nullable": true,
            "example": "Teacher"
          },
          "jobTitle": {
            "type": "string",
            "description": "The contact’s job title",
            "nullable": true,
            "example": "Head of Sciences"
          },
          "charityNumber": {
            "type": "string",
            "description": "The charity commission number for the organisation",
            "nullable": true,
            "example": ""
          },
          "vatNumber": {
            "type": "string",
            "description": "The contact's VAT number\r\n<ul><li>Must be numeric and contain 9 digits</li></ul>",
            "nullable": true,
            "example": ""
          },
          "taxStatus": {
            "type": "string",
            "description": "The contact's tax status\r\n<ul><li>Must exist in the 'Tax Status' lookup</li></ul>",
            "nullable": true,
            "example": "GAD Active"
          },
          "gadLastRequested": {
            "type": "string",
            "description": "The date a gift aid declaration was last requested for this contact",
            "format": "date-time",
            "nullable": true,
            "example": "2024-10-08"
          },
          "socialSecurity": {
            "type": "string",
            "description": "The contact's social security number",
            "nullable": true,
            "example": ""
          },
          "nationality": {
            "type": "string",
            "description": "The contact's nationality\r\n<ul><li>Must exist in the 'Nationality' lookup</li></ul>",
            "nullable": true,
            "example": "British"
          },
          "ethnicity": {
            "type": "string",
            "description": "The contact's ethnicity\r\n<ul><li>Must exist in the 'Ethnicity' lookup</li></ul>",
            "nullable": true,
            "example": "White British"
          },
          "sourceCode": {
            "type": "string",
            "description": "The source of the contact record (e.g. how the contact was recruited / introduced)\r\n<ul><li>Must exist as a source code</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "origin": {
            "type": "string",
            "description": "This is related to the source of the contact, but is a more general flag for how the contact came to you\r\n<ul><li>Must exist in the 'Origin' lookup</li></ul>",
            "nullable": true,
            "example": "Event"
          },
          "notes": {
            "type": "string",
            "description": "General notes on the contact",
            "nullable": true,
            "example": "This can be free text"
          },
          "preferredLanguage": {
            "type": "string",
            "description": "The contacts preferred language\r\n<ul><li>Must exist in the 'Language' lookup</li></ul>",
            "nullable": true,
            "example": "English"
          },
          "preferredCommunicationChannel": {
            "type": "string",
            "description": "The contact's preference for contact by your organisation (e.g. Letter, Phone, …)\r\n<ul><li>Must exist in the 'MailingMethod' lookup</li></ul>",
            "nullable": true,
            "example": "Mail"
          },
          "preferredEmailFormat": {
            "type": "string",
            "description": "Preference to receive HTML or plain text emails\r\n<ul><li>Must exist in the 'Preferred Email Format' lookup</li></ul>",
            "nullable": true,
            "example": "HTML"
          },
          "mailingFrequency": {
            "type": "integer",
            "description": "The number of mailings the contact has requested to be sent. This is used by the “Too Many Mailings” functionality in the Mail Manager",
            "format": "int32",
            "nullable": true,
            "example": 10
          },
          "goneAwayRating": {
            "type": "string",
            "description": "An indicator of how many times mail has been returned from the contact's address due to the contact being away",
            "nullable": true,
            "example": "GA02"
          },
          "emailReturnRating": {
            "type": "integer",
            "description": "Count of soft bounces received from bulk emails",
            "format": "int32",
            "nullable": true,
            "example": 3
          },
          "phoneTPSOverride": {
            "type": "boolean",
            "description": "Whether the contact has expressed a TPS override preference from your organisation \r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "blockPurchases": {
            "type": "boolean",
            "description": "Whether a block has been placed on future purchases (i.e. orders or event bookings) from the contact.\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "blockPurchasesReason": {
            "type": "string",
            "description": "The reason a block has been placed on future purchases (i.e. orders or event bookings) from the contact.\r\n<ul><li>Must exist in the 'BlockPurchasesReason' lookup</li></ul>",
            "nullable": true,
            "example": ""
          },
          "doNotContact": {
            "type": "boolean",
            "description": "Whether the contact shouldn’t be contacted via any channel",
            "nullable": true,
            "example": false
          },
          "doNotContactReason": {
            "type": "string",
            "description": "The reason the contact shouldn’t be contacted\r\n<ul><li>Must exist in the 'DoNotMailReason' lookup</li></ul><ul><li>For new records this must not be empty when DoNotContact = true</li></ul>",
            "nullable": true
          },
          "doNotContactSourceCode": {
            "type": "string",
            "description": "The Source Code corresponding to the contact being marked as Do Not Contact\r\n<ul><li>Must exist as a source code</li></ul>",
            "nullable": true
          },
          "doNotContactFrom": {
            "type": "string",
            "description": "The date from when the contact should not receive contact",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "doNotContactUntil": {
            "type": "string",
            "description": "The date until the contact should not receive contact",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "doNotMail": {
            "type": "boolean",
            "description": "Whether the contact shouldn’t be contacted via post\r\n<ul><li>Must not be true when the preferredCommunicationChannel is either 'Mail' or 'Large Print'</li></ul><ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "doNotMailSourceCode": {
            "type": "string",
            "description": "The Source Code corresponding to the contact being marked as Do Not Contact\r\n<ul><li>Must exist as a source code</li></ul>",
            "nullable": true
          },
          "doNotEmail": {
            "type": "boolean",
            "description": "Whether the contact shouldn’t be contacted via email\r\n<ul><li> Must not be true when the preferredCommunicationChannel is 'Email'</li></ul><ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": true
          },
          "doNotEmailSourceCode": {
            "type": "string",
            "description": "The Source Code corresponding to the contact being marked as Do Not Email\r\n<ul><li>Must exist as a source code</li></ul>",
            "nullable": true,
            "example": "FUND02"
          },
          "doNotPhone": {
            "type": "boolean",
            "description": "Whether the contact shouldn’t be contacted via phone\r\n<ul><li> Must not be true when the preferredCommunicationChannel is 'Phone'</li></ul><ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "doNotPhoneSourceCode": {
            "type": "string",
            "description": "The Source Code corresponding to the contact being marked as Do Not Phone\r\n<ul><li>Must exist as a source code</li></ul>",
            "nullable": true
          },
          "doNotSMS": {
            "type": "boolean",
            "description": "Whether the contact shouldn’t be contacted via SMS\r\n<ul><li>Must not be true when the preferredCommunicationChannel is 'SMS'</li></ul><ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": true
          },
          "doNotSMSSourceCode": {
            "type": "string",
            "description": "The Source Code corresponding to the contact being marked as Do Not SMS\r\n<ul><li>Must exist as a source code</li></ul>",
            "nullable": true,
            "example": "FUND02"
          },
          "doNotFax": {
            "type": "boolean",
            "description": "Whether the contact shouldn’t be contacted via fax\r\n<ul><li>Must not be true when the preferredCommunicationChannel is 'Fax'</li></ul><ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "doNotFaxSourceCode": {
            "type": "string",
            "description": "The Source Code corresponding to the contact being marked as Do Not Fax\r\n<ul><li>Must exist as a source code</li></ul>",
            "nullable": true
          },
          "committeeType": {
            "type": "string",
            "description": "The committee type\r\n<ul><li>Must exist in the 'CommitteeType' lookup</li></ul>",
            "nullable": true
          },
          "committeeSubType": {
            "type": "string",
            "description": "The committee sub type\r\n<ul><li>Must exist in the 'CommitteeSubType' lookup</li></ul>",
            "nullable": true
          },
          "committeeStartDate": {
            "type": "string",
            "description": "The date the committee started to operate",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "committeeEndDate": {
            "type": "string",
            "description": "The date the committee ceases to operate",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "volunteerSourceCode": {
            "type": "string",
            "description": "The Source Code corresponding to the contact becoming a volunteer\r\n<ul><li>Must exist as a source code</li></ul>",
            "nullable": true,
            "example": "FUND02"
          },
          "volunteerEmergencyName": {
            "type": "string",
            "description": "The contact's emergency contact's name",
            "nullable": true,
            "example": "Rachel Simmons"
          },
          "volunteerEmergencyNumber": {
            "type": "string",
            "description": "The contact's emergency contact's phone number",
            "nullable": true,
            "example": "07483494923948"
          },
          "volunteerSpecialRequirements": {
            "type": "string",
            "description": "The volunteer's special needs or requirements",
            "nullable": true,
            "example": ""
          },
          "classOf": {
            "type": "string",
            "description": "Class Of (year) for the contact\r\n<ul><li>Must be numeric</li></ul>",
            "nullable": true,
            "example": "2000"
          },
          "classOfElectedByStudent": {
            "type": "boolean",
            "description": "Indicates that the student/contact has indicated a preference for their Class Of year\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "funderUrl": {
            "type": "string",
            "description": "The URL of the Funder",
            "nullable": true,
            "example": "B-Simmons345"
          },
          "funderDoNotReapply": {
            "type": "boolean",
            "description": "Indicates whether or not the funder can be reapplied to\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true
          },
          "funderCSRPolicy": {
            "type": "boolean",
            "description": "This indicates whether the funder has a CSR policy\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true
          },
          "funderNotes": {
            "type": "string",
            "description": "Informal notes recorded against the prospect",
            "nullable": true
          },
          "funderValueAddedBenefits": {
            "type": "string",
            "description": "This will list any value added benefits of the funder",
            "nullable": true
          },
          "constituency": {
            "type": "string",
            "description": "Parliamentary Constituency corresponding to the current postcode",
            "nullable": true
          },
          "devolvedConstituencyName": {
            "type": "string",
            "description": "The Devolved Constituency Name for the current postcode",
            "nullable": true
          },
          "wardCode": {
            "type": "string",
            "description": "Code identifying the electoral ward for the current postcode",
            "nullable": true
          },
          "wardName": {
            "type": "string",
            "description": "Name identifying the electoral ward for this postcode",
            "nullable": true
          },
          "authority": {
            "type": "string",
            "description": "Local / Unitary Authority for the current postcode",
            "nullable": true
          },
          "volunteerUsername": {
            "type": "string",
            "description": "Username for the volunteer record",
            "nullable": true
          },
          "volunteerStatus": {
            "type": "string",
            "description": "Status of the volunteer",
            "nullable": true
          },
          "dateFirstVolunteered": {
            "type": "string",
            "description": "Date of first volunteering",
            "format": "date-time",
            "nullable": true
          },
          "externalRef": {
            "type": "string",
            "description": "A reference to the contact in another system",
            "nullable": true,
            "example": "74004803"
          },
          "dataHubId": {
            "type": "string",
            "description": "A reference to the contact in Access DataHub",
            "format": "uuid",
            "nullable": true,
            "example": "a9eab83b-ac3e-4f1d-aaf3-2fc4519beac9"
          },
          "created": {
            "type": "string",
            "description": "When the record was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "type": "string",
            "description": "The user who created the record\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "modified": {
            "type": "string",
            "description": "When the record was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user who last modified the record\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "udT01": {
            "type": "string",
            "description": "The user defined text field 01",
            "nullable": true,
            "example": "User Defined Text Field Here"
          },
          "udT02": {
            "type": "string",
            "description": "The user defined text field 02",
            "nullable": true
          },
          "udT03": {
            "type": "string",
            "description": "The user defined text field 03",
            "nullable": true
          },
          "udT04": {
            "type": "string",
            "description": "The user defined text field 04",
            "nullable": true
          },
          "udT05": {
            "type": "string",
            "description": "The user defined text field 05",
            "nullable": true
          },
          "udT06": {
            "type": "string",
            "description": "The user defined text field 06",
            "nullable": true
          },
          "udT07": {
            "type": "string",
            "description": "The user defined text field 07",
            "nullable": true
          },
          "udT08": {
            "type": "string",
            "description": "The user defined text field 08",
            "nullable": true
          },
          "udT09": {
            "type": "string",
            "description": "The user defined text field 09",
            "nullable": true
          },
          "udT10": {
            "type": "string",
            "description": "The user defined text field 10",
            "nullable": true
          },
          "udN01": {
            "type": "number",
            "description": "The user defined number field 01",
            "format": "double",
            "nullable": true,
            "example": 34.22
          },
          "udN02": {
            "type": "number",
            "description": "The user defined number field 02",
            "format": "double",
            "nullable": true
          },
          "udN03": {
            "type": "number",
            "description": "The user defined number field 03",
            "format": "double",
            "nullable": true
          },
          "udN04": {
            "type": "number",
            "description": "The user defined number field 04",
            "format": "double",
            "nullable": true
          },
          "udN05": {
            "type": "number",
            "description": "The user defined number field 05",
            "format": "double",
            "nullable": true
          },
          "udN06": {
            "type": "number",
            "description": "The user defined number field 06",
            "format": "double",
            "nullable": true
          },
          "udN07": {
            "type": "number",
            "description": "The user defined number field 07",
            "format": "double",
            "nullable": true
          },
          "udN08": {
            "type": "number",
            "description": "The user defined number field 08",
            "format": "double",
            "nullable": true
          },
          "udN09": {
            "type": "number",
            "description": "The user defined number field 09",
            "format": "double",
            "nullable": true
          },
          "udN10": {
            "type": "number",
            "description": "The user defined number field 10",
            "format": "double",
            "nullable": true
          },
          "udD01": {
            "type": "string",
            "description": "The user defined date field 01",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD02": {
            "type": "string",
            "description": "The user defined date field 02",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD03": {
            "type": "string",
            "description": "The user defined date field 03",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD04": {
            "type": "string",
            "description": "The user defined date field 04",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD05": {
            "type": "string",
            "description": "The user defined date field 05",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD06": {
            "type": "string",
            "description": "The user defined date field 06",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD07": {
            "type": "string",
            "description": "The user defined date field 07",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD08": {
            "type": "string",
            "description": "The user defined date field 08",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD09": {
            "type": "string",
            "description": "The user defined date field 09",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD10": {
            "type": "string",
            "description": "The user defined date field 10",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udB01": {
            "type": "boolean",
            "description": "The user defined bool field 01",
            "nullable": true,
            "example": false
          },
          "udB02": {
            "type": "boolean",
            "description": "The user defined bool field 02",
            "nullable": true
          },
          "udB03": {
            "type": "boolean",
            "description": "The user defined bool field 03",
            "nullable": true
          },
          "udB04": {
            "type": "boolean",
            "description": "The user defined bool field 04",
            "nullable": true
          },
          "udB05": {
            "type": "boolean",
            "description": "The user defined bool field 05",
            "nullable": true
          },
          "udB06": {
            "type": "boolean",
            "description": "The user defined bool field 06",
            "nullable": true
          },
          "udB07": {
            "type": "boolean",
            "description": "The user defined bool field 07",
            "nullable": true
          },
          "udB08": {
            "type": "boolean",
            "description": "The user defined bool field 08",
            "nullable": true
          },
          "udB09": {
            "type": "boolean",
            "description": "The user defined bool field 09",
            "nullable": true
          },
          "udB10": {
            "type": "boolean",
            "description": "The user defined bool field 10",
            "nullable": true
          },
          "numberOfPayments": {
            "type": "integer",
            "description": "The number of payments made by a contact",
            "format": "int32",
            "example": 2
          },
          "sumOfPaymentAmount": {
            "type": "number",
            "description": "The sum of the contacts payments",
            "format": "double",
            "nullable": true,
            "example": 18.25
          },
          "sumOfNetPaymentAmount": {
            "type": "number",
            "description": "The sum of the net value for the contacts payments",
            "format": "double",
            "nullable": true,
            "example": 16.10
          },
          "sumOfTaxPaymentAmount": {
            "type": "number",
            "description": "The sum of the tax value for the contacts payments",
            "format": "double",
            "nullable": true,
            "example": 2.15
          },
          "maxPaymentAmount": {
            "type": "number",
            "description": "The largest single payment by the contact",
            "format": "double",
            "nullable": true,
            "example": 10.25
          },
          "avgPaymentAmount": {
            "type": "number",
            "description": "The average value of the contacts payments",
            "format": "double",
            "nullable": true,
            "example": 9.13
          },
          "firstPaymentDate": {
            "type": "string",
            "description": "The date of the first payment the contact made",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "lastPaymentDate": {
            "type": "string",
            "description": "The date of the last payment the contact made",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "prospectStatus": {
            "type": "string",
            "description": "The prospect status of the contact",
            "nullable": true,
            "example": "Discovered"
          },
          "activeMember": {
            "type": "boolean",
            "description": "Flag for contacts which are active members",
            "nullable": true,
            "example": true
          },
          "activePledge": {
            "type": "boolean",
            "description": "Flag for contacts which have active pledges",
            "nullable": true,
            "example": true
          },
          "legacyPledged": {
            "type": "boolean",
            "description": "Flag for contacts which have pledged legacies",
            "nullable": true,
            "example": false
          },
          "hasLegacy": {
            "type": "boolean",
            "description": "Flag for contacts which have active or completed legacies",
            "nullable": true,
            "example": false
          },
          "donorCategory": {
            "type": "string",
            "description": "The calculated donor category for the contact",
            "nullable": true,
            "example": "Repeat"
          },
          "donorSubCategory": {
            "type": "string",
            "description": "The calculated donor sub-category for the contact",
            "nullable": true,
            "example": "Year 1"
          },
          "lastEmploymentId": {
            "type": "string",
            "description": "The Employment ID of the last employment record for the contact",
            "nullable": true,
            "example": "00344"
          },
          "changeId": {
            "type": "string",
            "description": "The changeID need to make a new ContactGetChangesResponse class",
            "nullable": true
          },
          "teams": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ContactTeamGetResponse"
            },
            "description": "The contact's teams",
            "nullable": true
          },
          "consent": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ContactConsentGetResponse"
            },
            "description": "The contact's consent",
            "nullable": true
          },
          "addresses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ContactAddressGetResponse"
            },
            "description": "The contact's addresses",
            "nullable": true
          },
          "preferences": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ContactPreferenceGetResponse"
            },
            "description": "The contact's communication preferences",
            "nullable": true
          },
          "profiles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ContactProfileGetResponse"
            },
            "description": "The profiles against the contact",
            "nullable": true
          },
          "groups": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ContactGroupGetResponse"
            },
            "description": "The groups that the contact belongs to",
            "nullable": true
          },
          "externalReferences": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ContactExternalReferenceGetResponse"
            },
            "description": "The external references for the contact",
            "nullable": true
          },
          "relationships": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RelationshipGetResponse"
            },
            "description": "The relationships against the contact",
            "nullable": true
          },
          "payments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentGetResponse"
            },
            "description": "The payments against the contact",
            "nullable": true
          },
          "communications": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CommunicationGetResponse"
            },
            "description": "The communications against the contact",
            "nullable": true
          },
          "socialMedia": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ContactSocialMediaGetResponse"
            },
            "description": "The communications against the contact",
            "nullable": true
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "The contact custom fields",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the contact"
      },
      "ContactGetResponseCollectionItem": {
        "type": "object",
        "properties": {
          "isNew": {
            "type": "boolean",
            "description": "Whether the record is a new contact. Leave this null for a dupe check and match to occur against existing contacts. Note that the dupe checking process doesn’t occur if this value is set to true or false. Set this to false along with supplying the known SerialNumber for updates to occur.",
            "nullable": true,
            "example": true
          },
          "serialNumber": {
            "type": "string",
            "description": "The serial number",
            "nullable": true
          },
          "contactType": {
            "type": "string",
            "description": "Individual, Organisation or Household\r\n<ul><li>Must be 'Individual', 'Organisation' or 'Household'</li></ul><ul><li>When committee = true or funder = true then must be 'Organisation'</li></ul><ul><li>Default is 'Individual'</li></ul>",
            "nullable": true,
            "example": "Individual"
          },
          "primaryCategory": {
            "type": "string",
            "description": "The primary category of the contact\r\n<ul><li>Must exist in the 'PrimaryCategory' lookup</li></ul>",
            "nullable": true,
            "example": "Supporter"
          },
          "alumni": {
            "type": "boolean",
            "description": "Whether the contact is an alumnus\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "committee": {
            "type": "boolean",
            "description": "Whether the contact is a committee\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "volunteer": {
            "type": "boolean",
            "description": "Whether the contact is a volunteer\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": true
          },
          "funder": {
            "type": "boolean",
            "description": "Whether the contact is a funder\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "prospect": {
            "type": "boolean",
            "description": "Whether the contact is a prospect\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": true
          },
          "title": {
            "type": "string",
            "description": "Title of the contact",
            "nullable": true,
            "example": "Mr"
          },
          "firstName": {
            "type": "string",
            "description": "First name of  the contact",
            "nullable": true,
            "example": "Ben"
          },
          "otherInitial": {
            "type": "string",
            "description": "The other initials of the contact",
            "nullable": true,
            "example": "T"
          },
          "keyname": {
            "type": "string",
            "description": "The surname or organisation name of the contact",
            "nullable": true,
            "example": "Simmons"
          },
          "previousName": {
            "type": "string",
            "description": "The previous name of the contact",
            "nullable": true,
            "example": ""
          },
          "defaultToAnonymous": {
            "type": "boolean",
            "description": "When true, this indicates that all transactions processed from the contact should be regarded as anonymous  \r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "postNominal": {
            "type": "string",
            "description": "Qualifications or awards which form part of the contact's name (e.g. OBE)",
            "nullable": true,
            "example": "BSc"
          },
          "addressType": {
            "type": "string",
            "description": "The type of the address \r\n<ul><li>Must exist in the 'AddressDescription' lookup</li></ul>",
            "nullable": true,
            "example": "Residential"
          },
          "address": {
            "type": "string",
            "description": "The 1st part of the address\r\n<ul><li>When preferredCommunicationChannel = 'letter'</li></ul><ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "98  Fordham Rd"
          },
          "town": {
            "type": "string",
            "description": "The town of the address",
            "nullable": true,
            "example": "Kettering"
          },
          "county": {
            "type": "string",
            "description": "The county of the address",
            "nullable": true,
            "example": "Northamptonshire"
          },
          "country": {
            "type": "string",
            "description": "The country of the address\r\n<ul><li>Default is the value specified in the Library Definition DefaultCountry</li></ul>",
            "nullable": true,
            "example": "England"
          },
          "postcode": {
            "type": "string",
            "description": "The postcode of the address",
            "nullable": true,
            "example": "NN5 4DD"
          },
          "useAddressFrom": {
            "type": "string",
            "description": "The date from when the address is to be recorded against the contact record as the contact's address",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "useAddressUntil": {
            "type": "string",
            "description": "The date until when the address is to be recorded against the contact record as the contact's address",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "annualSeasonalAddress": {
            "type": "boolean",
            "description": "Indicates that the address is used annually to specify a seasonal address based on the dates entered in the Address From and Address To fields\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "notMailingAddress": {
            "type": "boolean",
            "description": "Indicates if the address can be mailed to or not",
            "nullable": true,
            "example": false
          },
          "latitude": {
            "type": "number",
            "description": "The latitude of the contact's Address",
            "format": "double",
            "nullable": true,
            "example": -26.73794
          },
          "longitude": {
            "type": "number",
            "description": "The longitude of the contact's Address",
            "format": "double",
            "nullable": true,
            "example": 35.91756
          },
          "region": {
            "type": "string",
            "description": "The region the contact is in",
            "nullable": true,
            "example": ""
          },
          "letterSalutation": {
            "type": "string",
            "description": "The salutation to be used within letters sent to the contact (i.e. following Dear)",
            "nullable": true,
            "example": "Mr Simmons"
          },
          "envelopeSalutation": {
            "type": "string",
            "description": "The salutation to be used on envelopes addressed to the contact",
            "nullable": true,
            "example": "Mr Simmons"
          },
          "dayTelephone": {
            "type": "string",
            "description": "The contact’s day time telephone number",
            "nullable": true,
            "example": "023452948238"
          },
          "tpsDayTelephone": {
            "type": "boolean",
            "description": "Whether the contact's day number is on the TPS",
            "nullable": true,
            "example": "True"
          },
          "eveningTelephone": {
            "type": "string",
            "description": "The contact’s evening telephone number",
            "nullable": true,
            "example": "023452948238"
          },
          "tpsEveningTelephone": {
            "type": "boolean",
            "description": "Whether the contact's evening number is on the TPS",
            "nullable": true,
            "example": "False"
          },
          "mobileNumber": {
            "type": "string",
            "description": "The contact’s mobile number\r\n<ul><li> For new records this must not be empty when the preferredCommunicationChannel = 'sms' </li></ul>",
            "nullable": true,
            "example": ""
          },
          "tpsMobileNumber": {
            "type": "boolean",
            "description": "Whether the contact's mobile number is on the TPS",
            "nullable": true,
            "example": "False"
          },
          "emailAddress": {
            "type": "string",
            "description": "The contact’s email address\r\n<ul><li>Must be a valid e-mail address</li></ul><ul><li>For new records this must not be empty when the preferredCommunicationChannel = 'email'</li></ul>",
            "nullable": true,
            "example": "b_simmons@hotmail.com"
          },
          "emailAddressValidated": {
            "type": "string",
            "description": "The date when the email address was last fully validated",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "emailAddressValid": {
            "type": "boolean",
            "description": "Indicates whether or not the email address has been fully validated, and is usable",
            "nullable": true,
            "example": true
          },
          "faxNumber": {
            "type": "string",
            "description": "The contact’s fax number\r\n<ul><li> For new records this must not be empty when the preferredCommunicationChannel = 'fax'</li></ul>",
            "nullable": true,
            "example": ""
          },
          "gender": {
            "type": "string",
            "description": "The contact’s gender\r\n<ul><li>Must exist in the 'Gender' lookup</li></ul>",
            "nullable": true,
            "example": "Male"
          },
          "dateOfBirth": {
            "type": "string",
            "description": "The contact’s date of birth",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "dateOfBirthIsEstimated": {
            "type": "boolean",
            "description": "Whether the contact’s date of birth is estimated\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "dateOfDeath": {
            "type": "string",
            "description": "The contact’s date of death",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "dateOfDeathIsEstimated": {
            "type": "boolean",
            "description": "Whether the contact’s date of death is estimated\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true
          },
          "website": {
            "type": "string",
            "description": "The contact’s website",
            "nullable": true,
            "example": "https://www.bsimmons.com"
          },
          "maritalStatus": {
            "type": "string",
            "description": "The contact’s marital status\r\n<ul><li>Must exist in the 'Marital Status' lookup</li></ul>",
            "nullable": true,
            "example": "Married"
          },
          "occupation": {
            "type": "string",
            "description": "The contact’s occupation",
            "nullable": true,
            "example": "Teacher"
          },
          "jobTitle": {
            "type": "string",
            "description": "The contact’s job title",
            "nullable": true,
            "example": "Head of Sciences"
          },
          "charityNumber": {
            "type": "string",
            "description": "The charity commission number for the organisation",
            "nullable": true,
            "example": ""
          },
          "vatNumber": {
            "type": "string",
            "description": "The contact's VAT number\r\n<ul><li>Must be numeric and contain 9 digits</li></ul>",
            "nullable": true,
            "example": ""
          },
          "taxStatus": {
            "type": "string",
            "description": "The contact's tax status\r\n<ul><li>Must exist in the 'Tax Status' lookup</li></ul>",
            "nullable": true,
            "example": "GAD Active"
          },
          "gadLastRequested": {
            "type": "string",
            "description": "The date a gift aid declaration was last requested for this contact",
            "format": "date-time",
            "nullable": true,
            "example": "2024-10-08"
          },
          "socialSecurity": {
            "type": "string",
            "description": "The contact's social security number",
            "nullable": true,
            "example": ""
          },
          "nationality": {
            "type": "string",
            "description": "The contact's nationality\r\n<ul><li>Must exist in the 'Nationality' lookup</li></ul>",
            "nullable": true,
            "example": "British"
          },
          "ethnicity": {
            "type": "string",
            "description": "The contact's ethnicity\r\n<ul><li>Must exist in the 'Ethnicity' lookup</li></ul>",
            "nullable": true,
            "example": "White British"
          },
          "sourceCode": {
            "type": "string",
            "description": "The source of the contact record (e.g. how the contact was recruited / introduced)\r\n<ul><li>Must exist as a source code</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "origin": {
            "type": "string",
            "description": "This is related to the source of the contact, but is a more general flag for how the contact came to you\r\n<ul><li>Must exist in the 'Origin' lookup</li></ul>",
            "nullable": true,
            "example": "Event"
          },
          "notes": {
            "type": "string",
            "description": "General notes on the contact",
            "nullable": true,
            "example": "This can be free text"
          },
          "preferredLanguage": {
            "type": "string",
            "description": "The contacts preferred language\r\n<ul><li>Must exist in the 'Language' lookup</li></ul>",
            "nullable": true,
            "example": "English"
          },
          "preferredCommunicationChannel": {
            "type": "string",
            "description": "The contact's preference for contact by your organisation (e.g. Letter, Phone, …)\r\n<ul><li>Must exist in the 'MailingMethod' lookup</li></ul>",
            "nullable": true,
            "example": "Mail"
          },
          "preferredEmailFormat": {
            "type": "string",
            "description": "Preference to receive HTML or plain text emails\r\n<ul><li>Must exist in the 'Preferred Email Format' lookup</li></ul>",
            "nullable": true,
            "example": "HTML"
          },
          "mailingFrequency": {
            "type": "integer",
            "description": "The number of mailings the contact has requested to be sent. This is used by the “Too Many Mailings” functionality in the Mail Manager",
            "format": "int32",
            "nullable": true,
            "example": 10
          },
          "goneAwayRating": {
            "type": "string",
            "description": "An indicator of how many times mail has been returned from the contact's address due to the contact being away",
            "nullable": true,
            "example": "GA02"
          },
          "emailReturnRating": {
            "type": "integer",
            "description": "Count of soft bounces received from bulk emails",
            "format": "int32",
            "nullable": true,
            "example": 3
          },
          "phoneTPSOverride": {
            "type": "boolean",
            "description": "Whether the contact has expressed a TPS override preference from your organisation \r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "blockPurchases": {
            "type": "boolean",
            "description": "Whether a block has been placed on future purchases (i.e. orders or event bookings) from the contact.\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "blockPurchasesReason": {
            "type": "string",
            "description": "The reason a block has been placed on future purchases (i.e. orders or event bookings) from the contact.\r\n<ul><li>Must exist in the 'BlockPurchasesReason' lookup</li></ul>",
            "nullable": true,
            "example": ""
          },
          "doNotContact": {
            "type": "boolean",
            "description": "Whether the contact shouldn’t be contacted via any channel",
            "nullable": true,
            "example": false
          },
          "doNotContactReason": {
            "type": "string",
            "description": "The reason the contact shouldn’t be contacted\r\n<ul><li>Must exist in the 'DoNotMailReason' lookup</li></ul><ul><li>For new records this must not be empty when DoNotContact = true</li></ul>",
            "nullable": true
          },
          "doNotContactSourceCode": {
            "type": "string",
            "description": "The Source Code corresponding to the contact being marked as Do Not Contact\r\n<ul><li>Must exist as a source code</li></ul>",
            "nullable": true
          },
          "doNotContactFrom": {
            "type": "string",
            "description": "The date from when the contact should not receive contact",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "doNotContactUntil": {
            "type": "string",
            "description": "The date until the contact should not receive contact",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "doNotMail": {
            "type": "boolean",
            "description": "Whether the contact shouldn’t be contacted via post\r\n<ul><li>Must not be true when the preferredCommunicationChannel is either 'Mail' or 'Large Print'</li></ul><ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "doNotMailSourceCode": {
            "type": "string",
            "description": "The Source Code corresponding to the contact being marked as Do Not Contact\r\n<ul><li>Must exist as a source code</li></ul>",
            "nullable": true
          },
          "doNotEmail": {
            "type": "boolean",
            "description": "Whether the contact shouldn’t be contacted via email\r\n<ul><li> Must not be true when the preferredCommunicationChannel is 'Email'</li></ul><ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": true
          },
          "doNotEmailSourceCode": {
            "type": "string",
            "description": "The Source Code corresponding to the contact being marked as Do Not Email\r\n<ul><li>Must exist as a source code</li></ul>",
            "nullable": true,
            "example": "FUND02"
          },
          "doNotPhone": {
            "type": "boolean",
            "description": "Whether the contact shouldn’t be contacted via phone\r\n<ul><li> Must not be true when the preferredCommunicationChannel is 'Phone'</li></ul><ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "doNotPhoneSourceCode": {
            "type": "string",
            "description": "The Source Code corresponding to the contact being marked as Do Not Phone\r\n<ul><li>Must exist as a source code</li></ul>",
            "nullable": true
          },
          "doNotSMS": {
            "type": "boolean",
            "description": "Whether the contact shouldn’t be contacted via SMS\r\n<ul><li>Must not be true when the preferredCommunicationChannel is 'SMS'</li></ul><ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": true
          },
          "doNotSMSSourceCode": {
            "type": "string",
            "description": "The Source Code corresponding to the contact being marked as Do Not SMS\r\n<ul><li>Must exist as a source code</li></ul>",
            "nullable": true,
            "example": "FUND02"
          },
          "doNotFax": {
            "type": "boolean",
            "description": "Whether the contact shouldn’t be contacted via fax\r\n<ul><li>Must not be true when the preferredCommunicationChannel is 'Fax'</li></ul><ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "doNotFaxSourceCode": {
            "type": "string",
            "description": "The Source Code corresponding to the contact being marked as Do Not Fax\r\n<ul><li>Must exist as a source code</li></ul>",
            "nullable": true
          },
          "committeeType": {
            "type": "string",
            "description": "The committee type\r\n<ul><li>Must exist in the 'CommitteeType' lookup</li></ul>",
            "nullable": true
          },
          "committeeSubType": {
            "type": "string",
            "description": "The committee sub type\r\n<ul><li>Must exist in the 'CommitteeSubType' lookup</li></ul>",
            "nullable": true
          },
          "committeeStartDate": {
            "type": "string",
            "description": "The date the committee started to operate",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "committeeEndDate": {
            "type": "string",
            "description": "The date the committee ceases to operate",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "volunteerSourceCode": {
            "type": "string",
            "description": "The Source Code corresponding to the contact becoming a volunteer\r\n<ul><li>Must exist as a source code</li></ul>",
            "nullable": true,
            "example": "FUND02"
          },
          "volunteerEmergencyName": {
            "type": "string",
            "description": "The contact's emergency contact's name",
            "nullable": true,
            "example": "Rachel Simmons"
          },
          "volunteerEmergencyNumber": {
            "type": "string",
            "description": "The contact's emergency contact's phone number",
            "nullable": true,
            "example": "07483494923948"
          },
          "volunteerSpecialRequirements": {
            "type": "string",
            "description": "The volunteer's special needs or requirements",
            "nullable": true,
            "example": ""
          },
          "classOf": {
            "type": "string",
            "description": "Class Of (year) for the contact\r\n<ul><li>Must be numeric</li></ul>",
            "nullable": true,
            "example": "2000"
          },
          "classOfElectedByStudent": {
            "type": "boolean",
            "description": "Indicates that the student/contact has indicated a preference for their Class Of year\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "funderUrl": {
            "type": "string",
            "description": "The URL of the Funder",
            "nullable": true,
            "example": "B-Simmons345"
          },
          "funderDoNotReapply": {
            "type": "boolean",
            "description": "Indicates whether or not the funder can be reapplied to\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true
          },
          "funderCSRPolicy": {
            "type": "boolean",
            "description": "This indicates whether the funder has a CSR policy\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true
          },
          "funderNotes": {
            "type": "string",
            "description": "Informal notes recorded against the prospect",
            "nullable": true
          },
          "funderValueAddedBenefits": {
            "type": "string",
            "description": "This will list any value added benefits of the funder",
            "nullable": true
          },
          "constituency": {
            "type": "string",
            "description": "Parliamentary Constituency corresponding to the current postcode",
            "nullable": true
          },
          "devolvedConstituencyName": {
            "type": "string",
            "description": "The Devolved Constituency Name for the current postcode",
            "nullable": true
          },
          "wardCode": {
            "type": "string",
            "description": "Code identifying the electoral ward for the current postcode",
            "nullable": true
          },
          "wardName": {
            "type": "string",
            "description": "Name identifying the electoral ward for this postcode",
            "nullable": true
          },
          "authority": {
            "type": "string",
            "description": "Local / Unitary Authority for the current postcode",
            "nullable": true
          },
          "volunteerUsername": {
            "type": "string",
            "description": "Username for the volunteer record",
            "nullable": true
          },
          "volunteerStatus": {
            "type": "string",
            "description": "Status of the volunteer",
            "nullable": true
          },
          "dateFirstVolunteered": {
            "type": "string",
            "description": "Date of first volunteering",
            "format": "date-time",
            "nullable": true
          },
          "externalRef": {
            "type": "string",
            "description": "A reference to the contact in another system",
            "nullable": true,
            "example": "74004803"
          },
          "dataHubId": {
            "type": "string",
            "description": "A reference to the contact in Access DataHub",
            "format": "uuid",
            "nullable": true,
            "example": "a9eab83b-ac3e-4f1d-aaf3-2fc4519beac9"
          },
          "created": {
            "type": "string",
            "description": "When the record was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "type": "string",
            "description": "The user who created the record\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "modified": {
            "type": "string",
            "description": "When the record was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user who last modified the record\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "udT01": {
            "type": "string",
            "description": "The user defined text field 01",
            "nullable": true,
            "example": "User Defined Text Field Here"
          },
          "udT02": {
            "type": "string",
            "description": "The user defined text field 02",
            "nullable": true
          },
          "udT03": {
            "type": "string",
            "description": "The user defined text field 03",
            "nullable": true
          },
          "udT04": {
            "type": "string",
            "description": "The user defined text field 04",
            "nullable": true
          },
          "udT05": {
            "type": "string",
            "description": "The user defined text field 05",
            "nullable": true
          },
          "udT06": {
            "type": "string",
            "description": "The user defined text field 06",
            "nullable": true
          },
          "udT07": {
            "type": "string",
            "description": "The user defined text field 07",
            "nullable": true
          },
          "udT08": {
            "type": "string",
            "description": "The user defined text field 08",
            "nullable": true
          },
          "udT09": {
            "type": "string",
            "description": "The user defined text field 09",
            "nullable": true
          },
          "udT10": {
            "type": "string",
            "description": "The user defined text field 10",
            "nullable": true
          },
          "udN01": {
            "type": "number",
            "description": "The user defined number field 01",
            "format": "double",
            "nullable": true,
            "example": 34.22
          },
          "udN02": {
            "type": "number",
            "description": "The user defined number field 02",
            "format": "double",
            "nullable": true
          },
          "udN03": {
            "type": "number",
            "description": "The user defined number field 03",
            "format": "double",
            "nullable": true
          },
          "udN04": {
            "type": "number",
            "description": "The user defined number field 04",
            "format": "double",
            "nullable": true
          },
          "udN05": {
            "type": "number",
            "description": "The user defined number field 05",
            "format": "double",
            "nullable": true
          },
          "udN06": {
            "type": "number",
            "description": "The user defined number field 06",
            "format": "double",
            "nullable": true
          },
          "udN07": {
            "type": "number",
            "description": "The user defined number field 07",
            "format": "double",
            "nullable": true
          },
          "udN08": {
            "type": "number",
            "description": "The user defined number field 08",
            "format": "double",
            "nullable": true
          },
          "udN09": {
            "type": "number",
            "description": "The user defined number field 09",
            "format": "double",
            "nullable": true
          },
          "udN10": {
            "type": "number",
            "description": "The user defined number field 10",
            "format": "double",
            "nullable": true
          },
          "udD01": {
            "type": "string",
            "description": "The user defined date field 01",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD02": {
            "type": "string",
            "description": "The user defined date field 02",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD03": {
            "type": "string",
            "description": "The user defined date field 03",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD04": {
            "type": "string",
            "description": "The user defined date field 04",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD05": {
            "type": "string",
            "description": "The user defined date field 05",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD06": {
            "type": "string",
            "description": "The user defined date field 06",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD07": {
            "type": "string",
            "description": "The user defined date field 07",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD08": {
            "type": "string",
            "description": "The user defined date field 08",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD09": {
            "type": "string",
            "description": "The user defined date field 09",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD10": {
            "type": "string",
            "description": "The user defined date field 10",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udB01": {
            "type": "boolean",
            "description": "The user defined bool field 01",
            "nullable": true,
            "example": false
          },
          "udB02": {
            "type": "boolean",
            "description": "The user defined bool field 02",
            "nullable": true
          },
          "udB03": {
            "type": "boolean",
            "description": "The user defined bool field 03",
            "nullable": true
          },
          "udB04": {
            "type": "boolean",
            "description": "The user defined bool field 04",
            "nullable": true
          },
          "udB05": {
            "type": "boolean",
            "description": "The user defined bool field 05",
            "nullable": true
          },
          "udB06": {
            "type": "boolean",
            "description": "The user defined bool field 06",
            "nullable": true
          },
          "udB07": {
            "type": "boolean",
            "description": "The user defined bool field 07",
            "nullable": true
          },
          "udB08": {
            "type": "boolean",
            "description": "The user defined bool field 08",
            "nullable": true
          },
          "udB09": {
            "type": "boolean",
            "description": "The user defined bool field 09",
            "nullable": true
          },
          "udB10": {
            "type": "boolean",
            "description": "The user defined bool field 10",
            "nullable": true
          },
          "numberOfPayments": {
            "type": "integer",
            "description": "The number of payments made by a contact",
            "format": "int32",
            "example": 2
          },
          "sumOfPaymentAmount": {
            "type": "number",
            "description": "The sum of the contacts payments",
            "format": "double",
            "nullable": true,
            "example": 18.25
          },
          "sumOfNetPaymentAmount": {
            "type": "number",
            "description": "The sum of the net value for the contacts payments",
            "format": "double",
            "nullable": true,
            "example": 16.10
          },
          "sumOfTaxPaymentAmount": {
            "type": "number",
            "description": "The sum of the tax value for the contacts payments",
            "format": "double",
            "nullable": true,
            "example": 2.15
          },
          "maxPaymentAmount": {
            "type": "number",
            "description": "The largest single payment by the contact",
            "format": "double",
            "nullable": true,
            "example": 10.25
          },
          "avgPaymentAmount": {
            "type": "number",
            "description": "The average value of the contacts payments",
            "format": "double",
            "nullable": true,
            "example": 9.13
          },
          "firstPaymentDate": {
            "type": "string",
            "description": "The date of the first payment the contact made",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "lastPaymentDate": {
            "type": "string",
            "description": "The date of the last payment the contact made",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "prospectStatus": {
            "type": "string",
            "description": "The prospect status of the contact",
            "nullable": true,
            "example": "Discovered"
          },
          "activeMember": {
            "type": "boolean",
            "description": "Flag for contacts which are active members",
            "nullable": true,
            "example": true
          },
          "activePledge": {
            "type": "boolean",
            "description": "Flag for contacts which have active pledges",
            "nullable": true,
            "example": true
          },
          "legacyPledged": {
            "type": "boolean",
            "description": "Flag for contacts which have pledged legacies",
            "nullable": true,
            "example": false
          },
          "hasLegacy": {
            "type": "boolean",
            "description": "Flag for contacts which have active or completed legacies",
            "nullable": true,
            "example": false
          },
          "donorCategory": {
            "type": "string",
            "description": "The calculated donor category for the contact",
            "nullable": true,
            "example": "Repeat"
          },
          "donorSubCategory": {
            "type": "string",
            "description": "The calculated donor sub-category for the contact",
            "nullable": true,
            "example": "Year 1"
          },
          "lastEmploymentId": {
            "type": "string",
            "description": "The Employment ID of the last employment record for the contact",
            "nullable": true,
            "example": "00344"
          },
          "changeId": {
            "type": "string",
            "description": "The changeID need to make a new ContactGetChangesResponse class",
            "nullable": true
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "The contact custom fields",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the contact"
      },
      "ContactGetResponseCollectionResponse": {
        "type": "object",
        "properties": {
          "pageNumber": {
            "type": "integer",
            "description": "The page number for the data in the response",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "The page size for the data in the response",
            "format": "int32"
          },
          "totalCount": {
            "type": "integer",
            "description": "The total number of items in the data collection",
            "format": "int32",
            "nullable": true
          },
          "pageCount": {
            "type": "integer",
            "description": "The total number of pages in the data collection",
            "format": "int32",
            "nullable": true,
            "readOnly": true
          },
          "hasNextPage": {
            "type": "boolean",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ContactGetResponseCollectionItem"
            },
            "description": "The collection of items",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Holds response information for a collection of data"
      },
      "ContactGroupGetResponse": {
        "type": "object",
        "properties": {
          "category": {
            "type": "string",
            "description": "The category of the group",
            "nullable": true,
            "example": "Events"
          },
          "title": {
            "type": "string",
            "description": "The title of the group",
            "nullable": true,
            "example": "Event Group"
          },
          "archived": {
            "type": "boolean",
            "description": "The flag whether the group is archived",
            "example": false
          },
          "savedSearch": {
            "type": "boolean",
            "description": "A flag whether the group has a saved search",
            "example": false
          },
          "workspacePublish": {
            "type": "boolean",
            "description": "If the group is published to workspace\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": true
          },
          "groupId": {
            "type": "string",
            "description": "The group id of the contact\r\n<ul><li>Must reference an existing group, either in the database or as part of the same data import</li></ul><ul><li>Defaults to the Parent Group 'groupId'</li></ul>",
            "nullable": true,
            "example": "G00123"
          },
          "serialNumber": {
            "type": "string",
            "description": "The serial number of the contact\r\n<ul><li>Must exist as a contact, either in the database or as part of the same data import</li></ul><ul><li>Must not already exist in the specified group (includes the Web Area)</li></ul><ul><li>Must not be specified in combination with the same groupId multiple times in the import data</li></ul>",
            "nullable": true,
            "example": "123456789"
          },
          "startDate": {
            "type": "string",
            "description": "The date the contact was added to the group\r\n<ul><li>Defaults to the current date</li></ul>",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "mailQuantity": {
            "type": "integer",
            "description": "When a group is loaded into a mailing, this value will be used to determine how many copies of the mailing should be sent.\r\n<ul><li>Defaults to 1</li></ul>",
            "format": "int32",
            "nullable": true,
            "example": 2
          },
          "description": {
            "type": "string",
            "description": "The role in the group can be added to this field (e.g. Treasurer)",
            "nullable": true,
            "example": "Group Founder"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the group to post"
      },
      "ContactGroupPostRequest": {
        "type": "object",
        "properties": {
          "groupTitle": {
            "maxLength": 50,
            "type": "string",
            "description": "The title of the group. When provided, will create a new group as long as Group ID is not specified",
            "nullable": true,
            "example": "New Group Title"
          },
          "importRowId": {
            "type": "string",
            "description": "The related import row id that ties the group member back to a parent group in the import",
            "nullable": true
          },
          "importNewGroupId": {
            "type": "string",
            "description": "The ID of the new Group generated from the import. Used for validation purposes only on Contact Group imports.",
            "nullable": true
          },
          "groupId": {
            "maxLength": 50,
            "type": "string",
            "description": "The group id of the contact\r\n<ul><li>Must reference an existing group, either in the database or as part of the same data import</li></ul><ul><li>Defaults to the Parent Group 'groupId'</li></ul>",
            "nullable": true,
            "example": "G00123"
          },
          "serialNumber": {
            "maxLength": 50,
            "type": "string",
            "description": "The serial number of the contact\r\n<ul><li>Must exist as a contact, either in the database or as part of the same data import</li></ul><ul><li>Must not already exist in the specified group (includes the Web Area)</li></ul><ul><li>Must not be specified in combination with the same groupId multiple times in the import data</li></ul>",
            "nullable": true,
            "example": "123456789"
          },
          "startDate": {
            "type": "string",
            "description": "The date the contact was added to the group\r\n<ul><li>Defaults to the current date</li></ul>",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "mailQuantity": {
            "type": "integer",
            "description": "When a group is loaded into a mailing, this value will be used to determine how many copies of the mailing should be sent.\r\n<ul><li>Defaults to 1</li></ul>",
            "format": "int32",
            "nullable": true,
            "example": 2
          },
          "description": {
            "maxLength": 50,
            "type": "string",
            "description": "The role in the group can be added to this field (e.g. Treasurer)",
            "nullable": true,
            "example": "Group Founder"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the contact group to post"
      },
      "ContactPictureGetResponse": {
        "type": "object",
        "properties": {
          "serialNumber": {
            "type": "string",
            "description": "The serial number of the contact\r\n<ul><li>Must be a serial number of an existing contact, or a contact record that is part of the same import</li></ul>",
            "nullable": true,
            "example": "123456789"
          },
          "pictureBytes": {
            "type": "string",
            "description": "The bytes as a string for the contacts picture (could be jpg or png).\r\nIf posting convert the pictures byte array to a base64 encoding string.",
            "nullable": true,
            "example": "data:image/png;base64iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4CAYAAAA5ZDbSAAAKfklEQVR4Xu2df4wcZRnHn2d37nq3lP5IKyiI1GKMMSpYNMQSFdFSGwKlLdWioqHVg4iF2uu+M9eirMT2ZmZ75aBipFqJNVq10NoSggV/IEQMESqIIabRtYigoM1ttdxdr7vzmPc6TS5N93Z3fj7v+M6fd+/7vM/z/cw7+8477/u8CPrKtAKY6eh0cKABZ/wm0IA14IwrkPHwdA/WgDOuQMbD0z1YA864AhkPT/dgDTjjCmQ8PN2DNeCMK5Dx8HQP1oDVVGD16tXTurq65uZyuXcCwIUA8MZTIvknADzned4Lo6Ojla1bt/5HzUgn9zozPbhUKnWOjo7OJ6IbAWABAMxqE9hhAHgUEe/t6up6slQqjbVZn2Vx5QFv2LDh3Fqt1gcA1wPAtIhUlr35+4Zh9G/cuPHliGymYkZZwL29vbMNw9hERCsRMR+HekRUB4AdHR0dX1EVtHKAly9fnp87d24PAGwGgEIcYE9jcxgA1lUqlW27du2S0JW5lAIshDgHALYj4sfTUJiIfgYAq1zXfSWN9oO0qQxgIcT7AGA3Ip4XJNCo6hDRSwCw1HXdp6OyGacdJQCbprlIDnoCjIzj0k6OuK93HOfhuBqIyi57wJZlLSGi+wBgelRBR2TnCCLeYNv2nojsxWKGNWDTNOcDwD5GPfdUCLInX+04zpOx0InAKFvAlmXNJaL9APC2COKM08SfEXGhbduVOBsJapsl4DVr1syYMmXKXgD4UNDAEq73+LFjxxYPDg5WE263aXMcAaMQ4jZELAFArmkEPAp4RFRyXffrAEA8XDrhBTvAlmW9n4jk6LTdueS0dT2MiIts2/5d2o5MbJ8VYPnBYGRk5CcAsJiTSG34sre7u/sTnD5UsAJsWdblnuftQ8Qz2hCVTVEiep2IFpXL5Se4OMUGcE9PT8eMGTN+hIhLuYgTxA8i2l2tVlds27bteJD6UddhA9g0zXcDwC8A4A1RB5mwvX8BwEcdx3k+4XZP2xwbwEKIWxDxLg6ihPWBiG51XffusHaiqM8CsHw8z5w58wEAuCqKoBjYeHBoaGgZh8c0C8Br1649zzCMJxDxfAZwQrtARC/WarUPbtmyRX55SvViAVgI8REAeAgRu1NVI6LGiWgEAK50XfdXEZkMbIYFYMuyVhLR9sBRMKyIiKts2/5u2q6xAGya5lcB4GtpixFx+7c7jnNHxDbbNscCsBBCvv9+sm3vGVcgoh+7rrsibRc14JgIaMAThNU9OKa7jMvXJA1YA45PgZgs60f0BGFN05QrJj8Tk9apmCWiba7ryn1SqV4sBln6NSm+e4AFYMuylhHR/fGFmbxlRLzWtm05v57qxQXwxUT0KADMTFWN6BofQsQFtm0/E53JYJZYAF63bt1Z+Xz+1wDwjmBhsKv1p3q9/uHNmze/lrZnLADL1zUhxA8Q8bq0BYmifSLa6brupzmssOQCGIQQn0NEOTmvylLZRveCXEK70nXd70Vxs4S1wQbw+vXr31Sv1x8DgLeHDSrl+gfz+fxlmzZt+kfKfow3zwaw/5j+JiLexEGYoD4Q0bdc1/0ih8czN8BgmuaFRPQIIp4VVOA06xHRa4h4heM4z6Xpx8S2OfXg8RtOCKFsL+bWe9n1YOlQsVi8ABFlOqO3cukFrfhBRH8logXlcvkvrZRPqgy3HjwetxBCpkSSuTg6khIiTDtEJBe5y9wdck6d1cUSsL9H6dsA8FlWajV2Zkd3d/cXOO1JOukqS8DSOYX2CLPdG8zyN3hiJ1Fglz/r3f3sAfu/xyzSJ536dFYlnRLbR/REQeXGNCLay2VkLUfMiLiYywazycYpSgCWAZim+RYA+CkAvDflgdfvAeAax3H+lrIfLTWvDGD/cX0mANwp81Ol8FFCfkSQ+bq+7Lruf1tSl0EhpQD7emGxWFyEiPclNaUppyCJ6IZyuSxzh7BKstLsHlIR8HhMpmlOJyITEW+NMevsMBHdhYiO4zhHmonJ8f/KAj4ppg9abh6/GQDOjkjkV4noHkS8W1Ww7Cc62gXl55GW5zOsIqJr/Ky0rS4ekL+vLyGiHMRtr1QqL6iWF7qRXsr34EaByenOo0ePnmsYxjzP885GxIsBwPDL14jomVwu92qtVjswderUlzlOM7Z7k5+ufGYBRyFOFmxowFmgOEkMGrAGnHEFMh6e7sEasHoKyBH02NjYLEQcf006fvz4NESUmfQmjqKf7+joGD/Ojoi8zs7Ow1kcSavag7Gvr292vV6/iIjehYiXAMA8ubcJEWeHuSWJ6N8AMAQAB4joKUT8Yz6ff7a/v1/+XalpSqmDEoBljxweHp6HiEtkHkgf6pQwINutS0THJGyZT5OI9hQKhQMq9Hi2gOVOh1qttgQRP09E74nr+Lp2QZ8sL4+9Q8Q/ENF3DMPYw2Unw6nxsAIszyPM5/OfAoAvIeIFKXwSDMpbTnXK5bLfqNfrPxwYGJCPcxYXB8Dy8998RJSJ0C7j1lPbpeQfaPkYEd1eLpflcTup/m6nBlh+HJgzZ87SXC4nD7JQfcNZo/vgoOd5tx06dGh3Wh8vEgfsf/WR+4A3AoBchvP/cMnlPRsqlcrOpEEnCRhN07wCAGSi7Kz22GY360EAuMVxnEeSenQnAri3t/d8wzDuAQB5yGSr32ibiaXq/z0AeLhWq908MDDwYtxBxAo4pcOc49YsKvuJHDodG2C/1+5Q6Hi6qMC1ZUceOl2v12+KqzfHATjxVY9tKcqwcJyrNiMF7E8pyuTelurvs0nfB/77s10oFO6Icgo0MsBCiDMRUablX560OBlrbxcRyb3GkSyujwSwEOIcALgfET+QMbFTCYeIfgsA17qu+0pYB0IDZrRnKKwW3OpHsgcqFGANN/Z7IjTkwIAV2oEfO4WYGwiVQSAQYAVzaMTMIHbzgXOABAGs4hHssROIuYHAR8i3DbhYLF7nb91MdMlMzAKyNy+XDPlbWHe242xbgBVIitJO7CqWbTvpS8uA/RO67/V316soTiZ8llkGqtXqja0eXdsyYMuyLvc8bx8inpEJpRQNgohez+VyV9u2/ctWQmgJcKlUKgwPD+9GxIWtGNVl4lWAiPYXCoWlpVJJfnKc9GoJsGmaVxHRA6rkjmwWtOr/l7kxEXGZ4zgPNoulKWD/t1eeDrq0mTH9/+QUIKLd1Wp1RbPf4qaAi8XiRblc7ucAMCs593VLLShw2PO8j5XL5WcnK9sUsBDCRkSzhQZ1kYQVICLHdV0rMGA539zZ2SmTc8t8kfpipgARPT02NrZgcHCw2si1SXtwX1/fJZ7n7QeA6cxi0+6cUOBILpdb2N/f/1QgwJZlrSQiuUpDX0wVQMRVtm3L86ZOe03ag4UQcuaqh2ls2q0Tm9cnPca2IeBSqTR1ZGTkIb3slf199Hh3d/eVpVLp6Ok8bQjY35/7Gy45mtnLnJKDMne1YRiXNtqf3BCwXI5DRBLwm1PyXTfbggJE9HdEvLRR/uqGgPUIugV1eRSZdCStAfOAFMYLDTiMegrU1YAVgBTGRQ04jHoK1NWAFYAUxkUNOIx6CtTVgBWAFMZFDTiMegrU1YAVgBTGxUkB/w+Blxa1d2ENbgAAAABJRU5ErkJggg=="
          },
          "pictureModifiedDate": {
            "type": "string",
            "description": "The date the picture was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "dataHubId": {
            "type": "string",
            "description": "A reference to the contact in Access DataHub",
            "format": "uuid",
            "nullable": true,
            "example": "e6bc8f2f-a830-473b-bff0-99cae434ccc7"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the picture to post"
      },
      "ContactPicturePostRequest": {
        "required": [
          "pictureBytes"
        ],
        "type": "object",
        "properties": {
          "serialNumber": {
            "type": "string",
            "description": "The serial number of the contact\r\n<ul><li>Must be a serial number of an existing contact, or a contact record that is part of the same import</li></ul>",
            "nullable": true,
            "example": "123456789"
          },
          "pictureBytes": {
            "type": "string",
            "description": "The bytes as a string for the contacts picture (could be jpg or png).\r\nIf posting convert the pictures byte array to a base64 encoding string.",
            "example": "data:image/png;base64iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4CAYAAAA5ZDbSAAAKfklEQVR4Xu2df4wcZRnHn2d37nq3lP5IKyiI1GKMMSpYNMQSFdFSGwKlLdWioqHVg4iF2uu+M9eirMT2ZmZ75aBipFqJNVq10NoSggV/IEQMESqIIabRtYigoM1ttdxdr7vzmPc6TS5N93Z3fj7v+M6fd+/7vM/z/cw7+8477/u8CPrKtAKY6eh0cKABZ/wm0IA14IwrkPHwdA/WgDOuQMbD0z1YA864AhkPT/dgDTjjCmQ8PN2DNeCMK5Dx8HQP1oDVVGD16tXTurq65uZyuXcCwIUA8MZTIvknADzned4Lo6Ojla1bt/5HzUgn9zozPbhUKnWOjo7OJ6IbAWABAMxqE9hhAHgUEe/t6up6slQqjbVZn2Vx5QFv2LDh3Fqt1gcA1wPAtIhUlr35+4Zh9G/cuPHliGymYkZZwL29vbMNw9hERCsRMR+HekRUB4AdHR0dX1EVtHKAly9fnp87d24PAGwGgEIcYE9jcxgA1lUqlW27du2S0JW5lAIshDgHALYj4sfTUJiIfgYAq1zXfSWN9oO0qQxgIcT7AGA3Ip4XJNCo6hDRSwCw1HXdp6OyGacdJQCbprlIDnoCjIzj0k6OuK93HOfhuBqIyi57wJZlLSGi+wBgelRBR2TnCCLeYNv2nojsxWKGNWDTNOcDwD5GPfdUCLInX+04zpOx0InAKFvAlmXNJaL9APC2COKM08SfEXGhbduVOBsJapsl4DVr1syYMmXKXgD4UNDAEq73+LFjxxYPDg5WE263aXMcAaMQ4jZELAFArmkEPAp4RFRyXffrAEA8XDrhBTvAlmW9n4jk6LTdueS0dT2MiIts2/5d2o5MbJ8VYPnBYGRk5CcAsJiTSG34sre7u/sTnD5UsAJsWdblnuftQ8Qz2hCVTVEiep2IFpXL5Se4OMUGcE9PT8eMGTN+hIhLuYgTxA8i2l2tVlds27bteJD6UddhA9g0zXcDwC8A4A1RB5mwvX8BwEcdx3k+4XZP2xwbwEKIWxDxLg6ihPWBiG51XffusHaiqM8CsHw8z5w58wEAuCqKoBjYeHBoaGgZh8c0C8Br1649zzCMJxDxfAZwQrtARC/WarUPbtmyRX55SvViAVgI8REAeAgRu1NVI6LGiWgEAK50XfdXEZkMbIYFYMuyVhLR9sBRMKyIiKts2/5u2q6xAGya5lcB4GtpixFx+7c7jnNHxDbbNscCsBBCvv9+sm3vGVcgoh+7rrsibRc14JgIaMAThNU9OKa7jMvXJA1YA45PgZgs60f0BGFN05QrJj8Tk9apmCWiba7ryn1SqV4sBln6NSm+e4AFYMuylhHR/fGFmbxlRLzWtm05v57qxQXwxUT0KADMTFWN6BofQsQFtm0/E53JYJZYAF63bt1Z+Xz+1wDwjmBhsKv1p3q9/uHNmze/lrZnLADL1zUhxA8Q8bq0BYmifSLa6brupzmssOQCGIQQn0NEOTmvylLZRveCXEK70nXd70Vxs4S1wQbw+vXr31Sv1x8DgLeHDSrl+gfz+fxlmzZt+kfKfow3zwaw/5j+JiLexEGYoD4Q0bdc1/0ih8czN8BgmuaFRPQIIp4VVOA06xHRa4h4heM4z6Xpx8S2OfXg8RtOCKFsL+bWe9n1YOlQsVi8ABFlOqO3cukFrfhBRH8logXlcvkvrZRPqgy3HjwetxBCpkSSuTg6khIiTDtEJBe5y9wdck6d1cUSsL9H6dsA8FlWajV2Zkd3d/cXOO1JOukqS8DSOYX2CLPdG8zyN3hiJ1Fglz/r3f3sAfu/xyzSJ536dFYlnRLbR/REQeXGNCLay2VkLUfMiLiYywazycYpSgCWAZim+RYA+CkAvDflgdfvAeAax3H+lrIfLTWvDGD/cX0mANwp81Ol8FFCfkSQ+bq+7Lruf1tSl0EhpQD7emGxWFyEiPclNaUppyCJ6IZyuSxzh7BKstLsHlIR8HhMpmlOJyITEW+NMevsMBHdhYiO4zhHmonJ8f/KAj4ppg9abh6/GQDOjkjkV4noHkS8W1Ww7Cc62gXl55GW5zOsIqJr/Ky0rS4ekL+vLyGiHMRtr1QqL6iWF7qRXsr34EaByenOo0ePnmsYxjzP885GxIsBwPDL14jomVwu92qtVjswderUlzlOM7Z7k5+ufGYBRyFOFmxowFmgOEkMGrAGnHEFMh6e7sEasHoKyBH02NjYLEQcf006fvz4NESUmfQmjqKf7+joGD/Ojoi8zs7Ow1kcSavag7Gvr292vV6/iIjehYiXAMA8ubcJEWeHuSWJ6N8AMAQAB4joKUT8Yz6ff7a/v1/+XalpSqmDEoBljxweHp6HiEtkHkgf6pQwINutS0THJGyZT5OI9hQKhQMq9Hi2gOVOh1qttgQRP09E74nr+Lp2QZ8sL4+9Q8Q/ENF3DMPYw2Unw6nxsAIszyPM5/OfAoAvIeIFKXwSDMpbTnXK5bLfqNfrPxwYGJCPcxYXB8Dy8998RJSJ0C7j1lPbpeQfaPkYEd1eLpflcTup/m6nBlh+HJgzZ87SXC4nD7JQfcNZo/vgoOd5tx06dGh3Wh8vEgfsf/WR+4A3AoBchvP/cMnlPRsqlcrOpEEnCRhN07wCAGSi7Kz22GY360EAuMVxnEeSenQnAri3t/d8wzDuAQB5yGSr32ibiaXq/z0AeLhWq908MDDwYtxBxAo4pcOc49YsKvuJHDodG2C/1+5Q6Hi6qMC1ZUceOl2v12+KqzfHATjxVY9tKcqwcJyrNiMF7E8pyuTelurvs0nfB/77s10oFO6Icgo0MsBCiDMRUablX560OBlrbxcRyb3GkSyujwSwEOIcALgfET+QMbFTCYeIfgsA17qu+0pYB0IDZrRnKKwW3OpHsgcqFGANN/Z7IjTkwIAV2oEfO4WYGwiVQSAQYAVzaMTMIHbzgXOABAGs4hHssROIuYHAR8i3DbhYLF7nb91MdMlMzAKyNy+XDPlbWHe242xbgBVIitJO7CqWbTvpS8uA/RO67/V316soTiZ8llkGqtXqja0eXdsyYMuyLvc8bx8inpEJpRQNgohez+VyV9u2/ctWQmgJcKlUKgwPD+9GxIWtGNVl4lWAiPYXCoWlpVJJfnKc9GoJsGmaVxHRA6rkjmwWtOr/l7kxEXGZ4zgPNoulKWD/t1eeDrq0mTH9/+QUIKLd1Wp1RbPf4qaAi8XiRblc7ucAMCs593VLLShw2PO8j5XL5WcnK9sUsBDCRkSzhQZ1kYQVICLHdV0rMGA539zZ2SmTc8t8kfpipgARPT02NrZgcHCw2si1SXtwX1/fJZ7n7QeA6cxi0+6cUOBILpdb2N/f/1QgwJZlrSQiuUpDX0wVQMRVtm3L86ZOe03ag4UQcuaqh2ls2q0Tm9cnPca2IeBSqTR1ZGTkIb3slf199Hh3d/eVpVLp6Ok8bQjY35/7Gy45mtnLnJKDMne1YRiXNtqf3BCwXI5DRBLwm1PyXTfbggJE9HdEvLRR/uqGgPUIugV1eRSZdCStAfOAFMYLDTiMegrU1YAVgBTGRQ04jHoK1NWAFYAUxkUNOIx6CtTVgBWAFMZFDTiMegrU1YAVgBTGxUkB/w+Blxa1d2ENbgAAAABJRU5ErkJggg=="
          },
          "pictureModifiedDate": {
            "type": "string",
            "description": "The date the picture was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "dataHubId": {
            "type": "string",
            "description": "A reference to the contact in Access DataHub",
            "format": "uuid",
            "nullable": true,
            "example": "e6bc8f2f-a830-473b-bff0-99cae434ccc7"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the contact picture to post"
      },
      "ContactPostRequest": {
        "type": "object",
        "properties": {
          "isNew": {
            "type": "boolean",
            "description": "Whether the record is a new contact. Leave this null for a dupe check and match to occur against existing contacts. Note that the dupe checking process doesn’t occur if this value is set to true or false. Set this to false along with supplying the known SerialNumber for updates to occur.",
            "nullable": true,
            "example": true
          },
          "serialNumber": {
            "maxLength": 50,
            "type": "string",
            "description": "The serial number",
            "nullable": true
          },
          "contactType": {
            "maxLength": 15,
            "type": "string",
            "description": "Individual, Organisation or Household\r\n<ul><li>Must be 'Individual', 'Organisation' or 'Household'</li></ul><ul><li>When committee = true or funder = true then must be 'Organisation'</li></ul><ul><li>Default is 'Individual'</li></ul>",
            "nullable": true,
            "example": "Individual"
          },
          "primaryCategory": {
            "maxLength": 50,
            "type": "string",
            "description": "The primary category of the contact\r\n<ul><li>Must exist in the 'PrimaryCategory' lookup</li></ul>",
            "nullable": true,
            "example": "Supporter"
          },
          "alumni": {
            "type": "boolean",
            "description": "Whether the contact is an alumnus\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "committee": {
            "type": "boolean",
            "description": "Whether the contact is a committee\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "volunteer": {
            "type": "boolean",
            "description": "Whether the contact is a volunteer\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": true
          },
          "funder": {
            "type": "boolean",
            "description": "Whether the contact is a funder\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "prospect": {
            "type": "boolean",
            "description": "Whether the contact is a prospect\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": true
          },
          "title": {
            "maxLength": 30,
            "type": "string",
            "description": "Title of the contact",
            "nullable": true,
            "example": "Mr"
          },
          "firstName": {
            "maxLength": 50,
            "type": "string",
            "description": "First name of  the contact",
            "nullable": true,
            "example": "Ben"
          },
          "otherInitial": {
            "maxLength": 10,
            "type": "string",
            "description": "The other initials of the contact",
            "nullable": true,
            "example": "T"
          },
          "keyname": {
            "maxLength": 100,
            "type": "string",
            "description": "The surname or organisation name of the contact",
            "nullable": true,
            "example": "Simmons"
          },
          "previousName": {
            "maxLength": 255,
            "type": "string",
            "description": "The previous name of the contact",
            "nullable": true,
            "example": ""
          },
          "defaultToAnonymous": {
            "type": "boolean",
            "description": "When true, this indicates that all transactions processed from the contact should be regarded as anonymous  \r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "postNominal": {
            "maxLength": 100,
            "type": "string",
            "description": "Qualifications or awards which form part of the contact's name (e.g. OBE)",
            "nullable": true,
            "example": "BSc"
          },
          "addressType": {
            "maxLength": 50,
            "type": "string",
            "description": "The type of the address \r\n<ul><li>Must exist in the 'AddressDescription' lookup</li></ul>",
            "nullable": true,
            "example": "Residential"
          },
          "address": {
            "maxLength": 255,
            "type": "string",
            "description": "The 1st part of the address\r\n<ul><li>When preferredCommunicationChannel = 'letter'</li></ul><ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "98  Fordham Rd"
          },
          "town": {
            "maxLength": 100,
            "type": "string",
            "description": "The town of the address",
            "nullable": true,
            "example": "Kettering"
          },
          "county": {
            "maxLength": 100,
            "type": "string",
            "description": "The county of the address",
            "nullable": true,
            "example": "Northamptonshire"
          },
          "country": {
            "maxLength": 50,
            "type": "string",
            "description": "The country of the address\r\n<ul><li>Default is the value specified in the Library Definition DefaultCountry</li></ul>",
            "nullable": true,
            "example": "England"
          },
          "postcode": {
            "maxLength": 15,
            "type": "string",
            "description": "The postcode of the address",
            "nullable": true,
            "example": "NN5 4DD"
          },
          "useAddressFrom": {
            "type": "string",
            "description": "The date from when the address is to be recorded against the contact record as the contact's address",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "useAddressUntil": {
            "type": "string",
            "description": "The date until when the address is to be recorded against the contact record as the contact's address",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "annualSeasonalAddress": {
            "type": "boolean",
            "description": "Indicates that the address is used annually to specify a seasonal address based on the dates entered in the Address From and Address To fields\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "notMailingAddress": {
            "type": "boolean",
            "description": "Indicates if the address can be mailed to or not",
            "nullable": true,
            "example": false
          },
          "latitude": {
            "type": "number",
            "description": "The latitude of the contact's Address",
            "format": "double",
            "nullable": true,
            "example": -26.73794
          },
          "longitude": {
            "type": "number",
            "description": "The longitude of the contact's Address",
            "format": "double",
            "nullable": true,
            "example": 35.91756
          },
          "region": {
            "maxLength": 50,
            "type": "string",
            "description": "The region the contact is in",
            "nullable": true,
            "example": ""
          },
          "letterSalutation": {
            "maxLength": 300,
            "type": "string",
            "description": "The salutation to be used within letters sent to the contact (i.e. following Dear)",
            "nullable": true,
            "example": "Mr Simmons"
          },
          "envelopeSalutation": {
            "maxLength": 300,
            "type": "string",
            "description": "The salutation to be used on envelopes addressed to the contact",
            "nullable": true,
            "example": "Mr Simmons"
          },
          "dayTelephone": {
            "maxLength": 30,
            "type": "string",
            "description": "The contact’s day time telephone number",
            "nullable": true,
            "example": "023452948238"
          },
          "tpsDayTelephone": {
            "type": "boolean",
            "description": "Whether the contact's day number is on the TPS",
            "nullable": true,
            "example": "True"
          },
          "eveningTelephone": {
            "maxLength": 30,
            "type": "string",
            "description": "The contact’s evening telephone number",
            "nullable": true,
            "example": "023452948238"
          },
          "tpsEveningTelephone": {
            "type": "boolean",
            "description": "Whether the contact's evening number is on the TPS",
            "nullable": true,
            "example": "False"
          },
          "mobileNumber": {
            "maxLength": 30,
            "type": "string",
            "description": "The contact’s mobile number\r\n<ul><li> For new records this must not be empty when the preferredCommunicationChannel = 'sms' </li></ul>",
            "nullable": true,
            "example": ""
          },
          "tpsMobileNumber": {
            "type": "boolean",
            "description": "Whether the contact's mobile number is on the TPS",
            "nullable": true,
            "example": "False"
          },
          "emailAddress": {
            "maxLength": 255,
            "type": "string",
            "description": "The contact’s email address\r\n<ul><li>Must be a valid e-mail address</li></ul><ul><li>For new records this must not be empty when the preferredCommunicationChannel = 'email'</li></ul>",
            "nullable": true,
            "example": "b_simmons@hotmail.com"
          },
          "emailAddressValidated": {
            "type": "string",
            "description": "The date when the email address was last fully validated",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "emailAddressValid": {
            "type": "boolean",
            "description": "Indicates whether or not the email address has been fully validated, and is usable",
            "nullable": true,
            "example": true
          },
          "faxNumber": {
            "maxLength": 30,
            "type": "string",
            "description": "The contact’s fax number\r\n<ul><li> For new records this must not be empty when the preferredCommunicationChannel = 'fax'</li></ul>",
            "nullable": true,
            "example": ""
          },
          "gender": {
            "maxLength": 50,
            "type": "string",
            "description": "The contact’s gender\r\n<ul><li>Must exist in the 'Gender' lookup</li></ul>",
            "nullable": true,
            "example": "Male"
          },
          "dateOfBirth": {
            "type": "string",
            "description": "The contact’s date of birth",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "dateOfBirthIsEstimated": {
            "type": "boolean",
            "description": "Whether the contact’s date of birth is estimated\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "dateOfDeath": {
            "type": "string",
            "description": "The contact’s date of death",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "dateOfDeathIsEstimated": {
            "type": "boolean",
            "description": "Whether the contact’s date of death is estimated\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true
          },
          "website": {
            "maxLength": 150,
            "type": "string",
            "description": "The contact’s website",
            "nullable": true,
            "example": "https://www.bsimmons.com"
          },
          "maritalStatus": {
            "maxLength": 25,
            "type": "string",
            "description": "The contact’s marital status\r\n<ul><li>Must exist in the 'Marital Status' lookup</li></ul>",
            "nullable": true,
            "example": "Married"
          },
          "occupation": {
            "maxLength": 50,
            "type": "string",
            "description": "The contact’s occupation",
            "nullable": true,
            "example": "Teacher"
          },
          "jobTitle": {
            "maxLength": 50,
            "type": "string",
            "description": "The contact’s job title",
            "nullable": true,
            "example": "Head of Sciences"
          },
          "charityNumber": {
            "maxLength": 20,
            "type": "string",
            "description": "The charity commission number for the organisation",
            "nullable": true,
            "example": ""
          },
          "vatNumber": {
            "maxLength": 30,
            "type": "string",
            "description": "The contact's VAT number\r\n<ul><li>Must be numeric and contain 9 digits</li></ul>",
            "nullable": true,
            "example": ""
          },
          "taxStatus": {
            "maxLength": 50,
            "type": "string",
            "description": "The contact's tax status\r\n<ul><li>Must exist in the 'Tax Status' lookup</li></ul>",
            "nullable": true,
            "example": "GAD Active"
          },
          "gadLastRequested": {
            "type": "string",
            "description": "The date a gift aid declaration was last requested for this contact",
            "format": "date-time",
            "nullable": true,
            "example": "2024-10-08"
          },
          "socialSecurity": {
            "maxLength": 20,
            "type": "string",
            "description": "The contact's social security number",
            "nullable": true,
            "example": ""
          },
          "nationality": {
            "maxLength": 50,
            "type": "string",
            "description": "The contact's nationality\r\n<ul><li>Must exist in the 'Nationality' lookup</li></ul>",
            "nullable": true,
            "example": "British"
          },
          "ethnicity": {
            "maxLength": 50,
            "type": "string",
            "description": "The contact's ethnicity\r\n<ul><li>Must exist in the 'Ethnicity' lookup</li></ul>",
            "nullable": true,
            "example": "White British"
          },
          "sourceCode": {
            "maxLength": 25,
            "type": "string",
            "description": "The source of the contact record (e.g. how the contact was recruited / introduced)\r\n<ul><li>Must exist as a source code</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "origin": {
            "maxLength": 50,
            "type": "string",
            "description": "This is related to the source of the contact, but is a more general flag for how the contact came to you\r\n<ul><li>Must exist in the 'Origin' lookup</li></ul>",
            "nullable": true,
            "example": "Event"
          },
          "notes": {
            "maxLength": 2000,
            "type": "string",
            "description": "General notes on the contact",
            "nullable": true,
            "example": "This can be free text"
          },
          "preferredLanguage": {
            "maxLength": 50,
            "type": "string",
            "description": "The contacts preferred language\r\n<ul><li>Must exist in the 'Language' lookup</li></ul>",
            "nullable": true,
            "example": "English"
          },
          "preferredCommunicationChannel": {
            "maxLength": 50,
            "type": "string",
            "description": "The contact's preference for contact by your organisation (e.g. Letter, Phone, …)\r\n<ul><li>Must exist in the 'MailingMethod' lookup</li></ul>",
            "nullable": true,
            "example": "Mail"
          },
          "preferredEmailFormat": {
            "maxLength": 50,
            "type": "string",
            "description": "Preference to receive HTML or plain text emails\r\n<ul><li>Must exist in the 'Preferred Email Format' lookup</li></ul>",
            "nullable": true,
            "example": "HTML"
          },
          "mailingFrequency": {
            "type": "integer",
            "description": "The number of mailings the contact has requested to be sent. This is used by the “Too Many Mailings” functionality in the Mail Manager",
            "format": "int32",
            "nullable": true,
            "example": 10
          },
          "goneAwayRating": {
            "maxLength": 50,
            "type": "string",
            "description": "An indicator of how many times mail has been returned from the contact's address due to the contact being away",
            "nullable": true,
            "example": "GA02"
          },
          "emailReturnRating": {
            "type": "integer",
            "description": "Count of soft bounces received from bulk emails",
            "format": "int32",
            "nullable": true,
            "example": 3
          },
          "phoneTPSOverride": {
            "type": "boolean",
            "description": "Whether the contact has expressed a TPS override preference from your organisation \r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "blockPurchases": {
            "type": "boolean",
            "description": "Whether a block has been placed on future purchases (i.e. orders or event bookings) from the contact.\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "blockPurchasesReason": {
            "maxLength": 50,
            "type": "string",
            "description": "The reason a block has been placed on future purchases (i.e. orders or event bookings) from the contact.\r\n<ul><li>Must exist in the 'BlockPurchasesReason' lookup</li></ul>",
            "nullable": true,
            "example": ""
          },
          "doNotContact": {
            "type": "boolean",
            "description": "Whether the contact shouldn’t be contacted via any channel",
            "nullable": true,
            "example": false
          },
          "doNotContactReason": {
            "maxLength": 50,
            "type": "string",
            "description": "The reason the contact shouldn’t be contacted\r\n<ul><li>Must exist in the 'DoNotMailReason' lookup</li></ul><ul><li>For new records this must not be empty when DoNotContact = true</li></ul>",
            "nullable": true
          },
          "doNotContactSourceCode": {
            "maxLength": 20,
            "type": "string",
            "description": "The Source Code corresponding to the contact being marked as Do Not Contact\r\n<ul><li>Must exist as a source code</li></ul>",
            "nullable": true
          },
          "doNotContactFrom": {
            "type": "string",
            "description": "The date from when the contact should not receive contact",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "doNotContactUntil": {
            "type": "string",
            "description": "The date until the contact should not receive contact",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "doNotMail": {
            "type": "boolean",
            "description": "Whether the contact shouldn’t be contacted via post\r\n<ul><li>Must not be true when the preferredCommunicationChannel is either 'Mail' or 'Large Print'</li></ul><ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "doNotMailSourceCode": {
            "maxLength": 20,
            "type": "string",
            "description": "The Source Code corresponding to the contact being marked as Do Not Contact\r\n<ul><li>Must exist as a source code</li></ul>",
            "nullable": true
          },
          "doNotEmail": {
            "type": "boolean",
            "description": "Whether the contact shouldn’t be contacted via email\r\n<ul><li> Must not be true when the preferredCommunicationChannel is 'Email'</li></ul><ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": true
          },
          "doNotEmailSourceCode": {
            "maxLength": 20,
            "type": "string",
            "description": "The Source Code corresponding to the contact being marked as Do Not Email\r\n<ul><li>Must exist as a source code</li></ul>",
            "nullable": true,
            "example": "FUND02"
          },
          "doNotPhone": {
            "type": "boolean",
            "description": "Whether the contact shouldn’t be contacted via phone\r\n<ul><li> Must not be true when the preferredCommunicationChannel is 'Phone'</li></ul><ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "doNotPhoneSourceCode": {
            "maxLength": 20,
            "type": "string",
            "description": "The Source Code corresponding to the contact being marked as Do Not Phone\r\n<ul><li>Must exist as a source code</li></ul>",
            "nullable": true
          },
          "doNotSMS": {
            "type": "boolean",
            "description": "Whether the contact shouldn’t be contacted via SMS\r\n<ul><li>Must not be true when the preferredCommunicationChannel is 'SMS'</li></ul><ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": true
          },
          "doNotSMSSourceCode": {
            "maxLength": 20,
            "type": "string",
            "description": "The Source Code corresponding to the contact being marked as Do Not SMS\r\n<ul><li>Must exist as a source code</li></ul>",
            "nullable": true,
            "example": "FUND02"
          },
          "doNotFax": {
            "type": "boolean",
            "description": "Whether the contact shouldn’t be contacted via fax\r\n<ul><li>Must not be true when the preferredCommunicationChannel is 'Fax'</li></ul><ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "doNotFaxSourceCode": {
            "maxLength": 20,
            "type": "string",
            "description": "The Source Code corresponding to the contact being marked as Do Not Fax\r\n<ul><li>Must exist as a source code</li></ul>",
            "nullable": true
          },
          "committeeType": {
            "maxLength": 50,
            "type": "string",
            "description": "The committee type\r\n<ul><li>Must exist in the 'CommitteeType' lookup</li></ul>",
            "nullable": true
          },
          "committeeSubType": {
            "maxLength": 50,
            "type": "string",
            "description": "The committee sub type\r\n<ul><li>Must exist in the 'CommitteeSubType' lookup</li></ul>",
            "nullable": true
          },
          "committeeStartDate": {
            "type": "string",
            "description": "The date the committee started to operate",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "committeeEndDate": {
            "type": "string",
            "description": "The date the committee ceases to operate",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "volunteerSourceCode": {
            "maxLength": 20,
            "type": "string",
            "description": "The Source Code corresponding to the contact becoming a volunteer\r\n<ul><li>Must exist as a source code</li></ul>",
            "nullable": true,
            "example": "FUND02"
          },
          "volunteerEmergencyName": {
            "maxLength": 100,
            "type": "string",
            "description": "The contact's emergency contact's name",
            "nullable": true,
            "example": "Rachel Simmons"
          },
          "volunteerEmergencyNumber": {
            "maxLength": 30,
            "type": "string",
            "description": "The contact's emergency contact's phone number",
            "nullable": true,
            "example": "07483494923948"
          },
          "volunteerSpecialRequirements": {
            "maxLength": 255,
            "type": "string",
            "description": "The volunteer's special needs or requirements",
            "nullable": true,
            "example": ""
          },
          "classOf": {
            "maxLength": 4,
            "type": "string",
            "description": "Class Of (year) for the contact\r\n<ul><li>Must be numeric</li></ul>",
            "nullable": true,
            "example": "2000"
          },
          "classOfElectedByStudent": {
            "type": "boolean",
            "description": "Indicates that the student/contact has indicated a preference for their Class Of year\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "funderUrl": {
            "maxLength": 1024,
            "type": "string",
            "description": "The URL of the Funder",
            "nullable": true,
            "example": "B-Simmons345"
          },
          "funderDoNotReapply": {
            "type": "boolean",
            "description": "Indicates whether or not the funder can be reapplied to\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true
          },
          "funderCSRPolicy": {
            "type": "boolean",
            "description": "This indicates whether the funder has a CSR policy\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true
          },
          "funderNotes": {
            "maxLength": 2000,
            "type": "string",
            "description": "Informal notes recorded against the prospect",
            "nullable": true
          },
          "funderValueAddedBenefits": {
            "maxLength": 2000,
            "type": "string",
            "description": "This will list any value added benefits of the funder",
            "nullable": true
          },
          "constituency": {
            "maxLength": 50,
            "type": "string",
            "description": "Parliamentary Constituency corresponding to the current postcode",
            "nullable": true
          },
          "devolvedConstituencyName": {
            "maxLength": 50,
            "type": "string",
            "description": "The Devolved Constituency Name for the current postcode",
            "nullable": true
          },
          "wardCode": {
            "maxLength": 9,
            "type": "string",
            "description": "Code identifying the electoral ward for the current postcode",
            "nullable": true
          },
          "wardName": {
            "maxLength": 50,
            "type": "string",
            "description": "Name identifying the electoral ward for this postcode",
            "nullable": true
          },
          "authority": {
            "maxLength": 50,
            "type": "string",
            "description": "Local / Unitary Authority for the current postcode",
            "nullable": true
          },
          "volunteerUsername": {
            "type": "string",
            "description": "Username for the volunteer record",
            "nullable": true
          },
          "volunteerStatus": {
            "type": "string",
            "description": "Status of the volunteer",
            "nullable": true
          },
          "dateFirstVolunteered": {
            "type": "string",
            "description": "Date of first volunteering",
            "format": "date-time",
            "nullable": true
          },
          "externalRef": {
            "maxLength": 50,
            "type": "string",
            "description": "A reference to the contact in another system",
            "nullable": true,
            "example": "74004803"
          },
          "dataHubId": {
            "type": "string",
            "description": "A reference to the contact in Access DataHub",
            "format": "uuid",
            "nullable": true,
            "example": "a9eab83b-ac3e-4f1d-aaf3-2fc4519beac9"
          },
          "created": {
            "type": "string",
            "description": "When the record was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user who created the record\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "modified": {
            "type": "string",
            "description": "When the record was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user who last modified the record\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "udT01": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 01",
            "nullable": true,
            "example": "User Defined Text Field Here"
          },
          "udT02": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 02",
            "nullable": true
          },
          "udT03": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 03",
            "nullable": true
          },
          "udT04": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 04",
            "nullable": true
          },
          "udT05": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 05",
            "nullable": true
          },
          "udT06": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 06",
            "nullable": true
          },
          "udT07": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 07",
            "nullable": true
          },
          "udT08": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 08",
            "nullable": true
          },
          "udT09": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 09",
            "nullable": true
          },
          "udT10": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 10",
            "nullable": true
          },
          "udN01": {
            "type": "number",
            "description": "The user defined number field 01",
            "format": "double",
            "nullable": true,
            "example": 34.22
          },
          "udN02": {
            "type": "number",
            "description": "The user defined number field 02",
            "format": "double",
            "nullable": true
          },
          "udN03": {
            "type": "number",
            "description": "The user defined number field 03",
            "format": "double",
            "nullable": true
          },
          "udN04": {
            "type": "number",
            "description": "The user defined number field 04",
            "format": "double",
            "nullable": true
          },
          "udN05": {
            "type": "number",
            "description": "The user defined number field 05",
            "format": "double",
            "nullable": true
          },
          "udN06": {
            "type": "number",
            "description": "The user defined number field 06",
            "format": "double",
            "nullable": true
          },
          "udN07": {
            "type": "number",
            "description": "The user defined number field 07",
            "format": "double",
            "nullable": true
          },
          "udN08": {
            "type": "number",
            "description": "The user defined number field 08",
            "format": "double",
            "nullable": true
          },
          "udN09": {
            "type": "number",
            "description": "The user defined number field 09",
            "format": "double",
            "nullable": true
          },
          "udN10": {
            "type": "number",
            "description": "The user defined number field 10",
            "format": "double",
            "nullable": true
          },
          "udD01": {
            "type": "string",
            "description": "The user defined date field 01",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD02": {
            "type": "string",
            "description": "The user defined date field 02",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD03": {
            "type": "string",
            "description": "The user defined date field 03",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD04": {
            "type": "string",
            "description": "The user defined date field 04",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD05": {
            "type": "string",
            "description": "The user defined date field 05",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD06": {
            "type": "string",
            "description": "The user defined date field 06",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD07": {
            "type": "string",
            "description": "The user defined date field 07",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD08": {
            "type": "string",
            "description": "The user defined date field 08",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD09": {
            "type": "string",
            "description": "The user defined date field 09",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD10": {
            "type": "string",
            "description": "The user defined date field 10",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udB01": {
            "type": "boolean",
            "description": "The user defined bool field 01",
            "nullable": true,
            "example": false
          },
          "udB02": {
            "type": "boolean",
            "description": "The user defined bool field 02",
            "nullable": true
          },
          "udB03": {
            "type": "boolean",
            "description": "The user defined bool field 03",
            "nullable": true
          },
          "udB04": {
            "type": "boolean",
            "description": "The user defined bool field 04",
            "nullable": true
          },
          "udB05": {
            "type": "boolean",
            "description": "The user defined bool field 05",
            "nullable": true
          },
          "udB06": {
            "type": "boolean",
            "description": "The user defined bool field 06",
            "nullable": true
          },
          "udB07": {
            "type": "boolean",
            "description": "The user defined bool field 07",
            "nullable": true
          },
          "udB08": {
            "type": "boolean",
            "description": "The user defined bool field 08",
            "nullable": true
          },
          "udB09": {
            "type": "boolean",
            "description": "The user defined bool field 09",
            "nullable": true
          },
          "udB10": {
            "type": "boolean",
            "description": "The user defined bool field 10",
            "nullable": true
          },
          "importRowId": {
            "type": "string",
            "description": "The related import row id. e.g. for a payments this would be the PaymentId",
            "nullable": true
          },
          "teams": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ContactTeamPostRequest"
            },
            "description": "The user teams that the contact is associated with",
            "nullable": true
          },
          "profiles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ContactProfilePostRequest"
            },
            "description": "The profiles against the contact",
            "nullable": true
          },
          "consent": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ContactConsentPostRequest"
            },
            "description": "The contact's consent",
            "nullable": true
          },
          "groups": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ContactGroupPostRequest"
            },
            "description": "The groups that the contact belongs to",
            "nullable": true
          },
          "preferences": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ContactPreferencePostRequest"
            },
            "description": "The contact's communication preferences",
            "nullable": true
          },
          "externalReferences": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ContactExternalReferencePostRequest"
            },
            "description": "The external references for the contact",
            "nullable": true
          },
          "socialMedia": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ContactSocialMediaPostRequest"
            },
            "description": "The social media accounts for the contact",
            "nullable": true
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomFieldPostRequest"
            },
            "description": "Custom field data",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information for posting a contact"
      },
      "ContactPreferenceBase": {
        "type": "object",
        "properties": {
          "preferenceId": {
            "type": "string",
            "description": "A unique id for the preference\r\n<ul><li>Must not already exist</li></ul><ul><li>Must be unique in the imported records</li></ul><ul><li>Default is Sequence: MailingPreferenceID</li></ul>",
            "nullable": true,
            "example": "00000000021"
          },
          "preference": {
            "type": "string",
            "description": "The specific area of communication\r\n<ul><li>Must exist in the 'MailingPreference' lookup</li></ul>",
            "nullable": true,
            "example": "Photography"
          },
          "method": {
            "type": "string",
            "description": "The specific method of communication for this preference\r\n<ul><li>Must exist in the 'MailingMethod' lookup</li></ul>",
            "nullable": true,
            "example": "Email"
          },
          "envelopeSalutation": {
            "type": "string",
            "description": "The envelope salutation to be used for this preference",
            "nullable": true,
            "example": "Captain Simmons"
          },
          "letterSalutation": {
            "type": "string",
            "description": "The letter salutation to be used for this preference",
            "nullable": true,
            "example": "Mr Simmons"
          },
          "useFrom": {
            "type": "string",
            "description": "The date from which the preference applies",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "useUntil": {
            "type": "string",
            "description": "The date until the preference applies",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "doNotContact": {
            "type": "boolean",
            "description": "When this is true, the contact shouldn’t be contacted for this area of communication\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "externalRef": {
            "type": "string",
            "description": "The unique ID of the record that the preference is linked to\r\n<ul><li>Must be an existing membership, invoice, event booking or event attendee for this contact</li></ul>",
            "nullable": true,
            "example": "M102110388-H1"
          },
          "externalRefType": {
            "type": "string",
            "description": "The type of record that the preference is linked to\r\n<ul><li>Must exist in the 'ExternalRefTypesForPreferences' lookup</li></ul>",
            "nullable": true,
            "example": "MembershipDetail"
          },
          "dataHubId": {
            "type": "string",
            "description": "A reference to the preference in Access DataHub",
            "format": "uuid",
            "nullable": true,
            "example": "4e282d64-5d2a-4cf0-9388-92e73f7a7237"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the contact preference to post"
      },
      "ContactPreferenceChildPostRequest": {
        "type": "object",
        "properties": {
          "preferenceId": {
            "maxLength": 50,
            "type": "string",
            "description": "A unique id for the preference\r\n<ul><li>Must not already exist</li></ul><ul><li>Must be unique in the imported records</li></ul><ul><li>Default is Sequence: MailingPreferenceID</li></ul>",
            "nullable": true,
            "example": "00000000021"
          },
          "preference": {
            "maxLength": 50,
            "type": "string",
            "description": "The specific area of communication\r\n<ul><li>Must exist in the 'MailingPreference' lookup</li></ul>",
            "nullable": true,
            "example": "Photography"
          },
          "method": {
            "maxLength": 50,
            "type": "string",
            "description": "The specific method of communication for this preference\r\n<ul><li>Must exist in the 'MailingMethod' lookup</li></ul>",
            "nullable": true,
            "example": "Email"
          },
          "envelopeSalutation": {
            "maxLength": 300,
            "type": "string",
            "description": "The envelope salutation to be used for this preference",
            "nullable": true,
            "example": "Captain Simmons"
          },
          "letterSalutation": {
            "maxLength": 200,
            "type": "string",
            "description": "The letter salutation to be used for this preference",
            "nullable": true,
            "example": "Mr Simmons"
          },
          "useFrom": {
            "type": "string",
            "description": "The date from which the preference applies",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "useUntil": {
            "type": "string",
            "description": "The date until the preference applies",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "doNotContact": {
            "type": "boolean",
            "description": "When this is true, the contact shouldn’t be contacted for this area of communication\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "externalRef": {
            "maxLength": 50,
            "type": "string",
            "description": "The unique ID of the record that the preference is linked to\r\n<ul><li>Must be an existing membership, invoice, event booking or event attendee for this contact</li></ul>",
            "nullable": true,
            "example": "M102110388-H1"
          },
          "externalRefType": {
            "maxLength": 50,
            "type": "string",
            "description": "The type of record that the preference is linked to\r\n<ul><li>Must exist in the 'ExternalRefTypesForPreferences' lookup</li></ul>",
            "nullable": true,
            "example": "MembershipDetail"
          },
          "dataHubId": {
            "type": "string",
            "description": "A reference to the preference in Access DataHub",
            "format": "uuid",
            "nullable": true,
            "example": "4e282d64-5d2a-4cf0-9388-92e73f7a7237"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the contact preference against an address to post"
      },
      "ContactPreferenceGetResponse": {
        "type": "object",
        "properties": {
          "preferenceId": {
            "type": "string",
            "description": "A unique id for the preference\r\n<ul><li>Must not already exist</li></ul><ul><li>Must be unique in the imported records</li></ul><ul><li>Default is Sequence: MailingPreferenceID</li></ul>",
            "nullable": true,
            "example": "00000000021"
          },
          "serialNumber": {
            "type": "string",
            "description": "The serial number of the contact",
            "nullable": true,
            "example": "123456789"
          },
          "preference": {
            "type": "string",
            "description": "The specific area of communication\r\n<ul><li>Must exist in the 'MailingPreference' lookup</li></ul>",
            "nullable": true,
            "example": "Photography"
          },
          "addressId": {
            "type": "string",
            "description": "A reference to the address to be used for this preference",
            "nullable": true,
            "example": "Z122139"
          },
          "contactDataHubId": {
            "type": "string",
            "description": "A reference to the contact in Access DataHub",
            "format": "uuid",
            "nullable": true,
            "example": "4e7f9d7c-db0f-4010-ba26-6fe1f7edef49"
          },
          "addressDataHubId": {
            "type": "string",
            "description": "A reference to the address in Access DataHub",
            "format": "uuid",
            "nullable": true,
            "example": "f7e7e522-4703-4ce1-94bd-38147ea4f497"
          },
          "address": {
            "type": "string",
            "description": "The 1st part of the address",
            "nullable": true,
            "example": "98  Fordham Rd"
          },
          "town": {
            "type": "string",
            "description": "The town of the address",
            "nullable": true,
            "example": "Kettering"
          },
          "county": {
            "type": "string",
            "description": "The county of the address",
            "nullable": true,
            "example": "Northamptonshire"
          },
          "country": {
            "type": "string",
            "description": "The country of the address",
            "nullable": true,
            "example": "England"
          },
          "postcode": {
            "type": "string",
            "description": "The postcode of the address",
            "nullable": true,
            "example": "NN5 4DD"
          },
          "method": {
            "type": "string",
            "description": "The specific method of communication for this preference\r\n<ul><li>Must exist in the 'MailingMethod' lookup</li></ul>",
            "nullable": true,
            "example": "Email"
          },
          "envelopeSalutation": {
            "type": "string",
            "description": "The envelope salutation to be used for this preference",
            "nullable": true,
            "example": "Captain Simmons"
          },
          "letterSalutation": {
            "type": "string",
            "description": "The letter salutation to be used for this preference",
            "nullable": true,
            "example": "Mr Simmons"
          },
          "useFrom": {
            "type": "string",
            "description": "The date from which the preference applies",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "useUntil": {
            "type": "string",
            "description": "The date until the preference applies",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "doNotContact": {
            "type": "boolean",
            "description": "When this is true, the contact shouldn’t be contacted for this area of communication\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "externalRef": {
            "type": "string",
            "description": "The unique ID of the record that the preference is linked to\r\n<ul><li>Must be an existing membership, invoice, event booking or event attendee for this contact</li></ul>",
            "nullable": true,
            "example": "M102110388-H1"
          },
          "externalRefType": {
            "type": "string",
            "description": "The type of record that the preference is linked to\r\n<ul><li>Must exist in the 'ExternalRefTypesForPreferences' lookup</li></ul>",
            "nullable": true,
            "example": "MembershipDetail"
          },
          "dataHubId": {
            "type": "string",
            "description": "A reference to the preference in Access DataHub",
            "format": "uuid",
            "nullable": true,
            "example": "4e282d64-5d2a-4cf0-9388-92e73f7a7237"
          },
          "useOnlyForTheExternalRef": {
            "type": "boolean",
            "description": "When this is true, the preference only applies to the record linked by the ExternalRef",
            "nullable": true,
            "example": false
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the contact preference to post"
      },
      "ContactPreferencePostRequest": {
        "required": [
          "preference"
        ],
        "type": "object",
        "properties": {
          "preferenceId": {
            "maxLength": 50,
            "type": "string",
            "description": "A unique id for the preference\r\n<ul><li>Must not already exist</li></ul><ul><li>Must be unique in the imported records</li></ul><ul><li>Default is Sequence: MailingPreferenceID</li></ul>",
            "nullable": true,
            "example": "00000000021"
          },
          "serialNumber": {
            "maxLength": 50,
            "type": "string",
            "description": "The serial number of the contact\r\n<ul><li>Must be a serial number of an existing contact, or a contact record that is part of the same import</li></ul>",
            "nullable": true,
            "example": "123456789"
          },
          "preference": {
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "description": "The specific area of communication\r\n<ul><li>Must exist in the 'MailingPreference' lookup</li></ul>",
            "example": "Photography"
          },
          "addressId": {
            "maxLength": 50,
            "type": "string",
            "description": "A reference to the address to be used for this preference\r\n<ul><li>Must be an existing address, or an address that is being imported as part of a parent contact record</li></ul><ul><li>When 'doNotContact' is 'true'this must be empty</li></ul>",
            "nullable": true,
            "example": "Z087367"
          },
          "contactDataHubId": {
            "type": "string",
            "description": "A reference to the contact in Access DataHub",
            "format": "uuid",
            "nullable": true,
            "example": "2fd5c58a-7c82-4cca-ad4e-280c98e48378"
          },
          "addressDataHubId": {
            "type": "string",
            "description": "A reference to the address in Access DataHub",
            "format": "uuid",
            "nullable": true,
            "example": "44d61235-022d-482e-9a91-7f2f9e4e09ef"
          },
          "updateIfExists": {
            "type": "boolean",
            "description": "A flag that allows preferences to be updated if they already exist rather than validating\r\n<ul><li>Finds preference to update matching on id or serialnumber, preference and external ref</li></ul><ul><li>Default is set to false (insert as new) if matching preference not found</li></ul>"
          },
          "method": {
            "maxLength": 50,
            "type": "string",
            "description": "The specific method of communication for this preference\r\n<ul><li>Must exist in the 'MailingMethod' lookup</li></ul>",
            "nullable": true,
            "example": "Email"
          },
          "envelopeSalutation": {
            "maxLength": 300,
            "type": "string",
            "description": "The envelope salutation to be used for this preference",
            "nullable": true,
            "example": "Captain Simmons"
          },
          "letterSalutation": {
            "maxLength": 200,
            "type": "string",
            "description": "The letter salutation to be used for this preference",
            "nullable": true,
            "example": "Mr Simmons"
          },
          "useFrom": {
            "type": "string",
            "description": "The date from which the preference applies",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "useUntil": {
            "type": "string",
            "description": "The date until the preference applies",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "doNotContact": {
            "type": "boolean",
            "description": "When this is true, the contact shouldn’t be contacted for this area of communication\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "externalRef": {
            "maxLength": 50,
            "type": "string",
            "description": "The unique ID of the record that the preference is linked to\r\n<ul><li>Must be an existing membership, invoice, event booking or event attendee for this contact</li></ul>",
            "nullable": true,
            "example": "M102110388-H1"
          },
          "externalRefType": {
            "maxLength": 50,
            "type": "string",
            "description": "The type of record that the preference is linked to\r\n<ul><li>Must exist in the 'ExternalRefTypesForPreferences' lookup</li></ul>",
            "nullable": true,
            "example": "MembershipDetail"
          },
          "dataHubId": {
            "type": "string",
            "description": "A reference to the preference in Access DataHub",
            "format": "uuid",
            "nullable": true,
            "example": "4e282d64-5d2a-4cf0-9388-92e73f7a7237"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the contact preference to post"
      },
      "ContactProfileGetResponse": {
        "type": "object",
        "properties": {
          "profileId": {
            "type": "string",
            "description": "A unique identifier for the profile",
            "nullable": true,
            "example": "0034"
          },
          "serialNumber": {
            "type": "string",
            "description": "The serial number of the contact\r\n<ul><li>Must be a serial number of an existing contact, or a contact record that is part of the same import</li></ul>",
            "nullable": true,
            "example": "123456789"
          },
          "category": {
            "type": "string",
            "description": "The category of the profile",
            "nullable": true,
            "example": "Interest"
          },
          "name": {
            "type": "string",
            "description": "The name of the profile",
            "nullable": true,
            "example": "Food / Cooking"
          },
          "value": {
            "type": "string",
            "description": "The value of the profile",
            "nullable": true,
            "example": "Pasta"
          },
          "priority": {
            "type": "string",
            "description": "The priority of the profile (High, Normal or Low)\r\n<ul><li>Must be an existing sublist priority</li></ul><ul><li>Default is 'Normal'</li></ul>",
            "nullable": true,
            "example": "High"
          },
          "effectiveFrom": {
            "type": "string",
            "description": "The effective from date for the profile",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "effectiveTo": {
            "type": "string",
            "description": "The effective to date for the profile",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "notes": {
            "type": "string",
            "description": "Informal notes recorded against the profile",
            "nullable": true,
            "example": "Lasagne is ok too"
          },
          "externalRef": {
            "type": "string",
            "description": "The Id of the record the profile is against\r\n<ul><li>Must not already exist as a SerialNumber</li></ul><ul><li>Must not already exist as a Volunteer</li></ul><ul><li>Must not already exist as a Prospect</li></ul><ul><li>Must not already exist as a MembershipId</li></ul><ul><li>Default is SerialNumber</li></ul>",
            "nullable": true,
            "example": "M019719"
          },
          "externalRefType": {
            "type": "string",
            "description": "The type of the record the profile is against\r\n<ul><li>Must be one of the following 'Contact', 'MembershipHeader', 'Volunteer' or 'Prospect'</li></ul><ul><li>Default is 'Contact'</li></ul>",
            "nullable": true,
            "example": "MembershipHeader"
          },
          "useOnlyForExternal": {
            "type": "boolean",
            "description": "Whether the profile is only used for the ExternalRef\r\n<ul><li>Cannot be true for the 'Contact' ExternalRefType</li></ul><ul><li>Default is false</li></ul>",
            "nullable": true,
            "example": false
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the contact profile to get"
      },
      "ContactProfilePostRequest": {
        "required": [
          "category",
          "name"
        ],
        "type": "object",
        "properties": {
          "profileId": {
            "maxLength": 50,
            "type": "string",
            "description": "A unique identifier for the profile\r\n<ul><li>Must not already exist (includes the Web Area)</li></ul><ul><li>Must be unique in the imported records</li></ul><ul><li>Default is Sequence: ParameterID</li></ul>",
            "nullable": true,
            "example": "0034"
          },
          "serialNumber": {
            "maxLength": 50,
            "type": "string",
            "description": "The serial number of the contact\r\n<ul><li>Must be a serial number of an existing contact, or a contact record that is part of the same import</li></ul>",
            "nullable": true,
            "example": "123456789"
          },
          "category": {
            "maxLength": 200,
            "minLength": 1,
            "type": "string",
            "description": "The category of the profile",
            "example": "Interest"
          },
          "name": {
            "maxLength": 200,
            "minLength": 1,
            "type": "string",
            "description": "The name of the profile",
            "example": "Food / Cooking"
          },
          "value": {
            "maxLength": 200,
            "type": "string",
            "description": "The value of the profile",
            "nullable": true,
            "example": "Pasta"
          },
          "priority": {
            "maxLength": 50,
            "type": "string",
            "description": "The priority of the profile (High, Normal or Low)\r\n<ul><li>Must be an existing sublist priority</li></ul><ul><li>Default is 'Normal'</li></ul>",
            "nullable": true,
            "example": "High"
          },
          "effectiveFrom": {
            "type": "string",
            "description": "The effective from date for the profile",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "effectiveTo": {
            "type": "string",
            "description": "The effective to date for the profile",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "notes": {
            "maxLength": 2000,
            "type": "string",
            "description": "Informal notes recorded against the profile",
            "nullable": true,
            "example": "Lasagne is ok too"
          },
          "externalRef": {
            "maxLength": 50,
            "type": "string",
            "description": "The Id of the record the profile is against\r\n<ul><li>Must not already exist as a SerialNumber</li></ul><ul><li>Must not already exist as a Volunteer</li></ul><ul><li>Must not already exist as a Prospect</li></ul><ul><li>Must not already exist as a MembershipId</li></ul><ul><li>Default is SerialNumber</li></ul>",
            "nullable": true,
            "example": "M019719"
          },
          "externalRefType": {
            "maxLength": 50,
            "type": "string",
            "description": "The type of the record the profile is against\r\n<ul><li>Must be one of the following 'Contact', 'MembershipHeader', 'Volunteer' or 'Prospect'</li></ul><ul><li>Default is 'Contact'</li></ul>",
            "nullable": true,
            "example": "MembershipHeader"
          },
          "useOnlyForExternal": {
            "type": "boolean",
            "description": "Whether the profile is only used for the ExternalRef\r\n<ul><li>Cannot be true for the 'Contact' ExternalRefType</li></ul><ul><li>Default is false</li></ul>",
            "nullable": true,
            "example": false
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the contact profile to post"
      },
      "ContactProfilePutBulkRequest": {
        "type": "object",
        "properties": {
          "profileId": {
            "maxLength": 50,
            "type": "string",
            "description": "The unique ID for the Contact Profile\r\n<ul><li>Must be the profileId of an existing Contact profile</li></ul>",
            "nullable": true,
            "example": "0034"
          },
          "serialNumber": {
            "maxLength": 50,
            "type": "string",
            "description": "The serial number of the contact\r\n<ul><li>Must be a serial number of an existing contact, or a contact record that is part of the same import</li></ul>",
            "nullable": true,
            "example": "123456789"
          },
          "category": {
            "maxLength": 200,
            "type": "string",
            "description": "The category of the profile",
            "nullable": true,
            "example": "Interest"
          },
          "name": {
            "maxLength": 200,
            "type": "string",
            "description": "The name of the profile",
            "nullable": true,
            "example": "Food / Cooking"
          },
          "value": {
            "maxLength": 200,
            "type": "string",
            "description": "The value of the profile",
            "nullable": true,
            "example": "Pasta"
          },
          "priority": {
            "maxLength": 50,
            "type": "string",
            "description": "The priority of the profile (High, Normal or Low)\r\n<ul><li>Must be an existing sublist priority</li></ul><ul><li>Default is 'Normal'</li></ul>",
            "nullable": true,
            "example": "High"
          },
          "effectiveFrom": {
            "type": "string",
            "description": "The effective from date for the profile",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "effectiveTo": {
            "type": "string",
            "description": "The effective to date for the profile",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "notes": {
            "maxLength": 2000,
            "type": "string",
            "description": "Informal notes recorded against the profile",
            "nullable": true,
            "example": "Lasagne is ok too"
          },
          "externalRef": {
            "maxLength": 50,
            "type": "string",
            "description": "The Id of the record the profile is against\r\n<ul><li>Must not already exist as a SerialNumber</li></ul><ul><li>Must not already exist as a Volunteer</li></ul><ul><li>Must not already exist as a Prospect</li></ul><ul><li>Must not already exist as a MembershipId</li></ul><ul><li>Default is SerialNumber</li></ul>",
            "nullable": true,
            "example": "M019719"
          },
          "externalRefType": {
            "maxLength": 50,
            "type": "string",
            "description": "The type of the record the profile is against\r\n<ul><li>Must be one of the following 'Contact', 'MembershipHeader', 'Volunteer' or 'Prospect'</li></ul><ul><li>Default is 'Contact'</li></ul>",
            "nullable": true,
            "example": "MembershipHeader"
          },
          "useOnlyForExternal": {
            "type": "boolean",
            "description": "Whether the profile is only used for the ExternalRef\r\n<ul><li>Cannot be true for the 'Contact' ExternalRefType</li></ul><ul><li>Default is false</li></ul>",
            "nullable": true,
            "example": false
          }
        },
        "additionalProperties": false
      },
      "ContactProfilePutRequest": {
        "type": "object",
        "properties": {
          "serialNumber": {
            "maxLength": 50,
            "type": "string",
            "description": "The serial number of the contact\r\n<ul><li>Must be a serial number of an existing contact, or a contact record that is part of the same import</li></ul>",
            "nullable": true,
            "example": "123456789"
          },
          "category": {
            "maxLength": 200,
            "type": "string",
            "description": "The category of the profile",
            "nullable": true,
            "example": "Interest"
          },
          "name": {
            "maxLength": 200,
            "type": "string",
            "description": "The name of the profile",
            "nullable": true,
            "example": "Food / Cooking"
          },
          "value": {
            "maxLength": 200,
            "type": "string",
            "description": "The value of the profile",
            "nullable": true,
            "example": "Pasta"
          },
          "priority": {
            "maxLength": 50,
            "type": "string",
            "description": "The priority of the profile (High, Normal or Low)\r\n<ul><li>Must be an existing sublist priority</li></ul><ul><li>Default is 'Normal'</li></ul>",
            "nullable": true,
            "example": "High"
          },
          "effectiveFrom": {
            "type": "string",
            "description": "The effective from date for the profile",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "effectiveTo": {
            "type": "string",
            "description": "The effective to date for the profile",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "notes": {
            "maxLength": 2000,
            "type": "string",
            "description": "Informal notes recorded against the profile",
            "nullable": true,
            "example": "Lasagne is ok too"
          },
          "externalRef": {
            "maxLength": 50,
            "type": "string",
            "description": "The Id of the record the profile is against\r\n<ul><li>Must not already exist as a SerialNumber</li></ul><ul><li>Must not already exist as a Volunteer</li></ul><ul><li>Must not already exist as a Prospect</li></ul><ul><li>Must not already exist as a MembershipId</li></ul><ul><li>Default is SerialNumber</li></ul>",
            "nullable": true,
            "example": "M019719"
          },
          "externalRefType": {
            "maxLength": 50,
            "type": "string",
            "description": "The type of the record the profile is against\r\n<ul><li>Must be one of the following 'Contact', 'MembershipHeader', 'Volunteer' or 'Prospect'</li></ul><ul><li>Default is 'Contact'</li></ul>",
            "nullable": true,
            "example": "MembershipHeader"
          },
          "useOnlyForExternal": {
            "type": "boolean",
            "description": "Whether the profile is only used for the ExternalRef\r\n<ul><li>Cannot be true for the 'Contact' ExternalRefType</li></ul><ul><li>Default is false</li></ul>",
            "nullable": true,
            "example": false
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the contact profile record for updates"
      },
      "ContactSocialMediaGetResponse": {
        "type": "object",
        "properties": {
          "accountId": {
            "type": "string",
            "description": "Account ID\r\n<ul><li>Must not already exist</li></ul><ul><li>Must be unique in the imported records</li></ul><ul><li>Default is Sequence: UniqueSocialMediaAccountID</li></ul>",
            "nullable": true,
            "example": "1000840"
          },
          "socialMediaRef": {
            "type": "string",
            "description": "The Social Media Reference",
            "nullable": true,
            "example": "100003688981736"
          },
          "userName": {
            "type": "string",
            "description": "The username",
            "nullable": true,
            "example": "Sally"
          },
          "url": {
            "type": "string",
            "description": "The URL to the site",
            "nullable": true,
            "example": "http://www.facebook.com/profile.php?id=100003827438530"
          },
          "platform": {
            "type": "string",
            "description": "The Social Media Platform\r\n<ul><li>Must exist in the ''SocialMediaPlatform'' lookup</li></ul>",
            "nullable": true,
            "example": "Facebook"
          },
          "externalRef": {
            "type": "string",
            "description": "External Ref\r\n<ul><li>Must be a serial number of an existing contact, or a contact record that is part of the same import</li></ul>",
            "nullable": true,
            "example": "000001"
          },
          "externalRefType": {
            "type": "string",
            "description": "The External Ref Type\r\n<ul><li>Default is Contact</li></ul>",
            "nullable": true,
            "example": "Contact"
          },
          "followerCount": {
            "type": "integer",
            "description": "Follower Count",
            "format": "int32",
            "nullable": true,
            "example": 278
          },
          "followingCount": {
            "type": "integer",
            "description": "Following Count",
            "format": "int32",
            "nullable": true,
            "example": 181
          },
          "postCount": {
            "type": "integer",
            "description": "Post Count",
            "format": "int32",
            "nullable": true,
            "example": 98
          }
        },
        "additionalProperties": false,
        "description": "Contains information common to all models for the contact social media records"
      },
      "ContactSocialMediaPostRequest": {
        "type": "object",
        "properties": {
          "accountId": {
            "maxLength": 300,
            "type": "string",
            "description": "Account ID\r\n<ul><li>Must not already exist</li></ul><ul><li>Must be unique in the imported records</li></ul><ul><li>Default is Sequence: UniqueSocialMediaAccountID</li></ul>",
            "nullable": true,
            "example": "1000840"
          },
          "socialMediaRef": {
            "maxLength": 100,
            "type": "string",
            "description": "The Social Media Reference",
            "nullable": true,
            "example": "100003688981736"
          },
          "userName": {
            "maxLength": 100,
            "type": "string",
            "description": "The username",
            "nullable": true,
            "example": "Sally"
          },
          "url": {
            "maxLength": 255,
            "type": "string",
            "description": "The URL to the site",
            "nullable": true,
            "example": "http://www.facebook.com/profile.php?id=100003827438530"
          },
          "platform": {
            "maxLength": 50,
            "type": "string",
            "description": "The Social Media Platform\r\n<ul><li>Must exist in the ''SocialMediaPlatform'' lookup</li></ul>",
            "nullable": true,
            "example": "Facebook"
          },
          "externalRef": {
            "maxLength": 50,
            "type": "string",
            "description": "External Ref\r\n<ul><li>Must be a serial number of an existing contact, or a contact record that is part of the same import</li></ul>",
            "nullable": true,
            "example": "000001"
          },
          "externalRefType": {
            "maxLength": 50,
            "type": "string",
            "description": "The External Ref Type\r\n<ul><li>Default is Contact</li></ul>",
            "nullable": true,
            "example": "Contact"
          },
          "followerCount": {
            "type": "integer",
            "description": "Follower Count",
            "format": "int32",
            "nullable": true,
            "example": 278
          },
          "followingCount": {
            "type": "integer",
            "description": "Following Count",
            "format": "int32",
            "nullable": true,
            "example": 181
          },
          "postCount": {
            "type": "integer",
            "description": "Post Count",
            "format": "int32",
            "nullable": true,
            "example": 98
          }
        },
        "additionalProperties": false,
        "description": "Contains information common to all models for the contact social media records"
      },
      "ContactTeamGetResponse": {
        "type": "object",
        "properties": {
          "serialNumber": {
            "type": "string",
            "description": "The serial number of the contact",
            "nullable": true,
            "example": "000001"
          },
          "name": {
            "type": "string",
            "description": "The team name",
            "nullable": true,
            "example": "Community Outreach Team"
          },
          "allowUpdate": {
            "type": "boolean",
            "description": "Whether the contact should be allow to be updated by the team",
            "nullable": true,
            "example": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the contact team security to get"
      },
      "ContactTeamPostRequest": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "serialNumber": {
            "type": "string",
            "description": "The serial number of the contact",
            "nullable": true,
            "example": "000001"
          },
          "name": {
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "description": "The team name",
            "example": "Community Outreach Team"
          },
          "allowUpdate": {
            "type": "boolean",
            "description": "Whether the contact should be allow to be updated by the team",
            "nullable": true,
            "example": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the user team for a contact to post"
      },
      "CustomFieldPostRequest": {
        "type": "object",
        "properties": {
          "customFieldName": {
            "type": "string",
            "description": "The field name for the custom field",
            "nullable": true,
            "example": "QuestionnaireAns1"
          },
          "customFieldValue": {
            "type": "string",
            "description": "The value of the custom field",
            "nullable": true,
            "example": "Rarely"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the Education custom fields for posts"
      },
      "DestinationCodeGetResponse": {
        "type": "object",
        "properties": {
          "destinationCodeRelationships": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DestinationCodeRelationshipGetResponse"
            },
            "description": "The Source Codes related to the current Source Code",
            "nullable": true
          },
          "destinationCode": {
            "type": "string",
            "description": "The destination code and unique Id for the record\r\n<ul><li>Must be unique to the record set being posted</li></ul><ul><li>Must not already exist</li></ul><ul><li>Must not contain a colon</li></ul>",
            "nullable": true,
            "example": "DEST1"
          },
          "destinationType": {
            "type": "string",
            "description": "The type of destination code e.g. Appeal, Department, Event etc.\r\n<ul><li>Must be contained in the 'DestinationType' lookup</li></ul>",
            "nullable": true,
            "example": "Fund"
          },
          "destinationGroup": {
            "type": "string",
            "description": "A Group that the destination Code is associated to\r\n<ul><li>Must be contained in the 'DestinationGroup' lookup</li></ul>",
            "nullable": true,
            "example": "Prospect Target Area"
          },
          "description": {
            "type": "string",
            "description": "Description of the destination code",
            "nullable": true,
            "example": "Animal Shelter"
          },
          "targetAmount": {
            "type": "number",
            "description": "The target amount to raise for this Destination Code",
            "format": "double",
            "nullable": true,
            "example": 5000.00
          },
          "doNotClaimTax": {
            "type": "boolean",
            "description": "Whether Gift Aid can be reclaimed on income items to this destination code\r\n<ul><li>Default is \"False\"</li></ul>",
            "nullable": true,
            "example": true
          },
          "taxDestinationCode": {
            "type": "string",
            "description": "The Destination Code that reclaimed Gift Aid should go to\r\n<ul><li>Must already exist as a DestinationCode</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "charityName": {
            "type": "string",
            "description": "The Charity the Destination Code is setup for\r\n<ul><li>Must exist in the 'MultiCharity' Lookup</li></ul>",
            "nullable": true,
            "example": "Pet Charity"
          },
          "vatRate": {
            "type": "number",
            "description": "Sets the VAT rate for this destination code",
            "format": "double",
            "nullable": true,
            "example": 20
          },
          "ledgerCode": {
            "type": "string",
            "description": "The Accounting Package Ledger Code that corresponds to this Destination code\r\n<ul><li>Must exist in the 'LedgerCode' Lookup</li></ul>",
            "nullable": true,
            "example": "M123"
          },
          "notes": {
            "type": "string",
            "description": "Notes on the Destination Code",
            "nullable": true,
            "example": "First destination code"
          },
          "webPledgePublish": {
            "type": "boolean",
            "description": "Whether the destination code will be published to the website for new pledges\r\n<ul><li>Default is \"False\"</li></ul>",
            "nullable": true,
            "example": false
          },
          "webDescription": {
            "type": "string",
            "description": "The description that will be displayed on the website, instead of the standard description",
            "nullable": true,
            "example": "Web Shelter Destination"
          },
          "modified": {
            "type": "string",
            "description": "The date the record was modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user who modified the record\r\n<ul><li>Default is \"API\"</li></ul>",
            "nullable": true,
            "example": "John Funding"
          },
          "created": {
            "type": "string",
            "description": "The date the record was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "type": "string",
            "description": "The user who created the record\r\n<ul><li>Default is \"API\"</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "fund": {
            "type": "string",
            "description": "The Charity this Code is setup for\r\n<ul><li>Default is Current Date</li></ul>",
            "nullable": true,
            "example": "5656cc"
          },
          "webPublish": {
            "type": "boolean",
            "description": "Whether the destination code will be available on the website\r\n<ul><li>Default is \"API\"</li></ul>",
            "nullable": true,
            "example": false
          },
          "excludeFromDropDown": {
            "type": "boolean",
            "description": "Whether to exclude the destination code from any destination code drop down lists\r\n<ul><li>Default is \"False\"</li></ul>",
            "nullable": true,
            "example": false
          },
          "statementReport": {
            "type": "boolean",
            "description": "Whether the Destination Code will be included in the Fund Statement report\r\n<ul><li>Default is \"False\"</li></ul>",
            "nullable": true,
            "example": true
          },
          "recordOwner": {
            "type": "string",
            "description": "The owner of the destination code record",
            "nullable": true,
            "example": "John Funding"
          },
          "scholarshipName": {
            "type": "string",
            "description": "The Scholarship Name for a Destination Code",
            "nullable": true,
            "example": "Scholarship1"
          },
          "criteria": {
            "type": "string",
            "description": "The criteria for a Scholarship",
            "nullable": true,
            "example": "Requested"
          },
          "comments": {
            "type": "string",
            "description": "The comments related to a Scholarship",
            "nullable": true,
            "example": "Example comment"
          },
          "salesAnalysisCode": {
            "type": "string",
            "description": "The Cost Center Code for the destination\r\n<ul><li>Default is Current Date</li></ul>",
            "nullable": true,
            "example": "3700 - Fin Charity System"
          },
          "companyCode": {
            "type": "string",
            "description": "The Project Code for the destination\r\n<ul><li>Default is Current Date</li></ul>",
            "nullable": true,
            "example": "Company1"
          },
          "subLedger": {
            "type": "string",
            "description": "The Company Code for the destination\r\n<ul><li>Default is Current Date. </li></ul>",
            "nullable": true,
            "example": "10001"
          },
          "customTextField1": {
            "type": "string",
            "description": "Bespoke Text Field 1",
            "nullable": true,
            "example": "Custom Text 1"
          },
          "customTextField2": {
            "type": "string",
            "description": "Bespoke Text Field 2",
            "nullable": true
          },
          "customTextField3": {
            "type": "string",
            "description": "Bespoke Text Field 3",
            "nullable": true
          },
          "customTextField4": {
            "type": "string",
            "description": "Bespoke Text Field 4",
            "nullable": true
          },
          "customTextField5": {
            "type": "string",
            "description": "Bespoke Text Field 5",
            "nullable": true
          },
          "customDateField1": {
            "type": "string",
            "description": "Bespoke Date Field 1",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "customDateField2": {
            "type": "string",
            "description": "Bespoke Date Field 2",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "customDateField3": {
            "type": "string",
            "description": "Bespoke Date Field 3",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "customDateField4": {
            "type": "string",
            "description": "Bespoke Date Field 4",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "customDateField5": {
            "type": "string",
            "description": "Bespoke Date Field 5",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "customDecimalField1": {
            "type": "number",
            "description": "Bespoke Decimal Field 1",
            "format": "double",
            "nullable": true,
            "example": 100
          },
          "customDecimalField2": {
            "type": "number",
            "description": "Bespoke Decimal Field 2",
            "format": "double",
            "nullable": true
          },
          "customDecimalField3": {
            "type": "number",
            "description": "Bespoke Decimal Field 3",
            "format": "double",
            "nullable": true
          },
          "customDecimalField4": {
            "type": "number",
            "description": "Bespoke Decimal Field 4",
            "format": "double",
            "nullable": true
          },
          "customDecimalField5": {
            "type": "number",
            "description": "Bespoke Decimal Field 5",
            "format": "double",
            "nullable": true
          },
          "customBooleanField1": {
            "type": "boolean",
            "description": "Bespoke Boolean Field 1",
            "nullable": true,
            "example": true
          },
          "customBooleanField2": {
            "type": "boolean",
            "description": "Bespoke Boolean Field 2",
            "nullable": true
          },
          "customBooleanField3": {
            "type": "boolean",
            "description": "Bespoke Boolean Field 3",
            "nullable": true
          },
          "customBooleanField4": {
            "type": "boolean",
            "description": "Bespoke Boolean Field 4",
            "nullable": true
          },
          "customBooleanField5": {
            "type": "boolean",
            "description": "Bespoke Boolean Field 5",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the Destination Code"
      },
      "DestinationCodeGetResponseCollectionItem": {
        "type": "object",
        "properties": {
          "destinationCode": {
            "type": "string",
            "description": "The destination code and unique Id for the record\r\n<ul><li>Must be unique to the record set being posted</li></ul><ul><li>Must not already exist</li></ul><ul><li>Must not contain a colon</li></ul>",
            "nullable": true,
            "example": "DEST1"
          },
          "destinationType": {
            "type": "string",
            "description": "The type of destination code e.g. Appeal, Department, Event etc.\r\n<ul><li>Must be contained in the 'DestinationType' lookup</li></ul>",
            "nullable": true,
            "example": "Fund"
          },
          "destinationGroup": {
            "type": "string",
            "description": "A Group that the destination Code is associated to\r\n<ul><li>Must be contained in the 'DestinationGroup' lookup</li></ul>",
            "nullable": true,
            "example": "Prospect Target Area"
          },
          "description": {
            "type": "string",
            "description": "Description of the destination code",
            "nullable": true,
            "example": "Animal Shelter"
          },
          "targetAmount": {
            "type": "number",
            "description": "The target amount to raise for this Destination Code",
            "format": "double",
            "nullable": true,
            "example": 5000.00
          },
          "doNotClaimTax": {
            "type": "boolean",
            "description": "Whether Gift Aid can be reclaimed on income items to this destination code\r\n<ul><li>Default is \"False\"</li></ul>",
            "nullable": true,
            "example": true
          },
          "taxDestinationCode": {
            "type": "string",
            "description": "The Destination Code that reclaimed Gift Aid should go to\r\n<ul><li>Must already exist as a DestinationCode</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "charityName": {
            "type": "string",
            "description": "The Charity the Destination Code is setup for\r\n<ul><li>Must exist in the 'MultiCharity' Lookup</li></ul>",
            "nullable": true,
            "example": "Pet Charity"
          },
          "vatRate": {
            "type": "number",
            "description": "Sets the VAT rate for this destination code",
            "format": "double",
            "nullable": true,
            "example": 20
          },
          "ledgerCode": {
            "type": "string",
            "description": "The Accounting Package Ledger Code that corresponds to this Destination code\r\n<ul><li>Must exist in the 'LedgerCode' Lookup</li></ul>",
            "nullable": true,
            "example": "M123"
          },
          "notes": {
            "type": "string",
            "description": "Notes on the Destination Code",
            "nullable": true,
            "example": "First destination code"
          },
          "webPledgePublish": {
            "type": "boolean",
            "description": "Whether the destination code will be published to the website for new pledges\r\n<ul><li>Default is \"False\"</li></ul>",
            "nullable": true,
            "example": false
          },
          "webDescription": {
            "type": "string",
            "description": "The description that will be displayed on the website, instead of the standard description",
            "nullable": true,
            "example": "Web Shelter Destination"
          },
          "modified": {
            "type": "string",
            "description": "The date the record was modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user who modified the record\r\n<ul><li>Default is \"API\"</li></ul>",
            "nullable": true,
            "example": "John Funding"
          },
          "created": {
            "type": "string",
            "description": "The date the record was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "type": "string",
            "description": "The user who created the record\r\n<ul><li>Default is \"API\"</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "fund": {
            "type": "string",
            "description": "The Charity this Code is setup for\r\n<ul><li>Default is Current Date</li></ul>",
            "nullable": true,
            "example": "5656cc"
          },
          "webPublish": {
            "type": "boolean",
            "description": "Whether the destination code will be available on the website\r\n<ul><li>Default is \"API\"</li></ul>",
            "nullable": true,
            "example": false
          },
          "excludeFromDropDown": {
            "type": "boolean",
            "description": "Whether to exclude the destination code from any destination code drop down lists\r\n<ul><li>Default is \"False\"</li></ul>",
            "nullable": true,
            "example": false
          },
          "statementReport": {
            "type": "boolean",
            "description": "Whether the Destination Code will be included in the Fund Statement report\r\n<ul><li>Default is \"False\"</li></ul>",
            "nullable": true,
            "example": true
          },
          "recordOwner": {
            "type": "string",
            "description": "The owner of the destination code record",
            "nullable": true,
            "example": "John Funding"
          },
          "scholarshipName": {
            "type": "string",
            "description": "The Scholarship Name for a Destination Code",
            "nullable": true,
            "example": "Scholarship1"
          },
          "criteria": {
            "type": "string",
            "description": "The criteria for a Scholarship",
            "nullable": true,
            "example": "Requested"
          },
          "comments": {
            "type": "string",
            "description": "The comments related to a Scholarship",
            "nullable": true,
            "example": "Example comment"
          },
          "salesAnalysisCode": {
            "type": "string",
            "description": "The Cost Center Code for the destination\r\n<ul><li>Default is Current Date</li></ul>",
            "nullable": true,
            "example": "3700 - Fin Charity System"
          },
          "companyCode": {
            "type": "string",
            "description": "The Project Code for the destination\r\n<ul><li>Default is Current Date</li></ul>",
            "nullable": true,
            "example": "Company1"
          },
          "subLedger": {
            "type": "string",
            "description": "The Company Code for the destination\r\n<ul><li>Default is Current Date. </li></ul>",
            "nullable": true,
            "example": "10001"
          },
          "customTextField1": {
            "type": "string",
            "description": "Bespoke Text Field 1",
            "nullable": true,
            "example": "Custom Text 1"
          },
          "customTextField2": {
            "type": "string",
            "description": "Bespoke Text Field 2",
            "nullable": true
          },
          "customTextField3": {
            "type": "string",
            "description": "Bespoke Text Field 3",
            "nullable": true
          },
          "customTextField4": {
            "type": "string",
            "description": "Bespoke Text Field 4",
            "nullable": true
          },
          "customTextField5": {
            "type": "string",
            "description": "Bespoke Text Field 5",
            "nullable": true
          },
          "customDateField1": {
            "type": "string",
            "description": "Bespoke Date Field 1",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "customDateField2": {
            "type": "string",
            "description": "Bespoke Date Field 2",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "customDateField3": {
            "type": "string",
            "description": "Bespoke Date Field 3",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "customDateField4": {
            "type": "string",
            "description": "Bespoke Date Field 4",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "customDateField5": {
            "type": "string",
            "description": "Bespoke Date Field 5",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "customDecimalField1": {
            "type": "number",
            "description": "Bespoke Decimal Field 1",
            "format": "double",
            "nullable": true,
            "example": 100
          },
          "customDecimalField2": {
            "type": "number",
            "description": "Bespoke Decimal Field 2",
            "format": "double",
            "nullable": true
          },
          "customDecimalField3": {
            "type": "number",
            "description": "Bespoke Decimal Field 3",
            "format": "double",
            "nullable": true
          },
          "customDecimalField4": {
            "type": "number",
            "description": "Bespoke Decimal Field 4",
            "format": "double",
            "nullable": true
          },
          "customDecimalField5": {
            "type": "number",
            "description": "Bespoke Decimal Field 5",
            "format": "double",
            "nullable": true
          },
          "customBooleanField1": {
            "type": "boolean",
            "description": "Bespoke Boolean Field 1",
            "nullable": true,
            "example": true
          },
          "customBooleanField2": {
            "type": "boolean",
            "description": "Bespoke Boolean Field 2",
            "nullable": true
          },
          "customBooleanField3": {
            "type": "boolean",
            "description": "Bespoke Boolean Field 3",
            "nullable": true
          },
          "customBooleanField4": {
            "type": "boolean",
            "description": "Bespoke Boolean Field 4",
            "nullable": true
          },
          "customBooleanField5": {
            "type": "boolean",
            "description": "Bespoke Boolean Field 5",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the Destination Code"
      },
      "DestinationCodeGetResponseCollectionResponse": {
        "type": "object",
        "properties": {
          "pageNumber": {
            "type": "integer",
            "description": "The page number for the data in the response",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "The page size for the data in the response",
            "format": "int32"
          },
          "totalCount": {
            "type": "integer",
            "description": "The total number of items in the data collection",
            "format": "int32",
            "nullable": true
          },
          "pageCount": {
            "type": "integer",
            "description": "The total number of pages in the data collection",
            "format": "int32",
            "nullable": true,
            "readOnly": true
          },
          "hasNextPage": {
            "type": "boolean",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DestinationCodeGetResponseCollectionItem"
            },
            "description": "The collection of items",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Holds response information for a collection of data"
      },
      "DestinationCodePostRequest": {
        "required": [
          "description",
          "destinationCode"
        ],
        "type": "object",
        "properties": {
          "destinationCodeRelationships": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DestinationCodeRelationshipPostRequest"
            },
            "description": "The Destination Codes related to the current Destination Code",
            "nullable": true
          },
          "destinationCode": {
            "maxLength": 20,
            "minLength": 1,
            "type": "string",
            "description": "The destination code and unique Id for the record\r\n<ul><li>Must be unique to the record set being posted</li></ul><ul><li>Must not already exist</li></ul><ul><li>Must not contain a colon</li></ul>",
            "example": "DEST1"
          },
          "destinationType": {
            "maxLength": 50,
            "type": "string",
            "description": "The type of destination code e.g. Appeal, Department, Event etc.\r\n<ul><li>Must be contained in the 'DestinationType' lookup</li></ul>",
            "nullable": true,
            "example": "Fund"
          },
          "destinationGroup": {
            "maxLength": 50,
            "type": "string",
            "description": "A Group that the destination Code is associated to\r\n<ul><li>Must be contained in the 'DestinationGroup' lookup</li></ul>",
            "nullable": true,
            "example": "Prospect Target Area"
          },
          "description": {
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "description": "Description of the destination code",
            "example": "Animal Shelter"
          },
          "targetAmount": {
            "type": "number",
            "description": "The target amount to raise for this Destination Code",
            "format": "double",
            "nullable": true,
            "example": 5000.00
          },
          "doNotClaimTax": {
            "type": "boolean",
            "description": "Whether Gift Aid can be reclaimed on income items to this destination code\r\n<ul><li>Default is \"False\"</li></ul>",
            "nullable": true,
            "example": true
          },
          "taxDestinationCode": {
            "maxLength": 20,
            "type": "string",
            "description": "The Destination Code that reclaimed Gift Aid should go to\r\n<ul><li>Must already exist as a DestinationCode</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "charityName": {
            "maxLength": 50,
            "type": "string",
            "description": "The Charity the Destination Code is setup for\r\n<ul><li>Must exist in the 'MultiCharity' Lookup</li></ul>",
            "nullable": true,
            "example": "Pet Charity"
          },
          "vatRate": {
            "type": "number",
            "description": "Sets the VAT rate for this destination code",
            "format": "double",
            "nullable": true,
            "example": 20
          },
          "ledgerCode": {
            "maxLength": 150,
            "type": "string",
            "description": "The Accounting Package Ledger Code that corresponds to this Destination code\r\n<ul><li>Must exist in the 'LedgerCode' Lookup</li></ul>",
            "nullable": true,
            "example": "M123"
          },
          "notes": {
            "maxLength": 1000,
            "type": "string",
            "description": "Notes on the Destination Code",
            "nullable": true,
            "example": "First destination code"
          },
          "webPledgePublish": {
            "type": "boolean",
            "description": "Whether the destination code will be published to the website for new pledges\r\n<ul><li>Default is \"False\"</li></ul>",
            "nullable": true,
            "example": false
          },
          "webDescription": {
            "maxLength": 100,
            "type": "string",
            "description": "The description that will be displayed on the website, instead of the standard description",
            "nullable": true,
            "example": "Web Shelter Destination"
          },
          "modified": {
            "type": "string",
            "description": "The date the record was modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user who modified the record\r\n<ul><li>Default is \"API\"</li></ul>",
            "nullable": true,
            "example": "John Funding"
          },
          "created": {
            "type": "string",
            "description": "The date the record was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user who created the record\r\n<ul><li>Default is \"API\"</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "fund": {
            "maxLength": 50,
            "type": "string",
            "description": "The Charity this Code is setup for\r\n<ul><li>Default is Current Date</li></ul>",
            "nullable": true,
            "example": "5656cc"
          },
          "webPublish": {
            "type": "boolean",
            "description": "Whether the destination code will be available on the website\r\n<ul><li>Default is \"API\"</li></ul>",
            "nullable": true,
            "example": false
          },
          "excludeFromDropDown": {
            "type": "boolean",
            "description": "Whether to exclude the destination code from any destination code drop down lists\r\n<ul><li>Default is \"False\"</li></ul>",
            "nullable": true,
            "example": false
          },
          "statementReport": {
            "type": "boolean",
            "description": "Whether the Destination Code will be included in the Fund Statement report\r\n<ul><li>Default is \"False\"</li></ul>",
            "nullable": true,
            "example": true
          },
          "recordOwner": {
            "maxLength": 25,
            "type": "string",
            "description": "The owner of the destination code record",
            "nullable": true,
            "example": "John Funding"
          },
          "scholarshipName": {
            "maxLength": 50,
            "type": "string",
            "description": "The Scholarship Name for a Destination Code",
            "nullable": true,
            "example": "Scholarship1"
          },
          "criteria": {
            "maxLength": 255,
            "type": "string",
            "description": "The criteria for a Scholarship",
            "nullable": true,
            "example": "Requested"
          },
          "comments": {
            "maxLength": 255,
            "type": "string",
            "description": "The comments related to a Scholarship",
            "nullable": true,
            "example": "Example comment"
          },
          "salesAnalysisCode": {
            "maxLength": 50,
            "type": "string",
            "description": "The Cost Center Code for the destination\r\n<ul><li>Default is Current Date</li></ul>",
            "nullable": true,
            "example": "3700 - Fin Charity System"
          },
          "companyCode": {
            "maxLength": 50,
            "type": "string",
            "description": "The Project Code for the destination\r\n<ul><li>Default is Current Date</li></ul>",
            "nullable": true,
            "example": "Company1"
          },
          "subLedger": {
            "maxLength": 50,
            "type": "string",
            "description": "The Company Code for the destination\r\n<ul><li>Default is Current Date. </li></ul>",
            "nullable": true,
            "example": "10001"
          },
          "customTextField1": {
            "maxLength": 2000,
            "type": "string",
            "description": "Bespoke Text Field 1",
            "nullable": true,
            "example": "Custom Text 1"
          },
          "customTextField2": {
            "maxLength": 2000,
            "type": "string",
            "description": "Bespoke Text Field 2",
            "nullable": true
          },
          "customTextField3": {
            "maxLength": 2000,
            "type": "string",
            "description": "Bespoke Text Field 3",
            "nullable": true
          },
          "customTextField4": {
            "maxLength": 2000,
            "type": "string",
            "description": "Bespoke Text Field 4",
            "nullable": true
          },
          "customTextField5": {
            "maxLength": 2000,
            "type": "string",
            "description": "Bespoke Text Field 5",
            "nullable": true
          },
          "customDateField1": {
            "type": "string",
            "description": "Bespoke Date Field 1",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "customDateField2": {
            "type": "string",
            "description": "Bespoke Date Field 2",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "customDateField3": {
            "type": "string",
            "description": "Bespoke Date Field 3",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "customDateField4": {
            "type": "string",
            "description": "Bespoke Date Field 4",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "customDateField5": {
            "type": "string",
            "description": "Bespoke Date Field 5",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "customDecimalField1": {
            "type": "number",
            "description": "Bespoke Decimal Field 1",
            "format": "double",
            "nullable": true,
            "example": 100
          },
          "customDecimalField2": {
            "type": "number",
            "description": "Bespoke Decimal Field 2",
            "format": "double",
            "nullable": true
          },
          "customDecimalField3": {
            "type": "number",
            "description": "Bespoke Decimal Field 3",
            "format": "double",
            "nullable": true
          },
          "customDecimalField4": {
            "type": "number",
            "description": "Bespoke Decimal Field 4",
            "format": "double",
            "nullable": true
          },
          "customDecimalField5": {
            "type": "number",
            "description": "Bespoke Decimal Field 5",
            "format": "double",
            "nullable": true
          },
          "customBooleanField1": {
            "type": "boolean",
            "description": "Bespoke Boolean Field 1",
            "nullable": true,
            "example": true
          },
          "customBooleanField2": {
            "type": "boolean",
            "description": "Bespoke Boolean Field 2",
            "nullable": true
          },
          "customBooleanField3": {
            "type": "boolean",
            "description": "Bespoke Boolean Field 3",
            "nullable": true
          },
          "customBooleanField4": {
            "type": "boolean",
            "description": "Bespoke Boolean Field 4",
            "nullable": true
          },
          "customBooleanField5": {
            "type": "boolean",
            "description": "Bespoke Boolean Field 5",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the Destination Code"
      },
      "DestinationCodeRelationshipGetResponse": {
        "type": "object",
        "properties": {
          "parentDestinationCode": {
            "type": "string",
            "description": "The parent Destination Code\r\n<ul><li>The relationship must be unique to the record set being posted</li></ul><ul><li>Relationship must not already exist</li></ul>",
            "nullable": true,
            "example": "COM01"
          },
          "childDestinationCode": {
            "type": "string",
            "description": "The child Destination Code\r\n<ul><li>Cannot be the same as ParentDestinationCode  + </li></ul><ul><li>Must not already have a parent destination code</li></ul>",
            "nullable": true,
            "example": "COMD02"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on a Destination Codes relationship to other Destination Codes"
      },
      "DestinationCodeRelationshipPostRequest": {
        "type": "object",
        "properties": {
          "parentDestinationCode": {
            "maxLength": 20,
            "type": "string",
            "description": "The parent Destination Code\r\n<ul><li>The relationship must be unique to the record set being posted</li></ul><ul><li>Relationship must not already exist</li></ul>",
            "nullable": true,
            "example": "COM01"
          },
          "childDestinationCode": {
            "maxLength": 20,
            "type": "string",
            "description": "The child Destination Code\r\n<ul><li>Cannot be the same as ParentDestinationCode  + </li></ul><ul><li>Must not already have a parent destination code</li></ul>",
            "nullable": true,
            "example": "COMD02"
          }
        },
        "additionalProperties": false,
        "description": "Contains information about a Destination Code relationship to post"
      },
      "EducationGetResponse": {
        "type": "object",
        "properties": {
          "educationId": {
            "type": "string",
            "description": "The unique ID for the Education",
            "nullable": true,
            "example": "EDU0000002"
          },
          "serialNumber": {
            "type": "string",
            "description": "The SerialNumber to filter on\r\n<ul><li>For new records this value cannot be empty</li></ul><ul><li>This value must exist as an existing contact</li></ul>",
            "nullable": true,
            "example": "000003"
          },
          "yearOfEntry": {
            "type": "integer",
            "description": "The YearOfEntry to filter on\r\n<ul><li>Must be a four digit integer</li></ul>",
            "format": "int32",
            "nullable": true,
            "example": 2005
          },
          "classOf": {
            "type": "integer",
            "description": "The ClassOf to filter on\r\n<ul><li>Must be a four digit integer</li></ul>",
            "format": "int32",
            "nullable": true,
            "example": 2008
          },
          "institutionName": {
            "type": "string",
            "description": "The InstitutionName to filter on\r\n<ul><li>For new records this value cannot be empty</li></ul><ul><li>Default is LibraryDefinition: DefaultInstitution</li></ul>",
            "nullable": true,
            "example": "Charity University"
          },
          "institutionType": {
            "type": "string",
            "description": "The InstitutionType to filter on\r\n<ul><li>This value must exist in the 'Institution Type' lookup</li></ul>",
            "nullable": true,
            "example": "University"
          },
          "facultyOrSchool": {
            "type": "string",
            "description": "The FacultyOrSchool to filter on\r\n<ul><li>For new records this value cannot be empty</li></ul><ul><li>This value must exist in the 'Faculty / School' lookup</li></ul>",
            "nullable": true,
            "example": "Biomedical Sciences"
          },
          "courseName": {
            "type": "string",
            "description": "The CourseName to filter on\r\n<ul><li>For new records this value cannot be empty</li></ul><ul><li>This value must exist in the 'Course Name' lookup</li></ul>",
            "nullable": true,
            "example": "Applied Biomedical Sciences"
          },
          "qualificationLevel": {
            "type": "string",
            "description": "The QualificationLevel to filter on\r\n<ul><li>This value must exist in the 'Qualification Level' lookup</li></ul>",
            "nullable": true,
            "example": "Undergraduate"
          },
          "qualificationType": {
            "type": "string",
            "description": "The QualificationType to filter on\r\n<ul><li>This value must exist in the 'Qualification Type' lookup</li></ul>",
            "nullable": true,
            "example": "Academic"
          },
          "award": {
            "type": "string",
            "description": "The Award to filter on\r\n<ul><li>This value must exist in the 'Award' lookup</li></ul>",
            "nullable": true,
            "example": "BA"
          },
          "grade": {
            "type": "string",
            "description": "The Grade to filter on\r\n<ul><li>This value must exist in the second column of the 'Award' lookup</li></ul>",
            "nullable": true,
            "example": "Third"
          },
          "gpa": {
            "type": "number",
            "description": "The GPA to filter on",
            "format": "double",
            "nullable": true,
            "example": 3.30
          },
          "personalTutor": {
            "type": "string",
            "description": "The PersonalTutor to filter on",
            "nullable": true,
            "example": "Mrs Julia Campbell"
          },
          "boardingStatus": {
            "type": "string",
            "description": "The BoardingStatus to filter on",
            "nullable": true,
            "example": "Halls of residence"
          },
          "boardingHouse": {
            "type": "string",
            "description": "The BoardingHouse to filter on",
            "nullable": true,
            "example": "Jubilee Hall"
          },
          "internationalExchange": {
            "type": "string",
            "description": "The InternationalExchange to filter on\r\n<ul><li>This value must exist in the 'InternationalExchange' lookup</li></ul>",
            "nullable": true,
            "example": "Internal"
          },
          "exchangeNotes": {
            "type": "string",
            "description": "The ExchangeNotes to filter on",
            "nullable": true,
            "example": "Exchange notes"
          },
          "foundationYearNotes": {
            "type": "string",
            "description": "The FoundationYearNotes to filter on",
            "nullable": true,
            "example": "Foundation year notes "
          },
          "gapYearNotes": {
            "type": "string",
            "description": "The GapYearNotes to filter on",
            "nullable": true,
            "example": "Gap year notes"
          },
          "studyAbroadNotes": {
            "type": "string",
            "description": "The StudyAbroadNotes to filter on",
            "nullable": true,
            "example": "Study abroad notes"
          },
          "yearOfLeaving": {
            "type": "integer",
            "description": "The YearOfLeaving to filter on\r\n<ul><li>Must be a four digit integer</li></ul>",
            "format": "int32",
            "nullable": true,
            "example": 2008
          },
          "reasonForLeaving": {
            "type": "string",
            "description": "The ReasonForLeaving to filter on\r\n<ul><li>This value must exist in the 'Reason For Leaving' lookup</li></ul>",
            "nullable": true,
            "example": "Exchange"
          },
          "notes": {
            "type": "string",
            "description": "The Notes to filter on",
            "nullable": true,
            "example": "Further Notes"
          },
          "studentNumber": {
            "type": "string",
            "description": "The StudentNumber to filter on",
            "nullable": true,
            "example": "STU123456"
          },
          "college": {
            "type": "string",
            "description": "The College to filter on",
            "nullable": true,
            "example": "College of Life Sciences"
          },
          "department": {
            "type": "string",
            "description": "The Department to filter on",
            "nullable": true,
            "example": "Zoology"
          },
          "courseCode": {
            "type": "string",
            "description": "The CourseCode to filter on",
            "nullable": true,
            "example": "CODE1234"
          },
          "startDate": {
            "type": "string",
            "description": "The StartDate to filter on",
            "format": "date-time",
            "nullable": true,
            "example": "2025-11-19"
          },
          "endDate": {
            "type": "string",
            "description": "The EndDate to filter on",
            "format": "date-time",
            "nullable": true,
            "example": "2025-11-19"
          },
          "awardDate": {
            "type": "string",
            "description": "The AwardDate to filter on",
            "format": "date-time",
            "nullable": true,
            "example": "2025-11-19"
          },
          "graduationDate": {
            "type": "string",
            "description": "The GraduationDate to filter on",
            "format": "date-time",
            "nullable": true,
            "example": "2025-11-19"
          },
          "studied": {
            "type": "string",
            "description": "The Studied to filter on",
            "nullable": true,
            "example": "MZool"
          },
          "awardClass": {
            "type": "string",
            "description": "The AwardClass to filter on",
            "nullable": true,
            "example": "Distinction"
          },
          "attendanceType": {
            "type": "string",
            "description": "The AttendanceType to filter on",
            "nullable": true,
            "example": "Full Time"
          },
          "degreeFormat": {
            "type": "string",
            "description": "The DegreeFormat to filter on",
            "nullable": true,
            "example": "Intercalated Degree"
          },
          "ucasNumber": {
            "type": "string",
            "description": "The UCASNumber to filter on",
            "nullable": true,
            "example": "123-456-7890"
          },
          "thesisTitle": {
            "type": "string",
            "description": "The ThesisTitle to filter on",
            "nullable": true,
            "example": "Fluid Dynamics of Starling Murmurations"
          },
          "feeStatus": {
            "type": "string",
            "description": "The FeeStatus to filter on",
            "nullable": true,
            "example": "Student Loan"
          },
          "countryOfPlacement": {
            "type": "string",
            "description": "The CountryOfPlacement to filter on",
            "nullable": true,
            "example": "United States"
          },
          "durationOfPlacement": {
            "type": "string",
            "description": "The DurationOfPlacement to filter on",
            "nullable": true,
            "example": "1 Year"
          },
          "hostInstitution": {
            "type": "string",
            "description": "The HostInstitution to filter on",
            "nullable": true,
            "example": "Harvard University"
          },
          "placementType": {
            "type": "string",
            "description": "The PlacementType to filter on",
            "nullable": true,
            "example": "Full Time"
          },
          "placementStart": {
            "type": "string",
            "description": "The PlacementStart to filter on",
            "format": "date-time",
            "nullable": true,
            "example": "2025-11-19"
          },
          "placementEnd": {
            "type": "string",
            "description": "The PlacementEnd to filter on",
            "format": "date-time",
            "nullable": true,
            "example": "2025-11-19"
          },
          "created": {
            "type": "string",
            "description": "The date the Education was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "type": "string",
            "description": "The user who created the Education",
            "nullable": true,
            "example": "Andrew"
          },
          "modified": {
            "type": "string",
            "description": "The date the Education was last changed",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user who last changed the Education",
            "nullable": true,
            "example": "Andrew"
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "The Education custom fields",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on a Education"
      },
      "EducationPostRequest": {
        "type": "object",
        "properties": {
          "educationId": {
            "type": "string",
            "description": "The unique ID for the Education\r\n<ul><li>Must not already exist</li></ul><ul><li>Must be unique in the imported records</li></ul><ul><li>Default is Sequence: : EducationID</li></ul>",
            "nullable": true,
            "example": "EDUC000012"
          },
          "serialNumber": {
            "maxLength": 50,
            "type": "string",
            "description": "The SerialNumber to filter on\r\n<ul><li>For new records this value cannot be empty</li></ul><ul><li>This value must exist as an existing contact</li></ul>",
            "nullable": true,
            "example": "000003"
          },
          "yearOfEntry": {
            "type": "integer",
            "description": "The YearOfEntry to filter on\r\n<ul><li>Must be a four digit integer</li></ul>",
            "format": "int32",
            "nullable": true,
            "example": 2005
          },
          "classOf": {
            "type": "integer",
            "description": "The ClassOf to filter on\r\n<ul><li>Must be a four digit integer</li></ul>",
            "format": "int32",
            "nullable": true,
            "example": 2008
          },
          "institutionName": {
            "maxLength": 100,
            "type": "string",
            "description": "The InstitutionName to filter on\r\n<ul><li>For new records this value cannot be empty</li></ul><ul><li>Default is LibraryDefinition: DefaultInstitution</li></ul>",
            "nullable": true,
            "example": "Charity University"
          },
          "institutionType": {
            "maxLength": 50,
            "type": "string",
            "description": "The InstitutionType to filter on\r\n<ul><li>This value must exist in the 'Institution Type' lookup</li></ul>",
            "nullable": true,
            "example": "University"
          },
          "facultyOrSchool": {
            "maxLength": 100,
            "type": "string",
            "description": "The FacultyOrSchool to filter on\r\n<ul><li>For new records this value cannot be empty</li></ul><ul><li>This value must exist in the 'Faculty / School' lookup</li></ul>",
            "nullable": true,
            "example": "Biomedical Sciences"
          },
          "courseName": {
            "maxLength": 255,
            "type": "string",
            "description": "The CourseName to filter on\r\n<ul><li>For new records this value cannot be empty</li></ul><ul><li>This value must exist in the 'Course Name' lookup</li></ul>",
            "nullable": true,
            "example": "Applied Biomedical Sciences"
          },
          "qualificationLevel": {
            "maxLength": 50,
            "type": "string",
            "description": "The QualificationLevel to filter on\r\n<ul><li>This value must exist in the 'Qualification Level' lookup</li></ul>",
            "nullable": true,
            "example": "Undergraduate"
          },
          "qualificationType": {
            "maxLength": 50,
            "type": "string",
            "description": "The QualificationType to filter on\r\n<ul><li>This value must exist in the 'Qualification Type' lookup</li></ul>",
            "nullable": true,
            "example": "Academic"
          },
          "award": {
            "maxLength": 10,
            "type": "string",
            "description": "The Award to filter on\r\n<ul><li>This value must exist in the 'Award' lookup</li></ul>",
            "nullable": true,
            "example": "BA"
          },
          "grade": {
            "maxLength": 10,
            "type": "string",
            "description": "The Grade to filter on\r\n<ul><li>This value must exist in the second column of the 'Award' lookup</li></ul>",
            "nullable": true,
            "example": "Third"
          },
          "gpa": {
            "type": "number",
            "description": "The GPA to filter on",
            "format": "double",
            "nullable": true,
            "example": 3.30
          },
          "personalTutor": {
            "maxLength": 100,
            "type": "string",
            "description": "The PersonalTutor to filter on",
            "nullable": true,
            "example": "Mrs Julia Campbell"
          },
          "boardingStatus": {
            "maxLength": 50,
            "type": "string",
            "description": "The BoardingStatus to filter on",
            "nullable": true,
            "example": "Halls of residence"
          },
          "boardingHouse": {
            "maxLength": 50,
            "type": "string",
            "description": "The BoardingHouse to filter on",
            "nullable": true,
            "example": "Jubilee Hall"
          },
          "internationalExchange": {
            "maxLength": 15,
            "type": "string",
            "description": "The InternationalExchange to filter on\r\n<ul><li>This value must exist in the 'InternationalExchange' lookup</li></ul>",
            "nullable": true,
            "example": "Internal"
          },
          "exchangeNotes": {
            "maxLength": 255,
            "type": "string",
            "description": "The ExchangeNotes to filter on",
            "nullable": true,
            "example": "Exchange notes"
          },
          "foundationYearNotes": {
            "maxLength": 255,
            "type": "string",
            "description": "The FoundationYearNotes to filter on",
            "nullable": true,
            "example": "Foundation year notes "
          },
          "gapYearNotes": {
            "maxLength": 255,
            "type": "string",
            "description": "The GapYearNotes to filter on",
            "nullable": true,
            "example": "Gap year notes"
          },
          "studyAbroadNotes": {
            "maxLength": 255,
            "type": "string",
            "description": "The StudyAbroadNotes to filter on",
            "nullable": true,
            "example": "Study abroad notes"
          },
          "yearOfLeaving": {
            "type": "integer",
            "description": "The YearOfLeaving to filter on\r\n<ul><li>Must be a four digit integer</li></ul>",
            "format": "int32",
            "nullable": true,
            "example": 2008
          },
          "reasonForLeaving": {
            "maxLength": 50,
            "type": "string",
            "description": "The ReasonForLeaving to filter on\r\n<ul><li>This value must exist in the 'Reason For Leaving' lookup</li></ul>",
            "nullable": true,
            "example": "Exchange"
          },
          "notes": {
            "maxLength": 500,
            "type": "string",
            "description": "The Notes to filter on",
            "nullable": true,
            "example": "Further Notes"
          },
          "studentNumber": {
            "maxLength": 50,
            "type": "string",
            "description": "The StudentNumber to filter on",
            "nullable": true,
            "example": "STU123456"
          },
          "college": {
            "maxLength": 100,
            "type": "string",
            "description": "The College to filter on",
            "nullable": true,
            "example": "College of Life Sciences"
          },
          "department": {
            "maxLength": 100,
            "type": "string",
            "description": "The Department to filter on",
            "nullable": true,
            "example": "Zoology"
          },
          "courseCode": {
            "maxLength": 50,
            "type": "string",
            "description": "The CourseCode to filter on",
            "nullable": true,
            "example": "CODE1234"
          },
          "startDate": {
            "type": "string",
            "description": "The StartDate to filter on",
            "format": "date-time",
            "nullable": true,
            "example": "2025-11-19"
          },
          "endDate": {
            "type": "string",
            "description": "The EndDate to filter on",
            "format": "date-time",
            "nullable": true,
            "example": "2025-11-19"
          },
          "awardDate": {
            "type": "string",
            "description": "The AwardDate to filter on",
            "format": "date-time",
            "nullable": true,
            "example": "2025-11-19"
          },
          "graduationDate": {
            "type": "string",
            "description": "The GraduationDate to filter on",
            "format": "date-time",
            "nullable": true,
            "example": "2025-11-19"
          },
          "studied": {
            "maxLength": 100,
            "type": "string",
            "description": "The Studied to filter on",
            "nullable": true,
            "example": "MZool"
          },
          "awardClass": {
            "maxLength": 50,
            "type": "string",
            "description": "The AwardClass to filter on",
            "nullable": true,
            "example": "Distinction"
          },
          "attendanceType": {
            "maxLength": 50,
            "type": "string",
            "description": "The AttendanceType to filter on",
            "nullable": true,
            "example": "Full Time"
          },
          "degreeFormat": {
            "maxLength": 100,
            "type": "string",
            "description": "The DegreeFormat to filter on",
            "nullable": true,
            "example": "Intercalated Degree"
          },
          "ucasNumber": {
            "maxLength": 50,
            "type": "string",
            "description": "The UCASNumber to filter on",
            "nullable": true,
            "example": "123-456-7890"
          },
          "thesisTitle": {
            "maxLength": 500,
            "type": "string",
            "description": "The ThesisTitle to filter on",
            "nullable": true,
            "example": "Fluid Dynamics of Starling Murmurations"
          },
          "feeStatus": {
            "maxLength": 50,
            "type": "string",
            "description": "The FeeStatus to filter on",
            "nullable": true,
            "example": "Student Loan"
          },
          "countryOfPlacement": {
            "maxLength": 100,
            "type": "string",
            "description": "The CountryOfPlacement to filter on",
            "nullable": true,
            "example": "United States"
          },
          "durationOfPlacement": {
            "maxLength": 50,
            "type": "string",
            "description": "The DurationOfPlacement to filter on",
            "nullable": true,
            "example": "1 Year"
          },
          "hostInstitution": {
            "maxLength": 100,
            "type": "string",
            "description": "The HostInstitution to filter on",
            "nullable": true,
            "example": "Harvard University"
          },
          "placementType": {
            "maxLength": 50,
            "type": "string",
            "description": "The PlacementType to filter on",
            "nullable": true,
            "example": "Full Time"
          },
          "placementStart": {
            "type": "string",
            "description": "The PlacementStart to filter on",
            "format": "date-time",
            "nullable": true,
            "example": "2025-11-19"
          },
          "placementEnd": {
            "type": "string",
            "description": "The PlacementEnd to filter on",
            "format": "date-time",
            "nullable": true,
            "example": "2025-11-19"
          },
          "created": {
            "type": "string",
            "description": "The date the Education was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "type": "string",
            "description": "The user who created the Education \r\n<ul><li>Default is API</li></ul>",
            "nullable": true,
            "example": "Andrew"
          },
          "modified": {
            "type": "string",
            "description": "The date the Education was last changed",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user who last changed the Education \r\n<ul><li>Default is API</li></ul>",
            "nullable": true,
            "example": "Andrew"
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomFieldPostRequest"
            },
            "description": "Custom field data",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on a Education to post"
      },
      "EducationPutBulkRequest": {
        "type": "object",
        "properties": {
          "educationId": {
            "type": "string",
            "description": "The unique ID for the Education\r\n<ul><li>Must already exist</li></ul><ul><li>Must be unique in the imported records</li></ul>",
            "nullable": true,
            "example": "EDU0000002"
          },
          "serialNumber": {
            "type": "string",
            "description": "The SerialNumber to filter on\r\n<ul><li>For new records this value cannot be empty</li></ul><ul><li>This value must exist as an existing contact</li></ul>",
            "nullable": true,
            "example": "000003"
          },
          "yearOfEntry": {
            "type": "integer",
            "description": "The YearOfEntry to filter on\r\n<ul><li>Must be a four digit integer</li></ul>",
            "format": "int32",
            "nullable": true,
            "example": 2005
          },
          "classOf": {
            "type": "integer",
            "description": "The ClassOf to filter on\r\n<ul><li>Must be a four digit integer</li></ul>",
            "format": "int32",
            "nullable": true,
            "example": 2008
          },
          "institutionName": {
            "type": "string",
            "description": "The InstitutionName to filter on\r\n<ul><li>For new records this value cannot be empty</li></ul><ul><li>Default is LibraryDefinition: DefaultInstitution</li></ul>",
            "nullable": true,
            "example": "Charity University"
          },
          "institutionType": {
            "type": "string",
            "description": "The InstitutionType to filter on\r\n<ul><li>This value must exist in the 'Institution Type' lookup</li></ul>",
            "nullable": true,
            "example": "University"
          },
          "facultyOrSchool": {
            "type": "string",
            "description": "The FacultyOrSchool to filter on\r\n<ul><li>For new records this value cannot be empty</li></ul><ul><li>This value must exist in the 'Faculty / School' lookup</li></ul>",
            "nullable": true,
            "example": "Biomedical Sciences"
          },
          "courseName": {
            "type": "string",
            "description": "The CourseName to filter on\r\n<ul><li>For new records this value cannot be empty</li></ul><ul><li>This value must exist in the 'Course Name' lookup</li></ul>",
            "nullable": true,
            "example": "Applied Biomedical Sciences"
          },
          "qualificationLevel": {
            "type": "string",
            "description": "The QualificationLevel to filter on\r\n<ul><li>This value must exist in the 'Qualification Level' lookup</li></ul>",
            "nullable": true,
            "example": "Undergraduate"
          },
          "qualificationType": {
            "type": "string",
            "description": "The QualificationType to filter on\r\n<ul><li>This value must exist in the 'Qualification Type' lookup</li></ul>",
            "nullable": true,
            "example": "Academic"
          },
          "award": {
            "type": "string",
            "description": "The Award to filter on\r\n<ul><li>This value must exist in the 'Award' lookup</li></ul>",
            "nullable": true,
            "example": "BA"
          },
          "grade": {
            "type": "string",
            "description": "The Grade to filter on\r\n<ul><li>This value must exist in the second column of the 'Award' lookup</li></ul>",
            "nullable": true,
            "example": "Third"
          },
          "gpa": {
            "type": "number",
            "description": "The GPA to filter on",
            "format": "double",
            "nullable": true,
            "example": 3.30
          },
          "personalTutor": {
            "type": "string",
            "description": "The PersonalTutor to filter on",
            "nullable": true,
            "example": "Mrs Julia Campbell"
          },
          "boardingStatus": {
            "type": "string",
            "description": "The BoardingStatus to filter on",
            "nullable": true,
            "example": "Halls of residence"
          },
          "boardingHouse": {
            "type": "string",
            "description": "The BoardingHouse to filter on",
            "nullable": true,
            "example": "Jubilee Hall"
          },
          "internationalExchange": {
            "type": "string",
            "description": "The InternationalExchange to filter on\r\n<ul><li>This value must exist in the 'InternationalExchange' lookup</li></ul>",
            "nullable": true,
            "example": "Internal"
          },
          "exchangeNotes": {
            "type": "string",
            "description": "The ExchangeNotes to filter on",
            "nullable": true,
            "example": "Exchange notes"
          },
          "foundationYearNotes": {
            "type": "string",
            "description": "The FoundationYearNotes to filter on",
            "nullable": true,
            "example": "Foundation year notes "
          },
          "gapYearNotes": {
            "type": "string",
            "description": "The GapYearNotes to filter on",
            "nullable": true,
            "example": "Gap year notes"
          },
          "studyAbroadNotes": {
            "type": "string",
            "description": "The StudyAbroadNotes to filter on",
            "nullable": true,
            "example": "Study abroad notes"
          },
          "yearOfLeaving": {
            "type": "integer",
            "description": "The YearOfLeaving to filter on\r\n<ul><li>Must be a four digit integer</li></ul>",
            "format": "int32",
            "nullable": true,
            "example": 2008
          },
          "reasonForLeaving": {
            "type": "string",
            "description": "The ReasonForLeaving to filter on\r\n<ul><li>This value must exist in the 'Reason For Leaving' lookup</li></ul>",
            "nullable": true,
            "example": "Exchange"
          },
          "notes": {
            "type": "string",
            "description": "The Notes to filter on",
            "nullable": true,
            "example": "Further Notes"
          },
          "studentNumber": {
            "type": "string",
            "description": "The StudentNumber to filter on",
            "nullable": true,
            "example": "STU123456"
          },
          "college": {
            "type": "string",
            "description": "The College to filter on",
            "nullable": true,
            "example": "College of Life Sciences"
          },
          "department": {
            "type": "string",
            "description": "The Department to filter on",
            "nullable": true,
            "example": "Zoology"
          },
          "courseCode": {
            "type": "string",
            "description": "The CourseCode to filter on",
            "nullable": true,
            "example": "CODE1234"
          },
          "modified": {
            "type": "string",
            "description": "The date the education was last changed",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user who last changed the education \r\n<ul><li>Default is API</li></ul>",
            "nullable": true,
            "example": "Andrew"
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomFieldPostRequest"
            },
            "description": "Custom field data",
            "nullable": true
          },
          "startDate": {
            "type": "string",
            "description": "The StartDate to filter on",
            "format": "date-time",
            "nullable": true,
            "example": "2025-11-19"
          },
          "endDate": {
            "type": "string",
            "description": "The EndDate to filter on",
            "format": "date-time",
            "nullable": true,
            "example": "2025-11-19"
          },
          "awardDate": {
            "type": "string",
            "description": "The AwardDate to filter on",
            "format": "date-time",
            "nullable": true,
            "example": "2025-11-19"
          },
          "graduationDate": {
            "type": "string",
            "description": "The GraduationDate to filter on",
            "format": "date-time",
            "nullable": true,
            "example": "2025-11-19"
          },
          "studied": {
            "type": "string",
            "description": "The Studied to filter on",
            "nullable": true,
            "example": "MZool"
          },
          "awardClass": {
            "type": "string",
            "description": "The AwardClass to filter on",
            "nullable": true,
            "example": "Distinction"
          },
          "attendanceType": {
            "type": "string",
            "description": "The AttendanceType to filter on",
            "nullable": true,
            "example": "Full Time"
          },
          "degreeFormat": {
            "type": "string",
            "description": "The DegreeFormat to filter on",
            "nullable": true,
            "example": "Intercalated Degree"
          },
          "ucasNumber": {
            "type": "string",
            "description": "The UCASNumber to filter on",
            "nullable": true,
            "example": "123-456-7890"
          },
          "thesisTitle": {
            "type": "string",
            "description": "The ThesisTitle to filter on",
            "nullable": true,
            "example": "Fluid Dynamics of Starling Murmurations"
          },
          "feeStatus": {
            "type": "string",
            "description": "The FeeStatus to filter on",
            "nullable": true,
            "example": "Student Loan"
          },
          "countryOfPlacement": {
            "type": "string",
            "description": "The CountryOfPlacement to filter on",
            "nullable": true,
            "example": "United States"
          },
          "durationOfPlacement": {
            "type": "string",
            "description": "The DurationOfPlacement to filter on",
            "nullable": true,
            "example": "1 Year"
          },
          "hostInstitution": {
            "type": "string",
            "description": "The HostInstitution to filter on",
            "nullable": true,
            "example": "Harvard University"
          },
          "placementType": {
            "type": "string",
            "description": "The PlacementType to filter on",
            "nullable": true,
            "example": "Full Time"
          },
          "placementStart": {
            "type": "string",
            "description": "The PlacementStart to filter on",
            "format": "date-time",
            "nullable": true,
            "example": "2025-11-19"
          },
          "placementEnd": {
            "type": "string",
            "description": "The PlacementEnd to filter on",
            "format": "date-time",
            "nullable": true,
            "example": "2025-11-19"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on a education to update"
      },
      "EducationPutRequest": {
        "type": "object",
        "properties": {
          "serialNumber": {
            "type": "string",
            "description": "The SerialNumber to filter on\r\n<ul><li>For new records this value cannot be empty</li></ul><ul><li>This value must exist as an existing contact</li></ul>",
            "nullable": true,
            "example": "000003"
          },
          "yearOfEntry": {
            "type": "integer",
            "description": "The YearOfEntry to filter on\r\n<ul><li>Must be a four digit integer</li></ul>",
            "format": "int32",
            "nullable": true,
            "example": 2005
          },
          "classOf": {
            "type": "integer",
            "description": "The ClassOf to filter on\r\n<ul><li>Must be a four digit integer</li></ul>",
            "format": "int32",
            "nullable": true,
            "example": 2008
          },
          "institutionName": {
            "type": "string",
            "description": "The InstitutionName to filter on\r\n<ul><li>For new records this value cannot be empty</li></ul><ul><li>Default is LibraryDefinition: DefaultInstitution</li></ul>",
            "nullable": true,
            "example": "Charity University"
          },
          "institutionType": {
            "type": "string",
            "description": "The InstitutionType to filter on\r\n<ul><li>This value must exist in the 'Institution Type' lookup</li></ul>",
            "nullable": true,
            "example": "University"
          },
          "facultyOrSchool": {
            "type": "string",
            "description": "The FacultyOrSchool to filter on\r\n<ul><li>For new records this value cannot be empty</li></ul><ul><li>This value must exist in the 'Faculty / School' lookup</li></ul>",
            "nullable": true,
            "example": "Biomedical Sciences"
          },
          "courseName": {
            "type": "string",
            "description": "The CourseName to filter on\r\n<ul><li>For new records this value cannot be empty</li></ul><ul><li>This value must exist in the 'Course Name' lookup</li></ul>",
            "nullable": true,
            "example": "Applied Biomedical Sciences"
          },
          "qualificationLevel": {
            "type": "string",
            "description": "The QualificationLevel to filter on\r\n<ul><li>This value must exist in the 'Qualification Level' lookup</li></ul>",
            "nullable": true,
            "example": "Undergraduate"
          },
          "qualificationType": {
            "type": "string",
            "description": "The QualificationType to filter on\r\n<ul><li>This value must exist in the 'Qualification Type' lookup</li></ul>",
            "nullable": true,
            "example": "Academic"
          },
          "award": {
            "type": "string",
            "description": "The Award to filter on\r\n<ul><li>This value must exist in the 'Award' lookup</li></ul>",
            "nullable": true,
            "example": "BA"
          },
          "grade": {
            "type": "string",
            "description": "The Grade to filter on\r\n<ul><li>This value must exist in the second column of the 'Award' lookup</li></ul>",
            "nullable": true,
            "example": "Third"
          },
          "gpa": {
            "type": "number",
            "description": "The GPA to filter on",
            "format": "double",
            "nullable": true,
            "example": 3.30
          },
          "personalTutor": {
            "type": "string",
            "description": "The PersonalTutor to filter on",
            "nullable": true,
            "example": "Mrs Julia Campbell"
          },
          "boardingStatus": {
            "type": "string",
            "description": "The BoardingStatus to filter on",
            "nullable": true,
            "example": "Halls of residence"
          },
          "boardingHouse": {
            "type": "string",
            "description": "The BoardingHouse to filter on",
            "nullable": true,
            "example": "Jubilee Hall"
          },
          "internationalExchange": {
            "type": "string",
            "description": "The InternationalExchange to filter on\r\n<ul><li>This value must exist in the 'InternationalExchange' lookup</li></ul>",
            "nullable": true,
            "example": "Internal"
          },
          "exchangeNotes": {
            "type": "string",
            "description": "The ExchangeNotes to filter on",
            "nullable": true,
            "example": "Exchange notes"
          },
          "foundationYearNotes": {
            "type": "string",
            "description": "The FoundationYearNotes to filter on",
            "nullable": true,
            "example": "Foundation year notes "
          },
          "gapYearNotes": {
            "type": "string",
            "description": "The GapYearNotes to filter on",
            "nullable": true,
            "example": "Gap year notes"
          },
          "studyAbroadNotes": {
            "type": "string",
            "description": "The StudyAbroadNotes to filter on",
            "nullable": true,
            "example": "Study abroad notes"
          },
          "yearOfLeaving": {
            "type": "integer",
            "description": "The YearOfLeaving to filter on\r\n<ul><li>Must be a four digit integer</li></ul>",
            "format": "int32",
            "nullable": true,
            "example": 2008
          },
          "reasonForLeaving": {
            "type": "string",
            "description": "The ReasonForLeaving to filter on\r\n<ul><li>This value must exist in the 'Reason For Leaving' lookup</li></ul>",
            "nullable": true,
            "example": "Exchange"
          },
          "notes": {
            "type": "string",
            "description": "The Notes to filter on",
            "nullable": true,
            "example": "Further Notes"
          },
          "studentNumber": {
            "type": "string",
            "description": "The StudentNumber to filter on",
            "nullable": true,
            "example": "STU123456"
          },
          "college": {
            "type": "string",
            "description": "The College to filter on",
            "nullable": true,
            "example": "College of Life Sciences"
          },
          "department": {
            "type": "string",
            "description": "The Department to filter on",
            "nullable": true,
            "example": "Zoology"
          },
          "courseCode": {
            "type": "string",
            "description": "The CourseCode to filter on",
            "nullable": true,
            "example": "CODE1234"
          },
          "startDate": {
            "type": "string",
            "description": "The StartDate to filter on",
            "format": "date-time",
            "nullable": true,
            "example": "2025-11-19"
          },
          "endDate": {
            "type": "string",
            "description": "The EndDate to filter on",
            "format": "date-time",
            "nullable": true,
            "example": "2025-11-19"
          },
          "awardDate": {
            "type": "string",
            "description": "The AwardDate to filter on",
            "format": "date-time",
            "nullable": true,
            "example": "2025-11-19"
          },
          "graduationDate": {
            "type": "string",
            "description": "The GraduationDate to filter on",
            "format": "date-time",
            "nullable": true,
            "example": "2025-11-19"
          },
          "studied": {
            "type": "string",
            "description": "The Studied to filter on",
            "nullable": true,
            "example": "MZool"
          },
          "awardClass": {
            "type": "string",
            "description": "The AwardClass to filter on",
            "nullable": true,
            "example": "Distinction"
          },
          "attendanceType": {
            "type": "string",
            "description": "The AttendanceType to filter on",
            "nullable": true,
            "example": "Full Time"
          },
          "degreeFormat": {
            "type": "string",
            "description": "The DegreeFormat to filter on",
            "nullable": true,
            "example": "Intercalated Degree"
          },
          "ucasNumber": {
            "type": "string",
            "description": "The UCASNumber to filter on",
            "nullable": true,
            "example": "123-456-7890"
          },
          "thesisTitle": {
            "type": "string",
            "description": "The ThesisTitle to filter on",
            "nullable": true,
            "example": "Fluid Dynamics of Starling Murmurations"
          },
          "feeStatus": {
            "type": "string",
            "description": "The FeeStatus to filter on",
            "nullable": true,
            "example": "Student Loan"
          },
          "countryOfPlacement": {
            "type": "string",
            "description": "The CountryOfPlacement to filter on",
            "nullable": true,
            "example": "United States"
          },
          "durationOfPlacement": {
            "type": "string",
            "description": "The DurationOfPlacement to filter on",
            "nullable": true,
            "example": "1 Year"
          },
          "hostInstitution": {
            "type": "string",
            "description": "The HostInstitution to filter on",
            "nullable": true,
            "example": "Harvard University"
          },
          "placementType": {
            "type": "string",
            "description": "The PlacementType to filter on",
            "nullable": true,
            "example": "Full Time"
          },
          "placementStart": {
            "type": "string",
            "description": "The PlacementStart to filter on",
            "format": "date-time",
            "nullable": true,
            "example": "2025-11-19"
          },
          "placementEnd": {
            "type": "string",
            "description": "The PlacementEnd to filter on",
            "format": "date-time",
            "nullable": true,
            "example": "2025-11-19"
          },
          "modified": {
            "type": "string",
            "description": "The date the education was last changed",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user who last changed the education \r\n<ul><li>Default is API</li></ul>",
            "nullable": true,
            "example": "Andrew"
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomFieldPostRequest"
            },
            "description": "Custom field data",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on a education to update"
      },
      "EmailAddressBase": {
        "required": [
          "emailAddress"
        ],
        "type": "object",
        "properties": {
          "emailAddress": {
            "maxLength": 255,
            "minLength": 1,
            "type": "string",
            "description": "The EmailAddress to filter on",
            "example": "b_simmons@hotmail.com"
          },
          "emailFrom": {
            "type": "boolean",
            "description": "The EmailFrom to filter on",
            "example": false
          },
          "emailTo": {
            "type": "boolean",
            "description": "The EmailTo to filter on",
            "example": true
          },
          "emailCC": {
            "type": "boolean",
            "description": "The EmailCC to filter on",
            "example": false
          },
          "emailBody": {
            "type": "boolean",
            "description": "The EmailBody to filter on",
            "example": false
          }
        },
        "additionalProperties": false,
        "description": "Stores details for emails"
      },
      "EmailAttachmentBase": {
        "required": [
          "attachmentBytes",
          "fileName"
        ],
        "type": "object",
        "properties": {
          "attachmentBytes": {
            "type": "string",
            "description": "The byte array of the attachment",
            "format": "byte"
          },
          "extension": {
            "maxLength": 10,
            "type": "string",
            "description": "The file extension of the attachment",
            "nullable": true,
            "example": "docx"
          },
          "fileName": {
            "maxLength": 255,
            "type": "string",
            "description": "The file name of the attachment",
            "example": "AnnualDinner"
          }
        },
        "additionalProperties": false,
        "description": "Stores attachment details for emails"
      },
      "EmailLoggingPostRequest": {
        "required": [
          "sender"
        ],
        "type": "object",
        "properties": {
          "subject": {
            "type": "string",
            "description": "The Subject to filter on",
            "nullable": true,
            "example": "Hear About Our Latest Event"
          },
          "date": {
            "type": "string",
            "description": "The Date to filter on",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "recipient": {
            "type": "string",
            "description": "The Recipients to filter on",
            "nullable": true,
            "example": "James.Brown@thankQDemo.co.uk"
          },
          "sender": {
            "minLength": 1,
            "type": "string",
            "description": "The Sender to filter on",
            "example": "John.Smith@thankQDemo.co.uk"
          },
          "cc": {
            "type": "string",
            "description": "The CC to filter on",
            "nullable": true,
            "example": ""
          },
          "bodyHTML": {
            "type": "string",
            "description": "The BodyHTML to filter on",
            "nullable": true,
            "example": "Dear FriendOur latest event"
          },
          "bodyPlain": {
            "type": "string",
            "description": "The BodyPlain to filter on",
            "nullable": true,
            "example": "Dear Friend our Latest Event"
          },
          "inOrOut": {
            "type": "string",
            "description": "The InOrOut to filter on",
            "nullable": true,
            "example": "Out"
          },
          "attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EmailAttachmentBase"
            },
            "description": "The emails's attachments",
            "nullable": true
          },
          "emailAddresses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EmailAddressBase"
            },
            "description": "The email addresses that this email has been sent from and to.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on a email logging record to post"
      },
      "EmploymentGetResponse": {
        "type": "object",
        "properties": {
          "employmentId": {
            "type": "string",
            "description": "The Employment Id",
            "nullable": true
          },
          "serialNumber": {
            "type": "string",
            "description": "The Serial Number of the employee's contact record",
            "nullable": true,
            "example": "123456789"
          },
          "employerId": {
            "type": "string",
            "description": "The Serial Number of the employer's contact record",
            "nullable": true,
            "example": "000456789"
          },
          "employerName": {
            "type": "string",
            "description": "The name of the employer",
            "nullable": true,
            "example": "The Access School"
          },
          "position": {
            "type": "string",
            "description": "The employee's position in the employer's organisation",
            "nullable": true,
            "example": "Head Teacher"
          },
          "department": {
            "type": "string",
            "description": "The department corresponding to the employment",
            "nullable": true,
            "example": "History"
          },
          "responsibilities": {
            "type": "string",
            "description": "The responsibilities of the contact during the employment",
            "nullable": true,
            "example": "Teaching"
          },
          "retired": {
            "type": "boolean",
            "description": "Indicates that the employee retired from this employment",
            "nullable": true,
            "example": false
          },
          "inactive": {
            "type": "boolean",
            "description": "Indicates that the employee is not active in this employment",
            "nullable": true,
            "example": true
          },
          "sicCode": {
            "type": "string",
            "description": "The SIC code for this employment",
            "nullable": true,
            "example": "80100"
          },
          "sicActivity": {
            "type": "string",
            "description": "The description that matches the SIC code",
            "nullable": true,
            "example": "Primary education"
          },
          "socCode": {
            "type": "string",
            "description": "The SOC code for this employment",
            "nullable": true,
            "example": "2315"
          },
          "city": {
            "type": "string",
            "description": "The City the Employment took place in",
            "nullable": true,
            "example": "Leicester"
          },
          "country": {
            "type": "string",
            "description": "The Country the Employment took place in",
            "nullable": true,
            "example": "United Kingdom"
          },
          "socActivity": {
            "type": "string",
            "description": "The description that matches the SOC code",
            "nullable": true,
            "example": "Primary and nursery education teaching professionals"
          },
          "startDate": {
            "type": "string",
            "description": "The start date of the employment",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "endDate": {
            "type": "string",
            "description": "The end date of the employment",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "salaryRange": {
            "type": "string",
            "description": "The salary range for the employment",
            "nullable": true,
            "example": "35000+"
          },
          "notes": {
            "type": "string",
            "description": "Informal notes recorded against the employment record",
            "nullable": true,
            "example": "Employment lasting a few years"
          },
          "created": {
            "type": "string",
            "description": "The date the record was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "type": "string",
            "description": "The user who created the record",
            "nullable": true,
            "example": "John"
          },
          "modified": {
            "type": "string",
            "description": "The date the record was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user who last modified the record",
            "nullable": true,
            "example": "John"
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "The Education custom fields",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the employment to get"
      },
      "EmploymentPostRequest": {
        "type": "object",
        "properties": {
          "serialNumber": {
            "maxLength": 50,
            "type": "string",
            "description": "The Serial Number of the employee's contact record",
            "nullable": true,
            "example": "123456789"
          },
          "employerId": {
            "maxLength": 50,
            "type": "string",
            "description": "The Serial Number of the employer's contact record",
            "nullable": true,
            "example": "000456789"
          },
          "employerName": {
            "maxLength": 255,
            "type": "string",
            "description": "The name of the employer",
            "nullable": true,
            "example": "The Access School"
          },
          "position": {
            "maxLength": 100,
            "type": "string",
            "description": "The employee's position in the employer's organisation",
            "nullable": true,
            "example": "Head Teacher"
          },
          "department": {
            "maxLength": 50,
            "type": "string",
            "description": "The department corresponding to the employment",
            "nullable": true,
            "example": "History"
          },
          "responsibilities": {
            "maxLength": 255,
            "type": "string",
            "description": "The responsibilities of the contact during the employment",
            "nullable": true,
            "example": "Teaching"
          },
          "retired": {
            "type": "boolean",
            "description": "Indicates that the employee retired from this employment",
            "nullable": true,
            "example": false
          },
          "inactive": {
            "type": "boolean",
            "description": "Indicates that the employee is not active in this employment",
            "nullable": true,
            "example": true
          },
          "sicCode": {
            "maxLength": 10,
            "type": "string",
            "description": "The SIC code for this employment",
            "nullable": true,
            "example": "80100"
          },
          "socCode": {
            "maxLength": 10,
            "type": "string",
            "description": "The SOC code for this employment",
            "nullable": true,
            "example": "2315"
          },
          "city": {
            "maxLength": 50,
            "type": "string",
            "description": "The City the Employment took place in",
            "nullable": true,
            "example": "Leicester"
          },
          "country": {
            "maxLength": 50,
            "type": "string",
            "description": "The Country the Employment took place in",
            "nullable": true,
            "example": "United Kingdom"
          },
          "startDate": {
            "type": "string",
            "description": "The start date of the employment",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "endDate": {
            "type": "string",
            "description": "The end date of the employment",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "salaryRange": {
            "maxLength": 20,
            "type": "string",
            "description": "The salary range for the employment",
            "nullable": true,
            "example": "35000+"
          },
          "notes": {
            "maxLength": 1000,
            "type": "string",
            "description": "Informal notes recorded against the employment record",
            "nullable": true,
            "example": "Employment lasting a few years"
          },
          "created": {
            "type": "string",
            "description": "The date the record was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user who created the record",
            "nullable": true,
            "example": "John"
          },
          "modified": {
            "type": "string",
            "description": "The date the record was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user who last modified the record",
            "nullable": true,
            "example": "John"
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomFieldPostRequest"
            },
            "description": "Custom field data",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the employment to post from the web request"
      },
      "EmploymentPutBulkRequest": {
        "type": "object",
        "properties": {
          "employmentId": {
            "type": "string",
            "description": "The unique ID for the Employment",
            "nullable": true,
            "example": "12345321"
          },
          "serialNumber": {
            "type": "string",
            "description": "The Serial Number of the employee's contact record",
            "nullable": true,
            "example": "123456789"
          },
          "employerId": {
            "type": "string",
            "description": "The Serial Number of the employer's contact record",
            "nullable": true,
            "example": "000456789"
          },
          "employerName": {
            "type": "string",
            "description": "The name of the employer",
            "nullable": true,
            "example": "The Access School"
          },
          "position": {
            "type": "string",
            "description": "The employee's position in the employer's organisation",
            "nullable": true,
            "example": "Head Teacher"
          },
          "department": {
            "type": "string",
            "description": "The department corresponding to the employment",
            "nullable": true,
            "example": "History"
          },
          "responsibilities": {
            "type": "string",
            "description": "The responsibilities of the contact during the employment",
            "nullable": true,
            "example": "Teaching"
          },
          "retired": {
            "type": "boolean",
            "description": "Indicates that the employee retired from this employment",
            "nullable": true,
            "example": false
          },
          "inactive": {
            "type": "boolean",
            "description": "Indicates that the employee is not active in this employment",
            "nullable": true,
            "example": true
          },
          "sicCode": {
            "type": "string",
            "description": "The SIC code for this employment",
            "nullable": true,
            "example": "80100"
          },
          "socCode": {
            "type": "string",
            "description": "The SOC code for this employment",
            "nullable": true,
            "example": "2315"
          },
          "city": {
            "type": "string",
            "description": "The City the Employment took place in",
            "nullable": true,
            "example": "Leicester"
          },
          "country": {
            "type": "string",
            "description": "The Country the Employment took place in",
            "nullable": true,
            "example": "United Kingdom"
          },
          "startDate": {
            "type": "string",
            "description": "The start date of the employment",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "endDate": {
            "type": "string",
            "description": "The end date of the employment",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "salaryRange": {
            "type": "string",
            "description": "The salary range for the employment",
            "nullable": true,
            "example": "35000+"
          },
          "notes": {
            "type": "string",
            "description": "Informal notes recorded against the employment record",
            "nullable": true,
            "example": "Employment lasting a few years"
          },
          "modified": {
            "type": "string",
            "description": "The date the education was last changed",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user who last changed the education",
            "nullable": true,
            "example": "John"
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomFieldPostRequest"
            },
            "description": "Custom field data",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "EmploymentPutRequest": {
        "type": "object",
        "properties": {
          "serialNumber": {
            "maxLength": 50,
            "type": "string",
            "description": "The Serial Number of the employee's contact record",
            "nullable": true,
            "example": "123456789"
          },
          "employerId": {
            "maxLength": 50,
            "type": "string",
            "description": "The Serial Number of the employer's contact record",
            "nullable": true,
            "example": "000456789"
          },
          "employerName": {
            "maxLength": 255,
            "type": "string",
            "description": "The name of the employer",
            "nullable": true,
            "example": "The Access School"
          },
          "position": {
            "maxLength": 100,
            "type": "string",
            "description": "The employee's position in the employer's organisation",
            "nullable": true,
            "example": "Head Teacher"
          },
          "department": {
            "maxLength": 50,
            "type": "string",
            "description": "The department corresponding to the employment",
            "nullable": true,
            "example": "History"
          },
          "responsibilities": {
            "maxLength": 255,
            "type": "string",
            "description": "The responsibilities of the contact during the employment",
            "nullable": true,
            "example": "Teaching"
          },
          "retired": {
            "type": "boolean",
            "description": "Indicates that the employee retired from this employment",
            "nullable": true,
            "example": false
          },
          "inactive": {
            "type": "boolean",
            "description": "Indicates that the employee is not active in this employment",
            "nullable": true,
            "example": true
          },
          "sicCode": {
            "maxLength": 10,
            "type": "string",
            "description": "The SIC code for this employment",
            "nullable": true,
            "example": "80100"
          },
          "socCode": {
            "maxLength": 10,
            "type": "string",
            "description": "The SOC code for this employment",
            "nullable": true,
            "example": "2315"
          },
          "city": {
            "maxLength": 50,
            "type": "string",
            "description": "The City the Employment took place in",
            "nullable": true,
            "example": "Leicester"
          },
          "country": {
            "maxLength": 50,
            "type": "string",
            "description": "The Country the Employment took place in",
            "nullable": true,
            "example": "United Kingdom"
          },
          "startDate": {
            "type": "string",
            "description": "The start date of the employment",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "endDate": {
            "type": "string",
            "description": "The end date of the employment",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "salaryRange": {
            "maxLength": 20,
            "type": "string",
            "description": "The salary range for the employment",
            "nullable": true,
            "example": "35000+"
          },
          "notes": {
            "maxLength": 1000,
            "type": "string",
            "description": "Informal notes recorded against the employment record",
            "nullable": true,
            "example": "Employment lasting a few years"
          },
          "modified": {
            "type": "string",
            "description": "The date the employment was last changed",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user who last changed the employment",
            "nullable": true,
            "example": "John"
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomFieldPostRequest"
            },
            "description": "Custom field data",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the employment record for updates"
      },
      "EntityFieldGetResponse": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The unique ID name for the Entity",
            "nullable": true,
            "example": "wish"
          },
          "entityName": {
            "type": "string",
            "description": "The name of the entity the field belongs to",
            "nullable": true,
            "example": "wish"
          },
          "label": {
            "type": "string",
            "description": "The display name used for the entity field",
            "nullable": true,
            "example": "Preferred Payment Type"
          },
          "description": {
            "type": "string",
            "description": "Small description that describes the entity field",
            "nullable": true,
            "example": "Stores the preferred payment type used in the Contact Entity"
          },
          "dataType": {
            "type": "string",
            "description": "Defines the type of data stored in the entity field",
            "nullable": true,
            "example": "Text"
          },
          "relatedEntityName": {
            "type": "string",
            "description": "Defines the name of the entity for a related column",
            "nullable": true,
            "example": "Text"
          },
          "defaultValue": {
            "type": "string",
            "description": "Defines the default value for data stored in the entity field",
            "nullable": true,
            "example": "Cash"
          },
          "lookup": {
            "type": "string",
            "description": "Defines the data used as a lookup for the entity field",
            "nullable": true,
            "example": "PaymentType"
          },
          "standardField": {
            "type": "boolean",
            "description": "Defines if the field is a standard field",
            "example": false
          },
          "quickSearchable": {
            "type": "boolean",
            "description": "Defines if the field is QuickSearchable",
            "nullable": true,
            "example": false
          },
          "archived": {
            "type": "boolean",
            "description": "If the field has been archived",
            "example": false
          },
          "cascadeDelete": {
            "type": "boolean",
            "description": "If the field is a relationship field then this defines if \r\nthe record should be deleted when the related record is deleted",
            "nullable": true,
            "example": false
          },
          "created": {
            "type": "string",
            "description": "When the record was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "type": "string",
            "description": "The user who created the record\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "modified": {
            "type": "string",
            "description": "When the record was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user who last modified the record\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on a custom entity"
      },
      "EntityGetResponse": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The unique ID name for the Entity",
            "nullable": true,
            "example": "wish"
          },
          "standardEntity": {
            "type": "boolean",
            "description": "Bool to identify if the entity is a standard entity",
            "example": true
          },
          "label": {
            "type": "string",
            "description": "The display name used for the Entity",
            "nullable": true,
            "example": "Wish"
          },
          "pluralLabel": {
            "type": "string",
            "description": "The plural display name used for the Entity",
            "nullable": true,
            "example": "Wishes"
          },
          "description": {
            "type": "string",
            "description": "Small description that describes the entity",
            "nullable": true,
            "example": "Wishes"
          },
          "selectPermission": {
            "type": "string",
            "description": "The permissions required to read data",
            "nullable": true,
            "example": "Contact Read"
          },
          "updatePermission": {
            "type": "string",
            "description": "The permissions required to update data",
            "nullable": true,
            "example": "Contact Read Write"
          },
          "insertPermission": {
            "type": "string",
            "description": "The permissions required to insert new data",
            "nullable": true,
            "example": "Contact Read Write"
          },
          "deletePermission": {
            "type": "string",
            "description": "The permissions required to delete old data",
            "nullable": true,
            "example": "Contact Admin"
          },
          "adminPermission": {
            "type": "string",
            "description": "The permissions required alter this entity",
            "nullable": true,
            "example": "Contact Admin"
          },
          "created": {
            "type": "string",
            "description": "When the record was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "type": "string",
            "description": "The user who created the record\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "modified": {
            "type": "string",
            "description": "When the record was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user who last modified the record\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "archived": {
            "type": "boolean",
            "description": "Bool to identify if the entity is Archived",
            "nullable": true,
            "example": true
          },
          "countOfCustomFields": {
            "type": "integer",
            "description": "The number of custom fields in this entity",
            "format": "int32",
            "nullable": true,
            "example": 2
          },
          "entityFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EntityFieldGetResponse"
            },
            "description": "EntityFields on the custom entity",
            "nullable": true,
            "example": [ ]
          }
        },
        "additionalProperties": false,
        "description": "Contains information on a custom entity"
      },
      "EntityGetResponseCollectionItem": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The unique ID name for the Entity",
            "nullable": true,
            "example": "wish"
          },
          "standardEntity": {
            "type": "boolean",
            "description": "Bool to identify if the entity is a standard entity",
            "example": true
          },
          "label": {
            "type": "string",
            "description": "The display name used for the Entity",
            "nullable": true,
            "example": "Wish"
          },
          "pluralLabel": {
            "type": "string",
            "description": "The plural display name used for the Entity",
            "nullable": true,
            "example": "Wishes"
          },
          "description": {
            "type": "string",
            "description": "Small description that describes the entity",
            "nullable": true,
            "example": "Wishes"
          },
          "selectPermission": {
            "type": "string",
            "description": "The permissions required to read data",
            "nullable": true,
            "example": "Contact Read"
          },
          "updatePermission": {
            "type": "string",
            "description": "The permissions required to update data",
            "nullable": true,
            "example": "Contact Read Write"
          },
          "insertPermission": {
            "type": "string",
            "description": "The permissions required to insert new data",
            "nullable": true,
            "example": "Contact Read Write"
          },
          "deletePermission": {
            "type": "string",
            "description": "The permissions required to delete old data",
            "nullable": true,
            "example": "Contact Admin"
          },
          "adminPermission": {
            "type": "string",
            "description": "The permissions required alter this entity",
            "nullable": true,
            "example": "Contact Admin"
          },
          "created": {
            "type": "string",
            "description": "When the record was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "type": "string",
            "description": "The user who created the record\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "modified": {
            "type": "string",
            "description": "When the record was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user who last modified the record\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "archived": {
            "type": "boolean",
            "description": "Bool to identify if the entity is Archived",
            "nullable": true,
            "example": true
          },
          "countOfCustomFields": {
            "type": "integer",
            "description": "The number of custom fields in this entity",
            "format": "int32",
            "nullable": true,
            "example": 2
          }
        },
        "additionalProperties": false,
        "description": "Contains information on a custom entity"
      },
      "EntityGetResponseCollectionResponse": {
        "type": "object",
        "properties": {
          "pageNumber": {
            "type": "integer",
            "description": "The page number for the data in the response",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "The page size for the data in the response",
            "format": "int32"
          },
          "totalCount": {
            "type": "integer",
            "description": "The total number of items in the data collection",
            "format": "int32",
            "nullable": true
          },
          "pageCount": {
            "type": "integer",
            "description": "The total number of pages in the data collection",
            "format": "int32",
            "nullable": true,
            "readOnly": true
          },
          "hasNextPage": {
            "type": "boolean",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EntityGetResponseCollectionItem"
            },
            "description": "The collection of items",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Holds response information for a collection of data"
      },
      "EntityValidationGetResponse": {
        "type": "object",
        "properties": {
          "entityValidationId": {
            "type": "integer",
            "description": "The unique ID for the entityValidation",
            "format": "int32",
            "example": 12
          },
          "entityName": {
            "type": "string",
            "description": "The name of the entity of the entityValidation",
            "nullable": true,
            "example": "Contact"
          },
          "fieldName": {
            "type": "string",
            "description": "The name of the entityField of the entityValidation",
            "nullable": true,
            "example": "DateOfBirth"
          },
          "operator": {
            "type": "string",
            "description": "The logical operator to use in the entityValidation",
            "nullable": true,
            "example": "Between"
          },
          "primaryValue": {
            "type": "string",
            "description": "The primary value to use within the entityValidation logic",
            "nullable": true,
            "example": "2020-01-01"
          },
          "secondaryValue": {
            "type": "string",
            "description": "The secondary value to use within the entityValidation logic",
            "nullable": true,
            "example": "2022-01-01"
          },
          "created": {
            "type": "string",
            "description": "The date the entityValidation was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-11-21T16:05:24.185Z"
          },
          "createdBy": {
            "type": "string",
            "description": "The user who created the entityValidation",
            "nullable": true,
            "example": "Steve"
          },
          "modified": {
            "type": "string",
            "description": "The date the entityValidation was last changed",
            "format": "date-time",
            "nullable": true,
            "example": "2022-11-21T16:05:24.185Z"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user who last changed the entityValidation",
            "nullable": true,
            "example": "John"
          }
        },
        "additionalProperties": false
      },
      "ErrorGetResponse": {
        "type": "object",
        "properties": {
          "errorId": {
            "type": "string",
            "description": "The Id of the error",
            "nullable": true
          },
          "logId": {
            "type": "integer",
            "description": "The corresponding Id of the error",
            "format": "int32",
            "nullable": true
          },
          "message": {
            "type": "string",
            "description": "The detail of the error",
            "nullable": true
          },
          "timeStamp": {
            "type": "string",
            "description": "The time the error occurred",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on an error log"
      },
      "EventAttendeeCostNestedGetResponse": {
        "type": "object",
        "properties": {
          "attendeeCostID": {
            "type": "string",
            "description": "The Id of the cost\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Must be a valid cost for the event</li></ul>",
            "nullable": true,
            "example": "1000112CST0000474"
          },
          "attendeeID": {
            "type": "string",
            "description": "The Id of the attendee\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Must exist as an attendee to an event</li></ul>",
            "nullable": true,
            "example": "1000112"
          },
          "bookingID": {
            "type": "string",
            "description": "The ID of the booking",
            "nullable": true,
            "example": "BKG012214"
          },
          "ref": {
            "type": "string",
            "description": "The Ref of the cost item",
            "nullable": true,
            "example": "ATT10109"
          },
          "refType": {
            "type": "string",
            "description": "The type of the cost item",
            "nullable": true,
            "example": "ATTENDEE"
          },
          "category": {
            "type": "string",
            "description": "The category of the cost item",
            "nullable": true,
            "example": "Attendee Ticket"
          },
          "costType": {
            "type": "string",
            "description": "The cost type",
            "nullable": true,
            "example": "Fees"
          },
          "costDescription": {
            "type": "string",
            "description": "The cost description",
            "nullable": true,
            "example": "Entry Fee"
          },
          "outstanding": {
            "type": "string",
            "description": "The amount outstanding against the cost item",
            "nullable": true,
            "example": "20.00"
          },
          "destinationCode": {
            "type": "string",
            "description": "The destination code against the cost item",
            "nullable": true,
            "example": "GENERAL"
          },
          "vatRate": {
            "type": "string",
            "description": "The VAT rate against the cost item",
            "nullable": true,
            "example": "Standard Rate"
          },
          "status": {
            "type": "string",
            "description": "The Status of the cost item",
            "nullable": true,
            "example": "Pending"
          },
          "originalValue": {
            "type": "string",
            "description": "The original value of the cost item",
            "nullable": true,
            "example": "20.00"
          },
          "totalPaid": {
            "type": "string",
            "description": "The total amount paid against the cost item",
            "nullable": true,
            "example": "10.00"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the Event Attendee Structures"
      },
      "EventAttendeeGetResponse": {
        "type": "object",
        "properties": {
          "bookingRef": {
            "type": "string",
            "description": "The unique reference of the Attendee\r\n<ul><li>This value cannot be empty</li></ul><ul><li>There is already an existing event attendee with this Booking Ref</li></ul><ul><li>Default is Sequence:. EventBookingRef</li></ul>",
            "nullable": true,
            "example": "1006489"
          },
          "bookingId": {
            "type": "string",
            "description": "The unique ID of the Booking\r\n<ul><li>This value cannot be empty</li></ul><ul><li>This value must exist as an existing event booking</li></ul>",
            "nullable": true,
            "example": "BKG010183"
          },
          "eventId": {
            "type": "string",
            "description": "The Id of the event",
            "nullable": true,
            "example": "EVT10052"
          },
          "bookingStatus": {
            "type": "string",
            "description": "Status of the associated booking \r\n <ul><li>This value cannot be empty</li></ul><ul><li>Must be in the EventAttendeeStatus Lookup</li></ul><ul><li>Default is 'Booked'</li></ul>",
            "nullable": true,
            "example": "Booked"
          },
          "parentBookingRef": {
            "type": "string",
            "description": "Reference of the parent booking",
            "nullable": true,
            "example": "BKG010183"
          },
          "externalRef": {
            "type": "string",
            "description": "External reference",
            "nullable": true,
            "example": "Ext19082"
          },
          "attendeeId": {
            "type": "string",
            "description": "The unique Id for the attendee type",
            "nullable": true,
            "example": "ATT12EVT10052"
          },
          "attendeeType": {
            "type": "string",
            "description": "The type of the attendee\r\n <ul><li>This value cannot be empty</li></ul><ul><li>This value must exist as an existing attendee type</li></ul><ul><li>Total number of attendees exceeds the remaining places for the attendee type</li></ul>",
            "nullable": true,
            "example": "Member"
          },
          "subType": {
            "type": "string",
            "description": "The sub type of the attendee",
            "nullable": true,
            "example": "Bronze"
          },
          "numberOfPlaces": {
            "type": "integer",
            "description": "The number of places which will be booked under the ticket type",
            "format": "int32",
            "nullable": true,
            "example": 2
          },
          "purcheaseOrderNo": {
            "type": "string",
            "description": "ID of the associated Purchase order",
            "nullable": true,
            "example": "PO92834"
          },
          "serialNumber": {
            "type": "string",
            "description": "The serial number\r\n<ul><li>This value must exist as an existing contact</li></ul><ul><li>This contact must not be the same as main attendee against the booking</li></ul><ul><li>This contact has already been added as an attendee for this event</li></ul>",
            "nullable": true,
            "example": "1000840"
          },
          "confidential": {
            "type": "boolean",
            "description": "Specifies whether the attendee wishes to remain anonymous\r\n<ul><li>Default is False</li></ul>",
            "nullable": true,
            "example": false
          },
          "fullName": {
            "type": "string",
            "description": "Full name of the attendee",
            "nullable": true,
            "example": "Mr David Pew"
          },
          "title": {
            "type": "string",
            "description": "Title of the attendee",
            "nullable": true,
            "example": "Mr"
          },
          "firstName": {
            "type": "string",
            "description": "First Name of the attendee",
            "nullable": true,
            "example": "David"
          },
          "keyname": {
            "type": "string",
            "description": "Last name of the attendee",
            "nullable": true,
            "example": "Pew"
          },
          "age": {
            "type": "integer",
            "description": "The age of the attendee when attending",
            "format": "int32",
            "nullable": true,
            "example": 69
          },
          "badgeName": {
            "type": "string",
            "description": "Name to be displayed on the badge\r\n<ul><li>Default is Guest of {Booker Name}</li></ul>",
            "nullable": true,
            "example": "Mr David Pew"
          },
          "dietaryRequirements": {
            "type": "string",
            "description": "Dietary requirements associated to this attendee\r\n<ul><li>This value must exist in the 'EventDietaryRequirements' lookup</li></ul>",
            "nullable": true,
            "example": "Vegetarian"
          },
          "specialNeeds": {
            "type": "string",
            "description": "Special needs associated to this attendee",
            "nullable": true,
            "example": "None"
          },
          "hasSeatingPreference": {
            "type": "boolean",
            "description": "Specifies whether the attendee has a seating preference\r\n<ul><li>Default is False</li></ul>",
            "nullable": true,
            "example": false
          },
          "seatingPreferenceDetails": {
            "type": "string",
            "description": "Details of the seating preference",
            "nullable": true,
            "example": "Wheelchair user - has to be near aisle"
          },
          "attendanceStatus": {
            "type": "string",
            "description": "Attendance status of the associated attendee\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Default is 'Attending'</li></ul>",
            "nullable": true,
            "example": "Attending"
          },
          "attended": {
            "type": "string",
            "description": "States whether the attendee attended the event or not\r\n<ul><li>This value must be one of the following: 'Yes', 'No', 'Pending'</li></ul><ul><li>Default is 'Pending'</li></ul>",
            "nullable": true,
            "example": "Pending"
          },
          "confirmationDate": {
            "type": "string",
            "description": "Date of the attendance confirmation",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "cancellationDate": {
            "type": "string",
            "description": "Date of cancellation",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "notes": {
            "type": "string",
            "description": "The booking Notes",
            "nullable": true,
            "example": "Due to arrive a little late"
          },
          "created": {
            "type": "string",
            "description": "The date the record was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "type": "string",
            "description": "The user who created the record\r\n<ul><li>Default is API</li></ul>",
            "nullable": true,
            "example": "admit"
          },
          "modified": {
            "type": "string",
            "description": "The date the record was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user who last modified the record\r\n<ul><li>Default is API</li></ul>",
            "nullable": true,
            "example": "admit"
          },
          "accommodation": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventAttendeeStructureNestedGetResponse"
            },
            "description": "The Accommodation for the main attendee",
            "nullable": true
          },
          "activities": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventAttendeeStructureNestedGetResponse"
            },
            "description": "The Activities for the main attendee",
            "nullable": true
          },
          "seatingPlans": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventAttendeeStructureNestedGetResponse"
            },
            "description": "The Seating Plans for the main attendee",
            "nullable": true
          },
          "sellingSpace": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventAttendeeStructureNestedGetResponse"
            },
            "description": "The Selling Space for the main attendee",
            "nullable": true
          },
          "seminars": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventAttendeeStructureNestedGetResponse"
            },
            "description": "The Seminars for the main attendee",
            "nullable": true
          },
          "trainingCourses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventAttendeeStructureNestedGetResponse"
            },
            "description": "The workshops for the main attendee",
            "nullable": true
          },
          "workshops": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventAttendeeStructureNestedGetResponse"
            },
            "description": "The workshops for the main attendee",
            "nullable": true
          },
          "attendeeProfiles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventAttendeeProfileGetResponse"
            },
            "description": "The profiles against a booking",
            "nullable": true
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "The Attendee custom fields",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the Event Attendee"
      },
      "EventAttendeeGetResponseCollectionItem": {
        "type": "object",
        "properties": {
          "bookingRef": {
            "type": "string",
            "description": "The unique reference of the Attendee\r\n<ul><li>This value cannot be empty</li></ul><ul><li>There is already an existing event attendee with this Booking Ref</li></ul><ul><li>Default is Sequence:. EventBookingRef</li></ul>",
            "nullable": true,
            "example": "1006489"
          },
          "bookingId": {
            "type": "string",
            "description": "The unique ID of the Booking\r\n<ul><li>This value cannot be empty</li></ul><ul><li>This value must exist as an existing event booking</li></ul>",
            "nullable": true,
            "example": "BKG010183"
          },
          "eventId": {
            "type": "string",
            "description": "The Id of the event",
            "nullable": true,
            "example": "EVT10052"
          },
          "bookingStatus": {
            "type": "string",
            "description": "Status of the associated booking \r\n <ul><li>This value cannot be empty</li></ul><ul><li>Must be in the EventAttendeeStatus Lookup</li></ul><ul><li>Default is 'Booked'</li></ul>",
            "nullable": true,
            "example": "Booked"
          },
          "parentBookingRef": {
            "type": "string",
            "description": "Reference of the parent booking",
            "nullable": true,
            "example": "BKG010183"
          },
          "externalRef": {
            "type": "string",
            "description": "External reference",
            "nullable": true,
            "example": "Ext19082"
          },
          "attendeeId": {
            "type": "string",
            "description": "The unique Id for the attendee type",
            "nullable": true,
            "example": "ATT12EVT10052"
          },
          "attendeeType": {
            "type": "string",
            "description": "The type of the attendee\r\n <ul><li>This value cannot be empty</li></ul><ul><li>This value must exist as an existing attendee type</li></ul><ul><li>Total number of attendees exceeds the remaining places for the attendee type</li></ul>",
            "nullable": true,
            "example": "Member"
          },
          "subType": {
            "type": "string",
            "description": "The sub type of the attendee",
            "nullable": true,
            "example": "Bronze"
          },
          "numberOfPlaces": {
            "type": "integer",
            "description": "The number of places which will be booked under the ticket type",
            "format": "int32",
            "nullable": true,
            "example": 2
          },
          "purcheaseOrderNo": {
            "type": "string",
            "description": "ID of the associated Purchase order",
            "nullable": true,
            "example": "PO92834"
          },
          "serialNumber": {
            "type": "string",
            "description": "The serial number\r\n<ul><li>This value must exist as an existing contact</li></ul><ul><li>This contact must not be the same as main attendee against the booking</li></ul><ul><li>This contact has already been added as an attendee for this event</li></ul>",
            "nullable": true,
            "example": "1000840"
          },
          "confidential": {
            "type": "boolean",
            "description": "Specifies whether the attendee wishes to remain anonymous\r\n<ul><li>Default is False</li></ul>",
            "nullable": true,
            "example": false
          },
          "fullName": {
            "type": "string",
            "description": "Full name of the attendee",
            "nullable": true,
            "example": "Mr David Pew"
          },
          "title": {
            "type": "string",
            "description": "Title of the attendee",
            "nullable": true,
            "example": "Mr"
          },
          "firstName": {
            "type": "string",
            "description": "First Name of the attendee",
            "nullable": true,
            "example": "David"
          },
          "keyname": {
            "type": "string",
            "description": "Last name of the attendee",
            "nullable": true,
            "example": "Pew"
          },
          "age": {
            "type": "integer",
            "description": "The age of the attendee when attending",
            "format": "int32",
            "nullable": true,
            "example": 69
          },
          "badgeName": {
            "type": "string",
            "description": "Name to be displayed on the badge\r\n<ul><li>Default is Guest of {Booker Name}</li></ul>",
            "nullable": true,
            "example": "Mr David Pew"
          },
          "dietaryRequirements": {
            "type": "string",
            "description": "Dietary requirements associated to this attendee\r\n<ul><li>This value must exist in the 'EventDietaryRequirements' lookup</li></ul>",
            "nullable": true,
            "example": "Vegetarian"
          },
          "specialNeeds": {
            "type": "string",
            "description": "Special needs associated to this attendee",
            "nullable": true,
            "example": "None"
          },
          "hasSeatingPreference": {
            "type": "boolean",
            "description": "Specifies whether the attendee has a seating preference\r\n<ul><li>Default is False</li></ul>",
            "nullable": true,
            "example": false
          },
          "seatingPreferenceDetails": {
            "type": "string",
            "description": "Details of the seating preference",
            "nullable": true,
            "example": "Wheelchair user - has to be near aisle"
          },
          "attendanceStatus": {
            "type": "string",
            "description": "Attendance status of the associated attendee\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Default is 'Attending'</li></ul>",
            "nullable": true,
            "example": "Attending"
          },
          "attended": {
            "type": "string",
            "description": "States whether the attendee attended the event or not\r\n<ul><li>This value must be one of the following: 'Yes', 'No', 'Pending'</li></ul><ul><li>Default is 'Pending'</li></ul>",
            "nullable": true,
            "example": "Pending"
          },
          "confirmationDate": {
            "type": "string",
            "description": "Date of the attendance confirmation",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "cancellationDate": {
            "type": "string",
            "description": "Date of cancellation",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "notes": {
            "type": "string",
            "description": "The booking Notes",
            "nullable": true,
            "example": "Due to arrive a little late"
          },
          "created": {
            "type": "string",
            "description": "The date the record was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "type": "string",
            "description": "The user who created the record\r\n<ul><li>Default is API</li></ul>",
            "nullable": true,
            "example": "admit"
          },
          "modified": {
            "type": "string",
            "description": "The date the record was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user who last modified the record\r\n<ul><li>Default is API</li></ul>",
            "nullable": true,
            "example": "admit"
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "The Attendee custom fields",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the Event Attendee"
      },
      "EventAttendeeGetResponseCollectionResponse": {
        "type": "object",
        "properties": {
          "pageNumber": {
            "type": "integer",
            "description": "The page number for the data in the response",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "The page size for the data in the response",
            "format": "int32"
          },
          "totalCount": {
            "type": "integer",
            "description": "The total number of items in the data collection",
            "format": "int32",
            "nullable": true
          },
          "pageCount": {
            "type": "integer",
            "description": "The total number of pages in the data collection",
            "format": "int32",
            "nullable": true,
            "readOnly": true
          },
          "hasNextPage": {
            "type": "boolean",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventAttendeeGetResponseCollectionItem"
            },
            "description": "The collection of items",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Holds response information for a collection of data"
      },
      "EventAttendeePostRequest": {
        "type": "object",
        "properties": {
          "bookingRef": {
            "maxLength": 50,
            "type": "string",
            "description": "The unique reference of the Attendee\r\n<ul><li>This value cannot be empty</li></ul><ul><li>There is already an existing event attendee with this Booking Ref</li></ul><ul><li>Default is Sequence:. EventBookingRef</li></ul>",
            "nullable": true,
            "example": "1006489"
          },
          "bookingId": {
            "maxLength": 50,
            "type": "string",
            "description": "The unique ID of the Booking\r\n<ul><li>This value cannot be empty</li></ul><ul><li>This value must exist as an existing event booking</li></ul>",
            "nullable": true,
            "example": "BKG010183"
          },
          "bookingStatus": {
            "maxLength": 50,
            "type": "string",
            "description": "Status of the associated booking \r\n <ul><li>This value cannot be empty</li></ul><ul><li>Must be in the EventAttendeeStatus Lookup</li></ul><ul><li>Default is 'Booked'</li></ul>",
            "nullable": true,
            "example": "Booked"
          },
          "externalRef": {
            "maxLength": 50,
            "type": "string",
            "description": "External reference",
            "nullable": true,
            "example": "Ext19082"
          },
          "attendeeType": {
            "maxLength": 50,
            "type": "string",
            "description": "The type of the attendee\r\n <ul><li>This value cannot be empty</li></ul><ul><li>This value must exist as an existing attendee type</li></ul><ul><li>Total number of attendees exceeds the remaining places for the attendee type</li></ul>",
            "nullable": true,
            "example": "Member"
          },
          "subType": {
            "maxLength": 50,
            "type": "string",
            "description": "The sub type of the attendee",
            "nullable": true,
            "example": "Bronze"
          },
          "purcheaseOrderNo": {
            "maxLength": 20,
            "type": "string",
            "description": "ID of the associated Purchase order",
            "nullable": true,
            "example": "PO92834"
          },
          "serialNumber": {
            "maxLength": 50,
            "type": "string",
            "description": "The serial number\r\n<ul><li>This value must exist as an existing contact</li></ul><ul><li>This contact must not be the same as main attendee against the booking</li></ul><ul><li>This contact has already been added as an attendee for this event</li></ul>",
            "nullable": true,
            "example": "1000840"
          },
          "confidential": {
            "type": "boolean",
            "description": "Specifies whether the attendee wishes to remain anonymous\r\n<ul><li>Default is False</li></ul>",
            "nullable": true,
            "example": false
          },
          "title": {
            "maxLength": 50,
            "type": "string",
            "description": "Title of the attendee",
            "nullable": true,
            "example": "Mr"
          },
          "firstName": {
            "maxLength": 50,
            "type": "string",
            "description": "First Name of the attendee",
            "nullable": true,
            "example": "David"
          },
          "keyname": {
            "maxLength": 50,
            "type": "string",
            "description": "Last name of the attendee",
            "nullable": true,
            "example": "Pew"
          },
          "dateOfBirth": {
            "type": "string",
            "description": "Date on which the attendee has been birthed",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "age": {
            "type": "integer",
            "description": "The age of the attendee when attending",
            "format": "int32",
            "nullable": true,
            "example": 69
          },
          "badgeName": {
            "maxLength": 50,
            "type": "string",
            "description": "Name to be displayed on the badge\r\n<ul><li>Default is Guest of {Booker Name}</li></ul>",
            "nullable": true,
            "example": "Mr David Pew"
          },
          "dietaryRequirements": {
            "maxLength": 255,
            "type": "string",
            "description": "Dietary requirements associated to this attendee\r\n<ul><li>This value must exist in the 'EventDietaryRequirements' lookup</li></ul>",
            "nullable": true,
            "example": "Vegetarian"
          },
          "specialNeeds": {
            "maxLength": 255,
            "type": "string",
            "description": "Special needs associated to this attendee",
            "nullable": true,
            "example": "None"
          },
          "hasSeatingPreference": {
            "type": "boolean",
            "description": "Specifies whether the attendee has a seating preference\r\n<ul><li>Default is False</li></ul>",
            "nullable": true,
            "example": false
          },
          "seatingPreferenceDetails": {
            "maxLength": 255,
            "type": "string",
            "description": "Details of the seating preference",
            "nullable": true,
            "example": "Wheelchair user - has to be near aisle"
          },
          "attendanceStatus": {
            "maxLength": 255,
            "type": "string",
            "description": "Attendance status of the associated attendee\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Default is 'Attending'</li></ul>",
            "nullable": true,
            "example": "Attending"
          },
          "attended": {
            "maxLength": 50,
            "type": "string",
            "description": "States whether the attendee attended the event or not\r\n<ul><li>This value must be one of the following: 'Yes', 'No', 'Pending'</li></ul><ul><li>Default is 'Pending'</li></ul>",
            "nullable": true,
            "example": "Pending"
          },
          "confirmationDate": {
            "type": "string",
            "description": "Date of the attendance confirmation",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "cancellationDate": {
            "type": "string",
            "description": "Date of cancellation",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "notes": {
            "maxLength": 500,
            "type": "string",
            "description": "The booking Notes",
            "nullable": true,
            "example": "Due to arrive a little late"
          },
          "created": {
            "type": "string",
            "description": "The date the record was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user who created the record\r\n<ul><li>Default is API</li></ul>",
            "nullable": true,
            "example": "admit"
          },
          "modified": {
            "type": "string",
            "description": "The date the record was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user who last modified the record\r\n<ul><li>Default is API</li></ul>",
            "nullable": true,
            "example": "admit"
          },
          "structures": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventAttendeeStructurePostRequest"
            },
            "description": "The additional structures for the main attendee",
            "nullable": true
          },
          "attendeeProfiles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventAttendeeProfilePostRequest"
            },
            "description": "The attendee's profiles",
            "nullable": true
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomFieldPostRequest"
            },
            "description": "Custom field data",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the Event Attendee"
      },
      "EventAttendeeProfileGetResponse": {
        "type": "object",
        "properties": {
          "profileId": {
            "type": "string",
            "description": "The ProfileId to filter on",
            "nullable": true,
            "example": "12251"
          },
          "bookingId": {
            "type": "string",
            "description": "The BookingId the profile links to\r\n<ul><li>This value must exist as an existing BookingId</li></ul><ul><li>For new records this must not be empty if BookingProfile is true</li></ul><ul><li>For new records this must not be empty if BookingRef is empty</li></ul>",
            "nullable": true,
            "example": "BKG010188"
          },
          "bookingRef": {
            "type": "string",
            "description": "The BookingRef the profile links to\r\n<ul><li>This value must exist as a BookingRef against an existing event attendee</li></ul><ul><li>This value must exist as an existing attendee for the given booking</li></ul><ul><li>For new records this must not be empty if BookingProfile is false</li></ul><ul><li>For new records this must not be empty if BookingId is empty</li></ul>",
            "nullable": true,
            "example": "1006489"
          },
          "category": {
            "type": "string",
            "description": "The Category of the profile\r\n<ul><li>This value cannot be empty</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "name": {
            "type": "string",
            "description": "The Name of the profile\r\n<ul><li>This value cannot be empty</li></ul>",
            "nullable": true,
            "example": "Event Theme"
          },
          "value": {
            "type": "string",
            "description": "The Value of the profile",
            "nullable": true,
            "example": "Education"
          },
          "priority": {
            "type": "string",
            "description": "The Priority of the profile\r\n<ul><li>Must be an existing sublist priority</li></ul><ul><li>Default is 'Normal'</li></ul>",
            "nullable": true,
            "example": "Normal"
          },
          "effectiveFrom": {
            "type": "string",
            "description": "When the profile is Effective From",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "effectiveTo": {
            "type": "string",
            "description": "When the profile is Effective To",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "notes": {
            "type": "string",
            "description": "The Notes of the profile",
            "nullable": true,
            "example": "Due to arrive a little late"
          },
          "bookingProfile": {
            "type": "boolean",
            "description": "A flag to indicate if the profile is a booking profile\r\n<ul><li>If set to true then the BookingId must not be empty</li></ul><ul><li>Default is false, unless BookingRef is empty and BookingId is not empty</li></ul>",
            "nullable": true,
            "example": false
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the Attendee and Booking Profiles"
      },
      "EventAttendeeProfilePostRequest": {
        "type": "object",
        "properties": {
          "bookingId": {
            "maxLength": 50,
            "type": "string",
            "description": "The BookingId the profile links to\r\n<ul><li>This value must exist as an existing BookingId</li></ul><ul><li>For new records this must not be empty if BookingProfile is true</li></ul><ul><li>For new records this must not be empty if BookingRef is empty</li></ul>",
            "nullable": true,
            "example": "BKG010188"
          },
          "bookingRef": {
            "maxLength": 50,
            "type": "string",
            "description": "The BookingRef the profile links to\r\n<ul><li>This value must exist as a BookingRef against an existing event attendee</li></ul><ul><li>This value must exist as an existing attendee for the given booking</li></ul><ul><li>For new records this must not be empty if BookingProfile is false</li></ul><ul><li>For new records this must not be empty if BookingId is empty</li></ul>",
            "nullable": true,
            "example": "1006489"
          },
          "category": {
            "maxLength": 200,
            "type": "string",
            "description": "The Category of the profile\r\n<ul><li>This value cannot be empty</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "name": {
            "maxLength": 200,
            "type": "string",
            "description": "The Name of the profile\r\n<ul><li>This value cannot be empty</li></ul>",
            "nullable": true,
            "example": "Event Theme"
          },
          "value": {
            "maxLength": 200,
            "type": "string",
            "description": "The Value of the profile",
            "nullable": true,
            "example": "Education"
          },
          "priority": {
            "maxLength": 50,
            "type": "string",
            "description": "The Priority of the profile\r\n<ul><li>Must be an existing sublist priority</li></ul><ul><li>Default is 'Normal'</li></ul>",
            "nullable": true,
            "example": "Normal"
          },
          "effectiveFrom": {
            "type": "string",
            "description": "When the profile is Effective From",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "effectiveTo": {
            "type": "string",
            "description": "When the profile is Effective To",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "notes": {
            "maxLength": 2000,
            "type": "string",
            "description": "The Notes of the profile",
            "nullable": true,
            "example": "Due to arrive a little late"
          },
          "bookingProfile": {
            "type": "boolean",
            "description": "A flag to indicate if the profile is a booking profile\r\n<ul><li>If set to true then the BookingId must not be empty</li></ul><ul><li>Default is false, unless BookingRef is empty and BookingId is not empty</li></ul>",
            "nullable": true,
            "example": false
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the Attendee or Booking Profile"
      },
      "EventAttendeePutRequest": {
        "type": "object",
        "properties": {
          "bookingStatus": {
            "maxLength": 50,
            "type": "string",
            "description": "Status of the associated booking \r\n <ul><li>This value cannot be empty</li></ul><ul><li>Must be in the EventAttendeeStatus Lookup</li></ul><ul><li>Cannot cancel main attendee</li></ul><ul><li>Cannot restore attendee for cancelled booking</li></ul>",
            "nullable": true,
            "example": "Booked"
          },
          "serialNumber": {
            "maxLength": 50,
            "type": "string",
            "description": "The serial number\r\n<ul><li>This value must exist as an existing contact</li></ul><ul><li>Cannot change the SerialNumber of the Booker</li></ul><ul><li>Must not already be an attendee for the event</li></ul>",
            "nullable": true,
            "example": "1000840"
          },
          "externalRef": {
            "maxLength": 50,
            "type": "string",
            "description": "External reference",
            "nullable": true,
            "example": "Ext19082"
          },
          "title": {
            "maxLength": 50,
            "type": "string",
            "description": "Title of the attendee",
            "nullable": true,
            "example": "Mr"
          },
          "firstName": {
            "maxLength": 50,
            "type": "string",
            "description": "First Name of the attendee",
            "nullable": true,
            "example": "David"
          },
          "keyname": {
            "maxLength": 50,
            "type": "string",
            "description": "Last name of the attendee",
            "nullable": true,
            "example": "Pew"
          },
          "age": {
            "type": "integer",
            "description": "The age of the attendee when attending",
            "format": "int32",
            "nullable": true,
            "example": 69
          },
          "dateOfBirth": {
            "type": "string",
            "description": "Date on which the attendee has been birthed",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "badgeName": {
            "maxLength": 50,
            "type": "string",
            "description": "Name to be displayed on the badge\r\n<ul><li>This value cannot be empty</li></ul>",
            "nullable": true,
            "example": "Mr David Pew"
          },
          "dietaryRequirements": {
            "maxLength": 255,
            "type": "string",
            "description": "Dietary requirements associated to this attendee\r\n<ul><li>This value must exist in the 'EventDietaryRequirements' lookup</li></ul>",
            "nullable": true,
            "example": "Vegetarian"
          },
          "specialNeeds": {
            "maxLength": 255,
            "type": "string",
            "description": "Special needs associated to this attendee",
            "nullable": true,
            "example": "None"
          },
          "hasSeatingPreference": {
            "type": "boolean",
            "description": "Specifies whether the attendee has a seating preference",
            "nullable": true,
            "example": false
          },
          "seatingPreferenceDetails": {
            "maxLength": 255,
            "type": "string",
            "description": "Details of the seating preference",
            "nullable": true,
            "example": "Wheelchair user - has to be near aisle"
          },
          "attendanceStatus": {
            "maxLength": 255,
            "type": "string",
            "description": "Attendance status of the associated attendee\r\n<ul><li>This value cannot be empty</li></ul>",
            "nullable": true,
            "example": "Attending"
          },
          "attended": {
            "maxLength": 50,
            "type": "string",
            "description": "States whether the attendee attended the event or not\r\n<ul><li>This value must be one of the following: 'Yes', 'No', 'Pending'</li></ul>",
            "nullable": true,
            "example": "Pending"
          },
          "confirmationDate": {
            "type": "string",
            "description": "Date of the attendance confirmation",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "cancellationDate": {
            "type": "string",
            "description": "Date of cancellation",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "notes": {
            "maxLength": 500,
            "type": "string",
            "description": "The booking Notes",
            "nullable": true,
            "example": "Due to arrive a little late"
          },
          "modified": {
            "type": "string",
            "description": "The date the record was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user who last modified the record\r\n<ul><li>Default is API</li></ul>",
            "nullable": true,
            "example": "admit"
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomFieldPostRequest"
            },
            "description": "Custom field data",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information for posting an event attendee"
      },
      "EventAttendeeStructureGetResponse": {
        "type": "object",
        "properties": {
          "structureBookingRef": {
            "type": "string",
            "description": "The Id of the structure for the attendee",
            "nullable": true,
            "example": "AST1000016BBKG10056"
          },
          "bookingRef": {
            "type": "string",
            "description": "The Id of the attendee\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Must exist as an attendee to an event</li></ul>",
            "nullable": true,
            "example": "1006489"
          },
          "eventId": {
            "type": "string",
            "description": "The Id of the event",
            "nullable": true,
            "example": "EVT10052"
          },
          "structureId": {
            "type": "string",
            "description": "The Id of the structure\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Must be a valid structure for the event</li></ul>",
            "nullable": true,
            "example": "STR0007"
          },
          "structureType": {
            "type": "string",
            "description": "The type of the structure",
            "nullable": true,
            "example": "Workshop"
          },
          "description": {
            "type": "string",
            "description": "The description of the structure",
            "nullable": true,
            "example": "Clay sculpting"
          },
          "startDate": {
            "type": "string",
            "description": "The start date of the structure",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "startTime": {
            "type": "string",
            "description": "The start time of the structure",
            "nullable": true,
            "example": "12:22"
          },
          "endDate": {
            "type": "string",
            "description": "The end date of the structure",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "endTime": {
            "type": "string",
            "description": "The end time of the structure",
            "nullable": true,
            "example": "15:00"
          },
          "externalRef": {
            "type": "string",
            "description": "The external reference of the structure",
            "nullable": true,
            "example": "M102110388-H1"
          },
          "externalRefType": {
            "type": "string",
            "description": "The external reference type of the structure",
            "nullable": true,
            "example": "MembershipDetail"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the Event Attendee Structures"
      },
      "EventAttendeeStructureNestedGetResponse": {
        "type": "object",
        "properties": {
          "structureBookingRef": {
            "type": "string",
            "description": "The Id of the structure for the attendee",
            "nullable": true,
            "example": "AST1000016BBKG10056"
          },
          "bookingRef": {
            "type": "string",
            "description": "The Id of the attendee\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Must exist as an attendee to an event</li></ul>",
            "nullable": true,
            "example": "1006489"
          },
          "eventId": {
            "type": "string",
            "description": "The Id of the event",
            "nullable": true,
            "example": "EVT10052"
          },
          "structureId": {
            "type": "string",
            "description": "The Id of the structure\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Must be a valid structure for the event</li></ul>",
            "nullable": true,
            "example": "STR0007"
          },
          "description": {
            "type": "string",
            "description": "The description of the structure",
            "nullable": true,
            "example": "Clay sculpting"
          },
          "startDate": {
            "type": "string",
            "description": "The start date of the structure",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "startTime": {
            "type": "string",
            "description": "The start time of the structure",
            "nullable": true,
            "example": "12:22"
          },
          "endDate": {
            "type": "string",
            "description": "The end date of the structure",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "endTime": {
            "type": "string",
            "description": "The end time of the structure",
            "nullable": true,
            "example": "15:00"
          },
          "externalRef": {
            "type": "string",
            "description": "The external reference of the structure",
            "nullable": true,
            "example": "M102110388-H1"
          },
          "externalRefType": {
            "type": "string",
            "description": "The external reference type of the structure",
            "nullable": true,
            "example": "MembershipDetail"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the Event Attendee Structures"
      },
      "EventAttendeeStructurePostRequest": {
        "type": "object",
        "properties": {
          "bookingRef": {
            "maxLength": 50,
            "type": "string",
            "description": "The Id of the attendee\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Must exist as an attendee to an event</li></ul>",
            "nullable": true,
            "example": "1006489"
          },
          "structureId": {
            "maxLength": 50,
            "type": "string",
            "description": "The Id of the structure\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Must be a valid structure for the event</li></ul>",
            "nullable": true,
            "example": "STR0007"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the Event Attendee Structure"
      },
      "EventAttendeeTypeCostGetResponse": {
        "type": "object",
        "properties": {
          "costId": {
            "type": "string",
            "description": "The Id of the cost\r\n<ul><li>This value cannot be empty</li></ul><ul><li>This value must not exist as an existing event CostID</li></ul><ul><li>This value must be unique in the import</li></ul><ul><li>Default is Sequence: . EventCostID</li></ul>",
            "nullable": true
          },
          "attendeeTypeId": {
            "type": "string",
            "description": "The Id of the attendee type",
            "nullable": true,
            "example": "ATD0001"
          },
          "attendeeType": {
            "type": "string",
            "description": "The attendee type",
            "nullable": true,
            "example": "Adult"
          },
          "type": {
            "type": "string",
            "description": "The cost type\r\n<ul><li>This value cannot be empty</li></ul><ul><li>This value must exist in the 'EventCostType' lookup</li></ul><ul><li>Must not already be an existing 'Donation' or 'Sponsorship' for the Ref</li></ul>",
            "nullable": true,
            "example": "Fees"
          },
          "description": {
            "type": "string",
            "description": "The description of the cost\r\n<ul><li>This value cannot be empty</li></ul>",
            "nullable": true,
            "example": "Ticket"
          },
          "value": {
            "type": "number",
            "description": "The value of the cost\r\n<ul><li>This value cannot be empty</li></ul><ul><li>This value has to be equal to or larger than 0.00</li></ul>",
            "format": "double",
            "nullable": true,
            "example": 18.50
          },
          "vatRate": {
            "type": "string",
            "description": "The VAT rate for the cost\r\n<ul><li>This value cannot be empty</li></ul><ul><li>This value must exist in the 'VATRate' lookup</li></ul>",
            "nullable": true,
            "example": "Standard Rate"
          },
          "destinationCode": {
            "type": "string",
            "description": "The Destination Code for the cost\r\n<ul><li>This value cannot be empty</li></ul><ul><li>This value must exist as an existing Destination code</li></ul>",
            "nullable": true,
            "example": "AFRICA01"
          },
          "eventId": {
            "type": "string",
            "description": "The event Id that the cost is related to",
            "nullable": true,
            "example": "EVT001"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the Event costs for each attendee type"
      },
      "EventAttendeeTypeGetResponse": {
        "type": "object",
        "properties": {
          "attendeeTypeId": {
            "type": "string",
            "description": "The Id of the attendee type\r\n<ul><li>This value cannot be empty</li></ul><ul><li>This value must not exist as an existing event EventAttendeeTypeID</li></ul><ul><li>This value must be unique in the import</li></ul><ul><li>Default is Sequence: EventAttendeeTypeID</li></ul>",
            "nullable": true,
            "example": "ATD0001"
          },
          "eventId": {
            "type": "string",
            "description": "The Id of the event\r\n<ul><li>This value cannot be empty</li></ul><ul><li>This value must exist as an existing event</li></ul>",
            "nullable": true,
            "example": "EVT001"
          },
          "attendeeType": {
            "type": "string",
            "description": "The type of attendee\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Must exist in the 'EventAttendeeType' lookup</li></ul><ul><li>Must not already exist as an attendee type for the event</li></ul>",
            "nullable": true,
            "example": "Adult"
          },
          "maxAllowed": {
            "type": "integer",
            "description": "The maximum capacity for the attendee type\r\n<ul><li>This value must be greater than or equal to 0</li></ul><ul><li>Must not allow more total places than the event capacity</li></ul>",
            "format": "int32",
            "nullable": true,
            "example": 100
          },
          "allocated": {
            "type": "integer",
            "description": "The number of this attendee type already allocated",
            "format": "int32",
            "nullable": true,
            "example": 40
          },
          "remaining": {
            "type": "integer",
            "description": "The number of this attendee type remaining",
            "format": "int32",
            "nullable": true,
            "example": 60
          },
          "webName": {
            "type": "string",
            "description": "The name of the attendee type of the web",
            "nullable": true,
            "example": "Adult"
          },
          "webAvailableStart": {
            "type": "string",
            "description": "The date you can book from on the web",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "webAvailableEnd": {
            "type": "string",
            "description": "The date you can book until on the web",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "placesPerTicket": {
            "type": "integer",
            "description": "The number of attendees allocated per ticket\r\n<ul><li>This value must be greater than 0</li></ul>",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "memberOnly": {
            "type": "boolean",
            "description": "Whether the attendee type is for members only",
            "nullable": true,
            "example": false
          },
          "costs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventAttendeeTypeCostGetResponse"
            },
            "description": "Costs for this attendee",
            "nullable": true
          },
          "externalRef": {
            "type": "string",
            "description": "External ref of the event attendee type",
            "nullable": true,
            "example": "EXT12345"
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "Custom field data",
            "nullable": true
          },
          "externalRefType": {
            "type": "string",
            "description": "The type of the external ref",
            "nullable": true,
            "example": "Eventbride"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the Event attendee types to get"
      },
      "EventAttendeeTypeGetResponseCollectionItem": {
        "type": "object",
        "properties": {
          "attendeeTypeId": {
            "type": "string",
            "description": "The Id of the attendee type\r\n<ul><li>This value cannot be empty</li></ul><ul><li>This value must not exist as an existing event EventAttendeeTypeID</li></ul><ul><li>This value must be unique in the import</li></ul><ul><li>Default is Sequence: EventAttendeeTypeID</li></ul>",
            "nullable": true,
            "example": "ATD0001"
          },
          "eventId": {
            "type": "string",
            "description": "The Id of the event\r\n<ul><li>This value cannot be empty</li></ul><ul><li>This value must exist as an existing event</li></ul>",
            "nullable": true,
            "example": "EVT001"
          },
          "attendeeType": {
            "type": "string",
            "description": "The type of attendee\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Must exist in the 'EventAttendeeType' lookup</li></ul><ul><li>Must not already exist as an attendee type for the event</li></ul>",
            "nullable": true,
            "example": "Adult"
          },
          "maxAllowed": {
            "type": "integer",
            "description": "The maximum capacity for the attendee type\r\n<ul><li>This value must be greater than or equal to 0</li></ul><ul><li>Must not allow more total places than the event capacity</li></ul>",
            "format": "int32",
            "nullable": true,
            "example": 100
          },
          "allocated": {
            "type": "integer",
            "description": "The number of this attendee type already allocated",
            "format": "int32",
            "nullable": true,
            "example": 40
          },
          "remaining": {
            "type": "integer",
            "description": "The number of this attendee type remaining",
            "format": "int32",
            "nullable": true,
            "example": 60
          },
          "webName": {
            "type": "string",
            "description": "The name of the attendee type of the web",
            "nullable": true,
            "example": "Adult"
          },
          "webAvailableStart": {
            "type": "string",
            "description": "The date you can book from on the web",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "webAvailableEnd": {
            "type": "string",
            "description": "The date you can book until on the web",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "placesPerTicket": {
            "type": "integer",
            "description": "The number of attendees allocated per ticket\r\n<ul><li>This value must be greater than 0</li></ul>",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "memberOnly": {
            "type": "boolean",
            "description": "Whether the attendee type is for members only",
            "nullable": true,
            "example": false
          },
          "externalRef": {
            "type": "string",
            "description": "External ref of the event attendee type",
            "nullable": true,
            "example": "EXT12345"
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "Custom field data",
            "nullable": true
          },
          "externalRefType": {
            "type": "string",
            "description": "The type of the external ref",
            "nullable": true,
            "example": "Eventbride"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the Event attendee types to get"
      },
      "EventAttendeeTypeGetResponseCollectionResponse": {
        "type": "object",
        "properties": {
          "pageNumber": {
            "type": "integer",
            "description": "The page number for the data in the response",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "The page size for the data in the response",
            "format": "int32"
          },
          "totalCount": {
            "type": "integer",
            "description": "The total number of items in the data collection",
            "format": "int32",
            "nullable": true
          },
          "pageCount": {
            "type": "integer",
            "description": "The total number of pages in the data collection",
            "format": "int32",
            "nullable": true,
            "readOnly": true
          },
          "hasNextPage": {
            "type": "boolean",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventAttendeeTypeGetResponseCollectionItem"
            },
            "description": "The collection of items",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Holds response information for a collection of data"
      },
      "EventAttendeeTypePostRequest": {
        "type": "object",
        "properties": {
          "attendeeTypeId": {
            "maxLength": 50,
            "type": "string",
            "description": "The Id of the attendee type\r\n<ul><li>This value cannot be empty</li></ul><ul><li>This value must not exist as an existing event EventAttendeeTypeID</li></ul><ul><li>This value must be unique in the import</li></ul><ul><li>Default is Sequence: EventAttendeeTypeID</li></ul>",
            "nullable": true,
            "example": "ATD0001"
          },
          "eventId": {
            "maxLength": 50,
            "type": "string",
            "description": "The Id of the event\r\n<ul><li>This value cannot be empty</li></ul><ul><li>This value must exist as an existing event</li></ul>",
            "nullable": true,
            "example": "EVT001"
          },
          "attendeeType": {
            "maxLength": 50,
            "type": "string",
            "description": "The type of attendee\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Must exist in the 'EventAttendeeType' lookup</li></ul><ul><li>Must not already exist as an attendee type for the event</li></ul>",
            "nullable": true,
            "example": "Adult"
          },
          "maxAllowed": {
            "type": "integer",
            "description": "The maximum capacity for the attendee type\r\n<ul><li>This value must be greater than or equal to 0</li></ul><ul><li>Must not allow more total places than the event capacity</li></ul>",
            "format": "int32",
            "nullable": true,
            "example": 100
          },
          "webName": {
            "maxLength": 50,
            "type": "string",
            "description": "The name of the attendee type of the web",
            "nullable": true,
            "example": "Adult"
          },
          "webAvailableStart": {
            "type": "string",
            "description": "The date you can book from on the web",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "webAvailableEnd": {
            "type": "string",
            "description": "The date you can book until on the web",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "placesPerTicket": {
            "type": "integer",
            "description": "The number of attendees allocated per ticket\r\n<ul><li>This value must be greater than 0</li></ul>",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "memberOnly": {
            "type": "boolean",
            "description": "Whether the attendee type is for members only",
            "nullable": true,
            "example": false
          },
          "costs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventCostPostRequest"
            },
            "description": "The costs the attendee type is associated with",
            "nullable": true
          },
          "externalRef": {
            "maxLength": 50,
            "type": "string",
            "description": "External ref of the event attendee type",
            "nullable": true,
            "example": "EXT12345"
          },
          "externalRefType": {
            "maxLength": 50,
            "type": "string",
            "description": "The type of the external ref",
            "nullable": true,
            "example": "Eventbride"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the Event Attendee Type"
      },
      "EventAttendeeTypePutRequest": {
        "type": "object",
        "properties": {
          "attendeeType": {
            "maxLength": 50,
            "type": "string",
            "description": "The type of attendee\r\n<ul><li>This value cannot be an empty string</li></ul><ul><li>Must exist in the 'EventAttendeeType' lookup</li></ul><ul><li>Must not already exist as an attendee type for the event</li></ul>",
            "nullable": true,
            "example": "Adult"
          },
          "maxAllowed": {
            "type": "integer",
            "description": "The maximum capacity for the attendee type\r\n<ul><li>This value must be greater than or equal to 0</li></ul><ul><li>Must not allow more total places than the event capacity</li></ul>",
            "format": "int32",
            "nullable": true,
            "example": 100
          },
          "webName": {
            "maxLength": 50,
            "type": "string",
            "description": "The name of the attendee type of the web",
            "nullable": true,
            "example": "Adult"
          },
          "webAvailableStart": {
            "type": "string",
            "description": "The date you can book from on the web",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "webAvailableEnd": {
            "type": "string",
            "description": "The date you can book until on the web",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "placesPerTicket": {
            "type": "integer",
            "description": "The number of attendees allocated per ticket\r\n<ul><li>This value must be greater than 0</li></ul>",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "memberOnly": {
            "type": "boolean",
            "description": "Whether the attendee type is for members only",
            "nullable": true,
            "example": false
          },
          "costs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventCostPostRequest"
            },
            "description": "The costs the attendee type is associated with",
            "nullable": true
          },
          "externalRef": {
            "maxLength": 50,
            "type": "string",
            "description": "External ref of the event attendee type",
            "nullable": true,
            "example": "EXT12345"
          },
          "externalRefType": {
            "maxLength": 50,
            "type": "string",
            "description": "The type of the external ref",
            "nullable": true,
            "example": "EventBrite"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the Event"
      },
      "EventBookingGetResponse": {
        "type": "object",
        "properties": {
          "bookingId": {
            "type": "string",
            "description": "The unique ID of the Booking\r\n<ul><li>Must be unique in the source data </li></ul><ul><li>For new records this must not be empty </li></ul><ul><li>Must not already exist</li></ul>",
            "nullable": true,
            "example": "BKG010183"
          },
          "eventId": {
            "type": "string",
            "description": "The unique ID of the Event\r\n<ul><li>Must exist as an existing event </li></ul><ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "EVT10052"
          },
          "bookingDate": {
            "type": "string",
            "description": "The date of the Booking",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "bookingStatus": {
            "type": "string",
            "description": "The status of the booking, 'Booked' or 'Cancelled'  \r\n<ul><li>Must exist in the ''EventAttendeeStatus'' lookup </li></ul><ul><li>For new records this must not be empty</li></ul><ul><li>Default is 'Booked'</li></ul>",
            "nullable": true,
            "example": "Booked"
          },
          "bookingStage": {
            "type": "string",
            "description": "The workflow stage of the booking \r\n<ul><li>This value must exist as a valid stage: ''Select Extras'', ''Confirmed'' or ''Complete'' </li></ul><ul><li>For new records this must not be empty</li></ul><ul><li>Default is 'Select Extras'</li></ul>",
            "nullable": true,
            "example": "Confirmed"
          },
          "bookingExternalRef": {
            "type": "string",
            "description": "The external reference for the booking",
            "nullable": true,
            "example": "Ext19081"
          },
          "externalRef": {
            "type": "string",
            "description": "The external reference for the lead attendee",
            "nullable": true,
            "example": "Ext19081"
          },
          "serialNumber": {
            "type": "string",
            "description": "The serialnumber of the booker \r\n<ul><li>Must not be duplicated in source data for the same EventId </li></ul><ul><li>Must exist as an existing contact</li></ul><ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "1000840"
          },
          "bookingRef": {
            "type": "string",
            "description": "The unique reference of the Attendee",
            "nullable": true,
            "example": "BKG010183"
          },
          "sourceCode": {
            "type": "string",
            "description": "The source code of the booking  \r\n<ul><li>Must exist as an existing source code </li></ul><ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "Source"
          },
          "attendeeId": {
            "type": "string",
            "description": "The unique Id for the attendee type",
            "nullable": true,
            "example": "ATT12EVT10052"
          },
          "attendeeType": {
            "type": "string",
            "description": "The type of attendee the booking is for\r\n<ul><li>Must exist as an existing attendee type </li></ul><ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "Member"
          },
          "subType": {
            "type": "string",
            "description": "Attendee sub-type",
            "nullable": true,
            "example": "Silver"
          },
          "numberOfPlaces": {
            "type": "integer",
            "description": "Number of places taken per booking for this attendee type",
            "format": "int32",
            "nullable": true,
            "example": 2
          },
          "paymentType": {
            "type": "string",
            "description": "The payment type used for the booking \r\n<ul><li>Must exist in the ''EventPaymentMethod'' lookup </li></ul><ul><li>For new records this must not be empty</li></ul><ul><li>Default is 'Cheque'</li></ul>",
            "nullable": true,
            "example": "Cheque"
          },
          "paymentDueDate": {
            "type": "string",
            "description": "The date of the payment",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "currency": {
            "type": "string",
            "description": "The currency that costs associated with the booking are recorded in\r\n<ul><li>Must exist in the ''Currency'' lookup </li></ul><ul><li>For new records this must not be empty</li></ul><ul><li>Default is Library Definition: MainCurrency</li></ul>",
            "nullable": true,
            "example": "GBP"
          },
          "organisationId": {
            "type": "string",
            "description": "The serialNumber of the organisation for the booking\r\n<ul><li>Must exist as an existing organisation</li></ul>",
            "nullable": true,
            "example": "000014"
          },
          "webImportId": {
            "type": "string",
            "description": "Indicates which web import created the booking",
            "nullable": true,
            "example": "IMP12718"
          },
          "purchaseOrderNo": {
            "type": "string",
            "description": "The purchase order number of the booking",
            "nullable": true,
            "example": "121213"
          },
          "mainAttendeeSerialNumber": {
            "type": "string",
            "description": "The serialnumber of the main Attendee  \r\n<ul><li>Must not be duplicated in source data </li></ul><ul><li>Must not already exist as an attendee for the event </li></ul><ul><li>For new records this must not be empty</li></ul><ul><li>Default is SerialNumber</li></ul>",
            "nullable": true,
            "example": "1000840"
          },
          "confidential": {
            "type": "boolean",
            "description": "Specifies whether the attendee wishes to remain anonymous\r\n<ul><li>Default is False</li></ul>",
            "nullable": true,
            "example": false
          },
          "fullName": {
            "type": "string",
            "description": "The full name of the main attendee",
            "nullable": true,
            "example": "Mrs Dorothy Owen"
          },
          "title": {
            "type": "string",
            "description": "The title of the main Attendee",
            "nullable": true,
            "example": "Mrs"
          },
          "firstName": {
            "type": "string",
            "description": "The firstName of the main Attendee",
            "nullable": true,
            "example": "Dorothy"
          },
          "keyname": {
            "type": "string",
            "description": "The keyName of the main Attendee",
            "nullable": true,
            "example": "Owen"
          },
          "age": {
            "type": "integer",
            "description": "The age of the attendee when attending",
            "format": "int32",
            "nullable": true,
            "example": 21
          },
          "badgeName": {
            "type": "string",
            "description": "Name to be displayed on the badge",
            "nullable": true,
            "example": "Dorothy"
          },
          "dietaryRequirements": {
            "type": "string",
            "description": "Dietary requirements associated to this attendee",
            "nullable": true,
            "example": "Vegetarian"
          },
          "specialNeeds": {
            "type": "string",
            "description": "Special needs associated to this attendee",
            "nullable": true,
            "example": "Allergic to Nuts"
          },
          "hasSeatingPreference": {
            "type": "boolean",
            "description": "Specifies whether the attendee has a seating preference\r\n<ul><li>Default is False</li></ul>",
            "nullable": true,
            "example": true
          },
          "seatingPreferenceDetails": {
            "type": "string",
            "description": "Details of the seating preference\r\n<ul><li>This value cannot be empty if the record has a seating plan preference</li></ul>",
            "nullable": true,
            "example": "Wheelchair user - has to be near aisle"
          },
          "attendanceStatus": {
            "type": "string",
            "description": "Attendance status of the associated attendee\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Default is 'Attending'</li></ul>",
            "nullable": true,
            "example": "Attending"
          },
          "attended": {
            "type": "string",
            "description": "States whether the attendee attended the event or not\r\n<ul><li>Default is 'Pending'</li></ul>",
            "nullable": true,
            "example": "Pending"
          },
          "confirmationDate": {
            "type": "string",
            "description": "Date of the attendance confirmation",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "cancellationDate": {
            "type": "string",
            "description": "Date of cancellation",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "notes": {
            "type": "string",
            "description": "The booking Notes",
            "nullable": true,
            "example": "Booked on the website"
          },
          "created": {
            "type": "string",
            "description": "The date the record was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "type": "string",
            "description": "The user who created the record\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "admit"
          },
          "modified": {
            "type": "string",
            "description": "The date the record was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user who last modified the record\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "admit"
          },
          "invoiced": {
            "type": "number",
            "description": "The total amount invoiced against the booking",
            "format": "double",
            "nullable": true,
            "example": 10.20
          },
          "outstanding": {
            "type": "number",
            "description": "The total amount outstanding against the booking",
            "format": "double",
            "nullable": true,
            "example": 10.40
          },
          "paid": {
            "type": "number",
            "description": "The total amount paid against the booking",
            "format": "double",
            "nullable": true,
            "example": 10.50
          },
          "inProgress": {
            "type": "number",
            "description": "The total amount of payments in progress against the booking",
            "format": "double",
            "nullable": true,
            "example": 50.30
          },
          "expectedAdmin": {
            "type": "number",
            "description": "The expected total amount of admin costs charged against the booking",
            "format": "double",
            "nullable": true,
            "example": 10.10
          },
          "expectedDonation": {
            "type": "number",
            "description": "The expected total amount donated against the booking",
            "format": "double",
            "nullable": true,
            "example": 20.10
          },
          "expectedFees": {
            "type": "number",
            "description": "The expected total amount of fees charged against the booking",
            "format": "double",
            "nullable": true,
            "example": 10.05
          },
          "expectedSponsorship": {
            "type": "number",
            "description": "The expected total amount sponsored against the booking",
            "format": "double",
            "nullable": true,
            "example": 10.15
          },
          "expectedTotalValue": {
            "type": "number",
            "description": "The expected total value of all costs associated with the booking",
            "format": "double",
            "nullable": true,
            "example": 50.40
          },
          "costs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventAttendeeCostNestedGetResponse"
            },
            "description": "The Costs against a booking",
            "nullable": true
          },
          "accommodation": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventAttendeeStructureNestedGetResponse"
            },
            "description": "The Accommodation for the main attendee",
            "nullable": true
          },
          "activities": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventAttendeeStructureNestedGetResponse"
            },
            "description": "The Activities for the main attendee",
            "nullable": true
          },
          "seatingPlans": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventAttendeeStructureNestedGetResponse"
            },
            "description": "The Seating Plans for the main attendee",
            "nullable": true
          },
          "sellingSpace": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventAttendeeStructureNestedGetResponse"
            },
            "description": "The Selling Space for the main attendee",
            "nullable": true
          },
          "seminars": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventAttendeeStructureNestedGetResponse"
            },
            "description": "The Seminars for the main attendee",
            "nullable": true
          },
          "trainingCourses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventAttendeeStructureNestedGetResponse"
            },
            "description": "The workshops for the main attendee",
            "nullable": true
          },
          "workshops": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventAttendeeStructureNestedGetResponse"
            },
            "description": "The workshops for the main attendee",
            "nullable": true
          },
          "additionalAttendees": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventAttendeeGetResponse"
            },
            "description": "The additional attendees against a booking",
            "nullable": true
          },
          "bookingProfiles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventAttendeeProfileGetResponse"
            },
            "description": "The profiles against a booking",
            "nullable": true
          },
          "preferences": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ContactPreferenceGetResponse"
            },
            "description": "The communication preferences against a booking",
            "nullable": true
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "The Attendee custom fields",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the Event Booking"
      },
      "EventBookingGetResponseCollectionItem": {
        "type": "object",
        "properties": {
          "bookingId": {
            "type": "string",
            "description": "The unique ID of the Booking\r\n<ul><li>Must be unique in the source data </li></ul><ul><li>For new records this must not be empty </li></ul><ul><li>Must not already exist</li></ul>",
            "nullable": true,
            "example": "BKG010183"
          },
          "eventId": {
            "type": "string",
            "description": "The unique ID of the Event\r\n<ul><li>Must exist as an existing event </li></ul><ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "EVT10052"
          },
          "bookingDate": {
            "type": "string",
            "description": "The date of the Booking",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "bookingStatus": {
            "type": "string",
            "description": "The status of the booking, 'Booked' or 'Cancelled'  \r\n<ul><li>Must exist in the ''EventAttendeeStatus'' lookup </li></ul><ul><li>For new records this must not be empty</li></ul><ul><li>Default is 'Booked'</li></ul>",
            "nullable": true,
            "example": "Booked"
          },
          "bookingStage": {
            "type": "string",
            "description": "The workflow stage of the booking \r\n<ul><li>This value must exist as a valid stage: ''Select Extras'', ''Confirmed'' or ''Complete'' </li></ul><ul><li>For new records this must not be empty</li></ul><ul><li>Default is 'Select Extras'</li></ul>",
            "nullable": true,
            "example": "Confirmed"
          },
          "bookingExternalRef": {
            "type": "string",
            "description": "The external reference for the booking",
            "nullable": true,
            "example": "Ext19081"
          },
          "externalRef": {
            "type": "string",
            "description": "The external reference for the lead attendee",
            "nullable": true,
            "example": "Ext19081"
          },
          "serialNumber": {
            "type": "string",
            "description": "The serialnumber of the booker \r\n<ul><li>Must not be duplicated in source data for the same EventId </li></ul><ul><li>Must exist as an existing contact</li></ul><ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "1000840"
          },
          "bookingRef": {
            "type": "string",
            "description": "The unique reference of the Attendee",
            "nullable": true,
            "example": "BKG010183"
          },
          "sourceCode": {
            "type": "string",
            "description": "The source code of the booking  \r\n<ul><li>Must exist as an existing source code </li></ul><ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "Source"
          },
          "attendeeId": {
            "type": "string",
            "description": "The unique Id for the attendee type",
            "nullable": true,
            "example": "ATT12EVT10052"
          },
          "attendeeType": {
            "type": "string",
            "description": "The type of attendee the booking is for\r\n<ul><li>Must exist as an existing attendee type </li></ul><ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "Member"
          },
          "subType": {
            "type": "string",
            "description": "Attendee sub-type",
            "nullable": true,
            "example": "Silver"
          },
          "numberOfPlaces": {
            "type": "integer",
            "description": "Number of places taken per booking for this attendee type",
            "format": "int32",
            "nullable": true,
            "example": 2
          },
          "paymentType": {
            "type": "string",
            "description": "The payment type used for the booking \r\n<ul><li>Must exist in the ''EventPaymentMethod'' lookup </li></ul><ul><li>For new records this must not be empty</li></ul><ul><li>Default is 'Cheque'</li></ul>",
            "nullable": true,
            "example": "Cheque"
          },
          "paymentDueDate": {
            "type": "string",
            "description": "The date of the payment",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "currency": {
            "type": "string",
            "description": "The currency that costs associated with the booking are recorded in\r\n<ul><li>Must exist in the ''Currency'' lookup </li></ul><ul><li>For new records this must not be empty</li></ul><ul><li>Default is Library Definition: MainCurrency</li></ul>",
            "nullable": true,
            "example": "GBP"
          },
          "organisationId": {
            "type": "string",
            "description": "The serialNumber of the organisation for the booking\r\n<ul><li>Must exist as an existing organisation</li></ul>",
            "nullable": true,
            "example": "000014"
          },
          "webImportId": {
            "type": "string",
            "description": "Indicates which web import created the booking",
            "nullable": true,
            "example": "IMP12718"
          },
          "purchaseOrderNo": {
            "type": "string",
            "description": "The purchase order number of the booking",
            "nullable": true,
            "example": "121213"
          },
          "mainAttendeeSerialNumber": {
            "type": "string",
            "description": "The serialnumber of the main Attendee  \r\n<ul><li>Must not be duplicated in source data </li></ul><ul><li>Must not already exist as an attendee for the event </li></ul><ul><li>For new records this must not be empty</li></ul><ul><li>Default is SerialNumber</li></ul>",
            "nullable": true,
            "example": "1000840"
          },
          "confidential": {
            "type": "boolean",
            "description": "Specifies whether the attendee wishes to remain anonymous\r\n<ul><li>Default is False</li></ul>",
            "nullable": true,
            "example": false
          },
          "fullName": {
            "type": "string",
            "description": "The full name of the main attendee",
            "nullable": true,
            "example": "Mrs Dorothy Owen"
          },
          "title": {
            "type": "string",
            "description": "The title of the main Attendee",
            "nullable": true,
            "example": "Mrs"
          },
          "firstName": {
            "type": "string",
            "description": "The firstName of the main Attendee",
            "nullable": true,
            "example": "Dorothy"
          },
          "keyname": {
            "type": "string",
            "description": "The keyName of the main Attendee",
            "nullable": true,
            "example": "Owen"
          },
          "age": {
            "type": "integer",
            "description": "The age of the attendee when attending",
            "format": "int32",
            "nullable": true,
            "example": 21
          },
          "badgeName": {
            "type": "string",
            "description": "Name to be displayed on the badge",
            "nullable": true,
            "example": "Dorothy"
          },
          "dietaryRequirements": {
            "type": "string",
            "description": "Dietary requirements associated to this attendee",
            "nullable": true,
            "example": "Vegetarian"
          },
          "specialNeeds": {
            "type": "string",
            "description": "Special needs associated to this attendee",
            "nullable": true,
            "example": "Allergic to Nuts"
          },
          "hasSeatingPreference": {
            "type": "boolean",
            "description": "Specifies whether the attendee has a seating preference\r\n<ul><li>Default is False</li></ul>",
            "nullable": true,
            "example": true
          },
          "seatingPreferenceDetails": {
            "type": "string",
            "description": "Details of the seating preference\r\n<ul><li>This value cannot be empty if the record has a seating plan preference</li></ul>",
            "nullable": true,
            "example": "Wheelchair user - has to be near aisle"
          },
          "attendanceStatus": {
            "type": "string",
            "description": "Attendance status of the associated attendee\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Default is 'Attending'</li></ul>",
            "nullable": true,
            "example": "Attending"
          },
          "attended": {
            "type": "string",
            "description": "States whether the attendee attended the event or not\r\n<ul><li>Default is 'Pending'</li></ul>",
            "nullable": true,
            "example": "Pending"
          },
          "confirmationDate": {
            "type": "string",
            "description": "Date of the attendance confirmation",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "cancellationDate": {
            "type": "string",
            "description": "Date of cancellation",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "notes": {
            "type": "string",
            "description": "The booking Notes",
            "nullable": true,
            "example": "Booked on the website"
          },
          "created": {
            "type": "string",
            "description": "The date the record was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "type": "string",
            "description": "The user who created the record\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "admit"
          },
          "modified": {
            "type": "string",
            "description": "The date the record was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user who last modified the record\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "admit"
          },
          "invoiced": {
            "type": "number",
            "description": "The total amount invoiced against the booking",
            "format": "double",
            "nullable": true,
            "example": 10.20
          },
          "outstanding": {
            "type": "number",
            "description": "The total amount outstanding against the booking",
            "format": "double",
            "nullable": true,
            "example": 10.40
          },
          "paid": {
            "type": "number",
            "description": "The total amount paid against the booking",
            "format": "double",
            "nullable": true,
            "example": 10.50
          },
          "inProgress": {
            "type": "number",
            "description": "The total amount of payments in progress against the booking",
            "format": "double",
            "nullable": true,
            "example": 50.30
          },
          "expectedAdmin": {
            "type": "number",
            "description": "The expected total amount of admin costs charged against the booking",
            "format": "double",
            "nullable": true,
            "example": 10.10
          },
          "expectedDonation": {
            "type": "number",
            "description": "The expected total amount donated against the booking",
            "format": "double",
            "nullable": true,
            "example": 20.10
          },
          "expectedFees": {
            "type": "number",
            "description": "The expected total amount of fees charged against the booking",
            "format": "double",
            "nullable": true,
            "example": 10.05
          },
          "expectedSponsorship": {
            "type": "number",
            "description": "The expected total amount sponsored against the booking",
            "format": "double",
            "nullable": true,
            "example": 10.15
          },
          "expectedTotalValue": {
            "type": "number",
            "description": "The expected total value of all costs associated with the booking",
            "format": "double",
            "nullable": true,
            "example": 50.40
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "The Attendee custom fields",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the Event Booking"
      },
      "EventBookingGetResponseCollectionResponse": {
        "type": "object",
        "properties": {
          "pageNumber": {
            "type": "integer",
            "description": "The page number for the data in the response",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "The page size for the data in the response",
            "format": "int32"
          },
          "totalCount": {
            "type": "integer",
            "description": "The total number of items in the data collection",
            "format": "int32",
            "nullable": true
          },
          "pageCount": {
            "type": "integer",
            "description": "The total number of pages in the data collection",
            "format": "int32",
            "nullable": true,
            "readOnly": true
          },
          "hasNextPage": {
            "type": "boolean",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventBookingGetResponseCollectionItem"
            },
            "description": "The collection of items",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Holds response information for a collection of data"
      },
      "EventBookingPostRequest": {
        "type": "object",
        "properties": {
          "bookingId": {
            "maxLength": 50,
            "type": "string",
            "description": "The unique ID of the Booking\r\n<ul><li>Must be unique in the source data </li></ul><ul><li>For new records this must not be empty </li></ul><ul><li>Must not already exist</li></ul>",
            "nullable": true,
            "example": "BKG010183"
          },
          "eventId": {
            "maxLength": 50,
            "type": "string",
            "description": "The unique ID of the Event\r\n<ul><li>Must exist as an existing event </li></ul><ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "EVT10052"
          },
          "bookingDate": {
            "type": "string",
            "description": "The date of the Booking",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "bookingStatus": {
            "maxLength": 50,
            "type": "string",
            "description": "The status of the booking, 'Booked' or 'Cancelled'  \r\n<ul><li>Must exist in the ''EventAttendeeStatus'' lookup </li></ul><ul><li>For new records this must not be empty</li></ul><ul><li>Default is 'Booked'</li></ul>",
            "nullable": true,
            "example": "Booked"
          },
          "bookingStage": {
            "maxLength": 50,
            "type": "string",
            "description": "The workflow stage of the booking \r\n<ul><li>This value must exist as a valid stage: ''Select Extras'', ''Confirmed'' or ''Complete'' </li></ul><ul><li>For new records this must not be empty</li></ul><ul><li>Default is 'Select Extras'</li></ul>",
            "nullable": true,
            "example": "Confirmed"
          },
          "bookingExternalRef": {
            "maxLength": 50,
            "type": "string",
            "description": "The external reference for the booking",
            "nullable": true,
            "example": "Ext19081"
          },
          "externalRef": {
            "maxLength": 50,
            "type": "string",
            "description": "The external reference for the lead attendee",
            "nullable": true,
            "example": "Ext19081"
          },
          "serialNumber": {
            "maxLength": 50,
            "type": "string",
            "description": "The serialnumber of the booker \r\n<ul><li>Must not be duplicated in source data for the same EventId </li></ul><ul><li>Must exist as an existing contact</li></ul><ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "1000840"
          },
          "sourceCode": {
            "maxLength": 20,
            "type": "string",
            "description": "The source code of the booking  \r\n<ul><li>Must exist as an existing source code </li></ul><ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "Source"
          },
          "attendeeType": {
            "maxLength": 50,
            "type": "string",
            "description": "The type of attendee the booking is for\r\n<ul><li>Must exist as an existing attendee type </li></ul><ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "Member"
          },
          "subType": {
            "maxLength": 50,
            "type": "string",
            "description": "Attendee sub-type",
            "nullable": true,
            "example": "Silver"
          },
          "paymentType": {
            "maxLength": 50,
            "type": "string",
            "description": "The payment type used for the booking \r\n<ul><li>Must exist in the ''EventPaymentMethod'' lookup </li></ul><ul><li>For new records this must not be empty</li></ul><ul><li>Default is 'Cheque'</li></ul>",
            "nullable": true,
            "example": "Cheque"
          },
          "paymentDueDate": {
            "type": "string",
            "description": "The date of the payment",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "currency": {
            "maxLength": 25,
            "type": "string",
            "description": "The currency that costs associated with the booking are recorded in\r\n<ul><li>Must exist in the ''Currency'' lookup </li></ul><ul><li>For new records this must not be empty</li></ul><ul><li>Default is Library Definition: MainCurrency</li></ul>",
            "nullable": true,
            "example": "GBP"
          },
          "organisationId": {
            "maxLength": 50,
            "type": "string",
            "description": "The serialNumber of the organisation for the booking\r\n<ul><li>Must exist as an existing organisation</li></ul>",
            "nullable": true,
            "example": "000014"
          },
          "webImportId": {
            "maxLength": 50,
            "type": "string",
            "description": "Indicates which web import created the booking",
            "nullable": true,
            "example": "IMP12718"
          },
          "purchaseOrderNo": {
            "maxLength": 20,
            "type": "string",
            "description": "The purchase order number of the booking",
            "nullable": true,
            "example": "121213"
          },
          "mainAttendeeSerialNumber": {
            "maxLength": 50,
            "type": "string",
            "description": "The serialnumber of the main Attendee  \r\n<ul><li>Must not be duplicated in source data </li></ul><ul><li>Must not already exist as an attendee for the event </li></ul><ul><li>For new records this must not be empty</li></ul><ul><li>Default is SerialNumber</li></ul>",
            "nullable": true,
            "example": "1000840"
          },
          "confidential": {
            "type": "boolean",
            "description": "Specifies whether the attendee wishes to remain anonymous\r\n<ul><li>Default is False</li></ul>",
            "nullable": true,
            "example": false
          },
          "dateOfBirth": {
            "type": "string",
            "description": "The Date of birth of the main attendee",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "age": {
            "type": "integer",
            "description": "The age of the attendee when attending",
            "format": "int32",
            "nullable": true,
            "example": 21
          },
          "badgeName": {
            "maxLength": 50,
            "type": "string",
            "description": "Name to be displayed on the badge",
            "nullable": true,
            "example": "Dorothy"
          },
          "dietaryRequirements": {
            "maxLength": 255,
            "type": "string",
            "description": "Dietary requirements associated to this attendee",
            "nullable": true,
            "example": "Vegetarian"
          },
          "specialNeeds": {
            "maxLength": 255,
            "type": "string",
            "description": "Special needs associated to this attendee",
            "nullable": true,
            "example": "Allergic to Nuts"
          },
          "hasSeatingPreference": {
            "type": "boolean",
            "description": "Specifies whether the attendee has a seating preference\r\n<ul><li>Default is False</li></ul>",
            "nullable": true,
            "example": true
          },
          "seatingPreferenceDetails": {
            "maxLength": 255,
            "type": "string",
            "description": "Details of the seating preference\r\n<ul><li>This value cannot be empty if the record has a seating plan preference</li></ul>",
            "nullable": true,
            "example": "Wheelchair user - has to be near aisle"
          },
          "attendanceStatus": {
            "maxLength": 255,
            "type": "string",
            "description": "Attendance status of the associated attendee\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Default is 'Attending'</li></ul>",
            "nullable": true,
            "example": "Attending"
          },
          "attended": {
            "maxLength": 50,
            "type": "string",
            "description": "States whether the attendee attended the event or not\r\n<ul><li>Default is 'Pending'</li></ul>",
            "nullable": true,
            "example": "Pending"
          },
          "confirmationDate": {
            "type": "string",
            "description": "Date of the attendance confirmation",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "cancellationDate": {
            "type": "string",
            "description": "Date of cancellation",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "notes": {
            "maxLength": 500,
            "type": "string",
            "description": "The booking Notes",
            "nullable": true,
            "example": "Booked on the website"
          },
          "created": {
            "type": "string",
            "description": "The date the record was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user who created the record\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "admit"
          },
          "modified": {
            "type": "string",
            "description": "The date the record was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user who last modified the record\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "admit"
          },
          "structures": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventAttendeeStructurePostRequest"
            },
            "description": "The additional structures for the main attendee",
            "nullable": true
          },
          "additionalAttendees": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventAttendeePostRequest"
            },
            "description": "The booking's additional Attendees",
            "nullable": true
          },
          "bookingProfiles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventAttendeeProfilePostRequest"
            },
            "description": "The booking's profiles",
            "nullable": true
          },
          "preferences": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventBookingPreferencePostRequest"
            },
            "description": "The booking's communication preferences",
            "nullable": true
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomFieldPostRequest"
            },
            "description": "Custom field data",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the Event Booking"
      },
      "EventBookingPreferencePostRequest": {
        "required": [
          "preference"
        ],
        "type": "object",
        "properties": {
          "serialNumber": {
            "maxLength": 50,
            "type": "string",
            "description": "The serial number of the contact",
            "nullable": true,
            "example": "12353782"
          },
          "preference": {
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "description": "The specific area of communication",
            "example": "Bills"
          },
          "addressId": {
            "maxLength": 50,
            "type": "string",
            "description": "A reference to the address to be used for this preference",
            "nullable": true,
            "example": "Z122139"
          },
          "method": {
            "maxLength": 50,
            "type": "string",
            "description": "The specific method of communication for this preference",
            "nullable": true,
            "example": "Mail"
          },
          "envelopeSalutation": {
            "maxLength": 300,
            "type": "string",
            "description": "The envelope salutation to be used for this preference",
            "nullable": true,
            "example": "Captain Simmons"
          },
          "letterSalutation": {
            "maxLength": 200,
            "type": "string",
            "description": "The letter salutation to be used for this preference",
            "nullable": true,
            "example": "Ben S"
          },
          "useFrom": {
            "type": "string",
            "description": "The date from which the preference applies",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "useUntil": {
            "type": "string",
            "description": "The date until the preference applies",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "doNotContact": {
            "type": "boolean",
            "description": "When this is true, the contact shouldn’t be contacted for this area of communication",
            "nullable": true,
            "example": false
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the contact preference to post"
      },
      "EventBookingPutRequest": {
        "type": "object",
        "properties": {
          "bookingStage": {
            "maxLength": 50,
            "type": "string",
            "description": "The workflow stage of the booking \r\n<ul><li>This value must exist as a valid stage: ''Select Extras'', ''Confirmed'' or ''Complete''</li></ul>",
            "nullable": true,
            "example": "Confirmed"
          },
          "bookingStatus": {
            "maxLength": 50,
            "type": "string",
            "description": "The status of the booking, 'Booked' or 'Cancelled'  \r\n<ul><li>The status of the booking, ''Booked'' or ''Cancelled''</li></ul>",
            "nullable": true,
            "example": "Booked"
          },
          "bookingDate": {
            "type": "string",
            "description": "The date of the Booking",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "organisationId": {
            "maxLength": 50,
            "type": "string",
            "description": "The serialNumber of the organisation for the booking\r\n<ul><li>Must exist as an existing organisation</li></ul>",
            "nullable": true,
            "example": "0001234"
          },
          "sourceCode": {
            "maxLength": 20,
            "type": "string",
            "description": "The source code of the booking  \r\n<ul><li>Must exist as an existing source code</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "paymentType": {
            "maxLength": 50,
            "type": "string",
            "description": "The payment type used for the booking \r\n<ul><li>Must exist in the ''EventPaymentMethod'' lookup</li></ul>",
            "nullable": true,
            "example": "Cash"
          },
          "paymentDueDate": {
            "type": "string",
            "description": "The date of the payment",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "purchaseOrderNo": {
            "maxLength": 20,
            "type": "string",
            "description": "The purchase order number of the booking",
            "nullable": true,
            "example": "P123"
          },
          "notes": {
            "maxLength": 500,
            "type": "string",
            "description": "The booking Notes",
            "nullable": true,
            "example": "Booking made over the phone"
          },
          "bookingExternalRef": {
            "maxLength": 50,
            "type": "string",
            "description": "The booking External Ref",
            "nullable": true,
            "example": "Ext19081"
          },
          "modified": {
            "type": "string",
            "description": "The date the record was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user who last modified the record\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "demo"
          }
        },
        "additionalProperties": false,
        "description": "Contains information for posting an event attendee"
      },
      "EventBudgetGetResponse": {
        "type": "object",
        "properties": {
          "eventId": {
            "type": "string",
            "description": "The Id of the event",
            "nullable": true,
            "example": "EVT001"
          },
          "budgetId": {
            "type": "string",
            "description": "The Id of the budget",
            "nullable": true,
            "example": "RES0001"
          },
          "budgetItem": {
            "type": "string",
            "description": "The budget item",
            "nullable": true,
            "example": "Catering"
          },
          "budgetDate": {
            "type": "string",
            "description": "The date of the budget",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "estimatedAmount": {
            "type": "number",
            "description": "The original budget amount",
            "format": "double",
            "nullable": true,
            "example": 100.50
          },
          "actualAmount": {
            "type": "number",
            "description": "The current budget amount",
            "format": "double",
            "nullable": true,
            "example": 150.00
          },
          "notes": {
            "type": "string",
            "description": "The notes for the budget",
            "nullable": true,
            "example": "Budget for the big wine and dine event"
          },
          "serialNumber": {
            "type": "string",
            "description": "The serial number of the contact related to the budget",
            "nullable": true,
            "example": "000001"
          },
          "fullName": {
            "type": "string",
            "description": "The full name of contact related to the budget",
            "nullable": true,
            "example": "Mr J Smith"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the Event attendee types to get"
      },
      "EventCostPostRequest": {
        "type": "object",
        "properties": {
          "costId": {
            "maxLength": 50,
            "type": "string",
            "description": "The Id of the cost\r\n<ul><li>This value cannot be empty</li></ul><ul><li>This value must not exist as an existing event CostID</li></ul><ul><li>This value must be unique in the import</li></ul><ul><li>Default is Sequence: . EventCostID</li></ul>",
            "nullable": true
          },
          "type": {
            "maxLength": 50,
            "type": "string",
            "description": "The cost type\r\n<ul><li>This value cannot be empty</li></ul><ul><li>This value must exist in the 'EventCostType' lookup</li></ul><ul><li>Must not already be an existing 'Donation' or 'Sponsorship' for the Ref</li></ul>",
            "nullable": true,
            "example": "Fees"
          },
          "description": {
            "maxLength": 50,
            "type": "string",
            "description": "The description of the cost\r\n<ul><li>This value cannot be empty</li></ul>",
            "nullable": true,
            "example": "Ticket"
          },
          "value": {
            "type": "number",
            "description": "The value of the cost\r\n<ul><li>This value cannot be empty</li></ul><ul><li>This value has to be equal to or larger than 0.00</li></ul>",
            "format": "double",
            "nullable": true,
            "example": 18.50
          },
          "vatRate": {
            "maxLength": 50,
            "type": "string",
            "description": "The VAT rate for the cost\r\n<ul><li>This value cannot be empty</li></ul><ul><li>This value must exist in the 'VATRate' lookup</li></ul>",
            "nullable": true,
            "example": "Standard Rate"
          },
          "destinationCode": {
            "maxLength": 50,
            "type": "string",
            "description": "The Destination Code for the cost\r\n<ul><li>This value cannot be empty</li></ul><ul><li>This value must exist as an existing Destination code</li></ul>",
            "nullable": true,
            "example": "AFRICA01"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the Costs of a Event Attendee Type"
      },
      "EventGetResponse": {
        "type": "object",
        "properties": {
          "eventId": {
            "type": "string",
            "description": "The Id of the event",
            "nullable": true
          },
          "eventName": {
            "type": "string",
            "description": "The name of the event",
            "nullable": true,
            "example": "Charity Golf Marathon"
          },
          "eventType": {
            "type": "string",
            "description": "The type of event - chargeable or free\r\n<ul><li>This value cannot be empty</li></ul><ul><li>This value must exist in the 'EventType' lookup</li></ul>",
            "nullable": true,
            "example": "Free"
          },
          "type": {
            "type": "string",
            "description": "The event type\r\n<ul><li>This value must exist in the 'Type Of Event' lookup</li></ul>",
            "nullable": true,
            "example": "Fun Day"
          },
          "description": {
            "type": "string",
            "description": "The event description",
            "nullable": true,
            "example": "Extended golf tournament with various innovative handicapping levels."
          },
          "website": {
            "type": "string",
            "description": "The website for the event",
            "nullable": true,
            "example": "www.TheCharityGolfMarathon.com"
          },
          "startDate": {
            "type": "string",
            "description": "The event start date",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "startTime": {
            "type": "string",
            "description": "The event start time\r\n<ul><li>This value must be in the format of hh:mm</li></ul>",
            "nullable": true,
            "example": "20:00"
          },
          "endDate": {
            "type": "string",
            "description": "The end date of the event",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "endTime": {
            "type": "string",
            "description": "The end time of the event\r\n<ul><li>This value must be in the format of hh:mm</li></ul>",
            "nullable": true,
            "example": "23:59"
          },
          "maxAllowed": {
            "type": "integer",
            "description": "The maximum number of attendees",
            "format": "int32",
            "nullable": true,
            "example": 1000
          },
          "maxAttendeesPerBooking": {
            "type": "integer",
            "description": "The most tickets allowed for a single booking",
            "format": "int32",
            "nullable": true,
            "example": 10
          },
          "ticketsLeft": {
            "type": "integer",
            "description": "The number of tickets remaining for the event",
            "format": "int32",
            "nullable": true,
            "example": 999
          },
          "stageId": {
            "type": "integer",
            "description": "The stage id of the event",
            "format": "int32",
            "nullable": true,
            "example": 80020
          },
          "stageName": {
            "type": "string",
            "description": "The name of the stage the event is at\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Must be one of the following: 'Set Attendee Types', 'Set Up Extras', 'Booking', 'Complete'</li></ul><ul><li>Default is 'Set Attendee Types'</li></ul>",
            "nullable": true,
            "example": "Booking"
          },
          "locationId": {
            "type": "string",
            "description": "The id of the location for the event\r\n<ul><li>This value must exist as an existing organisation</li></ul>",
            "nullable": true,
            "example": "1017965"
          },
          "locationName": {
            "type": "string",
            "description": "The name of the event location",
            "nullable": true,
            "example": "The Grove"
          },
          "locationAddressLine": {
            "type": "string",
            "description": "The address of the event location",
            "nullable": true,
            "example": "The Grove Golf Course"
          },
          "locationTown": {
            "type": "string",
            "description": "The town of the event location",
            "nullable": true,
            "example": "Clapham"
          },
          "locationCounty": {
            "type": "string",
            "description": "The county of the event location",
            "nullable": true,
            "example": "London"
          },
          "locationPostCode": {
            "type": "string",
            "description": "The post code of the event location",
            "nullable": true,
            "example": "SW11 1AT"
          },
          "locationCountry": {
            "type": "string",
            "description": "The country of the event location",
            "nullable": true,
            "example": "United Kingdom"
          },
          "locationDayPhone": {
            "type": "string",
            "description": "The day phone number of the event location",
            "nullable": true,
            "example": "01547646444"
          },
          "locationFax": {
            "type": "string",
            "description": "The fax for the event",
            "nullable": true,
            "example": "22064977979"
          },
          "locationEmailAddress": {
            "type": "string",
            "description": "The email address of the event location",
            "nullable": true,
            "example": "Clubhouse@AccessGolf.com"
          },
          "locationMobileNumber": {
            "type": "string",
            "description": "The mobile number of the event location",
            "nullable": true,
            "example": "07895469874"
          },
          "mailingPreference": {
            "type": "string",
            "description": "The mailing preference to be used when new mailings are created for the event\r\n<ul><li>This value must exist in the 'MailingPreference' lookup</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "targetFees": {
            "type": "number",
            "description": "The target amount of fees for the event",
            "format": "double",
            "nullable": true,
            "example": 10
          },
          "targetAdmin": {
            "type": "number",
            "description": "The target amount of admin for the event",
            "format": "double",
            "nullable": true,
            "example": 10
          },
          "targetDonation": {
            "type": "number",
            "description": "The target donation amount for the event",
            "format": "double",
            "nullable": true,
            "example": 10
          },
          "targetSponsorship": {
            "type": "number",
            "description": "The target sponsorship amount for the event",
            "format": "double",
            "nullable": true,
            "example": 10
          },
          "totalBudget": {
            "type": "number",
            "description": "The total budget for the event",
            "format": "double",
            "nullable": true,
            "example": 20
          },
          "publishToWeb": {
            "type": "boolean",
            "description": "If the event should be published to the web\r\n<ul><li>Web Payment Type must exist when publishing an event to the web</li></ul><ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": true
          },
          "publishOnWebUntil": {
            "type": "string",
            "description": "When the event should be published on the web till",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "webDescription": {
            "type": "string",
            "description": "The web description for the event",
            "nullable": true,
            "example": "Extended golf tournament with various innovative handicapping levels."
          },
          "webSourceCode": {
            "type": "string",
            "description": "The sourcecode that should be used for payments made on a website\r\n<ul><li>Must exist as a source code</li></ul><ul><li> This value cannot be empty when publishing an event to the web</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "displayDietaryRequirements": {
            "type": "boolean",
            "description": "A flag to show Dietary requirements for the event",
            "nullable": true,
            "example": false
          },
          "hideAttendeeDetails": {
            "type": "boolean",
            "description": "If attendee details should be hidden on the web\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "publishSeminars": {
            "type": "boolean",
            "description": "Should seminars be available on the web\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "publishWorkshops": {
            "type": "boolean",
            "description": "Should workshops be available on the web\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "publishTrainingCourses": {
            "type": "boolean",
            "description": "Should training courses be available on the web\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "publishActivities": {
            "type": "boolean",
            "description": "Should activities be available on the web\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "publishAccommodation": {
            "type": "boolean",
            "description": "Should accommodation be available on the web\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "webBookingFinalUrl": {
            "type": "string",
            "description": "Web booking final Url",
            "nullable": true,
            "example": "http://www.thecharitygolfmarathon.com/"
          },
          "externalRef": {
            "type": "string",
            "description": "External ref id of the event in another system",
            "nullable": true,
            "example": "EXTREF123"
          },
          "externalRefType": {
            "type": "string",
            "description": "The type of the external ref",
            "nullable": true,
            "example": "Eventbrite"
          },
          "justGivingEventId": {
            "type": "integer",
            "description": "The ID for the event on Just Giving",
            "format": "int32",
            "nullable": true,
            "example": 1234
          },
          "jgCustomCodeSource": {
            "type": "string",
            "description": "Just Giving Custom Code Source\r\n<ul><li>Must be an existing Source Code</li></ul>",
            "nullable": true,
            "example": "CS10003"
          },
          "jgCustomCodeDestination": {
            "type": "string",
            "description": "Just Giving Custom Code Destination\r\n<ul><li>Must be an existing Destination Code</li></ul>",
            "nullable": true,
            "example": "CD100003"
          },
          "jgCustomCodeEventId": {
            "type": "string",
            "description": "Just Giving Custom Code Event ID\r\n<ul><li>This value must exist as an Event Id</li></ul>",
            "nullable": true,
            "example": "CE100008"
          },
          "eventNotes": {
            "type": "string",
            "description": "Notes concerning the event",
            "nullable": true,
            "example": "A golf tournament"
          },
          "sourceNotes": {
            "type": "string",
            "description": "Notes concerning the Source Codes configured for the event",
            "nullable": true,
            "example": "Golf 2022"
          },
          "attendeeTypeNotes": {
            "type": "string",
            "description": "Notes regarding attendee types",
            "nullable": true,
            "example": "This is event if for families only"
          },
          "financialNotes": {
            "type": "string",
            "description": "Notes concerning finance for the event.",
            "nullable": true,
            "example": "Expenses cannot exceed £2000"
          },
          "recordOwner": {
            "type": "string",
            "description": "The record owner",
            "nullable": true,
            "example": "Fred"
          },
          "created": {
            "type": "string",
            "description": "The date the event was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "type": "string",
            "description": "The user who created the event\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "my user"
          },
          "modified": {
            "type": "string",
            "description": "The date the event was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user who last modified the event\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "another user"
          },
          "attendeeTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventAttendeeTypeGetResponse"
            },
            "description": "The events attendee types",
            "nullable": true
          },
          "webPaymentTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventWebPaymentTypeGetResponse"
            },
            "description": "The events web payment types",
            "nullable": true
          },
          "accommodation": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventStructureGetResponse"
            },
            "description": "The events accommodation",
            "nullable": true
          },
          "activities": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventStructureGetResponse"
            },
            "description": "The events activities",
            "nullable": true
          },
          "budgets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventBudgetGetResponse"
            },
            "description": "The events budgets",
            "nullable": true
          },
          "seatingPlans": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventStructureGetResponse"
            },
            "description": "The events seating plans",
            "nullable": true
          },
          "seminars": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventStructureGetResponse"
            },
            "description": "The events seminars",
            "nullable": true
          },
          "sellingSpace": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventStructureGetResponse"
            },
            "description": "The events selling spaces",
            "nullable": true
          },
          "trainingCourses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventStructureGetResponse"
            },
            "description": "The events training courses",
            "nullable": true
          },
          "workshops": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventStructureGetResponse"
            },
            "description": "The events workshops",
            "nullable": true
          },
          "keyContacts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventKeyContactGetResponse"
            },
            "description": "The key Contacts",
            "nullable": true
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "Custom field data",
            "nullable": true
          },
          "eventProfiles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventProfileGetResponse"
            },
            "description": "The event Profiles",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the Event to get"
      },
      "EventGetResponseCollectionItem": {
        "type": "object",
        "properties": {
          "eventId": {
            "type": "string",
            "description": "The Id of the event",
            "nullable": true
          },
          "eventName": {
            "type": "string",
            "description": "The name of the event",
            "nullable": true,
            "example": "Charity Golf Marathon"
          },
          "eventType": {
            "type": "string",
            "description": "The type of event - chargeable or free\r\n<ul><li>This value cannot be empty</li></ul><ul><li>This value must exist in the 'EventType' lookup</li></ul>",
            "nullable": true,
            "example": "Free"
          },
          "type": {
            "type": "string",
            "description": "The event type\r\n<ul><li>This value must exist in the 'Type Of Event' lookup</li></ul>",
            "nullable": true,
            "example": "Fun Day"
          },
          "description": {
            "type": "string",
            "description": "The event description",
            "nullable": true,
            "example": "Extended golf tournament with various innovative handicapping levels."
          },
          "website": {
            "type": "string",
            "description": "The website for the event",
            "nullable": true,
            "example": "www.TheCharityGolfMarathon.com"
          },
          "startDate": {
            "type": "string",
            "description": "The event start date",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "startTime": {
            "type": "string",
            "description": "The event start time\r\n<ul><li>This value must be in the format of hh:mm</li></ul>",
            "nullable": true,
            "example": "20:00"
          },
          "endDate": {
            "type": "string",
            "description": "The end date of the event",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "endTime": {
            "type": "string",
            "description": "The end time of the event\r\n<ul><li>This value must be in the format of hh:mm</li></ul>",
            "nullable": true,
            "example": "23:59"
          },
          "maxAllowed": {
            "type": "integer",
            "description": "The maximum number of attendees",
            "format": "int32",
            "nullable": true,
            "example": 1000
          },
          "maxAttendeesPerBooking": {
            "type": "integer",
            "description": "The most tickets allowed for a single booking",
            "format": "int32",
            "nullable": true,
            "example": 10
          },
          "ticketsLeft": {
            "type": "integer",
            "description": "The number of tickets remaining for the event",
            "format": "int32",
            "nullable": true,
            "example": 999
          },
          "stageId": {
            "type": "integer",
            "description": "The stage id of the event",
            "format": "int32",
            "nullable": true,
            "example": 80020
          },
          "stageName": {
            "type": "string",
            "description": "The name of the stage the event is at\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Must be one of the following: 'Set Attendee Types', 'Set Up Extras', 'Booking', 'Complete'</li></ul><ul><li>Default is 'Set Attendee Types'</li></ul>",
            "nullable": true,
            "example": "Booking"
          },
          "locationId": {
            "type": "string",
            "description": "The id of the location for the event\r\n<ul><li>This value must exist as an existing organisation</li></ul>",
            "nullable": true,
            "example": "1017965"
          },
          "locationName": {
            "type": "string",
            "description": "The name of the event location",
            "nullable": true,
            "example": "The Grove"
          },
          "locationAddressLine": {
            "type": "string",
            "description": "The address of the event location",
            "nullable": true,
            "example": "The Grove Golf Course"
          },
          "locationTown": {
            "type": "string",
            "description": "The town of the event location",
            "nullable": true,
            "example": "Clapham"
          },
          "locationCounty": {
            "type": "string",
            "description": "The county of the event location",
            "nullable": true,
            "example": "London"
          },
          "locationPostCode": {
            "type": "string",
            "description": "The post code of the event location",
            "nullable": true,
            "example": "SW11 1AT"
          },
          "locationCountry": {
            "type": "string",
            "description": "The country of the event location",
            "nullable": true,
            "example": "United Kingdom"
          },
          "locationDayPhone": {
            "type": "string",
            "description": "The day phone number of the event location",
            "nullable": true,
            "example": "01547646444"
          },
          "locationFax": {
            "type": "string",
            "description": "The fax for the event",
            "nullable": true,
            "example": "22064977979"
          },
          "locationEmailAddress": {
            "type": "string",
            "description": "The email address of the event location",
            "nullable": true,
            "example": "Clubhouse@AccessGolf.com"
          },
          "locationMobileNumber": {
            "type": "string",
            "description": "The mobile number of the event location",
            "nullable": true,
            "example": "07895469874"
          },
          "mailingPreference": {
            "type": "string",
            "description": "The mailing preference to be used when new mailings are created for the event\r\n<ul><li>This value must exist in the 'MailingPreference' lookup</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "targetFees": {
            "type": "number",
            "description": "The target amount of fees for the event",
            "format": "double",
            "nullable": true,
            "example": 10
          },
          "targetAdmin": {
            "type": "number",
            "description": "The target amount of admin for the event",
            "format": "double",
            "nullable": true,
            "example": 10
          },
          "targetDonation": {
            "type": "number",
            "description": "The target donation amount for the event",
            "format": "double",
            "nullable": true,
            "example": 10
          },
          "targetSponsorship": {
            "type": "number",
            "description": "The target sponsorship amount for the event",
            "format": "double",
            "nullable": true,
            "example": 10
          },
          "totalBudget": {
            "type": "number",
            "description": "The total budget for the event",
            "format": "double",
            "nullable": true,
            "example": 20
          },
          "publishToWeb": {
            "type": "boolean",
            "description": "If the event should be published to the web\r\n<ul><li>Web Payment Type must exist when publishing an event to the web</li></ul><ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": true
          },
          "publishOnWebUntil": {
            "type": "string",
            "description": "When the event should be published on the web till",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "webDescription": {
            "type": "string",
            "description": "The web description for the event",
            "nullable": true,
            "example": "Extended golf tournament with various innovative handicapping levels."
          },
          "webSourceCode": {
            "type": "string",
            "description": "The sourcecode that should be used for payments made on a website\r\n<ul><li>Must exist as a source code</li></ul><ul><li> This value cannot be empty when publishing an event to the web</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "displayDietaryRequirements": {
            "type": "boolean",
            "description": "A flag to show Dietary requirements for the event",
            "nullable": true,
            "example": false
          },
          "hideAttendeeDetails": {
            "type": "boolean",
            "description": "If attendee details should be hidden on the web\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "publishSeminars": {
            "type": "boolean",
            "description": "Should seminars be available on the web\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "publishWorkshops": {
            "type": "boolean",
            "description": "Should workshops be available on the web\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "publishTrainingCourses": {
            "type": "boolean",
            "description": "Should training courses be available on the web\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "publishActivities": {
            "type": "boolean",
            "description": "Should activities be available on the web\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "publishAccommodation": {
            "type": "boolean",
            "description": "Should accommodation be available on the web\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "webBookingFinalUrl": {
            "type": "string",
            "description": "Web booking final Url",
            "nullable": true,
            "example": "http://www.thecharitygolfmarathon.com/"
          },
          "externalRef": {
            "type": "string",
            "description": "External ref id of the event in another system",
            "nullable": true,
            "example": "EXTREF123"
          },
          "externalRefType": {
            "type": "string",
            "description": "The type of the external ref",
            "nullable": true,
            "example": "Eventbrite"
          },
          "justGivingEventId": {
            "type": "integer",
            "description": "The ID for the event on Just Giving",
            "format": "int32",
            "nullable": true,
            "example": 1234
          },
          "jgCustomCodeSource": {
            "type": "string",
            "description": "Just Giving Custom Code Source\r\n<ul><li>Must be an existing Source Code</li></ul>",
            "nullable": true,
            "example": "CS10003"
          },
          "jgCustomCodeDestination": {
            "type": "string",
            "description": "Just Giving Custom Code Destination\r\n<ul><li>Must be an existing Destination Code</li></ul>",
            "nullable": true,
            "example": "CD100003"
          },
          "jgCustomCodeEventId": {
            "type": "string",
            "description": "Just Giving Custom Code Event ID\r\n<ul><li>This value must exist as an Event Id</li></ul>",
            "nullable": true,
            "example": "CE100008"
          },
          "eventNotes": {
            "type": "string",
            "description": "Notes concerning the event",
            "nullable": true,
            "example": "A golf tournament"
          },
          "sourceNotes": {
            "type": "string",
            "description": "Notes concerning the Source Codes configured for the event",
            "nullable": true,
            "example": "Golf 2022"
          },
          "attendeeTypeNotes": {
            "type": "string",
            "description": "Notes regarding attendee types",
            "nullable": true,
            "example": "This is event if for families only"
          },
          "financialNotes": {
            "type": "string",
            "description": "Notes concerning finance for the event.",
            "nullable": true,
            "example": "Expenses cannot exceed £2000"
          },
          "recordOwner": {
            "type": "string",
            "description": "The record owner",
            "nullable": true,
            "example": "Fred"
          },
          "created": {
            "type": "string",
            "description": "The date the event was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "type": "string",
            "description": "The user who created the event\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "my user"
          },
          "modified": {
            "type": "string",
            "description": "The date the event was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user who last modified the event\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "another user"
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "Custom field data",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the Event to get"
      },
      "EventGetResponseCollectionResponse": {
        "type": "object",
        "properties": {
          "pageNumber": {
            "type": "integer",
            "description": "The page number for the data in the response",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "The page size for the data in the response",
            "format": "int32"
          },
          "totalCount": {
            "type": "integer",
            "description": "The total number of items in the data collection",
            "format": "int32",
            "nullable": true
          },
          "pageCount": {
            "type": "integer",
            "description": "The total number of pages in the data collection",
            "format": "int32",
            "nullable": true,
            "readOnly": true
          },
          "hasNextPage": {
            "type": "boolean",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventGetResponseCollectionItem"
            },
            "description": "The collection of items",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Holds response information for a collection of data"
      },
      "EventInvitedInterestedGetResponse": {
        "type": "object",
        "properties": {
          "eventId": {
            "type": "string",
            "description": "The Id of the event",
            "nullable": true,
            "example": "EVT0001"
          },
          "serialNumber": {
            "type": "string",
            "description": "The serial number of the invited / interested contact",
            "nullable": true,
            "example": "1018871"
          },
          "relationship": {
            "type": "string",
            "description": "A description of the relationship between the contact and event",
            "nullable": true,
            "example": "Event Manager"
          },
          "dateAdded": {
            "type": "string",
            "description": "The date the contact was added as an invited / interested contact",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "notes": {
            "type": "string",
            "description": "Notes for the relationship",
            "nullable": true,
            "example": "Temporary Relationship"
          },
          "groupType": {
            "type": "string",
            "description": "The type of group that was invited to the event",
            "nullable": true,
            "example": "Group"
          },
          "groupName": {
            "type": "string",
            "description": "The name of the group that was invited to the event",
            "nullable": true,
            "example": "London Newsletter"
          },
          "numberOfPlaces": {
            "type": "integer",
            "description": "The number of places required",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "attendeeType": {
            "type": "string",
            "description": "The attendee type of the invited / interested contact",
            "nullable": true,
            "example": "Adult"
          },
          "sponsorAmount": {
            "type": "number",
            "description": "The sponsor amount for the invited / interested contact",
            "format": "double",
            "nullable": true,
            "example": 500.00
          },
          "sourceCode": {
            "type": "string",
            "description": "The source code for the invited / interested contact",
            "nullable": true,
            "example": "General"
          },
          "attendeeStatus": {
            "type": "string",
            "description": "If the invited contact has been added as an attendee",
            "nullable": true,
            "example": "Booked"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on a contacts relationships"
      },
      "EventKeyContactGetResponse": {
        "type": "object",
        "properties": {
          "eventId": {
            "type": "string",
            "description": "The Id of the event\r\n<ul><li>This value cannot be empty</li></ul><ul><li>This value must exist as an event</li></ul>",
            "nullable": true,
            "example": "EVT0001"
          },
          "serialNumber": {
            "type": "string",
            "description": "The serial number of the key contact\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Event, SerialNumber and Relationship combination must be unique</li></ul>",
            "nullable": true,
            "example": "123456789"
          },
          "relationship": {
            "type": "string",
            "description": "A description of the relationship between the contact and event\r\n<ul><li>This value cannot be empty</li></ul>",
            "nullable": true,
            "example": "Event Manager"
          },
          "dateAdded": {
            "type": "string",
            "description": "The date the contact was added as a key contact",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "notes": {
            "type": "string",
            "description": "Notes for the relationship",
            "nullable": true,
            "example": "This can be free text"
          },
          "keyContactId": {
            "type": "string",
            "description": "The Id of the key contact",
            "nullable": true,
            "example": "EVT0001~1018871~Event Manager"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on a event key contact relationships"
      },
      "EventKeyContactPostRequest": {
        "required": [
          "relationship",
          "serialNumber"
        ],
        "type": "object",
        "properties": {
          "eventId": {
            "maxLength": 50,
            "type": "string",
            "description": "The Id of the event\r\n<ul><li>This value cannot be empty</li></ul><ul><li>This value must exist as an event</li></ul>",
            "nullable": true,
            "example": "EVT0001"
          },
          "serialNumber": {
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "description": "The serial number of the key contact\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Event, SerialNumber and Relationship combination must be unique</li></ul>",
            "example": "123456789"
          },
          "relationship": {
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "description": "A description of the relationship between the contact and event\r\n<ul><li>This value cannot be empty</li></ul>",
            "example": "Event Manager"
          },
          "dateAdded": {
            "type": "string",
            "description": "The date the contact was added as a key contact",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "notes": {
            "maxLength": 1000,
            "type": "string",
            "description": "Notes for the relationship",
            "nullable": true,
            "example": "This can be free text"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on an event key contact relationship"
      },
      "EventKeyContactPutBulkRequest": {
        "type": "object",
        "properties": {
          "keyContactId": {
            "maxLength": 152,
            "type": "string",
            "description": "The Id of the Key Contact relationship",
            "nullable": true,
            "example": "EVT00001~0000001~Manager"
          },
          "dateAdded": {
            "type": "string",
            "description": "The date the contact was added as a key contact",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "notes": {
            "maxLength": 1000,
            "type": "string",
            "description": "Notes for the relationship",
            "nullable": true,
            "example": "Temporary Relationship"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on an event key contact relationship"
      },
      "EventKeyContactPutRequest": {
        "type": "object",
        "properties": {
          "dateAdded": {
            "type": "string",
            "description": "The date the contact was added as a key contact",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "notes": {
            "maxLength": 1000,
            "type": "string",
            "description": "Notes for the relationship",
            "nullable": true,
            "example": "Temporary Relationship"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on an event key contact relationship"
      },
      "EventPostRequest": {
        "type": "object",
        "properties": {
          "eventId": {
            "maxLength": 50,
            "type": "string",
            "description": "The Id of the event",
            "nullable": true
          },
          "eventName": {
            "maxLength": 255,
            "type": "string",
            "description": "The name of the event",
            "nullable": true,
            "example": "Charity Golf Marathon"
          },
          "eventType": {
            "maxLength": 50,
            "type": "string",
            "description": "The type of event - chargeable or free\r\n<ul><li>This value cannot be empty</li></ul><ul><li>This value must exist in the 'EventType' lookup</li></ul>",
            "nullable": true,
            "example": "Free"
          },
          "type": {
            "maxLength": 50,
            "type": "string",
            "description": "The event type\r\n<ul><li>This value must exist in the 'Type Of Event' lookup</li></ul>",
            "nullable": true,
            "example": "Fun Day"
          },
          "description": {
            "maxLength": 255,
            "type": "string",
            "description": "The event description",
            "nullable": true,
            "example": "Extended golf tournament with various innovative handicapping levels."
          },
          "website": {
            "maxLength": 100,
            "type": "string",
            "description": "The website for the event",
            "nullable": true,
            "example": "www.TheCharityGolfMarathon.com"
          },
          "startDate": {
            "type": "string",
            "description": "The event start date",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "startTime": {
            "maxLength": 50,
            "type": "string",
            "description": "The event start time\r\n<ul><li>This value must be in the format of hh:mm</li></ul>",
            "nullable": true,
            "example": "20:00"
          },
          "endDate": {
            "type": "string",
            "description": "The end date of the event",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "endTime": {
            "maxLength": 50,
            "type": "string",
            "description": "The end time of the event\r\n<ul><li>This value must be in the format of hh:mm</li></ul>",
            "nullable": true,
            "example": "23:59"
          },
          "maxAllowed": {
            "type": "integer",
            "description": "The maximum number of attendees",
            "format": "int32",
            "nullable": true,
            "example": 1000
          },
          "maxAttendeesPerBooking": {
            "type": "integer",
            "description": "The most tickets allowed for a single booking",
            "format": "int32",
            "nullable": true,
            "example": 10
          },
          "stageName": {
            "maxLength": 50,
            "type": "string",
            "description": "The name of the stage the event is at\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Must be one of the following: 'Set Attendee Types', 'Set Up Extras', 'Booking', 'Complete'</li></ul><ul><li>Default is 'Set Attendee Types'</li></ul>",
            "nullable": true,
            "example": "Booking"
          },
          "locationId": {
            "maxLength": 50,
            "type": "string",
            "description": "The id of the location for the event\r\n<ul><li>This value must exist as an existing organisation</li></ul>",
            "nullable": true,
            "example": "1017965"
          },
          "mailingPreference": {
            "maxLength": 50,
            "type": "string",
            "description": "The mailing preference to be used when new mailings are created for the event\r\n<ul><li>This value must exist in the 'MailingPreference' lookup</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "targetFees": {
            "type": "number",
            "description": "The target amount of fees for the event",
            "format": "double",
            "nullable": true,
            "example": 10
          },
          "targetAdmin": {
            "type": "number",
            "description": "The target amount of admin for the event",
            "format": "double",
            "nullable": true,
            "example": 10
          },
          "targetDonation": {
            "type": "number",
            "description": "The target donation amount for the event",
            "format": "double",
            "nullable": true,
            "example": 10
          },
          "targetSponsorship": {
            "type": "number",
            "description": "The target sponsorship amount for the event",
            "format": "double",
            "nullable": true,
            "example": 10
          },
          "totalBudget": {
            "type": "number",
            "description": "The total budget for the event",
            "format": "double",
            "nullable": true,
            "example": 20
          },
          "publishToWeb": {
            "type": "boolean",
            "description": "If the event should be published to the web\r\n<ul><li>Web Payment Type must exist when publishing an event to the web</li></ul><ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": true
          },
          "publishOnWebUntil": {
            "type": "string",
            "description": "When the event should be published on the web till",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "webDescription": {
            "maxLength": 500,
            "type": "string",
            "description": "The web description for the event",
            "nullable": true,
            "example": "Extended golf tournament with various innovative handicapping levels."
          },
          "webSourceCode": {
            "maxLength": 50,
            "type": "string",
            "description": "The sourcecode that should be used for payments made on a website\r\n<ul><li>Must exist as a source code</li></ul><ul><li> This value cannot be empty when publishing an event to the web</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "displayDietaryRequirements": {
            "type": "boolean",
            "description": "A flag to show Dietary requirements for the event",
            "nullable": true,
            "example": false
          },
          "hideAttendeeDetails": {
            "type": "boolean",
            "description": "If attendee details should be hidden on the web\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "publishSeminars": {
            "type": "boolean",
            "description": "Should seminars be available on the web\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "publishWorkshops": {
            "type": "boolean",
            "description": "Should workshops be available on the web\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "publishTrainingCourses": {
            "type": "boolean",
            "description": "Should training courses be available on the web\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "publishActivities": {
            "type": "boolean",
            "description": "Should activities be available on the web\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "publishAccommodation": {
            "type": "boolean",
            "description": "Should accommodation be available on the web\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "webBookingFinalUrl": {
            "maxLength": 255,
            "type": "string",
            "description": "Web booking final Url",
            "nullable": true,
            "example": "http://www.thecharitygolfmarathon.com/"
          },
          "externalRef": {
            "maxLength": 50,
            "type": "string",
            "description": "External ref id of the event in another system",
            "nullable": true,
            "example": "EXTREF123"
          },
          "externalRefType": {
            "maxLength": 50,
            "type": "string",
            "description": "The type of the external ref",
            "nullable": true,
            "example": "Eventbrite"
          },
          "justGivingEventId": {
            "type": "integer",
            "description": "The ID for the event on Just Giving",
            "format": "int32",
            "nullable": true,
            "example": 1234
          },
          "jgCustomCodeSource": {
            "maxLength": 50,
            "type": "string",
            "description": "Just Giving Custom Code Source\r\n<ul><li>Must be an existing Source Code</li></ul>",
            "nullable": true,
            "example": "CS10003"
          },
          "jgCustomCodeDestination": {
            "maxLength": 50,
            "type": "string",
            "description": "Just Giving Custom Code Destination\r\n<ul><li>Must be an existing Destination Code</li></ul>",
            "nullable": true,
            "example": "CD100003"
          },
          "jgCustomCodeEventId": {
            "maxLength": 50,
            "type": "string",
            "description": "Just Giving Custom Code Event ID\r\n<ul><li>This value must exist as an Event Id</li></ul>",
            "nullable": true,
            "example": "CE100008"
          },
          "eventNotes": {
            "maxLength": 500,
            "type": "string",
            "description": "Notes concerning the event",
            "nullable": true,
            "example": "A golf tournament"
          },
          "sourceNotes": {
            "maxLength": 255,
            "type": "string",
            "description": "Notes concerning the Source Codes configured for the event",
            "nullable": true,
            "example": "Golf 2022"
          },
          "attendeeTypeNotes": {
            "maxLength": 255,
            "type": "string",
            "description": "Notes regarding attendee types",
            "nullable": true,
            "example": "This is event if for families only"
          },
          "financialNotes": {
            "maxLength": 255,
            "type": "string",
            "description": "Notes concerning finance for the event.",
            "nullable": true,
            "example": "Expenses cannot exceed £2000"
          },
          "recordOwner": {
            "maxLength": 100,
            "type": "string",
            "description": "The record owner",
            "nullable": true,
            "example": "Fred"
          },
          "created": {
            "type": "string",
            "description": "The date the event was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user who created the event\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "my user"
          },
          "modified": {
            "type": "string",
            "description": "The date the event was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user who last modified the event\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "another user"
          },
          "allowWebIntegration": {
            "type": "boolean",
            "description": "If the event should be used on a website",
            "nullable": true,
            "example": true
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomFieldPostRequest"
            },
            "description": "The event custom fields",
            "nullable": true
          },
          "webPaymentTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventWebPaymentTypePostRequest"
            },
            "description": "The Web Payment Types permitted for this event",
            "nullable": true
          },
          "attendeeTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventAttendeeTypePostRequest"
            },
            "description": "The Attendee Types permitted for this event",
            "nullable": true
          },
          "structures": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventStructurePostRequest"
            },
            "description": "The structures for this event",
            "nullable": true
          },
          "keyContacts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventKeyContactPostRequest"
            },
            "description": "The key contacts for this event",
            "nullable": true
          },
          "profiles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventProfilePostRequest"
            },
            "description": "The profiles for this event",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the Event"
      },
      "EventProfileGetResponse": {
        "type": "object",
        "properties": {
          "parameterId": {
            "type": "string",
            "description": "The Id of the profile\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Must not be duplicated in the import data</li></ul><ul><li>Must not already exist</li></ul><ul><li>Default is Sequence: ParameterID</li></ul>",
            "nullable": true,
            "example": "12251"
          },
          "eventId": {
            "type": "string",
            "description": "The Event Id of the event\r\n<ul><li>This value must exist as an event</li></ul>",
            "nullable": true,
            "example": "EVT001"
          },
          "parameterCategory": {
            "type": "string",
            "description": "The type of profile for the Event\r\n<ul><li>This value must exist as a valid category</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "parameterName": {
            "type": "string",
            "description": "The name of the profile\r\n<ul><li>This value cannot be empty</li></ul>",
            "nullable": true,
            "example": "Event Theme"
          },
          "parameterValue": {
            "type": "string",
            "description": "The value of the profile",
            "nullable": true,
            "example": "Education"
          },
          "priority": {
            "type": "string",
            "description": "The priority of the profile\r\n<ul><li>Must be one of: High, Low, Normal, Urgent</li></ul><ul><li>Default is Normal</li></ul>",
            "nullable": true,
            "example": "Normal"
          },
          "effectiveFrom": {
            "type": "string",
            "description": "Valid from the specified date",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "effectiveTo": {
            "type": "string",
            "description": "Valid until the specified date",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "parameterNote": {
            "type": "string",
            "description": "Any other information about the profile",
            "nullable": true,
            "example": "The theme of the Event"
          },
          "additional1": {
            "type": "string",
            "description": "Additional field 1",
            "nullable": true,
            "example": "Additional 1"
          },
          "additional2": {
            "type": "string",
            "description": "Additional field 2",
            "nullable": true,
            "example": "Additional 2"
          },
          "additional3": {
            "type": "string",
            "description": "Additional field 3",
            "nullable": true,
            "example": "Additional 3"
          },
          "additional4": {
            "type": "string",
            "description": "Additional field 4",
            "nullable": true,
            "example": "Additional 4"
          },
          "additional5": {
            "type": "string",
            "description": "Additional field 5",
            "nullable": true,
            "example": "Additional 5"
          },
          "bookingProfile": {
            "type": "boolean",
            "description": "Flag to indicate whether the parameter is brought through from the event\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "attendeeProfile": {
            "type": "boolean",
            "description": "Flag to indicate whether the profile is brought through to each individual attendee for each booking against the specified event\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          }
        },
        "additionalProperties": false,
        "description": "Contains information on event profiles"
      },
      "EventProfilePostRequest": {
        "required": [
          "parameterCategory"
        ],
        "type": "object",
        "properties": {
          "parameterId": {
            "maxLength": 50,
            "type": "string",
            "description": "The Id of the profile\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Must not be duplicated in the import data</li></ul><ul><li>Must not already exist</li></ul><ul><li>Default is Sequence: ParameterID</li></ul>",
            "nullable": true,
            "example": "12251"
          },
          "eventId": {
            "maxLength": 50,
            "type": "string",
            "description": "The Event Id of the event\r\n<ul><li>This value must exist as an event</li></ul>",
            "nullable": true,
            "example": "EVT001"
          },
          "parameterCategory": {
            "maxLength": 200,
            "minLength": 1,
            "type": "string",
            "description": "The type of profile for the Event\r\n<ul><li>This value must exist as a valid category</li></ul>",
            "example": "General"
          },
          "parameterName": {
            "maxLength": 200,
            "type": "string",
            "description": "The name of the profile\r\n<ul><li>This value cannot be empty</li></ul>",
            "nullable": true,
            "example": "Event Theme"
          },
          "parameterValue": {
            "maxLength": 200,
            "type": "string",
            "description": "The value of the profile",
            "nullable": true,
            "example": "Education"
          },
          "priority": {
            "maxLength": 50,
            "type": "string",
            "description": "The priority of the profile\r\n<ul><li>Must be one of: High, Low, Normal, Urgent</li></ul><ul><li>Default is Normal</li></ul>",
            "nullable": true,
            "example": "Normal"
          },
          "effectiveFrom": {
            "type": "string",
            "description": "Valid from the specified date",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "effectiveTo": {
            "type": "string",
            "description": "Valid until the specified date",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "parameterNote": {
            "maxLength": 2000,
            "type": "string",
            "description": "Any other information about the profile",
            "nullable": true,
            "example": "The theme of the Event"
          },
          "additional1": {
            "maxLength": 100,
            "type": "string",
            "description": "Additional field 1",
            "nullable": true,
            "example": "Additional 1"
          },
          "additional2": {
            "maxLength": 100,
            "type": "string",
            "description": "Additional field 2",
            "nullable": true,
            "example": "Additional 2"
          },
          "additional3": {
            "maxLength": 100,
            "type": "string",
            "description": "Additional field 3",
            "nullable": true,
            "example": "Additional 3"
          },
          "additional4": {
            "maxLength": 100,
            "type": "string",
            "description": "Additional field 4",
            "nullable": true,
            "example": "Additional 4"
          },
          "additional5": {
            "maxLength": 100,
            "type": "string",
            "description": "Additional field 5",
            "nullable": true,
            "example": "Additional 5"
          },
          "bookingProfile": {
            "type": "boolean",
            "description": "Flag to indicate whether the parameter is brought through from the event\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "attendeeProfile": {
            "type": "boolean",
            "description": "Flag to indicate whether the profile is brought through to each individual attendee for each booking against the specified event\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          }
        },
        "additionalProperties": false,
        "description": "Contains information on an event profile"
      },
      "EventProfilePutBulkRequest": {
        "type": "object",
        "properties": {
          "parameterId": {
            "type": "string",
            "description": "The id for the Profile",
            "nullable": true,
            "example": "12251"
          },
          "parameterCategory": {
            "maxLength": 200,
            "type": "string",
            "description": "The type of profile for the Event\r\n<ul><li>This value cannot be empty</li></ul><ul><li>This value must exist as a valid category</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "parameterName": {
            "maxLength": 200,
            "type": "string",
            "description": "The name of the profile\r\n<ul><li>This value cannot be empty</li></ul>",
            "nullable": true,
            "example": "Event Theme"
          },
          "parameterValue": {
            "maxLength": 200,
            "type": "string",
            "description": "The value of the profile",
            "nullable": true,
            "example": "Education"
          },
          "priority": {
            "maxLength": 50,
            "type": "string",
            "description": "The priority of the profile\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Must be one of: High, Low, Normal, Urgent</li></ul><ul><li>Default is Normal</li></ul>",
            "nullable": true,
            "example": "Normal"
          },
          "effectiveFrom": {
            "type": "string",
            "description": "Valid from the specified date",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "effectiveTo": {
            "type": "string",
            "description": "Valid until the specified date",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "parameterNote": {
            "maxLength": 2000,
            "type": "string",
            "description": "Any other information about the profile",
            "nullable": true,
            "example": "The theme of the Event"
          },
          "additional1": {
            "maxLength": 100,
            "type": "string",
            "description": "Additional field 1",
            "nullable": true,
            "example": "Additional 1"
          },
          "additional2": {
            "maxLength": 100,
            "type": "string",
            "description": "Additional field 2",
            "nullable": true,
            "example": "Additional 2"
          },
          "additional3": {
            "maxLength": 100,
            "type": "string",
            "description": "Additional field 3",
            "nullable": true,
            "example": "Additional 3"
          },
          "additional4": {
            "maxLength": 100,
            "type": "string",
            "description": "Additional field 4",
            "nullable": true,
            "example": "Additional 4"
          },
          "additional5": {
            "maxLength": 100,
            "type": "string",
            "description": "Additional field 5s",
            "nullable": true,
            "example": "Additional 5"
          },
          "bookingProfile": {
            "type": "boolean",
            "description": "Flag to indicate whether the parameter is brought through from the event\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "attendeeProfile": {
            "type": "boolean",
            "description": "Flag to indicate whether the profile is brought through to each individual attendee for each booking against the specified event\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          }
        },
        "additionalProperties": false,
        "description": "Contains information for updating an event profile"
      },
      "EventProfilePutRequest": {
        "type": "object",
        "properties": {
          "parameterCategory": {
            "maxLength": 200,
            "type": "string",
            "description": "The type of profile for the Event\r\n<ul><li>This value cannot be empty</li></ul><ul><li>This value must exist as a valid category</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "parameterName": {
            "maxLength": 200,
            "type": "string",
            "description": "The name of the profile\r\n<ul><li>This value cannot be empty</li></ul>",
            "nullable": true,
            "example": "Event Theme"
          },
          "parameterValue": {
            "maxLength": 200,
            "type": "string",
            "description": "The value of the profile",
            "nullable": true,
            "example": "Education"
          },
          "priority": {
            "maxLength": 50,
            "type": "string",
            "description": "The priority of the profile\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Must be one of: High, Low, Normal, Urgent</li></ul><ul><li>Default is Normal</li></ul>",
            "nullable": true,
            "example": "Normal"
          },
          "effectiveFrom": {
            "type": "string",
            "description": "Valid from the specified date",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "effectiveTo": {
            "type": "string",
            "description": "Valid until the specified date",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "parameterNote": {
            "maxLength": 2000,
            "type": "string",
            "description": "Any other information about the profile",
            "nullable": true,
            "example": "The theme of the Event"
          },
          "additional1": {
            "maxLength": 100,
            "type": "string",
            "description": "Additional field 1",
            "nullable": true,
            "example": "Additional 1"
          },
          "additional2": {
            "maxLength": 100,
            "type": "string",
            "description": "Additional field 2",
            "nullable": true,
            "example": "Additional 2"
          },
          "additional3": {
            "maxLength": 100,
            "type": "string",
            "description": "Additional field 3",
            "nullable": true,
            "example": "Additional 3"
          },
          "additional4": {
            "maxLength": 100,
            "type": "string",
            "description": "Additional field 4",
            "nullable": true,
            "example": "Additional 4"
          },
          "additional5": {
            "maxLength": 100,
            "type": "string",
            "description": "Additional field 5s",
            "nullable": true,
            "example": "Additional 5"
          },
          "bookingProfile": {
            "type": "boolean",
            "description": "Flag to indicate whether the parameter is brought through from the event\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "attendeeProfile": {
            "type": "boolean",
            "description": "Flag to indicate whether the profile is brought through to each individual attendee for each booking against the specified event\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          }
        },
        "additionalProperties": false,
        "description": "Contains information for updating an event profile"
      },
      "EventPutRequest": {
        "type": "object",
        "properties": {
          "eventName": {
            "maxLength": 255,
            "type": "string",
            "description": "The name of the event",
            "nullable": true,
            "example": "Charity Golf Marathon"
          },
          "type": {
            "maxLength": 50,
            "type": "string",
            "description": "The event type",
            "nullable": true,
            "example": "Challenge"
          },
          "description": {
            "maxLength": 255,
            "type": "string",
            "description": "The event description",
            "nullable": true,
            "example": "Extended golf tournament with various innovative handicapping levels."
          },
          "website": {
            "maxLength": 100,
            "type": "string",
            "description": "The website for the event",
            "nullable": true,
            "example": "http://www.thecharitygolfmarathon.com/"
          },
          "startDate": {
            "type": "string",
            "description": "The event start date",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "startTime": {
            "maxLength": 50,
            "type": "string",
            "description": "The event start time",
            "nullable": true,
            "example": "10:00"
          },
          "endDate": {
            "type": "string",
            "description": "The end date of the event",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "endTime": {
            "maxLength": 50,
            "type": "string",
            "description": "The end time of the event",
            "nullable": true,
            "example": "20:00"
          },
          "maxAllowed": {
            "type": "integer",
            "description": "The maximum number of attendees",
            "format": "int32",
            "nullable": true,
            "example": 200
          },
          "maxAttendeesPerBooking": {
            "type": "integer",
            "description": "The most tickets allowed for a single booking",
            "format": "int32",
            "nullable": true,
            "example": 4
          },
          "webDescription": {
            "maxLength": 500,
            "type": "string",
            "description": "The web description for the event",
            "nullable": true,
            "example": "Extended golf tournament with various innovative handicapping levels."
          },
          "displayDietaryRequirements": {
            "type": "boolean",
            "description": "A flag to show Dietary requirements for the event",
            "nullable": true,
            "example": false
          },
          "stageName": {
            "maxLength": 50,
            "type": "string",
            "description": "The name of the stage the event is at\r\n<ul><li>This value cannot be an empty string</li></ul><ul><li>Must be one of the following: 'Set Attendee Types', 'Set Up Extras', 'Booking', 'Complete'</li></ul>",
            "nullable": true,
            "example": "Booking"
          },
          "locationId": {
            "maxLength": 50,
            "type": "string",
            "description": "The id of the location for the event\r\n<ul><li>This value must exist as an existing organisation</li></ul>",
            "nullable": true,
            "example": "1017965"
          },
          "modified": {
            "type": "string",
            "description": "The date the event was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user who last modified the event\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "Gary"
          },
          "publishToWeb": {
            "type": "boolean",
            "description": "If the event should be published to the website\r\n<ul><li>Web Payment Type must exist when publishing an event to the web</li></ul><ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": true
          },
          "publishOnWebUntil": {
            "type": "string",
            "description": "When the event should be published to a website until",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "webSourceCode": {
            "maxLength": 50,
            "type": "string",
            "description": "The sourceCode that should be used for payments made on a website\r\n<ul><li>Must exist as a source code</li></ul><ul><li>This value cannot be empty when publishing an event to the web</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "eventNotes": {
            "maxLength": 500,
            "type": "string",
            "description": "Notes concerning the event",
            "nullable": true,
            "example": "A golf tournament"
          },
          "sourceNotes": {
            "maxLength": 255,
            "type": "string",
            "description": "Notes concerning the Source Codes configured for the event",
            "nullable": true,
            "example": "Golf 2022"
          },
          "recordOwner": {
            "maxLength": 100,
            "type": "string",
            "description": "The record owner",
            "nullable": true,
            "example": "Fred"
          },
          "financialNotes": {
            "maxLength": 255,
            "type": "string",
            "description": "Notes concerning finance for the event.",
            "nullable": true,
            "example": "Expenses cannot exceed £2000"
          },
          "mailingPreference": {
            "maxLength": 50,
            "type": "string",
            "description": "The mailing preference to be used when new mailings are created for the event\r\n<ul><li>This value must exist in the 'MailingPreference' lookup</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "publishSeminars": {
            "type": "boolean",
            "description": "Should seminars be available on the web",
            "nullable": true,
            "example": false
          },
          "publishWorkshops": {
            "type": "boolean",
            "description": "Should workshops be available on the web",
            "nullable": true,
            "example": false
          },
          "publishTrainingCourses": {
            "type": "boolean",
            "description": "Should training courses be available on the web",
            "nullable": true,
            "example": false
          },
          "publishActivities": {
            "type": "boolean",
            "description": "Should activities be available on the web",
            "nullable": true,
            "example": false
          },
          "publishAccommodation": {
            "type": "boolean",
            "description": "Should accommodation be available on the web",
            "nullable": true,
            "example": false
          },
          "justGivingEventId": {
            "type": "integer",
            "description": "The ID for the event on Just Giving",
            "format": "int32",
            "nullable": true,
            "example": 1234
          },
          "hideAttendeeDetails": {
            "type": "boolean",
            "description": "If attendee details should be hidden on the web",
            "nullable": true,
            "example": false
          },
          "jgCustomCodeSource": {
            "maxLength": 50,
            "type": "string",
            "description": "Just Giving Custom Code Source\r\n<ul><li>Must be an existing Source Code</li></ul>",
            "nullable": true,
            "example": "CS10003"
          },
          "jgCustomCodeDestination": {
            "maxLength": 50,
            "type": "string",
            "description": "Just Giving Custom Code Destination\r\n<ul><li>Must be an existing Destination Code</li></ul>",
            "nullable": true,
            "example": "CD100003"
          },
          "jgCustomCodeEventId": {
            "maxLength": 50,
            "type": "string",
            "description": "Just Giving Custom Code Event ID\r\n<ul><li>This value must exist as an Event Id</li></ul>",
            "nullable": true,
            "example": "CE100008"
          },
          "webBookingFinalUrl": {
            "maxLength": 255,
            "type": "string",
            "description": "Web booking final Url",
            "nullable": true,
            "example": "http://www.thecharitygolfmarathon.com/"
          },
          "targetFees": {
            "type": "number",
            "description": "The target amount of fees for the event",
            "format": "double",
            "nullable": true,
            "example": 10.00
          },
          "targetAdmin": {
            "type": "number",
            "description": "The target amount of admin for the event",
            "format": "double",
            "nullable": true,
            "example": 10.00
          },
          "targetDonation": {
            "type": "number",
            "description": "The target donation amount for the event",
            "format": "double",
            "nullable": true,
            "example": 10.00
          },
          "targetSponsorship": {
            "type": "number",
            "description": "The target sponsorship amount for the event",
            "format": "double",
            "nullable": true,
            "example": 10.00
          },
          "totalBudget": {
            "type": "number",
            "description": "The total budget for the event",
            "format": "double",
            "nullable": true,
            "example": 20.00
          },
          "attendeeTypeNotes": {
            "maxLength": 255,
            "type": "string",
            "description": "Notes regarding attendee types",
            "nullable": true,
            "example": "This is event if for families only"
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomFieldPostRequest"
            },
            "description": "The event custom fields",
            "nullable": true
          },
          "webPaymentTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventWebPaymentTypePostRequest"
            },
            "description": "The Web Payment Types permitted for this event",
            "nullable": true
          },
          "externalRef": {
            "maxLength": 50,
            "type": "string",
            "description": "External Ref for event",
            "nullable": true
          },
          "externalRefType": {
            "maxLength": 50,
            "type": "string",
            "description": "External Ref Type for event",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the Event"
      },
      "EventStructureBase": {
        "type": "object",
        "properties": {
          "structureType": {
            "maxLength": 50,
            "type": "string",
            "description": "The type of structure\r\n<ul><li>Must exist in the ''EventStructureType'' lookup </li></ul><ul><li> For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "TABLE"
          },
          "description": {
            "maxLength": 255,
            "type": "string",
            "description": "The description of the structure\r\n<ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "Dinning Table A"
          },
          "capacity": {
            "type": "integer",
            "description": "The total capacity for the structure\r\n<ul><li>For table structures this must be less than 1000</li></ul>",
            "format": "int32",
            "nullable": true,
            "example": 12
          },
          "notes": {
            "maxLength": 255,
            "type": "string",
            "description": "The notes",
            "nullable": true,
            "example": "Not suitable for children"
          }
        },
        "additionalProperties": false,
        "description": "Contains Event structure information common to all models"
      },
      "EventStructureCostGetResponse": {
        "type": "object",
        "properties": {
          "costId": {
            "type": "string",
            "description": "The Id of the cost",
            "nullable": true
          },
          "structureId": {
            "type": "string",
            "description": "The Id of the structure",
            "nullable": true,
            "example": "STR0001"
          },
          "structureType": {
            "type": "string",
            "description": "The type of the structure",
            "nullable": true,
            "example": "WORKSHOP"
          },
          "type": {
            "type": "string",
            "description": "The cost type",
            "nullable": true,
            "example": "Fees"
          },
          "description": {
            "type": "string",
            "description": "The description of the cost",
            "nullable": true,
            "example": "Optional Workshop"
          },
          "value": {
            "type": "number",
            "description": "The value of the cost",
            "format": "double",
            "nullable": true,
            "example": 4.50
          },
          "vatRate": {
            "type": "string",
            "description": "The VAT rate for the cost",
            "nullable": true,
            "example": "Standard Rate"
          },
          "destinationCode": {
            "type": "string",
            "description": "The Destination Code for the cost",
            "nullable": true,
            "example": "AFRICA01"
          },
          "eventId": {
            "type": "string",
            "description": "The event Id that the cost is related to",
            "nullable": true,
            "example": "EVT001"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the Event costs for each structure"
      },
      "EventStructureGetResponse": {
        "type": "object",
        "properties": {
          "structureId": {
            "type": "string",
            "description": "The Id of the structure",
            "nullable": true,
            "example": "STR0001"
          },
          "eventId": {
            "type": "string",
            "description": "The event Id that the structure is related to",
            "nullable": true,
            "example": "EVT10052"
          },
          "structureType": {
            "maxLength": 50,
            "type": "string",
            "description": "The type of structure\r\n<ul><li>Must exist in the ''EventStructureType'' lookup </li></ul><ul><li> For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "TABLE"
          },
          "description": {
            "maxLength": 255,
            "type": "string",
            "description": "The description of the structure\r\n<ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "Dinning Table A"
          },
          "capacity": {
            "type": "integer",
            "description": "The total capacity for the structure\r\n<ul><li>For table structures this must be less than 1000</li></ul>",
            "format": "int32",
            "nullable": true,
            "example": 12
          },
          "parentStructureId": {
            "type": "string",
            "description": "The structure id that this sub structure is related to",
            "nullable": true,
            "example": "STR00001"
          },
          "startDate": {
            "type": "string",
            "description": "The date on which the structure starts",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "startTime": {
            "type": "string",
            "description": "The time at which the structure starts",
            "nullable": true,
            "example": "09:00"
          },
          "endDate": {
            "type": "string",
            "description": "The date on which the structure ends",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "endTime": {
            "type": "string",
            "description": "The time at which the structure ends",
            "nullable": true,
            "example": "15:00"
          },
          "placesTaken": {
            "type": "integer",
            "description": "The number of places taken",
            "format": "int32",
            "nullable": true,
            "example": 10
          },
          "placesRemaining": {
            "type": "integer",
            "description": "The number of places remaining",
            "format": "int32",
            "nullable": true,
            "example": 90
          },
          "notes": {
            "maxLength": 255,
            "type": "string",
            "description": "The notes",
            "nullable": true,
            "example": "Not suitable for children"
          },
          "created": {
            "type": "string",
            "description": "The date the structure was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "type": "string",
            "description": "The user that created the structure",
            "nullable": true,
            "example": "Muriel"
          },
          "modified": {
            "type": "string",
            "description": "The date the structure was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user that last modified the structure",
            "nullable": true,
            "example": "Muriel"
          },
          "costs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventStructureCostGetResponse"
            },
            "description": "Costs for this structure",
            "nullable": true
          },
          "subStructures": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventStructureSubstructureGetResponse"
            },
            "description": "Sub structures that belong to this structure",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the Event structures to get"
      },
      "EventStructureGetResponseCollectionItem": {
        "type": "object",
        "properties": {
          "structureId": {
            "type": "string",
            "description": "The Id of the structure",
            "nullable": true,
            "example": "STR0001"
          },
          "eventId": {
            "type": "string",
            "description": "The event Id that the structure is related to",
            "nullable": true,
            "example": "EVT10052"
          },
          "structureType": {
            "maxLength": 50,
            "type": "string",
            "description": "The type of structure\r\n<ul><li>Must exist in the ''EventStructureType'' lookup </li></ul><ul><li> For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "TABLE"
          },
          "description": {
            "maxLength": 255,
            "type": "string",
            "description": "The description of the structure\r\n<ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "Dinning Table A"
          },
          "capacity": {
            "type": "integer",
            "description": "The total capacity for the structure\r\n<ul><li>For table structures this must be less than 1000</li></ul>",
            "format": "int32",
            "nullable": true,
            "example": 12
          },
          "parentStructureId": {
            "type": "string",
            "description": "The structure id that this sub structure is related to",
            "nullable": true,
            "example": "STR00001"
          },
          "startDate": {
            "type": "string",
            "description": "The date on which the structure starts",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "startTime": {
            "type": "string",
            "description": "The time at which the structure starts",
            "nullable": true,
            "example": "09:00"
          },
          "endDate": {
            "type": "string",
            "description": "The date on which the structure ends",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "endTime": {
            "type": "string",
            "description": "The time at which the structure ends",
            "nullable": true,
            "example": "15:00"
          },
          "placesTaken": {
            "type": "integer",
            "description": "The number of places taken",
            "format": "int32",
            "nullable": true,
            "example": 10
          },
          "placesRemaining": {
            "type": "integer",
            "description": "The number of places remaining",
            "format": "int32",
            "nullable": true,
            "example": 90
          },
          "notes": {
            "maxLength": 255,
            "type": "string",
            "description": "The notes",
            "nullable": true,
            "example": "Not suitable for children"
          },
          "created": {
            "type": "string",
            "description": "The date the structure was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "type": "string",
            "description": "The user that created the structure",
            "nullable": true,
            "example": "Muriel"
          },
          "modified": {
            "type": "string",
            "description": "The date the structure was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user that last modified the structure",
            "nullable": true,
            "example": "Muriel"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the Event structures to get"
      },
      "EventStructureGetResponseCollectionResponse": {
        "type": "object",
        "properties": {
          "pageNumber": {
            "type": "integer",
            "description": "The page number for the data in the response",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "The page size for the data in the response",
            "format": "int32"
          },
          "totalCount": {
            "type": "integer",
            "description": "The total number of items in the data collection",
            "format": "int32",
            "nullable": true
          },
          "pageCount": {
            "type": "integer",
            "description": "The total number of pages in the data collection",
            "format": "int32",
            "nullable": true,
            "readOnly": true
          },
          "hasNextPage": {
            "type": "boolean",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventStructureGetResponseCollectionItem"
            },
            "description": "The collection of items",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Holds response information for a collection of data"
      },
      "EventStructurePostRequest": {
        "type": "object",
        "properties": {
          "eventId": {
            "maxLength": 50,
            "type": "string",
            "description": "The event Id that the structure is related to\r\n<ul><li>Must exist as an existing event</li></ul><ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "EVT0001"
          },
          "structureType": {
            "maxLength": 50,
            "type": "string",
            "description": "The type of structure\r\n<ul><li>Must exist in the ''EventStructureType'' lookup </li></ul><ul><li> For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "TABLE"
          },
          "description": {
            "maxLength": 255,
            "type": "string",
            "description": "The description of the structure\r\n<ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "Dinning Table A"
          },
          "capacity": {
            "type": "integer",
            "description": "The total capacity for the structure\r\n<ul><li>For table structures this must be less than 1000</li></ul>",
            "format": "int32",
            "nullable": true,
            "example": 12
          },
          "startDateTime": {
            "type": "string",
            "description": "The start date and time",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "endDateTime": {
            "type": "string",
            "description": "The end date and time",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "notes": {
            "maxLength": 255,
            "type": "string",
            "description": "The notes",
            "nullable": true,
            "example": "Not suitable for children"
          },
          "costs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventCostPostRequest"
            },
            "description": "Costs for this scheme",
            "nullable": true
          },
          "subStructures": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventStructureBase"
            },
            "description": "Sub structures that belong to this structure",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the Event Structure"
      },
      "EventStructurePutBulkRequest": {
        "type": "object",
        "properties": {
          "structureId": {
            "maxLength": 50,
            "type": "string",
            "description": "The id for the Event Structure",
            "nullable": true,
            "example": "STR1001285"
          },
          "description": {
            "maxLength": 255,
            "type": "string",
            "description": "The description of the structure",
            "nullable": true,
            "example": "Craft making workshop"
          },
          "capacity": {
            "type": "integer",
            "description": "The total capacity of the structure\r\n<ul><li>For table structures this must be less than 1000</li></ul>",
            "format": "int32",
            "nullable": true,
            "example": 100
          },
          "startDateTime": {
            "type": "string",
            "description": "The start date and time",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "endDateTime": {
            "type": "string",
            "description": "The end date and time",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "notes": {
            "maxLength": 255,
            "type": "string",
            "description": "The structures notes",
            "nullable": true,
            "example": "Conference Room B03"
          },
          "modified": {
            "type": "string",
            "description": "The date the structure was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user that last modified the structure\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "another user"
          }
        },
        "additionalProperties": false,
        "description": "Contains information for updating an event Structure"
      },
      "EventStructurePutRequest": {
        "type": "object",
        "properties": {
          "description": {
            "maxLength": 255,
            "type": "string",
            "description": "The description of the structure",
            "nullable": true,
            "example": "Craft making workshop"
          },
          "capacity": {
            "type": "integer",
            "description": "The total capacity of the structure\r\n<ul><li>For table structures this must be less than 1000</li></ul>",
            "format": "int32",
            "nullable": true,
            "example": 100
          },
          "startDateTime": {
            "type": "string",
            "description": "The start date and time",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "endDateTime": {
            "type": "string",
            "description": "The end date and time",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "notes": {
            "maxLength": 255,
            "type": "string",
            "description": "The structures notes",
            "nullable": true,
            "example": "Conference Room B03"
          },
          "modified": {
            "type": "string",
            "description": "The date the structure was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user that last modified the structure\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "another user"
          }
        },
        "additionalProperties": false,
        "description": "Contains information for posting an event attendee"
      },
      "EventStructureSubstructureGetResponse": {
        "type": "object",
        "properties": {
          "structureId": {
            "type": "string",
            "description": "The Id of the structure",
            "nullable": true,
            "example": "STR0001"
          },
          "eventId": {
            "type": "string",
            "description": "The event Id that the structure is related to",
            "nullable": true,
            "example": "EVT10052"
          },
          "structureType": {
            "maxLength": 50,
            "type": "string",
            "description": "The type of structure\r\n<ul><li>Must exist in the ''EventStructureType'' lookup </li></ul><ul><li> For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "TABLE"
          },
          "description": {
            "maxLength": 255,
            "type": "string",
            "description": "The description of the structure\r\n<ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "Dinning Table A"
          },
          "capacity": {
            "type": "integer",
            "description": "The total capacity for the structure\r\n<ul><li>For table structures this must be less than 1000</li></ul>",
            "format": "int32",
            "nullable": true,
            "example": 12
          },
          "parentStructureId": {
            "type": "string",
            "description": "The structure id that this sub structure is related to",
            "nullable": true,
            "example": "STR00001"
          },
          "startDate": {
            "type": "string",
            "description": "The date on which the structure starts",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "startTime": {
            "type": "string",
            "description": "The time at which the structure starts",
            "nullable": true,
            "example": "09:00"
          },
          "endDate": {
            "type": "string",
            "description": "The date on which the structure ends",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "endTime": {
            "type": "string",
            "description": "The time at which the structure ends",
            "nullable": true,
            "example": "15:00"
          },
          "placesTaken": {
            "type": "integer",
            "description": "The number of places taken",
            "format": "int32",
            "nullable": true,
            "example": 10
          },
          "placesRemaining": {
            "type": "integer",
            "description": "The number of places remaining",
            "format": "int32",
            "nullable": true,
            "example": 90
          },
          "notes": {
            "maxLength": 255,
            "type": "string",
            "description": "The notes",
            "nullable": true,
            "example": "Not suitable for children"
          },
          "created": {
            "type": "string",
            "description": "The date the structure was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "type": "string",
            "description": "The user that created the structure",
            "nullable": true,
            "example": "Muriel"
          },
          "modified": {
            "type": "string",
            "description": "The date the structure was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user that last modified the structure",
            "nullable": true,
            "example": "Muriel"
          },
          "costs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventStructureCostGetResponse"
            },
            "description": "Costs for this scheme",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the Event sub structures to get"
      },
      "EventWebPaymentTypeGetResponse": {
        "type": "object",
        "properties": {
          "eventId": {
            "type": "string",
            "description": "The Id of the event",
            "nullable": true,
            "example": "EVT001"
          },
          "paymentType": {
            "type": "string",
            "description": "The available payment type",
            "nullable": true,
            "example": "Credit Card"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the Event web payment types to get"
      },
      "EventWebPaymentTypePostRequest": {
        "type": "object",
        "properties": {
          "eventId": {
            "maxLength": 50,
            "type": "string",
            "description": "The Id of the event\r\n<ul><li>This value cannot be empty</li></ul><ul><li>This value must exist as an existing event</li></ul>",
            "nullable": true,
            "example": "EVT001"
          },
          "paymentType": {
            "maxLength": 50,
            "type": "string",
            "description": "The Web Payment Type\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Must exist in the 'WebEventPaymentType' lookup</li></ul><ul><li>Must be unique per event in the import</li></ul>",
            "nullable": true,
            "example": "Credit Card"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the Event Web Payment Types"
      },
      "GiftAidDeclarationAttachmentPostRequest": {
        "type": "object",
        "properties": {
          "description": {
            "maxLength": 255,
            "type": "string",
            "description": "A description of the attachment \r\n<ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "AnnualDinner.docx"
          },
          "extension": {
            "maxLength": 10,
            "type": "string",
            "description": "The file extension of the attachment\r\n<ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "docx"
          },
          "attachType": {
            "maxLength": 50,
            "type": "string",
            "description": "The type of attachment\r\n<ul><li>Must exist in the 'AttachmentType' lookup</li></ul><ul><li>Default is Document</li></ul>",
            "nullable": true,
            "example": "Document"
          },
          "fileName": {
            "maxLength": 255,
            "type": "string",
            "description": "The name of the file\r\n<ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "AnnualDinner"
          },
          "attachmentBytes": {
            "type": "string",
            "description": "The byte array of the attachment \r\n<ul><li>Must not be empty</li></ul>",
            "format": "byte",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on GAD declaration attachment"
      },
      "GiftAidDeclarationGetResponse": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "description": "Title of the contact",
            "nullable": true,
            "example": "Mr"
          },
          "firstName": {
            "type": "string",
            "description": "First name of the contact",
            "nullable": true,
            "example": "Ben"
          },
          "otherInitial": {
            "type": "string",
            "description": "The other initials of the contact",
            "nullable": true,
            "example": "T"
          },
          "keyname": {
            "type": "string",
            "description": "The surname or organisation name of the contact",
            "nullable": true,
            "example": "Simmons"
          },
          "declarationId": {
            "type": "string",
            "description": "The declaration ID and unique Id for the record\r\n<ul><li>Must not be an existing declarationId</li></ul><ul><li>Must be unique to the record set being posted</li></ul><ul><li>Default is Sequence: GAD</li></ul>",
            "nullable": true,
            "example": "000402"
          },
          "serialNumber": {
            "type": "string",
            "description": "The serial number for the contact associated with the gift aid declaration\r\n<ul><li>Must be a serial number of an existing individual, or a contact record that is part of the same import</li></ul><ul><li>Contact must have a Firstname</li></ul><ul><li>Contact must have a Surname</li></ul>",
            "nullable": true,
            "example": "000198"
          },
          "declarationDate": {
            "type": "string",
            "description": "The date of the gift aid declaration",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "replyDate": {
            "type": "string",
            "description": "The reply date of the gift aid declaration",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "declarationType": {
            "type": "string",
            "description": "The type of the gift aid declaration\r\n<ul><li>Must exist in the 'DeclarationType' lookup</li></ul><ul><li>Must be a 'UK' 'DeclarationType' lookup</li></ul><ul><li>Default is LibraryDefinition: DefaultGAD</li></ul>",
            "nullable": true,
            "example": "Written"
          },
          "effectiveFromDate": {
            "type": "string",
            "description": "The date when the gift aid declaration applies",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "effectiveToDate": {
            "type": "string",
            "description": "The date when the gift aid declaration applies until",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "maximumValue": {
            "type": "number",
            "description": "The maximum value of the gift aid declaration",
            "format": "double",
            "nullable": true,
            "example": 105
          },
          "sourceCode": {
            "type": "string",
            "description": "The Source Code for the gift aid declaration\r\n<ul><li>Must exist as a source code</li></ul>",
            "nullable": true,
            "example": "AnnualCampaign"
          },
          "charityName": {
            "type": "string",
            "description": "The name of the charity associated with the gift aid declaration\r\n<ul><li>Must exist in the 'MultiCharity' lookup</li></ul>",
            "nullable": true,
            "example": "Charity"
          },
          "address": {
            "type": "string",
            "description": "The address of the contact associated with the gift aid declaration\r\n<ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "98  Fordham Rd"
          },
          "town": {
            "type": "string",
            "description": "The town of the contact associated with the gift aid declaration",
            "nullable": true,
            "example": "Kettering"
          },
          "county": {
            "type": "string",
            "description": "The county of the contact associated with the gift aid declaration",
            "nullable": true,
            "example": "Northamptonshire"
          },
          "country": {
            "type": "string",
            "description": "The country of the contact associated with the gift aid declaration",
            "nullable": true,
            "example": "England"
          },
          "postCode": {
            "type": "string",
            "description": "The postcode of the contact associated with the gift aid declaration\r\n<ul><li>Must have exactly one space</li></ul><ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "NN5 4DD"
          },
          "created": {
            "type": "string",
            "description": "The date the gift aid declaration was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "type": "string",
            "description": "The user that created the gift aid declaration\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "modified": {
            "type": "string",
            "description": "The date the gift aid declaration was modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user that modified the gift aid declaration\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "declarationCommunication": {
            "$ref": "#/components/schemas/CommunicationGetResponse"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the gift aid declaration"
      },
      "GiftAidDeclarationGetResponseCollectionItem": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "description": "Title of the contact",
            "nullable": true,
            "example": "Mr"
          },
          "firstName": {
            "type": "string",
            "description": "First name of the contact",
            "nullable": true,
            "example": "Ben"
          },
          "otherInitial": {
            "type": "string",
            "description": "The other initials of the contact",
            "nullable": true,
            "example": "T"
          },
          "keyname": {
            "type": "string",
            "description": "The surname or organisation name of the contact",
            "nullable": true,
            "example": "Simmons"
          },
          "declarationId": {
            "type": "string",
            "description": "The declaration ID and unique Id for the record\r\n<ul><li>Must not be an existing declarationId</li></ul><ul><li>Must be unique to the record set being posted</li></ul><ul><li>Default is Sequence: GAD</li></ul>",
            "nullable": true,
            "example": "000402"
          },
          "serialNumber": {
            "type": "string",
            "description": "The serial number for the contact associated with the gift aid declaration\r\n<ul><li>Must be a serial number of an existing individual, or a contact record that is part of the same import</li></ul><ul><li>Contact must have a Firstname</li></ul><ul><li>Contact must have a Surname</li></ul>",
            "nullable": true,
            "example": "000198"
          },
          "declarationDate": {
            "type": "string",
            "description": "The date of the gift aid declaration",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "replyDate": {
            "type": "string",
            "description": "The reply date of the gift aid declaration",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "declarationType": {
            "type": "string",
            "description": "The type of the gift aid declaration\r\n<ul><li>Must exist in the 'DeclarationType' lookup</li></ul><ul><li>Must be a 'UK' 'DeclarationType' lookup</li></ul><ul><li>Default is LibraryDefinition: DefaultGAD</li></ul>",
            "nullable": true,
            "example": "Written"
          },
          "effectiveFromDate": {
            "type": "string",
            "description": "The date when the gift aid declaration applies",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "effectiveToDate": {
            "type": "string",
            "description": "The date when the gift aid declaration applies until",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "maximumValue": {
            "type": "number",
            "description": "The maximum value of the gift aid declaration",
            "format": "double",
            "nullable": true,
            "example": 105
          },
          "sourceCode": {
            "type": "string",
            "description": "The Source Code for the gift aid declaration\r\n<ul><li>Must exist as a source code</li></ul>",
            "nullable": true,
            "example": "AnnualCampaign"
          },
          "charityName": {
            "type": "string",
            "description": "The name of the charity associated with the gift aid declaration\r\n<ul><li>Must exist in the 'MultiCharity' lookup</li></ul>",
            "nullable": true,
            "example": "Charity"
          },
          "address": {
            "type": "string",
            "description": "The address of the contact associated with the gift aid declaration\r\n<ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "98  Fordham Rd"
          },
          "town": {
            "type": "string",
            "description": "The town of the contact associated with the gift aid declaration",
            "nullable": true,
            "example": "Kettering"
          },
          "county": {
            "type": "string",
            "description": "The county of the contact associated with the gift aid declaration",
            "nullable": true,
            "example": "Northamptonshire"
          },
          "country": {
            "type": "string",
            "description": "The country of the contact associated with the gift aid declaration",
            "nullable": true,
            "example": "England"
          },
          "postCode": {
            "type": "string",
            "description": "The postcode of the contact associated with the gift aid declaration\r\n<ul><li>Must have exactly one space</li></ul><ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "NN5 4DD"
          },
          "created": {
            "type": "string",
            "description": "The date the gift aid declaration was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "type": "string",
            "description": "The user that created the gift aid declaration\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "modified": {
            "type": "string",
            "description": "The date the gift aid declaration was modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user that modified the gift aid declaration\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the gift aid declaration"
      },
      "GiftAidDeclarationGetResponseCollectionResponse": {
        "type": "object",
        "properties": {
          "pageNumber": {
            "type": "integer",
            "description": "The page number for the data in the response",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "The page size for the data in the response",
            "format": "int32"
          },
          "totalCount": {
            "type": "integer",
            "description": "The total number of items in the data collection",
            "format": "int32",
            "nullable": true
          },
          "pageCount": {
            "type": "integer",
            "description": "The total number of pages in the data collection",
            "format": "int32",
            "nullable": true,
            "readOnly": true
          },
          "hasNextPage": {
            "type": "boolean",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GiftAidDeclarationGetResponseCollectionItem"
            },
            "description": "The collection of items",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Holds response information for a collection of data"
      },
      "GiftAidDeclarationPostRequest": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "description": "Title of the contact",
            "nullable": true,
            "example": "Mr"
          },
          "firstName": {
            "type": "string",
            "description": "First name of the contact",
            "nullable": true,
            "example": "Ben"
          },
          "otherInitial": {
            "type": "string",
            "description": "The other initials of the contact",
            "nullable": true,
            "example": "T"
          },
          "keyname": {
            "type": "string",
            "description": "The surname or organisation name of the contact",
            "nullable": true,
            "example": "Simmons"
          },
          "declarationId": {
            "maxLength": 50,
            "type": "string",
            "description": "The declaration ID and unique Id for the record\r\n<ul><li>Must not be an existing declarationId</li></ul><ul><li>Must be unique to the record set being posted</li></ul><ul><li>Default is Sequence: GAD</li></ul>",
            "nullable": true,
            "example": "000402"
          },
          "serialNumber": {
            "maxLength": 50,
            "type": "string",
            "description": "The serial number for the contact associated with the gift aid declaration\r\n<ul><li>Must be a serial number of an existing individual, or a contact record that is part of the same import</li></ul><ul><li>Contact must have a Firstname</li></ul><ul><li>Contact must have a Surname</li></ul>",
            "nullable": true,
            "example": "000198"
          },
          "declarationDate": {
            "type": "string",
            "description": "The date of the gift aid declaration",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "replyDate": {
            "type": "string",
            "description": "The reply date of the gift aid declaration",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "declarationType": {
            "maxLength": 50,
            "type": "string",
            "description": "The type of the gift aid declaration\r\n<ul><li>Must exist in the 'DeclarationType' lookup</li></ul><ul><li>Must be a 'UK' 'DeclarationType' lookup</li></ul><ul><li>Default is LibraryDefinition: DefaultGAD</li></ul>",
            "nullable": true,
            "example": "Written"
          },
          "effectiveFromDate": {
            "type": "string",
            "description": "The date when the gift aid declaration applies",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "effectiveToDate": {
            "type": "string",
            "description": "The date when the gift aid declaration applies until",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "maximumValue": {
            "type": "number",
            "description": "The maximum value of the gift aid declaration",
            "format": "double",
            "nullable": true,
            "example": 105
          },
          "sourceCode": {
            "maxLength": 20,
            "type": "string",
            "description": "The Source Code for the gift aid declaration\r\n<ul><li>Must exist as a source code</li></ul>",
            "nullable": true,
            "example": "AnnualCampaign"
          },
          "charityName": {
            "maxLength": 50,
            "type": "string",
            "description": "The name of the charity associated with the gift aid declaration\r\n<ul><li>Must exist in the 'MultiCharity' lookup</li></ul>",
            "nullable": true,
            "example": "Charity"
          },
          "address": {
            "maxLength": 255,
            "type": "string",
            "description": "The address of the contact associated with the gift aid declaration\r\n<ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "98  Fordham Rd"
          },
          "town": {
            "maxLength": 100,
            "type": "string",
            "description": "The town of the contact associated with the gift aid declaration",
            "nullable": true,
            "example": "Kettering"
          },
          "county": {
            "maxLength": 100,
            "type": "string",
            "description": "The county of the contact associated with the gift aid declaration",
            "nullable": true,
            "example": "Northamptonshire"
          },
          "country": {
            "maxLength": 50,
            "type": "string",
            "description": "The country of the contact associated with the gift aid declaration",
            "nullable": true,
            "example": "England"
          },
          "postCode": {
            "maxLength": 15,
            "type": "string",
            "description": "The postcode of the contact associated with the gift aid declaration\r\n<ul><li>Must have exactly one space</li></ul><ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "NN5 4DD"
          },
          "created": {
            "type": "string",
            "description": "The date the gift aid declaration was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user that created the gift aid declaration\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "modified": {
            "type": "string",
            "description": "The date the gift aid declaration was modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user that modified the gift aid declaration\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "importRowId": {
            "type": "string",
            "description": "The related import row id. e.g. for a payments this would relate to the payment ImportId",
            "nullable": true,
            "example": "1"
          },
          "supersedeExisting": {
            "type": "boolean",
            "description": "Sets any existing GADs for a contact to end when the posted one starts\r\n<ul><li>When the SupersedeExisting field is set to true the system will update the effective to date for existing open declarations to end when this declaration takes effect.</li><li>This only applies where the new declaration is not for a one-off payment</li></ul>",
            "nullable": true,
            "example": false
          },
          "declarationAttachment": {
            "$ref": "#/components/schemas/GiftAidDeclarationAttachmentPostRequest"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on a gift aid declaration to post"
      },
      "GiftAidDeclarationPutRequest": {
        "type": "object",
        "properties": {
          "title": {
            "maxLength": 30,
            "type": "string",
            "description": "Title of the contact",
            "nullable": true,
            "example": "Mr"
          },
          "firstName": {
            "maxLength": 50,
            "type": "string",
            "description": "First name of the contact",
            "nullable": true,
            "example": "Ben"
          },
          "otherInitial": {
            "maxLength": 10,
            "type": "string",
            "description": "The other initials of the contact",
            "nullable": true,
            "example": "T"
          },
          "keyname": {
            "maxLength": 100,
            "type": "string",
            "description": "The surname or organisation name of the contact",
            "nullable": true,
            "example": "Simmons"
          },
          "declarationType": {
            "maxLength": 50,
            "type": "string",
            "description": "The type of the gift aid declaration\r\n<ul><li>Must exist in the 'DeclarationType' lookup</li></ul><ul><li>Must be a 'UK' 'DeclarationType' lookup</li></ul><ul><li>Default is LibraryDefinition: DefaultGAD</li></ul>",
            "nullable": true,
            "example": "Written"
          },
          "declarationDate": {
            "type": "string",
            "description": "The date of the gift aid declaration",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "replyDate": {
            "type": "string",
            "description": "The reply date of the gift aid declaration",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "effectiveFromDate": {
            "type": "string",
            "description": "The date when the gift aid declaration applies",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "effectiveToDate": {
            "type": "string",
            "description": "The date when the gift aid declaration applies until",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "maximumValue": {
            "type": "number",
            "description": "The maximum value of the gift aid declaration",
            "format": "double",
            "nullable": true,
            "example": 105
          },
          "sourceCode": {
            "maxLength": 20,
            "type": "string",
            "description": "The Source Code for the gift aid declaration\r\n<ul><li>Must exist as a source code</li></ul>",
            "nullable": true,
            "example": "AnnualCampaign"
          },
          "charityName": {
            "maxLength": 50,
            "type": "string",
            "description": "The name of the charity associated with the gift aid declaration\r\n<ul><li>Must exist in the 'MultiCharity' lookup</li></ul>",
            "nullable": true,
            "example": "Charity"
          },
          "address": {
            "maxLength": 255,
            "type": "string",
            "description": "The address of the contact associated with the gift aid declaration\r\n<ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "98  Fordham Rd"
          },
          "town": {
            "maxLength": 100,
            "type": "string",
            "description": "The town of the contact associated with the gift aid declaration",
            "nullable": true,
            "example": "Kettering"
          },
          "county": {
            "maxLength": 100,
            "type": "string",
            "description": "The county of the contact associated with the gift aid declaration",
            "nullable": true,
            "example": "Northamptonshire"
          },
          "country": {
            "maxLength": 50,
            "type": "string",
            "description": "The country of the contact associated with the gift aid declaration",
            "nullable": true,
            "example": "England"
          },
          "postCode": {
            "maxLength": 15,
            "type": "string",
            "description": "The postcode of the contact associated with the gift aid declaration\r\n<ul><li>Must have exactly one space</li></ul><ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "NN5 4DD"
          },
          "modified": {
            "type": "string",
            "description": "The date the gift aid declaration was modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user that modified the gift aid declaration\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the Gift Aid Declaration record for updates"
      },
      "GroupGetResponse": {
        "type": "object",
        "properties": {
          "savedSearch": {
            "type": "boolean",
            "description": "A flag whether the group has a saved search",
            "nullable": true
          },
          "workspacePublish": {
            "type": "boolean",
            "description": "If the group is published to workspace\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": true
          },
          "groupMembers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ContactGroupGetResponse"
            },
            "description": "The members of the group",
            "nullable": true
          },
          "groupId": {
            "type": "string",
            "description": "The unique ID for the Group\r\n<ul><li>Must not contain a space</li></ul><ul><li>Must not already exist</li></ul><ul><li>Default is Sequence: GroupID</li></ul>",
            "nullable": true,
            "example": "G00123"
          },
          "title": {
            "type": "string",
            "description": "The Title of the Group\r\n<ul><li>Must be a unique value in the imported data</li></ul><ul><li>Must not already exist</li></ul>",
            "nullable": true,
            "example": "Marathon Newsletter"
          },
          "category": {
            "type": "string",
            "description": "The Group category",
            "nullable": true,
            "example": "Member Benefits"
          },
          "priority": {
            "type": "string",
            "description": "The priority level of the group (determines sublist order)\r\n<ul><li>Must be set to a valid 'Priority' (High, Low, Normal, Urgent).</li><li>Cannot be null or empty.</li></ul>",
            "nullable": true,
            "example": "Normal"
          },
          "description": {
            "type": "string",
            "description": "A description of the group",
            "nullable": true,
            "example": "Members signed up to receive the monthly marathon newsletter"
          },
          "archived": {
            "type": "boolean",
            "description": "If the group is archived or not\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "webPublish": {
            "type": "boolean",
            "description": "If the group is published to the web\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": true
          },
          "webTitle": {
            "type": "string",
            "description": "The title of the group that appears on the web",
            "nullable": true,
            "example": "Marathon Newsletter"
          },
          "webDescription": {
            "type": "string",
            "description": "The description of the group that appears on the web",
            "nullable": true,
            "example": "Sign up to get monthly updates on upcoming marathons"
          },
          "created": {
            "type": "string",
            "description": "The date the record was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "type": "string",
            "description": "The user who created the record\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "API"
          },
          "modified": {
            "type": "string",
            "description": "The date the record was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user who last modified the record\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "API"
          },
          "udT01": {
            "type": "string",
            "description": "The user defined text field 01",
            "nullable": true,
            "example": "User Defined Text Field Here"
          },
          "udT02": {
            "type": "string",
            "description": "The user defined text field 02",
            "nullable": true
          },
          "udT03": {
            "type": "string",
            "description": "The user defined text field 03",
            "nullable": true
          },
          "udT04": {
            "type": "string",
            "description": "The user defined text field 04",
            "nullable": true
          },
          "udT05": {
            "type": "string",
            "description": "The user defined text field 05",
            "nullable": true
          },
          "udN01": {
            "type": "number",
            "description": "The user defined number field 01",
            "format": "double",
            "nullable": true,
            "example": 34.22
          },
          "udN02": {
            "type": "number",
            "description": "The user defined number field 02",
            "format": "double",
            "nullable": true
          },
          "udN03": {
            "type": "number",
            "description": "The user defined number field 03",
            "format": "double",
            "nullable": true
          },
          "udN04": {
            "type": "number",
            "description": "The user defined number field 04",
            "format": "double",
            "nullable": true
          },
          "udN05": {
            "type": "number",
            "description": "The user defined number field 05",
            "format": "double",
            "nullable": true
          },
          "udD01": {
            "type": "string",
            "description": "The user defined date field 01",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD02": {
            "type": "string",
            "description": "The user defined date field 02",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD03": {
            "type": "string",
            "description": "The user defined date field 03",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD04": {
            "type": "string",
            "description": "The user defined date field 04",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD05": {
            "type": "string",
            "description": "The user defined date field 05",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udB01": {
            "type": "boolean",
            "description": "The user defined bool field 01",
            "nullable": true,
            "example": false
          },
          "udB02": {
            "type": "boolean",
            "description": "The user defined bool field 02",
            "nullable": true
          },
          "udB03": {
            "type": "boolean",
            "description": "The user defined bool field 03",
            "nullable": true
          },
          "udB04": {
            "type": "boolean",
            "description": "The user defined bool field 04",
            "nullable": true
          },
          "udB05": {
            "type": "boolean",
            "description": "The user defined bool field 05",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information about a Group and its members"
      },
      "GroupGetResponseCollectionItem": {
        "type": "object",
        "properties": {
          "savedSearch": {
            "type": "boolean",
            "description": "A flag whether the group has a saved search",
            "nullable": true
          },
          "workspacePublish": {
            "type": "boolean",
            "description": "If the group is published to workspace\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": true
          },
          "groupId": {
            "type": "string",
            "description": "The unique ID for the Group\r\n<ul><li>Must not contain a space</li></ul><ul><li>Must not already exist</li></ul><ul><li>Default is Sequence: GroupID</li></ul>",
            "nullable": true,
            "example": "G00123"
          },
          "title": {
            "type": "string",
            "description": "The Title of the Group\r\n<ul><li>Must be a unique value in the imported data</li></ul><ul><li>Must not already exist</li></ul>",
            "nullable": true,
            "example": "Marathon Newsletter"
          },
          "category": {
            "type": "string",
            "description": "The Group category",
            "nullable": true,
            "example": "Member Benefits"
          },
          "priority": {
            "type": "string",
            "description": "The priority level of the group (determines sublist order)\r\n<ul><li>Must be set to a valid 'Priority' (High, Low, Normal, Urgent).</li><li>Cannot be null or empty.</li></ul>",
            "nullable": true,
            "example": "Normal"
          },
          "description": {
            "type": "string",
            "description": "A description of the group",
            "nullable": true,
            "example": "Members signed up to receive the monthly marathon newsletter"
          },
          "archived": {
            "type": "boolean",
            "description": "If the group is archived or not\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "webPublish": {
            "type": "boolean",
            "description": "If the group is published to the web\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": true
          },
          "webTitle": {
            "type": "string",
            "description": "The title of the group that appears on the web",
            "nullable": true,
            "example": "Marathon Newsletter"
          },
          "webDescription": {
            "type": "string",
            "description": "The description of the group that appears on the web",
            "nullable": true,
            "example": "Sign up to get monthly updates on upcoming marathons"
          },
          "created": {
            "type": "string",
            "description": "The date the record was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "type": "string",
            "description": "The user who created the record\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "API"
          },
          "modified": {
            "type": "string",
            "description": "The date the record was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user who last modified the record\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "API"
          },
          "udT01": {
            "type": "string",
            "description": "The user defined text field 01",
            "nullable": true,
            "example": "User Defined Text Field Here"
          },
          "udT02": {
            "type": "string",
            "description": "The user defined text field 02",
            "nullable": true
          },
          "udT03": {
            "type": "string",
            "description": "The user defined text field 03",
            "nullable": true
          },
          "udT04": {
            "type": "string",
            "description": "The user defined text field 04",
            "nullable": true
          },
          "udT05": {
            "type": "string",
            "description": "The user defined text field 05",
            "nullable": true
          },
          "udN01": {
            "type": "number",
            "description": "The user defined number field 01",
            "format": "double",
            "nullable": true,
            "example": 34.22
          },
          "udN02": {
            "type": "number",
            "description": "The user defined number field 02",
            "format": "double",
            "nullable": true
          },
          "udN03": {
            "type": "number",
            "description": "The user defined number field 03",
            "format": "double",
            "nullable": true
          },
          "udN04": {
            "type": "number",
            "description": "The user defined number field 04",
            "format": "double",
            "nullable": true
          },
          "udN05": {
            "type": "number",
            "description": "The user defined number field 05",
            "format": "double",
            "nullable": true
          },
          "udD01": {
            "type": "string",
            "description": "The user defined date field 01",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD02": {
            "type": "string",
            "description": "The user defined date field 02",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD03": {
            "type": "string",
            "description": "The user defined date field 03",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD04": {
            "type": "string",
            "description": "The user defined date field 04",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD05": {
            "type": "string",
            "description": "The user defined date field 05",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udB01": {
            "type": "boolean",
            "description": "The user defined bool field 01",
            "nullable": true,
            "example": false
          },
          "udB02": {
            "type": "boolean",
            "description": "The user defined bool field 02",
            "nullable": true
          },
          "udB03": {
            "type": "boolean",
            "description": "The user defined bool field 03",
            "nullable": true
          },
          "udB04": {
            "type": "boolean",
            "description": "The user defined bool field 04",
            "nullable": true
          },
          "udB05": {
            "type": "boolean",
            "description": "The user defined bool field 05",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information about a Group and its members"
      },
      "GroupGetResponseCollectionResponse": {
        "type": "object",
        "properties": {
          "pageNumber": {
            "type": "integer",
            "description": "The page number for the data in the response",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "The page size for the data in the response",
            "format": "int32"
          },
          "totalCount": {
            "type": "integer",
            "description": "The total number of items in the data collection",
            "format": "int32",
            "nullable": true
          },
          "pageCount": {
            "type": "integer",
            "description": "The total number of pages in the data collection",
            "format": "int32",
            "nullable": true,
            "readOnly": true
          },
          "hasNextPage": {
            "type": "boolean",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GroupGetResponseCollectionItem"
            },
            "description": "The collection of items",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Holds response information for a collection of data"
      },
      "GroupMemberPostRequest": {
        "type": "object",
        "properties": {
          "groupId": {
            "type": "string",
            "description": "The group id of the contact\r\n<ul><li>Must reference an existing group, either in the database or as part of the same data import</li></ul><ul><li>Defaults to the Parent Group 'groupId'</li></ul>",
            "nullable": true,
            "example": "G00123"
          },
          "serialNumber": {
            "maxLength": 50,
            "type": "string",
            "description": "The serial number of the contact\r\n<ul><li>Must exist as a contact, either in the database or as part of the same data import</li></ul><ul><li>Must not already exist in the specified group (includes the Web Area)</li></ul><ul><li>Must not be specified in combination with the same groupId multiple times in the import data</li></ul>",
            "nullable": true,
            "example": "123456789"
          },
          "startDate": {
            "type": "string",
            "description": "The date the contact was added to the group\r\n<ul><li>Defaults to the current date</li></ul>",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "mailQuantity": {
            "type": "integer",
            "description": "When a group is loaded into a mailing, this value will be used to determine how many copies of the mailing should be sent.\r\n<ul><li>Defaults to 1</li></ul>",
            "format": "int32",
            "nullable": true,
            "example": 2
          },
          "description": {
            "maxLength": 50,
            "type": "string",
            "description": "The role in the group can be added to this field (e.g. Treasurer)",
            "nullable": true,
            "example": "Group Founder"
          }
        },
        "additionalProperties": false,
        "description": "Contains information about group members posted as part of a group"
      },
      "GroupPostRequest": {
        "required": [
          "priority",
          "title"
        ],
        "type": "object",
        "properties": {
          "importRowId": {
            "type": "string",
            "description": "The related import row id to link to related elements in the same import.",
            "nullable": true
          },
          "importNewGroupId": {
            "type": "string",
            "description": "The ID of the new Group generated from the import. Used for validation purposes only on Contact Group imports.",
            "nullable": true
          },
          "groupMembers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GroupMemberPostRequest"
            },
            "description": "The members that belong to the group",
            "nullable": true
          },
          "groupId": {
            "maxLength": 50,
            "type": "string",
            "description": "The unique ID for the Group\r\n<ul><li>Must not contain a space</li></ul><ul><li>Must not already exist</li></ul><ul><li>Default is Sequence: GroupID</li></ul>",
            "nullable": true,
            "example": "G00123"
          },
          "title": {
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "description": "The Title of the Group\r\n<ul><li>Must be a unique value in the imported data</li></ul><ul><li>Must not already exist</li></ul>",
            "example": "Marathon Newsletter"
          },
          "category": {
            "maxLength": 50,
            "type": "string",
            "description": "The Group category",
            "nullable": true,
            "example": "Member Benefits"
          },
          "priority": {
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "description": "The priority level of the group (determines sublist order)\r\n<ul><li>Must be set to a valid 'Priority' (High, Low, Normal, Urgent).</li><li>Cannot be null or empty.</li></ul>",
            "example": "Normal"
          },
          "description": {
            "maxLength": 255,
            "type": "string",
            "description": "A description of the group",
            "nullable": true,
            "example": "Members signed up to receive the monthly marathon newsletter"
          },
          "archived": {
            "type": "boolean",
            "description": "If the group is archived or not\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "webPublish": {
            "type": "boolean",
            "description": "If the group is published to the web\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": true
          },
          "webTitle": {
            "maxLength": 50,
            "type": "string",
            "description": "The title of the group that appears on the web",
            "nullable": true,
            "example": "Marathon Newsletter"
          },
          "webDescription": {
            "maxLength": 255,
            "type": "string",
            "description": "The description of the group that appears on the web",
            "nullable": true,
            "example": "Sign up to get monthly updates on upcoming marathons"
          },
          "created": {
            "type": "string",
            "description": "The date the record was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user who created the record\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "API"
          },
          "modified": {
            "type": "string",
            "description": "The date the record was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user who last modified the record\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "API"
          },
          "udT01": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 01",
            "nullable": true,
            "example": "User Defined Text Field Here"
          },
          "udT02": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 02",
            "nullable": true
          },
          "udT03": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 03",
            "nullable": true
          },
          "udT04": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 04",
            "nullable": true
          },
          "udT05": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 05",
            "nullable": true
          },
          "udN01": {
            "type": "number",
            "description": "The user defined number field 01",
            "format": "double",
            "nullable": true,
            "example": 34.22
          },
          "udN02": {
            "type": "number",
            "description": "The user defined number field 02",
            "format": "double",
            "nullable": true
          },
          "udN03": {
            "type": "number",
            "description": "The user defined number field 03",
            "format": "double",
            "nullable": true
          },
          "udN04": {
            "type": "number",
            "description": "The user defined number field 04",
            "format": "double",
            "nullable": true
          },
          "udN05": {
            "type": "number",
            "description": "The user defined number field 05",
            "format": "double",
            "nullable": true
          },
          "udD01": {
            "type": "string",
            "description": "The user defined date field 01",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD02": {
            "type": "string",
            "description": "The user defined date field 02",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD03": {
            "type": "string",
            "description": "The user defined date field 03",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD04": {
            "type": "string",
            "description": "The user defined date field 04",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD05": {
            "type": "string",
            "description": "The user defined date field 05",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udB01": {
            "type": "boolean",
            "description": "The user defined bool field 01",
            "nullable": true,
            "example": false
          },
          "udB02": {
            "type": "boolean",
            "description": "The user defined bool field 02",
            "nullable": true
          },
          "udB03": {
            "type": "boolean",
            "description": "The user defined bool field 03",
            "nullable": true
          },
          "udB04": {
            "type": "boolean",
            "description": "The user defined bool field 04",
            "nullable": true
          },
          "udB05": {
            "type": "boolean",
            "description": "The user defined bool field 05",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the Group to post"
      },
      "HealthCheckGetResponse": {
        "type": "object",
        "properties": {
          "healthCheckId": {
            "type": "integer",
            "description": "The unique Id of the HealthCheck",
            "format": "int32",
            "example": 5
          },
          "healthStatus": {
            "type": "string",
            "description": "The overall status of the healthCheck",
            "nullable": true,
            "example": "Invalid"
          },
          "numberofIssues": {
            "type": "integer",
            "description": "The overall number of issues found during the healthCheck",
            "format": "int32",
            "nullable": true,
            "example": 2
          },
          "checkedOn": {
            "type": "string",
            "description": "The date the healthCheck occurred",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "checkedBy": {
            "type": "string",
            "description": "The user that ran the health check",
            "nullable": true,
            "example": "Phillip"
          },
          "healthWarnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HealthCheckResultGetResponse"
            },
            "description": "The results of the health check",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information about a Health Check and its heath warnings"
      },
      "HealthCheckResultGetResponse": {
        "type": "object",
        "properties": {
          "area": {
            "type": "string",
            "description": "The type or area the effected by the issue",
            "nullable": true,
            "example": "Library Definition"
          },
          "name": {
            "type": "string",
            "description": "The name of the field",
            "nullable": true,
            "example": "Destination Code"
          },
          "value": {
            "type": "string",
            "description": "The value of the invalid field",
            "nullable": true,
            "example": "Managers Project"
          },
          "message": {
            "type": "string",
            "description": "The health check message",
            "nullable": true,
            "example": "Not a valid DestinationCode"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the results of the health check to get"
      },
      "ImportGetResponse": {
        "type": "object",
        "properties": {
          "importId": {
            "type": "string",
            "description": "The import id",
            "nullable": true,
            "example": "e869db4d-c2c6-4cbb-833a-3d46d3daa3b5"
          },
          "resourceName": {
            "type": "string",
            "description": "The resource name",
            "nullable": true,
            "example": "Contact"
          },
          "recordCount": {
            "type": "integer",
            "description": "The record count",
            "format": "int32",
            "example": 500
          },
          "startedAt": {
            "type": "string",
            "description": "The date and time the import was started",
            "format": "date-time",
            "nullable": true,
            "example": "2022-03-12"
          },
          "status": {
            "type": "string",
            "description": "The current status of the import",
            "nullable": true,
            "example": "Completed"
          },
          "httpStatusCode": {
            "type": "integer",
            "description": "The HTTP status code of the completed import",
            "format": "int32",
            "nullable": true,
            "example": 200
          },
          "completedAt": {
            "type": "string",
            "description": "The date and time the import was completed",
            "format": "date-time",
            "nullable": true,
            "example": "2022-03-12"
          },
          "duration": {
            "type": "integer",
            "description": "The duration in milliseconds of the import",
            "format": "int32",
            "nullable": true,
            "example": 600
          },
          "result": {
            "description": "The json result of the import",
            "nullable": true,
            "example": ""
          },
          "validationOnly": {
            "type": "boolean",
            "description": "If the import was validating only",
            "example": true
          },
          "importType": {
            "type": "string",
            "description": "The HttpsMethod of the request",
            "nullable": true,
            "example": ""
          }
        },
        "additionalProperties": false,
        "description": "Contains information on an import"
      },
      "ImportGetResponseCollectionResponse": {
        "type": "object",
        "properties": {
          "pageNumber": {
            "type": "integer",
            "description": "The page number for the data in the response",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "The page size for the data in the response",
            "format": "int32"
          },
          "totalCount": {
            "type": "integer",
            "description": "The total number of items in the data collection",
            "format": "int32",
            "nullable": true
          },
          "pageCount": {
            "type": "integer",
            "description": "The total number of pages in the data collection",
            "format": "int32",
            "nullable": true,
            "readOnly": true
          },
          "hasNextPage": {
            "type": "boolean",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ImportGetResponse"
            },
            "description": "The collection of items",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Holds response information for a collection of data"
      },
      "InvoiceGetResponse": {
        "type": "object",
        "properties": {
          "invoiceId": {
            "type": "string",
            "description": "The invoice ID and unique Id for the record",
            "nullable": true,
            "example": "000066792"
          },
          "serialNumber": {
            "type": "string",
            "description": "The serial number for the contact associated with the invoice",
            "nullable": true,
            "example": "000001"
          },
          "invoiceType": {
            "type": "string",
            "description": "The type of invoice",
            "nullable": true,
            "example": "Invoice"
          },
          "status": {
            "type": "string",
            "description": "The payment status of the invoice",
            "nullable": true,
            "example": "Sent"
          },
          "currency": {
            "type": "string",
            "description": "The invoice currency",
            "nullable": true,
            "example": "GBP"
          },
          "postedToAccounts": {
            "type": "string",
            "description": "When the invoice was posted to a third party system",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "postedBy": {
            "type": "string",
            "description": "The user that posted the invoice to a third party system",
            "nullable": true,
            "example": "John Smith"
          },
          "dueDate": {
            "type": "string",
            "description": "Invoice due date",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "purchaseOrderNo": {
            "type": "string",
            "description": "The purchase order number for the invoice",
            "nullable": true,
            "example": "0002"
          },
          "notes": {
            "type": "string",
            "description": "Notes about the invoice",
            "nullable": true,
            "example": "Notes"
          },
          "description": {
            "type": "string",
            "description": "Description of the invoice",
            "nullable": true,
            "example": "Description"
          },
          "outstandingFromFinance": {
            "type": "number",
            "description": "The remaining outstanding balance against the invoice in a third party financial system",
            "format": "double",
            "nullable": true,
            "example": 120.50
          },
          "netValue": {
            "type": "number",
            "description": "total net value of the invoice",
            "format": "double",
            "nullable": true,
            "example": 139.99
          },
          "vatValue": {
            "type": "number",
            "description": "The total VAT value of the invoice",
            "format": "double",
            "nullable": true,
            "example": 0
          },
          "grossValue": {
            "type": "number",
            "description": "The total gross value of the invoice",
            "format": "double",
            "nullable": true,
            "example": 139.99
          },
          "amountPaid": {
            "type": "number",
            "description": "The total amount paid off against the invoice",
            "format": "double",
            "nullable": true,
            "example": 19.49
          },
          "amountInProgress": {
            "type": "number",
            "description": "The total amount of payments in progress against the invoice",
            "format": "double",
            "nullable": true,
            "example": 0
          },
          "cancelled": {
            "type": "number",
            "description": "The total amount of credit applied in paying off the invoice",
            "format": "double",
            "nullable": true,
            "example": 0
          },
          "outstanding": {
            "type": "number",
            "description": "The remaining outstanding balance against the invoice",
            "format": "double",
            "nullable": true,
            "example": 120.50
          },
          "uncancelledNetValue": {
            "type": "number",
            "description": "The net value for this invoice less cancelled items",
            "format": "double",
            "nullable": true,
            "example": 0
          },
          "uncancelledGrossValue": {
            "type": "number",
            "description": "The gross value of this invoice less cancelled items",
            "format": "double",
            "nullable": true,
            "example": 0
          },
          "uncancelledVATValue": {
            "type": "number",
            "description": "The value of the VAT for this invoice less cancelled items",
            "format": "double",
            "nullable": true,
            "example": 0
          },
          "postToAccounts": {
            "type": "boolean",
            "description": "Flag to indicate if the invoice has been posted to a third party system",
            "nullable": true,
            "example": true
          },
          "subLedger": {
            "type": "string",
            "description": "The sub ledger taken from the destination code",
            "nullable": true,
            "example": "SubLedger"
          },
          "company": {
            "type": "string",
            "description": "The company code for the invoice",
            "nullable": true,
            "example": "Access Group"
          },
          "dataHubId": {
            "type": "string",
            "description": "The DataHub Id for the invoice",
            "format": "uuid",
            "nullable": true,
            "example": "818ed7a9-25b2-42f8-9781-12f20f53f16e"
          },
          "customerDataHubId": {
            "type": "string",
            "description": "The unique Data Hub ID for the customer on the invoice",
            "format": "uuid",
            "nullable": true,
            "example": "f8cd257e-ec71-42b5-b59a-a2a95e81d1fe"
          },
          "created": {
            "type": "string",
            "description": "The date the invoice was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "type": "string",
            "description": "The user that created the invoice",
            "nullable": true,
            "example": "John"
          },
          "modified": {
            "type": "string",
            "description": "The date the invoice was modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user that modified the invoice",
            "nullable": true,
            "example": "John"
          },
          "invoiceItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceItemGetResponse"
            },
            "description": "The invoice items in the current invoice record",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the invoice record"
      },
      "InvoiceGetResponseCollectionItem": {
        "type": "object",
        "properties": {
          "invoiceId": {
            "type": "string",
            "description": "The invoice ID and unique Id for the record",
            "nullable": true,
            "example": "000066792"
          },
          "serialNumber": {
            "type": "string",
            "description": "The serial number for the contact associated with the invoice",
            "nullable": true,
            "example": "000001"
          },
          "invoiceType": {
            "type": "string",
            "description": "The type of invoice",
            "nullable": true,
            "example": "Invoice"
          },
          "status": {
            "type": "string",
            "description": "The payment status of the invoice",
            "nullable": true,
            "example": "Sent"
          },
          "currency": {
            "type": "string",
            "description": "The invoice currency",
            "nullable": true,
            "example": "GBP"
          },
          "postedToAccounts": {
            "type": "string",
            "description": "When the invoice was posted to a third party system",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "postedBy": {
            "type": "string",
            "description": "The user that posted the invoice to a third party system",
            "nullable": true,
            "example": "John Smith"
          },
          "dueDate": {
            "type": "string",
            "description": "Invoice due date",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "purchaseOrderNo": {
            "type": "string",
            "description": "The purchase order number for the invoice",
            "nullable": true,
            "example": "0002"
          },
          "notes": {
            "type": "string",
            "description": "Notes about the invoice",
            "nullable": true,
            "example": "Notes"
          },
          "description": {
            "type": "string",
            "description": "Description of the invoice",
            "nullable": true,
            "example": "Description"
          },
          "outstandingFromFinance": {
            "type": "number",
            "description": "The remaining outstanding balance against the invoice in a third party financial system",
            "format": "double",
            "nullable": true,
            "example": 120.50
          },
          "netValue": {
            "type": "number",
            "description": "total net value of the invoice",
            "format": "double",
            "nullable": true,
            "example": 139.99
          },
          "vatValue": {
            "type": "number",
            "description": "The total VAT value of the invoice",
            "format": "double",
            "nullable": true,
            "example": 0
          },
          "grossValue": {
            "type": "number",
            "description": "The total gross value of the invoice",
            "format": "double",
            "nullable": true,
            "example": 139.99
          },
          "amountPaid": {
            "type": "number",
            "description": "The total amount paid off against the invoice",
            "format": "double",
            "nullable": true,
            "example": 19.49
          },
          "amountInProgress": {
            "type": "number",
            "description": "The total amount of payments in progress against the invoice",
            "format": "double",
            "nullable": true,
            "example": 0
          },
          "cancelled": {
            "type": "number",
            "description": "The total amount of credit applied in paying off the invoice",
            "format": "double",
            "nullable": true,
            "example": 0
          },
          "outstanding": {
            "type": "number",
            "description": "The remaining outstanding balance against the invoice",
            "format": "double",
            "nullable": true,
            "example": 120.50
          },
          "uncancelledNetValue": {
            "type": "number",
            "description": "The net value for this invoice less cancelled items",
            "format": "double",
            "nullable": true,
            "example": 0
          },
          "uncancelledGrossValue": {
            "type": "number",
            "description": "The gross value of this invoice less cancelled items",
            "format": "double",
            "nullable": true,
            "example": 0
          },
          "uncancelledVATValue": {
            "type": "number",
            "description": "The value of the VAT for this invoice less cancelled items",
            "format": "double",
            "nullable": true,
            "example": 0
          },
          "postToAccounts": {
            "type": "boolean",
            "description": "Flag to indicate if the invoice has been posted to a third party system",
            "nullable": true,
            "example": true
          },
          "subLedger": {
            "type": "string",
            "description": "The sub ledger taken from the destination code",
            "nullable": true,
            "example": "SubLedger"
          },
          "company": {
            "type": "string",
            "description": "The company code for the invoice",
            "nullable": true,
            "example": "Access Group"
          },
          "dataHubId": {
            "type": "string",
            "description": "The DataHub Id for the invoice",
            "format": "uuid",
            "nullable": true,
            "example": "818ed7a9-25b2-42f8-9781-12f20f53f16e"
          },
          "customerDataHubId": {
            "type": "string",
            "description": "The unique Data Hub ID for the customer on the invoice",
            "format": "uuid",
            "nullable": true,
            "example": "f8cd257e-ec71-42b5-b59a-a2a95e81d1fe"
          },
          "created": {
            "type": "string",
            "description": "The date the invoice was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "type": "string",
            "description": "The user that created the invoice",
            "nullable": true,
            "example": "John"
          },
          "modified": {
            "type": "string",
            "description": "The date the invoice was modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user that modified the invoice",
            "nullable": true,
            "example": "John"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the invoice record"
      },
      "InvoiceGetResponseCollectionResponse": {
        "type": "object",
        "properties": {
          "pageNumber": {
            "type": "integer",
            "description": "The page number for the data in the response",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "The page size for the data in the response",
            "format": "int32"
          },
          "totalCount": {
            "type": "integer",
            "description": "The total number of items in the data collection",
            "format": "int32",
            "nullable": true
          },
          "pageCount": {
            "type": "integer",
            "description": "The total number of pages in the data collection",
            "format": "int32",
            "nullable": true,
            "readOnly": true
          },
          "hasNextPage": {
            "type": "boolean",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceGetResponseCollectionItem"
            },
            "description": "The collection of items",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Holds response information for a collection of data"
      },
      "InvoiceItemGetResponse": {
        "type": "object",
        "properties": {
          "itemId": {
            "type": "integer",
            "description": "The unique id for the invoice item",
            "format": "int32",
            "nullable": true,
            "example": 45
          },
          "invoiceId": {
            "type": "string",
            "description": "The invoice Id associated with the item",
            "nullable": true,
            "example": "000067975"
          },
          "externalRef": {
            "type": "string",
            "description": "The external reference",
            "nullable": true,
            "example": "M102110388-H1"
          },
          "externalRefType": {
            "type": "string",
            "description": "The type of external reference",
            "nullable": true,
            "example": "MembershipDetail"
          },
          "itemCode": {
            "type": "string",
            "description": "Item code",
            "nullable": true,
            "example": "Donation"
          },
          "itemDescription": {
            "type": "string",
            "description": "The description of the item",
            "nullable": true,
            "example": "Gift by Donation"
          },
          "quantity": {
            "type": "integer",
            "description": "The quantity of the item",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "unitCost": {
            "type": "number",
            "description": "The cost per unit of the item",
            "format": "double",
            "nullable": true,
            "example": 10.50
          },
          "vatRate": {
            "type": "number",
            "description": "The VAT Rate for the item",
            "format": "double",
            "nullable": true
          },
          "vatDescription": {
            "type": "string",
            "description": "The VAT description for the item",
            "nullable": true
          },
          "purchaseOrderNo": {
            "type": "string",
            "description": "The purchase order number for the invoice item",
            "nullable": true,
            "example": "121213"
          },
          "pledgeLineNo": {
            "type": "integer",
            "description": "The pledge line number",
            "format": "int32",
            "nullable": true,
            "example": 0
          },
          "destinationCode": {
            "type": "string",
            "description": "The destination code associated with the item",
            "nullable": true,
            "example": "General"
          },
          "incomeType": {
            "type": "string",
            "description": "The income type for the item",
            "nullable": true,
            "example": "MEMBERSHIP"
          },
          "taxClaimable": {
            "type": "string",
            "description": "If the item is tax claimable",
            "nullable": true,
            "example": "true"
          },
          "originalInvoiceId": {
            "type": "string",
            "description": "The original invoice ID for the associated invoice",
            "nullable": true
          },
          "originalItemId": {
            "type": "string",
            "description": "The original item ID",
            "nullable": true
          },
          "sourceCode": {
            "type": "string",
            "description": "The associated source code for the item",
            "nullable": true,
            "example": "General"
          },
          "dataHubId": {
            "type": "string",
            "description": "The DataHub ID for the invoice",
            "format": "uuid",
            "nullable": true,
            "example": "753c9470-2219-47a8-8b0c-6524842acf14"
          },
          "paid": {
            "type": "number",
            "description": "The amount paid against the invoice item",
            "format": "double",
            "nullable": true,
            "example": 10.50
          },
          "paymentsInProgress": {
            "type": "number",
            "description": "The payments in progress against the invoice item",
            "format": "double",
            "nullable": true,
            "example": 0
          },
          "cancelled": {
            "type": "number",
            "description": "The amount credited / cancelled against the item from credit notes",
            "format": "double",
            "nullable": true,
            "example": 0
          },
          "outstanding": {
            "type": "number",
            "description": "The outstanding balance against the invoice item",
            "format": "double",
            "nullable": true,
            "example": 10.40
          },
          "projectCode": {
            "type": "string",
            "description": "The project code taken from the associated source code",
            "nullable": true,
            "example": "P1"
          },
          "costCentreCode": {
            "type": "string",
            "description": "The cost centre code taken from the source code",
            "nullable": true
          },
          "salesAnalysisCode": {
            "type": "string",
            "description": "The sales analysis code taken from the destination code",
            "nullable": true,
            "example": "3700 - Fin Charity System"
          },
          "vatCode": {
            "type": "string",
            "description": "The VATCode associated with the destination for the invoice",
            "nullable": true,
            "example": "Z"
          },
          "created": {
            "type": "string",
            "description": "The date the item was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "type": "string",
            "description": "The user that created the item",
            "nullable": true,
            "example": "Muriel"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on invoice items associated with an invoice"
      },
      "InvoicePutRequest": {
        "type": "object",
        "properties": {
          "outstandingFromFinance": {
            "type": "number",
            "description": "The outstanding amount left against the invoice",
            "format": "double",
            "nullable": true,
            "example": 120.58
          },
          "modified": {
            "type": "string",
            "description": "The date the invoice was updated",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user that updated the invoice record",
            "nullable": true,
            "example": "Stephen"
          }
        },
        "additionalProperties": false,
        "description": "Contains information for updating an invoice record"
      },
      "InvoiceWithInvoiceIdPutRequest": {
        "type": "object",
        "properties": {
          "invoiceId": {
            "type": "string",
            "description": "The unique ID for the invoice record",
            "nullable": true,
            "example": "00000674"
          },
          "outstandingFromFinance": {
            "type": "number",
            "description": "The outstanding amount left against the invoice",
            "format": "double",
            "nullable": true,
            "example": 120.58
          },
          "modified": {
            "type": "string",
            "description": "The date the invoice was updated",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user that updated the invoice record",
            "nullable": true,
            "example": "Stephen"
          }
        },
        "additionalProperties": false,
        "description": "Contains information for updating an Invoice record"
      },
      "LegacyBeneficiaryGetResponse": {
        "type": "object",
        "properties": {
          "beneficiaryId": {
            "type": "string",
            "description": "The unique ID for the beneficiary record",
            "nullable": true,
            "example": "BEN1000012"
          },
          "legacyId": {
            "type": "string",
            "description": "The unique ID of the parent legacy record",
            "nullable": true,
            "example": "LEG10062"
          },
          "serialNumber": {
            "type": "string",
            "description": "The serial number of the beneficiary contact",
            "nullable": true,
            "example": "000026"
          },
          "beneficiary": {
            "type": "string",
            "description": "The name of the beneficiary",
            "nullable": true,
            "example": "Mrs Dorothy Young"
          },
          "beneficiaryType": {
            "type": "string",
            "description": "The type of beneficiary",
            "nullable": true,
            "example": "Environmental Charity"
          },
          "benefitValue": {
            "type": "number",
            "description": "The monetary value of the benefit",
            "format": "double",
            "nullable": true,
            "example": 21000.00
          },
          "legacyType": {
            "type": "string",
            "description": "The type of legacy",
            "nullable": true,
            "example": "Specific"
          },
          "benefitPercentage": {
            "type": "number",
            "description": "The percentage of the benefit",
            "format": "double",
            "nullable": true,
            "example": 21
          },
          "notes": {
            "type": "string",
            "description": "Notes about the beneficiary",
            "nullable": true,
            "example": "test"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on a legacy beneficiary"
      },
      "LegacyGetResponse": {
        "type": "object",
        "properties": {
          "legacyId": {
            "type": "string",
            "description": "The unique ID for the legacy record",
            "nullable": true,
            "example": "LEG00001"
          },
          "serialNumber": {
            "type": "string",
            "description": "The serial number of the contact associated with the legacy",
            "nullable": true,
            "example": "100456789"
          },
          "description": {
            "type": "string",
            "description": "A description of the legacy",
            "nullable": true,
            "example": "Estate of John Smith"
          },
          "stage": {
            "type": "string",
            "description": "The current stage of the legacy\r\n<ul><li>Must be one of: 'Enquiry', 'Pledged', 'Registered', 'In Progress', 'Complete'</li></ul>",
            "nullable": true,
            "example": "Enquiry"
          },
          "doNotPublish": {
            "type": "boolean",
            "description": "Whether the legacy should not be published",
            "nullable": true,
            "example": false
          },
          "notifiedDate": {
            "type": "string",
            "description": "The date the organisation was notified of the legacy",
            "format": "date-time",
            "nullable": true,
            "example": "2024-01-15"
          },
          "finalisedDate": {
            "type": "string",
            "description": "The date the legacy was finalised",
            "format": "date-time",
            "nullable": true,
            "example": "2024-06-01"
          },
          "staffContact": {
            "type": "string",
            "description": "The staff contact responsible for the legacy",
            "nullable": true,
            "example": "Jane Doe"
          },
          "sourceCode": {
            "type": "string",
            "description": "The source code for the legacy\r\n<ul><li>Must exist as an existing source code</li></ul>",
            "nullable": true,
            "example": "SRC001"
          },
          "notes": {
            "type": "string",
            "description": "Notes about the legacy",
            "nullable": true,
            "example": "Executor has been contacted"
          },
          "executorType": {
            "type": "string",
            "description": "The type of executor for the legacy\r\n<ul><li>Must exist in the 'Executor Type' lookup</li></ul>",
            "nullable": true,
            "example": "Solicitor"
          },
          "willDate": {
            "type": "string",
            "description": "The date the will was made",
            "format": "date-time",
            "nullable": true,
            "example": "2020-03-15"
          },
          "probateDate": {
            "type": "string",
            "description": "The date probate was granted",
            "format": "date-time",
            "nullable": true,
            "example": "2024-02-01"
          },
          "codicilDate": {
            "type": "string",
            "description": "The date of the codicil",
            "format": "date-time",
            "nullable": true,
            "example": "2021-06-01"
          },
          "codicils": {
            "type": "string",
            "description": "Details of any codicils",
            "nullable": true,
            "example": "Codicil added to increase bequest"
          },
          "memorialDetails": {
            "type": "string",
            "description": "Details of any memorial arrangements",
            "nullable": true,
            "example": "Memorial bench in the garden"
          },
          "netEstateValue": {
            "type": "number",
            "description": "The net value of the estate",
            "format": "double",
            "nullable": true,
            "example": 50000.00
          },
          "grossEstateValue": {
            "type": "number",
            "description": "The gross value of the estate",
            "format": "double",
            "nullable": true,
            "example": 100000.00
          },
          "shareHoldingsAndProperty": {
            "type": "string",
            "description": "Details of any share holdings and property",
            "nullable": true,
            "example": "Shares in ABC Ltd and property at 10 High Street"
          },
          "deedOfIndemnity": {
            "type": "boolean",
            "description": "Whether a deed of indemnity has been provided",
            "nullable": true,
            "example": false
          },
          "deedOfVariation": {
            "type": "boolean",
            "description": "Whether a deed of variation has been provided",
            "nullable": true,
            "example": false
          },
          "deedOfVariationDetails": {
            "type": "string",
            "description": "Details of the deed of variation",
            "nullable": true,
            "example": "Variation to increase bequest amount"
          },
          "withdrawn": {
            "type": "string",
            "description": "The date the legacy was withdrawn\r\n<ul><li>WithdrawnBy must be set if Withdrawn is set</li></ul>",
            "format": "date-time",
            "nullable": true,
            "example": "2024-03-01"
          },
          "withdrawnBy": {
            "type": "string",
            "description": "The user who withdrew the legacy\r\n<ul><li>Withdrawn must be set if WithdrawnBy is set</li></ul>",
            "nullable": true,
            "example": "admin"
          },
          "lifeExpectancy": {
            "type": "number",
            "description": "The life expectancy in years",
            "format": "double",
            "nullable": true,
            "example": 85.5
          },
          "modified": {
            "type": "string",
            "description": "The date the record was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2024-01-15"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user who last modified the record\r\n<ul><li>Default is API</li></ul>",
            "nullable": true,
            "example": "API"
          },
          "created": {
            "type": "string",
            "description": "The date the record was created",
            "format": "date-time",
            "nullable": true,
            "example": "2024-01-15"
          },
          "createdBy": {
            "type": "string",
            "description": "The user who created the record",
            "nullable": true,
            "example": "API"
          },
          "legacyItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LegacyItemGetResponse"
            },
            "description": "The legacy items associated with this legacy. Only populated when IncludeLegacyItems is true.",
            "nullable": true
          },
          "beneficiaries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LegacyBeneficiaryGetResponse"
            },
            "description": "The beneficiaries associated with this legacy. Only populated when IncludeBeneficiaries is true.",
            "nullable": true
          },
          "actions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ActionGetResponse"
            },
            "description": "The actions associated with this legacy. Only populated when IncludeActions is true.",
            "nullable": true
          },
          "communications": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CommunicationGetResponse"
            },
            "description": "The communications associated with this legacy. Only populated when IncludeCommunications is true.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the legacy to get"
      },
      "LegacyItemAllocationGetResponse": {
        "type": "object",
        "properties": {
          "legacyItemAllocationId": {
            "type": "string",
            "description": "The unique ID for the legacy item allocation record",
            "nullable": true,
            "example": "LID00001"
          },
          "legacyItemId": {
            "type": "string",
            "description": "The unique ID of the parent legacy item record",
            "nullable": true,
            "example": "LEGITEM00001"
          },
          "destinationCode": {
            "type": "string",
            "description": "The destination code for the allocation",
            "nullable": true,
            "example": "DEST001"
          },
          "paymentRatio": {
            "type": "number",
            "description": "The payment ratio for the allocation",
            "format": "double",
            "nullable": true,
            "example": 100.0
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the legacy item allocation (destination code) to get"
      },
      "LegacyItemAllocationPostRequest": {
        "type": "object",
        "properties": {
          "legacyItemAllocationId": {
            "maxLength": 50,
            "type": "string",
            "description": "The unique ID for the legacy item allocation record\r\n<ul><li>Must not be duplicated in the import data</li></ul><ul><li>Must not already exist</li></ul><ul><li>Default is Sequence: LegacyItemDestinationID</li></ul>",
            "nullable": true,
            "example": "LID00001"
          },
          "legacyItemId": {
            "maxLength": 15,
            "type": "string",
            "description": "The unique ID of the parent legacy item record\r\n<ul><li>This value must reference an existing legacy item</li></ul>",
            "nullable": true,
            "example": "LEGITEM00001"
          },
          "destinationCode": {
            "maxLength": 50,
            "type": "string",
            "description": "The destination code for the allocation\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Must exist as an existing destination code</li></ul>",
            "nullable": true,
            "example": "DEST001"
          },
          "paymentRatio": {
            "type": "number",
            "description": "The payment ratio for the allocation\r\n<ul><li>This value cannot be empty</li></ul>",
            "format": "double",
            "nullable": true,
            "example": 100.0
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the legacy item allocation (destination code) to post from the web request"
      },
      "LegacyItemGetResponse": {
        "type": "object",
        "properties": {
          "itemId": {
            "type": "string",
            "description": "The unique ID for the legacy item record",
            "nullable": true,
            "example": "LEGITEM00001"
          },
          "legacyId": {
            "type": "string",
            "description": "The unique ID of the parent legacy record",
            "nullable": true,
            "example": "LEG00001"
          },
          "description": {
            "type": "string",
            "description": "A description of the legacy item",
            "nullable": true,
            "example": "Residuary bequest"
          },
          "type": {
            "type": "string",
            "description": "The type of legacy\r\n<ul><li>Must exist in the 'Legacy Type' lookup</li></ul>",
            "nullable": true,
            "example": "Pecuniary"
          },
          "estimatedValue": {
            "type": "number",
            "description": "The estimated value of the legacy item",
            "format": "double",
            "nullable": true,
            "example": 25000.00
          },
          "range": {
            "type": "string",
            "description": "The range of the legacy item value",
            "nullable": true,
            "example": "0-100"
          },
          "itemType": {
            "type": "string",
            "description": "The item type of the legacy item\r\n<ul><li>Must exist in the 'Legacy Item Type' lookup</li></ul>",
            "nullable": true,
            "example": "Property"
          },
          "paymentMethod": {
            "type": "string",
            "description": "The payment method for the legacy item\r\n<ul><li>Must exist in the 'Payment Type' lookup</li></ul>",
            "nullable": true,
            "example": "Cheque"
          },
          "estimatedReceiptDate": {
            "type": "string",
            "description": "The estimated date of receipt for the legacy item",
            "format": "date-time",
            "nullable": true,
            "example": "2024-06-01"
          },
          "actualReceiptDate": {
            "type": "string",
            "description": "The actual date of receipt for the legacy item",
            "format": "date-time",
            "nullable": true,
            "example": "2024-07-15"
          },
          "taxClaimable": {
            "type": "boolean",
            "description": "Whether the legacy item is tax claimable",
            "nullable": true,
            "example": true
          },
          "currency": {
            "type": "string",
            "description": "The currency of the legacy item",
            "nullable": true,
            "example": "GBP"
          },
          "sourceCode": {
            "type": "string",
            "description": "The source code for the legacy item\r\n<ul><li>Must exist as an existing source code</li></ul>",
            "nullable": true,
            "example": "SRC001"
          },
          "status": {
            "type": "string",
            "description": "The status of the legacy item",
            "nullable": true,
            "example": "Pledged"
          },
          "notes": {
            "type": "string",
            "description": "Notes about the legacy item",
            "nullable": true,
            "example": "First instalment received"
          },
          "created": {
            "type": "string",
            "description": "The date the record was created",
            "format": "date-time",
            "nullable": true,
            "example": "2024-01-15"
          },
          "createdBy": {
            "type": "string",
            "description": "The user who created the record",
            "nullable": true,
            "example": "API"
          },
          "modified": {
            "type": "string",
            "description": "The date the record was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2024-01-15"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user who last modified the record\r\n<ul><li>Default is API</li></ul>",
            "nullable": true,
            "example": "API"
          },
          "legacyItemAllocations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LegacyItemAllocationGetResponse"
            },
            "description": "The legacy item allocations (destination codes) associated with this legacy item. Only populated when IncludeLegacyItemAllocations is true.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the legacy item to get"
      },
      "LegacyItemPostRequest": {
        "type": "object",
        "properties": {
          "itemId": {
            "maxLength": 15,
            "type": "string",
            "description": "The unique ID for the legacy item record\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Must not be duplicated in the import data</li></ul><ul><li>Must not already exist</li></ul><ul><li>Default is Sequence: LegacyPledgeItemID</li></ul>",
            "nullable": true,
            "example": "LEGITEM00001"
          },
          "legacyId": {
            "maxLength": 50,
            "type": "string",
            "description": "The unique ID of the parent legacy record\r\n<ul><li>This value cannot be empty</li></ul><ul><li>This value must exist as an existing legacy</li></ul>",
            "nullable": true,
            "example": "LEG00001"
          },
          "description": {
            "maxLength": 400,
            "type": "string",
            "description": "A description of the legacy item",
            "nullable": true,
            "example": "Residuary bequest"
          },
          "type": {
            "maxLength": 50,
            "type": "string",
            "description": "The type of legacy\r\n<ul><li>Must exist in the 'Legacy Type' lookup</li></ul>",
            "nullable": true,
            "example": "Pecuniary"
          },
          "estimatedValue": {
            "type": "number",
            "description": "The estimated value of the legacy item",
            "format": "double",
            "nullable": true,
            "example": 25000.00
          },
          "range": {
            "maxLength": 50,
            "type": "string",
            "description": "The range of the legacy item value",
            "nullable": true,
            "example": "0-100"
          },
          "itemType": {
            "maxLength": 50,
            "type": "string",
            "description": "The item type of the legacy item\r\n<ul><li>Must exist in the 'Legacy Item Type' lookup</li></ul>",
            "nullable": true,
            "example": "Property"
          },
          "paymentMethod": {
            "maxLength": 50,
            "type": "string",
            "description": "The payment method for the legacy item\r\n<ul><li>Must exist in the 'Payment Type' lookup</li></ul>",
            "nullable": true,
            "example": "Cheque"
          },
          "estimatedReceiptDate": {
            "type": "string",
            "description": "The estimated date of receipt for the legacy item",
            "format": "date-time",
            "nullable": true,
            "example": "2024-06-01"
          },
          "actualReceiptDate": {
            "type": "string",
            "description": "The actual date of receipt for the legacy item",
            "format": "date-time",
            "nullable": true,
            "example": "2024-07-15"
          },
          "taxClaimable": {
            "type": "boolean",
            "description": "Whether the legacy item is tax claimable",
            "nullable": true,
            "example": true
          },
          "currency": {
            "maxLength": 25,
            "type": "string",
            "description": "The currency of the legacy item",
            "nullable": true,
            "example": "GBP"
          },
          "sourceCode": {
            "maxLength": 20,
            "type": "string",
            "description": "The source code for the legacy item\r\n<ul><li>Must exist as an existing source code</li></ul>",
            "nullable": true,
            "example": "SRC001"
          },
          "status": {
            "maxLength": 50,
            "type": "string",
            "description": "The status of the legacy item",
            "nullable": true,
            "example": "Pledged"
          },
          "notes": {
            "type": "string",
            "description": "Notes about the legacy item",
            "nullable": true,
            "example": "First instalment received"
          },
          "created": {
            "type": "string",
            "description": "The date the record was created",
            "format": "date-time",
            "nullable": true,
            "example": "2024-01-15"
          },
          "createdBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user who created the record\r\n<ul><li>Default is API</li></ul>",
            "nullable": true,
            "example": "API"
          },
          "modified": {
            "type": "string",
            "description": "The date the record was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2024-01-15"
          },
          "modifiedBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user who last modified the record\r\n<ul><li>Default is API</li></ul>",
            "nullable": true,
            "example": "API"
          },
          "legacyItemAllocations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LegacyItemAllocationPostRequest"
            },
            "description": "The legacy item allocations (destination codes) to create alongside this legacy item",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the legacy item to post from the web request"
      },
      "LegacyItemPutBulkRequest": {
        "type": "object",
        "properties": {
          "itemId": {
            "maxLength": 15,
            "type": "string",
            "description": "The unique ID for the legacy item record",
            "nullable": true,
            "example": "LEGITEM00001"
          },
          "description": {
            "maxLength": 400,
            "type": "string",
            "description": "A description of the legacy item",
            "nullable": true,
            "example": "Residuary bequest"
          },
          "type": {
            "maxLength": 50,
            "type": "string",
            "description": "The type of legacy\r\n<ul><li>Must exist in the 'Legacy Type' lookup</li></ul>",
            "nullable": true,
            "example": "Pecuniary"
          },
          "estimatedValue": {
            "type": "number",
            "description": "The estimated value of the legacy item",
            "format": "double",
            "nullable": true,
            "example": 25000.00
          },
          "range": {
            "maxLength": 50,
            "type": "string",
            "description": "The range of the legacy item value",
            "nullable": true,
            "example": "0-100"
          },
          "itemType": {
            "maxLength": 50,
            "type": "string",
            "description": "The item type of the legacy item\r\n<ul><li>Must exist in the 'Legacy Item Type' lookup</li></ul>",
            "nullable": true,
            "example": "Property"
          },
          "paymentMethod": {
            "maxLength": 50,
            "type": "string",
            "description": "The payment method for the legacy item\r\n<ul><li>Must exist in the 'Payment Type' lookup</li></ul>",
            "nullable": true,
            "example": "Cheque"
          },
          "estimatedReceiptDate": {
            "type": "string",
            "description": "The estimated date of receipt for the legacy item",
            "format": "date-time",
            "nullable": true,
            "example": "2024-06-01"
          },
          "actualReceiptDate": {
            "type": "string",
            "description": "The actual date of receipt for the legacy item",
            "format": "date-time",
            "nullable": true,
            "example": "2024-07-15"
          },
          "taxClaimable": {
            "type": "boolean",
            "description": "Whether the legacy item is tax claimable",
            "nullable": true,
            "example": true
          },
          "currency": {
            "maxLength": 25,
            "type": "string",
            "description": "The currency of the legacy item",
            "nullable": true,
            "example": "GBP"
          },
          "sourceCode": {
            "maxLength": 20,
            "type": "string",
            "description": "The source code for the legacy item\r\n<ul><li>Must exist as an existing source code</li></ul>",
            "nullable": true,
            "example": "SRC001"
          },
          "status": {
            "maxLength": 50,
            "type": "string",
            "description": "The status of the legacy item",
            "nullable": true,
            "example": "Pledged"
          },
          "notes": {
            "type": "string",
            "description": "Notes about the legacy item",
            "nullable": true,
            "example": "First instalment received"
          },
          "modified": {
            "type": "string",
            "description": "The date the record was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2024-01-15"
          },
          "modifiedBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user who last modified the record\r\n<ul><li>Default is API</li></ul>",
            "nullable": true,
            "example": "API"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the legacy item record for bulk updates"
      },
      "LegacyItemPutRequest": {
        "type": "object",
        "properties": {
          "description": {
            "maxLength": 400,
            "type": "string",
            "description": "A description of the legacy item",
            "nullable": true,
            "example": "Residuary bequest"
          },
          "type": {
            "maxLength": 50,
            "type": "string",
            "description": "The type of legacy\r\n<ul><li>Must exist in the 'Legacy Type' lookup</li></ul>",
            "nullable": true,
            "example": "Pecuniary"
          },
          "estimatedValue": {
            "type": "number",
            "description": "The estimated value of the legacy item",
            "format": "double",
            "nullable": true,
            "example": 25000.00
          },
          "range": {
            "maxLength": 50,
            "type": "string",
            "description": "The range of the legacy item value",
            "nullable": true,
            "example": "0-100"
          },
          "itemType": {
            "maxLength": 50,
            "type": "string",
            "description": "The item type of the legacy item\r\n<ul><li>Must exist in the 'Legacy Item Type' lookup</li></ul>",
            "nullable": true,
            "example": "Property"
          },
          "paymentMethod": {
            "maxLength": 50,
            "type": "string",
            "description": "The payment method for the legacy item\r\n<ul><li>Must exist in the 'Payment Type' lookup</li></ul>",
            "nullable": true,
            "example": "Cheque"
          },
          "estimatedReceiptDate": {
            "type": "string",
            "description": "The estimated date of receipt for the legacy item",
            "format": "date-time",
            "nullable": true,
            "example": "2024-06-01"
          },
          "actualReceiptDate": {
            "type": "string",
            "description": "The actual date of receipt for the legacy item",
            "format": "date-time",
            "nullable": true,
            "example": "2024-07-15"
          },
          "taxClaimable": {
            "type": "boolean",
            "description": "Whether the legacy item is tax claimable",
            "nullable": true,
            "example": true
          },
          "currency": {
            "maxLength": 25,
            "type": "string",
            "description": "The currency of the legacy item",
            "nullable": true,
            "example": "GBP"
          },
          "sourceCode": {
            "maxLength": 20,
            "type": "string",
            "description": "The source code for the legacy item\r\n<ul><li>Must exist as an existing source code</li></ul>",
            "nullable": true,
            "example": "SRC001"
          },
          "status": {
            "maxLength": 50,
            "type": "string",
            "description": "The status of the legacy item",
            "nullable": true,
            "example": "Pledged"
          },
          "notes": {
            "type": "string",
            "description": "Notes about the legacy item",
            "nullable": true,
            "example": "First instalment received"
          },
          "modified": {
            "type": "string",
            "description": "The date the record was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2024-01-15"
          },
          "modifiedBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user who last modified the record\r\n<ul><li>Default is API</li></ul>",
            "nullable": true,
            "example": "API"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the legacy item record for updates"
      },
      "LegacyPostRequest": {
        "type": "object",
        "properties": {
          "legacyId": {
            "maxLength": 50,
            "type": "string",
            "description": "The unique ID for the legacy record\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Must not be duplicated in the import data</li></ul><ul><li>Must not already exist</li></ul><ul><li>Default is Sequence: LegacyID</li></ul>",
            "nullable": true,
            "example": "LEG00001"
          },
          "serialNumber": {
            "maxLength": 50,
            "type": "string",
            "description": "The serial number of the contact associated with the legacy\r\n<ul><li>This value cannot be empty</li></ul><ul><li>This value must exist as an existing contact</li></ul>",
            "nullable": true,
            "example": "100456789"
          },
          "description": {
            "maxLength": 2000,
            "type": "string",
            "description": "A description of the legacy",
            "nullable": true,
            "example": "Estate of John Smith"
          },
          "stage": {
            "maxLength": 50,
            "type": "string",
            "description": "The current stage of the legacy\r\n<ul><li>Must be one of: 'Enquiry', 'Pledged', 'Registered', 'In Progress', 'Complete'</li></ul>",
            "nullable": true,
            "example": "Enquiry"
          },
          "doNotPublish": {
            "type": "boolean",
            "description": "Whether the legacy should not be published",
            "nullable": true,
            "example": false
          },
          "notifiedDate": {
            "type": "string",
            "description": "The date the organisation was notified of the legacy",
            "format": "date-time",
            "nullable": true,
            "example": "2024-01-15"
          },
          "finalisedDate": {
            "type": "string",
            "description": "The date the legacy was finalised",
            "format": "date-time",
            "nullable": true,
            "example": "2024-06-01"
          },
          "staffContact": {
            "maxLength": 100,
            "type": "string",
            "description": "The staff contact responsible for the legacy",
            "nullable": true,
            "example": "Jane Doe"
          },
          "sourceCode": {
            "maxLength": 20,
            "type": "string",
            "description": "The source code for the legacy\r\n<ul><li>Must exist as an existing source code</li></ul>",
            "nullable": true,
            "example": "SRC001"
          },
          "notes": {
            "type": "string",
            "description": "Notes about the legacy",
            "nullable": true,
            "example": "Executor has been contacted"
          },
          "executorType": {
            "maxLength": 50,
            "type": "string",
            "description": "The type of executor for the legacy\r\n<ul><li>Must exist in the 'Executor Type' lookup</li></ul>",
            "nullable": true,
            "example": "Solicitor"
          },
          "willDate": {
            "type": "string",
            "description": "The date the will was made",
            "format": "date-time",
            "nullable": true,
            "example": "2020-03-15"
          },
          "probateDate": {
            "type": "string",
            "description": "The date probate was granted",
            "format": "date-time",
            "nullable": true,
            "example": "2024-02-01"
          },
          "codicilDate": {
            "type": "string",
            "description": "The date of the codicil",
            "format": "date-time",
            "nullable": true,
            "example": "2021-06-01"
          },
          "codicils": {
            "maxLength": 1000,
            "type": "string",
            "description": "Details of any codicils",
            "nullable": true,
            "example": "Codicil added to increase bequest"
          },
          "memorialDetails": {
            "maxLength": 1000,
            "type": "string",
            "description": "Details of any memorial arrangements",
            "nullable": true,
            "example": "Memorial bench in the garden"
          },
          "netEstateValue": {
            "type": "number",
            "description": "The net value of the estate",
            "format": "double",
            "nullable": true,
            "example": 50000.00
          },
          "grossEstateValue": {
            "type": "number",
            "description": "The gross value of the estate",
            "format": "double",
            "nullable": true,
            "example": 100000.00
          },
          "shareHoldingsAndProperty": {
            "type": "string",
            "description": "Details of any share holdings and property",
            "nullable": true,
            "example": "Shares in ABC Ltd and property at 10 High Street"
          },
          "deedOfIndemnity": {
            "type": "boolean",
            "description": "Whether a deed of indemnity has been provided",
            "nullable": true,
            "example": false
          },
          "deedOfVariation": {
            "type": "boolean",
            "description": "Whether a deed of variation has been provided",
            "nullable": true,
            "example": false
          },
          "deedOfVariationDetails": {
            "maxLength": 1000,
            "type": "string",
            "description": "Details of the deed of variation",
            "nullable": true,
            "example": "Variation to increase bequest amount"
          },
          "withdrawn": {
            "type": "string",
            "description": "The date the legacy was withdrawn\r\n<ul><li>WithdrawnBy must be set if Withdrawn is set</li></ul>",
            "format": "date-time",
            "nullable": true,
            "example": "2024-03-01"
          },
          "withdrawnBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user who withdrew the legacy\r\n<ul><li>Withdrawn must be set if WithdrawnBy is set</li></ul>",
            "nullable": true,
            "example": "admin"
          },
          "lifeExpectancy": {
            "type": "number",
            "description": "The life expectancy in years",
            "format": "double",
            "nullable": true,
            "example": 85.5
          },
          "modified": {
            "type": "string",
            "description": "The date the record was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2024-01-15"
          },
          "modifiedBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user who last modified the record\r\n<ul><li>Default is API</li></ul>",
            "nullable": true,
            "example": "API"
          },
          "created": {
            "type": "string",
            "description": "The date the record was created",
            "format": "date-time",
            "nullable": true,
            "example": "2024-01-15"
          },
          "createdBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user who created the record\r\n<ul><li>Default is API</li></ul>",
            "nullable": true,
            "example": "API"
          },
          "legacyItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LegacyItemPostRequest"
            },
            "description": "The legacy items to create alongside this legacy",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the legacy to post from the web request"
      },
      "LegacyPutBulkRequest": {
        "type": "object",
        "properties": {
          "legacyId": {
            "maxLength": 50,
            "type": "string",
            "description": "The unique ID for the legacy record",
            "nullable": true,
            "example": "LEG00001"
          },
          "description": {
            "maxLength": 2000,
            "type": "string",
            "description": "A description of the legacy",
            "nullable": true,
            "example": "Estate of John Smith"
          },
          "stage": {
            "maxLength": 50,
            "type": "string",
            "description": "The current stage of the legacy\r\n<ul><li>Must be one of: 'Enquiry', 'Pledged', 'Registered', 'In Progress', 'Complete'</li></ul>",
            "nullable": true,
            "example": "Enquiry"
          },
          "doNotPublish": {
            "type": "boolean",
            "description": "Whether the legacy should not be published",
            "nullable": true,
            "example": false
          },
          "notifiedDate": {
            "type": "string",
            "description": "The date the organisation was notified of the legacy",
            "format": "date-time",
            "nullable": true,
            "example": "2024-01-15"
          },
          "finalisedDate": {
            "type": "string",
            "description": "The date the legacy was finalised",
            "format": "date-time",
            "nullable": true,
            "example": "2024-06-01"
          },
          "staffContact": {
            "maxLength": 100,
            "type": "string",
            "description": "The staff contact responsible for the legacy",
            "nullable": true,
            "example": "Jane Doe"
          },
          "sourceCode": {
            "maxLength": 20,
            "type": "string",
            "description": "The source code for the legacy\r\n<ul><li>Must exist as an existing source code</li></ul>",
            "nullable": true,
            "example": "SRC001"
          },
          "notes": {
            "type": "string",
            "description": "Notes about the legacy",
            "nullable": true,
            "example": "Executor has been contacted"
          },
          "executorType": {
            "maxLength": 50,
            "type": "string",
            "description": "The type of executor for the legacy\r\n<ul><li>Must exist in the 'Executor Type' lookup</li></ul>",
            "nullable": true,
            "example": "Solicitor"
          },
          "willDate": {
            "type": "string",
            "description": "The date the will was made",
            "format": "date-time",
            "nullable": true,
            "example": "2020-03-15"
          },
          "probateDate": {
            "type": "string",
            "description": "The date probate was granted",
            "format": "date-time",
            "nullable": true,
            "example": "2024-02-01"
          },
          "codicilDate": {
            "type": "string",
            "description": "The date of the codicil",
            "format": "date-time",
            "nullable": true,
            "example": "2021-06-01"
          },
          "codicils": {
            "maxLength": 1000,
            "type": "string",
            "description": "Details of any codicils",
            "nullable": true,
            "example": "Codicil added to increase bequest"
          },
          "memorialDetails": {
            "maxLength": 1000,
            "type": "string",
            "description": "Details of any memorial arrangements",
            "nullable": true,
            "example": "Memorial bench in the garden"
          },
          "netEstateValue": {
            "type": "number",
            "description": "The net value of the estate",
            "format": "double",
            "nullable": true,
            "example": 50000.00
          },
          "grossEstateValue": {
            "type": "number",
            "description": "The gross value of the estate",
            "format": "double",
            "nullable": true,
            "example": 100000.00
          },
          "shareHoldingsAndProperty": {
            "type": "string",
            "description": "Details of any share holdings and property",
            "nullable": true,
            "example": "Shares in ABC Ltd and property at 10 High Street"
          },
          "deedOfIndemnity": {
            "type": "boolean",
            "description": "Whether a deed of indemnity has been provided",
            "nullable": true,
            "example": false
          },
          "deedOfVariation": {
            "type": "boolean",
            "description": "Whether a deed of variation has been provided",
            "nullable": true,
            "example": false
          },
          "deedOfVariationDetails": {
            "maxLength": 1000,
            "type": "string",
            "description": "Details of the deed of variation",
            "nullable": true,
            "example": "Variation to increase bequest amount"
          },
          "withdrawn": {
            "type": "string",
            "description": "The date the legacy was withdrawn\r\n<ul><li>WithdrawnBy must be set if Withdrawn is set</li></ul>",
            "format": "date-time",
            "nullable": true,
            "example": "2024-03-01"
          },
          "withdrawnBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user who withdrew the legacy\r\n<ul><li>Withdrawn must be set if WithdrawnBy is set</li></ul>",
            "nullable": true,
            "example": "admin"
          },
          "lifeExpectancy": {
            "type": "number",
            "description": "The life expectancy in years",
            "format": "double",
            "nullable": true,
            "example": 85.5
          },
          "modified": {
            "type": "string",
            "description": "The date the record was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2024-01-15"
          },
          "modifiedBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user who last modified the record\r\n<ul><li>Default is API</li></ul>",
            "nullable": true,
            "example": "API"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the legacy record for bulk updates"
      },
      "LegacyPutRequest": {
        "type": "object",
        "properties": {
          "description": {
            "maxLength": 2000,
            "type": "string",
            "description": "A description of the legacy",
            "nullable": true,
            "example": "Estate of John Smith"
          },
          "stage": {
            "maxLength": 50,
            "type": "string",
            "description": "The current stage of the legacy\r\n<ul><li>Must be one of: 'Enquiry', 'Pledged', 'Registered', 'In Progress', 'Complete'</li></ul>",
            "nullable": true,
            "example": "Enquiry"
          },
          "doNotPublish": {
            "type": "boolean",
            "description": "Whether the legacy should not be published",
            "nullable": true,
            "example": false
          },
          "notifiedDate": {
            "type": "string",
            "description": "The date the organisation was notified of the legacy",
            "format": "date-time",
            "nullable": true,
            "example": "2024-01-15"
          },
          "finalisedDate": {
            "type": "string",
            "description": "The date the legacy was finalised",
            "format": "date-time",
            "nullable": true,
            "example": "2024-06-01"
          },
          "staffContact": {
            "maxLength": 100,
            "type": "string",
            "description": "The staff contact responsible for the legacy",
            "nullable": true,
            "example": "Jane Doe"
          },
          "sourceCode": {
            "maxLength": 20,
            "type": "string",
            "description": "The source code for the legacy\r\n<ul><li>Must exist as an existing source code</li></ul>",
            "nullable": true,
            "example": "SRC001"
          },
          "notes": {
            "type": "string",
            "description": "Notes about the legacy",
            "nullable": true,
            "example": "Executor has been contacted"
          },
          "executorType": {
            "maxLength": 50,
            "type": "string",
            "description": "The type of executor for the legacy\r\n<ul><li>Must exist in the 'Executor Type' lookup</li></ul>",
            "nullable": true,
            "example": "Solicitor"
          },
          "willDate": {
            "type": "string",
            "description": "The date the will was made",
            "format": "date-time",
            "nullable": true,
            "example": "2020-03-15"
          },
          "probateDate": {
            "type": "string",
            "description": "The date probate was granted",
            "format": "date-time",
            "nullable": true,
            "example": "2024-02-01"
          },
          "codicilDate": {
            "type": "string",
            "description": "The date of the codicil",
            "format": "date-time",
            "nullable": true,
            "example": "2021-06-01"
          },
          "codicils": {
            "maxLength": 1000,
            "type": "string",
            "description": "Details of any codicils",
            "nullable": true,
            "example": "Codicil added to increase bequest"
          },
          "memorialDetails": {
            "maxLength": 1000,
            "type": "string",
            "description": "Details of any memorial arrangements",
            "nullable": true,
            "example": "Memorial bench in the garden"
          },
          "netEstateValue": {
            "type": "number",
            "description": "The net value of the estate",
            "format": "double",
            "nullable": true,
            "example": 50000.00
          },
          "grossEstateValue": {
            "type": "number",
            "description": "The gross value of the estate",
            "format": "double",
            "nullable": true,
            "example": 100000.00
          },
          "shareHoldingsAndProperty": {
            "type": "string",
            "description": "Details of any share holdings and property",
            "nullable": true,
            "example": "Shares in ABC Ltd and property at 10 High Street"
          },
          "deedOfIndemnity": {
            "type": "boolean",
            "description": "Whether a deed of indemnity has been provided",
            "nullable": true,
            "example": false
          },
          "deedOfVariation": {
            "type": "boolean",
            "description": "Whether a deed of variation has been provided",
            "nullable": true,
            "example": false
          },
          "deedOfVariationDetails": {
            "maxLength": 1000,
            "type": "string",
            "description": "Details of the deed of variation",
            "nullable": true,
            "example": "Variation to increase bequest amount"
          },
          "withdrawn": {
            "type": "string",
            "description": "The date the legacy was withdrawn\r\n<ul><li>WithdrawnBy must be set if Withdrawn is set</li></ul>",
            "format": "date-time",
            "nullable": true,
            "example": "2024-03-01"
          },
          "withdrawnBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user who withdrew the legacy\r\n<ul><li>Withdrawn must be set if WithdrawnBy is set</li></ul>",
            "nullable": true,
            "example": "admin"
          },
          "lifeExpectancy": {
            "type": "number",
            "description": "The life expectancy in years",
            "format": "double",
            "nullable": true,
            "example": 85.5
          },
          "modified": {
            "type": "string",
            "description": "The date the record was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2024-01-15"
          },
          "modifiedBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user who last modified the record\r\n<ul><li>Default is API</li></ul>",
            "nullable": true,
            "example": "API"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the legacy record for updates"
      },
      "LookupGetResponse": {
        "type": "object",
        "properties": {
          "lookupName": {
            "type": "string",
            "description": "The LookupName of the Lookup",
            "nullable": true,
            "example": "Contact Type"
          },
          "lookupType": {
            "type": "string",
            "description": "The record type the Lookup applies to",
            "nullable": true,
            "example": "Contact"
          },
          "lookupField": {
            "type": "string",
            "description": "The Field that the lookup Applies to",
            "nullable": true,
            "example": "Contact Type"
          },
          "notUserEditable": {
            "type": "boolean",
            "description": "Whether the Lookup is user editable",
            "nullable": true,
            "example": true
          },
          "created": {
            "type": "string",
            "description": "When the record was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "type": "string",
            "description": "The user who created the record",
            "nullable": true,
            "example": "Admit"
          },
          "modified": {
            "type": "string",
            "description": "The date the record was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user who last modified the record",
            "nullable": true,
            "example": "Admit"
          },
          "singleValueLookup": {
            "type": "boolean",
            "description": "Whether the Lookup will only contain a single Value",
            "nullable": true,
            "example": false
          },
          "recordOwner": {
            "type": "string",
            "description": "The owner of the Lookup record",
            "nullable": true,
            "example": "Contact Admin"
          },
          "notes": {
            "type": "string",
            "description": "The notes for the Lookup",
            "nullable": true,
            "example": "Free text notes in here"
          },
          "lookupValues": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LookupValueGetResponse"
            },
            "description": "The values of the lookup",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on a lookup record"
      },
      "LookupValueGetResponse": {
        "type": "object",
        "properties": {
          "lookupName": {
            "type": "string",
            "description": "The LookupName the LookupValue corresponds to",
            "nullable": true,
            "example": "Profile"
          },
          "lookupValue1": {
            "type": "string",
            "description": "Value 1 of the LookupValue",
            "nullable": true,
            "example": "Prospect Type"
          },
          "lookupValue2": {
            "type": "string",
            "description": "Value 2 of the LookupValue",
            "nullable": true,
            "example": "Major Gift"
          },
          "lookupValue3": {
            "type": "string",
            "description": "Value 3 of the LookupValue",
            "nullable": true,
            "example": "Prospect"
          },
          "lookupValue4": {
            "type": "string",
            "description": "Value 4 of the LookupValue",
            "nullable": true,
            "example": null
          },
          "lookupValue5": {
            "type": "string",
            "description": "Value 5 of the LookupValue",
            "nullable": true,
            "example": null
          },
          "notes": {
            "type": "string",
            "description": "The notes for the LookupValue",
            "nullable": true,
            "example": null
          },
          "lookupRank": {
            "type": "integer",
            "description": "The rank of the LookupValue",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "notUserEditable": {
            "type": "boolean",
            "description": "Whether the LookupValue is user editable",
            "nullable": true,
            "example": false
          }
        },
        "additionalProperties": false,
        "description": "Contains information on a lookupValue record"
      },
      "LookupValuePostRequest": {
        "required": [
          "lookupName"
        ],
        "type": "object",
        "properties": {
          "lookupName": {
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "description": "The LookupName the LookupValue corresponds to",
            "example": "Profile"
          },
          "lookupValue1": {
            "maxLength": 255,
            "type": "string",
            "description": "Value 1 of the LookupValue",
            "nullable": true,
            "example": "Prospect Type"
          },
          "lookupValue2": {
            "maxLength": 255,
            "type": "string",
            "description": "Value 2 of the LookupValue",
            "nullable": true,
            "example": "Major Gift"
          },
          "lookupValue3": {
            "maxLength": 255,
            "type": "string",
            "description": "Value 3 of the LookupValue",
            "nullable": true,
            "example": "Prospect"
          },
          "lookupValue4": {
            "maxLength": 255,
            "type": "string",
            "description": "Value 4 of the LookupValue",
            "nullable": true,
            "example": null
          },
          "lookupValue5": {
            "maxLength": 255,
            "type": "string",
            "description": "Value 5 of the LookupValue",
            "nullable": true,
            "example": null
          },
          "notes": {
            "maxLength": 500,
            "type": "string",
            "description": "The notes for the LookupValue",
            "nullable": true,
            "example": null
          },
          "lookupRank": {
            "type": "integer",
            "description": "The rank of the LookupValue",
            "format": "int32",
            "nullable": true,
            "example": 1
          }
        },
        "additionalProperties": false,
        "description": "Contains information on a lookupValue record"
      },
      "MembershipAdditionalMemberGetResponse": {
        "type": "object",
        "properties": {
          "membershipCostId": {
            "type": "string",
            "description": "The unique identifier for this membership cost",
            "nullable": true,
            "example": "MC0000742"
          },
          "membershipDetailId": {
            "type": "string",
            "description": "The unique identifier for this membership detail",
            "nullable": true,
            "example": "MD121001"
          },
          "vatRate": {
            "type": "string",
            "description": "The VAT rate for the additional member",
            "nullable": true,
            "example": "20"
          },
          "destinationCode": {
            "type": "string",
            "description": "The Destination Code for the additional member",
            "nullable": true,
            "example": "General"
          },
          "suggestedAmount": {
            "type": "boolean",
            "description": "Whether the cost value for the Additional Member is a suggested amount",
            "nullable": true,
            "example": false
          },
          "optional": {
            "type": "boolean",
            "description": "Whether the Additional Member is optional",
            "nullable": true,
            "example": false
          },
          "renewal": {
            "type": "boolean",
            "description": "Whether the Additional Member is for a renewal",
            "nullable": true,
            "example": true
          },
          "originalAmount": {
            "type": "number",
            "description": "The original cost value for the additional member",
            "format": "double",
            "nullable": true,
            "example": 23.67
          },
          "discountsApplied": {
            "type": "string",
            "description": "Discounts applied to the additional member",
            "nullable": true,
            "example": "DIS0046"
          },
          "proRataAmount": {
            "type": "number",
            "description": "The pro rata value for the additional member",
            "format": "double",
            "nullable": true,
            "example": "10.00M"
          },
          "membershipCardNumber": {
            "type": "string",
            "description": "The Membership card number of the additional member",
            "nullable": true,
            "example": "1234"
          },
          "costId": {
            "type": "string",
            "description": "The unique identifier for this type of membership cost",
            "nullable": true,
            "example": "MC0000411"
          },
          "memberType": {
            "type": "string",
            "description": "Cost Description",
            "nullable": true,
            "example": "Adult"
          },
          "amount": {
            "type": "number",
            "description": "The cost value for the additional member",
            "format": "double",
            "nullable": true,
            "example": "25.00M"
          },
          "serialNumber": {
            "type": "string",
            "description": "The SerialNumber of the additional member",
            "nullable": true,
            "example": "000002"
          },
          "contactDataHubId": {
            "type": "string",
            "description": "A reference to the contact in Access DataHub",
            "format": "uuid",
            "nullable": true,
            "example": "5bdc2914-c3a4-4aa7-a2ee-e79129a56df5"
          },
          "contactExternalRef": {
            "type": "string",
            "description": "A reference to the contact in an external system",
            "nullable": true,
            "example": "EXT0012"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on any additional members connected to a membership"
      },
      "MembershipAdditionalMemberPostRequest": {
        "type": "object",
        "properties": {
          "costId": {
            "maxLength": 50,
            "type": "string",
            "description": "The unique identifier for this type of membership cost",
            "nullable": true,
            "example": "MC0000411"
          },
          "memberType": {
            "maxLength": 100,
            "type": "string",
            "description": "Cost Description",
            "nullable": true,
            "example": "Adult"
          },
          "amount": {
            "type": "number",
            "description": "The cost value for the additional member",
            "format": "double",
            "nullable": true,
            "example": "25.00M"
          },
          "serialNumber": {
            "maxLength": 50,
            "type": "string",
            "description": "The SerialNumber of the additional member",
            "nullable": true,
            "example": "000002"
          },
          "contactDataHubId": {
            "type": "string",
            "description": "A reference to the contact in Access DataHub",
            "format": "uuid",
            "nullable": true,
            "example": "5bdc2914-c3a4-4aa7-a2ee-e79129a56df5"
          },
          "contactExternalRef": {
            "maxLength": 50,
            "type": "string",
            "description": "A reference to the contact in an external system",
            "nullable": true,
            "example": "EXT0012"
          },
          "membershipDetailId": {
            "type": "string",
            "description": "The Membership Detail ID of the Membership record",
            "nullable": true,
            "example": "MD039973"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the additional members for posts"
      },
      "MembershipAutoRenewPostRequest": {
        "type": "object",
        "properties": {
          "membershipIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The id of the membership",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information for renewing a membership"
      },
      "MembershipCancelPostRequest": {
        "type": "object",
        "properties": {
          "cancellationDate": {
            "type": "string",
            "description": "The date the membership was cancelled",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "cancellationReason": {
            "type": "string",
            "description": "The reason that the membership was cancelled\r\n<ul><li>Must be populated</li></ul><ul><li>Reason must be in the 'MembershipCancellationReason' lookup</li></ul>",
            "nullable": true,
            "example": "Too expensive"
          },
          "cancellationNotes": {
            "type": "string",
            "description": "Any notes with regards to membership being cancelled",
            "nullable": true,
            "example": "Couldn't afford the renewal fee"
          },
          "cancelledBy": {
            "type": "string",
            "description": "The user that cancelled the membership\r\n<ul><li>Default is API</li></ul>",
            "nullable": true,
            "example": "Peter Parker"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the membership to cancel for posts"
      },
      "MembershipCardGetResponse": {
        "type": "object",
        "properties": {
          "membershipId": {
            "type": "string",
            "description": "The unique identifier for this membership header",
            "nullable": true,
            "example": "M126121"
          },
          "membershipCardNumber": {
            "type": "string",
            "description": "The membership card number\r\n<ul><li>Value must be specified</li></ul><ul><li>Value must be unique in import</li></ul><ul><li>Card must not already exist</li></ul>",
            "nullable": true,
            "example": "1234"
          },
          "membershipDetailId": {
            "type": "string",
            "description": "The unique identifier for the membership detail\r\n<ul><li>Value must be specified</li></ul><ul><li>Must exist as an existing membership</li></ul>",
            "nullable": true,
            "example": "MD121001"
          },
          "serialNumber": {
            "type": "string",
            "description": "The Serial number that the membership card belongs to\r\n<ul><li>Value must be specified</li></ul><ul><li>Value must be a member of the membership</li></ul>",
            "nullable": true,
            "example": "000001"
          },
          "issued": {
            "type": "string",
            "description": "The date the card was Issued",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "issuedBy": {
            "type": "string",
            "description": "The user that issued the card\r\n<ul><li>Default is API</li></ul>",
            "nullable": true,
            "example": "Tony Stark"
          },
          "inactive": {
            "type": "boolean",
            "description": "Whether the membership card is inactive\r\n<ul><li>must be 0 or 1</li></ul>",
            "nullable": true,
            "example": true
          },
          "inactiveReason": {
            "type": "string",
            "description": "The reason that the card is inactive\r\n<ul><li>Must be set if card is inactive</li></ul><ul><li>Must be empty if card is active</li></ul><ul><li>Value must be in the 'MembershipCardInactiveReason' lookup</li></ul>",
            "nullable": true,
            "example": "Lost"
          },
          "contactDataHubId": {
            "type": "string",
            "description": "A reference to the contact in Access DataHub",
            "format": "uuid",
            "nullable": true,
            "example": "77f1362c-5eda-4496-a644-9d60142a85e4"
          },
          "contactExternalRef": {
            "type": "string",
            "description": "A reference to the contact in an external system",
            "nullable": true,
            "example": "EXT0012"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on any membership cards associated with a membership"
      },
      "MembershipCardPostRequest": {
        "type": "object",
        "properties": {
          "membershipCardNumber": {
            "maxLength": 50,
            "type": "string",
            "description": "The membership card number\r\n<ul><li>Value must be specified</li></ul><ul><li>Value must be unique in import</li></ul><ul><li>Card must not already exist</li></ul>",
            "nullable": true,
            "example": "1234"
          },
          "membershipDetailId": {
            "maxLength": 50,
            "type": "string",
            "description": "The unique identifier for the membership detail\r\n<ul><li>Value must be specified</li></ul><ul><li>Must exist as an existing membership</li></ul>",
            "nullable": true,
            "example": "MD121001"
          },
          "serialNumber": {
            "maxLength": 50,
            "type": "string",
            "description": "The Serial number that the membership card belongs to\r\n<ul><li>Value must be specified</li></ul><ul><li>Value must be a member of the membership</li></ul>",
            "nullable": true,
            "example": "000001"
          },
          "issued": {
            "type": "string",
            "description": "The date the card was Issued",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "issuedBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user that issued the card\r\n<ul><li>Default is API</li></ul>",
            "nullable": true,
            "example": "Tony Stark"
          },
          "inactive": {
            "type": "boolean",
            "description": "Whether the membership card is inactive\r\n<ul><li>must be 0 or 1</li></ul>",
            "nullable": true,
            "example": true
          },
          "inactiveReason": {
            "maxLength": 50,
            "type": "string",
            "description": "The reason that the card is inactive\r\n<ul><li>Must be set if card is inactive</li></ul><ul><li>Must be empty if card is active</li></ul><ul><li>Value must be in the 'MembershipCardInactiveReason' lookup</li></ul>",
            "nullable": true,
            "example": "Lost"
          },
          "contactDataHubId": {
            "type": "string",
            "description": "A reference to the contact in Access DataHub",
            "format": "uuid",
            "nullable": true,
            "example": "77f1362c-5eda-4496-a644-9d60142a85e4"
          },
          "contactExternalRef": {
            "maxLength": 50,
            "type": "string",
            "description": "A reference to the contact in an external system",
            "nullable": true,
            "example": "EXT0012"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the membership cards for posts"
      },
      "MembershipCardPutRequest": {
        "type": "object",
        "properties": {
          "inactive": {
            "type": "boolean",
            "description": "Whether the membership card is inactive",
            "nullable": true,
            "example": true
          },
          "inactiveReason": {
            "maxLength": 50,
            "type": "string",
            "description": "The reason that the card is inactive",
            "nullable": true,
            "example": "Lost"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the membership cards for posts"
      },
      "MembershipCriteriaBasedFeesGetResponse": {
        "type": "object",
        "properties": {
          "membershipCostId": {
            "type": "string",
            "description": "The unique identifier for this membership cost",
            "nullable": true,
            "example": "MC0000742"
          },
          "membershipDetailId": {
            "type": "string",
            "description": "The unique identifier for this membership detail",
            "nullable": true,
            "example": "MD121001"
          },
          "vatRate": {
            "type": "string",
            "description": "The VAT rate for the Criteria based fees",
            "nullable": true,
            "example": "20"
          },
          "destinationCode": {
            "type": "string",
            "description": "The Destination Code for the Criteria based fees",
            "nullable": true,
            "example": "General"
          },
          "suggestedAmount": {
            "type": "boolean",
            "description": "Whether the cost value for the Criteria based fees is a suggested amount",
            "nullable": true,
            "example": false
          },
          "groupId": {
            "type": "string",
            "description": "The GroupId for the Criteria based fees",
            "nullable": true,
            "example": "ExistingGroupID"
          },
          "groupName": {
            "type": "string",
            "description": "The name of the Group for the Criteria based fees",
            "nullable": true,
            "example": "London Newsletter"
          },
          "groupQuantity": {
            "type": "integer",
            "description": "The group mailing quantity for the Criteria based fees",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "originalAmount": {
            "type": "number",
            "description": "The original cost value for the Criteria based fees",
            "format": "double",
            "nullable": true,
            "example": 23.67
          },
          "discountsApplied": {
            "type": "string",
            "description": "Discounts applied to the Criteria based fees",
            "nullable": true,
            "example": "DIS0046"
          },
          "proRataAmount": {
            "type": "number",
            "description": "The pro rata value for the Criteria based fees",
            "format": "double",
            "nullable": true,
            "example": "10.00M"
          },
          "costId": {
            "type": "string",
            "description": "The unique identifier for this type of membership cost",
            "nullable": true,
            "example": "MC0000651"
          },
          "criteriaValue": {
            "type": "string",
            "description": "Description of the Cost",
            "nullable": true,
            "example": "10"
          },
          "amount": {
            "type": "number",
            "description": "The cost value for the Criteria based fees",
            "format": "double",
            "nullable": true,
            "example": "10.0M"
          },
          "criteriaGroup": {
            "type": "string",
            "description": "The group that the Criteria is applied to",
            "nullable": true,
            "example": "Staff"
          },
          "numericValue": {
            "type": "number",
            "description": "The criteria numeric value for the Criteria based fees",
            "format": "double",
            "nullable": true,
            "example": 100
          },
          "percentageOfNumericValue": {
            "type": "number",
            "description": "The percentage of value for the Criteria based fees",
            "format": "double",
            "nullable": true,
            "example": 10
          }
        },
        "additionalProperties": false,
        "description": "Contains information on any criteria based fees connected to a membership"
      },
      "MembershipCriteriaBasedFeesPostRequest": {
        "required": [
          "criteriaGroup",
          "criteriaValue"
        ],
        "type": "object",
        "properties": {
          "costId": {
            "maxLength": 50,
            "type": "string",
            "description": "The unique identifier for this type of membership cost",
            "nullable": true,
            "example": "MC0000651"
          },
          "criteriaValue": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string",
            "description": "Description of the Cost",
            "example": "10"
          },
          "amount": {
            "type": "number",
            "description": "The cost value for the Criteria based fees",
            "format": "double",
            "nullable": true,
            "example": "10.0M"
          },
          "criteriaGroup": {
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "description": "The group that the Criteria is applied to",
            "example": "Staff"
          },
          "numericValue": {
            "type": "number",
            "description": "The criteria numeric value for the Criteria based fees",
            "format": "double",
            "nullable": true,
            "example": 100
          },
          "percentageOfNumericValue": {
            "type": "number",
            "description": "The percentage of value for the Criteria based fees",
            "format": "double",
            "nullable": true,
            "example": 10
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the membership criteria fees for posts"
      },
      "MembershipCustomFieldPostRequest": {
        "type": "object",
        "properties": {
          "membershipDetailId": {
            "type": "string",
            "description": "The Id of the membership detail record",
            "nullable": true,
            "example": null
          },
          "customFieldName": {
            "type": "string",
            "description": "The field name for the custom field",
            "nullable": true,
            "example": "QuestionnaireAns1"
          },
          "customFieldValue": {
            "type": "string",
            "description": "The value of the custom field",
            "nullable": true,
            "example": "Rarely"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the membership custom fields for posts"
      },
      "MembershipDiscountsGetResponse": {
        "type": "object",
        "properties": {
          "discountHistoryId": {
            "type": "string",
            "description": "The unique identifier for this membership discount",
            "nullable": true,
            "example": "DH001"
          },
          "membershipDetailId": {
            "type": "string",
            "description": "The unique identifier for this membership detail",
            "nullable": true,
            "example": "MD121001"
          },
          "discountCode": {
            "type": "string",
            "description": "The unique identifier for this discount admin record",
            "nullable": true,
            "example": "DIS0046"
          },
          "discountAmount": {
            "type": "number",
            "description": "The value of the discount",
            "format": "double",
            "example": "10.00M"
          },
          "manualDiscount": {
            "type": "boolean",
            "description": "Marks if the discount is manual or automatic",
            "example": false
          },
          "discountType": {
            "type": "string",
            "description": "The discount type",
            "nullable": true,
            "example": "Amount"
          },
          "discountPercentage": {
            "type": "number",
            "description": "The discount as a percentage",
            "format": "double",
            "example": 0
          },
          "reason": {
            "type": "string",
            "description": "The reason for applying the discount",
            "nullable": true,
            "example": "New Member"
          }
        },
        "additionalProperties": false
      },
      "MembershipDiscountsPostRequest": {
        "required": [
          "amount",
          "discountType",
          "reason"
        ],
        "type": "object",
        "properties": {
          "discountType": {
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "description": "The type of discount",
            "example": "Amount"
          },
          "reason": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string",
            "description": "The reason for the discount",
            "example": "New Member"
          },
          "amount": {
            "type": "number",
            "description": "The amount of discount",
            "format": "double",
            "example": 23.67
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the membership discounts for posts"
      },
      "MembershipFixedFeesGetResponse": {
        "type": "object",
        "properties": {
          "membershipCostId": {
            "type": "string",
            "description": "The unique identifier for this membership cost",
            "nullable": true,
            "example": "MC0000742"
          },
          "membershipDetailId": {
            "type": "string",
            "description": "The unique identifier for this membership detail",
            "nullable": true,
            "example": "MD121001"
          },
          "costId": {
            "type": "string",
            "description": "The unique identifier for this type of membership cost",
            "nullable": true,
            "example": "MC0000411"
          },
          "costDescription": {
            "type": "string",
            "description": "Description of the Cost",
            "nullable": true,
            "example": "Free Fob"
          },
          "amount": {
            "type": "number",
            "description": "The cost value for the Fixed Fees",
            "format": "double",
            "nullable": true,
            "example": 23.67
          },
          "vatRate": {
            "type": "string",
            "description": "The VAT rate for the Fixed Fees",
            "nullable": true,
            "example": "20"
          },
          "destinationCode": {
            "type": "string",
            "description": "The Destination Code for the Fixed Fees",
            "nullable": true,
            "example": "General"
          },
          "renewal": {
            "type": "boolean",
            "description": "Whether the Fixed Fees is for a renewal",
            "nullable": true,
            "example": true
          },
          "suggestedAmount": {
            "type": "boolean",
            "description": "Whether the cost value for the Fixed Fees is a suggested amount",
            "nullable": true,
            "example": false
          },
          "originalAmount": {
            "type": "number",
            "description": "The original cost value for the Fixed Fees",
            "format": "double",
            "nullable": true,
            "example": 23.67
          },
          "discountsApplied": {
            "type": "string",
            "description": "Discounts applied to the Fixed Fees",
            "nullable": true,
            "example": "DIS0046"
          },
          "proRataAmount": {
            "type": "number",
            "description": "The pro rata value for the Fixed Fees",
            "format": "double",
            "nullable": true,
            "example": "10.00M"
          },
          "membershipCardNumber": {
            "type": "string",
            "description": "The membership card number for the Fixed Fees",
            "nullable": true,
            "example": "1234"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on any fixed fees connected to a membership"
      },
      "MembershipGetResponse": {
        "type": "object",
        "properties": {
          "membershipId": {
            "type": "string",
            "description": "The id of the membership",
            "nullable": true,
            "example": "M126121"
          },
          "membershipDetailId": {
            "type": "string",
            "description": "The id for the membership period",
            "nullable": true
          },
          "serialNumber": {
            "type": "string",
            "description": "the serialnumber of the membership member\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Value must be an existing contact</li></ul>",
            "nullable": true,
            "example": "000001"
          },
          "contactExternalRef": {
            "type": "string",
            "description": "the external ref of the membership contact",
            "nullable": true,
            "example": "EXT00045"
          },
          "schemeId": {
            "type": "string",
            "description": "the id of the scheme of the membership\r\n<ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "ADM0001"
          },
          "schemeName": {
            "type": "string",
            "description": "the name of the scheme",
            "nullable": true,
            "example": "Adult Membership"
          },
          "periodId": {
            "type": "string",
            "description": "the id of the period of the membership\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Must be a period against the selected scheme</li></ul>",
            "nullable": true,
            "example": "PER0001"
          },
          "periodName": {
            "type": "string",
            "description": "the name of the period",
            "nullable": true,
            "example": "2019"
          },
          "bandId": {
            "type": "string",
            "description": "the id of the band of the membership\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Must be a band against the selected period</li></ul>",
            "nullable": true,
            "example": "BND001"
          },
          "bandName": {
            "type": "string",
            "description": "the name of the band",
            "nullable": true,
            "example": "Bronze"
          },
          "purchaseMethod": {
            "type": "string",
            "description": "how the membership was purchased",
            "nullable": true,
            "example": "Web"
          },
          "sourceCode": {
            "type": "string",
            "description": "the source code for the membership\r\n<ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "SRC001"
          },
          "receiptSerialNumber": {
            "type": "string",
            "description": "serial number of contact to notify of receipt\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Value must be an existing contact</li></ul><ul><li>Default is SerialNumber</li></ul>",
            "nullable": true,
            "example": "000001"
          },
          "receiptRequired": {
            "type": "boolean",
            "description": "mark a membership as requiring receipt confirmation\r\n<ul><li>Must be 0 or 1</li></ul>",
            "nullable": true,
            "example": true
          },
          "paymentStatus": {
            "type": "string",
            "description": "the payment status of the membership\r\n<ul><li>Must be Complete, Pending, In Progress or Free</li></ul><ul><li>Default is Pending</li></ul>",
            "nullable": true,
            "example": "In Progress"
          },
          "giftMembership": {
            "type": "boolean",
            "description": "whether the membership was given as a gift",
            "nullable": true,
            "example": false
          },
          "startDate": {
            "type": "string",
            "description": "the start date of the membership",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "expiryDate": {
            "type": "string",
            "description": "the expiry date of the membership",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "openEnded": {
            "type": "boolean",
            "description": "whether the membership is open ended",
            "nullable": true,
            "example": false
          },
          "paymentStartDate": {
            "type": "string",
            "description": "the start date for the membership payments",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "paymentMethod": {
            "type": "string",
            "description": "the method for paying off the membership\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Default is Cheque</li></ul>",
            "nullable": true,
            "example": "Direct Debit"
          },
          "paymentFrequency": {
            "type": "string",
            "description": "the payment frequency of the membership\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Must exist in the 'MembershipPaymentFrequency' lookup</li></ul>",
            "nullable": true,
            "example": "Annually"
          },
          "paymentDay": {
            "type": "integer",
            "description": "the day on which membership payments are taken\r\n<ul><li>Must be between 1 and 28</li></ul><ul><li>Must exist in the 'Direct Debit Payment Day' lookup when values are specified and the payment type is Direct Debit</li></ul><ul><li>Default is The day of the startDate where startDate is less than or equal to 28th else the 1st</li></ul>",
            "format": "int32",
            "nullable": true,
            "example": 21
          },
          "currency": {
            "type": "string",
            "description": "the currency of the membership\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Default is system default</li></ul>",
            "nullable": true,
            "example": "GBP"
          },
          "taxClaimable": {
            "type": "boolean",
            "description": "whether the membership payments are tax claimable\r\n<ul><li>Must be 0 or 1</li></ul>",
            "nullable": true,
            "example": false
          },
          "payerSerialNumber": {
            "type": "string",
            "description": "the serialnumber of the contact paying for the membership\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Value must be an existing contact</li></ul><ul><li>Default is SerialNumber</li></ul>",
            "nullable": true,
            "example": "000001"
          },
          "includesNewGiftAidDeclaration": {
            "type": "boolean",
            "description": "If the membership includes a new gift aid declaration.",
            "nullable": true,
            "example": true
          },
          "created": {
            "type": "string",
            "description": "When the record was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "type": "string",
            "description": "The user who created the record\r\n<ul><li>Default is API</li></ul>",
            "nullable": true,
            "example": "test user"
          },
          "contactDataHubId": {
            "type": "string",
            "description": "A reference to the contact in Access DataHub",
            "format": "uuid",
            "nullable": true,
            "example": "416e5f71-45f7-40cf-9fa2-6fe85ceae6ad"
          },
          "paymentProcessingProvider": {
            "type": "string",
            "description": "the external provider for taking payments",
            "nullable": true,
            "example": "Access Payments"
          },
          "paymentProcessingReference": {
            "type": "string",
            "description": "the external provider reference for taking payments",
            "nullable": true,
            "example": "Ref1234"
          },
          "acquisitionCost": {
            "type": "number",
            "description": "The cost to acquire the membership",
            "format": "double",
            "nullable": true,
            "example": 10.50
          },
          "membershipStatus": {
            "type": "string",
            "description": "the status of the membership",
            "nullable": true,
            "example": ""
          },
          "balance": {
            "type": "number",
            "description": "the current balance of the membership",
            "format": "double",
            "nullable": true,
            "example": "0.00M"
          },
          "outstanding": {
            "type": "number",
            "description": "the total outstanding amount of the membership",
            "format": "double",
            "nullable": true,
            "example": "10.79M"
          },
          "paid": {
            "type": "number",
            "description": "the total amount paid",
            "format": "double",
            "nullable": true,
            "example": "54.00M"
          },
          "nextPayment": {
            "type": "string",
            "description": "the date of which the next payment will be taken",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "nextPaymentAmount": {
            "type": "number",
            "description": "the value of the next payment",
            "format": "double",
            "nullable": true,
            "example": "10.79M"
          },
          "firstJoined": {
            "type": "string",
            "description": "the date when the membership first joined the membership",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "membershipCardNumber": {
            "type": "string",
            "description": "The main card number associated with the membership",
            "nullable": true,
            "example": "1234"
          },
          "membershipExternalRef": {
            "type": "string",
            "description": "s\r\n            A reference to the membership in an external system",
            "nullable": true,
            "example": ""
          },
          "membershipPeriodExternalRef": {
            "type": "string",
            "description": "A reference to the membership period in an external system",
            "nullable": true,
            "example": ""
          },
          "schemeIsArchived": {
            "type": "boolean",
            "description": "A flag to indicate if the scheme has been archived",
            "example": false
          },
          "additionalMembers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MembershipAdditionalMemberGetResponse"
            },
            "description": "The membership's additional members",
            "nullable": true
          },
          "cards": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MembershipCardGetResponse"
            },
            "description": "The membership's cards",
            "nullable": true
          },
          "criteriaBasedFees": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MembershipCriteriaBasedFeesGetResponse"
            },
            "description": "The membership's criteria based fees",
            "nullable": true
          },
          "discounts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MembershipDiscountsGetResponse"
            },
            "description": "The membership's discounts",
            "nullable": true
          },
          "fixedFees": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MembershipFixedFeesGetResponse"
            },
            "description": "The membership's fixed fees",
            "nullable": true
          },
          "inclusiveBenefits": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MembershipInclusiveBenefitsGetResponse"
            },
            "description": "The membership's inclusive benefits",
            "nullable": true
          },
          "optionalBenefits": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MembershipOptionalBenefitsGetResponse"
            },
            "description": "The membership's optional benefits",
            "nullable": true
          },
          "preferences": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ContactPreferenceGetResponse"
            },
            "description": "The communication preferences against a membership",
            "nullable": true
          },
          "profiles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ContactProfileGetResponse"
            },
            "description": "The contact profiles against a membership",
            "nullable": true
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "The membership custom fields",
            "nullable": true
          },
          "bankName": {
            "type": "string",
            "description": "name of the bank for payment",
            "nullable": true,
            "example": "Bank of the World"
          },
          "bankAddress": {
            "type": "string",
            "description": "address of bank for payment",
            "nullable": true,
            "example": "32 Phillips Lane London"
          },
          "bankPostCode": {
            "type": "string",
            "description": "postcode of bank for payment",
            "nullable": true,
            "example": "EC4V 5AN"
          },
          "accountName": {
            "type": "string",
            "description": "the account name for payment",
            "nullable": true,
            "example": "Mr H Bailey"
          },
          "bic": {
            "type": "string",
            "description": "the BIC for payment",
            "nullable": true,
            "example": "123456789"
          },
          "iban": {
            "type": "string",
            "description": "the IBAN for payment",
            "nullable": true,
            "example": "IBAN_816781"
          },
          "sortCode": {
            "type": "string",
            "description": "the sort code for payment",
            "nullable": true,
            "example": "123456"
          },
          "accountNumber": {
            "type": "string",
            "description": "the account number for payment",
            "nullable": true,
            "example": "12345678"
          },
          "rollNumber": {
            "type": "string",
            "description": "the roll number for payment",
            "nullable": true,
            "example": "4"
          },
          "text1": {
            "type": "string",
            "description": "text field for payment ref",
            "nullable": true,
            "example": "UniqueText1"
          },
          "text2": {
            "type": "string",
            "description": "second text field for payment ref",
            "nullable": true,
            "example": "UniqueText2"
          },
          "accountVerified": {
            "type": "string",
            "description": "date the payment details were verified\r\n<ul><li>Cannot be empty when bank details are present</li></ul>",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "accountVerifiedBy": {
            "type": "string",
            "description": "user who verified account details\r\n<ul><li>Cannot be empty when bank details are present</li></ul>",
            "nullable": true,
            "example": "Nelson"
          },
          "ddiRef": {
            "type": "string",
            "description": "ddi reference for payment",
            "nullable": true,
            "example": "16747815"
          },
          "ddiDateReceived": {
            "type": "string",
            "description": "date ddi was received",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "ddiMethod": {
            "type": "string",
            "description": "ddi payment method",
            "nullable": true,
            "example": "Internet"
          },
          "ddiPaperLocation": {
            "type": "string",
            "description": "location of ddi if it is on paper",
            "nullable": true,
            "example": "Paper at Organisation"
          },
          "ddiStatus": {
            "type": "string",
            "description": "status of ddi",
            "nullable": true,
            "example": "Active"
          },
          "ddiStartDate": {
            "type": "string",
            "description": "date ddi stats",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "ddiErrorCode": {
            "type": "string",
            "description": "ddi error code",
            "nullable": true,
            "example": "C001"
          },
          "ddiErrorDescription": {
            "type": "string",
            "description": "ddi error description",
            "nullable": true,
            "example": "DDI Cancelled by user"
          },
          "notes": {
            "type": "string",
            "description": "Any notes for the membership",
            "nullable": true,
            "example": "My notes"
          },
          "cancelled": {
            "type": "string",
            "description": "whether the membership is cancelled",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "cancelledReason": {
            "type": "string",
            "description": "the reason the membership was cancelled",
            "nullable": true,
            "example": "Not required"
          },
          "dataHubId": {
            "type": "string",
            "description": "A reference to the membership in Access DataHub",
            "format": "uuid",
            "nullable": true,
            "example": "98e55aa9-69d0-4809-a76c-7d40867df230"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the Membership"
      },
      "MembershipGetResponseCollectionItem": {
        "type": "object",
        "properties": {
          "membershipId": {
            "type": "string",
            "description": "The id of the membership",
            "nullable": true,
            "example": "M126121"
          },
          "membershipDetailId": {
            "type": "string",
            "description": "The id for the membership period",
            "nullable": true
          },
          "serialNumber": {
            "type": "string",
            "description": "the serialnumber of the membership member\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Value must be an existing contact</li></ul>",
            "nullable": true,
            "example": "000001"
          },
          "contactExternalRef": {
            "type": "string",
            "description": "the external ref of the membership contact",
            "nullable": true,
            "example": "EXT00045"
          },
          "schemeId": {
            "type": "string",
            "description": "the id of the scheme of the membership\r\n<ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "ADM0001"
          },
          "schemeName": {
            "type": "string",
            "description": "the name of the scheme",
            "nullable": true,
            "example": "Adult Membership"
          },
          "periodId": {
            "type": "string",
            "description": "the id of the period of the membership\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Must be a period against the selected scheme</li></ul>",
            "nullable": true,
            "example": "PER0001"
          },
          "periodName": {
            "type": "string",
            "description": "the name of the period",
            "nullable": true,
            "example": "2019"
          },
          "bandId": {
            "type": "string",
            "description": "the id of the band of the membership\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Must be a band against the selected period</li></ul>",
            "nullable": true,
            "example": "BND001"
          },
          "bandName": {
            "type": "string",
            "description": "the name of the band",
            "nullable": true,
            "example": "Bronze"
          },
          "purchaseMethod": {
            "type": "string",
            "description": "how the membership was purchased",
            "nullable": true,
            "example": "Web"
          },
          "sourceCode": {
            "type": "string",
            "description": "the source code for the membership\r\n<ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "SRC001"
          },
          "receiptSerialNumber": {
            "type": "string",
            "description": "serial number of contact to notify of receipt\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Value must be an existing contact</li></ul><ul><li>Default is SerialNumber</li></ul>",
            "nullable": true,
            "example": "000001"
          },
          "receiptRequired": {
            "type": "boolean",
            "description": "mark a membership as requiring receipt confirmation\r\n<ul><li>Must be 0 or 1</li></ul>",
            "nullable": true,
            "example": true
          },
          "paymentStatus": {
            "type": "string",
            "description": "the payment status of the membership\r\n<ul><li>Must be Complete, Pending, In Progress or Free</li></ul><ul><li>Default is Pending</li></ul>",
            "nullable": true,
            "example": "In Progress"
          },
          "giftMembership": {
            "type": "boolean",
            "description": "whether the membership was given as a gift",
            "nullable": true,
            "example": false
          },
          "startDate": {
            "type": "string",
            "description": "the start date of the membership",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "expiryDate": {
            "type": "string",
            "description": "the expiry date of the membership",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "openEnded": {
            "type": "boolean",
            "description": "whether the membership is open ended",
            "nullable": true,
            "example": false
          },
          "paymentStartDate": {
            "type": "string",
            "description": "the start date for the membership payments",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "paymentMethod": {
            "type": "string",
            "description": "the method for paying off the membership\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Default is Cheque</li></ul>",
            "nullable": true,
            "example": "Direct Debit"
          },
          "paymentFrequency": {
            "type": "string",
            "description": "the payment frequency of the membership\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Must exist in the 'MembershipPaymentFrequency' lookup</li></ul>",
            "nullable": true,
            "example": "Annually"
          },
          "paymentDay": {
            "type": "integer",
            "description": "the day on which membership payments are taken\r\n<ul><li>Must be between 1 and 28</li></ul><ul><li>Must exist in the 'Direct Debit Payment Day' lookup when values are specified and the payment type is Direct Debit</li></ul><ul><li>Default is The day of the startDate where startDate is less than or equal to 28th else the 1st</li></ul>",
            "format": "int32",
            "nullable": true,
            "example": 21
          },
          "currency": {
            "type": "string",
            "description": "the currency of the membership\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Default is system default</li></ul>",
            "nullable": true,
            "example": "GBP"
          },
          "taxClaimable": {
            "type": "boolean",
            "description": "whether the membership payments are tax claimable\r\n<ul><li>Must be 0 or 1</li></ul>",
            "nullable": true,
            "example": false
          },
          "payerSerialNumber": {
            "type": "string",
            "description": "the serialnumber of the contact paying for the membership\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Value must be an existing contact</li></ul><ul><li>Default is SerialNumber</li></ul>",
            "nullable": true,
            "example": "000001"
          },
          "includesNewGiftAidDeclaration": {
            "type": "boolean",
            "description": "If the membership includes a new gift aid declaration.",
            "nullable": true,
            "example": true
          },
          "created": {
            "type": "string",
            "description": "When the record was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "type": "string",
            "description": "The user who created the record\r\n<ul><li>Default is API</li></ul>",
            "nullable": true,
            "example": "test user"
          },
          "contactDataHubId": {
            "type": "string",
            "description": "A reference to the contact in Access DataHub",
            "format": "uuid",
            "nullable": true,
            "example": "416e5f71-45f7-40cf-9fa2-6fe85ceae6ad"
          },
          "paymentProcessingProvider": {
            "type": "string",
            "description": "the external provider for taking payments",
            "nullable": true,
            "example": "Access Payments"
          },
          "paymentProcessingReference": {
            "type": "string",
            "description": "the external provider reference for taking payments",
            "nullable": true,
            "example": "Ref1234"
          },
          "acquisitionCost": {
            "type": "number",
            "description": "The cost to acquire the membership",
            "format": "double",
            "nullable": true,
            "example": 10.50
          },
          "membershipStatus": {
            "type": "string",
            "description": "the status of the membership",
            "nullable": true,
            "example": ""
          },
          "balance": {
            "type": "number",
            "description": "the current balance of the membership",
            "format": "double",
            "nullable": true,
            "example": "0.00M"
          },
          "outstanding": {
            "type": "number",
            "description": "the total outstanding amount of the membership",
            "format": "double",
            "nullable": true,
            "example": "10.79M"
          },
          "paid": {
            "type": "number",
            "description": "the total amount paid",
            "format": "double",
            "nullable": true,
            "example": "54.00M"
          },
          "nextPayment": {
            "type": "string",
            "description": "the date of which the next payment will be taken",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "nextPaymentAmount": {
            "type": "number",
            "description": "the value of the next payment",
            "format": "double",
            "nullable": true,
            "example": "10.79M"
          },
          "firstJoined": {
            "type": "string",
            "description": "the date when the membership first joined the membership",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "membershipCardNumber": {
            "type": "string",
            "description": "The main card number associated with the membership",
            "nullable": true,
            "example": "1234"
          },
          "membershipExternalRef": {
            "type": "string",
            "description": "s\r\n            A reference to the membership in an external system",
            "nullable": true,
            "example": ""
          },
          "membershipPeriodExternalRef": {
            "type": "string",
            "description": "A reference to the membership period in an external system",
            "nullable": true,
            "example": ""
          },
          "schemeIsArchived": {
            "type": "boolean",
            "description": "A flag to indicate if the scheme has been archived",
            "example": false
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "The membership custom fields",
            "nullable": true
          },
          "bankName": {
            "type": "string",
            "description": "name of the bank for payment",
            "nullable": true,
            "example": "Bank of the World"
          },
          "bankAddress": {
            "type": "string",
            "description": "address of bank for payment",
            "nullable": true,
            "example": "32 Phillips Lane London"
          },
          "bankPostCode": {
            "type": "string",
            "description": "postcode of bank for payment",
            "nullable": true,
            "example": "EC4V 5AN"
          },
          "accountName": {
            "type": "string",
            "description": "the account name for payment",
            "nullable": true,
            "example": "Mr H Bailey"
          },
          "bic": {
            "type": "string",
            "description": "the BIC for payment",
            "nullable": true,
            "example": "123456789"
          },
          "iban": {
            "type": "string",
            "description": "the IBAN for payment",
            "nullable": true,
            "example": "IBAN_816781"
          },
          "sortCode": {
            "type": "string",
            "description": "the sort code for payment",
            "nullable": true,
            "example": "123456"
          },
          "accountNumber": {
            "type": "string",
            "description": "the account number for payment",
            "nullable": true,
            "example": "12345678"
          },
          "rollNumber": {
            "type": "string",
            "description": "the roll number for payment",
            "nullable": true,
            "example": "4"
          },
          "text1": {
            "type": "string",
            "description": "text field for payment ref",
            "nullable": true,
            "example": "UniqueText1"
          },
          "text2": {
            "type": "string",
            "description": "second text field for payment ref",
            "nullable": true,
            "example": "UniqueText2"
          },
          "accountVerified": {
            "type": "string",
            "description": "date the payment details were verified\r\n<ul><li>Cannot be empty when bank details are present</li></ul>",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "accountVerifiedBy": {
            "type": "string",
            "description": "user who verified account details\r\n<ul><li>Cannot be empty when bank details are present</li></ul>",
            "nullable": true,
            "example": "Nelson"
          },
          "ddiRef": {
            "type": "string",
            "description": "ddi reference for payment",
            "nullable": true,
            "example": "16747815"
          },
          "ddiDateReceived": {
            "type": "string",
            "description": "date ddi was received",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "ddiMethod": {
            "type": "string",
            "description": "ddi payment method",
            "nullable": true,
            "example": "Internet"
          },
          "ddiPaperLocation": {
            "type": "string",
            "description": "location of ddi if it is on paper",
            "nullable": true,
            "example": "Paper at Organisation"
          },
          "ddiStatus": {
            "type": "string",
            "description": "status of ddi",
            "nullable": true,
            "example": "Active"
          },
          "ddiStartDate": {
            "type": "string",
            "description": "date ddi stats",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "ddiErrorCode": {
            "type": "string",
            "description": "ddi error code",
            "nullable": true,
            "example": "C001"
          },
          "ddiErrorDescription": {
            "type": "string",
            "description": "ddi error description",
            "nullable": true,
            "example": "DDI Cancelled by user"
          },
          "notes": {
            "type": "string",
            "description": "Any notes for the membership",
            "nullable": true,
            "example": "My notes"
          },
          "cancelled": {
            "type": "string",
            "description": "whether the membership is cancelled",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "cancelledReason": {
            "type": "string",
            "description": "the reason the membership was cancelled",
            "nullable": true,
            "example": "Not required"
          },
          "dataHubId": {
            "type": "string",
            "description": "A reference to the membership in Access DataHub",
            "format": "uuid",
            "nullable": true,
            "example": "98e55aa9-69d0-4809-a76c-7d40867df230"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the Membership"
      },
      "MembershipGetResponseCollectionResponse": {
        "type": "object",
        "properties": {
          "pageNumber": {
            "type": "integer",
            "description": "The page number for the data in the response",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "The page size for the data in the response",
            "format": "int32"
          },
          "totalCount": {
            "type": "integer",
            "description": "The total number of items in the data collection",
            "format": "int32",
            "nullable": true
          },
          "pageCount": {
            "type": "integer",
            "description": "The total number of pages in the data collection",
            "format": "int32",
            "nullable": true,
            "readOnly": true
          },
          "hasNextPage": {
            "type": "boolean",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MembershipGetResponseCollectionItem"
            },
            "description": "The collection of items",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Holds response information for a collection of data"
      },
      "MembershipInclusiveBenefitsGetResponse": {
        "type": "object",
        "properties": {
          "membershipCostId": {
            "type": "string",
            "description": "The unique identifier for this membership cost",
            "nullable": true,
            "example": "MC0000742"
          },
          "membershipDetailId": {
            "type": "string",
            "description": "The unique identifier for this membership detail",
            "nullable": true,
            "example": "MD121001"
          },
          "costId": {
            "type": "string",
            "description": "The unique identifier for this type of membership cost",
            "nullable": true,
            "example": "MC0000411"
          },
          "costDescription": {
            "type": "string",
            "description": "Description of the Cost",
            "nullable": true,
            "example": "Free Fob"
          },
          "groupId": {
            "type": "string",
            "description": "The GroupId for the Inclusive Benefit",
            "nullable": true,
            "example": "ExistingGroupID"
          },
          "groupName": {
            "type": "string",
            "description": "The name of the Group for the Inclusive Benefit",
            "nullable": true,
            "example": "London Newsletter"
          },
          "groupQuantity": {
            "type": "integer",
            "description": "The group mailing quantity for the Inclusive Benefit",
            "format": "int32",
            "nullable": true,
            "example": 1
          }
        },
        "additionalProperties": false,
        "description": "Contains information on any Inclusive Benefits connected to a membership"
      },
      "MembershipOptionalBenefitsGetResponse": {
        "type": "object",
        "properties": {
          "membershipCostId": {
            "type": "string",
            "description": "The unique identifier for this membership cost",
            "nullable": true,
            "example": "MC0000742"
          },
          "membershipDetailId": {
            "type": "string",
            "description": "The unique identifier for this membership detail",
            "nullable": true,
            "example": "MD121001"
          },
          "vatRate": {
            "type": "string",
            "description": "The VAT rate for the Optional Benefit",
            "nullable": true,
            "example": "20"
          },
          "destinationCode": {
            "type": "string",
            "description": "The Destination Code for the Optional Benefit",
            "nullable": true,
            "example": "General"
          },
          "suggestedAmount": {
            "type": "boolean",
            "description": "Whether the cost value for the Optional Benefit is a suggested amount",
            "nullable": true,
            "example": false
          },
          "groupId": {
            "type": "string",
            "description": "The GroupId for the Optional Benefit",
            "nullable": true,
            "example": "ExistingGroupID"
          },
          "groupName": {
            "type": "string",
            "description": "The name of the Group for the Optional Benefit",
            "nullable": true,
            "example": "London Newsletter"
          },
          "groupQuantity": {
            "type": "integer",
            "description": "The group mailing quantity for the Optional Benefit",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "originalAmount": {
            "type": "number",
            "description": "The original cost value for the Optional Benefit",
            "format": "double",
            "nullable": true,
            "example": 23.67
          },
          "discountsApplied": {
            "type": "string",
            "description": "Discounts applied to the Optional Benefit",
            "nullable": true,
            "example": "DIS0046"
          },
          "proRataAmount": {
            "type": "number",
            "description": "The pro rata value for the Optional Benefit",
            "format": "double",
            "nullable": true,
            "example": "10.00M"
          },
          "membershipCardNumber": {
            "type": "string",
            "description": "The membership card number for the Optional Benefit",
            "nullable": true,
            "example": "1234"
          },
          "costId": {
            "type": "string",
            "description": "The unique identifier for this type of membership cost",
            "nullable": true,
            "example": "MC0000879"
          },
          "description": {
            "type": "string",
            "description": "Description of the Cost",
            "nullable": true,
            "example": "Newsletter"
          },
          "amount": {
            "type": "number",
            "description": "The cost value for the Optional Benefit",
            "format": "double",
            "nullable": true,
            "example": "0.79M"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on any optional Benefits connected to a membership"
      },
      "MembershipOptionalBenefitsPostRequest": {
        "type": "object",
        "properties": {
          "costId": {
            "maxLength": 50,
            "type": "string",
            "description": "The unique identifier for this type of membership cost",
            "nullable": true,
            "example": "MC0000879"
          },
          "description": {
            "maxLength": 100,
            "type": "string",
            "description": "Description of the Cost",
            "nullable": true,
            "example": "Newsletter"
          },
          "amount": {
            "type": "number",
            "description": "The cost value for the Optional Benefit",
            "format": "double",
            "nullable": true,
            "example": "0.79M"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the membership optional benefits for posts"
      },
      "MembershipPaymentPostRequest": {
        "required": [
          "amount",
          "paymentMethod"
        ],
        "type": "object",
        "properties": {
          "paymentMethod": {
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "description": "The method the payment was made with",
            "example": "Invoice"
          },
          "amount": {
            "type": "number",
            "description": "The amount paid",
            "format": "double",
            "example": 23.67
          },
          "date": {
            "type": "string",
            "description": "The date the payment was made",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the payments included with this membership post"
      },
      "MembershipPostRequest": {
        "required": [
          "startDate"
        ],
        "type": "object",
        "properties": {
          "membershipId": {
            "maxLength": 50,
            "type": "string",
            "description": "The id of the membership",
            "nullable": true,
            "example": "M126121"
          },
          "membershipDetailId": {
            "maxLength": 50,
            "type": "string",
            "description": "The id for the membership period",
            "nullable": true
          },
          "serialNumber": {
            "maxLength": 50,
            "type": "string",
            "description": "the serialnumber of the membership member\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Value must be an existing contact</li></ul>",
            "nullable": true,
            "example": "000001"
          },
          "contactExternalRef": {
            "maxLength": 50,
            "type": "string",
            "description": "the external ref of the membership contact",
            "nullable": true,
            "example": "EXT00045"
          },
          "schemeId": {
            "maxLength": 20,
            "type": "string",
            "description": "the id of the scheme of the membership\r\n<ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "ADM0001"
          },
          "schemeName": {
            "maxLength": 50,
            "type": "string",
            "description": "the name of the scheme",
            "nullable": true,
            "example": "Adult Membership"
          },
          "periodId": {
            "maxLength": 50,
            "type": "string",
            "description": "the id of the period of the membership\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Must be a period against the selected scheme</li></ul>",
            "nullable": true,
            "example": "PER0001"
          },
          "periodName": {
            "maxLength": 50,
            "type": "string",
            "description": "the name of the period",
            "nullable": true,
            "example": "2019"
          },
          "bandId": {
            "maxLength": 50,
            "type": "string",
            "description": "the id of the band of the membership\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Must be a band against the selected period</li></ul>",
            "nullable": true,
            "example": "BND001"
          },
          "bandName": {
            "maxLength": 50,
            "type": "string",
            "description": "the name of the band",
            "nullable": true,
            "example": "Bronze"
          },
          "purchaseMethod": {
            "maxLength": 50,
            "type": "string",
            "description": "how the membership was purchased",
            "nullable": true,
            "example": "Web"
          },
          "sourceCode": {
            "maxLength": 20,
            "type": "string",
            "description": "the source code for the membership\r\n<ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "SRC001"
          },
          "receiptSerialNumber": {
            "maxLength": 50,
            "type": "string",
            "description": "serial number of contact to notify of receipt\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Value must be an existing contact</li></ul><ul><li>Default is SerialNumber</li></ul>",
            "nullable": true,
            "example": "000001"
          },
          "receiptRequired": {
            "type": "boolean",
            "description": "mark a membership as requiring receipt confirmation\r\n<ul><li>Must be 0 or 1</li></ul>",
            "nullable": true,
            "example": true
          },
          "paymentStatus": {
            "maxLength": 25,
            "type": "string",
            "description": "the payment status of the membership\r\n<ul><li>Must be Complete, Pending, In Progress or Free</li></ul><ul><li>Default is Pending</li></ul>",
            "nullable": true,
            "example": "In Progress"
          },
          "giftMembership": {
            "type": "boolean",
            "description": "whether the membership was given as a gift",
            "nullable": true,
            "example": false
          },
          "startDate": {
            "minLength": 1,
            "type": "string",
            "description": "the start date of the membership",
            "format": "date-time",
            "example": "2022-12-06"
          },
          "expiryDate": {
            "type": "string",
            "description": "the expiry date of the membership",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "openEnded": {
            "type": "boolean",
            "description": "whether the membership is open ended",
            "nullable": true,
            "example": false
          },
          "paymentStartDate": {
            "type": "string",
            "description": "the start date for the membership payments",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "paymentMethod": {
            "maxLength": 50,
            "type": "string",
            "description": "the method for paying off the membership\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Default is Cheque</li></ul>",
            "nullable": true,
            "example": "Direct Debit"
          },
          "paymentFrequency": {
            "maxLength": 25,
            "type": "string",
            "description": "the payment frequency of the membership\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Must exist in the 'MembershipPaymentFrequency' lookup</li></ul>",
            "nullable": true,
            "example": "Annually"
          },
          "paymentDay": {
            "type": "integer",
            "description": "the day on which membership payments are taken\r\n<ul><li>Must be between 1 and 28</li></ul><ul><li>Must exist in the 'Direct Debit Payment Day' lookup when values are specified and the payment type is Direct Debit</li></ul><ul><li>Default is The day of the startDate where startDate is less than or equal to 28th else the 1st</li></ul>",
            "format": "int32",
            "nullable": true,
            "example": 21
          },
          "currency": {
            "maxLength": 25,
            "type": "string",
            "description": "the currency of the membership\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Default is system default</li></ul>",
            "nullable": true,
            "example": "GBP"
          },
          "taxClaimable": {
            "type": "boolean",
            "description": "whether the membership payments are tax claimable\r\n<ul><li>Must be 0 or 1</li></ul>",
            "nullable": true,
            "example": false
          },
          "payerSerialNumber": {
            "maxLength": 50,
            "type": "string",
            "description": "the serialnumber of the contact paying for the membership\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Value must be an existing contact</li></ul><ul><li>Default is SerialNumber</li></ul>",
            "nullable": true,
            "example": "000001"
          },
          "includesNewGiftAidDeclaration": {
            "type": "boolean",
            "description": "If the membership includes a new gift aid declaration.",
            "nullable": true,
            "example": true
          },
          "created": {
            "type": "string",
            "description": "When the record was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user who created the record\r\n<ul><li>Default is API</li></ul>",
            "nullable": true,
            "example": "test user"
          },
          "contactDataHubId": {
            "type": "string",
            "description": "A reference to the contact in Access DataHub",
            "format": "uuid",
            "nullable": true,
            "example": "416e5f71-45f7-40cf-9fa2-6fe85ceae6ad"
          },
          "paymentProcessingProvider": {
            "maxLength": 50,
            "type": "string",
            "description": "the external provider for taking payments",
            "nullable": true,
            "example": "Access Payments"
          },
          "paymentProcessingReference": {
            "maxLength": 50,
            "type": "string",
            "description": "the external provider reference for taking payments",
            "nullable": true,
            "example": "Ref1234"
          },
          "paymentProcessingContactId": {
            "maxLength": 50,
            "type": "string",
            "description": "the external provider's contact Id for taking payments",
            "nullable": true,
            "example": "Contact_12141"
          },
          "acquisitionCost": {
            "type": "number",
            "description": "The cost to acquire the membership",
            "format": "double",
            "nullable": true,
            "example": 10.50
          },
          "paymentProcessingContactReference": {
            "maxLength": 50,
            "type": "string",
            "description": "the external provider's contact reference for taking payments",
            "nullable": true,
            "example": "Ref_Con_1234"
          },
          "pricePaid": {
            "type": "number",
            "description": "The price the contact paid for this membership, if completed then the membership is fully paid by this amount. Add the membership cost will be adjusted accordingly.",
            "format": "double",
            "nullable": true
          },
          "externalRef": {
            "maxLength": 50,
            "type": "string",
            "description": "The ExternalRef for this membership.",
            "nullable": true,
            "example": "M102110388-H1"
          },
          "membershipRenewedDataHubId": {
            "type": "string",
            "description": "A reference to the data hub ID of the membership being renewed.",
            "format": "uuid",
            "nullable": true,
            "example": "e639afd4-237b-480d-af2d-0eaa5617636f"
          },
          "payerContactDataHubId": {
            "type": "string",
            "description": "A reference to the payer contact in Access DataHub",
            "format": "uuid",
            "nullable": true,
            "example": "aab9a757-93e3-4027-8296-504d99273bae"
          },
          "useNextCollectionDay": {
            "type": "boolean",
            "description": "A flag to use the next available collection day for the membership\r\nOnly applies if the PaymentDay field is null",
            "example": false
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MembershipCustomFieldPostRequest"
            },
            "description": "Custom field data",
            "nullable": true
          },
          "additionalMembers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MembershipAdditionalMemberPostRequest"
            },
            "description": "The additional members for the membership",
            "nullable": true
          },
          "cards": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MembershipCardPostRequest"
            },
            "description": "The membership cards for the membership",
            "nullable": true
          },
          "criteriaBasedFees": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MembershipCriteriaBasedFeesPostRequest"
            },
            "description": "The criteria fees for the membership",
            "nullable": true
          },
          "discounts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MembershipDiscountsPostRequest"
            },
            "description": "The discounts for the membership",
            "nullable": true
          },
          "optionalBenefits": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MembershipOptionalBenefitsPostRequest"
            },
            "description": "The optional benefits for the membership",
            "nullable": true
          },
          "suggestedFees": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MembershipSuggestedFeesPostRequest"
            },
            "description": "The suggested fees for the membership",
            "nullable": true
          },
          "payments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MembershipPaymentPostRequest"
            },
            "description": "Payments included with the membership",
            "nullable": true
          },
          "preferences": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ContactPreferencePostRequest"
            },
            "description": "The membership's communication preferences",
            "nullable": true
          },
          "profiles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ContactProfilePostRequest"
            },
            "description": "The membership's profiles",
            "nullable": true
          },
          "bankName": {
            "maxLength": 100,
            "type": "string",
            "description": "name of the bank for payment",
            "nullable": true,
            "example": "Bank of the World"
          },
          "bankAddress": {
            "maxLength": 255,
            "type": "string",
            "description": "address of bank for payment",
            "nullable": true,
            "example": "32 Phillips Lane London"
          },
          "bankPostCode": {
            "maxLength": 15,
            "type": "string",
            "description": "postcode of bank for payment",
            "nullable": true,
            "example": "EC4V 5AN"
          },
          "accountName": {
            "maxLength": 100,
            "type": "string",
            "description": "the account name for payment",
            "nullable": true,
            "example": "Mr H Bailey"
          },
          "bic": {
            "maxLength": 50,
            "type": "string",
            "description": "the BIC for payment",
            "nullable": true,
            "example": "123456789"
          },
          "iban": {
            "maxLength": 50,
            "type": "string",
            "description": "the IBAN for payment",
            "nullable": true,
            "example": "IBAN_816781"
          },
          "sortCode": {
            "maxLength": 10,
            "type": "string",
            "description": "the sort code for payment",
            "nullable": true,
            "example": "123456"
          },
          "accountNumber": {
            "maxLength": 50,
            "type": "string",
            "description": "the account number for payment",
            "nullable": true,
            "example": "12345678"
          },
          "rollNumber": {
            "maxLength": 20,
            "type": "string",
            "description": "the roll number for payment",
            "nullable": true,
            "example": "4"
          },
          "text1": {
            "maxLength": 255,
            "type": "string",
            "description": "text field for payment ref",
            "nullable": true,
            "example": "UniqueText1"
          },
          "text2": {
            "maxLength": 255,
            "type": "string",
            "description": "second text field for payment ref",
            "nullable": true,
            "example": "UniqueText2"
          },
          "accountVerified": {
            "type": "string",
            "description": "date the payment details were verified\r\n<ul><li>Cannot be empty when bank details are present</li></ul>",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "accountVerifiedBy": {
            "maxLength": 50,
            "type": "string",
            "description": "user who verified account details\r\n<ul><li>Cannot be empty when bank details are present</li></ul>",
            "nullable": true,
            "example": "Nelson"
          },
          "ddiRef": {
            "maxLength": 18,
            "type": "string",
            "description": "ddi reference for payment",
            "nullable": true,
            "example": "16747815"
          },
          "ddiDateReceived": {
            "type": "string",
            "description": "date ddi was received",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "ddiMethod": {
            "maxLength": 50,
            "type": "string",
            "description": "ddi payment method",
            "nullable": true,
            "example": "Internet"
          },
          "ddiPaperLocation": {
            "maxLength": 50,
            "type": "string",
            "description": "location of ddi if it is on paper",
            "nullable": true,
            "example": "Paper at Organisation"
          },
          "ddiStatus": {
            "maxLength": 50,
            "type": "string",
            "description": "status of ddi",
            "nullable": true,
            "example": "Active"
          },
          "ddiStartDate": {
            "type": "string",
            "description": "date ddi stats",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "ddiErrorCode": {
            "maxLength": 50,
            "type": "string",
            "description": "ddi error code",
            "nullable": true,
            "example": "C001"
          },
          "ddiErrorDescription": {
            "maxLength": 50,
            "type": "string",
            "description": "ddi error description",
            "nullable": true,
            "example": "DDI Cancelled by user"
          },
          "notes": {
            "type": "string",
            "description": "Any notes for the membership",
            "nullable": true,
            "example": "My notes"
          },
          "cancelled": {
            "type": "string",
            "description": "whether the membership is cancelled",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "cancelledReason": {
            "maxLength": 500,
            "type": "string",
            "description": "the reason the membership was cancelled",
            "nullable": true,
            "example": "Not required"
          },
          "dataHubId": {
            "type": "string",
            "description": "A reference to the membership in Access DataHub",
            "format": "uuid",
            "nullable": true,
            "example": "98e55aa9-69d0-4809-a76c-7d40867df230"
          }
        },
        "additionalProperties": false,
        "description": "Contains information for posting a membership"
      },
      "MembershipPutRequest": {
        "type": "object",
        "properties": {
          "purchaseMethod": {
            "maxLength": 50,
            "type": "string",
            "description": "how the membership was purchased",
            "nullable": true,
            "example": "Web"
          },
          "sourceCode": {
            "maxLength": 20,
            "type": "string",
            "description": "the source code for the membership",
            "nullable": true,
            "example": "SRC001"
          },
          "receiptSerialNumber": {
            "maxLength": 50,
            "type": "string",
            "description": "serial number of contact to notify of receipt\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Value must be an existing contact</li></ul>",
            "nullable": true,
            "example": "000001"
          },
          "receiptRequired": {
            "type": "boolean",
            "description": "mark a membership as requiring receipt confirmation\r\n<ul><li>Must be 0 or 1</li></ul>",
            "nullable": true,
            "example": true
          },
          "receiptFrequency": {
            "maxLength": 25,
            "type": "string",
            "description": "the frequency with which the membership is to be acknowledged\r\n<ul><li>Must exist in the 'ReceiptFrequency' Lookup</li></ul>",
            "nullable": true,
            "example": "Monthly"
          },
          "nextReceiptDate": {
            "type": "string",
            "description": "the date upon which the membership is due to be acknowledged",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "giftMembership": {
            "type": "boolean",
            "description": "whether the membership was given as a gift\r\n<ul><li>Must be 0 or 1</li></ul>",
            "nullable": true,
            "example": false
          },
          "startDate": {
            "type": "string",
            "description": "the start date of the membership",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "expiryDate": {
            "type": "string",
            "description": "the expiry date of the membership",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "paymentStartDate": {
            "type": "string",
            "description": "the start date for the membership payments",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "paymentMethod": {
            "maxLength": 50,
            "type": "string",
            "description": "the method for paying off the membership\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Must exist in the 'PaymentType' Lookup</li></ul>",
            "nullable": true,
            "example": "Direct Debit"
          },
          "paymentFrequency": {
            "maxLength": 25,
            "type": "string",
            "description": "the payment frequency of the membership\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Must exist in 'MembershipPaymentFrequency' lookup</li></ul><ul><li>Cannot change for 'Expired' memberships</li></ul><ul><li>Cannot change when membership has no outstanding balance</li></ul>",
            "nullable": true,
            "example": "Annually"
          },
          "paymentDay": {
            "type": "integer",
            "description": "the day on which membership payments are taken\r\n<ul><li>Must be between 1 and 28</li></ul><ul><li>Must be an 'Active' or 'Pending' Membership</li></ul><ul><li>Cannot change for Single, Irregular, Weekly or 4 Weekly Memberships</li></ul><ul><li>Cannot change when no future instalments left to pay</li></ul><ul><li>Cannot change as final instalment would fall after the expiry date of the membership</li></ul><ul><li>The PaymentDay and PaymentStartDate are not on the same day</li></ul><ul><li>Must exist in the 'Direct Debit Payment Day' lookup when values are specified and the payment type is Direct Debit</li></ul>",
            "format": "int32",
            "nullable": true,
            "example": 21
          },
          "taxClaimable": {
            "type": "boolean",
            "description": "whether the membership payments are tax claimable\r\n<ul><li>Must be 0 or 1</li></ul>",
            "nullable": true,
            "example": false
          },
          "payerSerialNumber": {
            "maxLength": 50,
            "type": "string",
            "description": "the serialNumber of the contact paying for the membership\r\n<ul><li>For new records this must not be empty</li></ul><ul><li>Value must be an existing contact</li></ul>",
            "nullable": true,
            "example": "000001"
          },
          "accountNumber": {
            "maxLength": 50,
            "type": "string",
            "description": "the account number for payment",
            "nullable": true,
            "example": "12345678"
          },
          "bankName": {
            "maxLength": 100,
            "type": "string",
            "description": "name of the bank for payment",
            "nullable": true,
            "example": "Bank of the World"
          },
          "bankAddress": {
            "maxLength": 255,
            "type": "string",
            "description": "address of bank for payment",
            "nullable": true,
            "example": "32 Phillips Lane London"
          },
          "bankPostCode": {
            "maxLength": 15,
            "type": "string",
            "description": "postcode of bank for payment",
            "nullable": true,
            "example": "EC4V 5AN"
          },
          "accountName": {
            "maxLength": 100,
            "type": "string",
            "description": "the account name for payment",
            "nullable": true,
            "example": "Mr H Bailey"
          },
          "bic": {
            "maxLength": 50,
            "type": "string",
            "description": "the BIC for payment",
            "nullable": true,
            "example": "123456789"
          },
          "iban": {
            "maxLength": 50,
            "type": "string",
            "description": "the IBAN for payment",
            "nullable": true,
            "example": "IBAN_816781"
          },
          "sortCode": {
            "maxLength": 10,
            "type": "string",
            "description": "the sort code for payment",
            "nullable": true,
            "example": "123456"
          },
          "rollNumber": {
            "maxLength": 20,
            "type": "string",
            "description": "the roll number for payment",
            "nullable": true,
            "example": "4"
          },
          "text1": {
            "maxLength": 255,
            "type": "string",
            "description": "text field for payment ref",
            "nullable": true,
            "example": "UniqueText1"
          },
          "text2": {
            "maxLength": 255,
            "type": "string",
            "description": "second text field for payment ref",
            "nullable": true,
            "example": "UniqueText2"
          },
          "accountVerified": {
            "type": "string",
            "description": "date the payment details were verified\r\n<ul><li>Cannot be empty when altering bank details</li></ul>",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "accountVerifiedBy": {
            "maxLength": 50,
            "type": "string",
            "description": "user who verified account details\r\n<ul><li>Cannot be empty when altering bank details</li></ul>",
            "nullable": true,
            "example": "Nelson"
          },
          "ddiRef": {
            "maxLength": 18,
            "type": "string",
            "description": "ddi reference for payment\r\n<ul><li>Must be unique for each record</li></ul><ul><li>Must be unique in the import</li></ul>",
            "nullable": true,
            "example": "16747815"
          },
          "ddiDateReceived": {
            "type": "string",
            "description": "date ddi was received",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "ddiMethod": {
            "maxLength": 50,
            "type": "string",
            "description": "ddi payment method\r\n<ul><li>Cannot be empty when specifying a new DDIRef</li></ul>",
            "nullable": true,
            "example": "Internet"
          },
          "ddiPaperLocation": {
            "maxLength": 50,
            "type": "string",
            "description": "location of ddi if it is on paper",
            "nullable": true,
            "example": "Paper at Organisation"
          },
          "ddiStatus": {
            "maxLength": 50,
            "type": "string",
            "description": "status of ddi\r\n<ul><li>Cannot be empty when specifying a new DDIRef</li></ul>",
            "nullable": true,
            "example": "Active"
          },
          "ddiStartDate": {
            "type": "string",
            "description": "date ddi stats",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "notes": {
            "type": "string",
            "description": "Any notes for the membership",
            "nullable": true,
            "example": "My notes"
          },
          "changeReason": {
            "maxLength": 100,
            "type": "string",
            "description": "The reason for the update",
            "nullable": true,
            "example": "Error correction"
          },
          "changeNotes": {
            "maxLength": 1000,
            "type": "string",
            "description": "Any notes relating to the update",
            "nullable": true,
            "example": "Under Minimum Age"
          },
          "effectiveFrom": {
            "type": "string",
            "description": "When change is to take effect",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modified": {
            "type": "string",
            "description": "When the record was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user who last modified the record\r\n<ul><li>Default is API</li></ul>",
            "nullable": true,
            "example": "Muriel"
          },
          "acquisitionCost": {
            "type": "number",
            "description": "The cost to acquire the membership",
            "format": "double",
            "nullable": true,
            "example": 10.50
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MembershipCustomFieldPostRequest"
            },
            "description": "Custom field data",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information for posting a membership"
      },
      "MembershipSchemeBand": {
        "type": "object",
        "properties": {
          "schemeId": {
            "type": "string",
            "nullable": true
          },
          "membershipType": {
            "type": "string",
            "nullable": true
          },
          "periodId": {
            "type": "string",
            "nullable": true
          },
          "periodName": {
            "type": "string",
            "nullable": true
          },
          "bandId": {
            "type": "string",
            "nullable": true
          },
          "bandName": {
            "type": "string",
            "nullable": true
          },
          "bandDescription": {
            "type": "string",
            "nullable": true
          },
          "freeMonths": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "membershipDuration": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "effectiveFrom": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "openended": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "created": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "createdBy": {
            "type": "string",
            "nullable": true
          },
          "modified": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "modifiedBy": {
            "type": "string",
            "nullable": true
          },
          "fixedFees": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MembershipSchemeCostFixedFee"
            },
            "nullable": true
          },
          "criteriaFees": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MembershipSchemeCostCriteriaFee"
            },
            "nullable": true
          },
          "additionalMemberFees": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MembershipSchemeCostAdditionalMem"
            },
            "nullable": true
          },
          "inclusiveBenefits": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MembershipSchemeCostInclusiveBenefit"
            },
            "nullable": true
          },
          "optionalBenefits": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MembershipSchemeCostOptBenefit"
            },
            "nullable": true
          },
          "discounts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MembershipSchemeBandDiscount"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MembershipSchemeBandDiscount": {
        "type": "object",
        "properties": {
          "bandId": {
            "type": "string",
            "description": "The Band ID",
            "nullable": true,
            "example": "BND001"
          },
          "bandName": {
            "type": "string",
            "description": "The Band Name",
            "nullable": true,
            "example": "Bronze"
          },
          "typeDiscountId": {
            "type": "string",
            "nullable": true
          },
          "schemeId": {
            "type": "string",
            "nullable": true
          },
          "joinDiscountCode": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "renewalDiscountCode": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "effectiveFrom": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "effectiveTo": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "discountCode": {
            "type": "string",
            "nullable": true
          },
          "discountTitle": {
            "type": "string",
            "nullable": true
          },
          "manualDiscount": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "discountType": {
            "type": "string",
            "nullable": true
          },
          "discountValue": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "sourceCode": {
            "type": "string",
            "nullable": true
          },
          "paymentType": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MembershipSchemeCostAdditionalMem": {
        "type": "object",
        "properties": {
          "costId": {
            "type": "string",
            "nullable": true
          },
          "costType": {
            "type": "string",
            "nullable": true
          },
          "bandId": {
            "type": "string",
            "description": "The Band ID",
            "nullable": true,
            "example": "BND001"
          },
          "bandName": {
            "type": "string",
            "description": "The Band Name",
            "nullable": true,
            "example": "Bronze"
          },
          "costDescription": {
            "type": "string",
            "nullable": true
          },
          "joiningAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "renewalAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "vatRate": {
            "type": "string",
            "nullable": true
          },
          "destinationCode": {
            "type": "string",
            "nullable": true
          },
          "groupId": {
            "type": "string",
            "nullable": true
          },
          "groupQuantity": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "optional": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "additionalContact": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "criteriaGroup": {
            "type": "string",
            "nullable": true
          },
          "lowerlimit": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "upperlimit": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "percentageOfValue": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "minJoiningAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "maxJoiningAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "minRenewalAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "maxRenewalAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MembershipSchemeCostCriteriaFee": {
        "type": "object",
        "properties": {
          "costId": {
            "type": "string",
            "nullable": true
          },
          "costType": {
            "type": "string",
            "nullable": true
          },
          "bandId": {
            "type": "string",
            "description": "The Band ID",
            "nullable": true,
            "example": "BND001"
          },
          "bandName": {
            "type": "string",
            "description": "The Band Name",
            "nullable": true,
            "example": "Bronze"
          },
          "costDescription": {
            "type": "string",
            "nullable": true
          },
          "joiningAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "renewalAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "vatRate": {
            "type": "string",
            "nullable": true
          },
          "destinationCode": {
            "type": "string",
            "nullable": true
          },
          "groupId": {
            "type": "string",
            "nullable": true
          },
          "groupQuantity": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "optional": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "additionalContact": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "criteriaGroup": {
            "type": "string",
            "nullable": true
          },
          "lowerlimit": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "upperlimit": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "percentageOfValue": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "minJoiningAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "maxJoiningAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "minRenewalAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "maxRenewalAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MembershipSchemeCostFixedFee": {
        "type": "object",
        "properties": {
          "costId": {
            "type": "string",
            "nullable": true
          },
          "costType": {
            "type": "string",
            "nullable": true
          },
          "bandId": {
            "type": "string",
            "description": "The Band ID",
            "nullable": true,
            "example": "BND001"
          },
          "bandName": {
            "type": "string",
            "description": "The Band Name",
            "nullable": true,
            "example": "Bronze"
          },
          "costDescription": {
            "type": "string",
            "nullable": true
          },
          "joiningAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "renewalAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "vatRate": {
            "type": "string",
            "nullable": true
          },
          "destinationCode": {
            "type": "string",
            "nullable": true
          },
          "groupId": {
            "type": "string",
            "nullable": true
          },
          "groupQuantity": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "optional": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "additionalContact": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "criteriaGroup": {
            "type": "string",
            "nullable": true
          },
          "lowerlimit": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "upperlimit": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "suggested": {
            "type": "integer",
            "description": "Whether the cost is a suggested amount",
            "format": "int32",
            "nullable": true,
            "example": 0
          },
          "percentageOfValue": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "minJoiningAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "maxJoiningAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "minRenewalAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "maxRenewalAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MembershipSchemeCostInclusiveBenefit": {
        "type": "object",
        "properties": {
          "costId": {
            "type": "string",
            "nullable": true
          },
          "costType": {
            "type": "string",
            "nullable": true
          },
          "bandId": {
            "type": "string",
            "description": "The Band ID",
            "nullable": true,
            "example": "BND001"
          },
          "bandName": {
            "type": "string",
            "description": "The Band Name",
            "nullable": true,
            "example": "Bronze"
          },
          "costDescription": {
            "type": "string",
            "nullable": true
          },
          "joiningAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "renewalAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "vatRate": {
            "type": "string",
            "nullable": true
          },
          "destinationCode": {
            "type": "string",
            "nullable": true
          },
          "groupId": {
            "type": "string",
            "nullable": true
          },
          "groupQuantity": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "optional": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "additionalContact": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "criteriaGroup": {
            "type": "string",
            "nullable": true
          },
          "lowerlimit": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "upperlimit": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "percentageOfValue": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "minJoiningAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "maxJoiningAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "minRenewalAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "maxRenewalAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MembershipSchemeCostOptBenefit": {
        "type": "object",
        "properties": {
          "costId": {
            "type": "string",
            "nullable": true
          },
          "costType": {
            "type": "string",
            "nullable": true
          },
          "bandId": {
            "type": "string",
            "description": "The Band ID",
            "nullable": true,
            "example": "BND001"
          },
          "bandName": {
            "type": "string",
            "description": "The Band Name",
            "nullable": true,
            "example": "Bronze"
          },
          "costDescription": {
            "type": "string",
            "nullable": true
          },
          "joiningAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "renewalAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "vatRate": {
            "type": "string",
            "nullable": true
          },
          "destinationCode": {
            "type": "string",
            "nullable": true
          },
          "groupId": {
            "type": "string",
            "nullable": true
          },
          "groupQuantity": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "optional": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "additionalContact": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "criteriaGroup": {
            "type": "string",
            "nullable": true
          },
          "lowerlimit": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "upperlimit": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "percentageOfValue": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "minJoiningAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "maxJoiningAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "minRenewalAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "maxRenewalAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MembershipSchemeGetResponse": {
        "type": "object",
        "properties": {
          "deletedDate": {
            "type": "string",
            "description": "Record deleted date",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "schemeId": {
            "type": "string",
            "description": "The unique identifier for this membership scheme / type.",
            "nullable": true,
            "example": "ADM0001"
          },
          "membershipType": {
            "type": "string",
            "description": "The unique name for this membership scheme.",
            "nullable": true
          },
          "paymentMethods": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The possible payment methods.",
            "nullable": true
          },
          "paymentFrequency": {
            "type": "string",
            "description": "The default payment frequency",
            "nullable": true,
            "example": "Annually"
          },
          "pricingType": {
            "type": "string",
            "description": "The membership scheme pricing type",
            "nullable": true
          },
          "vatExempt": {
            "type": "integer",
            "description": "Flag to indicate if the scheme is vat exempt",
            "format": "int32",
            "nullable": true
          },
          "publishToWeb": {
            "type": "integer",
            "description": "A flag to indicate if the scheme should be available on the web",
            "format": "int32",
            "nullable": true,
            "example": true
          },
          "webTitle": {
            "type": "string",
            "description": "The schemes web title",
            "nullable": true,
            "example": "Marathon Newsletter"
          },
          "webDescription": {
            "type": "string",
            "description": "The web description",
            "nullable": true,
            "example": "Annual emails including any update to the organisation"
          },
          "webMultiplePeople": {
            "type": "integer",
            "description": "If the web sign up allows multiple people and how many",
            "format": "int32",
            "nullable": true
          },
          "webCurrency": {
            "type": "string",
            "description": "The web currency",
            "nullable": true
          },
          "webPaymentMethods": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Payment methods available on the web",
            "nullable": true
          },
          "webRank": {
            "type": "integer",
            "description": "Ordering on the web",
            "format": "int32",
            "nullable": true
          },
          "bandsAvailable": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MembershipSchemeBand"
            },
            "description": "Bands available on this scheme",
            "nullable": true
          },
          "periodsAvailable": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MembershipSchemePeriod"
            },
            "description": "Periods available on this scheme",
            "nullable": true
          },
          "notes": {
            "type": "string",
            "description": "Notes",
            "nullable": true,
            "example": "Free text notes in here"
          },
          "recordOwner": {
            "type": "string",
            "description": "Record owner",
            "nullable": true,
            "example": "Steve"
          },
          "created": {
            "type": "string",
            "description": "Created date",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "type": "string",
            "description": "Created by",
            "nullable": true,
            "example": "Muriel"
          },
          "modified": {
            "type": "string",
            "description": "Modified date",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "Modified by",
            "nullable": true,
            "example": "Muriel"
          },
          "defaultSourceCode": {
            "type": "string",
            "description": "Default source code",
            "nullable": true,
            "example": "General"
          },
          "defaultDestination": {
            "type": "string",
            "description": "Default destination",
            "nullable": true
          },
          "paidByGiftOrGroup": {
            "type": "integer",
            "description": "A value of -1 indicates that the membership type is by default paid by another contact as a gift",
            "format": "int32",
            "nullable": true
          },
          "rolling": {
            "type": "integer",
            "description": "Indicates whether or not the record is a rolling membership scheme which will automatically renew when the final payment is made",
            "format": "int32",
            "nullable": true
          },
          "archived": {
            "type": "boolean",
            "description": "A flag to indicate if the scheme has been archived",
            "example": false
          },
          "modifiedDate": {
            "type": "string",
            "description": "Last modified date",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdDate": {
            "type": "string",
            "description": "Record created date",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the Membership Scheme"
      },
      "MembershipSchemePeriod": {
        "type": "object",
        "properties": {
          "schemeId": {
            "type": "string",
            "nullable": true,
            "example": "ADM0001"
          },
          "membershipType": {
            "type": "string",
            "nullable": true
          },
          "periodId": {
            "type": "string",
            "nullable": true,
            "example": "PER0001"
          },
          "periodName": {
            "type": "string",
            "nullable": true,
            "example": "2019"
          },
          "effectiveFrom": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "notes": {
            "type": "string",
            "nullable": true,
            "example": "Free text notes in here"
          },
          "discounts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MembershipSchemePeriodDiscount"
            },
            "nullable": true
          },
          "optionalBenefits": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MembershipSchemeCostOptBenefit"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MembershipSchemePeriodDiscount": {
        "type": "object",
        "properties": {
          "periodId": {
            "type": "string",
            "nullable": true,
            "example": "PER0001"
          },
          "periodName": {
            "type": "string",
            "nullable": true,
            "example": "2019"
          },
          "typeDiscountId": {
            "type": "string",
            "nullable": true
          },
          "schemeId": {
            "type": "string",
            "nullable": true
          },
          "joinDiscountCode": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "renewalDiscountCode": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "effectiveFrom": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "effectiveTo": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "discountCode": {
            "type": "string",
            "nullable": true
          },
          "discountTitle": {
            "type": "string",
            "nullable": true
          },
          "manualDiscount": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "discountType": {
            "type": "string",
            "nullable": true
          },
          "discountValue": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "sourceCode": {
            "type": "string",
            "nullable": true
          },
          "paymentType": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MembershipSuggestedFeesPostRequest": {
        "required": [
          "amount",
          "description"
        ],
        "type": "object",
        "properties": {
          "costId": {
            "maxLength": 50,
            "type": "string",
            "description": "The unique identifier for this type of membership cost",
            "nullable": true,
            "example": "MC0000458"
          },
          "description": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string",
            "description": "Description of the Cost",
            "example": "Fees"
          },
          "amount": {
            "type": "number",
            "description": "The cost value for the Suggested Fees",
            "format": "double",
            "example": 50
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the membership fixed fees for posts"
      },
      "ModelError": {
        "type": "object",
        "properties": {
          "exception": {
            "nullable": true
          },
          "errorMessage": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ModelStateEntry": {
        "type": "object",
        "properties": {
          "rawValue": {
            "nullable": true
          },
          "attemptedValue": {
            "type": "string",
            "nullable": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ModelError"
            },
            "nullable": true,
            "readOnly": true
          },
          "validationState": {
            "$ref": "#/components/schemas/ModelValidationState"
          },
          "isContainerNode": {
            "type": "boolean",
            "readOnly": true
          },
          "children": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ModelStateEntry"
            },
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "ModelValidationState": {
        "enum": [
          0,
          1,
          2,
          3
        ],
        "type": "integer",
        "format": "int32"
      },
      "PaymentAllocationGetResponse": {
        "type": "object",
        "properties": {
          "destinationCode": {
            "type": "string",
            "description": "The destination code for the payment allocation\r\n<ul><li>Must be an existing destination code</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "ledgerCode": {
            "type": "string",
            "description": "The ledger code for the payment allocation",
            "nullable": true,
            "example": "M123"
          },
          "amount": {
            "type": "number",
            "description": "The allocated payment amount",
            "format": "double",
            "nullable": true
          },
          "externalRef": {
            "type": "string",
            "description": "The external reference of the payment\r\n<ul><li>When 'invoiceItemId' is provided this must match the external ref on the corresponding invoiceable item held in the database</li></ul>",
            "nullable": true,
            "example": "M102110388-H1"
          },
          "externalRefType": {
            "type": "string",
            "description": "The type of the external reference\r\n<ul><li>When 'invoiceItemId' is provided this must match the external ref type on the corresponding invoiceable item held in the database</li></ul>",
            "nullable": true,
            "example": "MembershipDetail"
          },
          "invoiceId": {
            "type": "string",
            "description": "The ID of the invoice associated with the payment",
            "nullable": true,
            "example": "000067975"
          },
          "taxClaimable": {
            "type": "boolean",
            "description": "Whether the payment is tax claimable\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": true
          },
          "incomeType": {
            "type": "string",
            "description": "The type of income this payment is associated with\r\n<ul><li>Must exist in the 'IncomeTypeBatchDetail' lookup</li></ul><ul><li>Must not be set to 'Header'</li></ul>",
            "nullable": true,
            "example": "MEMBERSHIP"
          },
          "invoiceItemId": {
            "type": "string",
            "description": "The ID of the invoice item that this payment is associated with\r\n<ul><li>Must be equal to the item code for an invoiceable item</li></ul>",
            "nullable": true,
            "example": "47976"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on where payments are allocated"
      },
      "PaymentAllocationPostRequest": {
        "required": [
          "amount",
          "destinationCode"
        ],
        "type": "object",
        "properties": {
          "destinationCode": {
            "maxLength": 20,
            "minLength": 1,
            "type": "string",
            "description": "The destination code for the payment allocation\r\n<ul><li>Must be an existing destination code</li></ul>",
            "example": "General"
          },
          "ledgerCode": {
            "maxLength": 100,
            "type": "string",
            "description": "The ledger code for the payment allocation",
            "nullable": true,
            "example": "M123"
          },
          "amount": {
            "type": "number",
            "description": "The allocated payment amount",
            "format": "double"
          },
          "externalRef": {
            "type": "string",
            "description": "The external reference of the payment\r\n<ul><li>When 'invoiceItemId' is provided this must match the external ref on the corresponding invoiceable item held in the database</li></ul>",
            "nullable": true,
            "example": "M102110388-H1"
          },
          "externalRefType": {
            "type": "string",
            "description": "The type of the external reference\r\n<ul><li>When 'invoiceItemId' is provided this must match the external ref type on the corresponding invoiceable item held in the database</li></ul>",
            "nullable": true,
            "example": "MembershipDetail"
          },
          "invoiceId": {
            "type": "string",
            "description": "The ID of the invoice associated with the payment",
            "nullable": true,
            "example": "000067975"
          },
          "taxClaimable": {
            "type": "boolean",
            "description": "Whether the payment is tax claimable\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": true
          },
          "incomeType": {
            "type": "string",
            "description": "The type of income this payment is associated with\r\n<ul><li>Must exist in the 'IncomeTypeBatchDetail' lookup</li></ul><ul><li>Must not be set to 'Header'</li></ul>",
            "nullable": true,
            "example": "MEMBERSHIP"
          },
          "invoiceItemId": {
            "type": "string",
            "description": "The ID of the invoice item that this payment is associated with\r\n<ul><li>Must be equal to the item code for an invoiceable item</li></ul>",
            "nullable": true,
            "example": "47976"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on a payment allocation to post"
      },
      "PaymentAllocationSearchGetResponse": {
        "type": "object",
        "properties": {
          "paymentId": {
            "type": "string",
            "description": "The Payment Id to filter on",
            "nullable": true,
            "example": "844498189"
          },
          "paymentRef": {
            "type": "string",
            "description": "The reference for this payment",
            "nullable": true,
            "example": "EVT01"
          },
          "paymentBatchId": {
            "type": "string",
            "description": "The batch that this payment is in",
            "nullable": true,
            "example": "B10250"
          },
          "parentPaymentId": {
            "type": "string",
            "description": "The ID of the payment that this allocation belongs to",
            "nullable": true,
            "example": "844498180"
          },
          "serialNumber": {
            "type": "string",
            "description": "The SerialNumber of the contact that this payment belongs to",
            "nullable": true,
            "example": "000011"
          },
          "taxClaimable": {
            "type": "boolean",
            "description": "Whether the payment is tax claimable",
            "nullable": true,
            "example": true
          },
          "taxClaimId": {
            "type": "string",
            "description": "The tax claim ID if this payment was included in a tax claim",
            "nullable": true,
            "example": "CLAIM1041"
          },
          "taxAuthorityId": {
            "type": "string",
            "description": "The Tax Authority Id for this payment",
            "nullable": true,
            "example": "GAD00004"
          },
          "externalRef": {
            "type": "string",
            "description": "The external reference of the payment",
            "nullable": true,
            "example": "M102110388-H1"
          },
          "externalRefType": {
            "type": "string",
            "description": "The type of the external reference",
            "nullable": true,
            "example": "MembershipDetail"
          },
          "amount": {
            "type": "number",
            "description": "The allocated payment amount",
            "format": "double",
            "nullable": true,
            "example": 23.67
          },
          "originalAmount": {
            "type": "number",
            "description": "The allocated original payment amount",
            "format": "double",
            "nullable": true,
            "example": 23.67
          },
          "date": {
            "type": "string",
            "description": "The date the payment was received",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "paymentMethod": {
            "type": "string",
            "description": "The payment method for this payment",
            "nullable": true,
            "example": "Invoice"
          },
          "sourceCode": {
            "type": "string",
            "description": "The source code of this payment",
            "nullable": true,
            "example": "General"
          },
          "destinationCode": {
            "type": "string",
            "description": "The destination code for this payment allocation",
            "nullable": true,
            "example": "General"
          },
          "ledgerCode": {
            "type": "string",
            "description": "The ledger code for the payment allocation",
            "nullable": true,
            "example": "M123"
          },
          "treatAsAnon": {
            "type": "boolean",
            "description": "A flag indicating if this payment is to be treated as anonymous",
            "nullable": true,
            "example": false
          },
          "incomeStream": {
            "type": "string",
            "description": "The income stream for this payment",
            "nullable": true,
            "example": "MEM01"
          },
          "incomeType": {
            "type": "string",
            "description": "The type of income this payment is associated with",
            "nullable": true,
            "example": "MEMBERSHIP"
          },
          "pledgeId": {
            "type": "string",
            "description": "The ID of the pledge associated with the payment",
            "nullable": true,
            "example": "P123456"
          },
          "pledgeLineId": {
            "type": "string",
            "description": "The pledge line item that this payment is associated with",
            "nullable": true,
            "example": ""
          },
          "invoiceId": {
            "type": "string",
            "description": "The ID of the invoice associated with the payment",
            "nullable": true,
            "example": "000067975"
          },
          "invoiceItemId": {
            "type": "integer",
            "description": "The ID of the invoice item that this payment is associated with",
            "format": "int32",
            "nullable": true,
            "example": 47976
          },
          "created": {
            "type": "string",
            "description": "The date this payment was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "type": "string",
            "description": "The user that created this payment",
            "nullable": true,
            "example": "JohnFunding"
          },
          "modified": {
            "type": "string",
            "description": "The date this payment was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user that last modified this payment",
            "nullable": true,
            "example": "JohnFunding"
          },
          "inWork": {
            "type": "boolean",
            "description": "Indicates if the payment has not yet been approved",
            "nullable": true,
            "example": false
          },
          "donationReason": {
            "type": "string",
            "description": "Reason for the donation",
            "nullable": true,
            "example": "In memorium"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on where payments are allocated"
      },
      "PaymentBatchGetResponse": {
        "type": "object",
        "properties": {
          "paymentBatchId": {
            "type": "string",
            "description": "This is the unique identifier for the batch of payments\r\n<ul><li>Must be unique to each batch being imported</li></ul><ul><li>Must not already exist against a batch</li></ul><ul><li>Default is Sequence: BatchId</li></ul>",
            "nullable": true,
            "example": "B10250"
          },
          "batchType": {
            "type": "string",
            "description": "The type of the batch (from the ‘BatchType’ lookup). \r\n<ul><li>Must be an existing value in the 'BatchType' lookup</li></ul><ul><li>Default is 'Donation Batch'</li></ul>",
            "nullable": true,
            "example": "Membership Batch"
          },
          "currency": {
            "type": "string",
            "description": "The currency of the batch (from the lookup with name 'Currency')\r\n<ul><li>Must be an existing value in the 'Currency' lookup</li></ul><ul><li>Default is Library Definition: 'MainCurrency'</li></ul>",
            "nullable": true,
            "example": "GBP"
          },
          "isApproved": {
            "type": "boolean",
            "description": "If the batch has been approved of is still a work in progress\r\n<ul><li>Default is 'true'</li></ul>",
            "nullable": true,
            "example": true
          },
          "batchDescription": {
            "type": "string",
            "description": "The batch description",
            "nullable": true,
            "example": "December membership batch"
          },
          "expectedNumberOfItems": {
            "type": "integer",
            "description": "How many payment items are expected in the batch",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "expectedTotalValue": {
            "type": "number",
            "description": "The expected total value of all the items in the batch",
            "format": "double",
            "nullable": true,
            "example": 23.67
          },
          "defaultSourceCode": {
            "type": "string",
            "description": "The default source code for the batch\r\n<ul><li>Must exist as an existing source code</li></ul><ul><li>Default is LookupValue: SourceCodeDefault</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "defaultDestinationCode": {
            "type": "string",
            "description": "The default destination code for the batch\r\n<ul><li>Must exist as an existing destination code</li></ul><ul><li>Default is LookupValue: DestinationCodeDefault</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "defaultPaymentType": {
            "type": "string",
            "description": "The default payment type for the batch\r\n<ul><li>Must exist in the 'PaymentType' lookup</li></ul>",
            "nullable": true,
            "example": "Cash"
          },
          "defaultDateOfPayment": {
            "type": "string",
            "description": "The default Date of Payment for the new payments",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "accountReference": {
            "type": "string",
            "description": "The account reference for the batch",
            "nullable": true,
            "example": "561648c"
          },
          "payingInReference": {
            "type": "string",
            "description": "The paying in reference for the batch",
            "nullable": true,
            "example": "CRM-Ref-001"
          },
          "created": {
            "type": "string",
            "description": "When the record was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "type": "string",
            "description": "The user who created the record",
            "nullable": true,
            "example": "JohnFunding"
          },
          "modified": {
            "type": "string",
            "description": "When the record was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user who last modified the record",
            "nullable": true,
            "example": "JohnFunding"
          },
          "approvedBy": {
            "type": "string",
            "description": "Who the batch was approved by\r\n<ul><li>For new records this must not be empty when 'isApproved' = 'true'</li></ul><ul><li>Must be empty when 'isApproved = 'false'</li></ul><ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "approved": {
            "type": "string",
            "description": "When the batch was approved",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "payments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentGetResponse"
            },
            "description": "Contains a collection of the payments in the batch",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information about a payment batch"
      },
      "PaymentBatchGetResponseCollectionItem": {
        "type": "object",
        "properties": {
          "paymentBatchId": {
            "type": "string",
            "description": "This is the unique identifier for the batch of payments\r\n<ul><li>Must be unique to each batch being imported</li></ul><ul><li>Must not already exist against a batch</li></ul><ul><li>Default is Sequence: BatchId</li></ul>",
            "nullable": true,
            "example": "B10250"
          },
          "batchType": {
            "type": "string",
            "description": "The type of the batch (from the ‘BatchType’ lookup). \r\n<ul><li>Must be an existing value in the 'BatchType' lookup</li></ul><ul><li>Default is 'Donation Batch'</li></ul>",
            "nullable": true,
            "example": "Membership Batch"
          },
          "currency": {
            "type": "string",
            "description": "The currency of the batch (from the lookup with name 'Currency')\r\n<ul><li>Must be an existing value in the 'Currency' lookup</li></ul><ul><li>Default is Library Definition: 'MainCurrency'</li></ul>",
            "nullable": true,
            "example": "GBP"
          },
          "isApproved": {
            "type": "boolean",
            "description": "If the batch has been approved of is still a work in progress\r\n<ul><li>Default is 'true'</li></ul>",
            "nullable": true,
            "example": true
          },
          "batchDescription": {
            "type": "string",
            "description": "The batch description",
            "nullable": true,
            "example": "December membership batch"
          },
          "expectedNumberOfItems": {
            "type": "integer",
            "description": "How many payment items are expected in the batch",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "expectedTotalValue": {
            "type": "number",
            "description": "The expected total value of all the items in the batch",
            "format": "double",
            "nullable": true,
            "example": 23.67
          },
          "defaultSourceCode": {
            "type": "string",
            "description": "The default source code for the batch\r\n<ul><li>Must exist as an existing source code</li></ul><ul><li>Default is LookupValue: SourceCodeDefault</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "defaultDestinationCode": {
            "type": "string",
            "description": "The default destination code for the batch\r\n<ul><li>Must exist as an existing destination code</li></ul><ul><li>Default is LookupValue: DestinationCodeDefault</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "defaultPaymentType": {
            "type": "string",
            "description": "The default payment type for the batch\r\n<ul><li>Must exist in the 'PaymentType' lookup</li></ul>",
            "nullable": true,
            "example": "Cash"
          },
          "defaultDateOfPayment": {
            "type": "string",
            "description": "The default Date of Payment for the new payments",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "accountReference": {
            "type": "string",
            "description": "The account reference for the batch",
            "nullable": true,
            "example": "561648c"
          },
          "payingInReference": {
            "type": "string",
            "description": "The paying in reference for the batch",
            "nullable": true,
            "example": "CRM-Ref-001"
          },
          "created": {
            "type": "string",
            "description": "When the record was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "type": "string",
            "description": "The user who created the record",
            "nullable": true,
            "example": "JohnFunding"
          },
          "modified": {
            "type": "string",
            "description": "When the record was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user who last modified the record",
            "nullable": true,
            "example": "JohnFunding"
          },
          "approvedBy": {
            "type": "string",
            "description": "Who the batch was approved by\r\n<ul><li>For new records this must not be empty when 'isApproved' = 'true'</li></ul><ul><li>Must be empty when 'isApproved = 'false'</li></ul><ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "approved": {
            "type": "string",
            "description": "When the batch was approved",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          }
        },
        "additionalProperties": false,
        "description": "Contains information about a payment batch"
      },
      "PaymentBatchGetResponseCollectionResponse": {
        "type": "object",
        "properties": {
          "pageNumber": {
            "type": "integer",
            "description": "The page number for the data in the response",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "The page size for the data in the response",
            "format": "int32"
          },
          "totalCount": {
            "type": "integer",
            "description": "The total number of items in the data collection",
            "format": "int32",
            "nullable": true
          },
          "pageCount": {
            "type": "integer",
            "description": "The total number of pages in the data collection",
            "format": "int32",
            "nullable": true,
            "readOnly": true
          },
          "hasNextPage": {
            "type": "boolean",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentBatchGetResponseCollectionItem"
            },
            "description": "The collection of items",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Holds response information for a collection of data"
      },
      "PaymentBatchIncludeGetResponse": {
        "type": "object",
        "properties": {
          "paymentBatchId": {
            "type": "string",
            "description": "This is the unique identifier for the batch of payments\r\n<ul><li>Must be unique to each batch being imported</li></ul><ul><li>Must not already exist against a batch</li></ul><ul><li>Default is Sequence: BatchId</li></ul>",
            "nullable": true,
            "example": "B10250"
          },
          "batchType": {
            "type": "string",
            "description": "The type of the batch (from the ‘BatchType’ lookup). \r\n<ul><li>Must be an existing value in the 'BatchType' lookup</li></ul><ul><li>Default is 'Donation Batch'</li></ul>",
            "nullable": true,
            "example": "Membership Batch"
          },
          "currency": {
            "type": "string",
            "description": "The currency of the batch (from the lookup with name 'Currency')\r\n<ul><li>Must be an existing value in the 'Currency' lookup</li></ul><ul><li>Default is Library Definition: 'MainCurrency'</li></ul>",
            "nullable": true,
            "example": "GBP"
          },
          "isApproved": {
            "type": "boolean",
            "description": "If the batch has been approved of is still a work in progress\r\n<ul><li>Default is 'true'</li></ul>",
            "nullable": true,
            "example": true
          },
          "batchDescription": {
            "type": "string",
            "description": "The batch description",
            "nullable": true,
            "example": "December membership batch"
          },
          "expectedNumberOfItems": {
            "type": "integer",
            "description": "How many payment items are expected in the batch",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "expectedTotalValue": {
            "type": "number",
            "description": "The expected total value of all the items in the batch",
            "format": "double",
            "nullable": true,
            "example": 23.67
          },
          "defaultSourceCode": {
            "type": "string",
            "description": "The default source code for the batch\r\n<ul><li>Must exist as an existing source code</li></ul><ul><li>Default is LookupValue: SourceCodeDefault</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "defaultDestinationCode": {
            "type": "string",
            "description": "The default destination code for the batch\r\n<ul><li>Must exist as an existing destination code</li></ul><ul><li>Default is LookupValue: DestinationCodeDefault</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "defaultPaymentType": {
            "type": "string",
            "description": "The default payment type for the batch\r\n<ul><li>Must exist in the 'PaymentType' lookup</li></ul>",
            "nullable": true,
            "example": "Cash"
          },
          "defaultDateOfPayment": {
            "type": "string",
            "description": "The default Date of Payment for the new payments",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "accountReference": {
            "type": "string",
            "description": "The account reference for the batch",
            "nullable": true,
            "example": "561648c"
          },
          "payingInReference": {
            "type": "string",
            "description": "The paying in reference for the batch",
            "nullable": true,
            "example": "CRM-Ref-001"
          },
          "created": {
            "type": "string",
            "description": "When the record was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "type": "string",
            "description": "The user who created the record",
            "nullable": true,
            "example": "JohnFunding"
          },
          "modified": {
            "type": "string",
            "description": "When the record was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user who last modified the record",
            "nullable": true,
            "example": "JohnFunding"
          },
          "approvedBy": {
            "type": "string",
            "description": "Who the batch was approved by\r\n<ul><li>For new records this must not be empty when 'isApproved' = 'true'</li></ul><ul><li>Must be empty when 'isApproved = 'false'</li></ul><ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "approved": {
            "type": "string",
            "description": "When the batch was approved",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "payments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentGetResponse"
            },
            "description": "Contains a collection of the payments in the batch",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information about a payment batch"
      },
      "PaymentBatchPostRequest": {
        "type": "object",
        "properties": {
          "paymentBatchId": {
            "maxLength": 50,
            "type": "string",
            "description": "This is the unique identifier for the batch of payments\r\n<ul><li>Must be unique to each batch being imported</li></ul><ul><li>Must not already exist against a batch</li></ul><ul><li>Default is Sequence: BatchId</li></ul>",
            "nullable": true,
            "example": "B10250"
          },
          "batchType": {
            "maxLength": 50,
            "type": "string",
            "description": "The type of the batch (from the ‘BatchType’ lookup). \r\n<ul><li>Must be an existing value in the 'BatchType' lookup</li></ul><ul><li>Default is 'Donation Batch'</li></ul>",
            "nullable": true,
            "example": "Membership Batch"
          },
          "currency": {
            "maxLength": 25,
            "type": "string",
            "description": "The currency of the batch (from the lookup with name 'Currency')\r\n<ul><li>Must be an existing value in the 'Currency' lookup</li></ul><ul><li>Default is Library Definition: 'MainCurrency'</li></ul>",
            "nullable": true,
            "example": "GBP"
          },
          "isApproved": {
            "type": "boolean",
            "description": "If the batch has been approved of is still a work in progress\r\n<ul><li>Default is 'true'</li></ul>",
            "nullable": true,
            "example": true
          },
          "batchDescription": {
            "maxLength": 255,
            "type": "string",
            "description": "The batch description",
            "nullable": true,
            "example": "December membership batch"
          },
          "expectedNumberOfItems": {
            "type": "integer",
            "description": "How many payment items are expected in the batch",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "expectedTotalValue": {
            "type": "number",
            "description": "The expected total value of all the items in the batch",
            "format": "double",
            "nullable": true,
            "example": 23.67
          },
          "defaultSourceCode": {
            "maxLength": 20,
            "type": "string",
            "description": "The default source code for the batch\r\n<ul><li>Must exist as an existing source code</li></ul><ul><li>Default is LookupValue: SourceCodeDefault</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "defaultDestinationCode": {
            "maxLength": 20,
            "type": "string",
            "description": "The default destination code for the batch\r\n<ul><li>Must exist as an existing destination code</li></ul><ul><li>Default is LookupValue: DestinationCodeDefault</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "defaultPaymentType": {
            "maxLength": 50,
            "type": "string",
            "description": "The default payment type for the batch\r\n<ul><li>Must exist in the 'PaymentType' lookup</li></ul>",
            "nullable": true,
            "example": "Cash"
          },
          "defaultDateOfPayment": {
            "type": "string",
            "description": "The default Date of Payment for the new payments",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "accountReference": {
            "maxLength": 25,
            "type": "string",
            "description": "The account reference for the batch",
            "nullable": true,
            "example": "561648c"
          },
          "payingInReference": {
            "maxLength": 25,
            "type": "string",
            "description": "The paying in reference for the batch",
            "nullable": true,
            "example": "CRM-Ref-001"
          },
          "created": {
            "type": "string",
            "description": "When the record was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user who created the record",
            "nullable": true,
            "example": "JohnFunding"
          },
          "modified": {
            "type": "string",
            "description": "When the record was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user who last modified the record",
            "nullable": true,
            "example": "JohnFunding"
          },
          "approvedBy": {
            "maxLength": 50,
            "type": "string",
            "description": "Who the batch was approved by\r\n<ul><li>For new records this must not be empty when 'isApproved' = 'true'</li></ul><ul><li>Must be empty when 'isApproved = 'false'</li></ul><ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "approved": {
            "type": "string",
            "description": "When the batch was approved",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "payments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentPostRequest"
            },
            "description": "Contains a collection of the payments in the batch to post",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information about a payment batch to post"
      },
      "PaymentGetResponse": {
        "type": "object",
        "properties": {
          "paymentId": {
            "type": "string",
            "description": "The unique ID of the payment\r\n<ul><li>For the Soft Credits and Payment Allocations, this value is automatically set to the Payment ID of the parent payment record.</li></ul><ul><li>Must not exist against a payment record in the database, including the Web area</li></ul><ul><li>Must not be duplicated in the imported data</li></ul><ul><li>Default is Sequence: BatchDetailId</li></ul>",
            "nullable": true,
            "example": "844498189"
          },
          "paymentRef": {
            "type": "string",
            "description": "An external payment reference of the payment",
            "nullable": true,
            "example": "EVT01"
          },
          "paymentBatchId": {
            "type": "string",
            "description": "This is the unique identifier for the batch of payments\r\n<p>It is possible to specify this when performing different payment POST requests</p><ul><li>When specified for a Payment POST request (single or bulk) this value must exist as an existing un-approved batch</li></ul><ul><li>When not specified for a Payment POST request (single or bulk) a new approved batch will be created and all payments in the request without a PaymentBatchID will be allocated to the new batch</li></ul><ul><li>When specified for a PaymentBatch POST request this value must exist an existing un-approved batch, all PaymentBatchIDs specified against the payments contained within the batch must have the same PaymentBatchID as the batch</li></ul><ul><li>When not specified for a PaymentBatch POST request this value the batch will be given a default PaymentBatchID, and any payments in the batch should not have a PaymentBatchID specified</li></ul><ul><li>When specified in multiple rows in a CSV POST request all 'PaymentBatch' fields for the same batch must be an exact match for the payments to go into the same batch</li></ul><ul><li>When not specified for a PaymentBatch POST request this value the batch will be given a default PaymentBatchID, and any payments in the batch should not have a PaymentBatchID specified</li></ul><ul><li>When not specified in multiple rows in a CSV POST request this value the batch will be given a default PaymentBatchID and all 'PaymentBatch' fields for the same batch must be an exact match for the payments to go into the same batch</li></ul>",
            "nullable": true,
            "example": "B10250"
          },
          "serialNumber": {
            "type": "string",
            "description": "The serial number of the contact \r\n<ul><li>When a contact is imported as part of a payment record, the payment will be recorded against the new contact if the serial number against the payment is empty.</li></ul><ul><li>If different serial numbers are provided for the contact and payment, the contact will still be created, but the payment will be associated with the serial number\r\nthat has been specified on the payment, not the new contact.</li></ul><ul><li>If the serial number against the payment does not match the contact being imported, or an existing contact, validation will fail.</li></ul>",
            "nullable": true,
            "example": "000011"
          },
          "taxClaimable": {
            "type": "boolean",
            "description": "True indicates that gift aid may be claimed on this payment\r\n<ul><li>This is set to 'false' by default</li></ul><ul><li>It is also updated to 'false' if the 'paymentType' value is 'Not Claimable', regardless of the original 'taxClaimable' value</li></ul>",
            "nullable": true,
            "example": true
          },
          "taxClaimId": {
            "type": "string",
            "description": "The unique ID of the Gift Aid Claim of which this payment forms part",
            "nullable": true,
            "example": "CLAIM1041"
          },
          "taxAuthorityId": {
            "type": "string",
            "description": "The unique ID of the Gift Aid Declaration valid for this payment from the contact\r\n<ul><li>Where there are Gift Aid Declarations imported as part of the payment record, the value of 'taxAuthorityId' against \r\nthe payment will be updated with the value of the Gift Aid 'DeclarationId' field.</li></ul>",
            "nullable": true,
            "example": "GAD00004"
          },
          "externalRef": {
            "type": "string",
            "description": "The reference for the object that the payment is for \r\n<ul><li>When 'invoiceItemId' is provided this must match the external ref on the corresponding invoiceable item held in the database</li></ul><ul><li>When 'bookingId' is provided this must match the booking ID of the corresponding event booking held in the database</li></ul><ul><li>When 'attendeeCostID' is provided this must match the attendee cost ID of the corresponding event booking cost held in the database</li></ul><ul><li>When 'membershipId' is provided this must match the membership ID of a corresponding membership held in the database</li></ul>",
            "nullable": true,
            "example": "M102110388-H1"
          },
          "externalRefType": {
            "type": "string",
            "description": "The object type the payment is for\r\n<ul><li>Where the payment is for an **event booking**, then this should be set to **EventBooking** and the External Ref set to the Booking ID of the event booking to which the payment should be allocated.</li><ul><li>The payments will be split across the event booking fees as specified against the event.</li><li>Invoices for the event booking payments will be created.</li><li>Destination codes should not be specified as the ones used against the event booking will be used.</li><li>Payment soft credits as defined against the event booking will be applied.</li></ul></ul><ul><li>Where the payment is for an **event booking cost item**, then this should be set to **EventBookingItem** and the External Ref set to the Attendee Cost ID of the cost to which the payment should be allocated.</li><ul><li>The payment will then be used to pay this specific event booking cost.</li><li>Invoices for the cost will be created.</li><li>Destination codes should not be specified as the ones used against the specific cost item will be used.</li><li>Payment soft credits as defined against the event booking will be applied.</li></ul></ul><ul><li>Where the payment is for a **membership**, then this should be set to **Membership** and the External Ref set to the Membership ID of the membership to which the payment should be allocated.</li><ul><li>The payments will be split across the membership costs as specified against the membership.</li><li>Invoices for the membership payments will be created.</li><li>Destination codes should not be specified as the ones used against the membership will be used.</li></ul></ul><ul><li>When 'invoiceItemId' is provided this must match the external ref type on the corresponding invoiceable item held in the database</li></ul><ul><li>When 'bookingId' is provided this must be set to EventBooking</li></ul><ul><li>When 'attendeeCostID' is provided this must be set to EventBookingItem</li></ul><ul><li>When 'membershipId' is provided this must be set to Membership</li></ul>",
            "nullable": true,
            "example": "MembershipDetail"
          },
          "amount": {
            "type": "number",
            "description": "The payment amount\r\n<ul><li>Must equal the combined value of all payment allocations where they exist</li></ul>",
            "format": "double",
            "nullable": true,
            "example": 23.67
          },
          "originalAmount": {
            "type": "number",
            "description": "The original payment amount for the payment before any currency conversion\r\n<ul><li>This is set to the value of the 'amount' field by default</li></ul><ul><li>After this, if the value of 'originalAmount' is still empty, it will be set to the value of the 'MainCurrency' Library Definition</li></ul>",
            "format": "double",
            "nullable": true,
            "example": 23.67
          },
          "originalCurrency": {
            "type": "string",
            "description": "The payments original currency before any currency conversion",
            "nullable": true,
            "example": "GBP"
          },
          "transactionFee": {
            "type": "number",
            "description": "The transaction fee associated to the payment",
            "format": "double",
            "nullable": true,
            "example": 0.00
          },
          "date": {
            "type": "string",
            "description": "The date of the payment",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "dateRecognised": {
            "type": "string",
            "description": "The date recognised, used for reporting on annual fund reports and giving club levels",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "datePosted": {
            "type": "string",
            "description": "The date the payment was posted to an accounting package",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "paymentMethod": {
            "type": "string",
            "description": "The Payment method of the income item e.g. Cash, Cheque etc.\r\n<ul><li>Must exist in the 'PaymentType' lookup</li></ul><ul><li>Default is PaymentBatch.DefaultPaymentType</li></ul>",
            "nullable": true,
            "example": "Invoice"
          },
          "sourceCode": {
            "type": "string",
            "description": "The source code for the payment\r\n<ul><li>Must be an existing source code</li></ul><ul><li>Default is PaymentBatch.DefaultSourceCode, Lookup Value: SourceCodeDefault</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "destinationCode": {
            "type": "string",
            "description": "The destination code for the payment\r\n<ul><li>When there are no splits on the payment, this defaults to the PaymentBatch.DefaultDestinationCode. </li><li>If this value is empty then it will default to the Lookup Value 'DestinationCodeDefault'</li></ul><ul><li>When there are no payment allocations this must be an existing destination code</li></ul><ul><li>When there are payment allocations this must be empty</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "ledgerCode": {
            "type": "string",
            "description": "The account code for the payment\r\n<ul><li>When the 'destinationCode' is provided, 'ledgerCode' will default to the value of the LEDGERCODE field that is stored in the destination code record in the database</li></ul>",
            "nullable": true,
            "example": "M123"
          },
          "narrative": {
            "type": "string",
            "description": "Extra text relating to the payment",
            "nullable": true,
            "example": "These have been paid but not put through the system!!!"
          },
          "donationReason": {
            "type": "string",
            "description": "Reason for the donation",
            "nullable": true,
            "example": "Loves puppies!"
          },
          "treatAsAnon": {
            "type": "boolean",
            "description": "True indicates that the contact's serial number and name should not appear on any finance reports for this income\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "incomeStream": {
            "type": "string",
            "description": "The income stream of the donation\r\n<ul><li>When the contact type is 'Organisation' this will default to 'Corporate'. \r\nOtherwise, it will default to 'Personal'</li></ul>",
            "nullable": true,
            "example": "Personal"
          },
          "incomeType": {
            "type": "string",
            "description": "The income type of the donation\r\n<ul><li>Must exist in the 'IncomeTypeBatchDetail' lookup</li></ul><ul><li>Default is 'DONATION'</li></ul>",
            "nullable": true,
            "example": "MEMBERSHIP"
          },
          "receiptRequired": {
            "type": "boolean",
            "description": "True indicates that the contact requires an acknowledgement\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": true
          },
          "receiptSerialNumber": {
            "type": "string",
            "description": "The serial number of the contact that the acknowledgement should be sent to\r\n<ul><li>Must belong to an existing contact</li></ul><ul><li>Default is serialNumber</li></ul>",
            "nullable": true,
            "example": "000011"
          },
          "boxId": {
            "type": "string",
            "description": "The ID of the collection box from which the income was collected",
            "nullable": true,
            "example": ""
          },
          "pledgeId": {
            "type": "string",
            "description": "The ID of the pledge that this payment is for",
            "nullable": true,
            "example": "P123456"
          },
          "pledgeLineId": {
            "type": "string",
            "description": "The pledge line number of the pledge that this payment is towards",
            "nullable": true,
            "example": ""
          },
          "onlineGivingEventId": {
            "type": "string",
            "description": "The Event ID used for Just Giving, Virgin Money or BT My Donate",
            "nullable": true,
            "example": ""
          },
          "invoiceId": {
            "type": "string",
            "description": "If this payment is associated with an invoice, this is the ID of the invoice",
            "nullable": true,
            "example": "000067975"
          },
          "invoiceItemId": {
            "type": "string",
            "description": "If this payment is associated with an invoice, this is the ID of the invoice line item\r\n<ul><li>The invoiceItemId for each allocation is set to the value of the ITEMID that is held in the database for that particular invoice able item.</li><li>This alteration only takes place when the invoiceItemId value in the import matches the ITEMCODE of the invoice able item in the database.</li></ul><ul><li>Must be equal to the item code for an invoiceable item</li></ul>",
            "nullable": true,
            "example": "47976"
          },
          "reversal": {
            "type": "boolean",
            "description": "Whether this payment has been reversed\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "reversedBatchId": {
            "type": "string",
            "description": "If the payment is a reversal, then this is the batch id where the reversed payment is",
            "nullable": true,
            "example": ""
          },
          "reversedPaymentId": {
            "type": "string",
            "description": "If the payment is a reversal, then this is the payment id of the reversed payment",
            "nullable": true,
            "example": ""
          },
          "created": {
            "type": "string",
            "description": "The date the record was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "type": "string",
            "description": "The user who created the record\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "modified": {
            "type": "string",
            "description": "The date the record was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user who last modified the record\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "udT01": {
            "type": "string",
            "description": "The user defined text field 01",
            "nullable": true,
            "example": "User Defined Text Field Here"
          },
          "udT02": {
            "type": "string",
            "description": "The user defined text field 02",
            "nullable": true
          },
          "udT03": {
            "type": "string",
            "description": "The user defined text field 03",
            "nullable": true
          },
          "udT04": {
            "type": "string",
            "description": "The user defined text field 04",
            "nullable": true
          },
          "udT05": {
            "type": "string",
            "description": "The user defined text field 05",
            "nullable": true
          },
          "udT06": {
            "type": "string",
            "description": "The user defined text field 06",
            "nullable": true
          },
          "udT07": {
            "type": "string",
            "description": "The user defined text field 07",
            "nullable": true
          },
          "udT08": {
            "type": "string",
            "description": "The user defined text field 08",
            "nullable": true
          },
          "udT09": {
            "type": "string",
            "description": "The user defined text field 09",
            "nullable": true
          },
          "udT10": {
            "type": "string",
            "description": "The user defined text field 10",
            "nullable": true
          },
          "udN01": {
            "type": "number",
            "description": "The user defined number field 01",
            "format": "double",
            "nullable": true,
            "example": 34.22
          },
          "udN02": {
            "type": "number",
            "description": "The user defined number field 02",
            "format": "double",
            "nullable": true
          },
          "udN03": {
            "type": "number",
            "description": "The user defined number field 03",
            "format": "double",
            "nullable": true
          },
          "udN04": {
            "type": "number",
            "description": "The user defined number field 04",
            "format": "double",
            "nullable": true
          },
          "udN05": {
            "type": "number",
            "description": "The user defined number field 05",
            "format": "double",
            "nullable": true
          },
          "udN06": {
            "type": "number",
            "description": "The user defined number field 06",
            "format": "double",
            "nullable": true
          },
          "udN07": {
            "type": "number",
            "description": "The user defined number field 07",
            "format": "double",
            "nullable": true
          },
          "udN08": {
            "type": "number",
            "description": "The user defined number field 08",
            "format": "double",
            "nullable": true
          },
          "udN09": {
            "type": "number",
            "description": "The user defined number field 09",
            "format": "double",
            "nullable": true
          },
          "udN10": {
            "type": "number",
            "description": "The user defined number field 10",
            "format": "double",
            "nullable": true
          },
          "udD01": {
            "type": "string",
            "description": "The user defined date field 01",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD02": {
            "type": "string",
            "description": "The user defined date field 02",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD03": {
            "type": "string",
            "description": "The user defined date field 03",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD04": {
            "type": "string",
            "description": "The user defined date field 04",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD05": {
            "type": "string",
            "description": "The user defined date field 05",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD06": {
            "type": "string",
            "description": "The user defined date field 06",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD07": {
            "type": "string",
            "description": "The user defined date field 07",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD08": {
            "type": "string",
            "description": "The user defined date field 08",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD09": {
            "type": "string",
            "description": "The user defined date field 09",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD10": {
            "type": "string",
            "description": "The user defined date field 10",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udB01": {
            "type": "boolean",
            "description": "The user defined bool field 01",
            "nullable": true,
            "example": false
          },
          "udB02": {
            "type": "boolean",
            "description": "The user defined bool field 02",
            "nullable": true
          },
          "udB03": {
            "type": "boolean",
            "description": "The user defined bool field 03",
            "nullable": true
          },
          "udB04": {
            "type": "boolean",
            "description": "The user defined bool field 04",
            "nullable": true
          },
          "udB05": {
            "type": "boolean",
            "description": "The user defined bool field 05",
            "nullable": true
          },
          "udB06": {
            "type": "boolean",
            "description": "The user defined bool field 06",
            "nullable": true
          },
          "udB07": {
            "type": "boolean",
            "description": "The user defined bool field 07",
            "nullable": true
          },
          "udB08": {
            "type": "boolean",
            "description": "The user defined bool field 08",
            "nullable": true
          },
          "udB09": {
            "type": "boolean",
            "description": "The user defined bool field 09",
            "nullable": true
          },
          "udB10": {
            "type": "boolean",
            "description": "The user defined bool field 10",
            "nullable": true
          },
          "inWork": {
            "type": "boolean",
            "description": "Flag to differentiate approved payments (false) and in work payments (true)",
            "example": false
          },
          "allocations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentAllocationGetResponse"
            },
            "description": "Contains the allocations for the payment",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information about a payment"
      },
      "PaymentGetResponseCollectionItem": {
        "type": "object",
        "properties": {
          "paymentId": {
            "type": "string",
            "description": "The unique ID of the payment\r\n<ul><li>For the Soft Credits and Payment Allocations, this value is automatically set to the Payment ID of the parent payment record.</li></ul><ul><li>Must not exist against a payment record in the database, including the Web area</li></ul><ul><li>Must not be duplicated in the imported data</li></ul><ul><li>Default is Sequence: BatchDetailId</li></ul>",
            "nullable": true,
            "example": "844498189"
          },
          "paymentRef": {
            "type": "string",
            "description": "An external payment reference of the payment",
            "nullable": true,
            "example": "EVT01"
          },
          "paymentBatchId": {
            "type": "string",
            "description": "This is the unique identifier for the batch of payments\r\n<p>It is possible to specify this when performing different payment POST requests</p><ul><li>When specified for a Payment POST request (single or bulk) this value must exist as an existing un-approved batch</li></ul><ul><li>When not specified for a Payment POST request (single or bulk) a new approved batch will be created and all payments in the request without a PaymentBatchID will be allocated to the new batch</li></ul><ul><li>When specified for a PaymentBatch POST request this value must exist an existing un-approved batch, all PaymentBatchIDs specified against the payments contained within the batch must have the same PaymentBatchID as the batch</li></ul><ul><li>When not specified for a PaymentBatch POST request this value the batch will be given a default PaymentBatchID, and any payments in the batch should not have a PaymentBatchID specified</li></ul><ul><li>When specified in multiple rows in a CSV POST request all 'PaymentBatch' fields for the same batch must be an exact match for the payments to go into the same batch</li></ul><ul><li>When not specified for a PaymentBatch POST request this value the batch will be given a default PaymentBatchID, and any payments in the batch should not have a PaymentBatchID specified</li></ul><ul><li>When not specified in multiple rows in a CSV POST request this value the batch will be given a default PaymentBatchID and all 'PaymentBatch' fields for the same batch must be an exact match for the payments to go into the same batch</li></ul>",
            "nullable": true,
            "example": "B10250"
          },
          "serialNumber": {
            "type": "string",
            "description": "The serial number of the contact \r\n<ul><li>When a contact is imported as part of a payment record, the payment will be recorded against the new contact if the serial number against the payment is empty.</li></ul><ul><li>If different serial numbers are provided for the contact and payment, the contact will still be created, but the payment will be associated with the serial number\r\nthat has been specified on the payment, not the new contact.</li></ul><ul><li>If the serial number against the payment does not match the contact being imported, or an existing contact, validation will fail.</li></ul>",
            "nullable": true,
            "example": "000011"
          },
          "taxClaimable": {
            "type": "boolean",
            "description": "True indicates that gift aid may be claimed on this payment\r\n<ul><li>This is set to 'false' by default</li></ul><ul><li>It is also updated to 'false' if the 'paymentType' value is 'Not Claimable', regardless of the original 'taxClaimable' value</li></ul>",
            "nullable": true,
            "example": true
          },
          "taxClaimId": {
            "type": "string",
            "description": "The unique ID of the Gift Aid Claim of which this payment forms part",
            "nullable": true,
            "example": "CLAIM1041"
          },
          "taxAuthorityId": {
            "type": "string",
            "description": "The unique ID of the Gift Aid Declaration valid for this payment from the contact\r\n<ul><li>Where there are Gift Aid Declarations imported as part of the payment record, the value of 'taxAuthorityId' against \r\nthe payment will be updated with the value of the Gift Aid 'DeclarationId' field.</li></ul>",
            "nullable": true,
            "example": "GAD00004"
          },
          "externalRef": {
            "type": "string",
            "description": "The reference for the object that the payment is for \r\n<ul><li>When 'invoiceItemId' is provided this must match the external ref on the corresponding invoiceable item held in the database</li></ul><ul><li>When 'bookingId' is provided this must match the booking ID of the corresponding event booking held in the database</li></ul><ul><li>When 'attendeeCostID' is provided this must match the attendee cost ID of the corresponding event booking cost held in the database</li></ul><ul><li>When 'membershipId' is provided this must match the membership ID of a corresponding membership held in the database</li></ul>",
            "nullable": true,
            "example": "M102110388-H1"
          },
          "externalRefType": {
            "type": "string",
            "description": "The object type the payment is for\r\n<ul><li>Where the payment is for an **event booking**, then this should be set to **EventBooking** and the External Ref set to the Booking ID of the event booking to which the payment should be allocated.</li><ul><li>The payments will be split across the event booking fees as specified against the event.</li><li>Invoices for the event booking payments will be created.</li><li>Destination codes should not be specified as the ones used against the event booking will be used.</li><li>Payment soft credits as defined against the event booking will be applied.</li></ul></ul><ul><li>Where the payment is for an **event booking cost item**, then this should be set to **EventBookingItem** and the External Ref set to the Attendee Cost ID of the cost to which the payment should be allocated.</li><ul><li>The payment will then be used to pay this specific event booking cost.</li><li>Invoices for the cost will be created.</li><li>Destination codes should not be specified as the ones used against the specific cost item will be used.</li><li>Payment soft credits as defined against the event booking will be applied.</li></ul></ul><ul><li>Where the payment is for a **membership**, then this should be set to **Membership** and the External Ref set to the Membership ID of the membership to which the payment should be allocated.</li><ul><li>The payments will be split across the membership costs as specified against the membership.</li><li>Invoices for the membership payments will be created.</li><li>Destination codes should not be specified as the ones used against the membership will be used.</li></ul></ul><ul><li>When 'invoiceItemId' is provided this must match the external ref type on the corresponding invoiceable item held in the database</li></ul><ul><li>When 'bookingId' is provided this must be set to EventBooking</li></ul><ul><li>When 'attendeeCostID' is provided this must be set to EventBookingItem</li></ul><ul><li>When 'membershipId' is provided this must be set to Membership</li></ul>",
            "nullable": true,
            "example": "MembershipDetail"
          },
          "amount": {
            "type": "number",
            "description": "The payment amount\r\n<ul><li>Must equal the combined value of all payment allocations where they exist</li></ul>",
            "format": "double",
            "nullable": true,
            "example": 23.67
          },
          "originalAmount": {
            "type": "number",
            "description": "The original payment amount for the payment before any currency conversion\r\n<ul><li>This is set to the value of the 'amount' field by default</li></ul><ul><li>After this, if the value of 'originalAmount' is still empty, it will be set to the value of the 'MainCurrency' Library Definition</li></ul>",
            "format": "double",
            "nullable": true,
            "example": 23.67
          },
          "originalCurrency": {
            "type": "string",
            "description": "The payments original currency before any currency conversion",
            "nullable": true,
            "example": "GBP"
          },
          "transactionFee": {
            "type": "number",
            "description": "The transaction fee associated to the payment",
            "format": "double",
            "nullable": true,
            "example": 0.00
          },
          "date": {
            "type": "string",
            "description": "The date of the payment",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "dateRecognised": {
            "type": "string",
            "description": "The date recognised, used for reporting on annual fund reports and giving club levels",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "datePosted": {
            "type": "string",
            "description": "The date the payment was posted to an accounting package",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "paymentMethod": {
            "type": "string",
            "description": "The Payment method of the income item e.g. Cash, Cheque etc.\r\n<ul><li>Must exist in the 'PaymentType' lookup</li></ul><ul><li>Default is PaymentBatch.DefaultPaymentType</li></ul>",
            "nullable": true,
            "example": "Invoice"
          },
          "sourceCode": {
            "type": "string",
            "description": "The source code for the payment\r\n<ul><li>Must be an existing source code</li></ul><ul><li>Default is PaymentBatch.DefaultSourceCode, Lookup Value: SourceCodeDefault</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "destinationCode": {
            "type": "string",
            "description": "The destination code for the payment\r\n<ul><li>When there are no splits on the payment, this defaults to the PaymentBatch.DefaultDestinationCode. </li><li>If this value is empty then it will default to the Lookup Value 'DestinationCodeDefault'</li></ul><ul><li>When there are no payment allocations this must be an existing destination code</li></ul><ul><li>When there are payment allocations this must be empty</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "ledgerCode": {
            "type": "string",
            "description": "The account code for the payment\r\n<ul><li>When the 'destinationCode' is provided, 'ledgerCode' will default to the value of the LEDGERCODE field that is stored in the destination code record in the database</li></ul>",
            "nullable": true,
            "example": "M123"
          },
          "narrative": {
            "type": "string",
            "description": "Extra text relating to the payment",
            "nullable": true,
            "example": "These have been paid but not put through the system!!!"
          },
          "donationReason": {
            "type": "string",
            "description": "Reason for the donation",
            "nullable": true,
            "example": "Loves puppies!"
          },
          "treatAsAnon": {
            "type": "boolean",
            "description": "True indicates that the contact's serial number and name should not appear on any finance reports for this income\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "incomeStream": {
            "type": "string",
            "description": "The income stream of the donation\r\n<ul><li>When the contact type is 'Organisation' this will default to 'Corporate'. \r\nOtherwise, it will default to 'Personal'</li></ul>",
            "nullable": true,
            "example": "Personal"
          },
          "incomeType": {
            "type": "string",
            "description": "The income type of the donation\r\n<ul><li>Must exist in the 'IncomeTypeBatchDetail' lookup</li></ul><ul><li>Default is 'DONATION'</li></ul>",
            "nullable": true,
            "example": "MEMBERSHIP"
          },
          "receiptRequired": {
            "type": "boolean",
            "description": "True indicates that the contact requires an acknowledgement\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": true
          },
          "receiptSerialNumber": {
            "type": "string",
            "description": "The serial number of the contact that the acknowledgement should be sent to\r\n<ul><li>Must belong to an existing contact</li></ul><ul><li>Default is serialNumber</li></ul>",
            "nullable": true,
            "example": "000011"
          },
          "boxId": {
            "type": "string",
            "description": "The ID of the collection box from which the income was collected",
            "nullable": true,
            "example": ""
          },
          "pledgeId": {
            "type": "string",
            "description": "The ID of the pledge that this payment is for",
            "nullable": true,
            "example": "P123456"
          },
          "pledgeLineId": {
            "type": "string",
            "description": "The pledge line number of the pledge that this payment is towards",
            "nullable": true,
            "example": ""
          },
          "onlineGivingEventId": {
            "type": "string",
            "description": "The Event ID used for Just Giving, Virgin Money or BT My Donate",
            "nullable": true,
            "example": ""
          },
          "invoiceId": {
            "type": "string",
            "description": "If this payment is associated with an invoice, this is the ID of the invoice",
            "nullable": true,
            "example": "000067975"
          },
          "invoiceItemId": {
            "type": "string",
            "description": "If this payment is associated with an invoice, this is the ID of the invoice line item\r\n<ul><li>The invoiceItemId for each allocation is set to the value of the ITEMID that is held in the database for that particular invoice able item.</li><li>This alteration only takes place when the invoiceItemId value in the import matches the ITEMCODE of the invoice able item in the database.</li></ul><ul><li>Must be equal to the item code for an invoiceable item</li></ul>",
            "nullable": true,
            "example": "47976"
          },
          "reversal": {
            "type": "boolean",
            "description": "Whether this payment has been reversed\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "reversedBatchId": {
            "type": "string",
            "description": "If the payment is a reversal, then this is the batch id where the reversed payment is",
            "nullable": true,
            "example": ""
          },
          "reversedPaymentId": {
            "type": "string",
            "description": "If the payment is a reversal, then this is the payment id of the reversed payment",
            "nullable": true,
            "example": ""
          },
          "created": {
            "type": "string",
            "description": "The date the record was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "type": "string",
            "description": "The user who created the record\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "modified": {
            "type": "string",
            "description": "The date the record was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user who last modified the record\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "udT01": {
            "type": "string",
            "description": "The user defined text field 01",
            "nullable": true,
            "example": "User Defined Text Field Here"
          },
          "udT02": {
            "type": "string",
            "description": "The user defined text field 02",
            "nullable": true
          },
          "udT03": {
            "type": "string",
            "description": "The user defined text field 03",
            "nullable": true
          },
          "udT04": {
            "type": "string",
            "description": "The user defined text field 04",
            "nullable": true
          },
          "udT05": {
            "type": "string",
            "description": "The user defined text field 05",
            "nullable": true
          },
          "udT06": {
            "type": "string",
            "description": "The user defined text field 06",
            "nullable": true
          },
          "udT07": {
            "type": "string",
            "description": "The user defined text field 07",
            "nullable": true
          },
          "udT08": {
            "type": "string",
            "description": "The user defined text field 08",
            "nullable": true
          },
          "udT09": {
            "type": "string",
            "description": "The user defined text field 09",
            "nullable": true
          },
          "udT10": {
            "type": "string",
            "description": "The user defined text field 10",
            "nullable": true
          },
          "udN01": {
            "type": "number",
            "description": "The user defined number field 01",
            "format": "double",
            "nullable": true,
            "example": 34.22
          },
          "udN02": {
            "type": "number",
            "description": "The user defined number field 02",
            "format": "double",
            "nullable": true
          },
          "udN03": {
            "type": "number",
            "description": "The user defined number field 03",
            "format": "double",
            "nullable": true
          },
          "udN04": {
            "type": "number",
            "description": "The user defined number field 04",
            "format": "double",
            "nullable": true
          },
          "udN05": {
            "type": "number",
            "description": "The user defined number field 05",
            "format": "double",
            "nullable": true
          },
          "udN06": {
            "type": "number",
            "description": "The user defined number field 06",
            "format": "double",
            "nullable": true
          },
          "udN07": {
            "type": "number",
            "description": "The user defined number field 07",
            "format": "double",
            "nullable": true
          },
          "udN08": {
            "type": "number",
            "description": "The user defined number field 08",
            "format": "double",
            "nullable": true
          },
          "udN09": {
            "type": "number",
            "description": "The user defined number field 09",
            "format": "double",
            "nullable": true
          },
          "udN10": {
            "type": "number",
            "description": "The user defined number field 10",
            "format": "double",
            "nullable": true
          },
          "udD01": {
            "type": "string",
            "description": "The user defined date field 01",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD02": {
            "type": "string",
            "description": "The user defined date field 02",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD03": {
            "type": "string",
            "description": "The user defined date field 03",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD04": {
            "type": "string",
            "description": "The user defined date field 04",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD05": {
            "type": "string",
            "description": "The user defined date field 05",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD06": {
            "type": "string",
            "description": "The user defined date field 06",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD07": {
            "type": "string",
            "description": "The user defined date field 07",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD08": {
            "type": "string",
            "description": "The user defined date field 08",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD09": {
            "type": "string",
            "description": "The user defined date field 09",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD10": {
            "type": "string",
            "description": "The user defined date field 10",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udB01": {
            "type": "boolean",
            "description": "The user defined bool field 01",
            "nullable": true,
            "example": false
          },
          "udB02": {
            "type": "boolean",
            "description": "The user defined bool field 02",
            "nullable": true
          },
          "udB03": {
            "type": "boolean",
            "description": "The user defined bool field 03",
            "nullable": true
          },
          "udB04": {
            "type": "boolean",
            "description": "The user defined bool field 04",
            "nullable": true
          },
          "udB05": {
            "type": "boolean",
            "description": "The user defined bool field 05",
            "nullable": true
          },
          "udB06": {
            "type": "boolean",
            "description": "The user defined bool field 06",
            "nullable": true
          },
          "udB07": {
            "type": "boolean",
            "description": "The user defined bool field 07",
            "nullable": true
          },
          "udB08": {
            "type": "boolean",
            "description": "The user defined bool field 08",
            "nullable": true
          },
          "udB09": {
            "type": "boolean",
            "description": "The user defined bool field 09",
            "nullable": true
          },
          "udB10": {
            "type": "boolean",
            "description": "The user defined bool field 10",
            "nullable": true
          },
          "inWork": {
            "type": "boolean",
            "description": "Flag to differentiate approved payments (false) and in work payments (true)",
            "example": false
          }
        },
        "additionalProperties": false,
        "description": "Contains information about a payment"
      },
      "PaymentGetResponseCollectionResponse": {
        "type": "object",
        "properties": {
          "pageNumber": {
            "type": "integer",
            "description": "The page number for the data in the response",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "The page size for the data in the response",
            "format": "int32"
          },
          "totalCount": {
            "type": "integer",
            "description": "The total number of items in the data collection",
            "format": "int32",
            "nullable": true
          },
          "pageCount": {
            "type": "integer",
            "description": "The total number of pages in the data collection",
            "format": "int32",
            "nullable": true,
            "readOnly": true
          },
          "hasNextPage": {
            "type": "boolean",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentGetResponseCollectionItem"
            },
            "description": "The collection of items",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Holds response information for a collection of data"
      },
      "PaymentPostRequest": {
        "required": [
          "amount"
        ],
        "type": "object",
        "properties": {
          "importRowId": {
            "type": "string",
            "description": "The related import row id that ties the payment to the child items",
            "nullable": true
          },
          "oneOffGiftAidDeclaration": {
            "type": "boolean",
            "description": "Used to generate a one-off gad for this payment when importing",
            "nullable": true,
            "example": false
          },
          "paymentId": {
            "maxLength": 50,
            "type": "string",
            "description": "The unique ID of the payment\r\n<ul><li>For the Soft Credits and Payment Allocations, this value is automatically set to the Payment ID of the parent payment record.</li></ul><ul><li>Must not exist against a payment record in the database, including the Web area</li></ul><ul><li>Must not be duplicated in the imported data</li></ul><ul><li>Default is Sequence: BatchDetailId</li></ul>",
            "nullable": true,
            "example": "844498189"
          },
          "paymentRef": {
            "maxLength": 50,
            "type": "string",
            "description": "An external payment reference of the payment",
            "nullable": true,
            "example": "EVT01"
          },
          "paymentBatchId": {
            "type": "string",
            "description": "This is the unique identifier for the batch of payments\r\n<p>It is possible to specify this when performing different payment POST requests</p><ul><li>When specified for a Payment POST request (single or bulk) this value must exist as an existing un-approved batch</li></ul><ul><li>When not specified for a Payment POST request (single or bulk) a new approved batch will be created and all payments in the request without a PaymentBatchID will be allocated to the new batch</li></ul><ul><li>When specified for a PaymentBatch POST request this value must exist an existing un-approved batch, all PaymentBatchIDs specified against the payments contained within the batch must have the same PaymentBatchID as the batch</li></ul><ul><li>When not specified for a PaymentBatch POST request this value the batch will be given a default PaymentBatchID, and any payments in the batch should not have a PaymentBatchID specified</li></ul><ul><li>When specified in multiple rows in a CSV POST request all 'PaymentBatch' fields for the same batch must be an exact match for the payments to go into the same batch</li></ul><ul><li>When not specified for a PaymentBatch POST request this value the batch will be given a default PaymentBatchID, and any payments in the batch should not have a PaymentBatchID specified</li></ul><ul><li>When not specified in multiple rows in a CSV POST request this value the batch will be given a default PaymentBatchID and all 'PaymentBatch' fields for the same batch must be an exact match for the payments to go into the same batch</li></ul>",
            "nullable": true,
            "example": "B10250"
          },
          "serialNumber": {
            "maxLength": 50,
            "type": "string",
            "description": "The serial number of the contact \r\n<ul><li>When a contact is imported as part of a payment record, the payment will be recorded against the new contact if the serial number against the payment is empty.</li></ul><ul><li>If different serial numbers are provided for the contact and payment, the contact will still be created, but the payment will be associated with the serial number\r\nthat has been specified on the payment, not the new contact.</li></ul><ul><li>If the serial number against the payment does not match the contact being imported, or an existing contact, validation will fail.</li></ul>",
            "nullable": true,
            "example": "000011"
          },
          "taxClaimable": {
            "type": "boolean",
            "description": "True indicates that gift aid may be claimed on this payment\r\n<ul><li>This is set to 'false' by default</li></ul><ul><li>It is also updated to 'false' if the 'paymentType' value is 'Not Claimable', regardless of the original 'taxClaimable' value</li></ul>",
            "nullable": true,
            "example": true
          },
          "taxClaimId": {
            "maxLength": 20,
            "type": "string",
            "description": "The unique ID of the Gift Aid Claim of which this payment forms part",
            "nullable": true,
            "example": "CLAIM1041"
          },
          "taxAuthorityId": {
            "maxLength": 20,
            "type": "string",
            "description": "The unique ID of the Gift Aid Declaration valid for this payment from the contact\r\n<ul><li>Where there are Gift Aid Declarations imported as part of the payment record, the value of 'taxAuthorityId' against \r\nthe payment will be updated with the value of the Gift Aid 'DeclarationId' field.</li></ul>",
            "nullable": true,
            "example": "GAD00004"
          },
          "externalRef": {
            "maxLength": 50,
            "type": "string",
            "description": "The reference for the object that the payment is for \r\n<ul><li>When 'invoiceItemId' is provided this must match the external ref on the corresponding invoiceable item held in the database</li></ul><ul><li>When 'bookingId' is provided this must match the booking ID of the corresponding event booking held in the database</li></ul><ul><li>When 'attendeeCostID' is provided this must match the attendee cost ID of the corresponding event booking cost held in the database</li></ul><ul><li>When 'membershipId' is provided this must match the membership ID of a corresponding membership held in the database</li></ul>",
            "nullable": true,
            "example": "M102110388-H1"
          },
          "externalRefType": {
            "maxLength": 50,
            "type": "string",
            "description": "The object type the payment is for\r\n<ul><li>Where the payment is for an **event booking**, then this should be set to **EventBooking** and the External Ref set to the Booking ID of the event booking to which the payment should be allocated.</li><ul><li>The payments will be split across the event booking fees as specified against the event.</li><li>Invoices for the event booking payments will be created.</li><li>Destination codes should not be specified as the ones used against the event booking will be used.</li><li>Payment soft credits as defined against the event booking will be applied.</li></ul></ul><ul><li>Where the payment is for an **event booking cost item**, then this should be set to **EventBookingItem** and the External Ref set to the Attendee Cost ID of the cost to which the payment should be allocated.</li><ul><li>The payment will then be used to pay this specific event booking cost.</li><li>Invoices for the cost will be created.</li><li>Destination codes should not be specified as the ones used against the specific cost item will be used.</li><li>Payment soft credits as defined against the event booking will be applied.</li></ul></ul><ul><li>Where the payment is for a **membership**, then this should be set to **Membership** and the External Ref set to the Membership ID of the membership to which the payment should be allocated.</li><ul><li>The payments will be split across the membership costs as specified against the membership.</li><li>Invoices for the membership payments will be created.</li><li>Destination codes should not be specified as the ones used against the membership will be used.</li></ul></ul><ul><li>When 'invoiceItemId' is provided this must match the external ref type on the corresponding invoiceable item held in the database</li></ul><ul><li>When 'bookingId' is provided this must be set to EventBooking</li></ul><ul><li>When 'attendeeCostID' is provided this must be set to EventBookingItem</li></ul><ul><li>When 'membershipId' is provided this must be set to Membership</li></ul>",
            "nullable": true,
            "example": "MembershipDetail"
          },
          "amount": {
            "type": "number",
            "description": "The payment amount\r\n<ul><li>Must equal the combined value of all payment allocations where they exist</li></ul>",
            "format": "double",
            "example": 23.67
          },
          "originalAmount": {
            "type": "number",
            "description": "The original payment amount for the payment before any currency conversion\r\n<ul><li>This is set to the value of the 'amount' field by default</li></ul><ul><li>After this, if the value of 'originalAmount' is still empty, it will be set to the value of the 'MainCurrency' Library Definition</li></ul>",
            "format": "double",
            "nullable": true,
            "example": 23.67
          },
          "originalCurrency": {
            "maxLength": 50,
            "type": "string",
            "description": "The payments original currency before any currency conversion",
            "nullable": true,
            "example": "GBP"
          },
          "transactionFee": {
            "type": "number",
            "description": "The transaction fee associated to the payment",
            "format": "double",
            "nullable": true,
            "example": 0.00
          },
          "date": {
            "type": "string",
            "description": "The date of the payment",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "dateRecognised": {
            "type": "string",
            "description": "The date recognised, used for reporting on annual fund reports and giving club levels",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "datePosted": {
            "type": "string",
            "description": "The date the payment was posted to an accounting package",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "paymentMethod": {
            "maxLength": 50,
            "type": "string",
            "description": "The Payment method of the income item e.g. Cash, Cheque etc.\r\n<ul><li>Must exist in the 'PaymentType' lookup</li></ul><ul><li>Default is PaymentBatch.DefaultPaymentType</li></ul>",
            "nullable": true,
            "example": "Invoice"
          },
          "sourceCode": {
            "maxLength": 20,
            "type": "string",
            "description": "The source code for the payment\r\n<ul><li>Must be an existing source code</li></ul><ul><li>Default is PaymentBatch.DefaultSourceCode, Lookup Value: SourceCodeDefault</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "destinationCode": {
            "maxLength": 20,
            "type": "string",
            "description": "The destination code for the payment\r\n<ul><li>When there are no splits on the payment, this defaults to the PaymentBatch.DefaultDestinationCode. </li><li>If this value is empty then it will default to the Lookup Value 'DestinationCodeDefault'</li></ul><ul><li>When there are no payment allocations this must be an existing destination code</li></ul><ul><li>When there are payment allocations this must be empty</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "ledgerCode": {
            "maxLength": 100,
            "type": "string",
            "description": "The account code for the payment\r\n<ul><li>When the 'destinationCode' is provided, 'ledgerCode' will default to the value of the LEDGERCODE field that is stored in the destination code record in the database</li></ul>",
            "nullable": true,
            "example": "M123"
          },
          "narrative": {
            "maxLength": 255,
            "type": "string",
            "description": "Extra text relating to the payment",
            "nullable": true,
            "example": "These have been paid but not put through the system!!!"
          },
          "donationReason": {
            "type": "string",
            "description": "Reason for the donation",
            "nullable": true,
            "example": "Loves puppies!"
          },
          "treatAsAnon": {
            "type": "boolean",
            "description": "True indicates that the contact's serial number and name should not appear on any finance reports for this income\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "incomeStream": {
            "maxLength": 50,
            "type": "string",
            "description": "The income stream of the donation\r\n<ul><li>When the contact type is 'Organisation' this will default to 'Corporate'. \r\nOtherwise, it will default to 'Personal'</li></ul>",
            "nullable": true,
            "example": "Personal"
          },
          "incomeType": {
            "maxLength": 50,
            "type": "string",
            "description": "The income type of the donation\r\n<ul><li>Must exist in the 'IncomeTypeBatchDetail' lookup</li></ul><ul><li>Default is 'DONATION'</li></ul>",
            "nullable": true,
            "example": "MEMBERSHIP"
          },
          "receiptRequired": {
            "type": "boolean",
            "description": "True indicates that the contact requires an acknowledgement\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": true
          },
          "receiptSerialNumber": {
            "maxLength": 50,
            "type": "string",
            "description": "The serial number of the contact that the acknowledgement should be sent to\r\n<ul><li>Must belong to an existing contact</li></ul><ul><li>Default is serialNumber</li></ul>",
            "nullable": true,
            "example": "000011"
          },
          "boxId": {
            "maxLength": 50,
            "type": "string",
            "description": "The ID of the collection box from which the income was collected",
            "nullable": true,
            "example": ""
          },
          "pledgeId": {
            "maxLength": 50,
            "type": "string",
            "description": "The ID of the pledge that this payment is for",
            "nullable": true,
            "example": "P123456"
          },
          "pledgeLineId": {
            "maxLength": 60,
            "type": "string",
            "description": "The pledge line number of the pledge that this payment is towards",
            "nullable": true,
            "example": ""
          },
          "onlineGivingEventId": {
            "maxLength": 50,
            "type": "string",
            "description": "The Event ID used for Just Giving, Virgin Money or BT My Donate",
            "nullable": true,
            "example": ""
          },
          "invoiceId": {
            "maxLength": 50,
            "type": "string",
            "description": "If this payment is associated with an invoice, this is the ID of the invoice",
            "nullable": true,
            "example": "000067975"
          },
          "invoiceItemId": {
            "maxLength": 50,
            "type": "string",
            "description": "If this payment is associated with an invoice, this is the ID of the invoice line item\r\n<ul><li>The invoiceItemId for each allocation is set to the value of the ITEMID that is held in the database for that particular invoice able item.</li><li>This alteration only takes place when the invoiceItemId value in the import matches the ITEMCODE of the invoice able item in the database.</li></ul><ul><li>Must be equal to the item code for an invoiceable item</li></ul>",
            "nullable": true,
            "example": "47976"
          },
          "reversal": {
            "type": "boolean",
            "description": "Whether this payment has been reversed\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "reversedBatchId": {
            "maxLength": 50,
            "type": "string",
            "description": "If the payment is a reversal, then this is the batch id where the reversed payment is",
            "nullable": true,
            "example": ""
          },
          "reversedPaymentId": {
            "maxLength": 50,
            "type": "string",
            "description": "If the payment is a reversal, then this is the payment id of the reversed payment",
            "nullable": true,
            "example": ""
          },
          "created": {
            "type": "string",
            "description": "The date the record was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user who created the record\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "modified": {
            "type": "string",
            "description": "The date the record was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user who last modified the record\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "udT01": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 01",
            "nullable": true,
            "example": "User Defined Text Field Here"
          },
          "udT02": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 02",
            "nullable": true
          },
          "udT03": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 03",
            "nullable": true
          },
          "udT04": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 04",
            "nullable": true
          },
          "udT05": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 05",
            "nullable": true
          },
          "udT06": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 06",
            "nullable": true
          },
          "udT07": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 07",
            "nullable": true
          },
          "udT08": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 08",
            "nullable": true
          },
          "udT09": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 09",
            "nullable": true
          },
          "udT10": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 10",
            "nullable": true
          },
          "udN01": {
            "type": "number",
            "description": "The user defined number field 01",
            "format": "double",
            "nullable": true,
            "example": 34.22
          },
          "udN02": {
            "type": "number",
            "description": "The user defined number field 02",
            "format": "double",
            "nullable": true
          },
          "udN03": {
            "type": "number",
            "description": "The user defined number field 03",
            "format": "double",
            "nullable": true
          },
          "udN04": {
            "type": "number",
            "description": "The user defined number field 04",
            "format": "double",
            "nullable": true
          },
          "udN05": {
            "type": "number",
            "description": "The user defined number field 05",
            "format": "double",
            "nullable": true
          },
          "udN06": {
            "type": "number",
            "description": "The user defined number field 06",
            "format": "double",
            "nullable": true
          },
          "udN07": {
            "type": "number",
            "description": "The user defined number field 07",
            "format": "double",
            "nullable": true
          },
          "udN08": {
            "type": "number",
            "description": "The user defined number field 08",
            "format": "double",
            "nullable": true
          },
          "udN09": {
            "type": "number",
            "description": "The user defined number field 09",
            "format": "double",
            "nullable": true
          },
          "udN10": {
            "type": "number",
            "description": "The user defined number field 10",
            "format": "double",
            "nullable": true
          },
          "udD01": {
            "type": "string",
            "description": "The user defined date field 01",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD02": {
            "type": "string",
            "description": "The user defined date field 02",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD03": {
            "type": "string",
            "description": "The user defined date field 03",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD04": {
            "type": "string",
            "description": "The user defined date field 04",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD05": {
            "type": "string",
            "description": "The user defined date field 05",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD06": {
            "type": "string",
            "description": "The user defined date field 06",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD07": {
            "type": "string",
            "description": "The user defined date field 07",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD08": {
            "type": "string",
            "description": "The user defined date field 08",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD09": {
            "type": "string",
            "description": "The user defined date field 09",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD10": {
            "type": "string",
            "description": "The user defined date field 10",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udB01": {
            "type": "boolean",
            "description": "The user defined bool field 01",
            "nullable": true,
            "example": false
          },
          "udB02": {
            "type": "boolean",
            "description": "The user defined bool field 02",
            "nullable": true
          },
          "udB03": {
            "type": "boolean",
            "description": "The user defined bool field 03",
            "nullable": true
          },
          "udB04": {
            "type": "boolean",
            "description": "The user defined bool field 04",
            "nullable": true
          },
          "udB05": {
            "type": "boolean",
            "description": "The user defined bool field 05",
            "nullable": true
          },
          "udB06": {
            "type": "boolean",
            "description": "The user defined bool field 06",
            "nullable": true
          },
          "udB07": {
            "type": "boolean",
            "description": "The user defined bool field 07",
            "nullable": true
          },
          "udB08": {
            "type": "boolean",
            "description": "The user defined bool field 08",
            "nullable": true
          },
          "udB09": {
            "type": "boolean",
            "description": "The user defined bool field 09",
            "nullable": true
          },
          "udB10": {
            "type": "boolean",
            "description": "The user defined bool field 10",
            "nullable": true
          },
          "contact": {
            "$ref": "#/components/schemas/ContactPostRequest"
          },
          "softCredits": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentSoftCreditPostRequest"
            },
            "description": "The soft credits to post against the payment",
            "nullable": true
          },
          "allocations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentAllocationPostRequest"
            },
            "description": "The allocations to post against the payment",
            "nullable": true
          },
          "giftAidDeclarations": {
            "$ref": "#/components/schemas/GiftAidDeclarationPostRequest"
          }
        },
        "additionalProperties": false,
        "description": "Contains information about a payment to post"
      },
      "PaymentSoftCreditPostRequest": {
        "required": [
          "amount",
          "serialNumber"
        ],
        "type": "object",
        "properties": {
          "paymentId": {
            "type": "string",
            "description": "The payment id",
            "nullable": true,
            "example": "844498189"
          },
          "serialNumber": {
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "description": "A contact serial number to soft credit\r\n<ul><li>Must belong to an existing contact either in the database or in the current import</li></ul>",
            "example": "12353782"
          },
          "amount": {
            "type": "number",
            "description": "The soft credit amount",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Contains information about a payment soft credit to post"
      },
      "PledgeDestinationGetResponse": {
        "type": "object",
        "properties": {
          "pledgeId": {
            "type": "string",
            "description": "The pledge id\r\n<ul><li>When specified in import this must not already exist in the database or the import</li></ul>",
            "nullable": true,
            "example": "P123456"
          },
          "autoId": {
            "type": "string",
            "description": "The auto id for a pledge destination\r\n<ul><li>Must not exist in the database or import already for this pledge</li></ul><ul><li>Default is Sequence: PledgeDestinationID</li></ul>",
            "nullable": true
          },
          "destinationCode": {
            "type": "string",
            "description": "The destination code for a pledge\r\n<ul><li>Must not exist already for this pledge</li></ul><ul><li>Must exist as a destination code</li></ul><ul><li>Default is LibraryDefinition: DestinationCodeDefault</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "amount": {
            "type": "number",
            "description": "The amount of a pledge for this destination as a percentage",
            "format": "double",
            "nullable": true,
            "example": 23.67
          }
        },
        "additionalProperties": false,
        "description": "Contains information on pledge destinations"
      },
      "PledgeDestinationPostRequest": {
        "required": [
          "amount",
          "destinationCode"
        ],
        "type": "object",
        "properties": {
          "pledgeId": {
            "maxLength": 50,
            "type": "string",
            "description": "The pledge id\r\n<ul><li>When specified in import this must not already exist in the database or the import</li></ul>",
            "nullable": true,
            "example": "P123456"
          },
          "autoId": {
            "maxLength": 50,
            "type": "string",
            "description": "The auto id for a pledge destination\r\n<ul><li>Must not exist in the database or import already for this pledge</li></ul><ul><li>Default is Sequence: PledgeDestinationID</li></ul>",
            "nullable": true
          },
          "destinationCode": {
            "maxLength": 20,
            "minLength": 1,
            "type": "string",
            "description": "The destination code for a pledge\r\n<ul><li>Must not exist already for this pledge</li></ul><ul><li>Must exist as a destination code</li></ul><ul><li>Default is LibraryDefinition: DestinationCodeDefault</li></ul>",
            "example": "General"
          },
          "amount": {
            "type": "number",
            "description": "The amount of a pledge for this destination as a percentage",
            "format": "double",
            "example": 23.67
          }
        },
        "additionalProperties": false,
        "description": "Contains information about a pledge destination to post"
      },
      "PledgeGetResponse": {
        "type": "object",
        "properties": {
          "pledgeId": {
            "type": "string",
            "description": "The id of the pledge\r\n<ul><li>Must not already exist when specified in import</li></ul><ul><li>Must not be specified multiple times in the import</li></ul><ul><li>Default is Sequence: PledgeId</li></ul>",
            "nullable": true,
            "example": "P123456"
          },
          "serialNumber": {
            "type": "string",
            "description": "the serial number of the pledge giver\r\n<ul><li>Contact must exist</li></ul>",
            "nullable": true,
            "example": "0123456"
          },
          "pledgeStatus": {
            "type": "string",
            "description": "the status of the pledge\r\n<ul><li>Must exist in PledgeStatus lookup</li></ul><ul><li>Default is 'Active'</li></ul>",
            "nullable": true,
            "example": "Active"
          },
          "category": {
            "type": "string",
            "description": "the category of the pledge\r\n<ul><li>Must exist in Category lookup</li></ul><ul><li>Default is 'Promised'</li></ul>",
            "nullable": true,
            "example": "Promised"
          },
          "generalLedgerStatus": {
            "type": "string",
            "description": "the status of the general ledger\r\n<ul><li>Must exist in GeneralLedgerStatus lookup</li></ul><ul><li>Default is 'Not Required'</li></ul>",
            "nullable": true,
            "example": "Not Required"
          },
          "description": {
            "type": "string",
            "description": "the description of the pledge",
            "nullable": true,
            "example": "A Pledge"
          },
          "notes": {
            "type": "string",
            "description": "notes for the pledge",
            "nullable": true,
            "example": "A high value pledge"
          },
          "paymentFrequency": {
            "type": "string",
            "description": "the frequency of the pledge\r\n<ul><li>Must exist in PaymentFrequency lookup</li></ul>",
            "nullable": true,
            "example": "Monthly"
          },
          "startDate": {
            "type": "string",
            "description": "the start date of the pledge",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "endDate": {
            "type": "string",
            "description": "the date the pledge ends",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "paymentDay": {
            "type": "integer",
            "description": "the day on which pledge payments are taken\r\n<ul><li>When frequency more than once a year annual this must be between 1 and 28</li></ul><ul><li>When frequency is annual or greater this must be between 1 and 31</li></ul><ul><li>Must exist in the 'Direct Debit Payment Day' lookup when values are specified and the payment type is Direct Debit</li></ul><ul><li>Default is Day of StartDate</li></ul>",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "lastDay": {
            "type": "boolean",
            "description": "payments are to be taken on the last day of the month",
            "nullable": true,
            "example": false
          },
          "instalmentValue": {
            "type": "number",
            "description": "the value of each pledge instalment",
            "format": "double",
            "nullable": true,
            "example": 450.00
          },
          "maxPayments": {
            "type": "integer",
            "description": "the maximum number of payments to split the pledge across",
            "format": "int32",
            "nullable": true,
            "example": 24
          },
          "taxClaimable": {
            "type": "boolean",
            "description": "marks a pledge as tax claimable \r\n<ul><li>Default is 'true'</li></ul>",
            "nullable": true,
            "example": true
          },
          "externalRef": {
            "type": "string",
            "description": "a reference for the pledge",
            "nullable": true,
            "example": "Ref1234"
          },
          "externalRefType": {
            "type": "string",
            "description": "the type of reference for the pledge",
            "nullable": true,
            "example": "SponsorshipCause"
          },
          "currency": {
            "type": "string",
            "description": "the currency of the pledge\r\n<ul><li>Must exist in Currency lookup</li></ul><ul><li>Default is LibraryDefinition: MainCurrency</li></ul>",
            "nullable": true,
            "example": "GBP"
          },
          "paymentMethod": {
            "type": "string",
            "description": "the method for paying off the pledge\r\n<ul><li>Must exist in PaymentType lookup</li></ul>",
            "nullable": true,
            "example": "Direct Debit"
          },
          "sourceCode": {
            "type": "string",
            "description": "the source code for the pledge\r\n<ul><li>Source Code must exist</li></ul><ul><li>Default is LookupValue: SourceCodeDefault</li></ul>",
            "nullable": true,
            "example": "S123"
          },
          "accountName": {
            "type": "string",
            "description": "the account name for payment",
            "nullable": true,
            "example": "Mr A B NAME"
          },
          "sortCode": {
            "type": "string",
            "description": "the sort code for payment",
            "nullable": true,
            "example": "0123456"
          },
          "accountNumber": {
            "type": "string",
            "description": "the account number for payment",
            "nullable": true,
            "example": "12345678"
          },
          "iban": {
            "type": "string",
            "description": "the IBAN for payment",
            "nullable": true,
            "example": "GB29NWBK60161331926825"
          },
          "bic": {
            "type": "string",
            "description": "the BIC for payment",
            "nullable": true,
            "example": "DABAIE2D"
          },
          "rollNumber": {
            "type": "string",
            "description": "the roll number for payment",
            "nullable": true
          },
          "text1": {
            "type": "string",
            "description": "text field for payment ref",
            "nullable": true,
            "example": "UniqueBankText1"
          },
          "text2": {
            "type": "string",
            "description": "second text field for payment ref",
            "nullable": true,
            "example": "UniqueBankText2"
          },
          "accountVerified": {
            "type": "string",
            "description": "date the payment details were verified\r\n<ul><li>Cannot be empty when bank details are present</li></ul>",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "accountVerifiedBy": {
            "type": "string",
            "description": "user who verified account details\r\n<ul><li>Cannot be empty when bank details are present</li></ul>",
            "nullable": true,
            "example": "My Account"
          },
          "bankName": {
            "type": "string",
            "description": "name of the bank for payment",
            "nullable": true,
            "example": "My Bank"
          },
          "bankAddress": {
            "type": "string",
            "description": "address of bank for payment",
            "nullable": true,
            "example": "My Bank Address"
          },
          "bankPostcode": {
            "type": "string",
            "description": "postcode of bank for payment",
            "nullable": true,
            "example": "BA4 9NK"
          },
          "ddiRef": {
            "type": "string",
            "description": "ddi reference for payment",
            "nullable": true,
            "example": "0123456"
          },
          "ddiMethod": {
            "type": "string",
            "description": "ddi payment method\r\n<ul><li>Must exist in DDI Method lookup</li></ul>",
            "nullable": true,
            "example": "Paper"
          },
          "ddiDateReceived": {
            "type": "string",
            "description": "date ddi was received",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "ddiStartDate": {
            "type": "string",
            "description": "date ddi stats",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "ddiPaperLocation": {
            "type": "string",
            "description": "location of ddi if it is on paper\r\n<ul><li>Must exist in Location Of Paper DDI lookup</li></ul>",
            "nullable": true,
            "example": "Bank"
          },
          "ddiStatus": {
            "type": "string",
            "description": "status of ddi\r\n<ul><li>Must exist in DDI Status lookup</li></ul>",
            "nullable": true,
            "example": "Active"
          },
          "ddiErrorCode": {
            "type": "string",
            "description": "ddi error code",
            "nullable": true
          },
          "ddiErrorDescription": {
            "type": "string",
            "description": "ddi error description",
            "nullable": true
          },
          "ddiErrorFileId": {
            "type": "string",
            "description": "ddi error file id",
            "nullable": true
          },
          "ddiPledgeId": {
            "type": "string",
            "description": "ddi pledge id\r\n<ul><li>Default is Sequence: DDIPledgeID</li></ul>",
            "nullable": true,
            "example": "00000123"
          },
          "treatAsAnon": {
            "type": "boolean",
            "description": "mark the pledge to be treated as anonymous",
            "nullable": true,
            "example": false
          },
          "incomeType": {
            "type": "string",
            "description": "income type\r\n<ul><li>Must exist in PledgeExternalType lookup</li></ul><ul><li>Default is 'DONATION'</li></ul>",
            "nullable": true,
            "example": "DONATION"
          },
          "receiptRequired": {
            "type": "boolean",
            "description": "mark a pledge as requiring receipt confirmation",
            "nullable": true,
            "example": true
          },
          "receiptSerialNumber": {
            "type": "string",
            "description": "serial number of contact to notify of receipt\r\n<ul><li>Contact must exist</li></ul><ul><li>Default is SerialNumber</li></ul>",
            "nullable": true,
            "example": "0987654"
          },
          "receiptFrequency": {
            "type": "string",
            "description": "how often receipt communication is required\r\n<ul><li>Must exist in ReceiptFrequency lookup</li></ul>",
            "nullable": true,
            "example": "Annually"
          },
          "nextReceiptDate": {
            "type": "string",
            "description": "date of next receipt communication",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "lastEscalationDate": {
            "type": "string",
            "description": "date of last escalation",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modified": {
            "type": "string",
            "description": "date pledge was modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedby": {
            "type": "string",
            "description": "user who last modified the pledge\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "My Account"
          },
          "created": {
            "type": "string",
            "description": "date pledge was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdby": {
            "type": "string",
            "description": "user who created the pledge\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "My Account"
          },
          "pledgeType": {
            "type": "string",
            "description": "type of pledge\r\n<ul><li>Must exist in PledgeType lookup</li></ul>",
            "nullable": true,
            "example": "Open Ended"
          },
          "totalValuePledge": {
            "type": "boolean",
            "description": "type of pledge\r\n<ul><li>Payment Frequency cannot be 'Single' or 'Irregular'</li></ul><ul><li>Must exist greater than InstalmentValue</li></ul><ul><li>Must have a TotalValue</li></ul><ul><li>Must specify one of either EndDate, InstalmentValue, MaxPayments</li></ul><ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "totalValue": {
            "type": "number",
            "description": "type of pledge",
            "format": "double",
            "nullable": true,
            "example": null
          },
          "paymentProcessingProvider": {
            "type": "string",
            "description": "the external provider for taking payments",
            "nullable": true,
            "example": "Access Payments"
          },
          "paymentProcessingReference": {
            "type": "string",
            "description": "the external provider reference for taking payments",
            "nullable": true,
            "example": "Ref1234"
          },
          "destinations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PledgeDestinationGetResponse"
            },
            "description": "Contains the destinations for the pledge",
            "nullable": true
          },
          "softCredits": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PledgeSoftCreditGetResponse"
            },
            "description": "Contains the soft credits for the pledge",
            "nullable": true
          },
          "udT01": {
            "type": "string",
            "description": "The user defined text field 01",
            "nullable": true,
            "example": "User Defined Text Field Here"
          },
          "udT02": {
            "type": "string",
            "description": "The user defined text field 02",
            "nullable": true
          },
          "udT03": {
            "type": "string",
            "description": "The user defined text field 03",
            "nullable": true
          },
          "udT04": {
            "type": "string",
            "description": "The user defined text field 04",
            "nullable": true
          },
          "udT05": {
            "type": "string",
            "description": "The user defined text field 05",
            "nullable": true
          },
          "udT06": {
            "type": "string",
            "description": "The user defined text field 06",
            "nullable": true
          },
          "udT07": {
            "type": "string",
            "description": "The user defined text field 07",
            "nullable": true
          },
          "udT08": {
            "type": "string",
            "description": "The user defined text field 08",
            "nullable": true
          },
          "udT09": {
            "type": "string",
            "description": "The user defined text field 09",
            "nullable": true
          },
          "udT10": {
            "type": "string",
            "description": "The user defined text field 10",
            "nullable": true
          },
          "udN01": {
            "type": "number",
            "description": "The user defined number field 01",
            "format": "double",
            "nullable": true,
            "example": 34.22
          },
          "udN02": {
            "type": "number",
            "description": "The user defined number field 02",
            "format": "double",
            "nullable": true
          },
          "udN03": {
            "type": "number",
            "description": "The user defined number field 03",
            "format": "double",
            "nullable": true
          },
          "udN04": {
            "type": "number",
            "description": "The user defined number field 04",
            "format": "double",
            "nullable": true
          },
          "udN05": {
            "type": "number",
            "description": "The user defined number field 05",
            "format": "double",
            "nullable": true
          },
          "udN06": {
            "type": "number",
            "description": "The user defined number field 06",
            "format": "double",
            "nullable": true
          },
          "udN07": {
            "type": "number",
            "description": "The user defined number field 07",
            "format": "double",
            "nullable": true
          },
          "udN08": {
            "type": "number",
            "description": "The user defined number field 08",
            "format": "double",
            "nullable": true
          },
          "udN09": {
            "type": "number",
            "description": "The user defined number field 09",
            "format": "double",
            "nullable": true
          },
          "udN10": {
            "type": "number",
            "description": "The user defined number field 10",
            "format": "double",
            "nullable": true
          },
          "udD01": {
            "type": "string",
            "description": "The user defined date field 01",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD02": {
            "type": "string",
            "description": "The user defined date field 02",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD03": {
            "type": "string",
            "description": "The user defined date field 03",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD04": {
            "type": "string",
            "description": "The user defined date field 04",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD05": {
            "type": "string",
            "description": "The user defined date field 05",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD06": {
            "type": "string",
            "description": "The user defined date field 06",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD07": {
            "type": "string",
            "description": "The user defined date field 07",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD08": {
            "type": "string",
            "description": "The user defined date field 08",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD09": {
            "type": "string",
            "description": "The user defined date field 09",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD10": {
            "type": "string",
            "description": "The user defined date field 10",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udB01": {
            "type": "boolean",
            "description": "The user defined bool field 01",
            "nullable": true,
            "example": false
          },
          "udB02": {
            "type": "boolean",
            "description": "The user defined bool field 02",
            "nullable": true
          },
          "udB03": {
            "type": "boolean",
            "description": "The user defined bool field 03",
            "nullable": true
          },
          "udB04": {
            "type": "boolean",
            "description": "The user defined bool field 04",
            "nullable": true
          },
          "udB05": {
            "type": "boolean",
            "description": "The user defined bool field 05",
            "nullable": true
          },
          "udB06": {
            "type": "boolean",
            "description": "The user defined bool field 06",
            "nullable": true
          },
          "udB07": {
            "type": "boolean",
            "description": "The user defined bool field 07",
            "nullable": true
          },
          "udB08": {
            "type": "boolean",
            "description": "The user defined bool field 08",
            "nullable": true
          },
          "udB09": {
            "type": "boolean",
            "description": "The user defined bool field 09",
            "nullable": true
          },
          "udB10": {
            "type": "boolean",
            "description": "The user defined bool field 10",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information about a pledge"
      },
      "PledgeGetResponseCollectionItem": {
        "type": "object",
        "properties": {
          "pledgeId": {
            "type": "string",
            "description": "The id of the pledge\r\n<ul><li>Must not already exist when specified in import</li></ul><ul><li>Must not be specified multiple times in the import</li></ul><ul><li>Default is Sequence: PledgeId</li></ul>",
            "nullable": true,
            "example": "P123456"
          },
          "serialNumber": {
            "type": "string",
            "description": "the serial number of the pledge giver\r\n<ul><li>Contact must exist</li></ul>",
            "nullable": true,
            "example": "0123456"
          },
          "pledgeStatus": {
            "type": "string",
            "description": "the status of the pledge\r\n<ul><li>Must exist in PledgeStatus lookup</li></ul><ul><li>Default is 'Active'</li></ul>",
            "nullable": true,
            "example": "Active"
          },
          "category": {
            "type": "string",
            "description": "the category of the pledge\r\n<ul><li>Must exist in Category lookup</li></ul><ul><li>Default is 'Promised'</li></ul>",
            "nullable": true,
            "example": "Promised"
          },
          "generalLedgerStatus": {
            "type": "string",
            "description": "the status of the general ledger\r\n<ul><li>Must exist in GeneralLedgerStatus lookup</li></ul><ul><li>Default is 'Not Required'</li></ul>",
            "nullable": true,
            "example": "Not Required"
          },
          "description": {
            "type": "string",
            "description": "the description of the pledge",
            "nullable": true,
            "example": "A Pledge"
          },
          "notes": {
            "type": "string",
            "description": "notes for the pledge",
            "nullable": true,
            "example": "A high value pledge"
          },
          "paymentFrequency": {
            "type": "string",
            "description": "the frequency of the pledge\r\n<ul><li>Must exist in PaymentFrequency lookup</li></ul>",
            "nullable": true,
            "example": "Monthly"
          },
          "startDate": {
            "type": "string",
            "description": "the start date of the pledge",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "endDate": {
            "type": "string",
            "description": "the date the pledge ends",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "paymentDay": {
            "type": "integer",
            "description": "the day on which pledge payments are taken\r\n<ul><li>When frequency more than once a year annual this must be between 1 and 28</li></ul><ul><li>When frequency is annual or greater this must be between 1 and 31</li></ul><ul><li>Must exist in the 'Direct Debit Payment Day' lookup when values are specified and the payment type is Direct Debit</li></ul><ul><li>Default is Day of StartDate</li></ul>",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "lastDay": {
            "type": "boolean",
            "description": "payments are to be taken on the last day of the month",
            "nullable": true,
            "example": false
          },
          "instalmentValue": {
            "type": "number",
            "description": "the value of each pledge instalment",
            "format": "double",
            "nullable": true,
            "example": 450.00
          },
          "maxPayments": {
            "type": "integer",
            "description": "the maximum number of payments to split the pledge across",
            "format": "int32",
            "nullable": true,
            "example": 24
          },
          "taxClaimable": {
            "type": "boolean",
            "description": "marks a pledge as tax claimable \r\n<ul><li>Default is 'true'</li></ul>",
            "nullable": true,
            "example": true
          },
          "externalRef": {
            "type": "string",
            "description": "a reference for the pledge",
            "nullable": true,
            "example": "Ref1234"
          },
          "externalRefType": {
            "type": "string",
            "description": "the type of reference for the pledge",
            "nullable": true,
            "example": "SponsorshipCause"
          },
          "currency": {
            "type": "string",
            "description": "the currency of the pledge\r\n<ul><li>Must exist in Currency lookup</li></ul><ul><li>Default is LibraryDefinition: MainCurrency</li></ul>",
            "nullable": true,
            "example": "GBP"
          },
          "paymentMethod": {
            "type": "string",
            "description": "the method for paying off the pledge\r\n<ul><li>Must exist in PaymentType lookup</li></ul>",
            "nullable": true,
            "example": "Direct Debit"
          },
          "sourceCode": {
            "type": "string",
            "description": "the source code for the pledge\r\n<ul><li>Source Code must exist</li></ul><ul><li>Default is LookupValue: SourceCodeDefault</li></ul>",
            "nullable": true,
            "example": "S123"
          },
          "accountName": {
            "type": "string",
            "description": "the account name for payment",
            "nullable": true,
            "example": "Mr A B NAME"
          },
          "sortCode": {
            "type": "string",
            "description": "the sort code for payment",
            "nullable": true,
            "example": "0123456"
          },
          "accountNumber": {
            "type": "string",
            "description": "the account number for payment",
            "nullable": true,
            "example": "12345678"
          },
          "iban": {
            "type": "string",
            "description": "the IBAN for payment",
            "nullable": true,
            "example": "GB29NWBK60161331926825"
          },
          "bic": {
            "type": "string",
            "description": "the BIC for payment",
            "nullable": true,
            "example": "DABAIE2D"
          },
          "rollNumber": {
            "type": "string",
            "description": "the roll number for payment",
            "nullable": true
          },
          "text1": {
            "type": "string",
            "description": "text field for payment ref",
            "nullable": true,
            "example": "UniqueBankText1"
          },
          "text2": {
            "type": "string",
            "description": "second text field for payment ref",
            "nullable": true,
            "example": "UniqueBankText2"
          },
          "accountVerified": {
            "type": "string",
            "description": "date the payment details were verified\r\n<ul><li>Cannot be empty when bank details are present</li></ul>",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "accountVerifiedBy": {
            "type": "string",
            "description": "user who verified account details\r\n<ul><li>Cannot be empty when bank details are present</li></ul>",
            "nullable": true,
            "example": "My Account"
          },
          "bankName": {
            "type": "string",
            "description": "name of the bank for payment",
            "nullable": true,
            "example": "My Bank"
          },
          "bankAddress": {
            "type": "string",
            "description": "address of bank for payment",
            "nullable": true,
            "example": "My Bank Address"
          },
          "bankPostcode": {
            "type": "string",
            "description": "postcode of bank for payment",
            "nullable": true,
            "example": "BA4 9NK"
          },
          "ddiRef": {
            "type": "string",
            "description": "ddi reference for payment",
            "nullable": true,
            "example": "0123456"
          },
          "ddiMethod": {
            "type": "string",
            "description": "ddi payment method\r\n<ul><li>Must exist in DDI Method lookup</li></ul>",
            "nullable": true,
            "example": "Paper"
          },
          "ddiDateReceived": {
            "type": "string",
            "description": "date ddi was received",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "ddiStartDate": {
            "type": "string",
            "description": "date ddi stats",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "ddiPaperLocation": {
            "type": "string",
            "description": "location of ddi if it is on paper\r\n<ul><li>Must exist in Location Of Paper DDI lookup</li></ul>",
            "nullable": true,
            "example": "Bank"
          },
          "ddiStatus": {
            "type": "string",
            "description": "status of ddi\r\n<ul><li>Must exist in DDI Status lookup</li></ul>",
            "nullable": true,
            "example": "Active"
          },
          "ddiErrorCode": {
            "type": "string",
            "description": "ddi error code",
            "nullable": true
          },
          "ddiErrorDescription": {
            "type": "string",
            "description": "ddi error description",
            "nullable": true
          },
          "ddiErrorFileId": {
            "type": "string",
            "description": "ddi error file id",
            "nullable": true
          },
          "ddiPledgeId": {
            "type": "string",
            "description": "ddi pledge id\r\n<ul><li>Default is Sequence: DDIPledgeID</li></ul>",
            "nullable": true,
            "example": "00000123"
          },
          "treatAsAnon": {
            "type": "boolean",
            "description": "mark the pledge to be treated as anonymous",
            "nullable": true,
            "example": false
          },
          "incomeType": {
            "type": "string",
            "description": "income type\r\n<ul><li>Must exist in PledgeExternalType lookup</li></ul><ul><li>Default is 'DONATION'</li></ul>",
            "nullable": true,
            "example": "DONATION"
          },
          "receiptRequired": {
            "type": "boolean",
            "description": "mark a pledge as requiring receipt confirmation",
            "nullable": true,
            "example": true
          },
          "receiptSerialNumber": {
            "type": "string",
            "description": "serial number of contact to notify of receipt\r\n<ul><li>Contact must exist</li></ul><ul><li>Default is SerialNumber</li></ul>",
            "nullable": true,
            "example": "0987654"
          },
          "receiptFrequency": {
            "type": "string",
            "description": "how often receipt communication is required\r\n<ul><li>Must exist in ReceiptFrequency lookup</li></ul>",
            "nullable": true,
            "example": "Annually"
          },
          "nextReceiptDate": {
            "type": "string",
            "description": "date of next receipt communication",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "lastEscalationDate": {
            "type": "string",
            "description": "date of last escalation",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modified": {
            "type": "string",
            "description": "date pledge was modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedby": {
            "type": "string",
            "description": "user who last modified the pledge\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "My Account"
          },
          "created": {
            "type": "string",
            "description": "date pledge was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdby": {
            "type": "string",
            "description": "user who created the pledge\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "My Account"
          },
          "pledgeType": {
            "type": "string",
            "description": "type of pledge\r\n<ul><li>Must exist in PledgeType lookup</li></ul>",
            "nullable": true,
            "example": "Open Ended"
          },
          "totalValuePledge": {
            "type": "boolean",
            "description": "type of pledge\r\n<ul><li>Payment Frequency cannot be 'Single' or 'Irregular'</li></ul><ul><li>Must exist greater than InstalmentValue</li></ul><ul><li>Must have a TotalValue</li></ul><ul><li>Must specify one of either EndDate, InstalmentValue, MaxPayments</li></ul><ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "totalValue": {
            "type": "number",
            "description": "type of pledge",
            "format": "double",
            "nullable": true,
            "example": null
          },
          "paymentProcessingProvider": {
            "type": "string",
            "description": "the external provider for taking payments",
            "nullable": true,
            "example": "Access Payments"
          },
          "paymentProcessingReference": {
            "type": "string",
            "description": "the external provider reference for taking payments",
            "nullable": true,
            "example": "Ref1234"
          },
          "udT01": {
            "type": "string",
            "description": "The user defined text field 01",
            "nullable": true,
            "example": "User Defined Text Field Here"
          },
          "udT02": {
            "type": "string",
            "description": "The user defined text field 02",
            "nullable": true
          },
          "udT03": {
            "type": "string",
            "description": "The user defined text field 03",
            "nullable": true
          },
          "udT04": {
            "type": "string",
            "description": "The user defined text field 04",
            "nullable": true
          },
          "udT05": {
            "type": "string",
            "description": "The user defined text field 05",
            "nullable": true
          },
          "udT06": {
            "type": "string",
            "description": "The user defined text field 06",
            "nullable": true
          },
          "udT07": {
            "type": "string",
            "description": "The user defined text field 07",
            "nullable": true
          },
          "udT08": {
            "type": "string",
            "description": "The user defined text field 08",
            "nullable": true
          },
          "udT09": {
            "type": "string",
            "description": "The user defined text field 09",
            "nullable": true
          },
          "udT10": {
            "type": "string",
            "description": "The user defined text field 10",
            "nullable": true
          },
          "udN01": {
            "type": "number",
            "description": "The user defined number field 01",
            "format": "double",
            "nullable": true,
            "example": 34.22
          },
          "udN02": {
            "type": "number",
            "description": "The user defined number field 02",
            "format": "double",
            "nullable": true
          },
          "udN03": {
            "type": "number",
            "description": "The user defined number field 03",
            "format": "double",
            "nullable": true
          },
          "udN04": {
            "type": "number",
            "description": "The user defined number field 04",
            "format": "double",
            "nullable": true
          },
          "udN05": {
            "type": "number",
            "description": "The user defined number field 05",
            "format": "double",
            "nullable": true
          },
          "udN06": {
            "type": "number",
            "description": "The user defined number field 06",
            "format": "double",
            "nullable": true
          },
          "udN07": {
            "type": "number",
            "description": "The user defined number field 07",
            "format": "double",
            "nullable": true
          },
          "udN08": {
            "type": "number",
            "description": "The user defined number field 08",
            "format": "double",
            "nullable": true
          },
          "udN09": {
            "type": "number",
            "description": "The user defined number field 09",
            "format": "double",
            "nullable": true
          },
          "udN10": {
            "type": "number",
            "description": "The user defined number field 10",
            "format": "double",
            "nullable": true
          },
          "udD01": {
            "type": "string",
            "description": "The user defined date field 01",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD02": {
            "type": "string",
            "description": "The user defined date field 02",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD03": {
            "type": "string",
            "description": "The user defined date field 03",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD04": {
            "type": "string",
            "description": "The user defined date field 04",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD05": {
            "type": "string",
            "description": "The user defined date field 05",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD06": {
            "type": "string",
            "description": "The user defined date field 06",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD07": {
            "type": "string",
            "description": "The user defined date field 07",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD08": {
            "type": "string",
            "description": "The user defined date field 08",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD09": {
            "type": "string",
            "description": "The user defined date field 09",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD10": {
            "type": "string",
            "description": "The user defined date field 10",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udB01": {
            "type": "boolean",
            "description": "The user defined bool field 01",
            "nullable": true,
            "example": false
          },
          "udB02": {
            "type": "boolean",
            "description": "The user defined bool field 02",
            "nullable": true
          },
          "udB03": {
            "type": "boolean",
            "description": "The user defined bool field 03",
            "nullable": true
          },
          "udB04": {
            "type": "boolean",
            "description": "The user defined bool field 04",
            "nullable": true
          },
          "udB05": {
            "type": "boolean",
            "description": "The user defined bool field 05",
            "nullable": true
          },
          "udB06": {
            "type": "boolean",
            "description": "The user defined bool field 06",
            "nullable": true
          },
          "udB07": {
            "type": "boolean",
            "description": "The user defined bool field 07",
            "nullable": true
          },
          "udB08": {
            "type": "boolean",
            "description": "The user defined bool field 08",
            "nullable": true
          },
          "udB09": {
            "type": "boolean",
            "description": "The user defined bool field 09",
            "nullable": true
          },
          "udB10": {
            "type": "boolean",
            "description": "The user defined bool field 10",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information about a pledge"
      },
      "PledgeGetResponseCollectionResponse": {
        "type": "object",
        "properties": {
          "pageNumber": {
            "type": "integer",
            "description": "The page number for the data in the response",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "The page size for the data in the response",
            "format": "int32"
          },
          "totalCount": {
            "type": "integer",
            "description": "The total number of items in the data collection",
            "format": "int32",
            "nullable": true
          },
          "pageCount": {
            "type": "integer",
            "description": "The total number of pages in the data collection",
            "format": "int32",
            "nullable": true,
            "readOnly": true
          },
          "hasNextPage": {
            "type": "boolean",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PledgeGetResponseCollectionItem"
            },
            "description": "The collection of items",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Holds response information for a collection of data"
      },
      "PledgePostRequest": {
        "type": "object",
        "properties": {
          "pledgeId": {
            "maxLength": 50,
            "type": "string",
            "description": "The id of the pledge\r\n<ul><li>Must not already exist when specified in import</li></ul><ul><li>Must not be specified multiple times in the import</li></ul><ul><li>Default is Sequence: PledgeId</li></ul>",
            "nullable": true,
            "example": "P123456"
          },
          "serialNumber": {
            "maxLength": 50,
            "type": "string",
            "description": "the serial number of the pledge giver\r\n<ul><li>Contact must exist</li></ul>",
            "nullable": true,
            "example": "0123456"
          },
          "pledgeStatus": {
            "maxLength": 25,
            "type": "string",
            "description": "the status of the pledge\r\n<ul><li>Must exist in PledgeStatus lookup</li></ul><ul><li>Default is 'Active'</li></ul>",
            "nullable": true,
            "example": "Active"
          },
          "category": {
            "maxLength": 50,
            "type": "string",
            "description": "the category of the pledge\r\n<ul><li>Must exist in Category lookup</li></ul><ul><li>Default is 'Promised'</li></ul>",
            "nullable": true,
            "example": "Promised"
          },
          "generalLedgerStatus": {
            "maxLength": 50,
            "type": "string",
            "description": "the status of the general ledger\r\n<ul><li>Must exist in GeneralLedgerStatus lookup</li></ul><ul><li>Default is 'Not Required'</li></ul>",
            "nullable": true,
            "example": "Not Required"
          },
          "description": {
            "maxLength": 300,
            "type": "string",
            "description": "the description of the pledge",
            "nullable": true,
            "example": "A Pledge"
          },
          "notes": {
            "maxLength": 2000,
            "type": "string",
            "description": "notes for the pledge",
            "nullable": true,
            "example": "A high value pledge"
          },
          "paymentFrequency": {
            "maxLength": 25,
            "type": "string",
            "description": "the frequency of the pledge\r\n<ul><li>Must exist in PaymentFrequency lookup</li></ul>",
            "nullable": true,
            "example": "Monthly"
          },
          "startDate": {
            "type": "string",
            "description": "the start date of the pledge",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "endDate": {
            "type": "string",
            "description": "the date the pledge ends",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "paymentDay": {
            "type": "integer",
            "description": "the day on which pledge payments are taken\r\n<ul><li>When frequency more than once a year annual this must be between 1 and 28</li></ul><ul><li>When frequency is annual or greater this must be between 1 and 31</li></ul><ul><li>Must exist in the 'Direct Debit Payment Day' lookup when values are specified and the payment type is Direct Debit</li></ul><ul><li>Default is Day of StartDate</li></ul>",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "lastDay": {
            "type": "boolean",
            "description": "payments are to be taken on the last day of the month",
            "nullable": true,
            "example": false
          },
          "instalmentValue": {
            "type": "number",
            "description": "the value of each pledge instalment",
            "format": "double",
            "nullable": true,
            "example": 450.00
          },
          "maxPayments": {
            "type": "integer",
            "description": "the maximum number of payments to split the pledge across",
            "format": "int32",
            "nullable": true,
            "example": 24
          },
          "taxClaimable": {
            "type": "boolean",
            "description": "marks a pledge as tax claimable \r\n<ul><li>Default is 'true'</li></ul>",
            "nullable": true,
            "example": true
          },
          "externalRef": {
            "maxLength": 50,
            "type": "string",
            "description": "a reference for the pledge",
            "nullable": true,
            "example": "Ref1234"
          },
          "externalRefType": {
            "maxLength": 50,
            "type": "string",
            "description": "the type of reference for the pledge",
            "nullable": true,
            "example": "SponsorshipCause"
          },
          "currency": {
            "maxLength": 25,
            "type": "string",
            "description": "the currency of the pledge\r\n<ul><li>Must exist in Currency lookup</li></ul><ul><li>Default is LibraryDefinition: MainCurrency</li></ul>",
            "nullable": true,
            "example": "GBP"
          },
          "paymentMethod": {
            "maxLength": 50,
            "type": "string",
            "description": "the method for paying off the pledge\r\n<ul><li>Must exist in PaymentType lookup</li></ul>",
            "nullable": true,
            "example": "Direct Debit"
          },
          "sourceCode": {
            "maxLength": 20,
            "type": "string",
            "description": "the source code for the pledge\r\n<ul><li>Source Code must exist</li></ul><ul><li>Default is LookupValue: SourceCodeDefault</li></ul>",
            "nullable": true,
            "example": "S123"
          },
          "accountName": {
            "maxLength": 100,
            "type": "string",
            "description": "the account name for payment",
            "nullable": true,
            "example": "Mr A B NAME"
          },
          "sortCode": {
            "maxLength": 10,
            "type": "string",
            "description": "the sort code for payment",
            "nullable": true,
            "example": "0123456"
          },
          "accountNumber": {
            "maxLength": 50,
            "type": "string",
            "description": "the account number for payment",
            "nullable": true,
            "example": "12345678"
          },
          "iban": {
            "maxLength": 34,
            "type": "string",
            "description": "the IBAN for payment",
            "nullable": true,
            "example": "GB29NWBK60161331926825"
          },
          "bic": {
            "maxLength": 11,
            "type": "string",
            "description": "the BIC for payment",
            "nullable": true,
            "example": "DABAIE2D"
          },
          "rollNumber": {
            "maxLength": 20,
            "type": "string",
            "description": "the roll number for payment",
            "nullable": true
          },
          "text1": {
            "maxLength": 255,
            "type": "string",
            "description": "text field for payment ref",
            "nullable": true,
            "example": "UniqueBankText1"
          },
          "text2": {
            "maxLength": 255,
            "type": "string",
            "description": "second text field for payment ref",
            "nullable": true,
            "example": "UniqueBankText2"
          },
          "accountVerified": {
            "type": "string",
            "description": "date the payment details were verified\r\n<ul><li>Cannot be empty when bank details are present</li></ul>",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "accountVerifiedBy": {
            "maxLength": 50,
            "type": "string",
            "description": "user who verified account details\r\n<ul><li>Cannot be empty when bank details are present</li></ul>",
            "nullable": true,
            "example": "My Account"
          },
          "bankName": {
            "maxLength": 100,
            "type": "string",
            "description": "name of the bank for payment",
            "nullable": true,
            "example": "My Bank"
          },
          "bankAddress": {
            "maxLength": 255,
            "type": "string",
            "description": "address of bank for payment",
            "nullable": true,
            "example": "My Bank Address"
          },
          "bankPostcode": {
            "maxLength": 15,
            "type": "string",
            "description": "postcode of bank for payment",
            "nullable": true,
            "example": "BA4 9NK"
          },
          "ddiRef": {
            "maxLength": 18,
            "type": "string",
            "description": "ddi reference for payment",
            "nullable": true,
            "example": "0123456"
          },
          "ddiMethod": {
            "maxLength": 50,
            "type": "string",
            "description": "ddi payment method\r\n<ul><li>Must exist in DDI Method lookup</li></ul>",
            "nullable": true,
            "example": "Paper"
          },
          "ddiDateReceived": {
            "type": "string",
            "description": "date ddi was received",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "ddiStartDate": {
            "type": "string",
            "description": "date ddi stats",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "ddiPaperLocation": {
            "maxLength": 50,
            "type": "string",
            "description": "location of ddi if it is on paper\r\n<ul><li>Must exist in Location Of Paper DDI lookup</li></ul>",
            "nullable": true,
            "example": "Bank"
          },
          "ddiStatus": {
            "maxLength": 50,
            "type": "string",
            "description": "status of ddi\r\n<ul><li>Must exist in DDI Status lookup</li></ul>",
            "nullable": true,
            "example": "Active"
          },
          "ddiErrorCode": {
            "maxLength": 10,
            "type": "string",
            "description": "ddi error code",
            "nullable": true
          },
          "ddiErrorDescription": {
            "maxLength": 50,
            "type": "string",
            "description": "ddi error description",
            "nullable": true
          },
          "ddiErrorFileId": {
            "maxLength": 50,
            "type": "string",
            "description": "ddi error file id",
            "nullable": true
          },
          "ddiPledgeId": {
            "maxLength": 50,
            "type": "string",
            "description": "ddi pledge id\r\n<ul><li>Default is Sequence: DDIPledgeID</li></ul>",
            "nullable": true,
            "example": "00000123"
          },
          "treatAsAnon": {
            "type": "boolean",
            "description": "mark the pledge to be treated as anonymous",
            "nullable": true,
            "example": false
          },
          "incomeType": {
            "maxLength": 50,
            "type": "string",
            "description": "income type\r\n<ul><li>Must exist in PledgeExternalType lookup</li></ul><ul><li>Default is 'DONATION'</li></ul>",
            "nullable": true,
            "example": "DONATION"
          },
          "receiptRequired": {
            "type": "boolean",
            "description": "mark a pledge as requiring receipt confirmation",
            "nullable": true,
            "example": true
          },
          "receiptSerialNumber": {
            "maxLength": 50,
            "type": "string",
            "description": "serial number of contact to notify of receipt\r\n<ul><li>Contact must exist</li></ul><ul><li>Default is SerialNumber</li></ul>",
            "nullable": true,
            "example": "0987654"
          },
          "receiptFrequency": {
            "maxLength": 25,
            "type": "string",
            "description": "how often receipt communication is required\r\n<ul><li>Must exist in ReceiptFrequency lookup</li></ul>",
            "nullable": true,
            "example": "Annually"
          },
          "nextReceiptDate": {
            "type": "string",
            "description": "date of next receipt communication",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "lastEscalationDate": {
            "type": "string",
            "description": "date of last escalation",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modified": {
            "type": "string",
            "description": "date pledge was modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedby": {
            "maxLength": 50,
            "type": "string",
            "description": "user who last modified the pledge\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "My Account"
          },
          "created": {
            "type": "string",
            "description": "date pledge was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdby": {
            "maxLength": 50,
            "type": "string",
            "description": "user who created the pledge\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "My Account"
          },
          "pledgeType": {
            "maxLength": 25,
            "type": "string",
            "description": "type of pledge\r\n<ul><li>Must exist in PledgeType lookup</li></ul>",
            "nullable": true,
            "example": "Open Ended"
          },
          "totalValuePledge": {
            "type": "boolean",
            "description": "type of pledge\r\n<ul><li>Payment Frequency cannot be 'Single' or 'Irregular'</li></ul><ul><li>Must exist greater than InstalmentValue</li></ul><ul><li>Must have a TotalValue</li></ul><ul><li>Must specify one of either EndDate, InstalmentValue, MaxPayments</li></ul><ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "totalValue": {
            "type": "number",
            "description": "type of pledge",
            "format": "double",
            "nullable": true,
            "example": null
          },
          "paymentProcessingProvider": {
            "maxLength": 50,
            "type": "string",
            "description": "the external provider for taking payments",
            "nullable": true,
            "example": "Access Payments"
          },
          "paymentProcessingReference": {
            "maxLength": 50,
            "type": "string",
            "description": "the external provider reference for taking payments",
            "nullable": true,
            "example": "Ref1234"
          },
          "paymentProcessingContactId": {
            "maxLength": 50,
            "type": "string",
            "description": "the external provider's contact Id for taking payments",
            "nullable": true,
            "example": "Contact_12141"
          },
          "paymentProcessingContactReference": {
            "maxLength": 50,
            "type": "string",
            "description": "the external provider's contact reference for taking payments",
            "nullable": true,
            "example": "Ref_Con_1234"
          },
          "supersedesPledgeId": {
            "type": "string",
            "description": "The Id of the Pledge Superseded by this new one.\r\n<p>The existing pledge being superseded and any of its future instalments will be written off.</p><ul><li>Pledge must exist</li></ul>",
            "nullable": true
          },
          "contact": {
            "$ref": "#/components/schemas/ContactPostRequest"
          },
          "destinations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PledgeDestinationPostRequest"
            },
            "description": "The allocations to post against the payment",
            "nullable": true
          },
          "giftAidDeclarations": {
            "$ref": "#/components/schemas/GiftAidDeclarationPostRequest"
          },
          "softCredits": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PledgeSoftCreditPostRequest"
            },
            "description": "The soft credits to post against the payment",
            "nullable": true
          },
          "udT01": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 01",
            "nullable": true,
            "example": "User Defined Text Field Here"
          },
          "udT02": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 02",
            "nullable": true
          },
          "udT03": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 03",
            "nullable": true
          },
          "udT04": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 04",
            "nullable": true
          },
          "udT05": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 05",
            "nullable": true
          },
          "udT06": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 06",
            "nullable": true
          },
          "udT07": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 07",
            "nullable": true
          },
          "udT08": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 08",
            "nullable": true
          },
          "udT09": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 09",
            "nullable": true
          },
          "udT10": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 10",
            "nullable": true
          },
          "udN01": {
            "type": "number",
            "description": "The user defined number field 01",
            "format": "double",
            "nullable": true,
            "example": 34.22
          },
          "udN02": {
            "type": "number",
            "description": "The user defined number field 02",
            "format": "double",
            "nullable": true
          },
          "udN03": {
            "type": "number",
            "description": "The user defined number field 03",
            "format": "double",
            "nullable": true
          },
          "udN04": {
            "type": "number",
            "description": "The user defined number field 04",
            "format": "double",
            "nullable": true
          },
          "udN05": {
            "type": "number",
            "description": "The user defined number field 05",
            "format": "double",
            "nullable": true
          },
          "udN06": {
            "type": "number",
            "description": "The user defined number field 06",
            "format": "double",
            "nullable": true
          },
          "udN07": {
            "type": "number",
            "description": "The user defined number field 07",
            "format": "double",
            "nullable": true
          },
          "udN08": {
            "type": "number",
            "description": "The user defined number field 08",
            "format": "double",
            "nullable": true
          },
          "udN09": {
            "type": "number",
            "description": "The user defined number field 09",
            "format": "double",
            "nullable": true
          },
          "udN10": {
            "type": "number",
            "description": "The user defined number field 10",
            "format": "double",
            "nullable": true
          },
          "udD01": {
            "type": "string",
            "description": "The user defined date field 01",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD02": {
            "type": "string",
            "description": "The user defined date field 02",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD03": {
            "type": "string",
            "description": "The user defined date field 03",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD04": {
            "type": "string",
            "description": "The user defined date field 04",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD05": {
            "type": "string",
            "description": "The user defined date field 05",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD06": {
            "type": "string",
            "description": "The user defined date field 06",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD07": {
            "type": "string",
            "description": "The user defined date field 07",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD08": {
            "type": "string",
            "description": "The user defined date field 08",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD09": {
            "type": "string",
            "description": "The user defined date field 09",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD10": {
            "type": "string",
            "description": "The user defined date field 10",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udB01": {
            "type": "boolean",
            "description": "The user defined bool field 01",
            "nullable": true,
            "example": false
          },
          "udB02": {
            "type": "boolean",
            "description": "The user defined bool field 02",
            "nullable": true
          },
          "udB03": {
            "type": "boolean",
            "description": "The user defined bool field 03",
            "nullable": true
          },
          "udB04": {
            "type": "boolean",
            "description": "The user defined bool field 04",
            "nullable": true
          },
          "udB05": {
            "type": "boolean",
            "description": "The user defined bool field 05",
            "nullable": true
          },
          "udB06": {
            "type": "boolean",
            "description": "The user defined bool field 06",
            "nullable": true
          },
          "udB07": {
            "type": "boolean",
            "description": "The user defined bool field 07",
            "nullable": true
          },
          "udB08": {
            "type": "boolean",
            "description": "The user defined bool field 08",
            "nullable": true
          },
          "udB09": {
            "type": "boolean",
            "description": "The user defined bool field 09",
            "nullable": true
          },
          "udB10": {
            "type": "boolean",
            "description": "The user defined bool field 10",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information about a pledge to post"
      },
      "PledgeSoftCreditGetResponse": {
        "type": "object",
        "properties": {
          "pledgeId": {
            "type": "string",
            "description": "The pledge id\r\n<ul><li>When specified in importthis must already exist in the database or import</li></ul>",
            "nullable": true,
            "example": "P123456"
          },
          "serialNumber": {
            "type": "string",
            "description": "A contact serial number to soft credit\r\n<ul><li>Contact must exist</li></ul><ul><li>Contact may only be specified once per pledge</li></ul>",
            "nullable": true,
            "example": "12353782"
          },
          "amount": {
            "type": "number",
            "description": "The soft credit amount\r\n<ul><li>Must exist in PledgeStatus lookup</li></ul><ul><li>Can not be lower than a sigle instalment value</li></ul>",
            "format": "double",
            "nullable": true,
            "example": 23.67
          }
        },
        "additionalProperties": false,
        "description": "Contains information on pledge soft credits"
      },
      "PledgeSoftCreditPostRequest": {
        "required": [
          "amount",
          "serialNumber"
        ],
        "type": "object",
        "properties": {
          "pledgeId": {
            "type": "string",
            "description": "The pledge id\r\n<ul><li>When specified in importthis must already exist in the database or import</li></ul>",
            "nullable": true,
            "example": "P123456"
          },
          "serialNumber": {
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "description": "A contact serial number to soft credit\r\n<ul><li>Contact must exist</li></ul><ul><li>Contact may only be specified once per pledge</li></ul>",
            "example": "12353782"
          },
          "amount": {
            "type": "number",
            "description": "The soft credit amount\r\n<ul><li>Must exist in PledgeStatus lookup</li></ul><ul><li>Can not be lower than a sigle instalment value</li></ul>",
            "format": "double",
            "example": 23.67
          }
        },
        "additionalProperties": false,
        "description": "Contains information about a pledge soft credit to post"
      },
      "RelationshipGetResponse": {
        "type": "object",
        "properties": {
          "relationshipId": {
            "type": "integer",
            "description": "The unique ID of the relationship",
            "format": "int32"
          },
          "parentSerialNumber": {
            "type": "string",
            "description": "The serial number of the parent contact\r\n<ul><li>Must be a serial number of an existing contact</li></ul><ul><li>Must not be the same as the ChildSerialNumber</li></ul><ul><li>Must not already have a relationship to the ChildSerialNumber for the same relationship type</li></ul><ul><li>Must not already have a relationship to the ChildSerialNumber for the reverse relationship type</li></ul><ul><li>Must not have a duplicate relationships in the import</li></ul><ul><li>Must not have a duplicate reverse relationships in the import</li></ul>",
            "nullable": true,
            "example": "1018871"
          },
          "childSerialNumber": {
            "type": "string",
            "description": "The serial number of the child contact\r\n<ul><li>Must be a serial number of an existing contact</li></ul><ul><li>Must not be the same as the ParentSerialNumber</li></ul>",
            "nullable": true,
            "example": "1120128"
          },
          "relationshipType": {
            "type": "string",
            "description": "The type of the relationship\r\n<ul><li>Must exist as an existing relationship type</li></ul>",
            "nullable": true,
            "example": "Co-Researcher"
          },
          "reverseRelationshipType": {
            "type": "string",
            "description": "The reverse type of the relationship\r\n<ul><li>When the ReverseRelationshipType is left blank in an import, it will default to the Reverse of the relationship type if only one reverse exists against that relationship type.</li><li>If more than one reverse relationship type exists for that relationship type, then the ReverseRelationshipType will not default and validation will fire.</li><ul><li>Note that it will not check the if the default reverse relationship is appropriate for the contact type.</li></ul></ul><ul><li>Must exist as an existing relationship type</li></ul>",
            "nullable": true,
            "example": "Co-Researcher"
          },
          "effectiveFrom": {
            "type": "string",
            "description": "The effective from date for the relationship",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "effectiveUntil": {
            "type": "string",
            "description": "The effective to date for the relationship",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "notes": {
            "type": "string",
            "description": "Additional notes recorded against the relationship",
            "nullable": true,
            "example": "Temporary Relationship"
          },
          "udT01": {
            "type": "string",
            "description": "The user defined text field 01",
            "nullable": true,
            "example": "User Defined Text Field Here"
          },
          "udT02": {
            "type": "string",
            "description": "The user defined text field 02",
            "nullable": true
          },
          "udT03": {
            "type": "string",
            "description": "The user defined text field 03",
            "nullable": true
          },
          "udT04": {
            "type": "string",
            "description": "The user defined text field 04",
            "nullable": true
          },
          "udT05": {
            "type": "string",
            "description": "The user defined text field 05",
            "nullable": true
          },
          "udN01": {
            "type": "number",
            "description": "The user defined number field 01",
            "format": "double",
            "nullable": true,
            "example": 34.22
          },
          "udN02": {
            "type": "number",
            "description": "The user defined number field 02",
            "format": "double",
            "nullable": true
          },
          "udN03": {
            "type": "number",
            "description": "The user defined number field 03",
            "format": "double",
            "nullable": true
          },
          "udN04": {
            "type": "number",
            "description": "The user defined number field 04",
            "format": "double",
            "nullable": true
          },
          "udN05": {
            "type": "number",
            "description": "The user defined number field 05",
            "format": "double",
            "nullable": true
          },
          "udD01": {
            "type": "string",
            "description": "The user defined date field 01",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD02": {
            "type": "string",
            "description": "The user defined date field 02",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD03": {
            "type": "string",
            "description": "The user defined date field 03",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD04": {
            "type": "string",
            "description": "The user defined date field 04",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD05": {
            "type": "string",
            "description": "The user defined date field 05",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udB01": {
            "type": "boolean",
            "description": "The user defined bool field 01",
            "nullable": true,
            "example": false
          },
          "udB02": {
            "type": "boolean",
            "description": "The user defined bool field 02",
            "nullable": true
          },
          "udB03": {
            "type": "boolean",
            "description": "The user defined bool field 03",
            "nullable": true
          },
          "udB04": {
            "type": "boolean",
            "description": "The user defined bool field 04",
            "nullable": true
          },
          "udB05": {
            "type": "boolean",
            "description": "The user defined bool field 05",
            "nullable": true
          },
          "parentDataHubId": {
            "type": "string",
            "description": "A reference to the contact in Access DataHub",
            "format": "uuid",
            "nullable": true,
            "example": "5c3a9245-d683-470c-90f2-06bb62c0b87e"
          },
          "childDataHubId": {
            "type": "string",
            "description": "A reference to the contact in Access DataHub",
            "format": "uuid",
            "nullable": true,
            "example": "4eddbf28-978a-41a9-ac65-411273db68a0"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on a contacts relationships"
      },
      "RelationshipPostRequest": {
        "required": [
          "relationshipType"
        ],
        "type": "object",
        "properties": {
          "parentSerialNumber": {
            "maxLength": 50,
            "type": "string",
            "description": "The serial number of the parent contact\r\n<ul><li>Must be a serial number of an existing contact</li></ul><ul><li>Must not be the same as the ChildSerialNumber</li></ul><ul><li>Must not already have a relationship to the ChildSerialNumber for the same relationship type</li></ul><ul><li>Must not already have a relationship to the ChildSerialNumber for the reverse relationship type</li></ul><ul><li>Must not have a duplicate relationships in the import</li></ul><ul><li>Must not have a duplicate reverse relationships in the import</li></ul>",
            "nullable": true,
            "example": "1018871"
          },
          "childSerialNumber": {
            "maxLength": 50,
            "type": "string",
            "description": "The serial number of the child contact\r\n<ul><li>Must be a serial number of an existing contact</li></ul><ul><li>Must not be the same as the ParentSerialNumber</li></ul>",
            "nullable": true,
            "example": "1120128"
          },
          "relationshipType": {
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "description": "The type of the relationship\r\n<ul><li>Must exist as an existing relationship type</li></ul>",
            "example": "Co-Researcher"
          },
          "reverseRelationshipType": {
            "maxLength": 50,
            "type": "string",
            "description": "The reverse type of the relationship\r\n<ul><li>When the ReverseRelationshipType is left blank in an import, it will default to the Reverse of the relationship type if only one reverse exists against that relationship type.</li><li>If more than one reverse relationship type exists for that relationship type, then the ReverseRelationshipType will not default and validation will fire.</li><ul><li>Note that it will not check the if the default reverse relationship is appropriate for the contact type.</li></ul></ul><ul><li>Must exist as an existing relationship type</li></ul>",
            "nullable": true,
            "example": "Co-Researcher"
          },
          "effectiveFrom": {
            "type": "string",
            "description": "The effective from date for the relationship",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "effectiveUntil": {
            "type": "string",
            "description": "The effective to date for the relationship",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "notes": {
            "maxLength": 1000,
            "type": "string",
            "description": "Additional notes recorded against the relationship",
            "nullable": true,
            "example": "Temporary Relationship"
          },
          "udT01": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 01",
            "nullable": true,
            "example": "User Defined Text Field Here"
          },
          "udT02": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 02",
            "nullable": true
          },
          "udT03": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 03",
            "nullable": true
          },
          "udT04": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 04",
            "nullable": true
          },
          "udT05": {
            "maxLength": 2000,
            "type": "string",
            "description": "The user defined text field 05",
            "nullable": true
          },
          "udN01": {
            "type": "number",
            "description": "The user defined number field 01",
            "format": "double",
            "nullable": true,
            "example": 34.22
          },
          "udN02": {
            "type": "number",
            "description": "The user defined number field 02",
            "format": "double",
            "nullable": true
          },
          "udN03": {
            "type": "number",
            "description": "The user defined number field 03",
            "format": "double",
            "nullable": true
          },
          "udN04": {
            "type": "number",
            "description": "The user defined number field 04",
            "format": "double",
            "nullable": true
          },
          "udN05": {
            "type": "number",
            "description": "The user defined number field 05",
            "format": "double",
            "nullable": true
          },
          "udD01": {
            "type": "string",
            "description": "The user defined date field 01",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD02": {
            "type": "string",
            "description": "The user defined date field 02",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD03": {
            "type": "string",
            "description": "The user defined date field 03",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD04": {
            "type": "string",
            "description": "The user defined date field 04",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udD05": {
            "type": "string",
            "description": "The user defined date field 05",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "udB01": {
            "type": "boolean",
            "description": "The user defined bool field 01",
            "nullable": true,
            "example": false
          },
          "udB02": {
            "type": "boolean",
            "description": "The user defined bool field 02",
            "nullable": true
          },
          "udB03": {
            "type": "boolean",
            "description": "The user defined bool field 03",
            "nullable": true
          },
          "udB04": {
            "type": "boolean",
            "description": "The user defined bool field 04",
            "nullable": true
          },
          "udB05": {
            "type": "boolean",
            "description": "The user defined bool field 05",
            "nullable": true
          },
          "parentDataHubId": {
            "type": "string",
            "description": "A reference to the contact in Access DataHub",
            "format": "uuid",
            "nullable": true,
            "example": "5c3a9245-d683-470c-90f2-06bb62c0b87e"
          },
          "childDataHubId": {
            "type": "string",
            "description": "A reference to the contact in Access DataHub",
            "format": "uuid",
            "nullable": true,
            "example": "4eddbf28-978a-41a9-ac65-411273db68a0"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on a relationship to post"
      },
      "SalesOrderDetailGetResponse": {
        "type": "object",
        "properties": {
          "detailId": {
            "type": "string",
            "description": "The sales order detail id\r\n<ul><li>Must not already exist</li></ul><ul><li>Must be unique to the record set being posted</li></ul><ul><li>For new records this must not be empty</li></ul><ul><li>Default is Sequence: OrderDetailImportID</li></ul>",
            "nullable": true,
            "example": "OD9001"
          },
          "orderNumber": {
            "type": "string",
            "description": "The id of the sales order\r\nIs automatically inherited from the SalesOrder\r\n<ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "ORD1000031"
          },
          "lineNumber": {
            "type": "integer",
            "description": "The Line number of the detail in the sales order",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "productCode": {
            "type": "string",
            "description": "The code of the product for the sales order detail\r\n<ul><li>Must exist as a sales order product</li></ul><ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "00000000318"
          },
          "price": {
            "type": "number",
            "description": "The price of the products for the sales order detail\r\n<ul><li>Price is defaulted using the price of the sales order product with the same product code.</li></ul><ul><li>Must be greater than or equal to 0</li></ul><ul><li>For new records this must not be empty</li></ul>",
            "format": "double",
            "nullable": true,
            "example": 2.50
          },
          "quantity": {
            "type": "integer",
            "description": "The quantity of the product for the sales order detail\r\n<ul><li>Must be greater than 0</li></ul><ul><li>For new records this must not be empty</li></ul>",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "totalAmount": {
            "type": "number",
            "description": "The total value of the sales order detail line\r\n<ul><li>TotalAmount is defaulted by multiplying the price and the quantity.</li></ul><ul><li>Must be greater than or equal to 0</li></ul><ul><li>For new records this must not be empty</li></ul>",
            "format": "double",
            "nullable": true,
            "example": 5.00
          },
          "vatAmount": {
            "type": "number",
            "description": "The total VAT amount of the sales order detail line\r\n<ul><li>Must be greater than or equal to 0</li></ul>",
            "format": "double",
            "nullable": true,
            "example": 0.0000
          },
          "productName": {
            "type": "string",
            "description": "The name of the product",
            "nullable": true,
            "example": "Item Name 01"
          },
          "productOrigin": {
            "type": "string",
            "description": "The origin of the product",
            "nullable": true,
            "example": "Warehouse"
          },
          "sourceApplication": {
            "type": "string",
            "description": "The name of the application the product came from",
            "nullable": true,
            "example": "Financials"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on sales order details"
      },
      "SalesOrderDetailPostRequest": {
        "type": "object",
        "properties": {
          "detailId": {
            "maxLength": 250,
            "type": "string",
            "description": "The sales order detail id\r\n<ul><li>Must not already exist</li></ul><ul><li>Must be unique to the record set being posted</li></ul><ul><li>For new records this must not be empty</li></ul><ul><li>Default is Sequence: OrderDetailImportID</li></ul>",
            "nullable": true,
            "example": "OD9001"
          },
          "orderNumber": {
            "maxLength": 50,
            "type": "string",
            "description": "The id of the sales order\r\nIs automatically inherited from the SalesOrder\r\n<ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "ORD1000031"
          },
          "productCode": {
            "maxLength": 250,
            "type": "string",
            "description": "The code of the product for the sales order detail\r\n<ul><li>Must exist as a sales order product</li></ul><ul><li>For new records this must not be empty</li></ul>",
            "nullable": true,
            "example": "00000000318"
          },
          "price": {
            "type": "number",
            "description": "The price of the products for the sales order detail\r\n<ul><li>Price is defaulted using the price of the sales order product with the same product code.</li></ul><ul><li>Must be greater than or equal to 0</li></ul><ul><li>For new records this must not be empty</li></ul>",
            "format": "double",
            "nullable": true,
            "example": 2.50
          },
          "quantity": {
            "type": "integer",
            "description": "The quantity of the product for the sales order detail\r\n<ul><li>Must be greater than 0</li></ul><ul><li>For new records this must not be empty</li></ul>",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "totalAmount": {
            "type": "number",
            "description": "The total value of the sales order detail line\r\n<ul><li>TotalAmount is defaulted by multiplying the price and the quantity.</li></ul><ul><li>Must be greater than or equal to 0</li></ul><ul><li>For new records this must not be empty</li></ul>",
            "format": "double",
            "nullable": true,
            "example": 5.00
          },
          "vatAmount": {
            "type": "number",
            "description": "The total VAT amount of the sales order detail line\r\n<ul><li>Must be greater than or equal to 0</li></ul>",
            "format": "double",
            "nullable": true,
            "example": 0.0000
          }
        },
        "additionalProperties": false,
        "description": "Contains information about a sales order detail to post"
      },
      "SalesOrderGetResponse": {
        "type": "object",
        "properties": {
          "orderNumber": {
            "type": "string",
            "description": "The id of the sales order\r\n<ul><li>Must not already exist</li></ul><ul><li>Must be unique to the record set being posted</li></ul>",
            "nullable": true,
            "example": "ORD1000031"
          },
          "serialNumber": {
            "type": "string",
            "description": "The serial number of the contact\r\n<ul><li>This value cannot be empty </li></ul><ul><li>This value must exist as an existing contact</li></ul>",
            "nullable": true,
            "example": "4515004"
          },
          "status": {
            "type": "string",
            "description": "The current status of the sales order",
            "nullable": true,
            "example": "Complete"
          },
          "type": {
            "type": "string",
            "description": "The type of the sales order\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Default is 'Order'</li></ul>",
            "nullable": true,
            "example": "Order"
          },
          "orderDate": {
            "type": "string",
            "description": "The date the sales order was taken",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "currency": {
            "type": "string",
            "description": "The currency of the sales order\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Must exist in the 'Currency' lookup</li></ul><ul><li>Default is LibraryDefinition: MainCurrency</li></ul>",
            "nullable": true,
            "example": "GBP"
          },
          "originalTotalCost": {
            "type": "number",
            "description": "<h2>The total cost of the sales order in it's original currency</h2>\r\n<ul>\r\n  <li>When null will default to the TotalCost of the SalesOrder.</li>\r\n</ul>\r\n<ul>\r\n  <li>This value cannot be empty</li>\r\n</ul>\r\n<ul>\r\n  <li>Must be greater than or equal to 0</li>\r\n</ul>",
            "format": "double",
            "nullable": true,
            "example": 10.00
          },
          "totalCost": {
            "type": "number",
            "description": "The total cost of the sales order\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Must be greater than or equal to 0</li></ul>",
            "format": "double",
            "nullable": true,
            "example": 10.00
          },
          "sourceCode": {
            "type": "string",
            "description": "The source code of the sales order\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Source Code must exist</li></ul><ul><li>Default is LookupValue: SourceCodeDefault</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "description": {
            "type": "string",
            "description": "The description of the sales order",
            "nullable": true,
            "example": "Purchased at till 6"
          },
          "sourceApplication": {
            "type": "string",
            "description": "The name of the application the sales order came from\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Default is 'Imported'</li></ul>",
            "nullable": true,
            "example": "Financials"
          },
          "notes": {
            "type": "string",
            "description": "The notes of the sales order",
            "nullable": true,
            "example": "Notes of the Order"
          },
          "created": {
            "type": "string",
            "description": "Date the sales order was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "type": "string",
            "description": "User who created the sales order\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "Dave"
          },
          "modified": {
            "type": "string",
            "description": "Date the sales order was modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "User who last modified the sales order",
            "nullable": true,
            "example": "Dave"
          },
          "details": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SalesOrderDetailGetResponse"
            },
            "description": "Contains the details for the sales order",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information about a sales order"
      },
      "SalesOrderGetResponseCollectionItem": {
        "type": "object",
        "properties": {
          "orderNumber": {
            "type": "string",
            "description": "The id of the sales order\r\n<ul><li>Must not already exist</li></ul><ul><li>Must be unique to the record set being posted</li></ul>",
            "nullable": true,
            "example": "ORD1000031"
          },
          "serialNumber": {
            "type": "string",
            "description": "The serial number of the contact\r\n<ul><li>This value cannot be empty </li></ul><ul><li>This value must exist as an existing contact</li></ul>",
            "nullable": true,
            "example": "4515004"
          },
          "status": {
            "type": "string",
            "description": "The current status of the sales order",
            "nullable": true,
            "example": "Complete"
          },
          "type": {
            "type": "string",
            "description": "The type of the sales order\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Default is 'Order'</li></ul>",
            "nullable": true,
            "example": "Order"
          },
          "orderDate": {
            "type": "string",
            "description": "The date the sales order was taken",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "currency": {
            "type": "string",
            "description": "The currency of the sales order\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Must exist in the 'Currency' lookup</li></ul><ul><li>Default is LibraryDefinition: MainCurrency</li></ul>",
            "nullable": true,
            "example": "GBP"
          },
          "originalTotalCost": {
            "type": "number",
            "description": "<h2>The total cost of the sales order in it's original currency</h2>\r\n<ul>\r\n  <li>When null will default to the TotalCost of the SalesOrder.</li>\r\n</ul>\r\n<ul>\r\n  <li>This value cannot be empty</li>\r\n</ul>\r\n<ul>\r\n  <li>Must be greater than or equal to 0</li>\r\n</ul>",
            "format": "double",
            "nullable": true,
            "example": 10.00
          },
          "totalCost": {
            "type": "number",
            "description": "The total cost of the sales order\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Must be greater than or equal to 0</li></ul>",
            "format": "double",
            "nullable": true,
            "example": 10.00
          },
          "sourceCode": {
            "type": "string",
            "description": "The source code of the sales order\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Source Code must exist</li></ul><ul><li>Default is LookupValue: SourceCodeDefault</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "description": {
            "type": "string",
            "description": "The description of the sales order",
            "nullable": true,
            "example": "Purchased at till 6"
          },
          "sourceApplication": {
            "type": "string",
            "description": "The name of the application the sales order came from\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Default is 'Imported'</li></ul>",
            "nullable": true,
            "example": "Financials"
          },
          "notes": {
            "type": "string",
            "description": "The notes of the sales order",
            "nullable": true,
            "example": "Notes of the Order"
          },
          "created": {
            "type": "string",
            "description": "Date the sales order was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "type": "string",
            "description": "User who created the sales order\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "Dave"
          },
          "modified": {
            "type": "string",
            "description": "Date the sales order was modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "User who last modified the sales order",
            "nullable": true,
            "example": "Dave"
          }
        },
        "additionalProperties": false,
        "description": "Contains information about a sales order"
      },
      "SalesOrderGetResponseCollectionResponse": {
        "type": "object",
        "properties": {
          "pageNumber": {
            "type": "integer",
            "description": "The page number for the data in the response",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "The page size for the data in the response",
            "format": "int32"
          },
          "totalCount": {
            "type": "integer",
            "description": "The total number of items in the data collection",
            "format": "int32",
            "nullable": true
          },
          "pageCount": {
            "type": "integer",
            "description": "The total number of pages in the data collection",
            "format": "int32",
            "nullable": true,
            "readOnly": true
          },
          "hasNextPage": {
            "type": "boolean",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SalesOrderGetResponseCollectionItem"
            },
            "description": "The collection of items",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Holds response information for a collection of data"
      },
      "SalesOrderPostRequest": {
        "type": "object",
        "properties": {
          "orderNumber": {
            "maxLength": 50,
            "type": "string",
            "description": "The id of the sales order\r\n<ul><li>Must not already exist</li></ul><ul><li>Must be unique to the record set being posted</li></ul>",
            "nullable": true,
            "example": "ORD1000031"
          },
          "serialNumber": {
            "maxLength": 50,
            "type": "string",
            "description": "The serial number of the contact\r\n<ul><li>This value cannot be empty </li></ul><ul><li>This value must exist as an existing contact</li></ul>",
            "nullable": true,
            "example": "4515004"
          },
          "status": {
            "maxLength": 50,
            "type": "string",
            "description": "The current status of the sales order",
            "nullable": true,
            "example": "Complete"
          },
          "type": {
            "maxLength": 50,
            "type": "string",
            "description": "The type of the sales order\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Default is 'Order'</li></ul>",
            "nullable": true,
            "example": "Order"
          },
          "orderDate": {
            "type": "string",
            "description": "The date the sales order was taken",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "currency": {
            "maxLength": 10,
            "type": "string",
            "description": "The currency of the sales order\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Must exist in the 'Currency' lookup</li></ul><ul><li>Default is LibraryDefinition: MainCurrency</li></ul>",
            "nullable": true,
            "example": "GBP"
          },
          "originalTotalCost": {
            "type": "number",
            "description": "<h2>The total cost of the sales order in it's original currency</h2>\r\n<ul>\r\n  <li>When null will default to the TotalCost of the SalesOrder.</li>\r\n</ul>\r\n<ul>\r\n  <li>This value cannot be empty</li>\r\n</ul>\r\n<ul>\r\n  <li>Must be greater than or equal to 0</li>\r\n</ul>",
            "format": "double",
            "nullable": true,
            "example": 10.00
          },
          "totalCost": {
            "type": "number",
            "description": "The total cost of the sales order\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Must be greater than or equal to 0</li></ul>",
            "format": "double",
            "nullable": true,
            "example": 10.00
          },
          "sourceCode": {
            "maxLength": 50,
            "type": "string",
            "description": "The source code of the sales order\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Source Code must exist</li></ul><ul><li>Default is LookupValue: SourceCodeDefault</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "description": {
            "maxLength": 255,
            "type": "string",
            "description": "The description of the sales order",
            "nullable": true,
            "example": "Purchased at till 6"
          },
          "sourceApplication": {
            "maxLength": 100,
            "type": "string",
            "description": "The name of the application the sales order came from\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Default is 'Imported'</li></ul>",
            "nullable": true,
            "example": "Financials"
          },
          "notes": {
            "maxLength": 2000,
            "type": "string",
            "description": "The notes of the sales order",
            "nullable": true,
            "example": "Notes of the Order"
          },
          "created": {
            "type": "string",
            "description": "Date the sales order was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "maxLength": 50,
            "type": "string",
            "description": "User who created the sales order\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "Dave"
          },
          "details": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SalesOrderDetailPostRequest"
            },
            "description": "The details to post against the sales order",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information about a sales order to post"
      },
      "SalesOrderProductGetResponse": {
        "type": "object",
        "properties": {
          "productId": {
            "type": "string",
            "description": "The id of the sales order product\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Must not already exist</li></ul><ul><li>Must be unique to the record set being posted</li></ul><ul><li>Default is Sequence: ProductImportID</li></ul>",
            "nullable": true,
            "example": "PR1848600"
          },
          "productCode": {
            "type": "string",
            "description": "The code of the product\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Must not already exist</li></ul><ul><li>Must be unique to the record set being posted</li></ul>",
            "nullable": true,
            "example": "PR012E-Gift-01"
          },
          "productName": {
            "type": "string",
            "description": "The name of the product",
            "nullable": true,
            "example": "Item Name 01"
          },
          "type": {
            "type": "string",
            "description": "The type of the product",
            "nullable": true,
            "example": "Gift"
          },
          "sellingPrice": {
            "type": "number",
            "description": "The price of the product is being sold at\r\n<ul><li>Must be greater than or equal to 0</li></ul>",
            "format": "double",
            "nullable": true,
            "example": 2.50
          },
          "costPrice": {
            "type": "number",
            "description": "The cost price of the product\r\n<ul><li>Must be greater than or equal to 0</li></ul>",
            "format": "double",
            "nullable": true,
            "example": 0.89
          },
          "doNotUse": {
            "type": "boolean",
            "description": "The DoNotUse flag for the product",
            "nullable": true,
            "example": false
          },
          "destinationCode": {
            "type": "string",
            "description": "The destination code of the product\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Must exist as an existing destination code</li></ul><ul><li>Default is LibraryDefinition: FinancialsSalesOrderDefaultDestination</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "productOrigin": {
            "type": "string",
            "description": "The origin of the product\r\n<ul><li>This value cannot be empty</li></ul>",
            "nullable": true,
            "example": "Warehouse"
          },
          "sourceApplication": {
            "type": "string",
            "description": "The name of the application the product came from\r\n<ul><li>Default is 'Imported'</li></ul>",
            "nullable": true,
            "example": "Financials"
          },
          "created": {
            "type": "string",
            "description": "Date the product was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modified": {
            "type": "string",
            "description": "Date the product was modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          }
        },
        "additionalProperties": false,
        "description": "Contains information about a sales order product"
      },
      "SalesOrderProductGetResponseCollectionResponse": {
        "type": "object",
        "properties": {
          "pageNumber": {
            "type": "integer",
            "description": "The page number for the data in the response",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "The page size for the data in the response",
            "format": "int32"
          },
          "totalCount": {
            "type": "integer",
            "description": "The total number of items in the data collection",
            "format": "int32",
            "nullable": true
          },
          "pageCount": {
            "type": "integer",
            "description": "The total number of pages in the data collection",
            "format": "int32",
            "nullable": true,
            "readOnly": true
          },
          "hasNextPage": {
            "type": "boolean",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SalesOrderProductGetResponse"
            },
            "description": "The collection of items",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Holds response information for a collection of data"
      },
      "SalesOrderProductPostRequest": {
        "type": "object",
        "properties": {
          "productId": {
            "maxLength": 250,
            "type": "string",
            "description": "The id of the sales order product\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Must not already exist</li></ul><ul><li>Must be unique to the record set being posted</li></ul><ul><li>Default is Sequence: ProductImportID</li></ul>",
            "nullable": true,
            "example": "PR1848600"
          },
          "productCode": {
            "maxLength": 250,
            "type": "string",
            "description": "The code of the product\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Must not already exist</li></ul><ul><li>Must be unique to the record set being posted</li></ul>",
            "nullable": true,
            "example": "PR012E-Gift-01"
          },
          "productName": {
            "maxLength": 80,
            "type": "string",
            "description": "The name of the product",
            "nullable": true,
            "example": "Item Name 01"
          },
          "type": {
            "maxLength": 50,
            "type": "string",
            "description": "The type of the product",
            "nullable": true,
            "example": "Gift"
          },
          "sellingPrice": {
            "type": "number",
            "description": "The price of the product is being sold at\r\n<ul><li>Must be greater than or equal to 0</li></ul>",
            "format": "double",
            "nullable": true,
            "example": 2.50
          },
          "costPrice": {
            "type": "number",
            "description": "The cost price of the product\r\n<ul><li>Must be greater than or equal to 0</li></ul>",
            "format": "double",
            "nullable": true,
            "example": 0.89
          },
          "doNotUse": {
            "type": "boolean",
            "description": "The DoNotUse flag for the product",
            "nullable": true,
            "example": false
          },
          "destinationCode": {
            "maxLength": 50,
            "type": "string",
            "description": "The destination code of the product\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Must exist as an existing destination code</li></ul><ul><li>Default is LibraryDefinition: FinancialsSalesOrderDefaultDestination</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "productOrigin": {
            "maxLength": 10,
            "type": "string",
            "description": "The origin of the product\r\n<ul><li>This value cannot be empty</li></ul>",
            "nullable": true,
            "example": "Warehouse"
          },
          "sourceApplication": {
            "maxLength": 100,
            "type": "string",
            "description": "The name of the application the product came from\r\n<ul><li>Default is 'Imported'</li></ul>",
            "nullable": true,
            "example": "Financials"
          },
          "created": {
            "type": "string",
            "description": "Date the product was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          }
        },
        "additionalProperties": false,
        "description": "Contains information about a sales order product to post"
      },
      "SalesOrderProductPutBulkRequest": {
        "type": "object",
        "properties": {
          "productId": {
            "maxLength": 250,
            "type": "string",
            "description": "The id of the sales order product",
            "nullable": true,
            "example": "PR1848600"
          },
          "productName": {
            "maxLength": 80,
            "type": "string",
            "description": "The name of the product",
            "nullable": true,
            "example": "Item Name 01"
          },
          "type": {
            "maxLength": 50,
            "type": "string",
            "description": "The type of the product",
            "nullable": true,
            "example": "Gift"
          },
          "sellingPrice": {
            "type": "number",
            "description": "The price of the product is being sold at\r\n<ul><li>Must be greater than or equal to 0</li></ul>",
            "format": "double",
            "nullable": true,
            "example": 2.50
          },
          "costPrice": {
            "type": "number",
            "description": "The cost price of the product\r\n<ul><li>Must be greater than or equal to 0</li></ul>",
            "format": "double",
            "nullable": true,
            "example": 0.89
          },
          "doNotUse": {
            "type": "boolean",
            "description": "The DoNotUse flag for the product",
            "nullable": true,
            "example": false
          },
          "destinationCode": {
            "maxLength": 50,
            "type": "string",
            "description": "The destination code of the product\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Must exist as an existing destination code</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "modified": {
            "type": "string",
            "description": "Date the product was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          }
        },
        "additionalProperties": false,
        "description": "Contains information about a sales order product to put"
      },
      "SalesOrderProductPutRequest": {
        "type": "object",
        "properties": {
          "productName": {
            "maxLength": 80,
            "type": "string",
            "description": "The name of the product",
            "nullable": true,
            "example": "Item Name 01"
          },
          "type": {
            "maxLength": 50,
            "type": "string",
            "description": "The type of the product",
            "nullable": true,
            "example": "Gift"
          },
          "sellingPrice": {
            "type": "number",
            "description": "The price of the product is being sold at\r\n<ul><li>Must be greater than or equal to 0</li></ul>",
            "format": "double",
            "nullable": true,
            "example": 2.50
          },
          "costPrice": {
            "type": "number",
            "description": "The cost price of the product\r\n<ul><li>Must be greater than or equal to 0</li></ul>",
            "format": "double",
            "nullable": true,
            "example": 0.89
          },
          "doNotUse": {
            "type": "boolean",
            "description": "The DoNotUse flag for the product",
            "nullable": true,
            "example": false
          },
          "destinationCode": {
            "maxLength": 50,
            "type": "string",
            "description": "The destination code of the product\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Must exist as an existing destination code</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "modified": {
            "type": "string",
            "description": "Date the product was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          }
        },
        "additionalProperties": false,
        "description": "Contains information about a sales order product to put"
      },
      "SignInRequest": {
        "required": [
          "password",
          "userName"
        ],
        "type": "object",
        "properties": {
          "userName": {
            "minLength": 1,
            "type": "string",
            "description": "The user name",
            "example": "1c8388b5-fcf7-4c5e-b890-f09021ffcefb"
          },
          "password": {
            "minLength": 1,
            "type": "string",
            "description": "The password",
            "example": "jpQX3c21t5_4-$X"
          }
        },
        "additionalProperties": false,
        "description": "Contains the details for signing a user in"
      },
      "SourceCodeGetResponse": {
        "type": "object",
        "properties": {
          "sourceCodeRelationships": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SourceCodeRelationshipGetResponse"
            },
            "description": "The Source Codes related to the current Source Code",
            "nullable": true
          },
          "sourceCode": {
            "type": "string",
            "description": "The source code and unique Id for the record\r\n<ul><li>Must not already exist</li></ul><ul><li>Must be unique to the record set being posted</li></ul><ul><li>Must not contain a colon</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "sourceType": {
            "type": "string",
            "description": "The type of source code e.g. Appeal, Department, Event etc.\r\n<ul><li>Must exist in the 'SourceType' Lookup</li></ul>",
            "nullable": true,
            "example": "Mailing"
          },
          "sourceDescription": {
            "type": "string",
            "description": "Description of the source code",
            "nullable": true,
            "example": "General Source Code for sourcing"
          },
          "sourceNotes": {
            "type": "string",
            "description": "Notes on the source code",
            "nullable": true,
            "example": "These are notes"
          },
          "startDate": {
            "type": "string",
            "description": "Start date of the source code",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "endDate": {
            "type": "string",
            "description": "End Date of the source code",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "sponsorship": {
            "type": "boolean",
            "description": "Whether this is a Sponsorship event source code\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "defaultDestinationCode": {
            "type": "string",
            "description": "The default destination code for this source code\r\n<ul><li>This value must exist as an existing destination code</li></ul>",
            "nullable": true,
            "example": "General Destination"
          },
          "excludeFromDropDown": {
            "type": "boolean",
            "description": "Whether to exclude the source code from any source code drop down lists\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "target": {
            "type": "number",
            "description": "The target amount to raise for this source code",
            "format": "double",
            "nullable": true,
            "example": 12000
          },
          "sourceCost": {
            "type": "number",
            "description": "Total cost incurred for this source code",
            "format": "double",
            "nullable": true,
            "example": 130
          },
          "targetResponse": {
            "type": "integer",
            "description": "The target response for this source code",
            "format": "int32",
            "nullable": true,
            "example": 100
          },
          "inMemNotes": {
            "type": "string",
            "description": "In memory notes",
            "nullable": true,
            "example": "in memoriam notes"
          },
          "inMemSerialNumber": {
            "type": "string",
            "description": "The serial number of the contact this is in memory of\r\n<ul><li>Must exist as a contact</li></ul>",
            "nullable": true,
            "example": "000023"
          },
          "expiryDate": {
            "type": "string",
            "description": "The date that the memorial is valid until",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "certificateType": {
            "type": "string",
            "description": "The type of memorial\r\n<ul><li>Must exist in the 'CertificateType' Lookup</li></ul>",
            "nullable": true,
            "example": "Plaque"
          },
          "celebrationReason": {
            "type": "string",
            "description": "The reason for the in memory or in honour certificate",
            "nullable": true,
            "example": "Birthday"
          },
          "location": {
            "type": "string",
            "description": "The location of any in memory or in honour memorial",
            "nullable": true,
            "example": "UK"
          },
          "created": {
            "type": "string",
            "description": "The date the record was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "type": "string",
            "description": "The user who created the record\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "modified": {
            "type": "string",
            "description": "The date the record was modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user who modified the record\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "recordOwner": {
            "type": "string",
            "description": "The owner of the source code record\r\n<ul><li>This value must exist as an existing AccessRight or User</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "publishToWeb": {
            "type": "boolean",
            "description": "Whether the source code will be available on the website\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "webDescription": {
            "type": "string",
            "description": "The description that will be displayed on the website, instead of the standard description",
            "nullable": true,
            "example": "Web"
          },
          "publishToWebPledge": {
            "type": "boolean",
            "description": "Whether the source code will be published to the website for new pledges\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "costCenterCode": {
            "type": "string",
            "description": "The Cost Center Code for the Source",
            "nullable": true,
            "example": "CC1"
          },
          "projectCode": {
            "type": "string",
            "description": "The Project Code for the source",
            "nullable": true,
            "example": "P1"
          },
          "companyCode": {
            "type": "string",
            "description": "The Company Code for the source",
            "nullable": true,
            "example": "C1"
          },
          "customTextField1": {
            "type": "string",
            "description": "Bespoke Text Field 1",
            "nullable": true,
            "example": "User Defined Text Field Here"
          },
          "customTextField2": {
            "type": "string",
            "description": "Bespoke Text Field 2",
            "nullable": true
          },
          "customTextField3": {
            "type": "string",
            "description": "Bespoke Text Field 3",
            "nullable": true
          },
          "customTextField4": {
            "type": "string",
            "description": "Bespoke Text Field 4",
            "nullable": true
          },
          "customTextField5": {
            "type": "string",
            "description": "Bespoke Text Field 5",
            "nullable": true
          },
          "customDateField1": {
            "type": "string",
            "description": "Bespoke Date Field 1",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "customDateField2": {
            "type": "string",
            "description": "Bespoke Date Field 2",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "customDateField3": {
            "type": "string",
            "description": "Bespoke Date Field 3",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "customDateField4": {
            "type": "string",
            "description": "Bespoke Date Field 4",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "customDateField5": {
            "type": "string",
            "description": "Bespoke Date Field 5",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "customDecimalField1": {
            "type": "number",
            "description": "Bespoke Decimal Field 1",
            "format": "double",
            "nullable": true,
            "example": 34.22
          },
          "customDecimalField2": {
            "type": "number",
            "description": "Bespoke Decimal Field 2",
            "format": "double",
            "nullable": true
          },
          "customDecimalField3": {
            "type": "number",
            "description": "Bespoke Decimal Field 3",
            "format": "double",
            "nullable": true
          },
          "customDecimalField4": {
            "type": "number",
            "description": "Bespoke Decimal Field 4",
            "format": "double",
            "nullable": true
          },
          "customDecimalField5": {
            "type": "number",
            "description": "Bespoke Decimal Field 5",
            "format": "double",
            "nullable": true
          },
          "customBooleanField1": {
            "type": "boolean",
            "description": "Bespoke Boolean Field 1",
            "nullable": true,
            "example": false
          },
          "customBooleanField2": {
            "type": "boolean",
            "description": "Bespoke Boolean Field 2",
            "nullable": true
          },
          "customBooleanField3": {
            "type": "boolean",
            "description": "Bespoke Boolean Field 3",
            "nullable": true
          },
          "customBooleanField4": {
            "type": "boolean",
            "description": "Bespoke Boolean Field 4",
            "nullable": true
          },
          "customBooleanField5": {
            "type": "boolean",
            "description": "Bespoke Boolean Field 5",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the Source Code"
      },
      "SourceCodeGetResponseCollectionItem": {
        "type": "object",
        "properties": {
          "sourceCode": {
            "type": "string",
            "description": "The source code and unique Id for the record\r\n<ul><li>Must not already exist</li></ul><ul><li>Must be unique to the record set being posted</li></ul><ul><li>Must not contain a colon</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "sourceType": {
            "type": "string",
            "description": "The type of source code e.g. Appeal, Department, Event etc.\r\n<ul><li>Must exist in the 'SourceType' Lookup</li></ul>",
            "nullable": true,
            "example": "Mailing"
          },
          "sourceDescription": {
            "type": "string",
            "description": "Description of the source code",
            "nullable": true,
            "example": "General Source Code for sourcing"
          },
          "sourceNotes": {
            "type": "string",
            "description": "Notes on the source code",
            "nullable": true,
            "example": "These are notes"
          },
          "startDate": {
            "type": "string",
            "description": "Start date of the source code",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "endDate": {
            "type": "string",
            "description": "End Date of the source code",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "sponsorship": {
            "type": "boolean",
            "description": "Whether this is a Sponsorship event source code\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "defaultDestinationCode": {
            "type": "string",
            "description": "The default destination code for this source code\r\n<ul><li>This value must exist as an existing destination code</li></ul>",
            "nullable": true,
            "example": "General Destination"
          },
          "excludeFromDropDown": {
            "type": "boolean",
            "description": "Whether to exclude the source code from any source code drop down lists\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "target": {
            "type": "number",
            "description": "The target amount to raise for this source code",
            "format": "double",
            "nullable": true,
            "example": 12000
          },
          "sourceCost": {
            "type": "number",
            "description": "Total cost incurred for this source code",
            "format": "double",
            "nullable": true,
            "example": 130
          },
          "targetResponse": {
            "type": "integer",
            "description": "The target response for this source code",
            "format": "int32",
            "nullable": true,
            "example": 100
          },
          "inMemNotes": {
            "type": "string",
            "description": "In memory notes",
            "nullable": true,
            "example": "in memoriam notes"
          },
          "inMemSerialNumber": {
            "type": "string",
            "description": "The serial number of the contact this is in memory of\r\n<ul><li>Must exist as a contact</li></ul>",
            "nullable": true,
            "example": "000023"
          },
          "expiryDate": {
            "type": "string",
            "description": "The date that the memorial is valid until",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "certificateType": {
            "type": "string",
            "description": "The type of memorial\r\n<ul><li>Must exist in the 'CertificateType' Lookup</li></ul>",
            "nullable": true,
            "example": "Plaque"
          },
          "celebrationReason": {
            "type": "string",
            "description": "The reason for the in memory or in honour certificate",
            "nullable": true,
            "example": "Birthday"
          },
          "location": {
            "type": "string",
            "description": "The location of any in memory or in honour memorial",
            "nullable": true,
            "example": "UK"
          },
          "created": {
            "type": "string",
            "description": "The date the record was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "type": "string",
            "description": "The user who created the record\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "modified": {
            "type": "string",
            "description": "The date the record was modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user who modified the record\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "recordOwner": {
            "type": "string",
            "description": "The owner of the source code record\r\n<ul><li>This value must exist as an existing AccessRight or User</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "publishToWeb": {
            "type": "boolean",
            "description": "Whether the source code will be available on the website\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "webDescription": {
            "type": "string",
            "description": "The description that will be displayed on the website, instead of the standard description",
            "nullable": true,
            "example": "Web"
          },
          "publishToWebPledge": {
            "type": "boolean",
            "description": "Whether the source code will be published to the website for new pledges\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "costCenterCode": {
            "type": "string",
            "description": "The Cost Center Code for the Source",
            "nullable": true,
            "example": "CC1"
          },
          "projectCode": {
            "type": "string",
            "description": "The Project Code for the source",
            "nullable": true,
            "example": "P1"
          },
          "companyCode": {
            "type": "string",
            "description": "The Company Code for the source",
            "nullable": true,
            "example": "C1"
          },
          "customTextField1": {
            "type": "string",
            "description": "Bespoke Text Field 1",
            "nullable": true,
            "example": "User Defined Text Field Here"
          },
          "customTextField2": {
            "type": "string",
            "description": "Bespoke Text Field 2",
            "nullable": true
          },
          "customTextField3": {
            "type": "string",
            "description": "Bespoke Text Field 3",
            "nullable": true
          },
          "customTextField4": {
            "type": "string",
            "description": "Bespoke Text Field 4",
            "nullable": true
          },
          "customTextField5": {
            "type": "string",
            "description": "Bespoke Text Field 5",
            "nullable": true
          },
          "customDateField1": {
            "type": "string",
            "description": "Bespoke Date Field 1",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "customDateField2": {
            "type": "string",
            "description": "Bespoke Date Field 2",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "customDateField3": {
            "type": "string",
            "description": "Bespoke Date Field 3",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "customDateField4": {
            "type": "string",
            "description": "Bespoke Date Field 4",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "customDateField5": {
            "type": "string",
            "description": "Bespoke Date Field 5",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "customDecimalField1": {
            "type": "number",
            "description": "Bespoke Decimal Field 1",
            "format": "double",
            "nullable": true,
            "example": 34.22
          },
          "customDecimalField2": {
            "type": "number",
            "description": "Bespoke Decimal Field 2",
            "format": "double",
            "nullable": true
          },
          "customDecimalField3": {
            "type": "number",
            "description": "Bespoke Decimal Field 3",
            "format": "double",
            "nullable": true
          },
          "customDecimalField4": {
            "type": "number",
            "description": "Bespoke Decimal Field 4",
            "format": "double",
            "nullable": true
          },
          "customDecimalField5": {
            "type": "number",
            "description": "Bespoke Decimal Field 5",
            "format": "double",
            "nullable": true
          },
          "customBooleanField1": {
            "type": "boolean",
            "description": "Bespoke Boolean Field 1",
            "nullable": true,
            "example": false
          },
          "customBooleanField2": {
            "type": "boolean",
            "description": "Bespoke Boolean Field 2",
            "nullable": true
          },
          "customBooleanField3": {
            "type": "boolean",
            "description": "Bespoke Boolean Field 3",
            "nullable": true
          },
          "customBooleanField4": {
            "type": "boolean",
            "description": "Bespoke Boolean Field 4",
            "nullable": true
          },
          "customBooleanField5": {
            "type": "boolean",
            "description": "Bespoke Boolean Field 5",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the Source Code"
      },
      "SourceCodeGetResponseCollectionResponse": {
        "type": "object",
        "properties": {
          "pageNumber": {
            "type": "integer",
            "description": "The page number for the data in the response",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "The page size for the data in the response",
            "format": "int32"
          },
          "totalCount": {
            "type": "integer",
            "description": "The total number of items in the data collection",
            "format": "int32",
            "nullable": true
          },
          "pageCount": {
            "type": "integer",
            "description": "The total number of pages in the data collection",
            "format": "int32",
            "nullable": true,
            "readOnly": true
          },
          "hasNextPage": {
            "type": "boolean",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SourceCodeGetResponseCollectionItem"
            },
            "description": "The collection of items",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Holds response information for a collection of data"
      },
      "SourceCodePostRequest": {
        "required": [
          "sourceCode",
          "sourceDescription"
        ],
        "type": "object",
        "properties": {
          "sourceCodeRelationships": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SourceCodeRelationshipPostRequest"
            },
            "description": "The Source Codes related to the current Source Code",
            "nullable": true
          },
          "sourceCode": {
            "maxLength": 20,
            "minLength": 1,
            "type": "string",
            "description": "The source code and unique Id for the record\r\n<ul><li>Must not already exist</li></ul><ul><li>Must be unique to the record set being posted</li></ul><ul><li>Must not contain a colon</li></ul>",
            "example": "General"
          },
          "sourceType": {
            "maxLength": 50,
            "type": "string",
            "description": "The type of source code e.g. Appeal, Department, Event etc.\r\n<ul><li>Must exist in the 'SourceType' Lookup</li></ul>",
            "nullable": true,
            "example": "Mailing"
          },
          "sourceDescription": {
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "description": "Description of the source code",
            "example": "General Source Code for sourcing"
          },
          "sourceNotes": {
            "maxLength": 1000,
            "type": "string",
            "description": "Notes on the source code",
            "nullable": true,
            "example": "These are notes"
          },
          "startDate": {
            "type": "string",
            "description": "Start date of the source code",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "endDate": {
            "type": "string",
            "description": "End Date of the source code",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "sponsorship": {
            "type": "boolean",
            "description": "Whether this is a Sponsorship event source code\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "defaultDestinationCode": {
            "maxLength": 25,
            "type": "string",
            "description": "The default destination code for this source code\r\n<ul><li>This value must exist as an existing destination code</li></ul>",
            "nullable": true,
            "example": "General Destination"
          },
          "excludeFromDropDown": {
            "type": "boolean",
            "description": "Whether to exclude the source code from any source code drop down lists\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "target": {
            "type": "number",
            "description": "The target amount to raise for this source code",
            "format": "double",
            "nullable": true,
            "example": 12000
          },
          "sourceCost": {
            "type": "number",
            "description": "Total cost incurred for this source code",
            "format": "double",
            "nullable": true,
            "example": 130
          },
          "targetResponse": {
            "type": "integer",
            "description": "The target response for this source code",
            "format": "int32",
            "nullable": true,
            "example": 100
          },
          "inMemNotes": {
            "maxLength": 1000,
            "type": "string",
            "description": "In memory notes",
            "nullable": true,
            "example": "in memoriam notes"
          },
          "inMemSerialNumber": {
            "maxLength": 50,
            "type": "string",
            "description": "The serial number of the contact this is in memory of\r\n<ul><li>Must exist as a contact</li></ul>",
            "nullable": true,
            "example": "000023"
          },
          "expiryDate": {
            "type": "string",
            "description": "The date that the memorial is valid until",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "certificateType": {
            "maxLength": 50,
            "type": "string",
            "description": "The type of memorial\r\n<ul><li>Must exist in the 'CertificateType' Lookup</li></ul>",
            "nullable": true,
            "example": "Plaque"
          },
          "celebrationReason": {
            "maxLength": 225,
            "type": "string",
            "description": "The reason for the in memory or in honour certificate",
            "nullable": true,
            "example": "Birthday"
          },
          "location": {
            "maxLength": 100,
            "type": "string",
            "description": "The location of any in memory or in honour memorial",
            "nullable": true,
            "example": "UK"
          },
          "created": {
            "type": "string",
            "description": "The date the record was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user who created the record\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "modified": {
            "type": "string",
            "description": "The date the record was modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "maxLength": 50,
            "type": "string",
            "description": "The user who modified the record\r\n<ul><li>Default is 'API'</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "recordOwner": {
            "maxLength": 50,
            "type": "string",
            "description": "The owner of the source code record\r\n<ul><li>This value must exist as an existing AccessRight or User</li></ul>",
            "nullable": true,
            "example": "JohnFunding"
          },
          "publishToWeb": {
            "type": "boolean",
            "description": "Whether the source code will be available on the website\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "webDescription": {
            "maxLength": 50,
            "type": "string",
            "description": "The description that will be displayed on the website, instead of the standard description",
            "nullable": true,
            "example": "Web"
          },
          "publishToWebPledge": {
            "type": "boolean",
            "description": "Whether the source code will be published to the website for new pledges\r\n<ul><li>Default is 'false'</li></ul>",
            "nullable": true,
            "example": false
          },
          "costCenterCode": {
            "maxLength": 200,
            "type": "string",
            "description": "The Cost Center Code for the Source",
            "nullable": true,
            "example": "CC1"
          },
          "projectCode": {
            "maxLength": 50,
            "type": "string",
            "description": "The Project Code for the source",
            "nullable": true,
            "example": "P1"
          },
          "companyCode": {
            "maxLength": 50,
            "type": "string",
            "description": "The Company Code for the source",
            "nullable": true,
            "example": "C1"
          },
          "customTextField1": {
            "maxLength": 2000,
            "type": "string",
            "description": "Bespoke Text Field 1",
            "nullable": true,
            "example": "User Defined Text Field Here"
          },
          "customTextField2": {
            "maxLength": 2000,
            "type": "string",
            "description": "Bespoke Text Field 2",
            "nullable": true
          },
          "customTextField3": {
            "maxLength": 2000,
            "type": "string",
            "description": "Bespoke Text Field 3",
            "nullable": true
          },
          "customTextField4": {
            "maxLength": 2000,
            "type": "string",
            "description": "Bespoke Text Field 4",
            "nullable": true
          },
          "customTextField5": {
            "maxLength": 2000,
            "type": "string",
            "description": "Bespoke Text Field 5",
            "nullable": true
          },
          "customDateField1": {
            "type": "string",
            "description": "Bespoke Date Field 1",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "customDateField2": {
            "type": "string",
            "description": "Bespoke Date Field 2",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "customDateField3": {
            "type": "string",
            "description": "Bespoke Date Field 3",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "customDateField4": {
            "type": "string",
            "description": "Bespoke Date Field 4",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "customDateField5": {
            "type": "string",
            "description": "Bespoke Date Field 5",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "customDecimalField1": {
            "type": "number",
            "description": "Bespoke Decimal Field 1",
            "format": "double",
            "nullable": true,
            "example": 34.22
          },
          "customDecimalField2": {
            "type": "number",
            "description": "Bespoke Decimal Field 2",
            "format": "double",
            "nullable": true
          },
          "customDecimalField3": {
            "type": "number",
            "description": "Bespoke Decimal Field 3",
            "format": "double",
            "nullable": true
          },
          "customDecimalField4": {
            "type": "number",
            "description": "Bespoke Decimal Field 4",
            "format": "double",
            "nullable": true
          },
          "customDecimalField5": {
            "type": "number",
            "description": "Bespoke Decimal Field 5",
            "format": "double",
            "nullable": true
          },
          "customBooleanField1": {
            "type": "boolean",
            "description": "Bespoke Boolean Field 1",
            "nullable": true,
            "example": false
          },
          "customBooleanField2": {
            "type": "boolean",
            "description": "Bespoke Boolean Field 2",
            "nullable": true
          },
          "customBooleanField3": {
            "type": "boolean",
            "description": "Bespoke Boolean Field 3",
            "nullable": true
          },
          "customBooleanField4": {
            "type": "boolean",
            "description": "Bespoke Boolean Field 4",
            "nullable": true
          },
          "customBooleanField5": {
            "type": "boolean",
            "description": "Bespoke Boolean Field 5",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the Source Code"
      },
      "SourceCodeRelationshipGetResponse": {
        "type": "object",
        "properties": {
          "parentSourceCode": {
            "type": "string",
            "description": "The parent Source Code\r\n<ul><li>Must exist as a SourceCode, or SourceCode must exist as part of the same import</li></ul><ul><li>Must not be the same as the ChildSourceCode</li></ul><ul><li>Relationship or Reverse Relationship must not already exist</li></ul><ul><li>Relationship or Reverse Relationship must not be specified multiple times in the same import</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "childSourceCode": {
            "type": "string",
            "description": "The child Source Code\r\n<ul><li>Must exist as a SourceCode, or SourceCode must exist as part of the same import</li></ul><ul><li>Must only be Related to one ParentSourceCode</li></ul>",
            "nullable": true,
            "example": "APP10069"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on a Source Codes relationship to other Source Codes"
      },
      "SourceCodeRelationshipPostRequest": {
        "type": "object",
        "properties": {
          "parentSourceCode": {
            "maxLength": 20,
            "type": "string",
            "description": "The parent Source Code\r\n<ul><li>Must exist as a SourceCode, or SourceCode must exist as part of the same import</li></ul><ul><li>Must not be the same as the ChildSourceCode</li></ul><ul><li>Relationship or Reverse Relationship must not already exist</li></ul><ul><li>Relationship or Reverse Relationship must not be specified multiple times in the same import</li></ul>",
            "nullable": true,
            "example": "General"
          },
          "childSourceCode": {
            "maxLength": 20,
            "type": "string",
            "description": "The child Source Code\r\n<ul><li>Must exist as a SourceCode, or SourceCode must exist as part of the same import</li></ul><ul><li>Must only be Related to one ParentSourceCode</li></ul>",
            "nullable": true,
            "example": "APP10069"
          }
        },
        "additionalProperties": false,
        "description": "Contains information about a Source Code relationship to post"
      },
      "SqlValidationError": {
        "type": "object",
        "properties": {
          "rowNumber": {
            "type": "integer",
            "description": "The row number the error occurred on",
            "format": "int32",
            "nullable": true
          },
          "fieldName": {
            "type": "string",
            "description": "The field name the error occurred on",
            "nullable": true
          },
          "resourceName": {
            "type": "string",
            "description": "The resource name the error occurred on",
            "nullable": true
          },
          "message": {
            "type": "string",
            "description": "The error message",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Holds information about a SQL error"
      },
      "Subscription": {
        "type": "object",
        "properties": {
          "resourceName": {
            "type": "string",
            "description": "The resource subscribed to",
            "nullable": true
          },
          "systemName": {
            "type": "string",
            "description": "The system that is subscribed to the resource",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Details about the subscription"
      },
      "SubscriptionsGetResponse": {
        "type": "object",
        "properties": {
          "subscriptions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "success": {
            "type": "boolean",
            "description": "Whether the service call was successful"
          },
          "validationErrors": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/ModelStateEntry"
            },
            "description": "Any validation errors that occurred in the service call",
            "nullable": true
          },
          "timeoutException": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/ModelStateEntry"
            },
            "description": "Any validation errors that occurred in the service call",
            "nullable": true
          },
          "retry": {
            "type": "boolean",
            "description": "Bool value to indicate if the service can retry"
          },
          "returnValue": {
            "description": "Data that is returned from the service call",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Service Execution Result containing a list of subscribed resources"
      },
      "UserDefinedFieldGetResponse": {
        "type": "object",
        "properties": {
          "area": {
            "type": "string",
            "description": "The area that the user defined field is applied to",
            "nullable": true,
            "example": "Membership"
          },
          "name": {
            "type": "string",
            "description": "The name of the user defined field",
            "nullable": true,
            "example": "CustomField1"
          },
          "dataType": {
            "type": "string",
            "description": "The data type of the user defined field",
            "nullable": true,
            "example": "Text"
          },
          "caption": {
            "type": "string",
            "description": "Caption of the User Defined Field",
            "nullable": true,
            "example": "Custom Field 1"
          },
          "description": {
            "type": "string",
            "description": "Description of the User Defined Field",
            "nullable": true,
            "example": "A field for storing values"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the User Defined Fields"
      },
      "UserDefinedViewGetDataResponse": {
        "type": "object",
        "properties": {
          "pageNumber": {
            "type": "integer",
            "description": "Page number of the data",
            "format": "int32",
            "example": 1
          },
          "pageSize": {
            "type": "integer",
            "description": "Maximum number of records on the page",
            "format": "int32",
            "example": 50
          },
          "totalCount": {
            "type": "integer",
            "description": "Total number of applicable records in the bespoke View",
            "format": "int32",
            "nullable": true,
            "example": 100
          },
          "pageCount": {
            "type": "integer",
            "description": "Number of pages of data",
            "format": "int32",
            "nullable": true,
            "example": 10
          },
          "orderByColumn": {
            "type": "string",
            "description": "Column that the data is ordered by",
            "nullable": true,
            "example": "ContactID"
          },
          "data": {
            "type": "array",
            "items": { },
            "description": "List of records for the current page",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Response to a request to get data from a bespoke View"
      },
      "VolunteerCheckGetResponse": {
        "type": "object",
        "properties": {
          "checkId": {
            "type": "string",
            "description": "The unique ID for the record",
            "nullable": true,
            "example": "CHK00001"
          },
          "checkType": {
            "type": "string",
            "description": "The type of check (e.g. CRB)\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Must exist in the 'PersonnelCheckType' lookup</li></ul>",
            "nullable": true,
            "example": "DBS"
          },
          "serialNumber": {
            "type": "string",
            "description": "The Serial Number of the volunteer",
            "nullable": true,
            "example": "100456789"
          },
          "formSentToApplicant": {
            "type": "string",
            "description": "The date when the application form was sent to the volunteer",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "completeFormReceived": {
            "type": "string",
            "description": "The date when the completed form was received from the contact",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "formSentToAgency": {
            "type": "string",
            "description": "The date when the form was sent to the agency to perform the check",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "formReturnedByAgency": {
            "type": "string",
            "description": "The date when the agency returned the form that was submitted",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "disclosureReference": {
            "type": "string",
            "description": "The reference provided by the agency\r\n<ul><li>Validates dependent on CheckCategory</li></ul>",
            "nullable": true,
            "example": "\t123456789"
          },
          "dateOfDeclaration": {
            "type": "string",
            "description": "The date when self application was declared",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "copyOfExistingDocumentationReceived": {
            "type": "boolean",
            "description": "A value of true indicates that the applicant already has a CRB from another company or charity\r\n<ul><li>Default is False</li></ul>",
            "nullable": true,
            "example": true
          },
          "issuingBody": {
            "type": "string",
            "description": "The name of the issuing body for the clearance\r\n<ul><li>Validates dependent on CheckCategory</li></ul>",
            "nullable": true,
            "example": "Loughborough Council"
          },
          "agencyNote": {
            "type": "string",
            "description": "Notes provided from an agency",
            "nullable": true,
            "example": "DBS check was completed"
          },
          "validFrom": {
            "type": "string",
            "description": "The date from which the check is valid",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "validTo": {
            "type": "string",
            "description": "The date which the check is valid unitl",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "notes": {
            "type": "string",
            "description": "Informal notes recorded against the check record",
            "nullable": true,
            "example": "The check was carried out"
          },
          "created": {
            "type": "string",
            "description": "The date the record was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "type": "string",
            "description": "The user who created the record",
            "nullable": true,
            "example": "API"
          },
          "modified": {
            "type": "string",
            "description": "The date the record was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user who last modified the record\r\n<ul><li>Default is API</li></ul>",
            "nullable": true,
            "example": "API"
          },
          "destroyDisclosureBy": {
            "type": "string",
            "description": "The date the disclosures should be destroyed by",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "isaNumber": {
            "type": "string",
            "description": "Independent Safeguarding authority number",
            "nullable": true,
            "example": "1234"
          },
          "isaStatusChanged": {
            "type": "string",
            "description": "Independent Safeguarding Authority status changed",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "isaNotes": {
            "type": "string",
            "description": "Independent Safeguarding Authority Notes",
            "nullable": true,
            "example": "ISA number given"
          },
          "disclosureLevel": {
            "type": "string",
            "description": "The level of disclosure required (e.g. Standard, Enhanced)\r\n<ul><li>Must exist in the 'DisclosureType' lookup</li></ul>",
            "nullable": true,
            "example": "Standard"
          },
          "paidOrVolunteer": {
            "type": "string",
            "description": "Whether the contact is paid or a volunteer\r\n<ul><li>Must exist in the 'PaidOrVolunteer' lookup</li></ul>",
            "nullable": true,
            "example": "Volunteer"
          },
          "checkCategory": {
            "type": "string",
            "description": "The category for the check",
            "nullable": true,
            "example": "Disclosure"
          },
          "refereeSerialNumber": {
            "type": "string",
            "description": "The serialnumber for the reference\r\n<ul><li>This value must exist as an existing contact</li></ul>",
            "nullable": true,
            "example": "123456789"
          },
          "referenceContactType": {
            "type": "string",
            "description": "The type of contact for the reference\r\n<ul><li>Must exist in the 'Contact Type' lookup</li></ul><ul><li> Cannot be 'Household'</li></ul>",
            "nullable": true,
            "example": "Individual"
          },
          "referenceTitle": {
            "type": "string",
            "description": "The title of contact for the reference",
            "nullable": true,
            "example": "Mr"
          },
          "referenceFirstName": {
            "type": "string",
            "description": "The first name of contact for the reference",
            "nullable": true,
            "example": "Ben"
          },
          "referenceOtherInitial": {
            "type": "string",
            "description": "The other initial of contact for the reference",
            "nullable": true,
            "example": "T"
          },
          "referenceKeyname": {
            "type": "string",
            "description": "The key name of contact for the reference",
            "nullable": true,
            "example": "Simmons"
          },
          "referenceRelationshipToApplicant": {
            "type": "string",
            "description": "The relationship of contact for the reference",
            "nullable": true,
            "example": "Parent"
          },
          "referenceAddressType": {
            "type": "string",
            "description": "The address type of contact for the reference",
            "nullable": true,
            "example": "Home"
          },
          "referencePostcode": {
            "type": "string",
            "description": "The postcode of contact for the reference",
            "nullable": true,
            "example": "NN5 4DD"
          },
          "referenceAddress": {
            "type": "string",
            "description": "The address of contact for the reference",
            "nullable": true,
            "example": "98 Fordham Rd"
          },
          "referenceTown": {
            "type": "string",
            "description": "The town of contact for the reference",
            "nullable": true,
            "example": "Loughborough"
          },
          "referenceCounty": {
            "type": "string",
            "description": "The county of contact for the reference",
            "nullable": true,
            "example": "Leicestershire"
          },
          "referenceCountry": {
            "type": "string",
            "description": "The country of contact for the reference",
            "nullable": true,
            "example": "United Kingdom"
          },
          "referenceDayTelephone": {
            "type": "string",
            "description": "The work telephone number of contact for the reference",
            "nullable": true,
            "example": "123456789"
          },
          "referenceEveningTelephone": {
            "type": "string",
            "description": "The home telephone of contact for the reference",
            "nullable": true,
            "example": "123456789"
          },
          "referenceMobileNumber": {
            "type": "string",
            "description": "The mobile number of contact for the reference",
            "nullable": true,
            "example": "123456789"
          },
          "referenceFaxNumber": {
            "type": "string",
            "description": "The fax number of contact for the reference",
            "nullable": true,
            "example": "123456789"
          },
          "referenceEmailAddress": {
            "type": "string",
            "description": "The email address of contact for the reference\r\n<ul><li>Must be a valid email address</li></ul>",
            "nullable": true,
            "example": "b_simmons@hotmail.com"
          },
          "referenceEmailValidated": {
            "type": "string",
            "description": "Date when the email was validated",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "referenceValidEmailAddress": {
            "type": "boolean",
            "description": "Checkbox to indicate the email was validated\r\n<ul><li>Default is False</li></ul>",
            "nullable": true,
            "example": true
          },
          "referenceEnvelopeSalutation": {
            "type": "string",
            "description": "The envelope salutation of contact for the reference",
            "nullable": true,
            "example": "Mr Simmonds"
          },
          "referenceLetterSalutation": {
            "type": "string",
            "description": "The letter salutation of contact for the reference",
            "nullable": true,
            "example": "Mr Simmonds"
          },
          "refereeNotes": {
            "type": "string",
            "description": "Any notes regarding the referee",
            "nullable": true,
            "example": "Referee details where complimentary"
          },
          "interviewDate": {
            "type": "string",
            "description": "The date of the Interview",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "interviewStartTime": {
            "type": "string",
            "description": "The start time of the interview",
            "nullable": true,
            "example": "09:00"
          },
          "interviewEndTime": {
            "type": "string",
            "description": "The end time of the interview",
            "nullable": true,
            "example": "10:00"
          },
          "interviewNotes": {
            "type": "string",
            "description": "Any notes regarding the interview",
            "nullable": true,
            "example": "Interview went well"
          },
          "interviewLocationSerialNumber": {
            "type": "string",
            "description": "This is the serial number of the contact whose address is the location of the interview\r\n<ul><li>This value must exist as an existing contact</li></ul>",
            "nullable": true,
            "example": "200456789"
          },
          "interviewLocation": {
            "type": "string",
            "description": "The name of the interview location",
            "nullable": true,
            "example": "Shop Floor"
          },
          "interviewAddress": {
            "type": "string",
            "description": "The address of the interview location",
            "nullable": true,
            "example": "101 Fordham Rd"
          },
          "interviewTown": {
            "type": "string",
            "description": "The town of the interview location",
            "nullable": true,
            "example": "Loughborough"
          },
          "interviewCounty": {
            "type": "string",
            "description": "The county of the interview location",
            "nullable": true,
            "example": "Leicestershire"
          },
          "interviewCountry": {
            "type": "string",
            "description": "The country of the interview location",
            "nullable": true,
            "example": "United Kingdom"
          },
          "interviewPostcode": {
            "type": "string",
            "description": "The postcode of the interview location",
            "nullable": true,
            "example": "NN5 4DD"
          },
          "interviewLocationNotes": {
            "type": "string",
            "description": "Notes related to the interview location",
            "nullable": true,
            "example": "Interview to be carried out during  opening hours"
          },
          "interviewHomeBased": {
            "type": "boolean",
            "description": "Is the interview home based\r\n<ul><li>Default is False</li></ul>",
            "nullable": true,
            "example": false
          },
          "docsReference": {
            "type": "string",
            "description": "The reference of the documentation / id",
            "nullable": true,
            "example": "JKSN10001"
          },
          "documentNotes": {
            "type": "string",
            "description": "Notes pertinent to the documentation / id",
            "nullable": true,
            "example": "Document notes attached"
          },
          "documentIssueNumber": {
            "type": "string",
            "description": "The issue number of the documentation / id",
            "nullable": true,
            "example": "0001"
          },
          "documentIssuedBy": {
            "type": "string",
            "description": "The name of the organisation who issued the documentation / id",
            "nullable": true,
            "example": "API\t"
          },
          "documentIssuedDate": {
            "type": "string",
            "description": "The Date that the documentation / id was issued",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "originalDocsRequired": {
            "type": "boolean",
            "description": "Indicates whether the original documentation / id is required instead of just a copy\r\n<ul><li>Default is False</li></ul>",
            "nullable": true,
            "example": true
          },
          "originalDocsReceived": {
            "type": "string",
            "description": "The Date the original documentation / id was received",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "originalDocsReturned": {
            "type": "string",
            "description": "The Date the original documentation / id was returned to the contact",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "checkStage": {
            "type": "string",
            "description": "The stage that the check is at\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Has to be one of 'Awaiting Form', 'In Checking', 'Sent To Agency', 'Approved', 'Arranging', 'Confirmed', 'Completed', 'Not Yet Requested', 'Requested', 'Recieved'</li></ul><ul><li>When CheckCategory is one of 'Reference', 'Identification', 'Documentation' this has to be one of 'Not Yet Requested', 'Requested', 'Received', 'Approved'</li></ul><ul><li>When CheckCategory is 'Interview' this has to be one of the following stages Arranging, Confirmed, Completed, Approved</li></ul><ul><li>When CheckCategory is 'Disclosure' this has to be one of the following stages Awaiting Form, In Checking, Sent To Agency, Approved</li></ul>",
            "nullable": true,
            "example": "Awaiting Form"
          },
          "approved": {
            "type": "string",
            "description": "The date the personnel check was approved",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "approvedBy": {
            "type": "string",
            "description": "The user name of the individual who approved the check\r\n<ul><li>Validates dependent on CheckCategory</li></ul>",
            "nullable": true,
            "example": "API"
          },
          "declined": {
            "type": "string",
            "description": "The date the personnel check was declined",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "declinedBy": {
            "type": "string",
            "description": "The user name of the individual who declined the check",
            "nullable": true,
            "example": "API"
          },
          "cancelled": {
            "type": "string",
            "description": "The date the personnel check was cancelled",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "cancelledBy": {
            "type": "string",
            "description": "The username of the individual who cancelled the check",
            "nullable": true,
            "example": "API"
          },
          "status": {
            "type": "string",
            "description": "The status of the check",
            "nullable": true,
            "example": "Cancelled"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the employment to get"
      },
      "VolunteerCheckPostRequest": {
        "type": "object",
        "properties": {
          "checkId": {
            "maxLength": 100,
            "type": "string",
            "description": "The unique ID for the record\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Must not be duplicated in the import data</li></ul><ul><li>Must not already exist</li></ul><ul><li>Default is Sequence: VolCheckID</li></ul>",
            "nullable": true,
            "example": "CHK00001"
          },
          "checkType": {
            "maxLength": 100,
            "type": "string",
            "description": "The type of check (e.g. CRB)\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Must exist in the 'PersonnelCheckType' lookup</li></ul>",
            "nullable": true,
            "example": "DBS"
          },
          "serialNumber": {
            "maxLength": 100,
            "type": "string",
            "description": "The Serial Number of the volunteer\r\n<ul><li>This value cannot be empty</li></ul><ul><li>This value must exist as an existing contact</li></ul>",
            "nullable": true,
            "example": "100456789"
          },
          "formSentToApplicant": {
            "type": "string",
            "description": "The date when the application form was sent to the volunteer",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "completeFormReceived": {
            "type": "string",
            "description": "The date when the completed form was received from the contact",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "formSentToAgency": {
            "type": "string",
            "description": "The date when the form was sent to the agency to perform the check",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "formReturnedByAgency": {
            "type": "string",
            "description": "The date when the agency returned the form that was submitted",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "disclosureReference": {
            "maxLength": 60,
            "type": "string",
            "description": "The reference provided by the agency\r\n<ul><li>Validates dependent on CheckCategory</li></ul>",
            "nullable": true,
            "example": "\t123456789"
          },
          "dateOfDeclaration": {
            "type": "string",
            "description": "The date when self application was declared",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "copyOfExistingDocumentationReceived": {
            "type": "boolean",
            "description": "A value of true indicates that the applicant already has a CRB from another company or charity\r\n<ul><li>Default is False</li></ul>",
            "nullable": true,
            "example": true
          },
          "issuingBody": {
            "maxLength": 200,
            "type": "string",
            "description": "The name of the issuing body for the clearance\r\n<ul><li>Validates dependent on CheckCategory</li></ul>",
            "nullable": true,
            "example": "Loughborough Council"
          },
          "agencyNote": {
            "maxLength": 4000,
            "type": "string",
            "description": "Notes provided from an agency",
            "nullable": true,
            "example": "DBS check was completed"
          },
          "validFrom": {
            "type": "string",
            "description": "The date from which the check is valid",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "validTo": {
            "type": "string",
            "description": "The date which the check is valid unitl",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "notes": {
            "maxLength": 4000,
            "type": "string",
            "description": "Informal notes recorded against the check record",
            "nullable": true,
            "example": "The check was carried out"
          },
          "created": {
            "type": "string",
            "description": "The date the record was created",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "createdBy": {
            "maxLength": 100,
            "type": "string",
            "description": "The user who created the record\r\n<ul><li>Default is API</li></ul>",
            "nullable": true,
            "example": "API"
          },
          "modified": {
            "type": "string",
            "description": "The date the record was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "maxLength": 100,
            "type": "string",
            "description": "The user who last modified the record\r\n<ul><li>Default is API</li></ul>",
            "nullable": true,
            "example": "API"
          },
          "destroyDisclosureBy": {
            "type": "string",
            "description": "The date the disclosures should be destroyed by",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "isaNumber": {
            "maxLength": 100,
            "type": "string",
            "description": "Independent Safeguarding authority number",
            "nullable": true,
            "example": "1234"
          },
          "isaStatusChanged": {
            "type": "string",
            "description": "Independent Safeguarding Authority status changed",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "isaNotes": {
            "type": "string",
            "description": "Independent Safeguarding Authority Notes",
            "nullable": true,
            "example": "ISA number given"
          },
          "disclosureLevel": {
            "maxLength": 100,
            "type": "string",
            "description": "The level of disclosure required (e.g. Standard, Enhanced)\r\n<ul><li>Must exist in the 'DisclosureType' lookup</li></ul>",
            "nullable": true,
            "example": "Standard"
          },
          "paidOrVolunteer": {
            "maxLength": 100,
            "type": "string",
            "description": "Whether the contact is paid or a volunteer\r\n<ul><li>Must exist in the 'PaidOrVolunteer' lookup</li></ul>",
            "nullable": true,
            "example": "Volunteer"
          },
          "checkCategory": {
            "maxLength": 100,
            "type": "string",
            "description": "The category for the check\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Must exist in the 'PersonnelCheckCategory' lookup</li></ul>",
            "nullable": true,
            "example": "Disclosure"
          },
          "refereeSerialNumber": {
            "maxLength": 100,
            "type": "string",
            "description": "The serialnumber for the reference\r\n<ul><li>This value must exist as an existing contact</li></ul>",
            "nullable": true,
            "example": "123456789"
          },
          "referenceContactType": {
            "maxLength": 100,
            "type": "string",
            "description": "The type of contact for the reference\r\n<ul><li>Must exist in the 'Contact Type' lookup</li></ul><ul><li> Cannot be 'Household'</li></ul>",
            "nullable": true,
            "example": "Individual"
          },
          "referenceTitle": {
            "maxLength": 60,
            "type": "string",
            "description": "The title of contact for the reference",
            "nullable": true,
            "example": "Mr"
          },
          "referenceFirstName": {
            "maxLength": 100,
            "type": "string",
            "description": "The first name of contact for the reference",
            "nullable": true,
            "example": "Ben"
          },
          "referenceOtherInitial": {
            "maxLength": 20,
            "type": "string",
            "description": "The other initial of contact for the reference",
            "nullable": true,
            "example": "T"
          },
          "referenceKeyname": {
            "maxLength": 200,
            "type": "string",
            "description": "The key name of contact for the reference",
            "nullable": true,
            "example": "Simmons"
          },
          "referenceRelationshipToApplicant": {
            "maxLength": 100,
            "type": "string",
            "description": "The relationship of contact for the reference",
            "nullable": true,
            "example": "Parent"
          },
          "referenceAddressType": {
            "maxLength": 100,
            "type": "string",
            "description": "The address type of contact for the reference",
            "nullable": true,
            "example": "Home"
          },
          "referencePostcode": {
            "maxLength": 20,
            "type": "string",
            "description": "The postcode of contact for the reference",
            "nullable": true,
            "example": "NN5 4DD"
          },
          "referenceAddress": {
            "maxLength": 510,
            "type": "string",
            "description": "The address of contact for the reference",
            "nullable": true,
            "example": "98 Fordham Rd"
          },
          "referenceTown": {
            "maxLength": 200,
            "type": "string",
            "description": "The town of contact for the reference",
            "nullable": true,
            "example": "Loughborough"
          },
          "referenceCounty": {
            "maxLength": 200,
            "type": "string",
            "description": "The county of contact for the reference",
            "nullable": true,
            "example": "Leicestershire"
          },
          "referenceCountry": {
            "maxLength": 100,
            "type": "string",
            "description": "The country of contact for the reference",
            "nullable": true,
            "example": "United Kingdom"
          },
          "referenceDayTelephone": {
            "maxLength": 60,
            "type": "string",
            "description": "The work telephone number of contact for the reference",
            "nullable": true,
            "example": "123456789"
          },
          "referenceEveningTelephone": {
            "maxLength": 60,
            "type": "string",
            "description": "The home telephone of contact for the reference",
            "nullable": true,
            "example": "123456789"
          },
          "referenceMobileNumber": {
            "maxLength": 60,
            "type": "string",
            "description": "The mobile number of contact for the reference",
            "nullable": true,
            "example": "123456789"
          },
          "referenceFaxNumber": {
            "maxLength": 60,
            "type": "string",
            "description": "The fax number of contact for the reference",
            "nullable": true,
            "example": "123456789"
          },
          "referenceEmailAddress": {
            "maxLength": 255,
            "type": "string",
            "description": "The email address of contact for the reference\r\n<ul><li>Must be a valid email address</li></ul>",
            "nullable": true,
            "example": "b_simmons@hotmail.com"
          },
          "referenceEmailValidated": {
            "type": "string",
            "description": "Date when the email was validated",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "referenceValidEmailAddress": {
            "type": "boolean",
            "description": "Checkbox to indicate the email was validated\r\n<ul><li>Default is False</li></ul>",
            "nullable": true,
            "example": true
          },
          "referenceEnvelopeSalutation": {
            "maxLength": 600,
            "type": "string",
            "description": "The envelope salutation of contact for the reference",
            "nullable": true,
            "example": "Mr Simmonds"
          },
          "referenceLetterSalutation": {
            "maxLength": 600,
            "type": "string",
            "description": "The letter salutation of contact for the reference",
            "nullable": true,
            "example": "Mr Simmonds"
          },
          "refereeNotes": {
            "maxLength": 8000,
            "type": "string",
            "description": "Any notes regarding the referee",
            "nullable": true,
            "example": "Referee details where complimentary"
          },
          "interviewDate": {
            "type": "string",
            "description": "The date of the Interview",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "interviewStartTime": {
            "maxLength": 100,
            "type": "string",
            "description": "The start time of the interview",
            "nullable": true,
            "example": "09:00"
          },
          "interviewEndTime": {
            "maxLength": 100,
            "type": "string",
            "description": "The end time of the interview",
            "nullable": true,
            "example": "10:00"
          },
          "interviewNotes": {
            "maxLength": 4000,
            "type": "string",
            "description": "Any notes regarding the interview",
            "nullable": true,
            "example": "Interview went well"
          },
          "interviewLocationSerialNumber": {
            "maxLength": 100,
            "type": "string",
            "description": "This is the serial number of the contact whose address is the location of the interview\r\n<ul><li>This value must exist as an existing contact</li></ul>",
            "nullable": true,
            "example": "200456789"
          },
          "interviewLocation": {
            "maxLength": 200,
            "type": "string",
            "description": "The name of the interview location",
            "nullable": true,
            "example": "Shop Floor"
          },
          "interviewAddress": {
            "maxLength": 510,
            "type": "string",
            "description": "The address of the interview location",
            "nullable": true,
            "example": "101 Fordham Rd"
          },
          "interviewTown": {
            "maxLength": 200,
            "type": "string",
            "description": "The town of the interview location",
            "nullable": true,
            "example": "Loughborough"
          },
          "interviewCounty": {
            "maxLength": 200,
            "type": "string",
            "description": "The county of the interview location",
            "nullable": true,
            "example": "Leicestershire"
          },
          "interviewCountry": {
            "maxLength": 100,
            "type": "string",
            "description": "The country of the interview location",
            "nullable": true,
            "example": "United Kingdom"
          },
          "interviewPostcode": {
            "maxLength": 20,
            "type": "string",
            "description": "The postcode of the interview location",
            "nullable": true,
            "example": "NN5 4DD"
          },
          "interviewLocationNotes": {
            "maxLength": 1000,
            "type": "string",
            "description": "Notes related to the interview location",
            "nullable": true,
            "example": "Interview to be carried out during  opening hours"
          },
          "interviewHomeBased": {
            "type": "boolean",
            "description": "Is the interview home based\r\n<ul><li>Default is False</li></ul>",
            "nullable": true,
            "example": false
          },
          "docsReference": {
            "maxLength": 100,
            "type": "string",
            "description": "The reference of the documentation / id",
            "nullable": true,
            "example": "JKSN10001"
          },
          "documentNotes": {
            "maxLength": 4000,
            "type": "string",
            "description": "Notes pertinent to the documentation / id",
            "nullable": true,
            "example": "Document notes attached"
          },
          "documentIssueNumber": {
            "maxLength": 100,
            "type": "string",
            "description": "The issue number of the documentation / id",
            "nullable": true,
            "example": "0001"
          },
          "documentIssuedBy": {
            "maxLength": 200,
            "type": "string",
            "description": "The name of the organisation who issued the documentation / id",
            "nullable": true,
            "example": "API\t"
          },
          "documentIssuedDate": {
            "type": "string",
            "description": "The Date that the documentation / id was issued",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "originalDocsRequired": {
            "type": "boolean",
            "description": "Indicates whether the original documentation / id is required instead of just a copy\r\n<ul><li>Default is False</li></ul>",
            "nullable": true,
            "example": true
          },
          "originalDocsReceived": {
            "type": "string",
            "description": "The Date the original documentation / id was received",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "originalDocsReturned": {
            "type": "string",
            "description": "The Date the original documentation / id was returned to the contact",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "checkStage": {
            "maxLength": 100,
            "type": "string",
            "description": "The stage that the check is at\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Has to be one of 'Awaiting Form', 'In Checking', 'Sent To Agency', 'Approved', 'Arranging', 'Confirmed', 'Completed', 'Not Yet Requested', 'Requested', 'Recieved'</li></ul><ul><li>When CheckCategory is one of 'Reference', 'Identification', 'Documentation' this has to be one of 'Not Yet Requested', 'Requested', 'Received', 'Approved'</li></ul><ul><li>When CheckCategory is 'Interview' this has to be one of the following stages Arranging, Confirmed, Completed, Approved</li></ul><ul><li>When CheckCategory is 'Disclosure' this has to be one of the following stages Awaiting Form, In Checking, Sent To Agency, Approved</li></ul>",
            "nullable": true,
            "example": "Awaiting Form"
          },
          "approved": {
            "type": "string",
            "description": "The date the personnel check was approved",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "approvedBy": {
            "maxLength": 100,
            "type": "string",
            "description": "The user name of the individual who approved the check\r\n<ul><li>Validates dependent on CheckCategory</li></ul>",
            "nullable": true,
            "example": "API"
          },
          "declined": {
            "type": "string",
            "description": "The date the personnel check was declined",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "declinedBy": {
            "maxLength": 100,
            "type": "string",
            "description": "The user name of the individual who declined the check",
            "nullable": true,
            "example": "API"
          },
          "cancelled": {
            "type": "string",
            "description": "The date the personnel check was cancelled",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "cancelledBy": {
            "maxLength": 100,
            "type": "string",
            "description": "The username of the individual who cancelled the check",
            "nullable": true,
            "example": "API"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the volunteer check to post from the web request"
      },
      "VolunteerCheckPutBulkRequest": {
        "type": "object",
        "properties": {
          "checkId": {
            "type": "string",
            "description": "The unique ID for the record",
            "nullable": true,
            "example": "CHK00001"
          },
          "checkType": {
            "type": "string",
            "description": "The type of check (e.g. CRB)\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Must exist in the 'PersonnelCheckType' lookup</li></ul>",
            "nullable": true,
            "example": "DBS"
          },
          "formSentToApplicant": {
            "type": "string",
            "description": "The date when the application form was sent to the volunteer",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "completeFormReceived": {
            "type": "string",
            "description": "The date when the completed form was received from the contact",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "formSentToAgency": {
            "type": "string",
            "description": "The date when the form was sent to the agency to perform the check",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "formReturnedByAgency": {
            "type": "string",
            "description": "The date when the agency returned the form that was submitted",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "disclosureReference": {
            "type": "string",
            "description": "The reference provided by the agency\r\n<ul><li>Validates dependent on CheckCategory</li></ul>",
            "nullable": true,
            "example": "\t123456789"
          },
          "dateOfDeclaration": {
            "type": "string",
            "description": "The date when self application was declared",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "copyOfExistingDocumentationReceived": {
            "type": "boolean",
            "description": "A value of true indicates that the applicant already has a CRB from another company or charity\r\n<ul><li>Default is False</li></ul>",
            "nullable": true,
            "example": true
          },
          "issuingBody": {
            "type": "string",
            "description": "The name of the issuing body for the clearance\r\n<ul><li>Validates dependent on CheckCategory</li></ul>",
            "nullable": true,
            "example": "Loughborough Council"
          },
          "agencyNote": {
            "type": "string",
            "description": "Notes provided from an agency",
            "nullable": true,
            "example": "DBS check was completed"
          },
          "validFrom": {
            "type": "string",
            "description": "The date from which the check is valid",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "validTo": {
            "type": "string",
            "description": "The date which the check is valid unitl",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "notes": {
            "type": "string",
            "description": "Informal notes recorded against the check record",
            "nullable": true,
            "example": "The check was carried out"
          },
          "modified": {
            "type": "string",
            "description": "The date the record was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "type": "string",
            "description": "The user who last modified the record\r\n<ul><li>Default is API</li></ul>",
            "nullable": true,
            "example": "API"
          },
          "destroyDisclosureBy": {
            "type": "string",
            "description": "The date the disclosures should be destroyed by",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "isaNumber": {
            "type": "string",
            "description": "Independent Safeguarding authority number",
            "nullable": true,
            "example": "1234"
          },
          "isaStatusChanged": {
            "type": "string",
            "description": "Independent Safeguarding Authority status changed",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "isaNotes": {
            "type": "string",
            "description": "Independent Safeguarding Authority Notes",
            "nullable": true,
            "example": "ISA number given"
          },
          "disclosureLevel": {
            "type": "string",
            "description": "The level of disclosure required (e.g. Standard, Enhanced)\r\n<ul><li>Must exist in the 'DisclosureType' lookup</li></ul>",
            "nullable": true,
            "example": "Standard"
          },
          "paidOrVolunteer": {
            "type": "string",
            "description": "Whether the contact is paid or a volunteer\r\n<ul><li>Must exist in the 'PaidOrVolunteer' lookup</li></ul>",
            "nullable": true,
            "example": "Volunteer"
          },
          "refereeSerialNumber": {
            "type": "string",
            "description": "The serialnumber for the reference\r\n<ul><li>This value must exist as an existing contact</li></ul>",
            "nullable": true,
            "example": "123456789"
          },
          "referenceContactType": {
            "type": "string",
            "description": "The type of contact for the reference\r\n<ul><li>Must exist in the 'Contact Type' lookup</li></ul><ul><li> Cannot be 'Household'</li></ul>",
            "nullable": true,
            "example": "Individual"
          },
          "referenceTitle": {
            "type": "string",
            "description": "The title of contact for the reference",
            "nullable": true,
            "example": "Mr"
          },
          "referenceFirstName": {
            "type": "string",
            "description": "The first name of contact for the reference",
            "nullable": true,
            "example": "Ben"
          },
          "referenceOtherInitial": {
            "type": "string",
            "description": "The other initial of contact for the reference",
            "nullable": true,
            "example": "T"
          },
          "referenceKeyname": {
            "type": "string",
            "description": "The key name of contact for the reference",
            "nullable": true,
            "example": "Simmons"
          },
          "referenceRelationshipToApplicant": {
            "type": "string",
            "description": "The relationship of contact for the reference",
            "nullable": true,
            "example": "Parent"
          },
          "referenceAddressType": {
            "type": "string",
            "description": "The address type of contact for the reference",
            "nullable": true,
            "example": "Home"
          },
          "referencePostcode": {
            "type": "string",
            "description": "The postcode of contact for the reference",
            "nullable": true,
            "example": "NN5 4DD"
          },
          "referenceAddress": {
            "type": "string",
            "description": "The address of contact for the reference",
            "nullable": true,
            "example": "98 Fordham Rd"
          },
          "referenceTown": {
            "type": "string",
            "description": "The town of contact for the reference",
            "nullable": true,
            "example": "Loughborough"
          },
          "referenceCounty": {
            "type": "string",
            "description": "The county of contact for the reference",
            "nullable": true,
            "example": "Leicestershire"
          },
          "referenceCountry": {
            "type": "string",
            "description": "The country of contact for the reference",
            "nullable": true,
            "example": "United Kingdom"
          },
          "referenceDayTelephone": {
            "type": "string",
            "description": "The work telephone number of contact for the reference",
            "nullable": true,
            "example": "123456789"
          },
          "referenceEveningTelephone": {
            "type": "string",
            "description": "The home telephone of contact for the reference",
            "nullable": true,
            "example": "123456789"
          },
          "referenceMobileNumber": {
            "type": "string",
            "description": "The mobile number of contact for the reference",
            "nullable": true,
            "example": "123456789"
          },
          "referenceFaxNumber": {
            "type": "string",
            "description": "The fax number of contact for the reference",
            "nullable": true,
            "example": "123456789"
          },
          "referenceEmailAddress": {
            "type": "string",
            "description": "The email address of contact for the reference\r\n<ul><li>Must be a valid email address</li></ul>",
            "nullable": true,
            "example": "b_simmons@hotmail.com"
          },
          "referenceEmailValidated": {
            "type": "string",
            "description": "Date when the email was validated",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "referenceValidEmailAddress": {
            "type": "boolean",
            "description": "Checkbox to indicate the email was validated\r\n<ul><li>Default is False</li></ul>",
            "nullable": true,
            "example": true
          },
          "referenceEnvelopeSalutation": {
            "type": "string",
            "description": "The envelope salutation of contact for the reference",
            "nullable": true,
            "example": "Mr Simmonds"
          },
          "referenceLetterSalutation": {
            "type": "string",
            "description": "The letter salutation of contact for the reference",
            "nullable": true,
            "example": "Mr Simmonds"
          },
          "refereeNotes": {
            "type": "string",
            "description": "Any notes regarding the referee",
            "nullable": true,
            "example": "Referee details where complimentary"
          },
          "interviewDate": {
            "type": "string",
            "description": "The date of the Interview",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "interviewStartTime": {
            "type": "string",
            "description": "The start time of the interview",
            "nullable": true,
            "example": "09:00"
          },
          "interviewEndTime": {
            "type": "string",
            "description": "The end time of the interview",
            "nullable": true,
            "example": "10:00"
          },
          "interviewNotes": {
            "type": "string",
            "description": "Any notes regarding the interview",
            "nullable": true,
            "example": "Interview went well"
          },
          "interviewLocationSerialNumber": {
            "type": "string",
            "description": "This is the serial number of the contact whose address is the location of the interview\r\n<ul><li>This value must exist as an existing contact</li></ul>",
            "nullable": true,
            "example": "200456789"
          },
          "interviewLocation": {
            "type": "string",
            "description": "The name of the interview location",
            "nullable": true,
            "example": "Shop Floor"
          },
          "interviewAddress": {
            "type": "string",
            "description": "The address of the interview location",
            "nullable": true,
            "example": "101 Fordham Rd"
          },
          "interviewTown": {
            "type": "string",
            "description": "The town of the interview location",
            "nullable": true,
            "example": "Loughborough"
          },
          "interviewCounty": {
            "type": "string",
            "description": "The county of the interview location",
            "nullable": true,
            "example": "Leicestershire"
          },
          "interviewCountry": {
            "type": "string",
            "description": "The country of the interview location",
            "nullable": true,
            "example": "United Kingdom"
          },
          "interviewPostcode": {
            "type": "string",
            "description": "The postcode of the interview location",
            "nullable": true,
            "example": "NN5 4DD"
          },
          "interviewLocationNotes": {
            "type": "string",
            "description": "Notes related to the interview location",
            "nullable": true,
            "example": "Interview to be carried out during  opening hours"
          },
          "interviewHomeBased": {
            "type": "boolean",
            "description": "Is the interview home based\r\n<ul><li>Default is False</li></ul>",
            "nullable": true,
            "example": false
          },
          "docsReference": {
            "type": "string",
            "description": "The reference of the documentation / id",
            "nullable": true,
            "example": "JKSN10001"
          },
          "documentNotes": {
            "type": "string",
            "description": "Notes pertinent to the documentation / id",
            "nullable": true,
            "example": "Document notes attached"
          },
          "documentIssueNumber": {
            "type": "string",
            "description": "The issue number of the documentation / id",
            "nullable": true,
            "example": "0001"
          },
          "documentIssuedBy": {
            "type": "string",
            "description": "The name of the organisation who issued the documentation / id",
            "nullable": true,
            "example": "API\t"
          },
          "documentIssuedDate": {
            "type": "string",
            "description": "The Date that the documentation / id was issued",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "originalDocsRequired": {
            "type": "boolean",
            "description": "Indicates whether the original documentation / id is required instead of just a copy\r\n<ul><li>Default is False</li></ul>",
            "nullable": true,
            "example": true
          },
          "originalDocsReceived": {
            "type": "string",
            "description": "The Date the original documentation / id was received",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "originalDocsReturned": {
            "type": "string",
            "description": "The Date the original documentation / id was returned to the contact",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "checkStage": {
            "type": "string",
            "description": "The stage that the check is at\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Has to be one of 'Awaiting Form', 'In Checking', 'Sent To Agency', 'Approved', 'Arranging', 'Confirmed', 'Completed', 'Not Yet Requested', 'Requested', 'Recieved'</li></ul><ul><li>When CheckCategory is one of 'Reference', 'Identification', 'Documentation' this has to be one of 'Not Yet Requested', 'Requested', 'Received', 'Approved'</li></ul><ul><li>When CheckCategory is 'Interview' this has to be one of the following stages Arranging, Confirmed, Completed, Approved</li></ul><ul><li>When CheckCategory is 'Disclosure' this has to be one of the following stages Awaiting Form, In Checking, Sent To Agency, Approved</li></ul>",
            "nullable": true,
            "example": "Awaiting Form"
          },
          "approved": {
            "type": "string",
            "description": "The date the personnel check was approved",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "approvedBy": {
            "type": "string",
            "description": "The user name of the individual who approved the check\r\n<ul><li>Validates dependent on CheckCategory</li></ul>",
            "nullable": true,
            "example": "API"
          },
          "declined": {
            "type": "string",
            "description": "The date the personnel check was declined",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "declinedBy": {
            "type": "string",
            "description": "The user name of the individual who declined the check",
            "nullable": true,
            "example": "API"
          },
          "cancelled": {
            "type": "string",
            "description": "The date the personnel check was cancelled",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "cancelledBy": {
            "type": "string",
            "description": "The username of the individual who cancelled the check",
            "nullable": true,
            "example": "API"
          }
        },
        "additionalProperties": false
      },
      "VolunteerCheckPutRequest": {
        "type": "object",
        "properties": {
          "checkType": {
            "maxLength": 100,
            "type": "string",
            "description": "The type of check (e.g. CRB)\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Must exist in the 'PersonnelCheckType' lookup</li></ul>",
            "nullable": true,
            "example": "DBS"
          },
          "formSentToApplicant": {
            "type": "string",
            "description": "The date when the application form was sent to the volunteer",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "completeFormReceived": {
            "type": "string",
            "description": "The date when the completed form was received from the contact",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "formSentToAgency": {
            "type": "string",
            "description": "The date when the form was sent to the agency to perform the check",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "formReturnedByAgency": {
            "type": "string",
            "description": "The date when the agency returned the form that was submitted",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "disclosureReference": {
            "maxLength": 60,
            "type": "string",
            "description": "The reference provided by the agency\r\n<ul><li>Validates dependent on CheckCategory</li></ul>",
            "nullable": true,
            "example": "\t123456789"
          },
          "dateOfDeclaration": {
            "type": "string",
            "description": "The date when self application was declared",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "copyOfExistingDocumentationReceived": {
            "type": "boolean",
            "description": "A value of true indicates that the applicant already has a CRB from another company or charity\r\n<ul><li>Default is False</li></ul>",
            "nullable": true,
            "example": true
          },
          "issuingBody": {
            "maxLength": 200,
            "type": "string",
            "description": "The name of the issuing body for the clearance\r\n<ul><li>Validates dependent on CheckCategory</li></ul>",
            "nullable": true,
            "example": "Loughborough Council"
          },
          "agencyNote": {
            "maxLength": 4000,
            "type": "string",
            "description": "Notes provided from an agency",
            "nullable": true,
            "example": "DBS check was completed"
          },
          "validFrom": {
            "type": "string",
            "description": "The date from which the check is valid",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "validTo": {
            "type": "string",
            "description": "The date which the check is valid unitl",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "notes": {
            "maxLength": 4000,
            "type": "string",
            "description": "Informal notes recorded against the check record",
            "nullable": true,
            "example": "The check was carried out"
          },
          "modified": {
            "type": "string",
            "description": "The date the record was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "modifiedBy": {
            "maxLength": 100,
            "type": "string",
            "description": "The user who last modified the record\r\n<ul><li>Default is API</li></ul>",
            "nullable": true,
            "example": "API"
          },
          "destroyDisclosureBy": {
            "type": "string",
            "description": "The date the disclosures should be destroyed by",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "isaNumber": {
            "maxLength": 100,
            "type": "string",
            "description": "Independent Safeguarding authority number",
            "nullable": true,
            "example": "1234"
          },
          "isaStatusChanged": {
            "type": "string",
            "description": "Independent Safeguarding Authority status changed",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "isaNotes": {
            "type": "string",
            "description": "Independent Safeguarding Authority Notes",
            "nullable": true,
            "example": "ISA number given"
          },
          "disclosureLevel": {
            "maxLength": 100,
            "type": "string",
            "description": "The level of disclosure required (e.g. Standard, Enhanced)\r\n<ul><li>Must exist in the 'DisclosureType' lookup</li></ul>",
            "nullable": true,
            "example": "Standard"
          },
          "paidOrVolunteer": {
            "maxLength": 100,
            "type": "string",
            "description": "Whether the contact is paid or a volunteer\r\n<ul><li>Must exist in the 'PaidOrVolunteer' lookup</li></ul>",
            "nullable": true,
            "example": "Volunteer"
          },
          "refereeSerialNumber": {
            "maxLength": 100,
            "type": "string",
            "description": "The serialnumber for the reference\r\n<ul><li>This value must exist as an existing contact</li></ul>",
            "nullable": true,
            "example": "123456789"
          },
          "referenceContactType": {
            "maxLength": 100,
            "type": "string",
            "description": "The type of contact for the reference\r\n<ul><li>Must exist in the 'Contact Type' lookup</li></ul><ul><li> Cannot be 'Household'</li></ul>",
            "nullable": true,
            "example": "Individual"
          },
          "referenceTitle": {
            "maxLength": 60,
            "type": "string",
            "description": "The title of contact for the reference",
            "nullable": true,
            "example": "Mr"
          },
          "referenceFirstName": {
            "maxLength": 100,
            "type": "string",
            "description": "The first name of contact for the reference",
            "nullable": true,
            "example": "Ben"
          },
          "referenceOtherInitial": {
            "maxLength": 20,
            "type": "string",
            "description": "The other initial of contact for the reference",
            "nullable": true,
            "example": "T"
          },
          "referenceKeyname": {
            "maxLength": 200,
            "type": "string",
            "description": "The key name of contact for the reference",
            "nullable": true,
            "example": "Simmons"
          },
          "referenceRelationshipToApplicant": {
            "maxLength": 100,
            "type": "string",
            "description": "The relationship of contact for the reference",
            "nullable": true,
            "example": "Parent"
          },
          "referenceAddressType": {
            "maxLength": 100,
            "type": "string",
            "description": "The address type of contact for the reference",
            "nullable": true,
            "example": "Home"
          },
          "referencePostcode": {
            "maxLength": 20,
            "type": "string",
            "description": "The postcode of contact for the reference",
            "nullable": true,
            "example": "NN5 4DD"
          },
          "referenceAddress": {
            "maxLength": 510,
            "type": "string",
            "description": "The address of contact for the reference",
            "nullable": true,
            "example": "98 Fordham Rd"
          },
          "referenceTown": {
            "maxLength": 200,
            "type": "string",
            "description": "The town of contact for the reference",
            "nullable": true,
            "example": "Loughborough"
          },
          "referenceCounty": {
            "maxLength": 200,
            "type": "string",
            "description": "The county of contact for the reference",
            "nullable": true,
            "example": "Leicestershire"
          },
          "referenceCountry": {
            "maxLength": 100,
            "type": "string",
            "description": "The country of contact for the reference",
            "nullable": true,
            "example": "United Kingdom"
          },
          "referenceDayTelephone": {
            "maxLength": 60,
            "type": "string",
            "description": "The work telephone number of contact for the reference",
            "nullable": true,
            "example": "123456789"
          },
          "referenceEveningTelephone": {
            "maxLength": 60,
            "type": "string",
            "description": "The home telephone of contact for the reference",
            "nullable": true,
            "example": "123456789"
          },
          "referenceMobileNumber": {
            "maxLength": 60,
            "type": "string",
            "description": "The mobile number of contact for the reference",
            "nullable": true,
            "example": "123456789"
          },
          "referenceFaxNumber": {
            "maxLength": 60,
            "type": "string",
            "description": "The fax number of contact for the reference",
            "nullable": true,
            "example": "123456789"
          },
          "referenceEmailAddress": {
            "maxLength": 255,
            "type": "string",
            "description": "The email address of contact for the reference\r\n<ul><li>Must be a valid email address</li></ul>",
            "nullable": true,
            "example": "b_simmons@hotmail.com"
          },
          "referenceEmailValidated": {
            "type": "string",
            "description": "Date when the email was validated",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "referenceValidEmailAddress": {
            "type": "boolean",
            "description": "Checkbox to indicate the email was validated\r\n<ul><li>Default is False</li></ul>",
            "nullable": true,
            "example": true
          },
          "referenceEnvelopeSalutation": {
            "maxLength": 600,
            "type": "string",
            "description": "The envelope salutation of contact for the reference",
            "nullable": true,
            "example": "Mr Simmonds"
          },
          "referenceLetterSalutation": {
            "maxLength": 600,
            "type": "string",
            "description": "The letter salutation of contact for the reference",
            "nullable": true,
            "example": "Mr Simmonds"
          },
          "refereeNotes": {
            "maxLength": 8000,
            "type": "string",
            "description": "Any notes regarding the referee",
            "nullable": true,
            "example": "Referee details where complimentary"
          },
          "interviewDate": {
            "type": "string",
            "description": "The date of the Interview",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "interviewStartTime": {
            "maxLength": 100,
            "type": "string",
            "description": "The start time of the interview",
            "nullable": true,
            "example": "09:00"
          },
          "interviewEndTime": {
            "maxLength": 100,
            "type": "string",
            "description": "The end time of the interview",
            "nullable": true,
            "example": "10:00"
          },
          "interviewNotes": {
            "maxLength": 4000,
            "type": "string",
            "description": "Any notes regarding the interview",
            "nullable": true,
            "example": "Interview went well"
          },
          "interviewLocationSerialNumber": {
            "maxLength": 100,
            "type": "string",
            "description": "This is the serial number of the contact whose address is the location of the interview\r\n<ul><li>This value must exist as an existing contact</li></ul>",
            "nullable": true,
            "example": "200456789"
          },
          "interviewLocation": {
            "maxLength": 200,
            "type": "string",
            "description": "The name of the interview location",
            "nullable": true,
            "example": "Shop Floor"
          },
          "interviewAddress": {
            "maxLength": 510,
            "type": "string",
            "description": "The address of the interview location",
            "nullable": true,
            "example": "101 Fordham Rd"
          },
          "interviewTown": {
            "maxLength": 200,
            "type": "string",
            "description": "The town of the interview location",
            "nullable": true,
            "example": "Loughborough"
          },
          "interviewCounty": {
            "maxLength": 200,
            "type": "string",
            "description": "The county of the interview location",
            "nullable": true,
            "example": "Leicestershire"
          },
          "interviewCountry": {
            "maxLength": 100,
            "type": "string",
            "description": "The country of the interview location",
            "nullable": true,
            "example": "United Kingdom"
          },
          "interviewPostcode": {
            "maxLength": 20,
            "type": "string",
            "description": "The postcode of the interview location",
            "nullable": true,
            "example": "NN5 4DD"
          },
          "interviewLocationNotes": {
            "maxLength": 1000,
            "type": "string",
            "description": "Notes related to the interview location",
            "nullable": true,
            "example": "Interview to be carried out during  opening hours"
          },
          "interviewHomeBased": {
            "type": "boolean",
            "description": "Is the interview home based\r\n<ul><li>Default is False</li></ul>",
            "nullable": true,
            "example": false
          },
          "docsReference": {
            "maxLength": 100,
            "type": "string",
            "description": "The reference of the documentation / id",
            "nullable": true,
            "example": "JKSN10001"
          },
          "documentNotes": {
            "maxLength": 4000,
            "type": "string",
            "description": "Notes pertinent to the documentation / id",
            "nullable": true,
            "example": "Document notes attached"
          },
          "documentIssueNumber": {
            "maxLength": 100,
            "type": "string",
            "description": "The issue number of the documentation / id",
            "nullable": true,
            "example": "0001"
          },
          "documentIssuedBy": {
            "maxLength": 200,
            "type": "string",
            "description": "The name of the organisation who issued the documentation / id",
            "nullable": true,
            "example": "API\t"
          },
          "documentIssuedDate": {
            "type": "string",
            "description": "The Date that the documentation / id was issued",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "originalDocsRequired": {
            "type": "boolean",
            "description": "Indicates whether the original documentation / id is required instead of just a copy\r\n<ul><li>Default is False</li></ul>",
            "nullable": true,
            "example": true
          },
          "originalDocsReceived": {
            "type": "string",
            "description": "The Date the original documentation / id was received",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "originalDocsReturned": {
            "type": "string",
            "description": "The Date the original documentation / id was returned to the contact",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "checkStage": {
            "maxLength": 100,
            "type": "string",
            "description": "The stage that the check is at\r\n<ul><li>This value cannot be empty</li></ul><ul><li>Has to be one of 'Awaiting Form', 'In Checking', 'Sent To Agency', 'Approved', 'Arranging', 'Confirmed', 'Completed', 'Not Yet Requested', 'Requested', 'Recieved'</li></ul><ul><li>When CheckCategory is one of 'Reference', 'Identification', 'Documentation' this has to be one of 'Not Yet Requested', 'Requested', 'Received', 'Approved'</li></ul><ul><li>When CheckCategory is 'Interview' this has to be one of the following stages Arranging, Confirmed, Completed, Approved</li></ul><ul><li>When CheckCategory is 'Disclosure' this has to be one of the following stages Awaiting Form, In Checking, Sent To Agency, Approved</li></ul>",
            "nullable": true,
            "example": "Awaiting Form"
          },
          "approved": {
            "type": "string",
            "description": "The date the personnel check was approved",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "approvedBy": {
            "maxLength": 100,
            "type": "string",
            "description": "The user name of the individual who approved the check\r\n<ul><li>Validates dependent on CheckCategory</li></ul>",
            "nullable": true,
            "example": "API"
          },
          "declined": {
            "type": "string",
            "description": "The date the personnel check was declined",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "declinedBy": {
            "maxLength": 100,
            "type": "string",
            "description": "The user name of the individual who declined the check",
            "nullable": true,
            "example": "API"
          },
          "cancelled": {
            "type": "string",
            "description": "The date the personnel check was cancelled",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-06"
          },
          "cancelledBy": {
            "maxLength": 100,
            "type": "string",
            "description": "The username of the individual who cancelled the check",
            "nullable": true,
            "example": "API"
          }
        },
        "additionalProperties": false,
        "description": "Contains information on the volunteer check record for updates"
      },
      "VolunteerRoleGetResponse": {
        "type": "object",
        "properties": {
          "volunteerRoleId": {
            "type": "string",
            "description": "Id of the volunteer role",
            "nullable": true
          },
          "serialNumber": {
            "type": "string",
            "description": "The id of the contact that has this role",
            "nullable": true,
            "example": "005423"
          },
          "name": {
            "type": "string",
            "description": "Name of the role",
            "nullable": true,
            "example": "Volunteer"
          },
          "isPrimary": {
            "type": "boolean",
            "description": "Flag that shows if the volunteer role is primary",
            "nullable": true,
            "example": "True"
          },
          "type": {
            "type": "string",
            "description": "Type of the volunteer role",
            "nullable": true,
            "example": "volunteer, admin"
          },
          "startDate": {
            "type": "string",
            "description": "Date when the volunteer role starts",
            "format": "date-time",
            "nullable": true,
            "example": "12-02-2024"
          },
          "endDate": {
            "type": "string",
            "description": "Date when the volunteer role ends",
            "format": "date-time",
            "nullable": true,
            "example": "12-03-2025"
          },
          "leavingReason": {
            "type": "string",
            "description": "Leaving reason",
            "nullable": true,
            "example": "Unhappy with the charity"
          },
          "externalRef": {
            "type": "string",
            "description": "External reference of the role in other systems",
            "nullable": true,
            "example": "Assemble_RoleProfile_12345"
          },
          "externalRefType": {
            "type": "string",
            "description": "Type of the External reference",
            "nullable": true,
            "example": "Assemble"
          },
          "team": {
            "type": "string",
            "description": "Team name",
            "nullable": true,
            "example": "Headquarters"
          },
          "teamExternalRef": {
            "type": "string",
            "description": "Id of the team",
            "nullable": true,
            "example": "24243"
          },
          "modified": {
            "type": "string",
            "description": "Date when the role was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "12-12-2022"
          },
          "created": {
            "type": "string",
            "description": "Date when the role was created",
            "format": "date-time",
            "nullable": true,
            "example": "12-12-2022"
          },
          "modifiedBy": {
            "type": "string",
            "description": "Entity that last modified the volunteer role",
            "nullable": true,
            "example": "system"
          },
          "createdBy": {
            "type": "string",
            "description": "Entity that created the volunteer role",
            "nullable": true,
            "example": "Jerremy"
          }
        },
        "additionalProperties": false,
        "description": "Contains data about volunteer role"
      },
      "VolunteerRolePostRequest": {
        "type": "object",
        "properties": {
          "importRowId": {
            "type": "string",
            "description": "ImportRowId is used when importing the volunteer role into the system",
            "nullable": true,
            "example": "1"
          },
          "volunteerRoleId": {
            "type": "string",
            "description": "Id of the volunteer role",
            "nullable": true
          },
          "serialNumber": {
            "type": "string",
            "description": "The id of the contact that has this role",
            "nullable": true,
            "example": "005423"
          },
          "name": {
            "type": "string",
            "description": "Name of the role",
            "nullable": true,
            "example": "Volunteer"
          },
          "isPrimary": {
            "type": "boolean",
            "description": "Flag that shows if the volunteer role is primary",
            "nullable": true,
            "example": "True"
          },
          "type": {
            "type": "string",
            "description": "Type of the volunteer role",
            "nullable": true,
            "example": "volunteer, admin"
          },
          "startDate": {
            "type": "string",
            "description": "Date when the volunteer role starts",
            "format": "date-time",
            "nullable": true,
            "example": "12-02-2024"
          },
          "endDate": {
            "type": "string",
            "description": "Date when the volunteer role ends",
            "format": "date-time",
            "nullable": true,
            "example": "12-03-2025"
          },
          "leavingReason": {
            "type": "string",
            "description": "Leaving reason",
            "nullable": true,
            "example": "Unhappy with the charity"
          },
          "externalRef": {
            "type": "string",
            "description": "External reference of the role in other systems",
            "nullable": true,
            "example": "Assemble_RoleProfile_12345"
          },
          "externalRefType": {
            "type": "string",
            "description": "Type of the External reference",
            "nullable": true,
            "example": "Assemble"
          },
          "team": {
            "type": "string",
            "description": "Team name",
            "nullable": true,
            "example": "Headquarters"
          },
          "teamExternalRef": {
            "type": "string",
            "description": "Id of the team",
            "nullable": true,
            "example": "24243"
          },
          "modified": {
            "type": "string",
            "description": "Date when the role was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "12-12-2022"
          },
          "created": {
            "type": "string",
            "description": "Date when the role was created",
            "format": "date-time",
            "nullable": true,
            "example": "12-12-2022"
          },
          "modifiedBy": {
            "type": "string",
            "description": "Entity that last modified the volunteer role",
            "nullable": true,
            "example": "system"
          },
          "createdBy": {
            "type": "string",
            "description": "Entity that created the volunteer role",
            "nullable": true,
            "example": "Jerremy"
          }
        },
        "additionalProperties": false,
        "description": "Contains information about the volunteer role"
      },
      "VolunteerRolePutRequest": {
        "type": "object",
        "properties": {
          "volunteerRoleId": {
            "type": "string",
            "description": "Id of the volunteer role",
            "nullable": true
          },
          "serialNumber": {
            "type": "string",
            "description": "The id of the contact that has this role",
            "nullable": true,
            "example": "005423"
          },
          "name": {
            "type": "string",
            "description": "Name of the role",
            "nullable": true,
            "example": "Volunteer"
          },
          "isPrimary": {
            "type": "boolean",
            "description": "Flag that shows if the volunteer role is primary",
            "nullable": true,
            "example": "True"
          },
          "type": {
            "type": "string",
            "description": "Type of the volunteer role",
            "nullable": true,
            "example": "volunteer, admin"
          },
          "startDate": {
            "type": "string",
            "description": "Date when the volunteer role starts",
            "format": "date-time",
            "nullable": true,
            "example": "12-02-2024"
          },
          "endDate": {
            "type": "string",
            "description": "Date when the volunteer role ends",
            "format": "date-time",
            "nullable": true,
            "example": "12-03-2025"
          },
          "leavingReason": {
            "type": "string",
            "description": "Leaving reason",
            "nullable": true,
            "example": "Unhappy with the charity"
          },
          "externalRef": {
            "type": "string",
            "description": "External reference of the role in other systems",
            "nullable": true,
            "example": "Assemble_RoleProfile_12345"
          },
          "externalRefType": {
            "type": "string",
            "description": "Type of the External reference",
            "nullable": true,
            "example": "Assemble"
          },
          "team": {
            "type": "string",
            "description": "Team name",
            "nullable": true,
            "example": "Headquarters"
          },
          "teamExternalRef": {
            "type": "string",
            "description": "Id of the team",
            "nullable": true,
            "example": "24243"
          },
          "modified": {
            "type": "string",
            "description": "Date when the role was last modified",
            "format": "date-time",
            "nullable": true,
            "example": "12-12-2022"
          },
          "created": {
            "type": "string",
            "description": "Date when the role was created",
            "format": "date-time",
            "nullable": true,
            "example": "12-12-2022"
          },
          "modifiedBy": {
            "type": "string",
            "description": "Entity that last modified the volunteer role",
            "nullable": true,
            "example": "system"
          },
          "createdBy": {
            "type": "string",
            "description": "Entity that created the volunteer role",
            "nullable": true,
            "example": "Jerremy"
          }
        },
        "additionalProperties": false,
        "description": "Contains information about volunteer put request"
      }
    },
    "securitySchemes": {
      "apiKey": {
        "type": "apiKey",
        "description": "API Key required for all calls",
        "name": "X-API-Key",
        "in": "header"
      },
      "Bearer": {
        "type": "http",
        "description": "The Bearer token in JWT format.Example: '{token}'",
        "scheme": "Bearer",
        "bearerFormat": "JWT"
      }
    }
  },
  "security": [
    {
      "apiKey": [ ],
      "Bearer": [ ]
    }
  ],
  "tags": [
    {
      "name": "Account",
      "description": "Used for Sign In requests"
    },
    {
      "name": "Admin",
      "description": "Used for Admin requests"
    },
    {
      "name": "Import",
      "description": "Used to get information about imports to the API"
    },
    {
      "name": "Log",
      "description": "Used to get errors and logs for an import"
    },
    {
      "name": "Changes",
      "description": "Allows retrieval of changes to a resource"
    },
    {
      "name": "Action",
      "description": "Allows creation and retrieval of actions"
    },
    {
      "name": "Attachment",
      "description": "Allows creation and retrieval of attachments"
    },
    {
      "name": "Communication",
      "description": "Allows creation and retrieval of contact communications"
    },
    {
      "name": "ConsentPurpose",
      "description": "Allows creation and retrieval of mailing purposes"
    },
    {
      "name": "Contact",
      "description": "Allows creation, retrieval and update of contacts"
    },
    {
      "name": "ContactAddress",
      "description": "Allows creation, retrieval and update of contact addresses"
    },
    {
      "name": "ContactConsent",
      "description": "Allows creation, retrieval and update of contact consent"
    },
    {
      "name": "ContactExternalReference",
      "description": "Allows creation, retrieval and update of contact external references"
    },
    {
      "name": "ContactGroup",
      "description": "Allows creation and retrieval of group members, alongside creation of new groups"
    },
    {
      "name": "ContactPicture",
      "description": "Allows creation and retrieval of pictures for existing contacts"
    },
    {
      "name": "ContactPreference",
      "description": "Allows creation, retrieval and update of contact preferences"
    },
    {
      "name": "ContactProfile",
      "description": "Allows creation, retrieval and update of contact profiles"
    },
    {
      "name": "ContactSocialMedia",
      "description": "Allows creation, retrieval and update of contact social media accounts"
    },
    {
      "name": "DestinationCode",
      "description": "Allows creation and retrieval of destination codes"
    },
    {
      "name": "DestinationCodeRelationship",
      "description": "Allows creation and retrieval of destination code relationships"
    },
    {
      "name": "Education",
      "description": "Allows creation, retrieval and update of education records"
    },
    {
      "name": "Employment",
      "description": "Allows creation, retrieval and update of employment records"
    },
    {
      "name": "Entity",
      "description": "Allows retrieval of custom entities"
    },
    {
      "name": "EntityData",
      "description": "Allows creation, changes & retrieval of data from custom entities"
    },
    {
      "name": "EntityField",
      "description": "Allows retrieval of custom entity fields"
    },
    {
      "name": "EntityValidation",
      "description": "Allows retrieval of custom entity validation"
    },
    {
      "name": "Event",
      "description": "Allows the retrieval of events"
    },
    {
      "name": "EventBooking",
      "description": "Allows creation and retrieval of event bookings"
    },
    {
      "name": "GiftAidDeclaration",
      "description": "Allows creation and retrieval of gift aid declarations"
    },
    {
      "name": "Groups",
      "description": "Allows creation and retrieval of groups"
    },
    {
      "name": "Invoice",
      "description": "Allows creation and retrieval of invoices"
    },
    {
      "name": "Legacy",
      "description": "Allows creation, retrieval and update of legacy records"
    },
    {
      "name": "LegacyItem",
      "description": "Allows creation, retrieval and update of legacy item records"
    },
    {
      "name": "LookupValue",
      "description": "Allows creation and retrieval of LookupValues"
    },
    {
      "name": "Membership",
      "description": "Allows creation and retrieval of memberships"
    },
    {
      "name": "MembershipScheme",
      "description": "Allows retrieval of membership schemes"
    },
    {
      "name": "Payments",
      "description": "Allows creation and retrieval of payments, alongside creation of new batches"
    },
    {
      "name": "Pledges",
      "description": "Allows creation and retrieval of pledges"
    },
    {
      "name": "Relationship",
      "description": "Allows creation and retrieval of contact relationships"
    },
    {
      "name": "SalesOrder",
      "description": "Allows creation and retrieval of sale orders"
    },
    {
      "name": "SourceCode",
      "description": "Allows creation and retrieval of source codes"
    },
    {
      "name": "SourceCodeRelationship",
      "description": "Allows creation and retrieval of source code relationships"
    },
    {
      "name": "VolunteerCheck",
      "description": "Allows creation, retrieval and update of Volunteer Checks"
    },
    {
      "name": "VolunteerRole",
      "description": "Allows creation, retrieval, updating, and deleting of Volunteer Roles"
    },
    {
      "name": "UserDefinedField",
      "description": "Allows retrieval user defined fields"
    },
    {
      "name": "UserDefinedView",
      "description": "Allows retrieval of data from bespoke Views"
    }
  ]
}