Workday Web Services API

SOAP and REST web services for integrating with Workday applications, providing programmatic access to business management services with WSDL and XML Schema definitions across 55 service areas including Human Resources, Payroll, Benefits, and Financial Management.

Documentation

Specifications

Other Resources

🔗
WSDL
https://community.workday.com/sites/default/files/file-hosting/productionapi/
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/workday-studio/refs/heads/main/capabilities/web-services-absence-management.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/workday-studio/refs/heads/main/capabilities/web-services-benefits-administration.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/workday-studio/refs/heads/main/capabilities/web-services-compensation.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/workday-studio/refs/heads/main/capabilities/web-services-financial-management.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/workday-studio/refs/heads/main/capabilities/web-services-human-resources.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/workday-studio/refs/heads/main/capabilities/web-services-payroll.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/workday-studio/refs/heads/main/capabilities/web-services-recruiting.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/workday-studio/refs/heads/main/capabilities/web-services-service-directory.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/workday-studio/refs/heads/main/capabilities/web-services-staffing.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/workday-studio/refs/heads/main/capabilities/web-services-time-tracking.yaml

OpenAPI Specification

workday-studio-web-services-openapi.yml Raw ↑
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