SDKs oficiais
Clientes oficiais para Node e PHP. A chave de API identifica o tenant
(sem tenantId), com retries, idempotência e verificação de webhook prontos.
O baseUrl já aponta para https://v2.pagnow.com.
Node — @pagnow/sdk-node
npm install @pagnow/sdk-nodeimport { PagNow } from '@pagnow/sdk-node';
const pagnow = new PagNow({ apiKey: process.env.PAGNOW_API_KEY });
const charge = await pagnow.payments.create({
amount: 1990,
currency: 'BRL',
paymentMethods: ['PIX'],
customer: { name: 'João Silva', document: '52998224725', email: 'joao@exemplo.com' },
idempotencyKey: `pedido-${orderId}`,
});
console.log(charge.pixCopyPaste);
// Reembolso / cancelamento
await pagnow.payments.refund(charge.id, { idempotencyKey: `refund-${charge.id}` });
await pagnow.payments.cancel(charge.id);
// Saque (payout) — ver "Saques"
await pagnow.payouts.create({ type: 'PIX', amount: 10000, pixKey: 'maria@exemplo.com', pixKeyType: 'EMAIL' });
// Carteiras (saldos) — ver "Carteiras"
await pagnow.wallets.list();Receptor de webhook (Express) com verificação embutida:
app.post('/webhooks/pagnow', express.raw({ type: 'application/json' }), (req, res) => {
if (!pagnow.webhooks.verify(req.body, req.headers['x-pagnow-signature'], endpointSecret)) {
return res.status(401).end();
}
const { event, data } = JSON.parse(req.body.toString('utf8'));
// event: payment.completed | payment.failed | payment.refunded | withdrawal.completed | withdrawal.failed
res.status(200).end();
});PHP — pagnow/sdk-php
composer require pagnow/sdk-php<?php
use Pagnow\PagNow;
$pagnow = new PagNow(['apiKey' => getenv('PAGNOW_API_KEY')]);
$charge = $pagnow->payments->create([
'amount' => 1990,
'currency' => 'BRL',
'paymentMethods' => ['PIX'],
'customer' => ['name' => 'João Silva', 'document' => '52998224725', 'email' => 'joao@exemplo.com'],
'idempotencyKey' => "pedido-{$orderId}",
]);
echo $charge['pixCopyPaste'];
$pagnow->payments->refund($charge['id'], ['idempotencyKey' => "refund-{$charge['id']}"]);
// Saque (payout) — ver "Saques"
$pagnow->payouts->create(['type' => 'PIX', 'amount' => 10000, 'pixKey' => 'maria@exemplo.com', 'pixKeyType' => 'EMAIL']);
// Carteiras (saldos) — ver "Carteiras"
$pagnow->wallets->list();Webhook (verificação embutida):
<?php
$raw = file_get_contents('php://input');
$sig = $_SERVER['HTTP_X_PAGNOW_SIGNATURE'] ?? '';
if (!$pagnow->webhooks->verify($raw, $sig, getenv('PAGNOW_WEBHOOK_SECRET'))) {
http_response_code(401); exit;
}
$event = json_decode($raw, true);
// $event['event']: payment.completed | payment.failed | payment.refunded | withdrawal.completed | withdrawal.failedLinks
- npm: https://www.npmjs.com/package/@pagnow/sdk-node
- Packagist: https://packagist.org/packages/pagnow/sdk-php
- Código (PHP): https://github.com/pagnowtech/sdk-php
- Referência da API (OpenAPI/Redoc): https://v2.pagnow.com/docs/payments/reference
Integrando em outra linguagem? A API é HTTP + JSON — os exemplos em cURL ao longo da doc cobrem tudo.
