Instalação
Copy
Ask AI
npm install @pagozz/sdk
Configuração
Copy
Ask AI
import { Pagozz } from '@pagozz/sdk';
const pagozz = new Pagozz('pgz_live_XXXXXXXXXXXXXXXXXXXXXXXX', {
baseUrl: 'https://api.pagozz.com/v1', // opcional (default)
timeout: 30000, // opcional, ms (default: 30s)
retry: { // opcional
maxRetries: 2, // default: 2
initialDelayMs: 500, // default: 500
maxDelayMs: 5000, // default: 5000
},
});
Links
Copy
Ask AI
// Criar
const link = await pagozz.links.create({
name: 'Consultoria 1h',
amount: 15000,
value_mode: 'fixed',
payment_methods: ['pix'],
});
// Listar
const { links, total } = await pagozz.links.list({
page: 1,
page_size: 20,
});
// Buscar
const link = await pagozz.links.get('link-id');
// Atualizar
const updated = await pagozz.links.update('link-id', {
name: 'Novo nome',
});
// Deletar
await pagozz.links.delete('link-id');
Payments
Copy
Ask AI
// PIX
const pix = await pagozz.payments.createPix({
link_id: 'link-id',
payer: {
name: 'João',
email: 'joao@email.com',
cpf: '12345678900',
},
});
// pix.transaction_id, pix.br_code, pix.qr_code_image, pix.expires_at
// Cartão
const card = await pagozz.payments.createCard({
link_id: 'link-id',
payer: {
name: 'João',
email: 'joao@email.com',
cpf: '12345678900',
},
card: {
number: '4111111111111111',
exp_month: 12,
exp_year: 2027,
cvv: '123',
},
});
// Consultar status
const status = await pagozz.payments.get('transaction-id');
// Simular (apenas test mode)
await pagozz.payments.simulate('transaction-id');
Idempotência
Copy
Ask AI
const pix = await pagozz.payments.createPix(params, {
idempotencyKey: 'pedido-1234',
});
Transactions
Copy
Ask AI
const { transactions, total } = await pagozz.transactions.list({
page: 1,
page_size: 20,
status: 'completed',
});
const tx = await pagozz.transactions.get('transaction-id');
Webhooks
Copy
Ask AI
// Criar endpoint
const endpoint = await pagozz.webhooks.create({
url: 'https://meusite.com/webhooks',
events: ['payment.succeeded', 'payment.failed'],
});
// endpoint.secret → guarde com segurança!
// Listar, buscar, atualizar, deletar
const { endpoints } = await pagozz.webhooks.list();
const ep = await pagozz.webhooks.get('endpoint-id');
await pagozz.webhooks.update('endpoint-id', { events: ['payment.succeeded'] });
await pagozz.webhooks.delete('endpoint-id');
// Testar
await pagozz.webhooks.test('endpoint-id');
// Listar deliveries
const { deliveries } = await pagozz.webhooks.listDeliveries('endpoint-id');
Verificação de Webhook
Copy
Ask AI
import { verifyWebhookSignature, constructWebhookEvent } from '@pagozz/sdk';
// Verificação simples (boolean)
const isValid = verifyWebhookSignature(
secret, // secret do endpoint
signature, // header X-Pagozz-Signature
timestamp, // header X-Pagozz-Timestamp (number)
rawBody, // body da request (string)
);
// Verificação + parse (retorna WebhookEvent ou throw)
const event = constructWebhookEvent(secret, signature, timestamp, rawBody);
// event.type, event.data, event.environment
Retry automático
O SDK retenta automaticamente em erros429 e 5xx:
| Configuração | Default |
|---|---|
maxRetries | 2 |
initialDelayMs | 500ms |
maxDelayMs | 5000ms |
Copy
Ask AI
const pagozz = new Pagozz('pgz_live_XXX', {
retry: { maxRetries: 0 },
});
Erros tipados
Copy
Ask AI
import {
PagozzError,
AuthenticationError,
ValidationError,
RateLimitError,
} from '@pagozz/sdk';
try {
await pagozz.links.create({ name: '' });
} catch (error) {
if (error instanceof AuthenticationError) {
// 401 — Key inválida ou revogada
} else if (error instanceof ValidationError) {
// 422 — Dados inválidos
console.log(error.field);
} else if (error instanceof RateLimitError) {
// 429 — SDK retenta automaticamente
} else if (error instanceof PagozzError) {
console.log(error.code, error.message, error.status);
}
}
Tipos exportados
Copy
Ask AI
import type {
// Links
Link, LinkList, CreateLinkParams, UpdateLinkParams, ListLinksParams,
// Payments
CreatePixPaymentParams, CreateCardPaymentParams,
PixPaymentCreated, CardPaymentCreated, PaymentStatus,
// Transactions
Transaction, TransactionList, ListTransactionsParams,
// Webhooks
WebhookEndpoint, WebhookEndpointList, WebhookDelivery,
WebhookDeliveryList, WebhookEvent,
CreateWebhookParams, UpdateWebhookParams,
// Common
Environment, PaginationParams,
} from '@pagozz/sdk';
