openapi: 3.1.0
info:
title: Workday Studio Workday Web Services API
description: >-
REST and SOAP web services for integrating with Workday applications,
providing programmatic access to business management services across 55
service areas including Human Resources, Payroll, Benefits, and Financial
Management. This specification covers the REST-accessible portions of the
Workday Web Services (WWS) directory, enabling discovery and invocation of
web service operations with WSDL and XML Schema definitions.
version: v45
contact:
name: Workday API Support
email: [email protected]
url: https://community.workday.com
license:
name: Proprietary
url: https://www.workday.com/en-us/legal/site-terms.html
termsOfService: https://www.workday.com/en-us/legal.html
externalDocs:
description: Workday Web Services Directory
url: https://community.workday.com/sites/default/files/file-hosting/productionapi/index.html
servers:
- url: https://{baseUrl}/ccx/service/{tenant}
description: Workday Web Services Server
variables:
baseUrl:
default: wd2-impl-services1.workday.com
description: The Workday data center hostname
tenant:
default: tenant
description: The Workday tenant name
tags:
- name: Absence Management
description: >-
Web service operations for managing time-off requests, leave balances,
absence plans, and return-to-work processes.
- name: Benefits Administration
description: >-
Web service operations for benefits enrollment, plan management,
coverage administration, and life events processing.
- name: Compensation
description: >-
Web service operations for compensation plans, pay grades, salary
structures, and bonus configurations.
- name: Financial Management
description: >-
Web service operations for financial accounting, expense management,
revenue management, and financial reporting.
- name: Human Resources
description: >-
Web service operations for managing employee data, worker records,
organizational structures, and HR transactions.
- name: Payroll
description: >-
Web service operations for payroll processing, tax management,
compensation calculations, and pay component configurations.
- name: Recruiting
description: >-
Web service operations for job postings, candidate management,
application tracking, and offer management.
- name: Service Directory
description: >-
Operations for discovering available web services, their versions,
and WSDL definitions.
- name: Staffing
description: >-
Web service operations for position management, job requisitions,
hiring actions, and organizational staffing.
- name: Time Tracking
description: >-
Web service operations for time entry, timesheet management, time
calculations, and clock-in/clock-out records.
security:
- OAuth2:
- r:wws
- w:wws
- WSSecurity: []
paths:
/Human_Resources:
get:
operationId: getHumanResourcesService
summary: Workday Studio Retrieve Human Resources Service Metadata
description: >-
Returns metadata about the Human Resources web service including
available operations, supported versions, and WSDL location.
tags:
- Human Resources
- Service Directory
responses:
'200':
description: Service metadata for Human Resources
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceMetadata'
'401':
$ref: '#/components/responses/Unauthorized'
/Human_Resources/Get_Workers:
post:
operationId: getWorkers
summary: Workday Studio Retrieve Workers
description: >-
Returns a collection of worker records including employees and
contingent workers. Supports filtering by worker type, organization,
date ranges, and various worker attributes.
tags:
- Human Resources
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/GetWorkersRequest'
responses:
'200':
description: Successful response with worker data
content:
application/json:
schema:
$ref: '#/components/schemas/WorkersResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
/Human_Resources/Get_Organizations:
post:
operationId: getOrganizations
summary: Workday Studio Retrieve Organizations
description: >-
Returns a collection of organization records including supervisory
organizations, cost centers, company structures, and custom
organization types.
tags:
- Human Resources
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/GetOrganizationsRequest'
responses:
'200':
description: Successful response with organization data
content:
application/json:
schema:
$ref: '#/components/schemas/OrganizationsResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
/Financial_Management/Get_Journal_Entries:
post:
operationId: getJournalEntries
summary: Workday Studio Retrieve Journal Entries
description: >-
Returns a collection of journal entry records for financial accounting,
including debit and credit line items, ledger accounts, and posting
status information.
tags:
- Financial Management
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/GetJournalEntriesRequest'
responses:
'200':
description: Successful response with journal entries
content:
application/json:
schema:
$ref: '#/components/schemas/JournalEntriesResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
/Payroll/Get_Payroll_Results:
post:
operationId: getPayrollResults
summary: Workday Studio Retrieve Payroll Results
description: >-
Returns a collection of payroll result records including pay
calculations, deductions, tax withholdings, and net pay details
for processed payroll periods.
tags:
- Payroll
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/GetPayrollResultsRequest'
responses:
'200':
description: Successful response with payroll results
content:
application/json:
schema:
$ref: '#/components/schemas/PayrollResultsResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
/Benefits_Administration/Get_Benefit_Plans:
post:
operationId: getBenefitPlans
summary: Workday Studio Retrieve Benefit Plans
description: >-
Returns a collection of benefit plan records including health insurance,
retirement plans, life insurance, and other benefit offerings
configured in the tenant.
tags:
- Benefits Administration
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/GetBenefitPlansRequest'
responses:
'200':
description: Successful response with benefit plans
content:
application/json:
schema:
$ref: '#/components/schemas/BenefitPlansResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
/Absence_Management/Get_Absence_Inputs:
post:
operationId: getAbsenceInputs
summary: Workday Studio Retrieve Absence Inputs
description: >-
Returns a collection of absence input records for time-off requests,
leave entries, and absence events within specified date ranges and
organizational scope.
tags:
- Absence Management
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/GetAbsenceInputsRequest'
responses:
'200':
description: Successful response with absence data
content:
application/json:
schema:
$ref: '#/components/schemas/AbsenceInputsResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
/Staffing/Get_Job_Postings:
post:
operationId: getJobPostings
summary: Workday Studio Retrieve Job Postings
description: >-
Returns a collection of job posting records for open positions
including posting status, location, job profile, and application
information.
tags:
- Staffing
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/GetJobPostingsRequest'
responses:
'200':
description: Successful response with job postings
content:
application/json:
schema:
$ref: '#/components/schemas/JobPostingsResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
/Recruiting/Get_Candidates:
post:
operationId: getCandidates
summary: Workday Studio Retrieve Candidates
description: >-
Returns a collection of candidate records for recruiting including
application status, source, and stage within the hiring workflow.
tags:
- Recruiting
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/GetCandidatesRequest'
responses:
'200':
description: Successful response with candidate data
content:
application/json:
schema:
$ref: '#/components/schemas/CandidatesResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
/Compensation/Get_Compensation_Plans:
post:
operationId: getCompensationPlans
summary: Workday Studio Retrieve Compensation Plans
description: >-
Returns a collection of compensation plan records including salary
plans, bonus plans, allowance plans, and their associated pay
grade structures.
tags:
- Compensation
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/GetCompensationPlansRequest'
responses:
'200':
description: Successful response with compensation plans
content:
application/json:
schema:
$ref: '#/components/schemas/CompensationPlansResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
/Time_Tracking/Get_Time_Clock_Events:
post:
operationId: getTimeClockEvents
summary: Workday Studio Retrieve Time Clock Events
description: >-
Returns a collection of time clock event records including clock-in
and clock-out timestamps, time entry types, and calculated hours
for workers within the specified date range.
tags:
- Time Tracking
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/GetTimeClockEventsRequest'
responses:
'200':
description: Successful response with time clock events
content:
application/json:
schema:
$ref: '#/components/schemas/TimeClockEventsResponse'
'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
refreshUrl: https://{baseUrl}/oauth2/{tenant}/token
scopes:
r:wws: Read access to web services
w:wws: Write access to web services
WSSecurity:
type: http
scheme: basic
description: >-
WS-Security with X.509 certificates or username/password tokens for
SOAP API authentication.
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'
schemas:
ErrorResponse:
type: object
properties:
error:
type: string
description: A high-level error message
errors:
type: array
items:
type: object
properties:
error:
type: string
field:
type: string
message:
type: string
ResourceReference:
type: object
properties:
id:
type: string
description: The Workday ID of the referenced resource
descriptor:
type: string
description: The display name of the referenced resource
href:
type: string
format: uri
description: The API URL to retrieve the full resource
ServiceMetadata:
type: object
description: >-
Metadata about a Workday web service including its operations and
supported versions.
properties:
serviceName:
type: string
description: The name of the web service
version:
type: string
description: The current version of the web service
wsdlUrl:
type: string
format: uri
description: The URL to the WSDL definition for the service
operations:
type: array
description: The list of operations available in the service
items:
type: object
properties:
operationName:
type: string
description: The name of the operation
description:
type: string
description: A description of the operation
RequestCriteria:
type: object
description: Common request criteria for filtering web service results
properties:
effectiveDate:
type: string
format: date
description: The effective date for the request
fromDate:
type: string
format: date
description: The start date for date range filtering
toDate:
type: string
format: date
description: The end date for date range filtering
pageSize:
type: integer
description: The number of records to return per page
default: 100
maximum: 999
page:
type: integer
description: The page number to return
default: 1
GetWorkersRequest:
type: object
properties:
requestCriteria:
$ref: '#/components/schemas/RequestCriteria'
workerReferenceIDs:
type: array
description: Specific worker IDs to retrieve
items:
type: string
organizationReference:
$ref: '#/components/schemas/ResourceReference'
WorkersResponse:
type: object
properties:
total:
type: integer
description: Total number of workers matching the criteria
data:
type: array
items:
$ref: '#/components/schemas/Worker'
Worker:
type: object
properties:
id:
type: string
description: The Workday ID of the worker
descriptor:
type: string
description: The display name of the worker
workerID:
type: string
description: The employee or contingent worker ID
workerType:
type: string
description: The type of worker
enum:
- Employee
- Contingent_Worker
businessTitle:
type: string
description: The worker's current business title
primaryWorkEmail:
type: string
format: email
description: The worker's primary work email address
hireDate:
type: string
format: date
description: The date the worker was hired
supervisoryOrganization:
$ref: '#/components/schemas/ResourceReference'
location:
$ref: '#/components/schemas/ResourceReference'
GetOrganizationsRequest:
type: object
properties:
requestCriteria:
$ref: '#/components/schemas/RequestCriteria'
organizationType:
type: string
description: Filter by organization type
OrganizationsResponse:
type: object
properties:
total:
type: integer
data:
type: array
items:
$ref: '#/components/schemas/Organization'
Organization:
type: object
properties:
id:
type: string
description: The Workday ID of the organization
descriptor:
type: string
description: The display name of the organization
organizationType:
type: string
description: The type of organization
organizationCode:
type: string
description: The organization reference code
isActive:
type: boolean
description: Whether the organization is currently active
manager:
$ref: '#/components/schemas/ResourceReference'
superior:
$ref: '#/components/schemas/ResourceReference'
GetJournalEntriesRequest:
type: object
properties:
requestCriteria:
$ref: '#/components/schemas/RequestCriteria'
companyReference:
$ref: '#/components/schemas/ResourceReference'
JournalEntriesResponse:
type: object
properties:
total:
type: integer
data:
type: array
items:
type: object
properties:
id:
type: string
descriptor:
type: string
journalNumber:
type: string
accountingDate:
type: string
format: date
status:
type: string
GetPayrollResultsRequest:
type: object
properties:
requestCriteria:
$ref: '#/components/schemas/RequestCriteria'
payGroupReference:
$ref: '#/components/schemas/ResourceReference'
PayrollResultsResponse:
type: object
properties:
total:
type: integer
data:
type: array
items:
type: object
properties:
id:
type: string
descriptor:
type: string
worker:
$ref: '#/components/schemas/ResourceReference'
payPeriod:
type: string
grossPay:
type: number
netPay:
type: number
currency:
type: string
GetBenefitPlansRequest:
type: object
properties:
requestCriteria:
$ref: '#/components/schemas/RequestCriteria'
benefitPlanType:
type: string
BenefitPlansResponse:
type: object
properties:
total:
type: integer
data:
type: array
items:
type: object
properties:
id:
type: string
descriptor:
type: string
planType:
type: string
coverageType:
type: string
isActive:
type: boolean
GetAbsenceInputsRequest:
type: object
properties:
requestCriteria:
$ref: '#/components/schemas/RequestCriteria'
workerReference:
$ref: '#/components/schemas/ResourceReference'
AbsenceInputsResponse:
type: object
properties:
total:
type: integer
data:
type: array
items:
type: object
properties:
id:
type: string
descriptor:
type: string
worker:
$ref: '#/components/schemas/ResourceReference'
absenceType:
type: string
startDate:
type: string
format: date
endDate:
type: string
format: date
quantity:
type: number
unit:
type: string
GetJobPostingsRequest:
type: object
properties:
requestCriteria:
$ref: '#/components/schemas/RequestCriteria'
positionReference:
$ref: '#/components/schemas/ResourceReference'
JobPostingsResponse:
type: object
properties:
total:
type: integer
data:
type: array
items:
type: object
properties:
id:
type: string
descriptor:
type: string
title:
type: string
status:
type: string
postingDate:
type: string
format: date
location:
$ref: '#/components/schemas/ResourceReference'
GetCandidatesRequest:
type: object
properties:
requestCriteria:
$ref: '#/components/schemas/RequestCriteria'
jobPostingReference:
$ref: '#/components/schemas/ResourceReference'
CandidatesResponse:
type: object
properties:
total:
type: integer
data:
type: array
items:
type: object
properties:
id:
type: string
descriptor:
type: string
candidateName:
type: string
applicationDate:
type: string
format: date
status:
type: string
source:
type: string
GetCompensationPlansRequest:
type: object
properties:
requestCriteria:
$ref: '#/components/schemas/RequestCriteria'
compensationPlanType:
type: string
CompensationPlansResponse:
type: object
properties:
total:
type: integer
data:
type: array
items:
type: object
properties:
id:
type: string
descriptor:
type: string
planType:
type: string
effectiveDate:
type: string
format: date
currency:
type: string
GetTimeClockEventsRequest:
type: object
properties:
requestCriteria:
$ref: '#/components/schemas/RequestCriteria'
workerReference:
$ref: '#/components/schemas/ResourceReference'
TimeClockEventsResponse:
type: object
properties:
total:
type: integer
data:
type: array
items:
type: object
properties:
id:
type: string
descriptor:
type: string
worker:
$ref: '#/components/schemas/ResourceReference'
clockInTime:
type: string
format: date-time
clockOutTime:
type: string
format: date-time
totalHours:
type: number
timeCode:
type: string