---
title: "Request validation for a supplier"
method: POST
path: "/public/v2/suppliers/sites/validation"
tags: ["Suppliers - Sites"]
---

# Request validation for a supplier

`POST /public/v2/suppliers/sites/validation`

Request a validation (discovery) for an existing supplier site. Validation is the process of verifying and enriching a supplier's data. Both endpoints (`POST` and `GET`) require the `ACCESS_PUBLIC_VALIDATION_REQUEST` permission.

**Request body shape (OpenAPI schema: `PublicValidationRequestPayloadV2`):**
```json
{
  "identifier": {
    "supplierId": null,
    "customerId": null,
    "ownId": null,
    "prewaveId": 102006215,
    "source": null
  }
}
```
- **`identifier`:** At least one of `supplierId`, `customerId`, `ownId`, or `prewaveId` must be non-empty / non-null. Optional `source` applies to the string IDs only.
- **Exactly one supplier must match** (same rules as `DELETE /public/v2/suppliers/sites`). If your criteria match zero suppliers, `404` is returned; if more than one, `400` with a multiple-suppliers error.

**Preconditions (enforced with 4xx responses):**
- The target must be of type POI (not a site-group or freelancer).
- The target must not already be at a fully-validated level (level 5, 2L, or 5L).
- There must be no pending validation or screening request for this supplier.

**Asynchronous Processing:**
- The endpoint returns `202 Accepted` immediately with a `requestId` UUID.
- Poll status with the **same** supplier identifiers you used in `identifier`, e.g. `GET /public/v2/suppliers/sites/validation?prewaveId=...` (see get validation status).

**Required Permission**: `ACCESS_PUBLIC_VALIDATION_REQUEST`

## Request body

- PublicValidationRequestPayloadV2 — Payload for requesting validation for a supplier via Public API v2
  - `identifier` PublicExternalTargetIdentifier, required — Supplier site identifier. At least one lookup key (`supplierId`, `customerId`, `ownId`, or `prewaveId`) should be set; `source` optionally narrows text identifiers.
    - `supplierId` string, nullable — Supplier ID of the target. Can be combined with customerId, ownId, and/or prewaveId.
    - `customerId` string, nullable — Customer ID of the target. Can be combined with supplierId, ownId, and/or prewaveId.
    - `ownId` string, nullable — Own site ID of the target. Can be combined with supplierId, customerId, and/or prewaveId.
    - `prewaveId` integer, nullable — Prewave ID of the target. Can be combined with supplierId, customerId, and/or ownId.
    - `source` string, nullable — Optional source system to filter by. Applies to supplierId, customerId, and ownId (not prewaveId).

## Response `202`

Validation request accepted

- PublicValidationRequestResponseV2
  - `requestId` string, uuid, required — UUID of the validation request, used to track the status via the GET endpoint
  - `message` string, required — Success message

## Other responses

- `400` — Bad request — missing identifier, supplier not eligible for validation (wrong type, level already reached), a pending validation/screening request already exists, or multiple suppliers matched the identifiers
- `403` — 403 Forbidden - Authentication or authorization failure. This status code is returned when: (1) the request lacks valid authentication credentials (missing or invalid X-Auth-Token header), or (2) the authenticated user does not have the required permission to access this resource.
- `404` — No supplier found matching the provided identifiers
- `429` — 429 Too Many Requests - API rate limit exceeded. The request has been rejected because the rate limit for this endpoint has been exceeded. Default rate limits: GET requests - 100 per 10 seconds, 500 per minute; POST/PUT/PATCH/DELETE requests - 20 per 10 seconds, 100 per minute. For increased access, please contact customer success.
- `500` — 500 Internal Server Error - An unexpected error occurred on the server. The request may or may not have been processed.

---

[API](https://skmtc.net/prewave/apis/public-prewave-api.md) · [All operations](https://skmtc.net/prewave/apis/public-prewave-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/prewave/public-prewave-api/revisions/466169815b78/schema)
