---
title: "Attach a work order to a proposal"
method: PUT
path: "/proposals/{proposalId}/assignWO"
tags: ["Proposals"]
---

# Attach a work order to a proposal

`PUT /proposals/{proposalId}/assignWO`

## Request

- Base URL: `https://sb2api.servicechannel.com/v3`
- URL: `https://sb2api.servicechannel.com/v3/proposals/{proposalId}/assignWO`
- Auth: OAuth 2
  - Authorization code: `https://sb2login.servicechannel.com/oauth/authorize`
  - Token URL: `https://sb2login.servicechannel.com/oauth/token`
- TypeScript: <https://skmtc.dev/servicechannel/apis/servicechannel-api-v-3/docs/proposals/:proposalId/assignWO/put.ts> (a function with typed inputs; its response is checked against the schema)

Links the specified work order to the proposal. If the proposal already has a linked service request, the attached work order is updated. See [Link a WO to a Proposal](/guides/proposals/link-a-WO-to-a-proposal/) for more information.
            <br />***Note:*** This method is only available to subscriber users.

## Path parameters

- `proposalId` integer, required

## Query parameters

- `isFromProjectsModule` boolean

## Request body

- integer

## Response `204`

The specified work order is attached to the proposal, and the response is intentionally blank.

## Other responses

- `400`: The request is not accepted due to bad syntax, missing parameters, insufficient data, etc. <br/>Error codes: 401 — Invalid subscriber id 502 — Proposal not found 503 — Request is empty or null 503 — Proposal already approved 503 — Workorder doesn't match 503 — The user is MLP user 917 — Invalid WO Identifier
- `401`: The request is not authorized. <br/>Error codes: 504 — API call rejected by security permissions

---

[API](https://skmtc.dev/servicechannel/apis/servicechannel-api-v-3.md) - [All operations](https://skmtc.dev/servicechannel/apis/servicechannel-api-v-3/llms.txt) - [OpenAPI document](https://skmtc.dev/servicechannel/apis/servicechannel-api-v-3/revisions/d490d6596809?raw)
