---
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

## 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).