---
title: "Perform a check-out"
method: POST
path: "/workorders/{workorderId}/universalCheckOut"
tags: ["WorkOrders"]
---

# Perform a check-out

`POST /workorders/{workorderId}/universalCheckOut`

## Request

- Base URL: `https://sb2api.servicechannel.com/v3`
- URL: `https://sb2api.servicechannel.com/v3/workorders/{workorderId}/universalCheckOut`
- 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/workorders/:workorderId/universalCheckOut/post.ts> (a function with typed inputs; its response is checked against the schema)

Creates a check-out record of the indicated work type: travel, repair, or custom. Returns `MechanicId` for a successful request.
            See the [Check-In/Out guide](/guides/checkin/about-check-in-out/) for code snippets and detailed instructions.
            <br />***Note:*** [Special permission](/guides/checkin/before-you-start/#check-inout-permissions) is required for the Travel and Repair work types.
            <br />**Example Request**
            
                POST /workorders/{workorderId}/universalCheckOut
                {
                  "WorkTypeId": 1,
                  "PrimaryStatus": "InProgress",
                  "ExtendedStatus": "string",
                  "ActionStatus": "Complete",
                  "Resolution": "We need more time to complete this job.",
                  "UserId": 1544987,
                  "Latitude": 40.736618,
                  "Longitude": -73.991806,
                  "CheckOutTime": "2018-10-23T09:30:00Z"
                }

## Path parameters

- `workorderId` integer, required

## Request body

- ServiceChannelServicesMessagingWorkordersCheckOutRequest: Check-out request
  - `WorkTypeId` integer: The unique ID of the work type. **Possible values:** `1` — Repair, `2` — Travel. Other values are possible when custom types are set up for the subscriber. **Default value:** 1.
  - `PrimaryStatus` 'NoStatusChange' | 'InProgress' | 'Completed' | 'WaitingForQuote' | 'PartsOnOrder' | 'Incomplete': The status that is set for the WO when checking out. Required for the Repair type. Ignored for the Travel and custom types as well when `ActionStatus` = `Cancel`. **Default value:** NoStatusChange.
  - `ExtendedStatus` string: The extended status that is set for the WO when checking out. Optional for the Repair type. Ignored for the Travel and custom types, when `ActionStatus` = `Cancel`, and for 'Completed' PrimaryStatus (generated automatically). Refrigerant WO with 'Completed' PrimaryStatus — special case by RefrigerationTracking feature.
  - `ActionStatus` 'Complete' | 'Cancel': The status of the activity. **Possible values:** `Complete`, `Cancel`. Both values result in recording a check-out. `Complete` means that the technician has finished the activity. `Cancel` means the technician needs to pause the activity, for example, to have a break outside of the location. GPS coordinates are not required. **Default value:** Complete.
  - `Resolution` string: The comment entered when checking out. Usually describes what was done during the recorded time. Ignored for the Travel and custom types as well as when `ActionStatus` = `Cancel`. **Default value:** empty.
  - `UserId` integer: The user ID of the technician that is checking out. Use the same `UserId` for one pair of check-in and check-out records. **Default value:** ID of the current user.
  - `TechsCount` integer: The number of technicians that are checking out. **Default value:** 1.
  - `Latitude` number, double, required: The latitude of the technician’s current position. Required for the Repair and Travel type. Not required for custom types, for the Repair and Travel types when the [XML check-in/out permission](/guides/checkin/before-you-start/#xml-check-inout-permission) is enabled, and when `ActionStatus` = `Cancel`.
  - `Longitude` number, double, required: The longitude of the technician’s current position. Required for the Repair and Travel type. Not required for custom types, for the Repair and Travel types when the [XML check-in/out permission](/guides/checkin/before-you-start/#xml-check-inout-permission) is enabled, and when `ActionStatus` = `Cancel`.
  - `CheckOutTime` string, date-time: The date and time of the check-out. Either indicate in UTC or pass the current time and add the UTC offset. You can pass this value only when the [XML check-in/out permission](/guides/checkin/before-you-start/#xml-check-inout-permission) is enabled. **Default value:** current date and time.
  - `CheckoutAll` boolean
  - `Actor` string: Optional, Actor
  - `SignatureAttachmentId` integer: Optional, SignatureAttachmentId **Default value:** null
  - `UnableObtainSignatureNoteId` integer: Optional, UnableObtainSignatureNoteId **Default value:** null
  - `UnableObtainSignatureNoteDocumentId` string: Optional, UnableObtainSignatureNoteDocumentId **Default value:** null

## Response `200`

The check-out record is created.

- ServiceChannelServicesMessagingCheckInOutCheckInOutResponse: Check In/Out Response
  - `MechanicId` integer: The unique ID of the reported check-in/out action.

## Other responses

- `400`: The request is not accepted due to bad syntax, missing parameters, insufficient data, etc. <br/>Error codes: 502 - Work order not found 503 - Required data missing or incorrect 503 - Provide your location to perform check-in or check-out 503 - User has not checked in 503 - Work type not found 503 - Check-in or check-out premature 503 - Check-in or check-out time should be close to current location time 503 - Check-in or check-out out of date 503 - Invalid SignatureAttachmentId 503 - Invalid UnableObtainSignatureNoteId 503 - You can set either SignatureAttachmentId or UnableObtainSignatureNoteId but not both 503 - No access to electronic signatures 804 - User has no permission to perform this action 904 - User does not have … extended status that belongs to … primary status 917 - Invalid WO tracking number 921 - Cannot update work order in one of the completed statuses 925 - Work order has been invoiced and cannot be changed 925 - No changes can be made to this maintenance work order because it is expired or premature 925 - Cannot check in/out of work order in … status 925 - Client not participating in GPS check-in process; use IVR 925 - Store has no GPS coordinates 942 - Can’t perform check-in or check-out: out of ... mile range
- `401`: The request is not authorized. <br/>Error codes: 504 - Missing or incorrect authentication credentials
- `405`: The method is not allowed.

---

[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)
