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 · header · required
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
{
"name": "Plano Premium",
"description": "Acesso completo à plataforma",
"type": "RECURRING",
"statementDescriptor": "VALIDAPAY PREMIUM",
"isActive": true,
"metadata": {},
"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
namestringRequiredNome do produto
prices[2]arrayRequireddescriptionstringOptionaltypestringOptionalRECURRING ou ONE_TIME (default RECURRING)
statementDescriptorstringOptionalmax 22 caracteres
isActivebooleanOptionalmetadataobjectconst 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": {},
"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
{
"productId": "prod_xxx",
"name": "Plano Premium",
"prices": [
{
"priceId": "price_xxx",
"amount": 99.9,
"checkoutUrl": "https://app.validapay.com.br/pagamento/pl_xxx"
}
]
}400400
{
"error": {
"message": "O campo name é obrigatório",
"code": "INVALID_PRODUCT_DATA",
"details": null,
"timestamp": "2026-07-14T21:39:36.322Z"
}
}