---
title: "New Step"
method: POST
path: "/v2/budgets/{budgetID}/steps"
tags: ["Routes", "Budgets", "Steps"]
---

# New Step

`POST /v2/budgets/{budgetID}/steps`

This request creates a new Budget Step (sometimes called a PO Workflow Step).

Parameter: name, Type: String, Required?: Required, Description: The title of this budget.
Parameter: assignmentType, Type: Enum, Required?: Required, Description: What type ('user' or 'team') should we interpret the assignment value as?
Parameter: assignment, Type: Int or Array of Ints, Required?: Required, Description: When POs belonging to this step's budget enter this step, who will they be assigned to? If awaitingAssignmentType is 'team' then this cannot be an array, and may only be one number.
Parameter: emailSend, Type: Boolean, Required?: Required, Description: When POs of this step's budget enter this step, should we send email notification(s)?
Parameter: allowPOEdit, Type: Boolean, Required?: Optional, Description: When POs belonging to this step's budget are in this step, can the PO be edited?
Parameter: allowPR, Type: Boolean, Required?: Required, Description: When POs belonging to this step's budget are in this step, can items be received?

## Request body

- object
  - `name` string
  - `assignmentType` string
  - `assignment` integer
  - `emailSend` boolean
  - `allowPR` boolean
  - `allowPOEdit` boolean

## Response `201`

New Step

- object
  - `stepID` integer

## Other responses

- `400` — The request was malformed — either invalid JSON syntax or a validation failure (missing required field, wrong type, etc.).
- `401` — No `Authorization` header was provided on the request.
- `403` — The supplied credentials are invalid, the customer account is inactive, or the credentials do not have permission to perform this action.
- `404` — The referenced resource does not exist or is not visible to the authenticated customer.
- `409` — The request conflicts with the current state of the resource (e.g. a uniqueness constraint or a referenced parent that is in the wrong state).
- `429` — The per-minute or per-hour rate limit for this credential and method has been exhausted. Inspect the `X-RateLimit-*` headers to determine when to retry.
- `500` — An unhandled server-side error. The body message is generic (`System unavailable...`) when the underlying cause is a database fault; otherwise it reflects the raised error.

---

[API](https://skmtc.net/limblecmms/apis/limble-api-v2.md) · [All operations](https://skmtc.net/limblecmms/apis/limble-api-v2/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/limblecmms/limble-api-v2/versions/20801e23f7f2/schema)
