Test Workday integration API calls

This article lists all API calls made by the out-of-the-box Workday integration and provides a detailed description of how to test whether your Workday instance has all endpoints ready for these calls.

Test API calls using call templates

This section guides you through the process of testing API calls. SOAPUI is required. The open source version works and can be downloaded here: https://www.soapui.org/downloads/soapui/.

These templates can be used in the SOAPUI application to create testing calls for your Workday instance.

Note:

The Custom Report endpoint does not have a template. The request for that endpoint must be created from scratch in the SOAP UI.

Absence Management Endpoint

Follow these steps to test this endpoint.

Enter_Time_Off operation

Update a request of this operation to test it. Once all steps are completed, click the green play button or press Alt+Enter to submit the request.

  1. Go to Request Properties section and fill in or update:
    • Username of synchronization account using the following form: {user_name}@{tenant}
    • Password of synchronization account
  2. Open the request and check the Endpoint address in its header:
    • Replace {tenant} with your tenant name.
    • Check the base URL of Endpoint and update it if necessary.
  3. Go through the XML load of the request and replace with appropriate values:
    • {workerName}
    • {workerID}
    • {planType}
    • {planTypeID}
  4. Go through the XML load of the request and if needed modify:
    • value of bvsc:Date
    • value of both bvsc:Comment
  5. Right-click XML load and click “Add WSS Username Token” > keep “PasswordText” value > OK.
  6. Click the green play button or press Alt+Enter to submit the request.

Get_Time_Off_Plan_Balances operation

Update requests of this operation to test them. Once all steps are completed, click the green play button or press Alt+Enter to submit the request.

  1. Go to Request Properties section and fill in:
    • Username of synchronization account using the following form: {user_name}@{tenant}
    • Password of synchronization account
  2. Open the request and check the Endpoint address in its header:
    • Replace {tenant} with your tenant name
    • Check the base URL of Endpoint and update it if necessary.
  3. For multiple employees: if you need to limit the number of Employees for the test, uncomment a section with bsvc:As_Of_Entry_DateTime and modify the date as needed to lower the number of returned records for your test.
  4. For a single employee: go through the XML load of the request and replace with appropriate values:
    • {workerName}
    • {workerID}
  5. Right-click XML load and click “Add WSS Username Token” > keep “PasswordText” value > OK.
  6. Click the green play button or press Alt+Enter to submit the request.

Custom Report Endpoint

Follow these steps to test this endpoint.

Execute_Report operation

Update a request of this operation to test it. Once all steps are completed, click the green play button or press Alt+Enter to submit the request.

  1. Find out the URL of the WSDL for your custom report in Workday using Actions/… button next to the custom report name: Actions/… > Web Service > View URLs > OK > WSDL.
  2. Click SOAP icon and fill in:
    • Project Name that you want.
    • Initial WSDL with URL of WSDL found in Workday.
    • Leave Create Requests option selected.
  3. Click OK
  4. Go to Request Properties section of Request 1 and fill in:
    • Username of synchronization account using the following form: {user_name}@{tenant}
    • Password of synchronization account
  5. Go through the XML load of the request and modify with appropriate values:
    • Check that a name space of the report is equal to a value listed in “Workday Actions with API calls” section for that custom report, if not correct it on the report and recreate this request.
    • Remove any optional parameter listed in the Report_Parameters section that you do not want to use (or remove the whole section if optional).
    • Update a value of any remaining parameter listed in the Report_Parameters section with an appropriate value for that parameter.
    • Remove or update appropriately the Authentication section.
  6. Right-click XML load and click “Add WSS Username Token” > keep “PasswordText” value > OK.
  7. Click the green play button or press Alt+Enter to submit the request.

Human Resources

Follow these steps to test this endpoint.

Get_Organizations operation

