---
updatedAt: 2026-06-18T14:49:46.000Z
agentTools:
  siteIndex: https://developer.paylocity.com/llms.txt
  projectIndex: https://developer.paylocity.com/integrations/llms.txt
---

# Upsert Assessment Package

> 🚧 Partner Restricted
> All assessment API endpoints are restricted to assessment providers that have signed a Paylocity technology partnership agreement. 
[Please reach out to our team](https://www.paylocity.com/contact/partner-form/) if you would like to discuss partnership opportunities.

**Summary Description**

This API endpoint is designed for assessment partners to manage their assessment packages within Paylocity’s platform by using the companyID and the packageID. In this API product, a package is a collection of related assessments, such as a “Skills Battery”, which includes all relevant tests for a job’s skills assessment. There could be multiple tests within a package. A job could also have multiple assessment packages, if needed.

**Use Cases**

- Insert or Update: Allows partners to insert new packages or update existing ones. This could involve removing or adding tests into a package
- Deactivate or Remove: Partners can deactivate a package by setting the status flag or schedule its removal by specifying an endDate
- Granular Control: By specifying a companyId, partners can target specific Paylocity clients, ensuring tailored assessment offerings
- Global offering: by using companyId B6001 Partner’s can assign specific assessments for all clients that use your platform

# OpenAPI definition

```json
{
  "openapi": "3.0.4",
  "info": {
    "title": "Assessments API",
    "version": "v1"
  },
  "servers": [
    {
      "url": "dc1demogwext.paylocity.com"
    }
  ],
  "paths": {
    "/apiHub/performanceManagement/v1/companies/{companyId}/assessmentPackages/{packageId}": {
      "put": {
        "tags": [
          "Package"
        ],
        "summary": "Upsert Assessment Package",
        "description": "> 🚧 Partner Restricted\n> All assessment API endpoints are restricted to assessment providers that have signed a Paylocity technology partnership agreement. \n[Please reach out to our team](https://www.paylocity.com/contact/partner-form/) if you would like to discuss partnership opportunities.\n\n**Summary Description**\n\nThis API endpoint is designed for assessment partners to manage their assessment packages within Paylocity’s platform by using the companyID and the packageID. In this API product, a package is a collection of related assessments, such as a “Skills Battery”, which includes all relevant tests for a job’s skills assessment. There could be multiple tests within a package. A job could also have multiple assessment packages, if needed.\n\n**Use Cases**\n\n- Insert or Update: Allows partners to insert new packages or update existing ones. This could involve removing or adding tests into a package\n- Deactivate or Remove: Partners can deactivate a package by setting the status flag or schedule its removal by specifying an endDate\n- Granular Control: By specifying a companyId, partners can target specific Paylocity clients, ensuring tailored assessment offerings\n- Global offering: by using companyId B6001 Partner’s can assign specific assessments for all clients that use your platform",
        "x-explorer-enabled": false,
        "parameters": [
          {
            "name": "testMode",
            "in": "header",
            "description": "If true all responses are mocked and generated randomly.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "The Paylocity Company Identifier. This is the unique value provided by Paylocity to each specific Payroll Entity.\r\n                **Allowable Values:**\r\n                9 char max.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "A12345"
          },
          {
            "name": "packageId",
            "in": "path",
            "description": "Package ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Authorization token. Ex. Bearer ...",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Package to put.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/PackageDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PackageDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PackageDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PackageDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created - Resource has been created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PackageDto"
                }
              }
            }
          },
          "204": {
            "description": "No Content - Resource has been updated."
          },
          "400": {
            "description": "Bad Request - Returns the details of the error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenericErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenericErrorResponse"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported Media Type - Returns the details of the error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenericErrorResponse"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AssessmentDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique ID of the assessment. Required. Max length = 150.",
            "nullable": true
          },
          "name": {
            "type": "string",
            "description": "The name of the assessment. Required. Max length = 250.",
            "nullable": true
          },
          "summary": {
            "type": "string",
            "description": "A summary of the assessment. Required. Max length = 250.",
            "nullable": true
          },
          "tests": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AssessmentTestDto"
            },
            "description": "An array of objects representing the tests included in the assessment. Required.",
            "nullable": true
          }
        },
        "additionalProperties": {
          "type": "object",
          "nullable": true
        },
        "description": "Assessment payload with tests."
      },
      "AssessmentTestDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "ID of the test. Required. Max length = 150.",
            "nullable": true
          },
          "name": {
            "type": "string",
            "description": "Name of the test. Required. Max length = 250.",
            "nullable": true
          },
          "category": {
            "type": "string",
            "description": "Category of the test. Required. Max length = 50.",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "Description of the test. Required. Max length = 250.",
            "nullable": true
          }
        },
        "additionalProperties": {
          "type": "object",
          "nullable": true
        },
        "description": "Assessment test payload."
      },
      "ErrorDto": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "nullable": true
          },
          "message": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": {
          "type": "object",
          "nullable": true
        }
      },
      "GenericErrorResponse": {
        "type": "object",
        "properties": {
          "correlationId": {
            "type": "string",
            "nullable": true
          },
          "value": {
            "$ref": "#/components/schemas/ErrorDto"
          },
          "count": {
            "type": "integer",
            "description": "Gets the count of items in the Values list.",
            "format": "int32",
            "nullable": true,
            "readOnly": true
          },
          "values": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ValidationErrorDto"
            },
            "description": "A list of items.",
            "nullable": true
          }
        },
        "additionalProperties": {
          "type": "object",
          "nullable": true
        }
      },
      "PackageDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique ID of the package. Required. Max length = 150.",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/StatusDto"
          },
          "summary": {
            "type": "string",
            "description": "A summary of the package. Required. Max length = 250.",
            "nullable": true
          },
          "name": {
            "type": "string",
            "description": "The name of the package. Required. Max length = 250.",
            "nullable": true
          },
          "assessments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AssessmentDto"
            },
            "description": "An array of objects representing the assessments included in the package. Required.",
            "nullable": true
          }
        },
        "additionalProperties": {
          "type": "object",
          "nullable": true
        },
        "description": "Assessment package payload."
      },
      "StatusDto": {
        "type": "object",
        "properties": {
          "startDate": {
            "type": "string",
            "description": "Start date of package validity. For immediate start use DateTime.UtcNow. Required.",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "description": "End date of package validity. If package doesn’t have expiration date, this field should be null. Optional.",
            "format": "date-time",
            "nullable": true
          },
          "value": {
            "enum": [
              "Active",
              "Inactive",
              "Deleted",
              "Unknown"
            ],
            "type": "string",
            "description": "Status value. Possible values: “Active, Inactive, Deleted, Unknown”. If value is not provided it will be calculated based on start/end date. Optional.",
            "nullable": true
          }
        },
        "additionalProperties": {
          "type": "object",
          "nullable": true
        },
        "description": "Package status payload."
      },
      "ValidationErrorDto": {
        "type": "object",
        "properties": {
          "fields": {
            "type": "string",
            "description": "Gets or sets a string detailing the fields involved in the validation error.",
            "nullable": true
          },
          "code": {
            "type": "string",
            "nullable": true
          },
          "message": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": {
          "type": "object",
          "nullable": true
        }
      }
    }
  }
}
```