Cupons

Atualizar um cupom

PUT /v1/coupons/{couponId} ou PATCH /v1/coupons/{couponId}

PUT /v1/coupons/{couponId} ou PATCH /v1/coupons/{couponId}

Atualiza um cupom existente. Ambos os métodos têm o mesmo comportamento (envie apenas os campos que deseja alterar — todos são opcionais).

Requisição

curl -X PUT "https://api.selectwin.io/v1/coupons/dis_01hqzvabc" \
  -H "SelectKey: sk_live_aBcDeFgHiJkLmNoPqRsTuVwXyZ" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Black Friday 30%",
    "value": 30,
    "enabled": true,
    "endDate": "2026-12-31T23:59:59Z"
  }'

O couponId aceita os prefixos dis_ e coup_ (cupons legados).

Campos (todos opcionais no update)

CampoTipoDescrição
namestring (1–80)Nome do cupom.
codestring (1–50)Código aplicado pelo cliente.
typeenumflat (valor fixo em reais) ou percentage (taxa 0–100).
valuenumberDesconto: 0–100 se percentage; reais (decimal) se flat.
enabledbooleanAtiva/desativa o cupom.
minCartAmount / maxCartAmountnumber (centavos)Faixa de valor do carrinho.
minCartItems / maxCartItemsnumber (int)Faixa de quantidade de itens.
usageLimitnumber (int)Limite total de usos.
usageQuantitynumber (int)Usos contabilizados.
limitOneUsePerCustomerbooleanRestringe a 1 uso por cliente.
isCumulativebooleanPermite acumular com outros descontos.
initDate / endDatedatetime ISO 8601Janela de validade.
allowedItemIdsarray de publicIds (≤ 1000)Restringe a produtos/variantes específicos.
allowedCustomerIdsarray de cus_* (≤ 1000)Restringe a clientes específicos.
scopeenumfirstCharge ou recurring.
recurringCyclesnumber (1–999) | nullMáx. de ciclos quando scope=recurring.

Campos opcionais enviados como null/"" são tratados como ausentes (empty-to-absent), exceto recurringCycles, que aceita null explícito para limpar o limite. Campos não reconhecidos são rejeitados (body estrito).

Resposta - 200 OK

{
  "id": "dis_01hqzvabc",
  "name": "Black Friday 30%",
  "code": "BLACKFRIDAY25",
  "type": "percentage",
  "value": 30,
  "enabled": true,
  "minCartAmount": 10000,
  "maxCartAmount": null,
  "minCartItems": null,
  "maxCartItems": null,
  "usageLimit": 100,
  "usageQuantity": 0,
  "limitOneUsePerCustomer": true,
  "isCumulative": false,
  "initDate": "2026-04-01T00:00:00.000Z",
  "endDate": "2026-12-31T23:59:59.000Z",
  "allowedItemIds": null,
  "allowedCustomerIds": null,
  "scope": "firstCharge",
  "recurringCycles": null,
  "createdAt": "2026-04-12T17:56:33.000Z",
  "updatedAt": "2026-04-12T17:56:33.000Z"
}

As respostas de cupom não incluem merchant nem _links.

Erros

error.codeHTTPQuando
couponNotFound404Nenhum cupom com o couponId informado.
couponCodeConflict409O novo code já é usado por outro cupom.

Erros de validação do corpo retornam 400 (campos inválidos) ou 422 (ex.: percentage > 100).

How is this guide?

On this page