---
title: "Validate customer request"
method: POST
path: "/rest/servicedeskapi/request/validate"
tags: ["Request"]
---

# Validate customer request

`POST /rest/servicedeskapi/request/validate`

Validates a customer request payload without creating (persisting) a request.

This endpoint runs exactly the same structural and semantic validations as [Create customer request](#api-request-post) \\u2014 including ProForma form validation \\u2014 but performs **no mutation**: no issue is created and no side effects (attachments, comments, analytics) run.

The response is intentionally verbose and structured so that it can be consumed by automated agents (for example an LLM repairing an invalid payload): every failure carries a machine-readable location (field id / form entity) and a human-readable reason. A valid payload returns HTTP 200 with \{@code valid: true\}; an invalid payload returns HTTP 400 with \{@code valid: false\} together with the field, form and general validation errors.

**[Permissions](#permissions) required**: Permission to create requests in the specified service desk.

## Request body

- RequestCreateDTO
  - `channel` string — (Experimental) Shows extra information for the request channel.
  - `form` Form
    - `answers` object — JSON mapping of form field answers containing form field IDs and corresponding values.
  - `isAdfRequest` boolean — (Experimental) Whether to accept rich text fields in Atlassian Document Format (ADF).
  - `raiseOnBehalfOf` string — The `accountId` of the customer that the request is being raised on behalf of.
  - `requestFieldValues` object — JSON map of Jira field IDs and their values representing the content of the request.
  - `requestParticipants` string[] — List of customers to participate in the request, as a list of `accountId` values.
  - `requestTypeId` string — ID of the request type for the request.
  - `serviceDeskId` string — ID of the service desk in which to create the request.

## Response `200`

Returned with the validation result. \{@code valid\} is true when the payload is valid.

- RequestValidationResultDTO
  - `errorMessage` string — A single, human-readable summary describing why validation failed. Null when valid.
  - `errorMessages` string[] — General validation errors that are not attributable to a single field. Empty when valid.
  - `fieldErrors` RequestFieldValidationErrorDTO[] — Field-level validation errors, keyed by the failing request field id. Empty when valid.
    - `field` string — The id of the request field that failed validation (matches a key in 'requestFieldValues').
    - `message` string — A human-readable explanation of why this field failed validation.
  - `formErrors` FormValidationErrorDTO[] — ProForma form validation errors, if a form was supplied. Empty when valid or no form was present.
    - `code` string — Machine-readable validation error code.
    - `context` FormValidationErrorContextDTO[] — Identifies the form entity that caused the validation error.
      - `id` string — ID of the form entity related to the validation error.
      - `type` string — Type of form entity related to the validation error.
    - `detail` string — Detailed validation error message.
    - `status` integer — The HTTP status code.
    - `title` string — Short summary of the validation error.
  - `reasonKey` string — A machine-readable reason key categorising the overall failure. Null when valid.
  - `valid` boolean — True when the payload is both structurally and semantically valid and safe to create.

## Other responses

- `400` — Returned when the payload is invalid; the body describes why validation failed.
- `401` — Returned if the user is not logged in.
- `403` — Returned if the user does not have permission to complete this request.
- `500` — Internal Server Error.

---

[API](https://skmtc.net/atlassian/apis/service-management-public-rest-api.md) · [All operations](https://skmtc.net/atlassian/apis/service-management-public-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/atlassian/service-management-public-rest-api/revisions/8fd2ad4c779b/schema)
