---
title: "Update an extra suboption metafield"
description: "The identifiers are hierarchical: metafield_id must belong to the specified suboption_id, which belongs to option_id, extra_id, and business_id."
canonical: https://docs.ordering.co/api-reference/guides/edit-extra-suboption-metafields/
---

# Update an extra suboption metafield

> **API operation:** [Open the endpoint in Scalar](https://docs.ordering.co/api-reference/#tag/business/PUT/business/{business_id}/extras/{extra_id}/options/{option_id}/suboptions/{suboption_id}/metafields/{metafield_id})

Use `PUT /business/{business_id}/extras/{extra_id}/options/{option_id}/suboptions/{suboption_id}/metafields/{metafield_id}` to update one metafield on an extra suboption. The operation is `ExtraOptionSuboptionMetafield.update`.

The identifiers are hierarchical: `metafield_id` must belong to the specified `suboption_id`, which belongs to `option_id`, `extra_id`, and `business_id`. The route identifies the literal model as `ExtraOptionSuboption` and the metafield object ID from the route.

The endpoint validates `value` according to `value_type`; supported `value_type` values are `integer`, `decimal`, `boolean`, `text`, and `json`. The `key` requirement and validation may differ between creation and update.

The operation requires administrator or business-manager authentication and scopes business managers through associated businesses.

See [find an extra suboption metafield](https://docs.ordering.co/api-reference/guides/find-extra-suboption-metafields/) for the item read.

## OpenAPI reference

**Operation:** `PUT /business/{business_id}/extras/{extra_id}/options/{option_id}/suboptions/{suboption_id}/metafields/{metafield_id}`

**Path parameters**

| Name           | Type    | Required | Description |
| -------------- | ------- | -------- | ----------- |
| `business_id`  | integer | Yes      | —           |
| `extra_id`     | integer | Yes      | —           |
| `option_id`    | integer | Yes      | —           |
| `suboption_id` | integer | Yes      | —           |
| `metafield_id` | integer | Yes      | —           |

**Request body fields**

| Name         | Type    | Required |
| ------------ | ------- | -------- |
| `key`        | string  | No       |
| `model`      | any     | Yes      |
| `object_id`  | integer | No       |
| `value`      | any     | No       |
| `value_type` | string  | No       |

**Responses**

| Code | Description                           |
| ---- | ------------------------------------- |
| 200  | OK (Envelope)                         |
| 400  | Bad Request (ErrorResponse)           |
| 401  | Unauthorized                          |
| 404  | Not Found                             |
| 429  | Too Many Requests (ErrorResponse)     |
| 500  | Internal Server Error (ErrorResponse) |
| 503  | Service Unavailable (ErrorResponse)   |

[Open this operation in the API reference](https://docs.ordering.co/api-reference/#tag/business/PUT/business/{business_id}/extras/{extra_id}/options/{option_id}/suboptions/{suboption_id}/metafields/{metafield_id})
