{
  "openapi": "3.0.4",
  "info": {
    "title": "Delaget Connect API",
    "description": "This API is based on REST principles.\r\n\r\nTo gain access you will need an API Key; please contact Delaget support to have an API key created for you.\r\n\r\nAll requests to the Delaget API must be via HTTPS.\r\n\r\n## Base URL\r\n\r\nhttps://api.delaget.com\r\n\r\n## Common Usage Scenarios\r\n\r\n### Retrieving daily transactional data for an organization\r\n\r\n1. For the organization make a call to `/organizations`.\r\n2. Inspect the response: `organization.locations` for a list of locations.\r\n3. For each location in the list call `/organizations/{organization_code}/locations/{location_id}/retail_transactions?date={date}`\r\n\r\n### Retrieving daily financial data for an organization\r\n\r\n1. For the organization make a call to `/organizations`.\r\n2. Inspect the response: `organization.locations` for a list of locations.\r\n3. For each location in the list call `/organizations/{organization_code}/locations/{location_id}/summary?date={date}`\r\n\r\n### Retrieving daily time punch data for an organization\r\n\r\n1. For the organization make a call to /organizations.\r\n2. Inspect the response: `organization.locations` for a list of locations.\r\n3. For each location in the list call `/organizations/{organization_code}/locations/{location_id}/time_cards?date={date}`\r\n\r\n## Notes\r\n\r\nAll times are in the local timezone of the location, unless otherwise noted.",
    "contact": {
      "name": "Delaget Support",
      "email": "support@delaget.com"
    },
    "version": "v1"
  },
  "paths": {
    "/api/v1/Diagnostics/apprunning": {
      "get": {
        "tags": [
          "Diagnostics"
        ],
        "summary": "Simple ping test; returns a message if the app is running, and probably returns an error if the app is not.",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/Diagnostics/version": {
      "get": {
        "tags": [
          "Diagnostics"
        ],
        "summary": "An endpoint that returns version information.",
        "description": "This is intended for internal use at this time.",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/Organizations": {
      "get": {
        "tags": [
          "Organizations"
        ],
        "summary": "List organizations the caller has access to.",
        "parameters": [
          {
            "name": "Limit",
            "in": "query",
            "description": "The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "After",
            "in": "query",
            "description": "Records after this cursor will be returned.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Response envelope containing an array of organizations.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/response_envelope<organization_locations[],string>"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problem_details"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problem_details"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          },
          "429": {
            "description": "Too many requests in past minute"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "ApiKey": [ ]
          }
        ]
      }
    },
    "/api/v1/Organizations/{organization_code}": {
      "get": {
        "tags": [
          "Organizations"
        ],
        "summary": "Retrieves details about one organization.",
        "parameters": [
          {
            "name": "Limit",
            "in": "query",
            "description": "The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "After",
            "in": "query",
            "description": "Records after this cursor will be returned.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "organization_code",
            "in": "path",
            "description": "The identifier for the organization.",
            "required": true,
            "schema": {
              "maxLength": 10,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/response_envelope<organization_locations>"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problem_details"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problem_details"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          },
          "429": {
            "description": "Too many requests in past minute"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "ApiKey": [ ]
          }
        ]
      }
    },
    "/api/v1/Organizations/{organization_code}/workers": {
      "get": {
        "tags": [
          "Organizations"
        ],
        "summary": "Retrieves details about one organization's workers.",
        "parameters": [
          {
            "name": "Limit",
            "in": "query",
            "description": "The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "After",
            "in": "query",
            "description": "Records after this cursor will be returned.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "organization_code",
            "in": "path",
            "description": "The identifier for the organization.",
            "required": true,
            "schema": {
              "maxLength": 10,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/response_envelope<location[],nullable<int32>>"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problem_details"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problem_details"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          },
          "429": {
            "description": "Too many requests in past minute"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "ApiKey": [ ]
          }
        ]
      }
    },
    "/api/v1/Organizations/{organization_code}/locations/{location_id}/retail_transactions": {
      "get": {
        "tags": [
          "Organizations"
        ],
        "summary": "Retrieves a list of transactions for a business date.",
        "parameters": [
          {
            "name": "Limit",
            "in": "query",
            "description": "The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "After",
            "in": "query",
            "description": "Records after this cursor will be returned.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "date",
            "in": "query",
            "description": "The business date to retrieve transactions for.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "organization_code",
            "in": "path",
            "description": "The identifier for the organization.",
            "required": true,
            "schema": {
              "maxLength": 10,
              "type": "string"
            }
          },
          {
            "name": "location_id",
            "in": "path",
            "description": "The location identifier of the location to retrieve transactions for.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/response_envelope<retail_transaction[],nullable<int32>>"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problem_details"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problem_details"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          },
          "429": {
            "description": "Too many requests in past minute"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "ApiKey": [ ]
          }
        ]
      }
    },
    "/api/v1/Organizations/{organization_code}/locations/{location_id}/summary": {
      "get": {
        "tags": [
          "Organizations"
        ],
        "summary": "Retrieves location summary information for a business date.",
        "parameters": [
          {
            "name": "date",
            "in": "query",
            "description": "The business date to retrieve the summary for.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "organization_code",
            "in": "path",
            "description": "The identifier for the organization.",
            "required": true,
            "schema": {
              "maxLength": 10,
              "type": "string"
            }
          },
          {
            "name": "location_id",
            "in": "path",
            "description": "The location identifier of the location to retrieve the summary for.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/optional_response_envelope<location_summary>"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problem_details"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problem_details"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          },
          "429": {
            "description": "Too many requests in past minute"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "ApiKey": [ ]
          }
        ]
      }
    },
    "/api/v1/Organizations/{organization_code}/locations/{location_id}/time_cards": {
      "get": {
        "tags": [
          "Organizations"
        ],
        "summary": "Retrieves labor data for a business date.",
        "parameters": [
          {
            "name": "Limit",
            "in": "query",
            "description": "The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "After",
            "in": "query",
            "description": "Records after this cursor will be returned.",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "date",
            "in": "query",
            "description": "The business date to retrieve time cards for.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "organization_code",
            "in": "path",
            "description": "The identifier for the organization.",
            "required": true,
            "schema": {
              "maxLength": 10,
              "type": "string"
            }
          },
          {
            "name": "location_id",
            "in": "path",
            "description": "The location identifier of the location to retrieve time cards for.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/response_envelope<time_card[],nullable<int64>>"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problem_details"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problem_details"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          },
          "429": {
            "description": "Too many requests in past minute"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "ApiKey": [ ]
          }
        ]
      }
    },
    "/api/v1/Organizations/{organization_code}/shift_diff": {
      "post": {
        "tags": [
          "Organizations"
        ],
        "summary": "Retrieves applicable pay differentials for locations and shifts.",
        "parameters": [
          {
            "name": "organization_code",
            "in": "path",
            "description": "The identifier for the organization.",
            "required": true,
            "schema": {
              "maxLength": 10,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "An array of shifts to query.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/shift_diff_input_model"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/shift_diff_input_model"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/shift_diff_input_model"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/shift_diff_input_model"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/response_envelope<shift_diff[]>"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problem_details"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problem_details"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          },
          "429": {
            "description": "Too many requests in past minute"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "ApiKey": [ ]
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "account_type": {
        "enum": [
          "None",
          "Allowances",
          "Charity",
          "Deletions",
          "Deposits",
          "Discounts",
          "EmployeeMeals",
          "ExemptSales",
          "GiftCertificateSales",
          "GrossSales",
          "MissingFunds",
          "NetSales",
          "Overrings",
          "PaidIn",
          "PaidOut",
          "PremiumSales",
          "Promos",
          "Refunds",
          "SalesTax",
          "TaxableSales",
          "Vouchers"
        ],
        "type": "string",
        "description": "Available types of financial accounts."
      },
      "address": {
        "type": "object",
        "properties": {
          "street": {
            "type": "string",
            "description": "Number and street.",
            "nullable": true,
            "example": "100 Main St"
          },
          "suite": {
            "type": "string",
            "nullable": true,
            "example": "400 East"
          },
          "city": {
            "type": "string",
            "nullable": true,
            "example": "Anytown"
          },
          "county": {
            "type": "string",
            "nullable": true,
            "example": "YourCounty"
          },
          "state": {
            "type": "string",
            "nullable": true,
            "example": "MN"
          },
          "zip": {
            "type": "string",
            "nullable": true,
            "example": "01234"
          },
          "zip_plus_four": {
            "type": "string",
            "nullable": true,
            "example": "5678"
          }
        },
        "additionalProperties": false,
        "description": "A physical (e.g. mailing or billing) address."
      },
      "channel": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name describing the channel.",
            "nullable": true,
            "example": "Delivery Service Front Counter"
          },
          "description": {
            "type": "string",
            "description": "Detailed description of the channel.",
            "nullable": true,
            "example": "Delivery Service Picked up from Front Counter"
          },
          "group": {
            "type": "string",
            "description": "Category of the channel.",
            "nullable": true,
            "example": "DeliveryService"
          }
        },
        "additionalProperties": false,
        "description": "A channel through which transactions are received or fulfilled."
      },
      "client_worker_identification": {
        "type": "object",
        "properties": {
          "company_code": {
            "type": "string",
            "description": "The company the identifier is associated with.",
            "nullable": true,
            "example": "GR8"
          },
          "identifier": {
            "type": "string",
            "description": "The client's identifier for the worker.",
            "nullable": true,
            "example": "TK-1138"
          }
        },
        "additionalProperties": false,
        "description": "Identifies a worker by the client's identifier."
      },
      "cursor": {
        "required": [
          "after"
        ],
        "type": "object",
        "properties": {
          "after": {
            "type": "string",
            "description": "Points to the end of the page that has been returned.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Holds the current result set's location when data is paged."
      },
      "gender": {
        "enum": [
          "Other",
          "Male",
          "Female"
        ],
        "type": "string"
      },
      "job_code": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "nullable": true,
            "example": "CSH"
          },
          "description": {
            "type": "string",
            "nullable": true,
            "example": "Cashier"
          }
        },
        "additionalProperties": false,
        "description": "Describes a role."
      },
      "ledger_account_summary": {
        "type": "object",
        "properties": {
          "account_number": {
            "type": "string",
            "description": "Account identifier. In some scenarios, may be alphanumeric.",
            "nullable": true,
            "example": "NET"
          },
          "account_name": {
            "type": "string",
            "nullable": true,
            "example": "Net Sales Total"
          },
          "amount": {
            "type": "number",
            "format": "double",
            "example": 678.90
          },
          "types": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ledger_account_type"
            },
            "description": "Lists amounts which factor into the total.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A financial account for a location on a given day. Note that multiple accounts may have the same type. For example, two accounts may be related to net sales."
      },
      "ledger_account_type": {
        "type": "object",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/account_type"
              }
            ],
            "description": "The type of the account.",
            "nullable": true
          },
          "factor": {
            "type": "integer",
            "description": "Denotes how this account value should be applied to the total. Factor can be multipled by the amount to either subtract from or add to the total calculation of the account type.",
            "format": "int32",
            "example": -1
          }
        },
        "additionalProperties": false,
        "description": "Describes the type of a financial account."
      },
      "line_item_approval": {
        "type": "object",
        "properties": {
          "approver": {
            "allOf": [
              {
                "$ref": "#/components/schemas/worker"
              }
            ],
            "description": "The worker who approved the line item.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Details for an approval."
      },
      "location": {
        "type": "object",
        "properties": {
          "location_id": {
            "type": "integer",
            "description": "Unique identifier which identifies this location across Delaget.",
            "format": "int32"
          },
          "location_number": {
            "type": "string",
            "description": "Organization's identifier for the location, such as store number. Not strictly numeric.",
            "nullable": true
          },
          "organization_location_identifier": {
            "type": "string",
            "description": "An organizational specific name given to the location, typically used for UI purposes.",
            "nullable": true
          },
          "name": {
            "type": "string",
            "description": "Organization given name for the location.",
            "nullable": true
          },
          "open_date": {
            "type": "string",
            "description": "The date the store was opened.",
            "format": "date-time",
            "nullable": true
          },
          "close_date": {
            "type": "string",
            "description": "The date the store closed. If this value is populated the store is not currently open.",
            "format": "date-time",
            "nullable": true
          },
          "address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/address"
              }
            ],
            "description": "The physical location of the store.",
            "nullable": true
          },
          "workers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/worker"
            },
            "description": "List of workers at the location.",
            "nullable": true
          },
          "tax_rates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/tax_rate"
            },
            "description": "Gets or sets the tax rates.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A specific store."
      },
      "location_summary": {
        "type": "object",
        "properties": {
          "paid_in_amount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/money"
              }
            ],
            "description": "Paid in amount.",
            "nullable": true
          },
          "paid_out_amount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/money"
              }
            ],
            "description": "Paid out amount.",
            "nullable": true
          },
          "net_sales": {
            "allOf": [
              {
                "$ref": "#/components/schemas/money"
              }
            ],
            "description": "Net sales amount.",
            "nullable": true
          },
          "gross_sales": {
            "allOf": [
              {
                "$ref": "#/components/schemas/money"
              }
            ],
            "description": "Gross sales amount.",
            "nullable": true
          },
          "ledger_account_summaries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ledger_account_summary"
            },
            "description": "Breakdown of amounts by ledger accounts.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Summary data for a timespan."
      },
      "money": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "description": "The amount of money.",
            "format": "double",
            "nullable": true,
            "example": 3.50
          },
          "currency_code": {
            "type": "string",
            "description": "ISO 4217 Currency Code.",
            "nullable": true,
            "example": "USD"
          }
        },
        "additionalProperties": false,
        "description": "An amount of money."
      },
      "optional_response_envelope<location_summary>": {
        "type": "object",
        "properties": {
          "data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/location_summary"
              }
            ],
            "description": "The response itself, or null when no data is available.",
            "nullable": true
          },
          "data_type": {
            "type": "string",
            "description": "The data type/schema of the data.",
            "nullable": true
          },
          "available_requests": {
            "type": "integer",
            "description": "The number of requests the caller can make in the next minute before getting an HTTP 429 (Too Many Requests) response.",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Packages a response whose data may be absent, with rate-limiting information."
      },
      "organization_locations": {
        "required": [
          "code",
          "locations",
          "name"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "Unique code which identifies this organization. Also known as \"Client Code.\"",
            "nullable": true,
            "example": "YRI"
          },
          "name": {
            "type": "string",
            "description": "The name of the organization.",
            "nullable": true,
            "example": "Your Restaurants, Inc."
          },
          "locations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/location"
            },
            "description": "An array of location objects containing the locations for the organization.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Contains a list of locations under an organization."
      },
      "paging_info<nullable<int32>>": {
        "type": "object",
        "properties": {
          "cursor": {
            "allOf": [
              {
                "$ref": "#/components/schemas/cursor"
              }
            ],
            "description": "Cursor for where the current request left off.",
            "nullable": true
          },
          "next": {
            "type": "string",
            "description": "The address for the next results based on the cursor.",
            "format": "uri",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information about the current and next page of paged data."
      },
      "paging_info<nullable<int64>>": {
        "type": "object",
        "properties": {
          "cursor": {
            "allOf": [
              {
                "$ref": "#/components/schemas/cursor"
              }
            ],
            "description": "Cursor for where the current request left off.",
            "nullable": true
          },
          "next": {
            "type": "string",
            "description": "The address for the next results based on the cursor.",
            "format": "uri",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information about the current and next page of paged data."
      },
      "paging_info<string>": {
        "type": "object",
        "properties": {
          "cursor": {
            "allOf": [
              {
                "$ref": "#/components/schemas/cursor"
              }
            ],
            "description": "Cursor for where the current request left off.",
            "nullable": true
          },
          "next": {
            "type": "string",
            "description": "The address for the next results based on the cursor.",
            "format": "uri",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "Contains information about the current and next page of paged data."
      },
      "pay_rate": {
        "type": "object",
        "properties": {
          "rate": {
            "allOf": [
              {
                "$ref": "#/components/schemas/money"
              }
            ],
            "description": "The pay rate itself.",
            "nullable": true
          },
          "effective_date": {
            "type": "string",
            "description": "When the pay rate takes effect.",
            "format": "date-time",
            "nullable": true
          },
          "expiration_date": {
            "type": "string",
            "description": "When the pay rate ceases to be in effect.",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A pay rate and its effective timespan."
      },
      "price_modifier_group_type": {
        "enum": [
          "None",
          "GeneralDiscount",
          "Coupon",
          "Promotion",
          "GiftVoucher",
          "Rebate",
          "EmployeeMeal",
          "ManagerMeal",
          "SeniorCitizen",
          "Complimentary",
          "CompetitorCoupon"
        ],
        "type": "string"
      },
      "price_modifier_item": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "description": "Identifier for the price modifier.",
            "nullable": true
          },
          "group_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/price_modifier_group_type"
              }
            ],
            "description": "Type of modifier."
          },
          "amount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/money"
              }
            ],
            "description": "Amount of the modifier.",
            "nullable": true
          },
          "quantity": {
            "type": "integer",
            "description": "Number of modifiers.",
            "format": "int32"
          },
          "approval": {
            "allOf": [
              {
                "$ref": "#/components/schemas/line_item_approval"
              }
            ],
            "description": "Worker who approved the modifier.",
            "nullable": true
          },
          "entered_by": {
            "allOf": [
              {
                "$ref": "#/components/schemas/worker"
              }
            ],
            "description": "Worker who entered the modifier.",
            "nullable": true
          },
          "entered_time": {
            "type": "string",
            "description": "When the modifier was entered.",
            "format": "date-time",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "More information about the modifier.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A price modification on a transaction."
      },
      "problem_details": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "detail": {
            "type": "string",
            "nullable": true
          },
          "instance": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": { }
      },
      "reimbursement": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The type of reimbursement.",
            "nullable": true,
            "example": "Mileage"
          },
          "amount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/money"
              }
            ],
            "description": "How much the worker was reimbursed.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A supplemental reimbursement provided to a worker."
      },
      "response_envelope<location[],nullable<int32>>": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "paging": {
            "allOf": [
              {
                "$ref": "#/components/schemas/paging_info<nullable<int32>>"
              }
            ],
            "description": "Information about the current and next page of data.",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/location"
            },
            "description": "The response itself.",
            "nullable": true
          },
          "data_type": {
            "type": "string",
            "description": "The data type/schema of the data.",
            "nullable": true
          },
          "available_requests": {
            "type": "integer",
            "description": "The number of requests the caller can make in the next minute before getting an HTTP 429 (Too Many Requests) response.",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Packages response with paging and rate-limiting information."
      },
      "response_envelope<organization_locations>": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/organization_locations"
              }
            ],
            "description": "The response itself.",
            "nullable": true
          },
          "data_type": {
            "type": "string",
            "description": "The data type/schema of the data.",
            "nullable": true
          },
          "available_requests": {
            "type": "integer",
            "description": "The number of requests the caller can make in the next minute before getting an HTTP 429 (Too Many Requests) response.",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Packages response with rate-limiting information."
      },
      "response_envelope<organization_locations[],string>": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "paging": {
            "allOf": [
              {
                "$ref": "#/components/schemas/paging_info<string>"
              }
            ],
            "description": "Information about the current and next page of data.",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/organization_locations"
            },
            "description": "The response itself.",
            "nullable": true
          },
          "data_type": {
            "type": "string",
            "description": "The data type/schema of the data.",
            "nullable": true
          },
          "available_requests": {
            "type": "integer",
            "description": "The number of requests the caller can make in the next minute before getting an HTTP 429 (Too Many Requests) response.",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Packages response with paging and rate-limiting information."
      },
      "response_envelope<retail_transaction[],nullable<int32>>": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "paging": {
            "allOf": [
              {
                "$ref": "#/components/schemas/paging_info<nullable<int32>>"
              }
            ],
            "description": "Information about the current and next page of data.",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/retail_transaction"
            },
            "description": "The response itself.",
            "nullable": true
          },
          "data_type": {
            "type": "string",
            "description": "The data type/schema of the data.",
            "nullable": true
          },
          "available_requests": {
            "type": "integer",
            "description": "The number of requests the caller can make in the next minute before getting an HTTP 429 (Too Many Requests) response.",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Packages response with paging and rate-limiting information."
      },
      "response_envelope<shift_diff[]>": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/shift_diff"
            },
            "description": "The response itself.",
            "nullable": true
          },
          "data_type": {
            "type": "string",
            "description": "The data type/schema of the data.",
            "nullable": true
          },
          "available_requests": {
            "type": "integer",
            "description": "The number of requests the caller can make in the next minute before getting an HTTP 429 (Too Many Requests) response.",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Packages response with rate-limiting information."
      },
      "response_envelope<time_card[],nullable<int64>>": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "paging": {
            "allOf": [
              {
                "$ref": "#/components/schemas/paging_info<nullable<int64>>"
              }
            ],
            "description": "Information about the current and next page of data.",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/time_card"
            },
            "description": "The response itself.",
            "nullable": true
          },
          "data_type": {
            "type": "string",
            "description": "The data type/schema of the data.",
            "nullable": true
          },
          "available_requests": {
            "type": "integer",
            "description": "The number of requests the caller can make in the next minute before getting an HTTP 429 (Too Many Requests) response.",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Packages response with paging and rate-limiting information."
      },
      "retail_transaction": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Ticket number of the transaction.",
            "nullable": true,
            "example": "123"
          },
          "identifier": {
            "type": "string",
            "description": "Other transaction identifier.",
            "nullable": true,
            "example": "345678"
          },
          "business_day": {
            "type": "string",
            "format": "date-time",
            "example": "2017-02-01"
          },
          "check_number": {
            "type": "string",
            "description": "Other transaction identifier.",
            "nullable": true,
            "example": "345678"
          },
          "register_number": {
            "type": "string",
            "description": "The register or station where the transaction was entered.",
            "nullable": true,
            "example": "3"
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/retail_transaction_status"
              }
            ],
            "description": "Enumerated type identifies the status of this transaction.\r\n<list type=\"table\"><listheader><term>Status</term><description>Description</description></listheader><item><term>Canceled</term><description>Designates entire transaction that was reversed PRIOR to the tender of a transaction.</description></item><item><term>PostVoided</term><description>A non sales transaction that cancels a prior transaction during the same day. Refunded the same day.</description></item><item><term>Voided</term><description>Designates entire transaction that was reversed as part of a tendered transaction, that is, it is being voided in its entirety.</description></item><item><term>Returned</term><description>Designates this transaction was returned. Refunded after the books are reconciled at the end of day processing.</description></item><item><term>Finished</term><description>Designates transaction was completed, tendered, delivered, and without any cancel and void etc.</description></item><item><term>Transferred</term><description>Designates items on the transaction have been transferred to other transactions.</description></item></list>"
          },
          "status_detail": {
            "type": "string",
            "description": "More information about status.",
            "nullable": true,
            "example": "Undeliverable"
          },
          "is_split_transfer": {
            "type": "boolean",
            "description": "Identifies the transaction as having split or transferred line_items."
          },
          "order_entry_employee": {
            "allOf": [
              {
                "$ref": "#/components/schemas/worker"
              }
            ],
            "description": "The worker who entered the transaction.",
            "nullable": true
          },
          "cashier": {
            "allOf": [
              {
                "$ref": "#/components/schemas/worker"
              }
            ],
            "description": "The worker who handled payment for the transaction.",
            "nullable": true
          },
          "total_amount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/money"
              }
            ],
            "description": "Total transaction amount (after discounts and taxes).",
            "nullable": true
          },
          "tax_amount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/money"
              }
            ],
            "description": "Total tax paid for the transaction.",
            "nullable": true
          },
          "discount_amount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/money"
              }
            ],
            "description": "Sum of transaction discounts and transaction item discounts.",
            "nullable": true
          },
          "open_time": {
            "type": "string",
            "description": "When the transaction began.",
            "format": "date-time"
          },
          "closed_time": {
            "type": "string",
            "description": "When the transaction was completed.",
            "format": "date-time",
            "nullable": true
          },
          "channel": {
            "allOf": [
              {
                "$ref": "#/components/schemas/channel"
              }
            ],
            "description": "The channel in which the transaction was processed.",
            "nullable": true
          },
          "destination": {
            "allOf": [
              {
                "$ref": "#/components/schemas/channel"
              }
            ],
            "description": "The destination of the transaction.",
            "nullable": true
          },
          "tender": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/tender"
            },
            "description": "The actual amount of currency presented (tax and tips included).",
            "nullable": true
          },
          "line_items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/retail_transaction_item"
            },
            "description": "Line items in the transaction, including price modifiers.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A single retail transaction."
      },
      "retail_transaction_item": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "ID for the transaction line item. Unique within the transaction.",
            "format": "int32"
          },
          "price_modifiers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/price_modifier_item"
            },
            "description": "Price modifiers applied to the item.",
            "nullable": true
          },
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/retail_transaction_item_type"
              }
            ],
            "description": "What the line item represents."
          },
          "split_transfer": {
            "allOf": [
              {
                "$ref": "#/components/schemas/split_transfer_item"
              }
            ],
            "description": "Provides information about a split or transferred item.",
            "nullable": true
          },
          "item": {
            "allOf": [
              {
                "$ref": "#/components/schemas/sales_item"
              }
            ],
            "description": "Details about an item sold as part of a transaction.",
            "nullable": true
          },
          "quantity": {
            "type": "integer",
            "description": "The quantity of items on the line.",
            "format": "int32",
            "nullable": true
          },
          "actual_price": {
            "allOf": [
              {
                "$ref": "#/components/schemas/money"
              }
            ],
            "description": "Actual price of the item after modifiers.",
            "nullable": true
          },
          "regular_price": {
            "allOf": [
              {
                "$ref": "#/components/schemas/money"
              }
            ],
            "description": "Regular price of the item before modifiers.",
            "nullable": true
          },
          "applied_time": {
            "type": "string",
            "description": "When the item was applied to the transaction.",
            "format": "date-time",
            "nullable": true
          },
          "is_void": {
            "type": "boolean",
            "description": "Voided designates a transaction line that was reversed after the tender of a transaction."
          },
          "void_approval": {
            "allOf": [
              {
                "$ref": "#/components/schemas/line_item_approval"
              }
            ],
            "description": "Details about a voided item's approval.",
            "nullable": true
          },
          "is_cancel": {
            "type": "boolean",
            "description": "Canceled designates a transaction line that was reversed prior to the tender of a transaction."
          },
          "is_delete": {
            "type": "boolean",
            "description": "Delete indicates a line item was sent to the kitchen, the item was recalled and the item was removed from the transaction."
          },
          "reason": {
            "type": "string",
            "description": "A unique retailer defined reason code for an action that is taken (or not taken) at a workstation.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A line item in a transaction. If the price modifier item is populated, the price modifier, otherwise it is at the general retail_transaction level."
      },
      "retail_transaction_item_type": {
        "enum": [
          "None",
          "Sale",
          "Return",
          "PriceModification"
        ],
        "type": "string"
      },
      "retail_transaction_status": {
        "enum": [
          "None",
          "Canceled",
          "PostVoided",
          "Voided",
          "Returned",
          "Finished",
          "Transferred"
        ],
        "type": "string"
      },
      "sales_item": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "description": "Identifier for the product.",
            "nullable": true
          },
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/sales_item_type"
              }
            ],
            "description": "What the item represents.",
            "nullable": true
          },
          "name": {
            "type": "string",
            "description": "Name or description of the item.",
            "nullable": true
          },
          "product_type_id": {
            "type": "string",
            "description": "Identifier for the type/category of the product.",
            "nullable": true
          },
          "product_type_name": {
            "type": "string",
            "description": "Name or description of the type/category of the product.",
            "nullable": true
          },
          "is_part_of": {
            "type": "integer",
            "description": "If this item relates to another item on the transaction (e.g. a combo), this field will be populated with the identifier of that item.",
            "format": "int32",
            "nullable": true
          },
          "action_code": {
            "allOf": [
              {
                "$ref": "#/components/schemas/sales_item_action_code"
              }
            ],
            "description": "Describes the relationship between the parent item (denoted by is_part_of) and the child.",
            "nullable": true
          },
          "is_deferred_sale": {
            "type": "boolean",
            "description": "Whether the product is a deferred sale product (e.g., gift card).",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Details about an item sold as part of a transaction."
      },
      "sales_item_action_code": {
        "enum": [
          "None",
          "Add",
          "AddsTo",
          "IsPartOf",
          "IsRemovedFrom",
          "Only",
          "Replace",
          "Subtract",
          "Other"
        ],
        "type": "string"
      },
      "sales_item_type": {
        "enum": [
          "None",
          "Stock",
          "Service",
          "Fee",
          "ItemCollection"
        ],
        "type": "string"
      },
      "shift_diff": {
        "type": "object",
        "properties": {
          "location_number": {
            "type": "string",
            "description": "The location where the shift was worked.",
            "nullable": true
          },
          "job_code": {
            "allOf": [
              {
                "$ref": "#/components/schemas/job_code"
              }
            ],
            "description": "The job the differential applies to for the time period.",
            "nullable": true
          },
          "differential_rate": {
            "allOf": [
              {
                "$ref": "#/components/schemas/money"
              }
            ],
            "description": "The differential rate for the time period.",
            "nullable": true
          },
          "differential_length": {
            "type": "string",
            "description": "How long the differential was in effect.",
            "format": "date-span",
            "example": "02:00:00"
          },
          "clock_in": {
            "type": "string",
            "description": "The beginning of the shift which the differential was calculated for.",
            "format": "date-time",
            "example": "2000-01-01T16:00:00"
          },
          "clock_out": {
            "type": "string",
            "description": "The end of the shift which the differential was calculated for.",
            "format": "date-time",
            "example": "2000-01-02T00:00:00"
          }
        },
        "additionalProperties": false,
        "description": "A pay differential for a timespan."
      },
      "shift_diff_input_model": {
        "required": [
          "bus_dt",
          "clock_in",
          "clock_out",
          "job_code",
          "location_number"
        ],
        "type": "object",
        "properties": {
          "location_number": {
            "minLength": 1,
            "type": "string",
            "description": "The location where the shift was worked."
          },
          "job_code": {
            "minLength": 1,
            "type": "string",
            "description": "The job being checked for pay differentials.",
            "example": "CSH"
          },
          "bus_dt": {
            "type": "string",
            "description": "The business date to check for pay differentials. Time component is ignored if present.",
            "format": "date-time",
            "example": "2000-01-01"
          },
          "clock_in": {
            "type": "string",
            "description": "The datetime that the worker began work.",
            "format": "date-time",
            "example": "2000-01-01 16:00:00"
          },
          "clock_out": {
            "type": "string",
            "description": "The datetime that the worker left work.",
            "format": "date-time",
            "example": "2000-01-02 00:00"
          }
        },
        "additionalProperties": false,
        "description": "Parameters for Shift Differential retrieval."
      },
      "split_transfer_direction": {
        "enum": [
          "Unknown",
          "To",
          "From"
        ],
        "type": "string"
      },
      "split_transfer_item": {
        "type": "object",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/split_transfer_type"
              }
            ],
            "description": "Whether the item was split or transferred."
          },
          "direction": {
            "allOf": [
              {
                "$ref": "#/components/schemas/split_transfer_direction"
              }
            ],
            "description": "Whether the item was split/transferred to or from the parent transaction."
          },
          "transaction_id": {
            "type": "string",
            "description": "ID of the related transaction the item was split/transferred to/from.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Provides information about a split or transferred item."
      },
      "split_transfer_type": {
        "enum": [
          "Unknown",
          "Split",
          "Transfer"
        ],
        "type": "string"
      },
      "tax_rate": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Gets or sets the name of the tax rate.",
            "nullable": true
          },
          "rate": {
            "type": "number",
            "description": "Gets or sets the rate.",
            "format": "double"
          },
          "code": {
            "type": "string",
            "description": "Gets or sets the code.",
            "nullable": true
          },
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/tax_rate_type"
              }
            ],
            "description": "Gets or sets the rate type."
          }
        },
        "additionalProperties": false,
        "description": "Represents a tax rate and related properties."
      },
      "tax_rate_type": {
        "enum": [
          "None",
          "FlatFee",
          "Percentage",
          "Inclusive",
          "B"
        ],
        "type": "string",
        "description": "An enumeration of the types of tax rates."
      },
      "tender": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The type of tender.",
            "nullable": true,
            "example": "CreditDebit"
          },
          "subtender_type": {
            "type": "string",
            "description": "More detail on the type of tender.",
            "nullable": true,
            "example": "DiscoverCard"
          },
          "amount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/money"
              }
            ],
            "description": "Amount tendered.",
            "nullable": true
          },
          "change": {
            "allOf": [
              {
                "$ref": "#/components/schemas/money"
              }
            ],
            "description": "Change due.",
            "nullable": true
          },
          "amount_applied_to_bill": {
            "allOf": [
              {
                "$ref": "#/components/schemas/money"
              }
            ],
            "description": "Amount put toward transaction total, e.g. Amount minus Change minus TipAmount.",
            "nullable": true
          },
          "gift_card_number": {
            "type": "string",
            "description": "Gift card number used for tender, if applicable.",
            "nullable": true
          },
          "account_number_last_four": {
            "type": "string",
            "description": "Last 4 digits of the card used.",
            "nullable": true
          },
          "tip_amount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/money"
              }
            ],
            "description": "Amount applied to tips.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Payment tendered for a transaction."
      },
      "time_card": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Unique identifier for the time worked.",
            "format": "int64"
          },
          "business_day": {
            "type": "string",
            "description": "Business date the time was worked.",
            "format": "date-time"
          },
          "clocked_in": {
            "type": "string",
            "description": "When the worker clocked in.",
            "format": "date-time",
            "nullable": true
          },
          "clocked_out": {
            "type": "string",
            "description": "When the worker clocked out.",
            "format": "date-time",
            "nullable": true
          },
          "job_code": {
            "allOf": [
              {
                "$ref": "#/components/schemas/job_code"
              }
            ],
            "description": "The job the worker was working for the shift.",
            "nullable": true
          },
          "pay_rate": {
            "allOf": [
              {
                "$ref": "#/components/schemas/pay_rate"
              }
            ],
            "description": "The pay rate for the shift.",
            "nullable": true
          },
          "regular_hours": {
            "type": "number",
            "description": "How many regular hours the worker worked in the shift.",
            "format": "double",
            "nullable": true
          },
          "overtime_hours": {
            "type": "number",
            "description": "How many overtime hours the worker worked in the shift.",
            "format": "double",
            "nullable": true
          },
          "doubletime_hours": {
            "type": "number",
            "description": "How many double time hours the worker worked in the shift.",
            "format": "double",
            "nullable": true
          },
          "charged_tips": {
            "allOf": [
              {
                "$ref": "#/components/schemas/money"
              }
            ],
            "description": "How much the worker earned in charge tips during the shift.",
            "nullable": true
          },
          "sales": {
            "allOf": [
              {
                "$ref": "#/components/schemas/money"
              }
            ],
            "description": "Total sales by the worker during the shift.",
            "nullable": true
          },
          "tips": {
            "allOf": [
              {
                "$ref": "#/components/schemas/money"
              }
            ],
            "description": "Total declared tips by the worker during the shift.",
            "nullable": true
          },
          "worker": {
            "allOf": [
              {
                "$ref": "#/components/schemas/worker"
              }
            ],
            "description": "Worker who worked the shift.",
            "nullable": true
          },
          "reimbursements": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/reimbursement"
            },
            "description": "Reimbursements provided to the worker.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A span of time a worker was paid for and associated pay information."
      },
      "worker": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Delaget unique identifier for the worker.",
            "format": "int32",
            "nullable": true,
            "example": 123456
          },
          "first_name": {
            "type": "string",
            "description": "First name of worker.",
            "nullable": true,
            "example": "John"
          },
          "last_name": {
            "type": "string",
            "description": "Last name of worker.",
            "nullable": true,
            "example": "Doe"
          },
          "middle_initial": {
            "type": "string",
            "description": "Middle initial of worker.",
            "nullable": true,
            "example": "H"
          },
          "phone": {
            "type": "string",
            "description": "Phone number of worker.",
            "nullable": true,
            "example": "9876543210"
          },
          "alternative_phone": {
            "type": "string",
            "description": "Additional phone number of worker.",
            "nullable": true,
            "example": "1234567890"
          },
          "email": {
            "type": "string",
            "description": "Additional phone number of worker.",
            "nullable": true,
            "example": "johnhdoe@example.com"
          },
          "last_update": {
            "type": "string",
            "description": "When worker was last updated by the client.",
            "format": "date-time",
            "nullable": true,
            "example": "2017-02-02"
          },
          "hire_date": {
            "type": "string",
            "description": "When worker became employed by the client.",
            "format": "date-time",
            "nullable": true,
            "example": "2017-02-01"
          },
          "birth_date": {
            "type": "string",
            "description": "Worker date of birth.",
            "format": "date-time",
            "nullable": true,
            "example": "2000-02-01"
          },
          "term_code": {
            "type": "string",
            "description": "Organization-provided termination code for the worker.",
            "nullable": true,
            "example": "QUIT"
          },
          "term_date": {
            "type": "string",
            "description": "When worker ceased to be employed by the client.",
            "format": "date-time",
            "nullable": true,
            "example": "2017-02-01"
          },
          "home_location_id": {
            "type": "integer",
            "description": "Delaget identifier for the worker's primary work location.",
            "format": "int32",
            "nullable": true
          },
          "gender": {
            "allOf": [
              {
                "$ref": "#/components/schemas/gender"
              }
            ],
            "description": "Gender of the worker.",
            "nullable": true
          },
          "address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/address"
              }
            ],
            "description": "Worker's mailing address.",
            "nullable": true,
            "example": "2017-02-01"
          },
          "client_worker_identification": {
            "allOf": [
              {
                "$ref": "#/components/schemas/client_worker_identification"
              }
            ],
            "description": "Provides a shared key between the client and the worker. Often used for a payroll identifier.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A specific worker at a client organization."
      }
    },
    "securitySchemes": {
      "ApiKey": {
        "type": "apiKey",
        "name": "ApiKey",
        "in": "header"
      }
    }
  },
  "tags": [
    {
      "name": "Diagnostics"
    },
    {
      "name": "Organizations"
    }
  ]
}