---
title: "Update Order"
method: PUT
path: "/orders/{yelp_order_id}/update/v3"
tags: ["Checkout API"]
---

# Update Order

`PUT /orders/{yelp_order_id}/update/v3`

Update an existing Yelp Checkout Order by passing a Order object as the Partner wishes it to be.

Fields that cannot be updated: `yelp_order_id`, `service`, `billing_type`, `partner_business_id`, `collection_type`. These must be included as part of the Order object, but should match those passed when the order was created.

This operation is asynchronous, in that only basic sanity checking is done at the time the update request is submitted to Yelp, and, barring failure of those, the operation immediately returns an HTTP 200 response that includes the `yelp_order_id` and an `order_request_id`, which is a unique identifier for this partner request. Once submitted, Yelp will attempt to process this update request, including re-examining transactions associated with the order. The final success or failure of the operation is then delivered to the Partner by POSTing an `OrderStatusChangeNotification` to the `notification_url` provided at order creation time. This notification will include the matching `order_request_id` given to the Partner when the request was submitted.

A Yelp Checkout Order may be updated before and after charges are made. However, only one update request may be outstanding at a time. That is, a Partner cannot submit a second update request before an `OrderStatusChangeNotification` is received for the first.

On every update call, all transactions on the Order are re-examined and possibly cancelled or replaced by up-to-date transactions.

See [Order](https://docs.developer.yelp.com/docs/resources#section-order) resource for more info.

## Path parameters

- `yelp_order_id` string, required

## Request body

- object
  - `order` object — Current complete (not a diff) Order as it should be after updates. See [Order Resource](https://docs.developer.yelp.com/docs/resources#section-order)

## Response `200`

Successfully started the asynchronous process of updating an order.

- object
  - `yelp_order_id` string
  - `order_request_id` string

## Other responses

- `403` — unresolved $ref
- `422` — This error is returned in any of the following scenarios: | Status | error_code | error_message (example) | ------- | ------------------------------- | ------------------------------ | 422 | INVALID_ORDER_OPERATION | The order cannot be updated (either because it is cancelled or because another partner request is being processed) | 422 | COLLECTION_TYPE_MUST_BE_PREPAID | If the collection_type is passed as something other than `prepaid`
- `423` — This error is returned in any of the following scenarios: | Status | error_code | error_message (example) | ------- | ------------------------------- | ------------------------------ | 423 | ORDER_NOT_READY_FOR_OPERATION | Order is locked because another operation is in progress

---

[API](https://skmtc.net/yelp/apis/businesses.md) · [All operations](https://skmtc.net/yelp/apis/businesses/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/yelp/businesses/revisions/d3f744f55ed7/schema)
