Cupons
Validar Cupom por ID
POST
/v1/coupons/:couponId/validateBase URL Produção:
https://api.validapay.com.brBase URL Sandbox:
https://sandbox.validapay.com.brAuthorizations
noauth
noauth
string obrigatório
Path Parameters
couponIdstringobrigatórioCouponid
Endpoint público, sem autenticação — mesmo comportamento de Validar Cupom, mas com o couponId no caminho em vez de code no body.
IMPORTANTE: o código do cupom continua sendo lido de code no corpo da requisição; o couponId do caminho não é usado para buscar o cupom. Prefira Validar Cupom (POST /v1/coupons/validate) para novas integrações.
Body
application/json
Content-Type:application/json
JSON
{
"code": "BEMVINDO10",
"amount": 199.90,
"productIds": ["price_1788364755079_psuecwgdc"],
"chargeType": "RECURRING",
"customerDocument": "12345678901"
}Schema
codestringobrigatórioCódigo digitado pelo cliente
amountnumberopcionalValor do pedido, usado para checar minAmount e calcular o desconto
productIdsarray[1]opcionalPrice IDs do pedido, usados para checar restrição de produto
chargeTypestringopcionalTipo da cobrança sendo montada (default RECURRING)
Valores aceitos:
RECURRINGONE_TIMEcustomerDocumentstringopcionalCPF/CNPJ do cliente, usado para checar firstTimeOnly
const url = 'https://sandbox.validapay.com.br/v1/coupons/:couponId/validate';
const options = {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
"code": "BEMVINDO10",
"amount": 199.90,
"productIds": ["price_1788364755079_psuecwgdc"],
"chargeType": "RECURRING",
"customerDocument": "12345678901"
})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));Response Examples
200200 válido▾
JSON
{
"valid": true,
"coupon": {
"code": "BEMVINDO10",
"name": "Cupom de boas-vindas",
"description": "10% na primeira cobrança",
"discountType": "PERCENTAGE",
"discountValue": 10,
"maxCycles": 3,
"maxDiscount": 30.0,
"validUntil": "2026-12-31T23:59:59.000Z",
"appliesTo": "RECURRING",
"firstTimeOnly": true
}
}