{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/karmacheck/json-schema/karmacheck-create-case-schema.json",
  "title": "CreateCase",
  "x-generated": "2026-11-09",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/karmacheck-cases-api-openapi.yml#/components/schemas/CreateCase",
  "type": "object",
  "required": [
    "packageId",
    "email",
    "givenName",
    "familyName"
  ],
  "properties": {
    "autoProcess": {
      "type": "boolean",
      "default": false,
      "description": "If true, the customer is providing all of the information needed to run the check up front; other fields in the payload will be required. If false, the candidate will receive an onboarding invitation to provide the remaining data needed for the check."
    },
    "caseTypeId": {
      "type": "string",
      "enum": [
        "cde61186-4f22-45f4-9e19-429061365bce"
      ],
      "default": "cde61186-4f22-45f4-9e19-429061365bce",
      "description": "The API currently supports only one type of case, which is a background check."
    },
    "packageId": {
      "type": "string",
      "description": "The ID of the package to order for the case. See [Get package list](karma-api-openapi.yaml/paths/~1package~1min~1list/get) to retrieve the list of available packages."
    },
    "email": {
      "type": "string",
      "description": "The candidate's email address."
    },
    "givenName": {
      "type": "string",
      "description": "The candidate's first name. Only letters, numbers, hyphens (-), apostrophes ('), commas (,), periods (.), and underscores (_) are allowed."
    },
    "middleName": {
      "type": "string",
      "description": "The candidate's middle name. Only letters, numbers, hyphens (-), apostrophes ('), commas (,), periods (.), and underscores (_) are allowed."
    },
    "familyName": {
      "type": "string",
      "description": "The candidate's last name. Only letters, numbers, hyphens (-), apostrophes ('), commas (,), periods (.), and underscores (_) are allowed."
    },
    "phone": {
      "type": "string",
      "description": "If `autoProcess` is true and OHS services exist in the package, a phone number in the format **+[country_code][phone_number]** is required (whether or not any OHS services are being ordered). If `autoProcess` is false, this field is optional."
    },
    "apiTrackingUser": {
      "type": "string",
      "description": "An external identifier that you can use \nto help track this case in your own system.\n\nKarmaCheck does not do anything with this field other than include it in webhooks and other API calls,\nso despite its name, you can put any value.\n\nA common use case is for the value to be\nthe email address of the user in your system\nwho ordered the case."
    },
    "apiTrackingCode": {
      "type": "string",
      "description": "An external identifier that you can use \nto help track this case in your own system.\n\nKarmaCheck does not do anything with this field other than include it in webhooks and other API calls,\nso despite its name, you can put any value.\n\nA common use case is for the value to be\nthe identifier of the case in your system."
    },
    "disableOptions": {
      "type": "integer",
      "description": "A parameter to control how KarmaCheck sends email notifications about the case. By default, KarmaCheck sends an email notifying the candidate when a background check is initiated. Email notifications are standard, as further communication with the candidate might be necessary. To prevent certain emails from being sent, use the following values to disable emails to the candidate or customer:\n- **1:** Prevents sending invite to the candidate\n- **2:** Prevents sending updates to the candidate\n- **4:** Prevents sending notifications to the customer\n- **7:** Disables all email notifications described above"
    },
    "excludeServices": {
      "type": "array",
      "description": "If the order should not run one or more services that are defined in the package, then list the IDs of each service. Not all services support exclusion; for example, legal authorizations and SSN Trace are needed for other services being ordered.",
      "items": {
        "type": "string"
      }
    },
    "orderOverride": {
      "type": [
        "string",
        "null"
      ],
      "default": null,
      "enum": [
        "add",
        "replace",
        null
      ],
      "description": "Indicates how to handle an active case that exists for the same candidate email:\n- Use `add` to create a new case anyway. \n- Use `replace` to archive the existing case and create a new case.\nWithout this field, calling the API returns an error if a case already exists."
    },
    "replaceCaseId": {
      "type": "string",
      "description": "The ID of the existing case to replace. Required if `orderOverride` is `replace`."
    },
    "candidateConsentProvided": {
      "type": "boolean",
      "description": "If true, acknowledges collection of the candidate's signed disclosures and authorizations. This must be set to true if `autoProcess` is true."
    },
    "candidateDisclosuresAndAuthorizationDocumentIds": {
      "type": "array",
      "description": "A list of IDs for each [secure document](karma-api-openapi.yaml/paths/~1document~1secure~1create/post) to associate with the case.",
      "items": {
        "type": "string"
      }
    },
    "orderData": {
      "type": "array",
      "description": "The candidate's PII and other required data based on the services being ordered. Required if `autoProcess` is true. Each service has different `metadata` properties based on the specified `caseOrderDataTypeId`. See [Provide order data](docs/guides/order-data.md) for additional details.",
      "items": {
        "$ref": "#/$defs/CaseOrderData"
      }
    },
    "orderConfig": {
      "$ref": "#/$defs/OrderConfig"
    }
  },
  "$defs": {
    "CaseOrderData": {
      "title": "CaseOrderData",
      "type": "object",
      "description": "The data related to a service. Each service has different `metadata` properties based on the specified `caseOrderDataTypeId`. See [Provide order data](docs/guides/order-data.md) for additional details.",
      "required": [
        "caseOrderDataTypeId",
        "metadata"
      ],
      "properties": {
        "caseOrderDataTypeId": {
          "type": "string",
          "enum": [
            "codt-govt-id",
            "codt-dob",
            "codt-current-candidate-address",
            "codt-ohs-scheduling-address",
            "codt-education",
            "codt-employment",
            "codt-mvr",
            "codt-alias",
            "codt-address",
            "codt-jurisdiction-county",
            "codt-jurisdiction-fed-district",
            "codt-jurisdiction-state",
            "codt-cplc",
            "codt-shipment",
            "codt-ohs-service-substitutions",
            "codt-idp",
            "codt-drug-reason-for-test",
            "codt-drug-testing-authority"
          ],
          "description": "The type of data to include in the order."
        },
        "serviceId": {
          "type": "string",
          "description": "The ID of a [service](docs/reference/service.md) that requires a type of case order data. This field is required for the following case order data types: `codt-education` `codt-employment` `codt-mvr` `codt-alias` `codt-jurisdiction-county` `codt-jurisdiction-fed-district` `codt-jurisdiction-state` `service-cplc` `service-mask-shipment`"
        },
        "metadata": {
          "oneOf": [
            {
              "$ref": "#/$defs/CaseOrderDataGovtID",
              "type": "object"
            },
            {
              "$ref": "#/$defs/CaseOrderDataDOB",
              "type": "object"
            },
            {
              "$ref": "#/$defs/CaseOrderDataCandidateAddress",
              "type": "object"
            },
            {
              "$ref": "#/$defs/CaseOrderDataOHSAddress",
              "type": "object"
            },
            {
              "$ref": "#/$defs/CaseOrderDataEducation",
              "type": "object"
            },
            {
              "$ref": "#/$defs/CaseOrderDataEmployment",
              "type": "object"
            },
            {
              "$ref": "#/$defs/CaseOrderDataMVR",
              "type": "object"
            },
            {
              "$ref": "#/$defs/CaseOrderDataAlias",
              "type": "object"
            },
            {
              "$ref": "#/$defs/CaseOrderDataJurisdiction",
              "type": "object"
            },
            {
              "$ref": "#/$defs/CaseOrderDataJurisdictionCounty",
              "type": "object"
            },
            {
              "$ref": "#/$defs/CaseOrderDataJurisdictionFederal",
              "type": "object"
            },
            {
              "$ref": "#/$defs/CaseOrderDataJurisdictionState",
              "type": "object"
            },
            {
              "$ref": "#/$defs/CaseOrderDataCPLC",
              "type": "object"
            },
            {
              "$ref": "#/$defs/CaseOrderDataShipment",
              "type": "object"
            },
            {
              "$ref": "#/$defs/CaseOrderDataOHSServiceSubstitutions"
            },
            {
              "$ref": "#/$defs/CaseOrderDataDocumentProcessing"
            },
            {
              "$ref": "#/$defs/CaseOrderDataDrugReasonForTest"
            },
            {
              "$ref": "#/$defs/CaseOrderDataDrugTestingAuthority"
            }
          ]
        }
      }
    },
    "CaseOrderDataAlias": {
      "title": "CaseOrderDataAlias",
      "type": "object",
      "description": "The candidate data when `caseOrderDataTypeId` is `codt-alias`.",
      "required": [
        "givenName",
        "familyName"
      ],
      "properties": {
        "givenName": {
          "type": "string",
          "description": "Only letters, numbers, hyphens (-), apostrophes ('), commas (,), periods (.), and underscores (_) are allowed."
        },
        "middleName": {
          "type": "string",
          "description": "Only letters, numbers, hyphens (-), apostrophes ('), commas (,), periods (.), and underscores (_) are allowed."
        },
        "familyName": {
          "type": "string",
          "description": "Only letters, numbers, hyphens (-), apostrophes ('), commas (,), periods (.), and underscores (_) are allowed."
        }
      }
    },
    "CaseOrderDataCPLC": {
      "title": "CaseOrderDataCPLC",
      "type": "object",
      "description": "The candidate data when `caseOrderDataTypeId` is `codt-cplc`.",
      "required": [
        "cplcId",
        "fields"
      ],
      "properties": {
        "cplcId": {
          "type": "string",
          "description": "The unique ID of the professional license or certification. See [Professional license and certification](docs/reference/cplc.md) for a list of possible values."
        },
        "fields": {
          "type": "array",
          "description": "Details about the candidate's professional license or certification. Call [GET `/service/cplc/id/{cplcId}`](karma-api-openapi.yaml/paths/~1service~1cplc~1id~1{cplcId}/get) for a list of required fields for the specific professional license or certification.",
          "items": {
            "type": "object",
            "required": [
              "fieldId",
              "value"
            ],
            "properties": {
              "fieldId": {
                "type": "string",
                "enum": [
                  "licenseNumber",
                  "firstName",
                  "lastName",
                  "middleInitial",
                  "certifyingBody",
                  "state",
                  "additionalInfo",
                  "certifyingBodyMemberId",
                  "certifyingBodyVerificationPin",
                  "expirationDate",
                  "issueDate",
                  "licenseTitle"
                ],
                "description": "The identifier for a specific detail of the professional license or certification."
              },
              "value": {
                "type": "string",
                "description": "The candidate's information corresponding to a specific field."
              }
            }
          }
        },
        "secureDocumentIds": {
          "type": "array",
          "description": "The IDs of uploaded secure documents that will be associated to the CPLC record. This optional field can be applied when providing data on behalf of the candidate.",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "CaseOrderDataCandidateAddress": {
      "title": "CaseOrderDataCandidateAddress",
      "type": "object",
      "description": "The order data (candidate's current home address) when `caseOrderDataTypeId` is `codt-current-candidate-address`.",
      "required": [
        "address1",
        "city",
        "state",
        "postalCode",
        "country"
      ],
      "properties": {
        "address1": {
          "type": "string",
          "description": "The candidate's street address."
        },
        "address2": {
          "type": "string",
          "description": "The candidate's street address, continued."
        },
        "city": {
          "type": "string",
          "description": "The candidate's city of residence."
        },
        "state": {
          "type": "string",
          "description": "The two-letter abbreviation of the state in which the candidate resides."
        },
        "postalCode": {
          "type": "string",
          "description": "The candidate's zip code."
        },
        "country": {
          "type": "string",
          "description": "The two-letter abbreviation of the country in which the candidate resides."
        }
      }
    },
    "CaseOrderDataDOB": {
      "title": "CaseOrderDataDOB",
      "type": "object",
      "description": "The candidate data when `caseOrderDataTypeId` is `codt-dob`.",
      "required": [
        "dob"
      ],
      "properties": {
        "dob": {
          "type": "string",
          "format": "date",
          "description": "The candidate's date of birth in the format *YYYY*-*MM*-*DD*."
        }
      }
    },
    "CaseOrderDataDocumentProcessing": {
      "title": "CaseOrderDataDocumentProcessing",
      "type": "object",
      "required": [
        "documentTypeId",
        "fileName",
        "secureDocumentId"
      ],
      "properties": {
        "documentTypeId": {
          "type": "string",
          "enum": [
            "unclassified"
          ],
          "description": "The identifier of the document type for the document to be processed. For the document processing flow this should always be `unclassified`."
        },
        "fileName": {
          "type": "string",
          "description": "The name of the file."
        },
        "secureDocumentId": {
          "type": "string",
          "description": "The identifier for the secureDocumentRecord the document is associated with."
        }
      }
    },
    "CaseOrderDataDrugReasonForTest": {
      "title": "CaseOrderDataDrugReasonForTest",
      "type": "object",
      "description": "The reason for the drug test.",
      "properties": {
        "reasonForTest": {
          "type": "string",
          "enum": [
            "pre-employment",
            "followup",
            "post-accident",
            "return-to-duty"
          ],
          "description": "The reason for the drug test. Defaults to `pre-employment` if not provided.",
          "default": "pre-employment"
        }
      }
    },
    "CaseOrderDataDrugTestingAuthority": {
      "title": "CaseOrderDataDrugTestingAuthority",
      "type": "object",
      "description": "The regulatory authority under which a DOT drug test is conducted.",
      "properties": {
        "testingAuthority": {
          "type": "string",
          "enum": [
            "fmcsa",
            "faa",
            "fra",
            "fta",
            "phmsa",
            "uscg"
          ],
          "description": "The regulatory authority under which a DOT drug test is conducted. Defaults to `fmcsa` if not provided.",
          "default": "fmcsa"
        }
      }
    },
    "CaseOrderDataEducation": {
      "title": "CaseOrderDataEducation",
      "type": "object",
      "description": "The candidate data when `caseOrderDataTypeId` is `codt-education`.\n**Note:** Multiple properties are currently optional, but are strongly recommended to be included in requests.",
      "required": [
        "institution",
        "city",
        "state",
        "country",
        "current",
        "monthEnd",
        "yearEnd"
      ],
      "properties": {
        "institution": {
          "type": "string",
          "description": "The name of the institution where the candidate received their education."
        },
        "educationType": {
          "description": "The type of education, such as a college or university, a high school or equivalent (for example, GED), a technical or trade school, or other.",
          "type": "string"
        },
        "educationTypeDescription": {
          "type": "string",
          "description": "A description of the education type. This should be used when `educationType` is other."
        },
        "degree": {
          "type": "string",
          "description": "The educational degree. Recommended when `educationType` is college/university or technical/trade school."
        },
        "major": {
          "type": "string",
          "description": "The candidate's field of study. Recommended when `educationType` is college/university or technical/trade school."
        },
        "city": {
          "type": "string",
          "description": "The city in which the institution is located. Recommended to be included in *all* requests."
        },
        "state": {
          "type": "string",
          "description": "The two-letter state code. Recommended to be included in *all* requests."
        },
        "country": {
          "type": "string",
          "description": "The two-letter country code. Recommended to be included in *all* requests."
        },
        "monthBegin": {
          "type": "string",
          "description": "The month in which the candidate began their education."
        },
        "yearBegin": {
          "type": "string",
          "description": "The year in which the candidate began their education."
        },
        "current": {
          "type": "boolean",
          "description": "If true, the candidate is currently enrolled at the institution. If false, the candidate is not currently enrolled. Recommended to be included in *all* requests. (Required true if `monthEnd` and `yearEnd` are not provided)",
          "default": false
        },
        "monthEnd": {
          "type": "string",
          "description": "The month in which the candidate completed their education. (Required if `current` is false or not provided)"
        },
        "yearEnd": {
          "type": "string",
          "description": "The year in which the candidate completed their education. (Required if `current` is false or not provided)"
        },
        "nameIfDifferentFlag": {
          "type": "boolean",
          "description": "If true, the candidate attended or is attending the institution under a different name. If false, the candidate's name on record with the institution is the same as the candidate's name recorded for the case."
        },
        "nameIfDifferent": {
          "type": "string",
          "description": "The candidate's name that's on record with the institution."
        },
        "contact": {
          "type": "object",
          "description": "The institution's contact information. **Known issue:** The API currently requires this object to be passed (either empty or with any of its optional properties).",
          "properties": {
            "website": {
              "type": "string"
            },
            "email": {
              "type": "string"
            },
            "phone": {
              "type": "string"
            }
          }
        },
        "secureDocumentIds": {
          "type": "array",
          "description": "The IDs of uploaded secure documents that will be associated to the education record. This optional field can be applied when providing data on behalf of the candidate.",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "CaseOrderDataEmployment": {
      "title": "CaseOrderDataEmployment",
      "type": "object",
      "description": "The candidate data when `caseOrderDataTypeId` is `codt-employment`.\n**Note:** Multiple properties are currently optional, but are strongly recommended to be included in requests.",
      "required": [
        "employer",
        "position",
        "city",
        "state",
        "country",
        "monthBegin",
        "yearBegin",
        "current",
        "monthEnd",
        "yearEnd"
      ],
      "properties": {
        "employer": {
          "type": "string",
          "description": "The name of the candidate's current or former employer. Must be less than or equal to 100 characters."
        },
        "position": {
          "type": "string",
          "description": "The candidate's position with the employer."
        },
        "city": {
          "type": "string",
          "description": "The city of employment. Recommended to be included in *all* requests."
        },
        "state": {
          "type": "string",
          "description": "The two-letter state code. Recommended to be included in *all* requests."
        },
        "country": {
          "type": "string",
          "description": "The two-letter country code. Recommended to be included in *all* requests."
        },
        "monthBegin": {
          "type": "string",
          "description": "The month in which the candidate began their employment. Recommended to be included in *all* requests."
        },
        "yearBegin": {
          "type": "string",
          "description": "The year in which the candidate began their employment. Recommended to be included in *all* requests."
        },
        "current": {
          "type": "boolean",
          "description": "If true, the candidate is currently employed with the employer. If false, the candidate is no longer employed with the employer. Recommended to be included in *all* requests. (Required true if `monthEnd` and `yearEnd` are not provided)",
          "default": false
        },
        "monthEnd": {
          "type": "string",
          "description": "The month in which the candidate ended their employment. (Required if `current` is false or not provided)"
        },
        "yearEnd": {
          "type": "string",
          "description": "The year in which the candidate ended their employment. (Required if `current` is false or not provided)"
        },
        "contact": {
          "type": "object",
          "description": "The employer's contact information. **Known issue:** The API currently requires this object to be passed (either empty or with any of its optional properties).",
          "properties": {
            "website": {
              "type": "string"
            },
            "email": {
              "type": "string"
            },
            "phone": {
              "type": "string"
            }
          }
        },
        "okToContact": {
          "type": "boolean",
          "description": "If true, the employer can be contacted about the candidate. If false, the employer cannot be contacted. Recommended to be included in *all* requests.",
          "default": true
        },
        "incomeAmount": {
          "type": "string",
          "description": "The amount earned. This is applicable to Employment Income Verification."
        },
        "incomeFrequency": {
          "type": "string",
          "description": "The frequency of the amount earned. This is applicable to Employment Income Verification."
        },
        "staffingAgency": {
          "type": "string",
          "description": "The Staffing Agency that the candidate is working for the employer through. (If applicable)",
          "maxLength": 100
        },
        "secureDocumentIds": {
          "type": "array",
          "description": "The IDs of uploaded secure documents that will be associated to the employment record. This optional field can be applied when providing data on behalf of the candidate.",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "CaseOrderDataGovtID": {
      "title": "CaseOrderDataGovtID",
      "type": "object",
      "description": "The candidate data when `caseOrderDataTypeId` is `codt-govt-id`.",
      "required": [
        "govtId"
      ],
      "properties": {
        "govtId": {
          "type": "string",
          "description": "The candidate's Social Security number in the format *xxx*-*xx*-*xxxx*.",
          "pattern": "^\\d{3}-\\d{2}-\\d{4}$"
        }
      }
    },
    "CaseOrderDataJurisdiction": {
      "title": "CaseOrderDataJurisdiction",
      "type": "object",
      "description": "The candidate data when `caseOrderDataTypeId` is `codt-address`.",
      "required": [
        "city",
        "state",
        "county"
      ],
      "properties": {
        "city": {
          "type": "string"
        },
        "state": {
          "type": "string",
          "description": "The two-letter state code."
        },
        "county": {
          "type": "string"
        },
        "autoProcessJurisdictions": {
          "type": "boolean",
          "default": false,
          "description": "If true, jurisdiction order data will be automatically created based on the services ordered. If false, jurisdiction order data will be specified for the jurisdiction-based search type being ordered."
        }
      }
    },
    "CaseOrderDataJurisdictionCounty": {
      "title": "CaseOrderDataJurisdictionCounty",
      "type": "object",
      "description": "The candidate data when `caseOrderDataTypeId` is `codt-jurisdiction-county`.",
      "required": [
        "state",
        "county"
      ],
      "properties": {
        "state": {
          "type": "string",
          "description": "The two-letter state code."
        },
        "county": {
          "type": "string"
        }
      }
    },
    "CaseOrderDataJurisdictionFederal": {
      "title": "CaseOrderDataJurisdictionFederal",
      "type": "object",
      "description": "The candidate data when `caseOrderDataTypeId` is `codt-fed-district`.",
      "required": [
        "district"
      ],
      "properties": {
        "district": {
          "type": "string"
        }
      }
    },
    "CaseOrderDataJurisdictionState": {
      "title": "CaseOrderDataJurisdictionState",
      "type": "object",
      "description": "The candidate data when `caseOrderDataTypeId` is `codt-jurisdiction-state`.",
      "required": [
        "state"
      ],
      "properties": {
        "state": {
          "type": "string",
          "description": "The two-letter state code."
        }
      }
    },
    "CaseOrderDataMVR": {
      "title": "CaseOrderDataMVR",
      "type": "object",
      "description": "The candidate data when `caseOrderDataTypeId` is `codt-mvr`.",
      "required": [
        "state",
        "licenseNumber"
      ],
      "properties": {
        "state": {
          "type": "string",
          "description": "The two-letter state code of the candidate's driver's license."
        },
        "licenseNumber": {
          "type": "string",
          "description": "The candidate's driver's license number."
        },
        "firstNameIfDifferent": {
          "type": "string",
          "description": "If the name on the driver's license is different than the candidate name entered for the case, the first name on the candidate's driver's license."
        },
        "middleInitialIfDifferent": {
          "type": "string",
          "description": "If the name on the driver's license is different than the candidate name entered for the case, the middle initial on the candidate's driver's license."
        },
        "lastNameIfDifferent": {
          "type": "string",
          "description": "If the name on the driver's license is different than the candidate name entered for the case, the last name on the candidate's driver's license."
        }
      }
    },
    "CaseOrderDataOHSAddress": {
      "title": "CaseOrderDataOHSAddress",
      "type": "object",
      "description": "The order data (address for finding nearby clinics) when `caseOrderDataTypeId` is `codt-ohs-scheduling-address`.",
      "required": [
        "address1",
        "city",
        "state",
        "postalCode",
        "country"
      ],
      "properties": {
        "address1": {
          "type": "string"
        },
        "address2": {
          "type": "string"
        },
        "city": {
          "type": "string"
        },
        "state": {
          "type": "string",
          "description": "The two-letter state code."
        },
        "postalCode": {
          "type": "string"
        },
        "country": {
          "type": "string",
          "description": "The two-letter country code."
        }
      }
    },
    "CaseOrderDataOHSServiceSubstitutions": {
      "title": "CaseOrderDataOHSServiceSubstitutions",
      "type": "object",
      "description": "The order data when `caseOrderDataTypeId` is `codt-ohs-service-substitutions`.  The `substitutionMap` is an object where each key is a service ID, and the corresponding value is an array of service IDs that are acceptable alternatives for substitution.\n\nThis mechanism is primarily intended for TB blood tests and drug panel services that are either identical or functionally equivalent. The goal is to expand clinic availability by allowing flexibility in the services that can be used to fulfill an order.",
      "properties": {
        "substitutionMap": {
          "type": "object",
          "description": "The substitutionMap defines service ids that we can consider substituting.  This is an object where each key is a service ID, and the corresponding value is an array of service IDs that are acceptable alternatives for substitution.",
          "additionalProperties": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      }
    },
    "CaseOrderDataShipment": {
      "title": "CaseOrderDataShipment",
      "type": "object",
      "description": "The candidate data when `caseOrderDataTypeId` is `codt-shipment`.",
      "required": [
        "recipientName",
        "address1",
        "addressType",
        "city",
        "state",
        "postalCode",
        "shippingMethod",
        "maskType"
      ],
      "properties": {
        "recipientName": {
          "type": "string",
          "description": "The recipient name."
        },
        "address1": {
          "type": "string",
          "description": "The recipient's street address."
        },
        "address2": {
          "type": "string",
          "description": "The recipient's street address, continued."
        },
        "addressType": {
          "enum": [
            "home",
            "clinic"
          ],
          "description": "The address type."
        },
        "addressSource": {
          "enum": [
            "homeAddress",
            "newAddress"
          ],
          "description": "The source of the address, which indicates whether the address is the same as the candidate's home address. This is used only when `addressType` is `home`."
        },
        "city": {
          "type": "string",
          "description": "The recipient's city."
        },
        "state": {
          "type": "string",
          "description": "The two-letter state code."
        },
        "postalCode": {
          "type": "string",
          "description": "The recipient's zip code."
        },
        "shippingMethod": {
          "description": "The shipping method.",
          "enum": [
            "2-3 Business Days",
            "Overnight"
          ]
        },
        "maskType": {
          "type": "string",
          "description": "The mask SKU from [GET `/shipment/mask/list`](karma-api-openapi.yaml/paths/~1shipment~1mask~1list/get)."
        }
      }
    },
    "ConfigValuesAlias": {
      "title": "ConfigValuesAlias",
      "type": "string",
      "enum": [
        "no-alias",
        "alias-all",
        "alias-all+hits-only",
        "alias-mnv",
        "alias-mnv+hits-only"
      ],
      "description": "The options for an alias configuration.",
      "default": "no-alias"
    },
    "ConfigValuesDrugPolicy": {
      "title": "ConfigValuesDrugPolicy",
      "type": "string",
      "enum": [
        "company-default",
        "reorder",
        "reorder-and-contact",
        "reorder-once-contact",
        "do-not-reorder"
      ],
      "description": "The configuration options for a drug policy.",
      "default": "company-default"
    },
    "ConfigValuesEducationVerification": {
      "title": "ConfigValuesEducationVerification",
      "type": "string",
      "enum": [
        "docs-acceptable",
        "psv",
        "psv-first"
      ],
      "description": "The configuration options for education verification.",
      "default": "docs-acceptable"
    },
    "ConfigValuesEmploymentVerification": {
      "title": "ConfigValuesEmploymentVerification",
      "type": "string",
      "enum": [
        "docs-acceptable",
        "psv",
        "psv-first"
      ],
      "description": "The configuration options for employment verification.",
      "default": "docs-acceptable"
    },
    "ConfigValuesOhsDrugPassportExpirationPolicy": {
      "title": "ConfigValuesOhsDrugPassportExpirationPolicy",
      "type": "string",
      "enum": [
        "company-default",
        "reissue",
        "reissue-and-contact",
        "reissue-once-contact",
        "contact-customer",
        "do-not-reissue"
      ],
      "description": "The configuration options for an ePassport expiration policy.",
      "default": "company-default"
    },
    "ConfigValuesQuantiferon": {
      "title": "ConfigValuesQuantiferon",
      "type": "string",
      "enum": [
        "company-default",
        "replace-with-t-spot",
        "do-not-replace"
      ],
      "description": "The options for Quantiferon substitution.",
      "default": "company-default"
    },
    "ConfigValuesTspot": {
      "title": "ConfigValuesTspot",
      "type": "string",
      "enum": [
        "company-default",
        "replace-with-quantiferon",
        "do-not-replace"
      ],
      "description": "The options for T-Spot substitution.",
      "default": "company-default"
    },
    "Contact": {
      "title": "Contact",
      "type": "object",
      "description": "Details of a contact.",
      "required": [
        "type",
        "email"
      ],
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 255,
          "description": "The name of the contact."
        },
        "type": {
          "type": "string",
          "enum": [
            "default",
            "escalation",
            "authorization"
          ],
          "description": "The role of the contact."
        },
        "email": {
          "type": "string",
          "description": "The email address of the contact.",
          "format": "email"
        },
        "phone": {
          "type": "string",
          "maxLength": 20,
          "description": "The phone number of the contact."
        }
      }
    },
    "OrderConfig": {
      "title": "OrderConfig",
      "type": "object",
      "description": "Options that describe how to run certain screenings for a case. See [Order configuration](docs/reference/order-configuration.md) for details on all configuration options.\n\nAll properties are optional, but a configuration will be set for all applicable screenings on the package regardless of whether those screenings are ordered. Therefore, aside from the `contacts` object, the default configuration will be used if one is not set.",
      "properties": {
        "contacts": {
          "type": "array",
          "description": "A list of people to contact about the case.",
          "items": {
            "$ref": "#/$defs/Contact"
          }
        },
        "aliasNameConfiguration": {
          "$ref": "#/$defs/ConfigValuesAlias"
        },
        "ohsDrugPassportExpirationPolicy": {
          "$ref": "#/$defs/ConfigValuesOhsDrugPassportExpirationPolicy"
        },
        "lostOrIncompleteOHSDrugPolicy": {
          "$ref": "#/$defs/ConfigValuesDrugPolicy"
        },
        "diluteDrugPolicy": {
          "$ref": "#/$defs/ConfigValuesDrugPolicy"
        },
        "serviceConfigs": {
          "type": "object",
          "description": "Services with configuration options.",
          "properties": {
            "9ac65633-b4c4-4062-875c-3556db9d2a08": {
              "type": "object",
              "description": "The configuration for employment verification.",
              "properties": {
                "verificationMethod": {
                  "$ref": "#/$defs/ConfigValuesEmploymentVerification",
                  "description": "The method for verifying employment."
                }
              }
            },
            "service-employment-income": {
              "type": "object",
              "description": "The configuration for employment income verification.",
              "properties": {
                "verificationMethod": {
                  "$ref": "#/$defs/ConfigValuesEmploymentVerification",
                  "description": "The method for verifying employment and income."
                }
              }
            },
            "85307784-1f84-471a-8596-c8ea088c3a62": {
              "type": "object",
              "description": "The configuration for education verification.",
              "properties": {
                "verificationMethod": {
                  "$ref": "#/$defs/ConfigValuesEducationVerification",
                  "description": "The method for verifying education."
                }
              }
            },
            "service-ohs-tb-quantiferon-gold": {
              "type": "object",
              "description": "The configuration for Quantiferon testing.",
              "properties": {
                "substitutionPolicy": {
                  "$ref": "#/$defs/ConfigValuesQuantiferon",
                  "description": "The policy for Quantiferon testing substitution."
                }
              }
            },
            "service-ohs-tb-tspot-test": {
              "type": "object",
              "description": "The configuration for T-Spot testing.",
              "properties": {
                "substitutionPolicy": {
                  "$ref": "#/$defs/ConfigValuesTspot",
                  "description": "The policy for T-Spot testing substitution."
                }
              }
            }
          }
        }
      }
    }
  }
}