---
title: "Participate in an exchange. Posting an empty body will start the exchange or return what the exchange is expecting to complete the next step. Posting a Verifiable Presentation Request will result in either a 4xx error or one of the following - a Verifiable Presentation or Verifiable Presentation Request that conforms to the client's request. If a Verifiable Presentation is sent, an additional Verifiable Presentation Request may also be sent to continue the exchange."
method: POST
path: "/workflows/{localWorkflowId}/exchanges/{localExchangeId}"
tags: ["Credentials"]
---

# Participate in an exchange. Posting an empty body will start the exchange or return what the exchange is expecting to complete the next step. Posting a Verifiable Presentation Request will result in either a 4xx error or one of the following - a Verifiable Presentation or Verifiable Presentation Request that conforms to the client's request. If a Verifiable Presentation is sent, an additional Verifiable Presentation Request may also be sent to continue the exchange.

`POST /workflows/{localWorkflowId}/exchanges/{localExchangeId}`

Participate in an exchange. Posting an empty body will start the exchange or return what the exchange is expecting to complete the next step.

## Parameters

- `./components/parameters/path/LocalWorkflowId.yml` — unresolved $ref
- `./components/parameters/path/LocalExchangeId.yml` — unresolved $ref

## Request body

- union
  - object
    - `verifiablePresentationRequest` VerifiablePresentationRequest — unresolved $ref
  - object
    - `verifiablePresentation` VerifiablePresentation — unresolved $ref

## Response `200`

Exchange progressed.

- union — Either what the exchange is expecting next or a result of the exchange.
  - object
    - `verifiablePresentationRequest` VerifiablePresentationRequest — unresolved $ref
  - object
    - `verifiablePresentation` VerifiablePresentation — unresolved $ref
  - object
    - `redirectUrl` string — The URL the exchange wishes to redirect the client to.

## Other responses

- `400` — Invalid input
- `401` — Not Authorized
- `500` — Internal Error

## Changes

- **2025-09-23** `466d8897863d` — 1 info
  - added `subschema #1, subschema #2` to the request body `oneOf` list
- **2025-09-23** `474599254bb9` — 1 breaking
  - removed `subschema #1, subschema #2` from the request body `oneOf` list

[Change history](https://skmtc.dev/w3c/apis/verifiable-credential-api-for-lifecycle-management/changes/workflows/:localWorkflowId/exchanges/:localExchangeId/post.md)

---

[API](https://skmtc.dev/w3c/apis/verifiable-credential-api-for-lifecycle-management.md) · [All operations](https://skmtc.dev/w3c/apis/verifiable-credential-api-for-lifecycle-management/llms.txt) · [OpenAPI document](https://skmtc.dev/w3c/apis/verifiable-credential-api-for-lifecycle-management/revisions/4eeec5906405?raw)
