Pix
Cobrança imediata
Com esta funcionalidade você pode criar um QR Code de cobrança imediata.
Case de uso:
Como SaaS, quero gerar cobranças preenchendo apenas o valor do produto e nada mais
Regras condicionais (COBV): name e cep do customer só são aceitos junto com expiration. Havendo expiration e customer, o trio documentNumber, name e cep passa a ser obrigatório em bloco.
Resposta: os campos vêm na raiz — emv e qrCode, não aninhados sob pix. O qrCode já é uma data URL PNG pronta para exibir; não é preciso gerar a imagem no seu lado.
Correlação com o pedido: envie metadata na criação e ele volta na resposta e no payload do webhook payment.success. É a forma recomendada de amarrar o pagamento ao seu pedido.
⚠️ Esta rota não tem idempotência.
externalIdé aceito e descartado; duas chamadas iguais criam duas cobranças. Controle duplicidade no seu lado (índicepedido → cobrança) ou usePOST /v1/charges, que responde409 DUPLICATE_CHARGE. O campoexternalTxiddocumentado aqui identifica loja, caixa ou vendedor — não serve como chave de idempotência.
/v1/charges/pixhttps://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
{
"amount": 10.00,
"paymentMethod": "pix",
"expiration": "2026-12-31",
"externalTxid": "loja-01-caixa-03",
"metadata": { "orderId": "pedido-1001" },
"customer": {
"documentNumber": "12345678901",
"name": "Joao da Silva",
"cep": "01310100",
"phone": "+5511999998888",
"email": "joao@email.com"
},
"split": [
{
"type": "fixed",
"accountNumber": "896532569",
"amount": 0.10
}
]
}Schema
amountnumberRequired0.01Valor em reais, nunca em centavos
paymentMethodstringOptionalpixFixo "pix"; o padrao ja e pix
expirationstringOptional^\d{4}-\d{2}-\d{2}$Vencimento (COBV). Nao aceita data passada
externalTxidstringOptionalaté 100 caracteresIdentifica loja, caixa ou vendedor
metadataobjectcustomerobjectOptionalDados do pagador. Com expiration, vira COBV
split[1]arrayOptionalDivisao do valor entre recebedores
const url = 'https://sandbox.validapay.com.br/v1/charges/pix';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer {{token}}',
'Content-Type': 'application/json'
},
body: JSON.stringify({
"amount": 10.00,
"paymentMethod": "pix",
"expiration": "2026-12-31",
"externalTxid": "loja-01-caixa-03",
"metadata": { "orderId": "pedido-1001" },
"customer": {
"documentNumber": "12345678901",
"name": "Joao da Silva",
"cep": "01310100",
"phone": "+5511999998888",
"email": "joao@email.com"
},
"split": [
{
"type": "fixed",
"accountNumber": "896532569",
"amount": 0.10
}
]
})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));Response Examples
{
"chargeId": "cha_1771511282731_9p1wo3tql",
"emv": "00020101021226910014br.gov.bcb.pix…",
"qrCode": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...",
"metadata": {
"orderId": "pedido-1001"
}
}