---
availability: INSTALLABLE
description: Enables employees to withdraw pending or approved upcoming PTO requests from the HRIS, keeping time off records and balances accurate when plans change.
name: Cancel PTO Request
installation_asset_uuid: b83852b2-919c-4a26-b9b5-aa87fa2d1c73
purple_chat_link: https://marketplace.moveworks.com/purple-chat?conversation=%7B%22messages%22%3A%5B%7B%22role%22%3A%22user%22%2C%22parts%22%3A%5B%7B%22richText%22%3A%22I+want+to+cancel+a+PTO+request%22%7D%5D%7D%2C%7B%22role%22%3A%22assistant%22%2C%22parts%22%3A%5B%7B%22reasoningSteps%22%3A%5B%7B%22status%22%3A%22success%22%2C%22richText%22%3A%22%3Cp%3ESearching+for+leave+requests+in+%3Cstrong%3EUKG%3C%2Fstrong%3E...%3C%2Fp%3E%22%2C%22connectorName%22%3A%22ukg%22%7D%5D%7D%2C%7B%22richText%22%3A%22%3Cp%3EI+found+4+PTO+requests+in+%3Cstrong%3EUKG%3C%2Fstrong%3E%3A%3C%2Fp%3E%3Cul%3E%3Cli%3E%3Cstrong%3EPTO-882%3C%2Fstrong%3E+%7C+Personal+%7C+Jan+20+-+Jan+21%2C+2025+%7C+Appointments+%28%3Cstrong%3EApproved%3C%2Fstrong%3E%29%3C%2Fli%3E%3Cli%3E%3Cstrong%3EPTO-901%3C%2Fstrong%3E+%7C+Vacation+%7C+Mar+10+-+Mar+12%2C+2025+%7C+Family+visit+%28%3Cstrong%3EPending%3C%2Fstrong%3E%29%3C%2Fli%3E%3Cli%3E%3Cstrong%3EPTO-905%3C%2Fstrong%3E+%7C+Vacation+%7C+May+15+-+May+20%2C+2025+%7C+Spring+Break+%28%3Cstrong%3EPending%3C%2Fstrong%3E%29%3C%2Fli%3E%3Cli%3E%3Cstrong%3EPTO-895%3C%2Fstrong%3E+%7C+Vacation+%7C+Jun+10+-+Jun+15%2C+2025+%7C+Summer+Trip+%28%3Cstrong%3EApproved%3C%2Fstrong%3E%29%3C%2Fli%3E%3C%2Ful%3E%3Cp%3EWhich+one+would+you+like+to+cancel%3F%3C%2Fp%3E%22%7D%5D%7D%2C%7B%22role%22%3A%22user%22%2C%22parts%22%3A%5B%7B%22richText%22%3A%22Actually%2C+can+I+just+change+the+dates+for+PTO-895+instead+of+canceling+it%3F%22%7D%5D%7D%2C%7B%22role%22%3A%22assistant%22%2C%22parts%22%3A%5B%7B%22richText%22%3A%22%3Cp%3EIn+%3Cstrong%3EUKG%3C%2Fstrong%3E%2C+existing+PTO+requests+cannot+be+modified+directly.+To+change+your+dates%2C+you%27ll+need+to+%3Cb%3Ecancel%3C%2Fb%3E+the+current+request+and+%3Cb%3Esubmit%3C%2Fb%3E+a+new+one+for+the+updated+period.%3C%2Fp%3E%3Cp%3EWould+you+like+to+proceed+with+canceling+%3Cstrong%3EPTO-895%3C%2Fstrong%3E+so+you+can+resubmit+it%3F%3C%2Fp%3E%22%7D%2C%7B%22buttons%22%3A%5B%7B%22buttonText%22%3A%22Yes%22%2C%22style%22%3A%22filled%22%7D%2C%7B%22buttonText%22%3A%22Cancel%22%2C%22style%22%3A%22outlined%22%7D%5D%7D%5D%7D%2C%7B%22role%22%3A%22user%22%2C%22parts%22%3A%5B%7B%22richText%22%3A%22Yes%22%7D%5D%7D%2C%7B%22role%22%3A%22assistant%22%2C%22parts%22%3A%5B%7B%22reasoningSteps%22%3A%5B%7B%22status%22%3A%22success%22%2C%22richText%22%3A%22%3Cp%3ECancelling+request+in+%3Cstrong%3EUKG%3C%2Fstrong%3E...%3C%2Fp%3E%22%2C%22connectorName%22%3A%22ukg%22%7D%5D%7D%2C%7B%22richText%22%3A%22Done%21+Your+vacation+request+in+June+has+been+cancelled.+You+can+now+submit+a+new+request+with+your+updated+dates.%22%7D%2C%7B%22citations%22%3A%5B%7B%22connectorName%22%3A%22ukg%22%2C%22citationTitle%22%3A%22PTO-895%22%7D%5D%7D%5D%7D%2C%7B%22role%22%3A%22user%22%2C%22parts%22%3A%5B%7B%22richText%22%3A%22Also+cancel+the+vacation+in+May+%28PTO-905%29+and+add+comment+%5C%22Trip+postponed%5C%22.%22%7D%5D%7D%2C%7B%22role%22%3A%22assistant%22%2C%22parts%22%3A%5B%7B%22richText%22%3A%22%3Cp%3EI%27ll+cancel+your+%3Cstrong%3EPending%3C%2Fstrong%3E+request+for+May+15+-+May+20+%28PTO-905%29.%3C%2Fp%3E%3Cul%3E%3Cli%3E%3Cstrong%3EComment%3A%3C%2Fstrong%3E+Trip+postponed%3C%2Fli%3E%3C%2Ful%3E%3Cp%3EConfirm+these+details%3F%3C%2Fp%3E%22%7D%2C%7B%22buttons%22%3A%5B%7B%22buttonText%22%3A%22Yes%22%2C%22style%22%3A%22filled%22%7D%2C%7B%22buttonText%22%3A%22Cancel%22%2C%22style%22%3A%22outlined%22%7D%5D%7D%5D%7D%2C%7B%22role%22%3A%22user%22%2C%22parts%22%3A%5B%7B%22richText%22%3A%22Yes%22%7D%5D%7D%2C%7B%22role%22%3A%22assistant%22%2C%22parts%22%3A%5B%7B%22reasoningSteps%22%3A%5B%7B%22status%22%3A%22success%22%2C%22richText%22%3A%22Updating+record+in+%3Cb%3EUKG%3C%2Fb%3E%22%2C%22connectorName%22%3A%22ukg%22%7D%5D%7D%2C%7B%22richText%22%3A%22Successfully+cancelled+your+May+vacation+request+in+%3Cb%3EUKG%3C%2Fb%3E.%22%7D%2C%7B%22citations%22%3A%5B%7B%22connectorName%22%3A%22ukg%22%2C%22citationTitle%22%3A%22PTO-905%22%7D%5D%7D%5D%7D%5D%7D
solution_tags:
- HR - Other
- HR - Time & Absence
systems:
- ukg-pro-wfm
---

