---
title: "Check an HSX program or compiled .udl document"
method: POST
path: "/v1/composer/check"
tags: ["Start", "Founder login"]
---

# Check an HSX program or compiled .udl document

`POST /v1/composer/check`

## Request

- Base URL: `https://hyperscale0.ai`
- URL: `https://hyperscale0.ai/v1/composer/check`
- Auth: HTTP bearer

Accepts HSX source text for server-side compilation or a decoded, compiled .udl object for direct validation. HSX compilation uses catalogRevisionId and the tenant overlay. The operation validates grammar and semantic rules, cross-instrument gate satisfiability, reserve/post/void pairing, refs bindings, money typing of amount binds, provider decision capabilities. warnings lists advice that does not block a freeze, such as an attached money move with no declared economics purpose, and its fix names the economics line to add. The operation leaves the Product unchanged and returns operationId and receiptId for its durable receipt, including when ok is false.

## Headers

- `X-Hyperscale-Environment` 'sandbox' | 'live'

## Request body

- object
  - `tenantId` string, required: Organization tenant ID
  - `catalogRevisionId` string: Immutable tenant catalog revision used when the document is HSX source
  - `document` union, required: An HSX program source string for server-side compilation, or a decoded .udl JSON object that is already compiled.
    - string: HSX program source text. The server compiles this exact text against the tenant's pinned catalog revision and overlay.
    - object: A .udl product definition (JSON object). Validated by the UDL grammar and semantic rules, not by this envelope.

## Response `200`

Success

- ComposerCheckOutput
  - `ok` boolean, required
  - `issues` ComposerIssue[], required (unresolved $ref)
  - `warnings` ComposerIssue[], required: Advice that does not block a freeze, such as a money move with no declared purpose. Each fix is the HSX line to add (unresolved $ref)
  - `declaredParties` object, nullable, required
  - `requiredPartyBindings` string[], nullable, required
  - `operationId` string, required: Hyperscale operation ID
  - `receiptId` string, required: Hyperscale receipt ID

## Other responses

- `default`: ErrorResponse. See x-error-codes and x-errors for codes, HTTP statuses and retry guidance.

---

[API](https://skmtc.dev/hyperscale0/apis/hyperscale-product-api.md) · [All operations](https://skmtc.dev/hyperscale0/apis/hyperscale-product-api/llms.txt) · [OpenAPI document](https://skmtc.dev/hyperscale0/apis/hyperscale-product-api/revisions/e9e8faa044d5?raw)