Update a request of this operation to test it. Once all steps are completed, click the green play button or press Alt+Enter to submit the request.

  1. Go to Request Properties section and fill in or update:
    • Username of synchronization account using the following form: {user_name}@{tenant}
    • Password of synchronization account
  2. Open the request and check the Endpoint address in its header:
    • Replace {tenant} with your tenant name.
    • Check the base URL of Endpoint and update it if necessary.
  3. Go through the XML load of the request and replace with appropriate values:
    • {OrganizationID}
  4. Go through the XML load of the request and if needed modify:
    • Value of any of the dates in bsvc:Transaction_Date_Range_Data section
    • If you need to limit the number of returned records for the test, uncomment a section with bsvc:As_Of_Entry_DateTime and modify the date as needed to lower the number of returned records for your test.
  5. Right-click XML load and click “Add WSS Username Token” > keep “PasswordText” value > OK.
  6. Click the green play button or press Alt+Enter to submit the request.

Get_Workers operation

Update a request of this operation to test it. Once all steps are completed, click the green play button or press Alt+Enter to submit the request.

  1. Go to the Request Properties section and fill in or update:
    • Username of synchronization account using the following form: {user_name}@{tenant}
    • Password of synchronization account
  2. Open the request and check the Endpoint address in its header:
    • Replace {tenant} with your tenant name.
    • Check the base URL of Endpoint and update it if necessary.
  3. Go through the XML load of the request and if needed modify: value of any of the dates in bsvc:Transaction_Date_Range_Data section if you need to limit the number of returned records for the test, uncomment a section with bsvc:As_Of_Entry_DateTime and modify the date as needed to lower the number of returned records for your test
  4. Right-click XML load and click “Add WSS Username Token” > keep “PasswordText” value > OK.
  5. Click the green play button or press Alt+Enter to submit the request.

Inbox Tasks for Worker (REST API calls)

Follow these steps to test this endpoint.

GET List of Inbox Tasks

Update a request of this operation to test it. Once all steps are completed, click the green play button or press Alt+Enter to submit the request.

  1. Open the request and check the Endpoint address in its header:
    • Replace {tenant} with your tenant name.
    • Replace {workerID} with the Workday ID of a worker you want to test on.
    • Check the Endpoint and update it if necessary using the following steps:
      1. Open the list of values and select “[edit current..]”.
      2. Update the value if necessary and confirm by clicking OK.
  2. Update authentication following these steps:
    1. Open Auth in the left-bottom corner of the request window.
    2. Select “Workday OAuth2.0” from the Authorization drop-down menu.
    3. If you authenticated the request previously, you can click “Refresh” button to get a valid token and skip the following steps.
    4. If you did not authenticated the request previously, click “Get Token”. and replace following parts with appropriate values:
      • {tenant} with your tenant name.
      • {ClientID} with your Client ID.
      • {ClientSecret} with your Client Secret.
      • Update a value of Access Token URI if necessary.
      • Update Redirect URI if necessary.
      • Click Get Access Token and wait for Workday login screen to open (if you get an error and the log-in screen does not open then click Get Access Token again and again until the log-in screen opens).
      • Log in to Workday using credentials of a user appropriate to used Workday ID and wait for the window to close itself.
  3. Click the green play button or press Alt+Enter to submit the request.

Note:

Switch the outcome part of the request window to JSON tab to see a response.

GET Inbox Task Details

