---
title: "Substituir desconto progressivo (replace)"
method: PUT
path: "/descontosProgressivos/{descontoProgressivoId}"
tags: ["Descontos Progressivos"]
---

# Substituir desconto progressivo (replace)

`PUT /descontosProgressivos/{descontoProgressivoId}`

## Request

- Base URL: `https://app.vendizap.com/api`
- URL: `https://app.vendizap.com/api/descontosProgressivos/{descontoProgressivoId}`
- Auth: API key in header `X-Auth-Id` and API key in header `X-Auth-Secret`

Substitui os campos editáveis do desconto. Os campos do schema que não
forem enviados voltam aos defaults (`[]` ou `false`). Campos legados
não documentados aqui são preservados. Para alterações parciais, use PATCH.

### Regras

- A modalidade de faixa é exclusiva: exatamente uma entre `faixaQuantidade` e `faixaPreco`
  deve estar ativa no resultado. Ambas `true` ou ambas `false` retornam HTTP 400.

## Request body

- DescontoProgressivoUpdate: Substitui os campos editáveis do desconto. Os campos definidos neste schema que não forem enviados voltam aos defaults (listas de faixas viram `[]`, `faixaQuantidade`/`faixaPreco` viram `false`, `produtos`/`categorias` viram `[]`). A modalidade de faixa continua exclusiva: exatamente uma entre `faixaQuantidade` e `faixaPreco` deve ser `true` no resultado, senão HTTP 400 — inclusive quando as duas são omitidas (ambas voltam ao default `false`, o que também é 400). Para alterações parciais, usar PATCH.
  - `nome` string, required
  - `tipo` 'produto' | 'pedido', required
  - `ativa` boolean
  - `tipoFiltro` 'todosProdutos' | 'produtos' | 'categorias'
  - `produtos` ProdutoRef[]
    - `id` string
    - `codigo` string
  - `categorias` string[]
  - `faixaQuantidade` boolean: Exclusivo com `faixaPreco` — exatamente uma das duas deve ser `true`, senão HTTP 400.
  - `faixaQuantidadeLista` Faixa[]: Não pode ser enviada não-vazia se `faixaQuantidade` for `false` — retorna HTTP 400.
    - `aPartirDe` number, required: Limiar mínimo a partir do qual a faixa passa a valer (quantidade de itens em `faixaQuantidadeLista`; valor do pedido/produto em `faixaPrecoLista`). Deve ser maior que zero e **estritamente crescente** entre as faixas da mesma lista (sem repetir nem sobrepor). A maior faixa atingida prevalece, não há limite superior.
    - `percentualDesconto` number, required: Percentual de desconto aplicado quando o limiar é atingido. Deve ser maior que zero e no máximo 99, e **estritamente crescente** entre as faixas da mesma lista.
  - `faixaPreco` boolean: Exclusivo com `faixaQuantidade` — exatamente uma das duas deve ser `true`, senão HTTP 400.
  - `faixaPrecoLista` Faixa[]: Não pode ser enviada não-vazia se `faixaPreco` for `false` — retorna HTTP 400.
    - `aPartirDe` number, required: Limiar mínimo a partir do qual a faixa passa a valer (quantidade de itens em `faixaQuantidadeLista`; valor do pedido/produto em `faixaPrecoLista`). Deve ser maior que zero e **estritamente crescente** entre as faixas da mesma lista (sem repetir nem sobrepor). A maior faixa atingida prevalece, não há limite superior.
    - `percentualDesconto` number, required: Percentual de desconto aplicado quando o limiar é atingido. Deve ser maior que zero e no máximo 99, e **estritamente crescente** entre as faixas da mesma lista.
  - `permiteCupom` boolean: Quando `false`, os itens cobertos por esta campanha (com a faixa atingida) saem da base de cálculo de cupons. Omitir equivale a `true`.

## Response `200`

Preço de atacado substituído com sucesso.

- IdResponse
  - `id` string

## Other responses

- `400`: Erro na requisição que não foi possível ser completada. O erro é retornado em uma string (não JSON).
- `401`: Credenciais informadas inválidas.

---

[API](https://skmtc.dev/vendizap/apis/api-vendizap.md) · [All operations](https://skmtc.dev/vendizap/apis/api-vendizap/llms.txt) · [OpenAPI document](https://skmtc.dev/vendizap/apis/api-vendizap/revisions/2c0d0a254abb?raw)
