Integre pagamentos e transferências PIX em sua aplicação com nossa API robusta, rápida e segura. Processamento em tempo real com webhooks automáticos.
Começar Integração| Parâmetro | Tipo | Descrição | Exemplo |
|---|---|---|---|
| client_id | string | Identificador único do cliente | joao_12345 |
| client_secret | string | Chave secreta para autenticação | abc123def456... |
| nome | string | Nome completo do pagador | João Silva Santos |
| cpf | string | CPF apenas números | 12345678901 |
| valor | float | Valor em reais (formato decimal) | 150.99 |
| descricao | string | Descrição do pagamento | Pagamento de serviço |
| urlnoty | string | URL para receber webhooks | https://seusite.com/webhook |
$apiUrl = 'https://divpag.com/v3/pix/qrcode';
$postData = [
'client_id' => 'seu_client_id_aqui',
'client_secret' => 'sua_chave_secreta_aqui',
'nome' => 'João Silva Santos',
'cpf' => '12345678901',
'valor' => 150.99,
'descricao' => 'Pagamento de serviço premium',
'urlnoty' => 'https://seusite.com/divpag_webhook.php'
];
$ch = curl_init($apiUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postData));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/x-www-form-urlencoded',
'User-Agent: SeuApp/1.0'
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
$data = json_decode($response, true);
if($httpCode === 200 && isset($data['qrcode'])) {
echo "✅ QRCode gerado com sucesso!";
echo "ID: " . $data['transactionId'];
echo "QRCode: " . $data['qrcode'];
} else {
echo "❌ Erro: " . ($data['message'] ?? 'Erro desconhecido');
}
{
"transactionId": "4392d1d7e408d3cec04fm1zf3gv7vkq1",
"status": "PENDING",
"amount": 150.99,
"qrcode": "00020126850014br.gov.bcb.pix...",
"external_id": "68a945c086377"
}
{
"statusCode": 400,
"message": "CPF inválido ou parâmetros obrigatórios ausentes",
"errors": [
"O campo 'valor' é obrigatório",
"CPF deve conter apenas números"
]
}
{
"statusCode": 401,
"message": "client_id ou client_secret inválidos"
}
| Parâmetro | Tipo | Descrição | Exemplo |
|---|---|---|---|
| client_id | string | ID do cliente na API | maria_98765 |
| client_secret | string | Chave secreta do cliente | def456ghi789... |
| nome | string | Nome do remetente | Maria Silva |
| cpf | string | CPF do remetente | 98765432100 |
| valor | float | Valor da transferência | 250.75 |
| chave_pix | string | Chave PIX do destinatário | 11970142332 |
| urlnoty | string | URL para notificações | https://seusite.com/webhook |
$apiUrl = 'https://divpag.com/v3/pix/payment';
$postData = [
'client_id' => 'maria_98765',
'client_secret' => 'def456ghi789...',
'nome' => 'Maria Silva Santos',
'cpf' => '98765432100',
'valor' => 250.75,
'chave_pix' => '11970142332',
'urlnoty' => 'https://seusite.com/webhook.php'
];
$ch = curl_init($apiUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postData));
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
$data = json_decode($response, true);
if($httpCode === 200 && isset($data[0]['statusCode'])
&& $data[0]['statusCode'] == 200) {
echo "✅ Transferência iniciada!";
echo "Mensagem: " . $data[0]['message'];
} else {
echo "❌ Erro: " . ($data['message'] ?? 'Erro desconhecido');
}
[{
"statusCode": 200,
"message": "Transferência PIX processada com sucesso",
"transactionId": "798176179"
}]
{
"statusCode": 400,
"message": "Saldo insuficiente para realizar a transferência"
}
{
"statusCode": 400,
"message": "Chave PIX inválida ou não encontrada"
}
Nossa API envia automaticamente notificações para a URL especificada no parâmetro urlnoty sempre que o status de uma transação é alterado. Os webhooks são enviados via POST com Content-Type: application/json.
Enviado quando um pagamento PIX é confirmado:
{
"transactionType": "RECEIVEPIX",
"transactionId": "a502e53d7e7d7c8afd0fmenrr80g57h0",
"external_id": "68a945c086377",
"amount": 150.99,
"paymentType": "PIX",
"status": "PAID",
"dateApproval": "2025-08-23 04:38:39",
"creditParty": {
"name": "João Silva Santos",
"email": "joao@email.com",
"taxId": "12345678901"
},
"debitParty": {
"bank": "Divpag Pagamentos LTDA",
"taxId": "59.667.922/0001-08"
}
}
Enviado quando uma transferência PIX é processada:
{
"transactionType": "PAYMENT",
"transactionId": "798176179",
"external_id": "e3ac10e77397a1516b1e273a01d4rxp67",
"amount": 250.75,
"paymentType": "PIX",
"dateApproval": "2025-08-23 15:45:22",
"statusCode": {
"statusId": 1,
"description": "Transferência concluída com sucesso"
}
}
<?php
// Receber dados do webhook
$input = file_get_contents('php://input');
$data = json_decode($input, true);
if (!$data) {
http_response_code(400);
die('Dados inválidos');
}
// Log para debug
file_put_contents('webhook_log.txt',
date('Y-m-d H:i:s') . " - " . $input . PHP_EOL,
FILE_APPEND
);
// Processar baseado no tipo
switch ($data['transactionType']) {
case 'RECEIVEPIX':
if ($data['status'] === 'PAID') {
$transactionId = $data['transactionId'];
$amount = $data['amount'];
$external_id = $data['external_id'];
// Liberar produto/serviço
liberarProduto($external_id, $amount);
echo "Pagamento processado";
}
break;
case 'PAYMENT':
if ($data['statusCode']['statusId'] == 1) {
$transactionId = $data['transactionId'];
$amount = $data['amount'];
// Confirmar transferência
confirmarTransferencia($transactionId, $amount);
echo "Transferência concluída";
}
break;
}
http_response_code(200);
echo "OK";
?>
Precisa de ajuda ou encontrou algum problema? Entre em contato conosco: