---
title: "Vincular opção ao grupo"
description: "POST /v1/catalog/groups/{groupId}/options — vincular produto ou complemento como opção de um grupo BeeFood."
method: "POST"
path: "/v1/catalog/groups/{groupId}/options"
url: "https://developer.beefood.com.br/docs/catalogo/vincular-opcao-grupo"
group: "Catálogo"
scope: "catalog:write"
lang: "pt"
---
# Vincular opção ao grupo

`POST /v1/catalog/groups/{groupId}/options`

- Produção: `https://api.beefood.app/v1/catalog/groups/{groupId}/options`
- Sandbox: `https://api-sandbox.beefood.app/v1/catalog/groups/{groupId}/options`

Vincula um produto ou complemento como opção de um grupo.

## Autenticação

Envie o access token no header `Authorization: Bearer <accessToken>`. Escopo necessário: `catalog:write`. Limite: 300 requisições a cada 3 minutos.


## Parâmetros de path

- `groupId` *integer* **obrigatório** — Identificador do grupo. Exemplo: `264006`.



## Parâmetros do body

- `productId` *integer* **obrigatório** — Identificador do produto ou complemento.

- `active` *boolean* — Indica se a opção está ativa (padrão true).

- `delivery` *boolean* — Indica se a opção aparece no delivery (padrão true).

- `dineIn` *boolean* — Indica se a opção aparece no presencial (padrão true).

- `minQuantity` *integer* — Quantidade mínima, inteiro maior ou igual a 0.

- `maxQuantity` *integer* — Quantidade máxima, inteiro maior ou igual a 1.

- `price` *number* — Preço, número maior ou igual a 0 ou null.

- `deliveryPrice` *number* — Preço no delivery, número maior ou igual a 0 ou null.

- `dineInPrice` *number* — Preço no presencial, número maior ou igual a 0 ou null.

- `sortOrder` *integer* — Posição da opção no grupo, inteiro maior ou igual a 0.



## Exemplos de requisição

### cURL

```bash
curl -X POST "https://api.beefood.app/v1/catalog/groups/{groupId}/options" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "productId": 2586945,
  "price": 5.5,
  "minQuantity": 1,
  "maxQuantity": 3,
  "sortOrder": 1
}'
```


## Exemplos de resposta

### 201 OK

```json
{
  "groupId": 264428,
  "optionId": 5689346,
  "productId": 2586945,
  "name": "Onion rings",
  "type": "product",
  "active": true,
  "delivery": true,
  "dineIn": true,
  "minQuantity": 1,
  "maxQuantity": 3,
  "price": 5.5,
  "sortOrder": 1,
  "image": {
    "original": "https://cdn.beefood.com.br/products/2586945.jpg",
    "thumbnail60": "https://cdn.beefood.com.br/products/2586945_60.jpg",
    "thumbnail120": "https://cdn.beefood.com.br/products/2586945_120.jpg",
    "thumbnailWeb": "https://cdn.beefood.com.br/products/2586945_web.jpg"
  }
}
```


## Campos da resposta

- `groupId` *number* — Identificador do grupo.

- `optionId` *number* — Identificador da opção.

- `productId` *number* — Identificador do produto ou complemento.

- `name` *string* — Nome da opção.

- `type` *string* — Tipo da opção: product ou complement.

- `active` *boolean* — Indica se a opção está ativa.

- `delivery` *boolean* — Indica se a opção aparece no delivery.

- `dineIn` *boolean* — Indica se a opção aparece no presencial.

- `minQuantity` *number* — Quantidade mínima.

- `maxQuantity` *number* — Quantidade máxima.

- `price` *number* — Preço da opção.

- `deliveryPrice` *number* — Preço no delivery.

- `dineInPrice` *number* — Preço no presencial.

- `sortOrder` *number* — Posição da opção no grupo.

- `image` *object* — URLs da imagem do produto.

- `image.original` *string* — Imagem original.

- `image.thumbnail60` *string* — Miniatura de 60 px.

- `image.thumbnail120` *string* — Miniatura de 120 px.

- `image.thumbnailWeb` *string* — Miniatura para web.



## Erros

| Status | Mensagem |
| --- | --- |
| 401 | Authentication token is missing |
| 401 | Invalid or expired access token |
| 403 | This credential does not include the catalog:write scope |
| 429 | Too many requests |
| 400 | Invalid option data |
| 404 | Group not found |
| 404 | Product not found |


