---
title: "Validate a raw X12 or UN/EDIFACT interchange (diagnostics only, no JSON projection)."
method: POST
path: "/v1/validate"
tags: ["EDI"]
---

# Validate a raw X12 or UN/EDIFACT interchange (diagnostics only, no JSON projection).

`POST /v1/validate`

## Request

- Base URL: `https://signaledi.com/api`
- URL: `https://signaledi.com/api/v1/validate`
- Auth: HTTP bearer

## Request body

- ContentRequest
  - `content` string, required: Raw X12 (ISA) or UN/EDIFACT (UNA/UNB) interchange. Must be non-empty.

## Response `200`

Validation completed (check `validation.valid`).

- ValidateResult
  - `ok` true, required
  - `validation` ValidationSummary, required
    - `sourceFormat` 'X12' | 'EDIFACT', required
    - `valid` boolean, required
    - `errors` string[], required
    - `issues` ValidationIssue[]: Additive actionable diagnostics; legacy errors remain unchanged.
      - `code` string, required
      - `severity` 'error' | 'warning', required
      - `message` string, required
      - `suggestedAction` string, required
      - `segmentId` string
      - `segmentPosition` integer
      - `elementPosition` integer
      - `ruleRef` string
      - `correlationId` string
    - `transactionSet` string, required
    - `recognized` boolean, required
    - `semanticValidation` 'supported' | 'unsupported' | 'unknown', required: Semantic-validation capability, reported independently from catalog recognition.
    - `transactionSets` object[], required: One validation entry for every ST/SE transaction set.
      - `transactionSet` string, required
      - `controlNumber` string, required
      - `segmentCount` integer, required
      - `recognized` boolean, required
      - `semanticValidation` 'supported' | 'unsupported' | 'unknown', required
      - `valid` boolean, required
      - `sourceMessageType` string
      - `sourceMessageReference` string
    - `controlNumber` string, required
    - `segmentCount` integer, required

## Other responses

- `400`: Request body failed validation (`code` e.g. VALIDATION_ERROR, NO_WORKSPACE, BATCH_TOO_LARGE).
- `401`: Missing or invalid API key (`code` AUTH_UNAUTHORIZED).
- `403`: API key lacks the required `platform` scope (`code` PLATFORM_SCOPE_REQUIRED), its lane is invalid (API_KEY_ENVIRONMENT_INVALID), the workspace is not entitled to the platform API (PLATFORM_NOT_ENTITLED), or a supplied `workspaceId` does not match the authenticated workspace (FORBIDDEN).
- `404`: Resource not found, or the /v1 platform is disabled (`code` NOT_FOUND / PARTNER_NOT_FOUND / WORKSPACE_NOT_FOUND).
- `413`: `content` exceeds the maximum accepted length (`code` PAYLOAD_TOO_LARGE).
- `429`: Rate limit exceeded (`code` RATE_LIMITED).
- `500`: Unexpected server error (`code` e.g. PARSE_FAILED, VALIDATE_FAILED, OUTBOUND_FAILED, INBOUND_FAILED, BATCH_FAILED, TRANSACTIONS_FAILED, DOCUMENT_RECEIPT_FAILED, DOCUMENT_PAYLOAD_FAILED). Sanitized bodies carry an opaque `correlationId` to quote to support; internal error text is never echoed.

---

[API](https://skmtc.dev/signaledi/apis/signaledi-developer-api.md) · [All operations](https://skmtc.dev/signaledi/apis/signaledi-developer-api/llms.txt) · [OpenAPI document](https://skmtc.dev/signaledi/apis/signaledi-developer-api/revisions/9bc596644a10?raw)