Update a request of this operation to test it. Once all steps are completed, click the green play button or press Alt+Enter to submit the request.

  1. Open the request and check the Endpoint address in its header:
    • Replace {tenant} with your tenant name.
    • Replace {workerID} with the Workday ID of a worker you want to test on.
    • Replace {InboxItemID} with the Workday ID of an Inbox item you want to test on
    • Check the Endpoint and update it if necessary using the following steps:
      1. Open the list of values and select “[edit current..]”.
      2. Update the value if necessary and confirm by clicking OK.
  2. Update authentication following these steps:
    1. Open Auth in the left-bottom corner of the request window.
    2. Select “Workday OAuth2.0” from the Authorization drop-down menu.
    3. If you authenticated the request previously, you can click “Refresh” button to get a valid token and skip the following steps.
    4. If you did not authenticated the request previously, click “Get Token”. and replace following parts with appropriate values:
      • {tenant} with your tenant name.
      • {ClientID} with your Client ID.
      • {ClientSecret} with your Client Secret.
      • Update a value of Access Token URI if necessary.
      • Update Redirect URI if necessary.
      • Click Get Access Token and wait for Workday login screen to open (if you get an error and login screen does not open then click Get Access Token again and again until the log-in screen opens).
      • Log in to Workday using credentials of a user appropriate to used Workday ID and wait for the window to close itself.
  3. Click the green play button or press Alt+Enter to submit the request.

Note:

Switch the outcome part of the request window to JSON tab to see a response.

PUT Approve Inbox Task by ID

Update a request of this operation to test it. Once all steps are completed, click the green play button or press Alt+Enter to submit the request.

  1. Open the request and check the Endpoint address in its header:
    • Replace {tenant} with your tenant name.
    • Replace {InboxItemID} with the Workday ID of an Inbox item you want to test on
    • Check the Endpoint and update it if necessary using the following steps:
      1. Open the list of values and select “[edit current..]”.
      2. Update the value if necessary and confirm by clicking OK.
  2. Update authentication following these steps:
    1. Open Auth in the left-bottom corner of the request window.
    2. Select “Workday OAuth2.0” from the Authorization drop-down menu.
    3. If you authenticated the request previously, you can click “Refresh” button to get a valid token and skip the following steps.
    4. If you did not authenticated the request previously, click “Get Token”. and replace following parts with appropriate values:
      • {tenant} with your tenant name.
      • {ClientID} with your Client ID.
      • {ClientSecret} with your Client Secret.
      • Update a value of Access Token URI if necessary.
      • Update Redirect URI if necessary.
      • Click Get Access Token and wait for Workday log-in screen to open (if you get an error and the log-in screen does not open then click Get Access Token again and again until the log-in screen opens).
      • Log in to Workday using credentials of a user appropriate to used Workday ID and wait for the window to close itself.
  3. Click the green play button or press Alt+Enter to submit the request.

Note:

Switch the outcome part of the request window to JSON tab to see a response.

PUT Deny Inbox Task by ID

Follow the same steps as the process above to update a request of this operation to test it. Once all steps are completed, click the green play button or press Alt+Enter to submit the request.

Resource Management Endpoint

Follow these steps to test this endpoint.

Get_Expense_Items operation

Update a request of this operation to test it. Once all steps are completed, click the green play button or press Alt+Enter to submit the request.

  1. Go to Request Properties section and fill in or update:
    • Username of synchronization account using the following form: {user_name}@{tenant}
    • Password of synchronization account
  2. Open the request and check the Endpoint address in its header:
    • Replace {tenant} with your tenant name
    • Check the base URL of Endpoint and update it if necessary
  3. Go through the XML load of the request and if needed modify:
    • If you need to limit the number of returned records for the test, uncomment a section with bsvc:As_Of_Effective_Date and bsvc:As_Of_Entry_DateTime and modify the date(s) as needed to lower the number of returned records for your test.
  4. Right-click XML load and click “Add WSS Username Token” > keep “PasswordText” value > OK.
  5. Click the green play button or press Alt+Enter to submit the request.

Get_Expense_Reports operation

Update a request of this operation to test it. Once all steps are completed, click the green play button or press Alt+Enter to submit the request.

  1. Go to Request Properties section and fill in or update:
    • Username of synchronization account using the following form: {user_name}@{tenant}
    • Password of synchronization account
  2. Open the request and check the Endpoint address in its header:
    • Replace {tenant} with your tenant name.
    • Check the base URL of Endpoint and update it if necessary.
  3. Go through the XML load of the request and if needed modify:
    • The value of any of the dates in section to limit the number of returned records for your test.
  4. Right-click XML load and click “Add WSS Username Token” > keep “PasswordText” value > OK.
  5. Click the green play button or press Alt+Enter to submit the request.

