---
category: [Administration & Integrations, Administration & Integrations/Workday API, Platform and Product Extensions, Platform and Product Extensions/Integration, Administration & Integrations/Custom Integrations & Apps, Platform and Product Extensions/Workday Extend]
keyword: [Extend, Integrate, Business Process, BP, Extend BP, Extend Pro, Subprocess, Orchestration, Model Component BP, BP Event]
nav: wcp_docs
parent_url: /wcp_docs/
title: Extend Business Process Event REST API
layout: subsection
---

## <a id="section_overview"></a>Overview

The Extend Business Process Event REST API enables your Extend app to initiate a business process event for a specific business object. Each business process you create in App Builder generates an app-specific REST API, which provides these endpoints:

-   `POST /{appId}/v1/{businessProcessName}Events`: Initiates the business process event whose inbox routing is managed by the Extend framework.
-   `PATCH /{appId}/v1/{businessProcessName}Events/{eventId}`: If the Extend business process is used as a subprocess, this endpoint updates the Extend business process with the target Extend business object.


The framework routes the pages to the appropriate user’s inbox along with the corresponding event and event step instances. See [Concept: Business Process Steps and Page Routes](/wcp_docs/imo1658531429808.html).

After an Extend business process is initiated, use the [Events REST APIs](/wcp_docs/GUID-0df5cd55-e578-43d3-b58f-ae98825d1df0-enHYPHENus.html) and [Event Steps REST APIs](/wcp_docs/GUID-94cb4185-fabd-4dd5-b391-6aefe9672e32-enHYPHENus.html) in the `businessProcess` REST service to get data about business process events and perform event steps.

-   If your app is using the framework’s inbox routing, you can use the `queryParams.eventId` and `queryParams.eventStepId` variables in the PMD pages to pass instances to the Events and EventSteps REST APIs.

-   If you’re routing the business process steps outside the automatic inbox routing, you’ll need to call the `GET /events` and `GET /eventSteps` endpoints to get the corresponding instances.



