Documentação

Exemplos de Código

Exemplos completos de integração com a API ActivePayments em várias linguagens de programação. Copie e adapte para seu projeto.

Configuração

Antes de usar os exemplos, configure suas credenciais como variáveis de ambiente:

.env
# .env ou variáveis de ambiente
ActivePayments_PUBLIC_KEY=ActivePayments_pk_xxx
ActivePayments_SECRET_KEY=ActivePayments_sk_xxx
SegurançaNunca commite suas credenciais em repositórios. Use variáveis de ambiente ou um gerenciador de secrets.

Cliente da API

Abaixo está um cliente completo da API com todas as operações disponíveis:

1// ActivePayments.js - Cliente da API ActivePayments
2class ActivePaymentsClient {
3  constructor(publicKey, secretKey) {
4    this.baseUrl = 'https://api.ActivePayments.com.br/api/v1';
5    this.auth = `ApiKey ${publicKey}:${secretKey}`;
6  }
7
8  async request(method, endpoint, body = null) {
9    const options = {
10      method,
11      headers: {
12        'Authorization': this.auth,
13        'Content-Type': 'application/json',
14      },
15    };
16
17    if (body) {
18      options.body = JSON.stringify(body);
19    }
20
21    const response = await fetch(`${this.baseUrl}${endpoint}`, options);
22    const data = await response.json();
23
24    if (!response.ok) {
25      throw new Error(data.message || 'API Error');
26    }
27
28    return data;
29  }
30
31  // Criar cobrança PIX
32  async createCharge(params) {
33    return this.request('POST', '/charges', params);
34  }
35
36  // Consultar status
37  async getChargeStatus(chargeId) {
38    return this.request('GET', `/charges/${chargeId}`);
39  }
40
41  // Listar transações
42  async listTransactions(params = {}) {
43    const query = new URLSearchParams(params).toString();
44    return this.request('GET', `/transactions?${query}`);
45  }
46
47  // Consultar saldo
48  async getBalance() {
49    return this.request('GET', '/balance');
50  }
51}
52
53// Uso:
54const client = new ActivePaymentsClient(
55  process.env.ActivePayments_PUBLIC_KEY,
56  process.env.ActivePayments_SECRET_KEY
57);
58
59// Criar cobrança
60const charge = await client.createCharge({
61  amount: 150.50,
62  customerName: 'João da Silva',
63  customerCpf: '12345678901',
64  customerEmail: 'joao@email.com',
65});
66
67console.log('QR Code:', charge.data.pix.qrCode);
68
69// Verificar status
70const status = await client.getChargeStatus(charge.data.chargeId);
71console.log('Status:', status.data.status);
72
73// Consultar saldo
74const balance = await client.getBalance();
75console.log('Saldo disponível:', balance.data.available);

Quick Start

Para começar rapidamente, você precisa apenas de 3 passos:

Instale a dependência HTTP

Node.js: fetch já está incluído (Node 18+) ou use npm install node-fetch
Python: pip install requests
PHP: cURL já está incluído na maioria das instalações

Configure as credenciais

Defina suas API Keys como variáveis de ambiente e inicialize o cliente.

Faça sua primeira cobrança

Use o método createCharge para gerar um QR Code PIX.

Padrões Comuns

Tratamento de Erros

Tratamento de Erros (Node.js)
try {
  const charge = await client.createCharge({
    amount: 100,
    customerName: 'João',
    customerCpf: '12345678901',
  });
  console.log('Sucesso:', charge);
} catch (error) {
  if (error.message.includes('401')) {
    console.error('Credenciais inválidas');
  } else if (error.message.includes('400')) {
    console.error('Dados inválidos:', error.message);
  } else {
    console.error('Erro inesperado:', error.message);
  }
}

Polling de Status

Polling de Status (Node.js)
async function waitForPayment(chargeId, maxAttempts = 60) {
  for (let i = 0; i < maxAttempts; i++) {
    const { data } = await client.getChargeStatus(chargeId);
    
    if (data.status === 'paid') {
      return data;
    }
    
    if (data.status === 'cancelled' || data.status === 'failed') {
      throw new Error(`Pagamento ${data.status}`);
    }
    
    // Aguardar 5 segundos antes da próxima verificação
    await new Promise(resolve => setTimeout(resolve, 5000));
  }
  
  throw new Error('Timeout aguardando pagamento');
}

// Uso
const charge = await client.createCharge({ /* ... */ });
const paid = await waitForPayment(charge.data.chargeId);
console.log('Pagamento confirmado!', paid);
RecomendaçãoPara produção, prefira usar Webhooks ao invés de polling para melhor performance e confiabilidade.

SDKs Oficiais

Em breve disponibilizaremos SDKs oficiais para as principais linguagens. Por enquanto, use os exemplos acima como base para sua integração.

@ActivePayments/node (em breve)

SDK oficial para Node.js com TypeScript

ActivePayments-python (em breve)

SDK oficial para Python 3.8+