Produtos
Criar Produto
Cria um novo produto ou serviço com nome, descrição, preço e configurações de recorrência.
Os produtos criados ficam disponíveis no painel administrativo e podem ser utilizados tanto no checkout transparente (via API) quanto no checkout pro (link de pagamento).
Tipos de recorrência em prices[].recurrenceType:
- ONE_TIME → Avulsa
- WEEKLY → Semanal
- MONTHLY → Mensal
- QUARTERLY → Trimestral
- SEMIANNUAL → Semestral
- YEARLY → Anual
Case de uso:
Como SaaS, quero cadastrar meus planos como produtos com preços recorrentes, para que meus clientes possam assinar diretamente pelo checkout pro ou pela minha própria interface.
POST
/v1/productsBase 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
Body
application/json
Content-Type:application/json
JSON
{
"name": "Plano Premium",
"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": [
{
"title": "Mensal",
"amount": 99.9,
"currency": "BRL",
"recurrenceType": "MONTHLY",
"recurrenceInterval": 1,
"trialDays": 7,
"compareAtPrice": 129.9
},
{
"title": "Anual",
"amount": 899.0,
"currency": "BRL",
"recurrenceType": "YEARLY",
"recurrenceInterval": 1
}
]
}Schema
namestringobrigatórioNome do produto
pricesarray[2]obrigatóriodescriptionstringopcionaltypestringopcionalRECURRING cobra todo ciclo, ONE_TIME cobra uma vez (default RECURRING)
Valores aceitos:
RECURRINGONE_TIMEstatementDescriptorstringopcionalmax 22 caracteres
isActivebooleanopcionalmetadataobjectopcionalObjeto 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
const url = 'https://sandbox.validapay.com.br/v1/products';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer {{token}}',
'Content-Type': 'application/json'
},
body: JSON.stringify({
"name": "Plano Premium",
"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": [
{
"title": "Mensal",
"amount": 99.9,
"currency": "BRL",
"recurrenceType": "MONTHLY",
"recurrenceInterval": 1,
"trialDays": 7,
"compareAtPrice": 129.9
},
{
"title": "Anual",
"amount": 899.0,
"currency": "BRL",
"recurrenceType": "YEARLY",
"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",
"prices": [
{
"priceId": "price_xxx",
"amount": 99.9,
"checkoutUrl": "https://app.validapay.com.br/pagamento/pl_xxx"
}
]
}400400▾
JSON
{
"error": {
"message": "O campo name é obrigatório",
"code": "INVALID_PRODUCT_DATA",
"details": null,
"timestamp": "2026-07-14T21:39:36.322Z"
}
}