openapi: 3.1.0 info: title: Workday Integration Workday Compensation API description: >- API for managing employee compensation data including salary structures, pay grades, and compensation plans. Provides endpoints for scorecard results and one-time payment requests. version: v1 contact: name: Workday API Support email: api-support@workday.com url: https://community.workday.com license: name: Proprietary url: https://www.workday.com/en-us/legal/site-terms.html servers: - url: https://{baseUrl}/ccx/api/compensation/v1/{tenant} description: Workday Compensation REST API server variables: baseUrl: default: wd2-impl-services1.workday.com tenant: default: tenant security: - OAuth2: - r:compensation - w:compensation paths: /scorecardResults: get: operationId: getScorecardResults summary: Workday Integration Retrieve scorecard results description: >- Returns a collection of compensation scorecard results with pagination support. tags: - Scorecards parameters: - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' responses: '200': description: Successful response with scorecard results content: application/json: schema: $ref: '#/components/schemas/ScorecardResultsResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' post: operationId: createScorecardResult summary: Workday Integration Create a new scorecard result description: >- Creates a new compensation scorecard result. tags: - Scorecards requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ScorecardResultRequest' responses: '201': description: Scorecard result created successfully content: application/json: schema: $ref: '#/components/schemas/ScorecardResult' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' /scorecardResults/{ID}: get: operationId: getScorecardResultById summary: Workday Integration Retrieve a specific scorecard result description: >- Returns the specified scorecard result with scores and details. tags: - Scorecards parameters: - $ref: '#/components/parameters/ID' responses: '200': description: Successful response with the scorecard result content: application/json: schema: $ref: '#/components/schemas/ScorecardResult' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' delete: operationId: deleteScorecardResult summary: Workday Integration Delete a scorecard result description: >- Removes the specified scorecard result. tags: - Scorecards parameters: - $ref: '#/components/parameters/ID' responses: '204': description: Scorecard result deleted successfully '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' /scorecards: get: operationId: getCompensationScorecards summary: Workday Integration Retrieve compensation scorecards description: >- Returns compensation scorecards filtered by effective date. tags: - Scorecards parameters: - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' - name: effectiveDate in: query description: Filter by effective date schema: type: string format: date responses: '200': description: Successful response with compensation scorecards content: application/json: schema: $ref: '#/components/schemas/ScorecardsResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' post: operationId: createCompensationScorecard summary: Workday Integration Create a compensation scorecard description: >- Creates a new compensation scorecard definition. tags: - Scorecards requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ScorecardRequest' responses: '201': description: Scorecard created successfully content: application/json: schema: $ref: '#/components/schemas/Scorecard' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' /scorecards/{ID}: get: operationId: getCompensationScorecardById summary: Workday Integration Retrieve a specific compensation scorecard description: >- Returns the specified compensation scorecard with its configuration. tags: - Scorecards parameters: - $ref: '#/components/parameters/ID' responses: '200': description: Successful response with the scorecard content: application/json: schema: $ref: '#/components/schemas/Scorecard' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' put: operationId: updateCompensationScorecard summary: Workday Integration Update a compensation scorecard description: >- Modifies the specified compensation scorecard. tags: - Scorecards parameters: - $ref: '#/components/parameters/ID' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ScorecardRequest' responses: '200': description: Scorecard updated successfully content: application/json: schema: $ref: '#/components/schemas/Scorecard' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' delete: operationId: deleteCompensationScorecard summary: Workday Integration Delete a compensation scorecard description: >- Removes the specified compensation scorecard. tags: - Scorecards parameters: - $ref: '#/components/parameters/ID' responses: '204': description: Scorecard deleted successfully '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' /workers/{ID}/requestOneTimePayment: post: operationId: requestOneTimePayment summary: Workday Integration Create a one-time payment request description: >- Creates a one-time payment request for the specified worker, such as a bonus or award, and initiates the approval business process. tags: - Payments parameters: - $ref: '#/components/parameters/ID' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/OneTimePaymentRequest' responses: '201': description: One-time payment request created successfully content: application/json: schema: $ref: '#/components/schemas/OneTimePayment' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' components: securitySchemes: OAuth2: type: oauth2 flows: authorizationCode: authorizationUrl: https://{baseUrl}/authorize tokenUrl: https://{baseUrl}/oauth2/{tenant}/token scopes: r:compensation: Read compensation data w:compensation: Write compensation data parameters: ID: name: ID in: path required: true description: The Workday ID of the resource schema: type: string limit: name: limit in: query description: Maximum number of objects in a single response (default 20, maximum 100) schema: type: integer default: 20 maximum: 100 offset: name: offset in: query description: Zero-based index of the first object in a response collection schema: type: integer default: 0 responses: BadRequest: description: Invalid request parameters content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' Unauthorized: description: Authentication required content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' Forbidden: description: Insufficient permissions content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' NotFound: description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' schemas: ErrorResponse: type: object properties: error: type: string errors: type: array items: type: object properties: error: type: string message: type: string ResourceReference: type: object properties: id: type: string descriptor: type: string href: type: string format: uri ScorecardResult: type: object properties: id: type: string descriptor: type: string scorecard: $ref: '#/components/schemas/ResourceReference' worker: $ref: '#/components/schemas/ResourceReference' overallScore: type: number effectiveDate: type: string format: date ScorecardResultsResponse: type: object properties: total: type: integer data: type: array items: $ref: '#/components/schemas/ScorecardResult' ScorecardResultRequest: type: object required: - scorecard - worker properties: scorecard: $ref: '#/components/schemas/ResourceReference' worker: $ref: '#/components/schemas/ResourceReference' overallScore: type: number Scorecard: type: object properties: id: type: string descriptor: type: string name: type: string effectiveDate: type: string format: date isActive: type: boolean ScorecardsResponse: type: object properties: total: type: integer data: type: array items: $ref: '#/components/schemas/Scorecard' ScorecardRequest: type: object required: - name - effectiveDate properties: name: type: string effectiveDate: type: string format: date OneTimePayment: type: object properties: id: type: string descriptor: type: string worker: $ref: '#/components/schemas/ResourceReference' amount: type: number currency: $ref: '#/components/schemas/ResourceReference' payComponent: $ref: '#/components/schemas/ResourceReference' effectiveDate: type: string format: date OneTimePaymentRequest: type: object required: - amount - payComponent - effectiveDate properties: amount: type: number currency: $ref: '#/components/schemas/ResourceReference' payComponent: $ref: '#/components/schemas/ResourceReference' effectiveDate: type: string format: date reason: type: string tags: - name: Payments - name: Scorecards