---
title: "Create an extra suboption metafield"
description: "Use POST /business/{business_id}/extras/{extra_id}/options/{option_id}/suboptions/{suboption_id}/metafields to create metadata for one extra suboption."
canonical: https://docs.ordering.co/api-reference/guides/create-extra-suboption-metafields/
---

# Create an extra suboption metafield

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

Use `POST /business/{business_id}/extras/{extra_id}/options/{option_id}/suboptions/{suboption_id}/metafields` to create metadata for one extra suboption. The current public operation is `ExtraOptionSuboptionMetafield.register`.

The identifiers form one hierarchy: `business_id` identifies the business, `extra_id` the extra, `option_id` the extra option, and `suboption_id` its suboption. When the operation is available, it verifies this hierarchy before creating the metafield.

If available, the operation derives the literal model identity `ExtraOptionSuboption` and the metafield object ID from `suboption_id`. It validates the metafield `key`, `value`, and `value_type`; supported `value_type` values are `integer`, `decimal`, `boolean`, `text`, and `json`. The operation guide specifies the current request contract and unresolved field-level differences.

If available, the operation requires administrator or business-manager authentication. A business manager is scoped through businesses associated with that user.

This exact method/path match establishes operation correspondence only. See [list extra suboption metafields](https://docs.ordering.co/api-reference/guides/get-extra-suboption-metafields/) for the collection read.

## OpenAPI reference

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

**Path parameters**

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

**Request body fields**

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

**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/POST/business/{business_id}/extras/{extra_id}/options/{option_id}/suboptions/{suboption_id}/metafields)