Get_Purchase_Orders operation

Follow the same steps as the process above to update a request of this operation to test it. Once all steps are completed, click the green play button or press Alt+Enter to submit the request.

Get_Resource_Categories operation

Follow the same steps as the process above to update a request of this operation to test it. Once all steps are completed, click the green play button or press Alt+Enter to submit the request.

Get_Suppliers operation

Follow the same steps as the process above to update a request of this operation to test it. Once all steps are completed, click the green play button or press Alt+Enter to submit the request.

Workday actions with API calls

This section lists all API calls made by the out-of-the-box Workday integration.

Change Job Inbox Action

APPROVAL

Executed calls:

  • calls “GET Inbox Task Details” and downloads actual data: GET {WorkdayRestApiEndpointUrl}/workers/{workerId}/inboxTasks/{inboxTaskId}
  • calls “PUT Approve Inbox Task by ID” and uploads a change to status: PUT {WorkdayRestApiEndpointUrl}/inboxTasks/{inboxTaskId}?type=approval
  • calls “GET Inbox Task Details” and checks the change: GET {WorkdayRestApiEndpointUrl}/workers/{workerId}/inboxTasks/{inboxTaskId}

DENIAL

Executed calls:

  • calls “GET Inbox Task Details” and downloads actual data: GET {WorkdayRestApiEndpointUrl}/workers/{workerId}/inboxTasks/{inboxTaskId}
  • calls “PUT Deny Inbox Task by ID” and uploads a change to status: PUT {WorkdayRestApiEndpointUrl}/inboxTasks/{inboxTaskId}?type= denial
  • calls “GET Inbox Task Details” and checks the change: GET {WorkdayRestApiEndpointUrl}/workers/{workerId}/inboxTasks/{inboxTaskId}

Expense Report Inbox Action

APPROVAL

Executed calls:

  • calls “GET Inbox Task Details” and downloads actual data: GET {WorkdayRestApiEndpointUrl}/workers/{workerId}/inboxTasks/{inboxTaskId}
  • calls “PUT Approve Inbox Task by ID” and uploads a change to status: PUT {WorkdayRestApiEndpointUrl}/inboxTasks/{inboxTaskId}?type=approval
  • calls “GET Inbox Task Details” and checks the change: GET {WorkdayRestApiEndpointUrl}/workers/{workerId}/inboxTasks/{inboxTaskId}
  • calls “Get_Expense_Reports” operation and downloads modified data from a report: SOAP call targetNamespace = “urn:com.workday/bsvc/Resource_Management”, name = “Resource_ManagementPort” operationName = “Get_Expense_Reports”

DENIAL

Executed calls:

  • calls “GET Inbox Task Details” and downloads actual data: GET {WorkdayRestApiEndpointUrl}/workers/{workerId}/inboxTasks/{inboxTaskId}
  • calls “PUT Deny Inbox Task by ID” and uploads a change to status: PUT {WorkdayRestApiEndpointUrl}/inboxTasks/{inboxTaskId}?type= denial
  • calls “GET Inbox Task Details” and checks the change: GET {WorkdayRestApiEndpointUrl}/workers/{workerId}/inboxTasks/{inboxTaskId}
  • calls “Get_Expense_Reports” operation and downloads modified data from a custom report: SOAP call targetNamespace = “urn:com.workday/bsvc/Resource_Management”, name = “Resource_ManagementPort” operationName = “Get_Expense_Reports”

Submit Time Off Action

Executed calls:

  • calls “Enter_Time_Off operation” operation and creates a request: SOAP call targetNamespace = “urn:com.workday/bsvc/Absence_Management”, name = “Absence_ManagementPort” operationName = “Enter_Time_Off”

