> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sortify.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Atualizar upsell

> Atualiza um upsell da ação, incluindo troca de tipo

Atualização parcial: envie apenas os campos que deseja alterar. Aceita os mesmos campos do [criar upsell](/api-reference/upsells/criar-upsell), todos opcionais.

<Warning>
  **Regras de tipo e configuração:**

  * Os objetos `redirect`/`custom`/`iframe` são **substituição total** — envie o objeto completo, nunca parcial.
  * **Trocar o `type` exige a configuração do novo tipo na mesma requisição** (a configuração armazenada pertence ao tipo antigo). Ex.: mudar para `redirect` sem enviar `redirect: {...}` retorna `UPSELL_REDIRECT_CONFIG_REQUIRED`; mudar para `simple` exige o objeto `simple: { button_text, button_url }`.
  * Enviar um objeto de configuração que não corresponde ao tipo (atual ou enviado) retorna `UPSELL_CONFIG_TYPE_MISMATCH`.
</Warning>

## Path params

<ParamField path="id" type="string" required>ID da ação (UUID).</ParamField>
<ParamField path="upsell_id" type="string" required>ID do upsell (UUID).</ParamField>

## Erros

| HTTP  | Código                    | Quando ocorre                                       |
| ----- | ------------------------- | --------------------------------------------------- |
| `404` | `UPSELL_NOT_FOUND`        | Upsell inexistente, de outra ação ou de outra conta |
| `400` | `NO_FIELDS_TO_UPDATE`     | Nenhum campo enviado                                |
| `400` | demais códigos `UPSELL_*` | Mesmas regras de validação do criar                 |

<RequestExample>
  ```bash trocar para redirect theme={null}
  curl -u "pb_xxx:sk_xxx" -X PUT \
    -H "Content-Type: application/json" \
    -d '{
      "type": "redirect",
      "redirect": { "to": "https://upsell.cliente.digital", "timeout": 0 }
    }' \
    "https://api.sortify.com.br/v1/raffles/{id}/upsells/{upsell_id}"
  ```

  ```bash desativar theme={null}
  curl -u "pb_xxx:sk_xxx" -X PUT \
    -H "Content-Type: application/json" \
    -d '{ "is_active": false }' \
    "https://api.sortify.com.br/v1/raffles/{id}/upsells/{upsell_id}"
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "success": true,
    "message": "Upsell atualizado com sucesso",
    "data": {
      "id": "7c1d2e3f-4a5b-6c7d-8e9f-0a1b2c3d4e5f",
      "type": "redirect",
      "title": "Oferta relâmpago",
      "description": null,
      "display_order": 0,
      "redirect": { "to": "https://upsell.cliente.digital", "timeout": 0 },
      "is_active": true,
      "created_at": "2026-07-06T12:00:00.000Z",
      "updated_at": "2026-07-06T12:10:00.000Z"
    }
  }
  ```
</ResponseExample>
