---
title: "Update a fulfillment"
method: PUT
path: "/v1/fulfillments/{key}"
tags: ["Fulfillments"]
---

# Update a fulfillment

`PUT /v1/fulfillments/{key}`

Updates a specified fulfillment. The `state` field of a fulfillment can only be updated when it is in a different state, to trigger the state transition. The other fields of a fulfillment can only be updated when the fulfillment is in the `Executing` state, or when the fulfillment is in the `Booked` state and the user has the "Allow Edit Of Booked Order Line Items" permission.
The following tutorial demonstrates how to use this operation:
* [Update or cancel a fulfillment](https://docs.zuora.com?resourceId=billing-update-or-cancel-fulfillments)

## Path parameters

- `key` string, UUID, required

## Headers

- `Accept-Encoding` string
- `Content-Encoding` string
- `Zuora-Track-Id` string
- `Zuora-Entity-Ids` string
- `Zuora-Org-Ids` string
- `Zuora-Version` string

## Request body

- PutFulfillmentRequestType
  - `billTargetDate` string, date — The target date for the Fulfillment to be picked up by bill run for billing.
  - `carrier` string — The carrier of the Fulfillment. The available values can be managed in the Fulfillment Settings page under Billing Settings.
  - `customFields` FulfillmentCustomFields — Container for custom fields of a Fulfillment object.
  - `description` string — The description of the Fulfillment.
  - `externalId` string — The external id of the Fulfillment.
  - `fulfillmentDate` string, date — The date of the Fulfillment.
  - `fulfillmentLocation` string — The fulfillment location of the Fulfillment. The available values can be managed in the Fulfillment Settings page under Billing Settings.
  - `fulfillmentSystem` string — The fulfillment system of the Fulfillment. The available values can be managed in the Fulfillment Settings page under Billing Settings.
  - `quantity` number — The quantity of the Fulfillment.
  - `state` 'Executing' | 'Booked' | 'SentToBilling' | 'Complete' | 'Cancelled' — The state of the Fulfillment. See [Order Line Item states, Order states, and state transitions](https://docs.zuora.com?resourceId=billing-state-transitions-order-line-items) for more information.
  - `trackingNumber` string — The tracking number of the Fulfillment.

## Response `200`

OK

- CommonResponse
  - `processId` string — The ID of the process that handles the operation.
  - `reasons` object[] — The container of the error code and message. This field is available only if the `success` field is `false`.
    - `code` string — The error code of response.
    - `message` string — The detail information of the error response
  - `requestId` string, uuid — Unique identifier of the request.
  - `success` boolean — Indicates whether the call succeeded.

## Other responses

- `500` — Internal Server Error
- `4XX` — Request Errors

---

[API](https://skmtc.dev/zuora/apis/api-reference.md) · [All operations](https://skmtc.dev/zuora/apis/api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/zuora/api-reference/revisions/d11e237f3e54/schema)
