PagNow

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-node
import { 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.failed

Integrando em outra linguagem? A API é HTTP + JSON — os exemplos em cURL ao longo da doc cobrem tudo.

Nesta página