For reference documentation about Workday Business Process REST APIs, see `businessProcess` service in the [REST API Explorer on the Developer Site](https://developer.workday.com/rest-api-explorer).

## <a id="section_security_considerations"></a>Security Considerations

-   For security policy configuration on an Extend business process, add a security domain in App Builder, and assign it to the Extend business process in the same app.

    Configure the business process policy through App Manager in the tenant. Select your Extend app and view the business process policy. Add security groups who can access the steps, in the same manner you’d configure the policy for a Workday-delivered business process.

    See [Add Security Domains in Visual Mode](/wcp_docs/igm1659447621522.html) .

-   Defining multiple security domains in Extend business processes impacts access to Model Business Object REST APIs and associated data sources. This also enables dynamic routing of business processes to multiple targets based on multiple `secureByTarget` fields on a business object, with security evaluation based on aggregated contexts.

    A `secureByTarget` field on a business object creates a filter "is [business object Name] accessible" in the data source.

    See [Security Evaluation with Multiple Targets](/wcp_docs/nvi1682534801207.html).



## <a id="section_initiating_event"></a>Initiating a Business Process Event

<b>URL</b>

`https://{basePath}/apps/{appId}/{version}/{businessProcessName}Events`

where:

-   `{basePath}`: The regional URL base path. See [Reference: Workday Extend API Gateways and Authorization Base URLs](/wcp_docs/dlh1653340161856.html).
-   `{appId}`: The reference ID of the Extend app.
-   `{version}`: Currently v1
-   `{businessProcessName}`: The name of the business process you created for your app. Example: <i>CreateCharity</i>.

    <b>Note:</b> The endpoint resource name appends "Events" to the business process name. Example: For the <i>CreateCharity</i> business process, the endpoint resource is <i>CreateCharityEvents</i>.



<b>Note:</b> The Extend Business Process Event REST API is only available through the Extend API Gateway. It’s not available as a tenant-based REST API.

<b>HTTP Method</b> : POST

<b>Content-Type</b> : application/json

<b>Request Body</b> :

<table><thead><tr><th>Field</th><th>Description</th></tr></thead><tbody><tr><td>businessProcessTarget</td><td>(Required) Contains the id of the target business object for this business process. Specify the Workday ID of the Extend business object.</td></tr><tr><td>description</td><td>Describes the business process event.</td></tr></tbody></table><br/>

<b>Response</b> :

<table><thead><tr><th>Field</th><th>Description</th></tr></thead><tbody><tr><td>id</td><td>The Workday ID of the business process event.</td></tr><tr><td>descriptor</td><td>The display name of the business process event.</td></tr><tr><td>description</td><td>The event description, if provided.</td></tr><tr><td>businessProcessTarget</td><td>Contains the id and descriptor of the target business object for this business process.</td></tr></tbody></table><br/>

## <a id="section_prerequisites"></a>Prerequisites

-   Extend business object: An Extend business object is required for any Extend business process.

-   Extend pages: PMD pages are required if you want to route the action steps with custom pages in the recipient’s Inbox. See [Concept: Business Process Steps and Page Routes](/wcp_docs/imo1658531429808.html).



To initiate an Extend business process event, first create its target business object. You’ll use the id of the new target business object when you initiate the business process event.

1.  Create the target business object using the app-specific Extend business object REST API.

    This sample request creates a sample business object named <i>Work Event</i> for the app <i>manageEvents_nkzjqw</i>. Note that the endpoint resource name, <i>workEvents</i>, uses the collection (plural) name of the <i>WorkEvent</i> business object.

    Sample request:

    ```
    POST /apps/manageEvents_nkzjqw/v1/workEvents
     
    ```

    Sample request body:

    ```
    {
      "name": "Appreciation Party",
      "description": "Employee appreciation event",
      "createdBy": {
        "descriptor": "Logan McNeil (On Leave)",
        "id": "3aa5550b7fe348b98d7b5741afc65534"
      },
      "contactInfo": "info@acme.org",
      "internalOnly": false,
      "cost": {
        "currency": "USD",
        "value": "10"
      },
      "location": "Livermore, CA",
      "sponsor": "Acme",
      "date": "2024-12-27"
    }
     
    ```

    Sample response:

    ```
    {
      "id": "49367bfa904f9001add1a9fbe1530000",
      "descriptor": "Appreciation Party",
      "MangeEvents_nkzjqw_WorkEvent_ID": "Employee appreciation event",
      "date": "2024-12-27",
      "location": "Livermore, CA",
      "internalOnly": false,
      "contactInfo": "info@acme.org",
      "createdBy": {
        "descriptor": "Logan McNeil (On Leave)",
        "id": "3aa5550b7fe348b98d7b5741afc65534"
      },
      "cost": {
        "currency": "USD",
        "value": "10"
      },
      "description": "Employee appreciation event",
      "name": "Appreciation Party",
      "sponsor": "Acme"
    }
     
    ```

    <b>Note:</b> The returned id value of the new workEvent business object will be used to initiate the business process in the next step.

2.  Initiate the Extend business process using the app-specific Extend business process REST API.

    This sample request initiates the <i>Create Work Event</i> event for an employee appreciation event. Notes about the sample request:

    -   The endpoint resource name, <i>createWorkEventEvents</i>, uses the `{businessProcessName}Events` format, where <i>Create Work Event</i> is the business process name.
    -   The `businessProcessTarget` in the request body uses the id of the new business object from the preceding step.

    Sample request:

    ```
    POST /apps/manageEvents_nkzjqw/v1/createWorkEventEvents
     
    ```

    Sample request body:

    ```
    {
      "description": "Appreciation Party",
      "businessProcessTarget": {
        "id": "49367bfa904f9001add1a9fbe1530000"
      }
    }
     
    ```

    Sample response:

    ```
    {
      "id": "49367bfa904f9001addc140bf5f50000",
      "descriptor": "Create Work Event: Appreciation Party",
      "description": "Appreciation Party",
      "businessProcessTarget": {
        "descriptor": "Appreciation Party",
        "id": "49367bfa904f9001add1a9fbe1530000"
      }
    }
     
    ```

    <b>Note:</b> The returned id value of the new Appreciation Party event can be used to call the Events REST APIs.

    If you’re managing event step routing outside of the automatic inbox routing, save the event ID of the newly created business process event. You’ll need the event ID when calling the Events and Event Steps REST APIs.

    Otherwise, if you’ve configured the page routing in your business process definition, the pages whose context is the event (such as the approval page) automatically receives the event ID in `queryParams.eventId`.



## <a id="section_checking_status"></a>Checking the status of an Extend Business Process Event

The `GET /events/{ID}` in the `businessProcess` service provides the status of a business process event.

If you’ve saved the ID of the initiated Extend business process event, use that event ID.

This example uses the event ID returned by the POST call that initiated the event.

Sample request:

```
GET /events/49367bfa904f9001addc140bf5f50000
```

Sample response:

```
{
  "for": {
    "descriptor": "Appreciation Party",
    "id": "49367bfa904f9001add1a9fbe1530000"
  },
  "descriptor": "Create Work Event: Appreciation Party",
  "id": "49367bfa904f9001addc140bf5f50000",
  "status": {
    "descriptor": "In Progress",
    "id": "e2d08afc53614c37b32b31270bb8bee3"
  },
  "creationDate": "2026-04-30",
  "overallBusinessProcess": {
    "descriptor": "Create Work Event: Appreciation Party",
    "id": "49367bfa904f9001addc140bf5f50000"
  },
  "initiator": {
    "descriptor": "Logan McNeil (On Leave)",
    "id": "3aa5550b7fe348b98d7b5741afc65534"
  }
}
 
```

If you’re using the automatic inbox routing and you’re on a step action page that’s routed to the inbox, the current context is the event step. You’ll need to first call `GET /eventSteps` to get the event ID. The `queryParams.eventStepId` variable will contain the eventStep ID for the current step on that action page.

To get the event status from an step action page:

1.  Call `GET /eventSteps/"<%queryParams.eventStepId %>"`

    `"<% queryParams.eventStepId %>"` is a PMD scripting variable that automatically contains the correct eventStep id, based on the `pageRoute` configuration on the Extend business process (which corresponds to the `routingPattern` in the AMD).

    For details, see [Concept: Business Process Steps and Page Routes](/wcp_docs/imo1658531429808.html).

    The response includes `event.id`.

2.  Call `GET /events/"<% eventStepsEndpoint.event.id %>"`

    `"<% eventStepsEndpoint.event.id %>"` is the `event.id` from the previous step. Replace <i>eventStepsEndpoint</i>” with the name of the `GET /eventSteps` inbound endpoint in the PMD.

    The response shows the status, similar to the above example.



## <a id="section_getting_steps"></a>Getting In Progress steps

The `GET /events/{ID}/inProgressSteps` endpoint in the `businessProcess` service returns a list of the in-progress steps. This endpoint is useful if you're not using the automatic inbox routing. You can call this endpoint before you submit an event step.

This example request gets a list of the Create Work Event steps that are in-progress. The Create Work Event is a sample Extend business process.

Sample request:

```
GET /events/49367bfa904f9001addc140bf5f50000/inProgressSteps
```

Sample response:

```
{
  "data": [
    {
      "anonymous": false,
      "descriptor": "Approval by Manager",
      "businessProcessStep": {
        "descriptor": "Create Work Event (Default Definition) step b - Approval",
        "id": "6c65436bb5531003ed9fdbe144230000"
      },
      "id": "49367bfa904f9001addc170d7fad0000",
      "order": "b",
      "status": {
        "descriptor": "Awaiting Action",
        "id": "d9e4108c446c11de98360015c5e6daf6"
      },
      "awaitingPersons": [
        {
          "descriptor": "Joy Banks",
          "id": "1f8ff0a1f91410f6cb0bcc3076ee0b58"
        }
      ],
      "creationDate": "2026-04-30T16:52:14.963Z"
    }
  ],
  "total": 1
}
 
```

## <a id="section_submitting_step"></a>Submitting the Event Step

To submit the step that’s awaiting action and advance to the next step, call the `POST /events/{eventStepId}/submit` endpoint in the `businessProcess` service.

If you’re not using the automatic inbox routing, you can call the `GET /events/{ID}/inProgressSteps` endpoint to determine the ID of the event step you can submit.

See [Submit Event Steps REST API](/wcp_docs/GUID-d0741c86-df92-4e98-a735-73ca70bc3736-enHYPHENus.html).

## <a id="section_submitting_subprocess"></a>Submitting an Extend Subprocess

When you configure an Extend business process as a subprocess of a parent Workday-delivered business process, the framework generates a PATCH Extend Business Process Event endpoint.

The PATCH endpoint enables you to update the target of the Extend subprocess event with a business object instance. For an Extend subprocess event to have the proper routing through the business process workflow, you must associate the subprocess event with an Extend business object instance.

<b>URL</b>

`https://{basePath}/apps/{appId}/{version}/{businessProcessName}Events/{eventId}`

where:

-   `{basePath}`: The regional URL base path. See [Reference: Workday Extend API Gateways and Authorization Base URLs](/wcp_docs/dlh1653340161856.html).
-   `{appId}`: The reference ID of the Extend app.
-   `{version}`: Currently v1
-   `{businessProcessName}`: The name of the business process you created for your app. Example: CreateCharity.


<b>Note:</b> The Extend Business Process Event REST API is only available through the Extend API Gateway. It’s not available as a tenant-based REST API.

<b>HTTP Method</b> : PATCH

<b>Content-Type</b> : application/json

<b>Request Body</b> :

<table><thead><tr><th>Field</th><th>Description</th></tr></thead><tbody><tr><td>businessProcessTarget</td><td>(Required) Contains the id of the target business object for this Extend subprocess. Specify the Workday ID of the Extend business object.</td></tr><tr><td>description</td><td>Describes the business process event.</td></tr></tbody></table><br/>

<b>Response</b> :

<table><thead><tr><th>Field</th><th>Description</th></tr></thead><tbody><tr><td>id</td><td>The Workday ID of the business process event.</td></tr><tr><td>descriptor</td><td>The display name of the business process event.</td></tr><tr><td>description</td><td>The event description, if provided.</td></tr><tr><td>businessProcessTarget</td><td>Contains the id and descriptor of the target business object for the subprocess.</td></tr></tbody></table><br/>

<b>Prerequisites</b>

-   The current user is awaiting action on the initiation step.
-   The updated target business object is valid and the current user can access it.
-   Initiation page that displays the initiated action in the inbox.


To submit an Extend subprocess step from the configured initiation page:

1.  Call the `GET /eventSteps/"<%queryParams.eventStepId %>"` . This endpoint returns the `event.id` , which will be used to update the subprocess event.

    `"<% queryParams.eventStepId %>"` is a PMD scripting variable that automatically contains the correct eventStep id, based on the `pageRoute` configuration of the Extend subprocess (which corresponds to the `routingPattern` in the AMD).

2.  Create or select an Extend business object, which will be the target business object for the next step.
3.  Call the PATCH Extend Business Process Event endpoint to update the subprocess event with the `event.id` from the first step.

    Specify the target business object in the request body.

    In this example, the event ID path parameter is the event.id from the first step. Specify the businessProcessTarget with the business object ID from the second step.

    Sample request:

    ```
    PATCH  /apps/manageEvents_nkzjqw/v1/createWorkEventEvents/49367bfa904f9001addc140bf5f50000
     
    ```

    Sample request body:

    ```
    {
      "businessProcessTarget": {
        "id": "49367bfa904f9001add1a9fbe1530000"
      }
    }
     
    ```

4.  Call the `POST /eventSteps/{eventSteps}/submit` endpoint in the Business Process REST service to submit the subprocess event step.

    For details, see [Steps: Initiate an Extend Subprocess from a PMD Page](/wcp_docs/GUID-0f36e7cb-08f4-4a92-9efd-945981a29dfe-enHYPHENus.html).



If you’re not using the automatic inbox page routing, you can call these endpoints in the Events and Event Steps REST API of the Business Process REST Service:

1.  `GET /events` by businessProcess or stepType to get the ID of the event.
2.  `GET /events/{eventId}/inProgressSteps` to get the ID of the event step that’s awaiting action.
3.  `POST /eventSteps/{eventStepId}/submit` to submit the event step.


## <a id="section_limitations"></a>Limitations

-   The Extend Business Process Event API doesn’t support bulk operations, and data must be processed individually to avoid impacting tenant health.

-   Approval and deny pages don't support `outboundEndpoints` for triggering the Extend Business Process Event REST API.

-   There is no separate Deny page to configure for an Extend business process. An approval page serves both actions.

-   Business process-based orchestrations cannot be triggered from Postman. They can only be invoked through their respective triggering mechanisms (direct from a business process or through the integration framework).

-   You cannot update the comment history directly if the business process is already triggered unless the orchestration is transacting on the business process itself.

-   Extend business processes don't support delegation directly. Reassigning business process steps might require using SOAP API through orchestration as an alternative.

-   Passing fields directly to the business process is not possible through the POST body (only description and businessProcessTarget are accepted for the business object). You'll need to retrieve the associated business object's ID within the PMD using the Event Steps and Events APIs.

-   Workday has deprecated the legacy [Custom Business Processes](/wcp_docs/ifu1517426622016.html). Note that the legacy custom business processes are created in the tenant and are not the same as Extend business processes. Use Extend Business Processes instead.



