Skip to main content
POST
result.ready (outbound to your registered HTTPS URL)
This is not a route on the Idunox API. It documents the POST request the platform sends to your registered webhook URL when a result becomes ready.

Registering a webhook URL

Contact partner@idunox.com to register your HTTPS callback URL.

Webhook headers

The platform sends the following headers on every delivery:

Verifying the signature

Verify every delivery before processing:
  1. Concatenate: X-Idunox-Timestamp + "." + raw_request_body
  2. Compute HMAC-SHA256 over that string using your webhook signing secret.
  3. Compare to the hex digest in X-Idunox-Signature (after the v1= prefix).
  4. Reject deliveries where the timestamp is more than 5 minutes old.

Responding to the webhook

Return any 2xx status to acknowledge the delivery. Non-2xx responses and transport failures may be retried by the platform.

Webhook body

The body identifies the completed result so you can retrieve it:
Use the resultId to call GET /v1/results/{resultId} and retrieve the full result.

Headers

X-IduScore-Event
enum<string>
required

Always result.ready for this flow (duplicates eventType in the body for routing layers).

Available options:
result.ready
X-IduScore-Delivery-Id
string<uuid>
required

Idempotency / support id for this delivery attempt.

X-IduScore-Timestamp
string
required

Unix time in seconds (integer as decimal string) used in the HMAC input.

Pattern: ^[0-9]+$
X-IduScore-Signature
string
required

HMAC-SHA256 signature, formatted as v1=<hex>.

Pattern: ^v1=[0-9a-f]+$

Body

application/json

Outbound result.ready webhook JSON body (HTTPS POST). Minimal partner notification: correlate by ids and load full detail via GET result APIs. Does not include internal tenant UUIDs, job ids, model output, or correlation metadata (those remain in delivery records server-side). Breaking change from the prior envelope that included inference, tenantId, and processingJobId. Not an HTTP path on this API; documented here as the partner contract for callbacks.

eventType
enum<string>
required
Available options:
result.ready
resultId
string<uuid>
required
submissionId
string<uuid>
required
partnerSubmissionId
string | null
required
status
enum<string>
required

Stable public slug for submission pipeline state (partner JSON).

Available options:
received,
validating,
validated,
processing,
completed,
failed,
rejected
statusLabel
string
required
Minimum string length: 1
completedAt
string<date-time>
required
reportId
string<uuid>

Present when a report bundle artifact id is available on the result (prefers PDF, then JSON, then HTML).

Response

Webhook received (any 2xx is treated as success)