Time Off Request Inbox Action

APPROVAL

Executed calls:

  • calls “GET Inbox Task Details” and downloads actual data: GET {WorkdayRestApiEndpointUrl}/ccx/api/v1/{tenant}/workers/{workerId}/inboxTasks/{inboxTaskId}
  • calls “PUT Approve Inbox Task by ID” and uploads a change to status: PUT {WorkdayRestApiEndpointUrl}/ccx/api/v1/{tenant}/inboxTasks/{inboxTaskId}?type=approval
  • calls “GET Inbox Task Details” and checks the change: GET {WorkdayRestApiEndpointUrl}/ccx/api/v1/{tenant}/workers/{workerId}/inboxTasks/{inboxTaskId}
  • calls “Get_Expense_Reports” operation and downloads modified data from a custom report for a Worker based on ID: SOAP call targetNamespace = “urn:com.workday/bsvc/Absence_Management”, name = “Absence_ManagementPort” operationName = “Get_Time_Off_Plan_Balances”

DENIAL

Executed calls:

  • calls “GET Inbox Task Details” and downloads actual data: GET {WorkdayRestApiEndpointUrl}/workers/{workerId}/inboxTasks/{inboxTaskId}
  • calls “PUT Deny Inbox Task by ID” and uploads a change to status: PUT {WorkdayRestApiEndpointUrl}/inboxTasks/{inboxTaskId}?type= denial
  • calls “GET Inbox Task Details” and checks the change: GET {WorkdayRestApiEndpointUrl}/workers/{workerId}/inboxTasks/{inboxTaskId}
  • calls “Get_Expense_Reports” operation and downloads modified data from a custom report for a Worker based on ID: SOAP call targetNamespace = “urn:com.workday/bsvc/Absence_Management”, name = “Absence_ManagementPort” operationName = “Get_Time_Off_Plan_Balances”

Synchronization

The namespace used by your custom reports must be the same as is listed below even though their names can differ sometimes.

Full Synchronization

Synchronized data and calls executed to get them:

  • calls “Get_Resource_Categories” operation and SpendCategories: SOAP call targetNamespace = “urn:com.workday/bsvc/Resource_Management”, name = “Resource_ManagementPort” operationName = “Get_Resource_Categories”
  • calls “Get_Expense_Items” operation and ExpenseItems: SOAP call targetNamespace = “urn:com.workday/bsvc/Resource_Management”, name = “Resource_ManagementPort” operationName = “Get_Expense_Items”
  • calls “Get_Organizations” operation and Organizations: SOAP call targetNamespace = “urn:com.workday/bsvc/Human_Resources”, name = “Human_ResourcesPort” operationName = “Get_Organizations”
  • calls “Get_Workers” operation and AllWorkers: SOAP call targetNamespace = “urn:com.workday/bsvc/Human_Resources”, name = “Human_ResourcesPort” operationName = “Get_Workers”
  • calls “Get_Time_Off_Plan_Balances” operation and TimeOffPlanRelatedItems: SOAP call targetNamespace = “urn:com.workday/bsvc/Absence_Management”, name = “Absence_ManagementPort” operationName = “Get_Time_Off_Plan_Balances”
  • calls “Get_Expense_Reports” operation and ExpenseReports: SOAP call targetNamespace = “urn:com.workday/bsvc/Resource_Management”, name = “Resource_ManagementPort” operationName = “Get_Expense_Reports”
  • calls “Get_Purchase_Orders” operation and PurchaseOrders: SOAP call targetNamespace = “urn:com.workday/bsvc/Resource_Management”, name = “Resource_ManagementPort” operationName = “Get_Purchase_Orders”
  • calls “Get_Suppliers” operation and Suppliers: SOAP call targetNamespace = “urn:com.workday/bsvc/Resource_Management”, name = “Resource_ManagementPort” operationName = “Get_Suppliers”
  • calls “Execute_Report” operation for “Event_Records_For_Time_Off_Requests” custom report and TimeOffRequestApprovals: SOAP call targetNamespace = “urn:com.workday.report/Event_Records_For_Time_Off_Requests”, name = “ReportPort” operationName = “Execute_Report”
  • calls “Execute_Report” operation for “Absence_Requests” custom report and TimeOffRequestItems: SOAP call targetNamespace = “urn:com.workday.report/Absence_Requests”, name = “ReportPort” operationName = “Execute_Report”
  • calls “Execute_Report” operation for “Event_Records_For_Expenses” custom report and ExpenseReportInboxItems: SOAP call targetNamespace = “urn:com.workday.report/Event_Records_For_Expenses”, name = “ReportPort” operationName = “Execute_Report”
  • calls “Execute_Report” operation for “Staffing_Activities” custom report and ChangeJobInboxItems: SOAP call targetNamespace = “urn:com.workday.report/Staffing_Activities”, name = “ReportPort” operationName = “Execute_Report”
  • calls “Execute_Report” operation for “Event_Records_For_Change_Job” custom report and PendingChangeJobApprovals: SOAP call targetNamespace = “urn:com.workday.report/Event_Records_For_Change_Job”, name = “ReportPort” operationName = “Execute_Report”
  • calls “Execute_Report” operation for “Event_Records_For_Milestone” custom report and MilestoneItems: SOAP call targetNamespace = “urn:com.workday.report/Event_Records_For_Milestone”, name = “ReportPort” operationName = “Execute_Report”