# Description

Enables employees to withdraw pending or approved upcoming PTO requests from the HRIS, keeping time off records and balances accurate when plans change.

# User Experience Preview

Please refer to the following [**Purple Chat**](https://marketplace.moveworks.com/purple-chat?conversation=%7B%22messages%22%3A%5B%7B%22role%22%3A%22user%22%2C%22parts%22%3A%5B%7B%22richText%22%3A%22I+want+to+cancel+a+PTO+request%22%7D%5D%7D%2C%7B%22role%22%3A%22assistant%22%2C%22parts%22%3A%5B%7B%22reasoningSteps%22%3A%5B%7B%22status%22%3A%22success%22%2C%22richText%22%3A%22%3Cp%3ESearching+for+leave+requests+in+%3Cstrong%3EUKG%3C%2Fstrong%3E...%3C%2Fp%3E%22%2C%22connectorName%22%3A%22ukg%22%7D%5D%7D%2C%7B%22richText%22%3A%22%3Cp%3EI+found+4+PTO+requests+in+%3Cstrong%3EUKG%3C%2Fstrong%3E%3A%3C%2Fp%3E%3Cul%3E%3Cli%3E%3Cstrong%3EPTO-882%3C%2Fstrong%3E+%7C+Personal+%7C+Jan+20+-+Jan+21%2C+2025+%7C+Appointments+%28%3Cstrong%3EApproved%3C%2Fstrong%3E%29%3C%2Fli%3E%3Cli%3E%3Cstrong%3EPTO-901%3C%2Fstrong%3E+%7C+Vacation+%7C+Mar+10+-+Mar+12%2C+2025+%7C+Family+visit+%28%3Cstrong%3EPending%3C%2Fstrong%3E%29%3C%2Fli%3E%3Cli%3E%3Cstrong%3EPTO-905%3C%2Fstrong%3E+%7C+Vacation+%7C+May+15+-+May+20%2C+2025+%7C+Spring+Break+%28%3Cstrong%3EPending%3C%2Fstrong%3E%29%3C%2Fli%3E%3Cli%3E%3Cstrong%3EPTO-895%3C%2Fstrong%3E+%7C+Vacation+%7C+Jun+10+-+Jun+15%2C+2025+%7C+Summer+Trip+%28%3Cstrong%3EApproved%3C%2Fstrong%3E%29%3C%2Fli%3E%3C%2Ful%3E%3Cp%3EWhich+one+would+you+like+to+cancel%3F%3C%2Fp%3E%22%7D%5D%7D%2C%7B%22role%22%3A%22user%22%2C%22parts%22%3A%5B%7B%22richText%22%3A%22Actually%2C+can+I+just+change+the+dates+for+PTO-895+instead+of+canceling+it%3F%22%7D%5D%7D%2C%7B%22role%22%3A%22assistant%22%2C%22parts%22%3A%5B%7B%22richText%22%3A%22%3Cp%3EIn+%3Cstrong%3EUKG%3C%2Fstrong%3E%2C+existing+PTO+requests+cannot+be+modified+directly.+To+change+your+dates%2C+you%27ll+need+to+%3Cb%3Ecancel%3C%2Fb%3E+the+current+request+and+%3Cb%3Esubmit%3C%2Fb%3E+a+new+one+for+the+updated+period.%3C%2Fp%3E%3Cp%3EWould+you+like+to+proceed+with+canceling+%3Cstrong%3EPTO-895%3C%2Fstrong%3E+so+you+can+resubmit+it%3F%3C%2Fp%3E%22%7D%2C%7B%22buttons%22%3A%5B%7B%22buttonText%22%3A%22Yes%22%2C%22style%22%3A%22filled%22%7D%2C%7B%22buttonText%22%3A%22Cancel%22%2C%22style%22%3A%22outlined%22%7D%5D%7D%5D%7D%2C%7B%22role%22%3A%22user%22%2C%22parts%22%3A%5B%7B%22richText%22%3A%22Yes%22%7D%5D%7D%2C%7B%22role%22%3A%22assistant%22%2C%22parts%22%3A%5B%7B%22reasoningSteps%22%3A%5B%7B%22status%22%3A%22success%22%2C%22richText%22%3A%22%3Cp%3ECancelling+request+in+%3Cstrong%3EUKG%3C%2Fstrong%3E...%3C%2Fp%3E%22%2C%22connectorName%22%3A%22ukg%22%7D%5D%7D%2C%7B%22richText%22%3A%22Done%21+Your+vacation+request+in+June+has+been+cancelled.+You+can+now+submit+a+new+request+with+your+updated+dates.%22%7D%2C%7B%22citations%22%3A%5B%7B%22connectorName%22%3A%22ukg%22%2C%22citationTitle%22%3A%22PTO-895%22%7D%5D%7D%5D%7D%2C%7B%22role%22%3A%22user%22%2C%22parts%22%3A%5B%7B%22richText%22%3A%22Also+cancel+the+vacation+in+May+%28PTO-905%29+and+add+comment+%5C%22Trip+postponed%5C%22.%22%7D%5D%7D%2C%7B%22role%22%3A%22assistant%22%2C%22parts%22%3A%5B%7B%22richText%22%3A%22%3Cp%3EI%27ll+cancel+your+%3Cstrong%3EPending%3C%2Fstrong%3E+request+for+May+15+-+May+20+%28PTO-905%29.%3C%2Fp%3E%3Cul%3E%3Cli%3E%3Cstrong%3EComment%3A%3C%2Fstrong%3E+Trip+postponed%3C%2Fli%3E%3C%2Ful%3E%3Cp%3EConfirm+these+details%3F%3C%2Fp%3E%22%7D%2C%7B%22buttons%22%3A%5B%7B%22buttonText%22%3A%22Yes%22%2C%22style%22%3A%22filled%22%7D%2C%7B%22buttonText%22%3A%22Cancel%22%2C%22style%22%3A%22outlined%22%7D%5D%7D%5D%7D%2C%7B%22role%22%3A%22user%22%2C%22parts%22%3A%5B%7B%22richText%22%3A%22Yes%22%7D%5D%7D%2C%7B%22role%22%3A%22assistant%22%2C%22parts%22%3A%5B%7B%22reasoningSteps%22%3A%5B%7B%22status%22%3A%22success%22%2C%22richText%22%3A%22Updating+record+in+%3Cb%3EUKG%3C%2Fb%3E%22%2C%22connectorName%22%3A%22ukg%22%7D%5D%7D%2C%7B%22richText%22%3A%22Successfully+cancelled+your+May+vacation+request+in+%3Cb%3EUKG%3C%2Fb%3E.%22%7D%2C%7B%22citations%22%3A%5B%7B%22connectorName%22%3A%22ukg%22%2C%22citationTitle%22%3A%22PTO-905%22%7D%5D%7D%5D%7D%5D%7D) for a sample conversational experience between a user and the AI Assistant for this plugin.

# Pre-requisites

Before installing and using the **Cancel PTO Request** plugin, please ensure the following requirements are met:

## **1. UKG Connector**

This plugin requires an active **UKG connector** and **user consent auth** to communicate with your UKG instance.

- If you have not already configured the connector, please follow the [UKG Connector Guide](https://marketplace.moveworks.com/connectors/ukg-pro-wfm) available in the Moveworks Marketplace.
- The connector must be fully set up before installing this plugin.
- Once the connector is successfully configured, follow our [**plugin installation documentation**](https://help.moveworks.com/docs/ai-agent-marketplace-installation) for detailed steps on how to install and activate the plugin in **Agent Studio**.

> The UKG User consent auth expires every 24 hours, which means the user will need to authorise once every 24 hours. This is a known issue and is being handled by UKG/support built on Moveworks.
> 

## **2. UKG WFM System Requirements**

### **End User Permissions (Employee Persona)**

To cancel a PTO request through this plugin, employees must already have permission to cancel PTO requests in UKG WFM — the same permissions required to cancel a PTO request through the UKG WFM UI.

At a minimum, end users must have:

- **Time Off permissions** that allow:
    - Viewing available Time Off Types
    - Cancelling a Time Off request
- Access to their own **employee profile and time account balances**

> Note: The plugin does not grant new permissions. It respects existing role-based permissions and policies granted to the user in UKG WFM.
> 

# **Implementation details**

## Visual Representation of How the Plugin Works

![image.png](Cancel%20PTO%20Request/image.png)

## API Details

<aside>
💡

To use the curl examples below be sure to update details for <YOUR_UKG_HOST>.

Admin checklist: Hostname:

Step 1. Find your UKG hostname

- Log in to UKG and check the address bar.

Examples you might see:

[https://acme-dev.cfn.mykronos.com](https://acme-dev.cfn.mykronos.com/)

[https://acme-test.cfn.mykronos.com](https://acme-test.cfn.mykronos.com/)

[https://acme-uat.cfn.mykronos.com](https://acme-uat.cfn.mykronos.com/)

[https://acme-prod.cfn.mykronos.com](https://acme-prod.cfn.mykronos.com/).

</aside>

### **API #1: Lookup Current User**

This REST API is used to **retrieve current user details** in UKG WFM. This is used to fetch the UKG user id details e.g. person_number, person_id that is being used in other APIs.

```bash
curl --request GET \
  --url 'https://<YOUR_UKG_HOST>/api/v1/commons/persons/current_user_info?include_contact_information=true' \
  --header 'Authorization: Bearer {{access_token}}' \
  --header 'Content-Type: application/json'
```

**Query Parameters:**

- None.

### **API #2: Fetches the pending PTO for an employee by date**

This API is used to **retrieve pending PTO requests** in UKG which will be used in to cancel the PTOs using API#4. WorkflowRequestId of the PTO will be passed to cancel it.

```bash
curl --request POST \
  --url https://<YOUR_UKG_HOST>/api/v1/scheduling/timeoff/multi_read \
  --header 'Authorization: Bearer {{access_token}}' \
  --header 'Content-Type: application/json' \
  --data '{
  "where": {
    "states": {
      "employeeRefs": {
        "ids": [{{USER_ID}}]
      },
      "completionState": "INCOMPLETE",
      "endDate": "{{END_DATE}}",
      "startDate": "{{START_DATE}}"
    }
  }
}'
```

**Query Parameters:**

- `USER_ID` *(string):* UKG user identifier of the employee.
- `START_DATE` *(string):* Start date of the range to search for PTO requests. Default date is 3 months before today.
- `END_DATE` *(string):* End date of the range to search for PTO requests. Default date is 3 months after today.

### **API #3: Fetches the approved PTO for an employee by date**

This API is used to **retrieve approved PTO requests** in UKG WFM which will be used in to cancel the PTOs using API#4. Workflow RequestId of the PTO will be passed to cancel it.

```bash
curl --request POST \
  --url https://<YOUR_UKG_HOST>/api/v1/scheduling/timeoff/multi_read \
  --header 'Authorization: Bearer {{access_token}}' \
  --header 'Content-Type: application/json' \
  --data '{
  "where": {
    "states": {
      "employeeRefs": {
        "ids": [{{USER_ID}}]
      },
      "completionState": "COMPLETE",
      "endDate": "{{END_DATE}}",
      "startDate": "{{START_DATE}}"
    }
  }
}'
```

**Query Parameters:**

- `USER_ID` *(string):* UKG user identifier of the employee.
- `START_DATE` *(string):* Start date of the range to search for PTO requests. Default date is today.
- `END_DATE` *(string):* End date of the range to search for PTO requests. Default date is 3 months after today

### **API #4: Update PTO status**

This API is used to update the status of PTO requests in UKG WFM. Specifically, cancelling PTO requests.

```bash
curl --request POST \
  --url https://<YOUR_UKG_HOST>/api/v1/scheduling/timeoff/apply_update \
  --header 'Authorization: Bearer {{access_token}}' \
  --header 'Content-Type: application/json' \
  --data '{
	"changeState": {
		"do": {
			"toStatus": {
				"name": "Cancelled"
			},
			"commentNotes": [
				{
					"comment": {
						"active": true,
						"name": "Request Comment"
					},
					"notes": [
						{
							"text": "{{COMMENT_TEXT}}",
							"dataSourceDisplayName": "{{USERNAME}}"
						}
					]
				}
			]
		},
		"where": {
			"timeOffRequestId": "{{PTO_ID}}"
		}
	}
}'
```

**Query Parameters:**

- `PTO_ID` *(string):* UKG identifier for the PTO request
- `COMMENT_TEXT` *(string):* Comments to be added to the PTO request.

### API References

This plugin use **UKG WFM Pro Time Management REST APIs** to retrieve employee information, enumerate PTO requests, and cancel PTO requests.

For detailed information on request parameters, response formats, error handling, and versioning, please refer to the [**official UKG API documentation**](https://developer.ukg.com/wfm/reference/welcome-to-the-ukg-pro-workforce-management-api) provided by UKG.

# **What Is In Scope for This Plugin?**

This plugin supports the following capabilities:

- Cancelling PTO requests for **limited leave types** (e.g., Vacation, Sick Leave, Casual Leave, Earned Leave, Comp Time).
- Cancelling approved or pending requests for an **employee’s own PTO only**.
- Cancelling PTO requests that respect **existing UKG WFM policies, validations, and approval workflows**.

# **What Is Out of Scope for This Plugin?**

This plugin does **not** support the following:

- Cancelling PTO requests for **non-limited or leave-of-absence types**, such as parental leave, FMLA, or long-term disability.
- Cancelling **partial PTO requests** (e.g., cancelling one day from a PTO request that originally requested 3 days).
