{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/argyle9a25/json-schema/argyle9a25-identity-schema.json",
  "title": "Identity",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/argyle9a25-identities-api-openapi.yml#/components/schemas/Identity",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "description": "Unique ID of the identity."
    },
    "account": {
      "type": "string",
      "format": "uuid",
      "description": "ID of the account associated with the identity."
    },
    "address": {
      "$ref": "#/$defs/Address"
    },
    "first_name": {
      "type": "string",
      "description": "First name of the employee. Usually the legal first name."
    },
    "last_name": {
      "type": "string",
      "description": "Last name of the employee. Usually the legal last name."
    },
    "full_name": {
      "type": "string",
      "description": "Full name of the employee. Sourced from payroll data if available, otherwise constructed from available names and suffixes."
    },
    "birth_date": {
      "type": "string",
      "format": "date",
      "description": "Date of birth in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format. If values are obfuscated (rare), a dash will replace the value (e.g. --01-31 when the year is obfuscated).\n"
    },
    "email": {
      "type": "string",
      "description": "Email address."
    },
    "phone_number": {
      "type": "string",
      "description": "Phone number [E.164](https://en.wikipedia.org/wiki/E.164) international format).\n"
    },
    "picture_url": {
      "type": "string",
      "description": "URL location of the user's profile image."
    },
    "employment_status": {
      "type": "string",
      "enum": [
        "active",
        "inactive",
        "terminated"
      ],
      "description": "Job status of the employment relevant to the identity.\n\n- Definitions of `inactive` and `terminated` vary by Item and can overlap.\n  - `inactive` typically indicates the employee left voluntarily, is on leave, or has not been active for a certain period of time.\n  - `terminated` typically indicates the employee is no longer employed. Specific reasons for termination, if available, are returned in the `termination_reason` field.\n- We recommend using data from the `/paystubs` and `/gigs` endpoints to construct a more wholistic timeline of employment history.\n"
    },
    "employment_type": {
      "type": "string",
      "enum": [
        "full-time",
        "part-time",
        "contractor",
        "military",
        "benefits",
        "seasonal",
        "temporary",
        "regular",
        "other"
      ],
      "description": "Type of employment.\n\n<details class=\"enum-definitions\">\n<summary>Employment type enum definitions</summary>\n\n- `full-time`\n  - Employment in which an individual is regularly scheduled to work 30 or more hours per week, or meets the employer's internal threshold for a standard full-time workweek.\n  - **Examples:** `full-time employee`, `36+ hours weekly`\n- `part-time`\n  - Employment in which an individual is regularly scheduled to work fewer than 30 hours per week, or meets the employer's internal threshold for a standard part-time workweek.\n  - **Examples:** `PT regular`, `20+ hours weekly`\n- `contractor`\n  - Work performed by an individual engaged for a specific project or timeframe who is not an employee of the organization.\n  - **Examples:** `gig worker`, `contract employee`, `contract worker`, `freelancer`\n- `military`\n  - Compensation derived from active-duty or reserve military service.\n  - *Automatically set for military platforms.*\n- `benefits`\n  - Non-wage compensation or government-issued assistance.\n  - *Automatically set for benefits platforms.*\n- `seasonal`\n  - Employment that occurs at approximately the same time each year, typically lasting six months or less.\n  - **Examples:** `seasonal on-call`, `seasonal part-time`, `peak seasonal`\n- `temporary`\n  - Short-term employment with a defined end date, usually lasting one year or less.\n  - **Examples:** `internship`, `substitute employee`, `temporary full-time`, `temporary part-time`\n- `regular`\n  - Ongoing employment with no specified end date that does not fall into more specialized categories.\n  - **Examples:** `permanent`, `W-2`, `salaried`\n- `other`\n  - Work or income that does not fit standard classifications.\n  - **Examples:** `variable`, `casual`, `employee`, `PRN (on-call)`\n\n</details>\n"
    },
    "job_title": {
      "type": "string",
      "description": "Job title."
    },
    "ssn": {
      "type": "string",
      "description": "Social Security number."
    },
    "marital_status": {
      "type": "string",
      "description": "Marital status."
    },
    "gender": {
      "type": "string",
      "description": "Gender."
    },
    "original_hire_date": {
      "type": "string",
      "format": "date",
      "description": "Timestamp ([ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)) of the user's **earliest** employment start date.\n"
    },
    "hire_date": {
      "type": "string",
      "format": "date",
      "description": "Timestamp ([ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)) of the user's **most recent** employment start date.\n\n`hire_date` may differ from `original_hire_date` due to a promotion, a re-hiring event, or similar.\n"
    },
    "termination_date": {
      "type": [
        "string",
        "null"
      ],
      "format": "date",
      "description": "Timestamp ([ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)) when the user was terminated."
    },
    "termination_reason": {
      "type": [
        "string",
        "null"
      ],
      "description": "Reason for termination."
    },
    "employer": {
      "type": "string",
      "description": "Name of the employer."
    },
    "employment": {
      "type": "string",
      "description": "[Employment](/api-reference/employments) ID. Can be used as a filter when [listing identities](/api-reference/identities/list-all-identities).\n"
    },
    "base_pay": {
      "$ref": "#/$defs/BasePay"
    },
    "pay_cycle": {
      "type": "string",
      "enum": [
        "daily",
        "weekly",
        "biweekly",
        "semimonthly",
        "monthly",
        "quarterly"
      ],
      "description": "Payment frequency.\n- `daily`\n- `weekly`\n- `biweekly` - every two weeks\n- `semimonthly` - twice a month\n- `monthly`\n- `quarterly`\n"
    },
    "platform_ids": {
      "$ref": "#/$defs/PlatformIds"
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp ([ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)) when the identity object was created.\n"
    },
    "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp ([ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)) when a property value of the identity object most recently changed.\n"
    },
    "metadata": {
      "type": "object",
      "description": "Additional, non-categorized information."
    }
  },
  "$defs": {
    "Address": {
      "type": "object",
      "properties": {
        "city": {
          "type": "string",
          "description": "Name of the city, town, district, or similar regional entity."
        },
        "line1": {
          "type": "string",
          "description": "Address-Line 1, usually street address or P.O. Box information."
        },
        "line2": {
          "type": "string",
          "description": "Address-Line 2, usually the apartment or unit number."
        },
        "state": {
          "type": "string",
          "description": "State, county, province, region, or equivalent."
        },
        "country": {
          "type": "string",
          "description": "Two-letter country code [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format).\n"
        },
        "postal_code": {
          "type": "string",
          "description": "Zip code, or equivalent."
        }
      }
    },
    "BasePay": {
      "type": "object",
      "properties": {
        "amount": {
          "type": "string",
          "description": "Defined pay amount per period. Does not include bonus, commission or similar incentive-based income. Returned as a decimal string with exactly two decimal places.",
          "x-argyle-decimal-places": 2,
          "x-argyle-decimal-mode": "fixed"
        },
        "period": {
          "type": "string",
          "enum": [
            "hourly",
            "daily",
            "weekly",
            "biweekly",
            "semimonthly",
            "monthly",
            "annual",
            "salary"
          ],
          "description": "Payment interval that specifically corresponds to the base pay `amount`.\n- `hourly`\n- `daily`\n- `weekly`\n- `biweekly` - every two weeks\n- `semimonthly` - twice a month\n- `monthly`\n- `annual`\n- `salary` - only when explicitly mentioned and no other pay period information is present\n"
        },
        "currency": {
          "type": "string",
          "description": "Pay currency ([ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code).\n"
        }
      }
    },
    "PlatformIds": {
      "type": "object",
      "properties": {
        "employee_id": {
          "type": "string",
          "description": "Internal user ID assigned by the employer."
        },
        "position_id": {
          "type": "string",
          "description": "Internal position ID assigned by the employer."
        },
        "platform_user_id": {
          "type": "string",
          "description": "ID assigned by the payroll system."
        }
      }
    }
  }
}