Incremental Synchronization

Executed calls:

  • calls “Get_Expense_Reports” operation and ExpenseReports: SOAP call targetNamespace = “urn:com.workday/bsvc/Resource_Management”, name = “Resource_ManagementPort” operationName = “Get_Expense_Reports”
  • calls “Get_Purchase_Orders” operation and PurchaseOrders: SOAP call targetNamespace = “urn:com.workday/bsvc/Resource_Management”, name = “Resource_ManagementPort” operationName = “Get_Purchase_Orders”
  • calls “Get_Suppliers” operation and Suppliers: SOAP call targetNamespace = “urn:com.workday/bsvc/Resource_Management”, name = “Resource_ManagementPort” operationName = “Get_Suppliers”
  • calls “Execute_Report” operation for “Event_Records_For_Time_Off_Requests” custom report and TimeOffRequestApprovals: SOAP call targetNamespace = “urn:com.workday.report/Event_Records_For_Time_Off_Requests”, name = “ReportPort” operationName = “Execute_Report”
  • calls “Execute_Report” operation for “Absence_Requests” custom report and TimeOffRequestItems: SOAP call targetNamespace = “urn:com.workday.report/Absence_Requests”, name = “ReportPort” operationName = “Execute_Report”
  • calls “Execute_Report” operation for “Event_Records_For_Expenses” custom report and ExpenseReportInboxItems: SOAP call targetNamespace = “urn:com.workday.report/Event_Records_For_Expenses”, name = “ReportPort” operationName = “Execute_Report”
  • calls “Execute_Report” operation for “Staffing_Activities” custom report and ChangeJobInboxItems: SOAP call targetNamespace = “urn:com.workday.report/Staffing_Activities”, name = “ReportPort” operationName = “Execute_Report”
  • calls “Execute_Report” operation for “Event_Records_For_Change_Job” custom report and PendingChangeJobApprovals: SOAP call targetNamespace = “urn:com.workday.report/Event_Records_For_Change_Job”, name = “ReportPort” operationName = “Execute_Report”
  • calls “Execute_Report” operation for “Event_Records_For_Milestone” custom report and MilestoneItems: SOAP call targetNamespace = “urn:com.workday.report/Event_Records_For_Milestone”, name = “ReportPort” operationName = “Execute_Report”

Test Workday integration API calls