Checkouts
Checkout Session
Esta rota cria uma sessão de pagamento e retorna um link para a página de pagamento hospedada pela ValidaPay. Ao compartilhar ou redirecionar o cliente para esse link, ele será direcionado a uma interface segura onde poderá concluir o pagamento.
Para criar uma sessão, informe o priceId de um preço previamente cadastrado. Opcionalmente, você pode enviar os dados do cliente (customer) e restringir os métodos de pagamento aceitos (allowedPaymentMethods).
A resposta inclui o id da sessao e uma url de pagamento que pode ser utilizada como fallback ou redirecionamento.
Metodos de pagamento suportados: creditcard, pix, boleto
⚠️ Atenção: Uma sessao de checkout so pode ser paga uma unica vez. Apos o pagamento bem-sucedido, a sessao e marcada como completed e novas tentativas de pagamento não serão possíveis.
Case de uso:
Como SaaS, quero gerar um link de pagamento exclusivo para cada cliente no momento da contratacao do plano. Crio uma sessao com o priceId do plano escolhido e redireciono o cliente para a URL retornada. Apos o pagamento, a sessao e encerrada automaticamente, garantindo que o mesmo link nao seja utilizado novamente.
Como plataforma de servicos, quero enviar um link de pagamento por email ou WhatsApp para cada orçamento aprovado. Cada sessao corresponde a um pagamento unico, evitando cobranças duplicadas.
/v1/checkouts/sessionhttps://api.validapay.com.brhttps://sandbox.validapay.com.brAuthorizations
Authorization
string · header · required
Cabeçalho de autenticação Bearer no formato Bearer {{token}} onde {{token}} é o seu token OAuth2.
Escopos requeridos
Body
application/json
{
"priceId": "price_1772389525023_dd9gsj4uw",
"allowedPaymentMethods": ["pix", "creditcard"],
"customer": {
"email": "teste@validapay.com.com",
"documentNumber": "00900790270"
}
}Schema
| Field | Type | Required | Description |
|---|---|---|---|
priceId | string | - | - |
allowedPaymentMethods[2] | array | - | - |
customer | object | - | - |
const url = 'https://sandbox.validapay.com.br/v1/checkouts/session';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer {{token}}',
'Content-Type': 'application/json'
},
body: JSON.stringify({
"priceId": "price_1772389525023_dd9gsj4uw",
"allowedPaymentMethods": ["pix", "creditcard"],
"customer": {
"email": "teste@validapay.com.com",
"documentNumber": "00900790270"
}
})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));Response Examples
{
"id": "SANDBOX_cs_1772391984588_r4lzc2h8w",
"url": "https://app.validapay.com.br/pagamento/SANDBOX_cs_1772391984588_r4lzc2h8w",
"priceId": "price_1772391951373_rfu2y02g1"
}