Produtos
Atualizar Produto
Atualiza as informações de um produto, como nome, descrição ou preço.
Mesmos campos de POST (todos opcionais). Para atualizar preço existente, inclua priceId no item de prices[].
PUT
/v1/products/:idBase URL Produção:
https://api.validapay.com.brBase URL Sandbox:
https://sandbox.validapay.com.brAuthorizations
bearer
Authorization
string obrigatório
Cabeçalho de autenticação Bearer no formato Bearer {{token}} onde {{token}} é o seu token OAuth2.
Escopos requeridos
products/write
Path Parameters
idstringobrigatórioId
Body
application/json
Content-Type:application/json
JSON
{
"name": "Plano Premium Plus",
"description": "Acesso completo à plataforma",
"type": "RECURRING",
"statementDescriptor": "VALIDAPAY PREMIUM",
"isActive": true,
"metadata": {},
"emitirNf": false,
"nfConfigId": "nfc_1788364755079_psuecwgdc",
"tipoNf": "B2C",
"fiscal": {
"descricaoServico": "Assinatura de plataforma",
"codigoTributacaoNacionalIss": "010101",
"codigoTributarioMunicipio": "0101",
"tributacaoIss": 1,
"tipoRetencaoIss": 1,
"aliquota": 2.5,
"ncm": "00000000",
"cfop": "5102",
"icms": 0,
"pis": 0,
"cofins": 0
},
"productUrlPurchased": "https://meusite.com/area-do-aluno",
"sendEmail": ["comprador@email.com"],
"sendWhatsApp": ["+5511999998888"],
"sendWebhook": ["https://meusite.com/webhook"],
"contactCompanyName": "Minha Empresa LTDA",
"contactEmail": "suporte@minhaempresa.com",
"contactPhone": "+5511999998888",
"contactPhoneIsWhatsapp": true,
"contactWhatsappMessage": "Ola, preciso de ajuda com meu pedido",
"messageRuler": [
{
"templateName": "LEMBRETE_VENCIMENTO_PROXIMO",
"offsetDays": -3,
"sendAtTime": "11:00"
}
],
"prices": [
{
"priceId": "price_xxx",
"amount": 109.9,
"recurrenceType": "MONTHLY",
"recurrenceInterval": 1,
"trialDays": 7,
"compareAtPrice": 129.9
},
{
"title": "Trimestral",
"amount": 279.0,
"recurrenceType": "QUARTERLY",
"recurrenceInterval": 1
}
]
}Schema
namestringopcionaldescriptionstringopcionaltypestringopcionalRECURRING cobra todo ciclo, ONE_TIME cobra uma vez (default RECURRING)
Valores aceitos:
RECURRINGONE_TIMEstatementDescriptorstringopcionalisActivebooleanopcionalmetadataobjectopcionalObjeto livre, aceita as chaves e valores que você quiser
emitirNfbooleanopcionalEmite nota fiscal a cada cobrança deste produto (default false)
nfConfigIdstringopcionalConfiguração fiscal usada na emissão; exige endereço do comprador
tipoNfstringopcionalPúblico da nota: consumidor final ou empresa
Valores aceitos:
B2CB2BfiscalobjectopcionalDados fiscais do produto, usados na nota
productUrlPurchasedstringopcionalLink entregue ao comprador após o pagamento
Regra:
urisendEmailarray[1]opcionalE-mails avisados a cada venda deste produto
sendWhatsApparray[1]opcionalNúmeros avisados a cada venda deste produto
sendWebhookarray[1]opcionalURLs chamadas a cada venda deste produto
contactCompanyNamestringopcionalNome exibido ao comprador no checkout e na nota
contactEmailstringopcionalE-mail de suporte exibido ao comprador
Regra:
emailcontactPhonestringopcionalTelefone de suporte exibido ao comprador
contactPhoneIsWhatsappbooleanopcionalMostra o telefone de suporte como WhatsApp
contactWhatsappMessagestringopcionalMensagem que o comprador envia ao clicar no WhatsApp
messageRulerarray[1]opcionalRégua de lembretes por WhatsApp antes e depois do vencimento
pricesarray[2]opcionalPara atualizar preço existente, inclua priceId no item
const url = 'https://sandbox.validapay.com.br/v1/products/:id';
const options = {
method: 'PUT',
headers: {
'Authorization': 'Bearer {{token}}',
'Content-Type': 'application/json'
},
body: JSON.stringify({
"name": "Plano Premium Plus",
"description": "Acesso completo à plataforma",
"type": "RECURRING",
"statementDescriptor": "VALIDAPAY PREMIUM",
"isActive": true,
"metadata": {},
"emitirNf": false,
"nfConfigId": "nfc_1788364755079_psuecwgdc",
"tipoNf": "B2C",
"fiscal": {
"descricaoServico": "Assinatura de plataforma",
"codigoTributacaoNacionalIss": "010101",
"codigoTributarioMunicipio": "0101",
"tributacaoIss": 1,
"tipoRetencaoIss": 1,
"aliquota": 2.5,
"ncm": "00000000",
"cfop": "5102",
"icms": 0,
"pis": 0,
"cofins": 0
},
"productUrlPurchased": "https://meusite.com/area-do-aluno",
"sendEmail": ["comprador@email.com"],
"sendWhatsApp": ["+5511999998888"],
"sendWebhook": ["https://meusite.com/webhook"],
"contactCompanyName": "Minha Empresa LTDA",
"contactEmail": "suporte@minhaempresa.com",
"contactPhone": "+5511999998888",
"contactPhoneIsWhatsapp": true,
"contactWhatsappMessage": "Ola, preciso de ajuda com meu pedido",
"messageRuler": [
{
"templateName": "LEMBRETE_VENCIMENTO_PROXIMO",
"offsetDays": -3,
"sendAtTime": "11:00"
}
],
"prices": [
{
"priceId": "price_xxx",
"amount": 109.9,
"recurrenceType": "MONTHLY",
"recurrenceInterval": 1,
"trialDays": 7,
"compareAtPrice": 129.9
},
{
"title": "Trimestral",
"amount": 279.0,
"recurrenceType": "QUARTERLY",
"recurrenceInterval": 1
}
]
})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));Response Examples
200200▾
JSON
{
"productId": "prod_xxx",
"name": "Plano Premium Plus",
"newPrices": [
{
"priceId": "price_yyy"
}
]
}404404▾
JSON
{
"error": {
"message": "Produto não encontrado",
"code": "PRODUCT_NOT_FOUND",
"details": null,
"timestamp": "2026-07-14T21:39:36.322Z"
}
}