Início Rápido
Integre pagamentos PIX no seu sistema em 3 passos simples:
2
Gere suas API Keys
Vá em API Keys e gere suas credenciais (client_id + client_secret)
3
Integre
Use as credenciais nos headers das requisições HTTP conforme documentado abaixo.
Autenticação
Todas as requisições à API exigem as credenciais nos headers:
Copiar
ci : vxp_ci_xxxxxxxxxxxxxxxx
cs : vxp_cs_xxxxxxxxxxxxxxxx
Content-Type : application/json
Base URL
Copiar https://www.vexopay.com.br
Taxas
2% + R$ 0,50 por transação
Valor Taxa Você Recebe
R$ 10,00 R$ 0,70 R$ 9,30
R$ 50,00 R$ 1,50 R$ 48,50
R$ 100,00 R$ 2,50 R$ 97,50
R$ 500,00 R$ 10,50 R$ 489,50
R$ 1.000,00 R$ 20,50 R$ 979,50
Sem mensalidade. Sem fidelidade. Sem taxa de adesão.
Criar Cobrança PIX (Cash-in)
POST
/api/gateway/pix-create
Gera uma cobrança PIX com QR Code e código copia e cola.
Parâmetros (body JSON)
Campo Tipo Obrigatório Descrição
amountnumber Sim Valor em reais (mín: 1.00)
payerNamestring Sim Nome do pagador
payerDocumentstring Sim CPF do pagador (apenas números)
descriptionstring Não Descrição da cobrança
cURL
JavaScript
Python
PHP
Copiar curl -X POST https://www.vexopay.com.br/api/gateway/pix-create \
-H "Content-Type: application/json" \
-H "ci: vxp_ci_SEU_CLIENT_ID" \
-H "cs: vxp_cs_SEU_CLIENT_SECRET" \
-d '{
"amount": 50.00,
"payerName": "João Silva",
"payerDocument": "12345678909",
"description": "Assinatura mensal"
}'
Copiar const response = await fetch('https://www.vexopay.com.br/api/gateway/pix-create' , {
method: 'POST' ,
headers: {
'Content-Type' : 'application/json' ,
'ci' : 'vxp_ci_SEU_CLIENT_ID' ,
'cs' : 'vxp_cs_SEU_CLIENT_SECRET' ,
},
body: JSON.stringify({
amount: 50.00 ,
payerName: 'João Silva' ,
payerDocument: '12345678909' ,
description: 'Assinatura mensal' ,
}),
});
const data = await response.json();
console.log(data.data.qrCodeBase64);
console.log(data.data.copyPaste);
Copiar import requests
response = requests.post(
'https://www.vexopay.com.br/api/gateway/pix-create' ,
headers={
'ci' : 'vxp_ci_SEU_CLIENT_ID' ,
'cs' : 'vxp_cs_SEU_CLIENT_SECRET' ,
},
json={
'amount' : 50.00 ,
'payerName' : 'João Silva' ,
'payerDocument' : '12345678909' ,
}
)
data = response.json()
print(data['data' ]['copyPaste' ])
Copiar $ch = curl_init('https://www.vexopay.com.br/api/gateway/pix-create' );
curl_setopt_array($ch , [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Content-Type: application/json' ,
'ci: vxp_ci_SEU_CLIENT_ID' ,
'cs: vxp_cs_SEU_CLIENT_SECRET' ,
],
CURLOPT_POSTFIELDS => json_encode([
'amount' => 50.00 ,
'payerName' => 'João Silva' ,
'payerDocument' => '12345678909' ,
]),
]);
$response = curl_exec($ch );
$data = json_decode($response , true);
echo $data ['data' ]['copyPaste' ];
Resposta de Sucesso (201)
Copiar {
"success" : true ,
"data" : {
"transactionId" : "vxp_abc123def456..." ,
"amount" : 50.00 ,
"fee" : 1.50 ,
"netAmount" : 48.50 ,
"status" : "pending" ,
"qrCodeBase64" : "data:image/png;base64,..." ,
"qrCodeUrl" : "https://..." ,
"copyPaste" : "00020126..." ,
"expiresAt" : "2025-12-31T23:59:59Z"
}
}
Consultar Status
GET
/api/gateway/pix-status?transactionId=vxp_xxx
Copiar curl https://www.vexopay.com.br/api/gateway/pix-status?transactionId=vxp_abc123 \
-H "ci: vxp_ci_SEU_CLIENT_ID" \
-H "cs: vxp_cs_SEU_CLIENT_SECRET"
Resposta
Copiar {
"success" : true ,
"data" : {
"transactionId" : "vxp_abc123..." ,
"type" : "pix_in" ,
"amount" : 50.00 ,
"fee" : 1.50 ,
"netAmount" : 48.50 ,
"status" : "paid" ,
"payerName" : "João Silva" ,
"createdAt" : "2025-01-15T14:30:00Z"
}
}
Possíveis Status
Status Descrição
pendingAguardando pagamento do PIX
paidPagamento confirmado
failedPagamento falhou
expiredQR Code expirou
refundedPagamento estornado
Consultar Saldo
GET
/api/gateway/balance
Copiar curl https://www.vexopay.com.br/api/gateway/balance \
-H "ci: vxp_ci_SEU_CLIENT_ID" \
-H "cs: vxp_cs_SEU_CLIENT_SECRET"
Resposta
Copiar {
"success" : true ,
"data" : {
"balance" : 1250.00 ,
"totalReceived" : 5000.00 ,
"totalWithdrawn" : 3500.00 ,
"totalFees" : 250.00 ,
"transactionsCount" : 42 ,
"currency" : "BRL"
}
}
Webhooks
Configure a URL de webhook no seu perfil para receber notificações em tempo real quando um pagamento for confirmado.
Payload recebido no seu webhook
Copiar {
"event" : "payment.completed" ,
"data" : {
"transactionId" : "vxp_abc123..." ,
"amount" : 50.00 ,
"fee" : 1.50 ,
"netAmount" : 48.50 ,
"status" : "paid" ,
"payerName" : "João Silva" ,
"paidAt" : "2025-01-15T14:35:00Z"
}
}
IP Whitelist (Opcional)
Para maior segurança, você pode restringir o uso da sua API Key a IPs específicos. Configure na página API Keys .
Como funciona
Configuração Comportamento
Sem IPsAceita requisições de qualquer IP (padrão)
Com IPsAceita apenas requisições dos IPs listados
Resposta quando IP bloqueado (403)
Copiar {
"error" : "IP não autorizado (203.0.113.50). Configure seus IPs permitidos na página API Keys."
}
💡 Dica: Configure IPs permitidos sempre que possível para proteger suas credenciais contra uso não autorizado.
Códigos de Erro
HTTP Code Significado
400Parâmetros inválidos ou ausentes
401Credenciais (ci/cs) inválidas ou ausentes
403Conta suspensa ou sem permissão
404Recurso não encontrado
405Método HTTP não permitido
429Limite de requisições excedido
500Erro interno do servidor
502Erro de comunicação com processador de pagamento