---
title: "Order state changed"
method: POST
path: "order.state_changed"
tags: ["Orders"]
---

# Order state changed

`POST order.state_changed` (webhook)

Sent to the order's `webhook_url` every time the order changes state.
Configured per order at creation — there is no workspace-level setup,
and unlike meeting webhooks the request is not signed and carries no
event envelope.

Delivery is fire-and-forget: the response status is not checked, and
only network-level failures are retried. Retrieve the order for full
failure details.

## Payload

- object
  - `id` string: Identifier of the order that changed state.
  - `state` 'incomplete' | 'waiting_for_payment' | 'submitted' | 'locked' | 'fulfilled' | 'failed' | 'canceled' | 'expired' | 'free_trial_submitted' | 'free_trial_fulfilled': New state of the order. See the order resource for the meaning of each state.
  - `failure_reason` 'ingestion_failed' | 'transcription_failed' | 'unknown': Only present when `state` is `failed`.

## Acknowledgement `200`

The response status is not checked; return any status. Only network-level delivery failures are retried.

---

[API](https://skmtc.dev/happyscribe/apis/happyscribe-api.md) - [All operations](https://skmtc.dev/happyscribe/apis/happyscribe-api/llms.txt) - [OpenAPI document](https://skmtc.dev/happyscribe/apis/happyscribe-api/revisions/1281bd968c3d?raw)
