Documentação API ZPay
Integre pagamentos PIX instantâneos na sua aplicação com nossa API simples, segura e de alta disponibilidade.
Como funciona
A API ZPay permite gerar cobranças PIX e realizar transferências de forma programática. Todas as requisições utilizam autenticação por client_id e client_secret.
Crie sua conta
Cadastre-se na plataforma ZPay e aguarde a aprovação da sua conta.
Obtenha suas credenciais
Acesse o dashboard → API → Credenciais para copiar seu Client ID e Client Secret.
Configure o webhook
Informe a URL do seu sistema no parâmetro urlnoty para receber notificações de pagamento.
Integre e receba
Use os endpoints abaixo para gerar QR Codes PIX e processar pagamentos automaticamente.
Autenticação
Todas as requisições devem incluir client_id e client_secret no corpo da requisição (form-data).
https://zpaybr.site/v3/pix
Gerar QR Code PIX
Gere QR Codes PIX dinâmicos para receber pagamentos. O QR Code tem validade de 30 minutos.
// Gerar QR Code PIX $apiUrl = 'https://zpaybr.site/v3/pix/qrcode.php'; $postData = [ 'client_id' => 'seu_client_id', 'client_secret' => 'seu_client_secret', 'nome' => 'Nome do Pagador', 'cpf' => '12345678900', 'valor' => 100.00, 'descricao' => 'Pagamento do Pedido #123', 'urlnoty' => 'https://seudominio.com/callback', ]; $ch = curl_init(); curl_setopt_array($ch, [ CURLOPT_URL => $apiUrl, CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_POSTFIELDS => http_build_query($postData), CURLOPT_HTTPHEADER => ['Content-Type: application/x-www-form-urlencoded'], ]); $response = json_decode(curl_exec($ch), true); curl_close($ch); // Exibir QR Code if ($response['statusCode'] === 200) { echo $response['qrcode']; // Código copia e cola }
| Parâmetro | Tipo | Descrição |
|---|---|---|
client_id obrigatório | String | Seu identificador de cliente |
client_secret obrigatório | String | Sua chave secreta de autenticação |
nome obrigatório | String | Nome completo do pagador |
cpf obrigatório | String | CPF do pagador (apenas números, 11 dígitos) |
valor obrigatório | Decimal | Valor da cobrança (ex: 100.00). Mínimo: R$ 2,00 |
descricao opcional | String | Descrição do pagamento (máx. 50 caracteres) |
urlnoty opcional | String | URL para receber a notificação quando o PIX for pago |
{
"statusCode": 200,
"message": "PIX gerado com sucesso",
"qrcode": "00020126850014br.gov.bcb.pix...",
"external_id": "pix_1234567890",
"transaction_id": "e9ac8caa3a2c700...",
"gateway": "ZPAY"
}
{
"statusCode": 401,
"message": "Não autenticado"
}
Transferência PIX
Realize transferências PIX para qualquer chave cadastrada. Processamento em tempo real.
// Transferência PIX $apiUrl = 'https://zpaybr.site/v3/pix/payment.php'; $postData = [ 'client_id' => 'seu_client_id', 'client_secret' => 'seu_client_secret', 'nome' => 'Nome do Destinatário', 'cpf' => '12345678900', 'valor' => 50.00, 'chave_pix' => 'destinatario@email.com', 'urlnoty' => 'https://seudominio.com/callback', ]; $ch = curl_init(); curl_setopt_array($ch, [ CURLOPT_URL => $apiUrl, CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_POSTFIELDS => http_build_query($postData), CURLOPT_HTTPHEADER => ['Content-Type: application/x-www-form-urlencoded'], ]); $response = json_decode(curl_exec($ch), true); curl_close($ch);
| Parâmetro | Tipo | Descrição |
|---|---|---|
client_id obrigatório | String | Seu identificador de cliente |
client_secret obrigatório | String | Sua chave secreta de autenticação |
nome obrigatório | String | Nome do destinatário |
cpf obrigatório | String | CPF do destinatário (apenas números) |
valor obrigatório | Decimal | Valor da transferência (ex: 50.00) |
chave_pix obrigatório | String | Chave PIX do destinatário (CPF, email, telefone ou EVP) |
urlnoty opcional | String | URL para notificação da transferência |
{
"statusCode": 200,
"message": "Saque PIX processado com sucesso"
}
{
"statusCode": 400,
"message": "Saldo insuficiente para cobrir valor e taxas."
}
Webhook — Pagamento Recebido
Quando um pagamento PIX for confirmado, o sistema envia automaticamente uma requisição POST para o urlnoty informado.
{
"requestBody": {
"transactionType": "RECEIVEPIX",
"transactionId": "c327ce8bee2a18565ec2m1z...",
"external_id": "55aefd02e54e785fbb5a80...",
"amount": 100.00,
"paymentType": "PIX",
"status": "PAID",
"dateApproval": "2024-10-07 16:07:10",
"creditParty": {
"name": "Nome do Pagador",
"taxId": "12345678900"
}
}
}
$payload = json_decode(file_get_contents('php://input'), true); $body = $payload['requestBody'] ?? $payload; if (($body['status'] ?? '') === 'PAID') { $transactionId = $body['transactionId']; $externalId = $body['external_id']; $amount = $body['amount']; // Creditar saldo do jogador creditarSaldoJogador($externalId, $amount); http_response_code(200); echo json_encode(['status' => 'ok']); }
Webhook — Transferência Concluída
Notificação enviada quando uma transferência PIX for processada com sucesso.
{
"transactionType": "PAYMENT",
"transactionId": "798176179",
"external_id": "ebceb2b835598ccad73ce42e...",
"amount": 50.00,
"dateApproval": "2024-12-19 17:10:54",
"statusCode": {
"statusId": 1,
"description": "Pagamento aprovado"
}
}
Códigos de Erro
A API utiliza códigos HTTP padrão para indicar sucesso ou falha.
| Código | Status | Descrição |
|---|---|---|
200 | OK | Requisição processada com sucesso |
400 | Bad Request | Parâmetros inválidos ou ausentes |
401 | Unauthorized | Credenciais inválidas ou não autenticado |
403 | Forbidden | Conta sem permissão — contate o suporte |
404 | Not Found | Usuário ou recurso não encontrado |
500 | Server Error | Erro interno — tente novamente |