# POST /work-orders

**Resource:** [Work Orders](./work-orders.md)  
**Scopes:** `work-orders:write`  
**Write operation:** yes

Create a work order. Pass "status" (string label, e.g. "Pending") to resolve a status by name, or "status_id" (UUID) directly. "status" performs a case-insensitive match against crm_work_order_statuses labels for the company. Use schedule_date + schedule_time to control when the work order appears on the calendar, and assigned_to to assign a team member.

## Parameters

| Name | In | Type | Required | Description |
|------|----|------|----------|-------------|
| `deal_product_id` | body | uuid | yes | Deal product UUID (required) |
| `status` | body | string | no | Status label (e.g. "Pending"). Resolved case-insensitively to a status_id UUID. Use instead of status_id for human-readable input. |
| `status_id` | body | uuid | no | Status UUID. Bypasses label resolution. Use status or status_id, not both. |
| `schedule_date` | body | string | no | ISO date (e.g. "2026-04-25"). When the work order is scheduled. Controls calendar placement. Defaults to today. |
| `schedule_time` | body | string | no | Wall-clock time in HH:MM:SS format (e.g. "09:00:00"). Omit for an all-day work order. Combined with schedule_date for a specific appointment time. |
| `assigned_to` | body | uuid | no | User UUID of the team member assigned to this work order. Must be a member of the company. |
| `data` | body | object | no | Work order field data (JSON object) |
| `sort_order` | body | number | no | Sort order for display |

---
Base URL: `https://api.trustpager.com/functions/v1/api/v1` — Auth: `Authorization: Bearer YOUR_API_KEY`