Bancos dos Pagamentos
Liste os bancos mais utilizados como destino dos seus pagamentos em um período específico.
Endpoint Disponível
- Produção:
https://api.pixtopay.com.br/v2/metrics/withdrawals/banks
⚠️ Atenção: Este endpoint está disponível apenas em produção.
Consultar bancos dos pagamentos
Route
GET /v2/metrics/withdrawals/banks
Headers
{
"Authorization": "YOUR_API_KEY"
}Query Parameters
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
start | string | Sim | Data/hora inicial no formato "YYYY-MM-DD HH:MM:SS" |
end | string | Sim | Data/hora final no formato "YYYY-MM-DD HH:MM:SS" |
Exemplo de requisição:
curl --location 'https://api.pixtopay.com.br/v2/metrics/withdrawals/banks?start=2025-08-04%2016:00:00&end=2025-08-04%2017:00:00' \
--header 'Authorization: API_KEY'Resposta 200 - Sucesso:
[
{
"count": 3456,
"ispb": "18236120",
"bank_name": "NU PAGAMENTOS - IP"
},
{
"count": 2891,
"ispb": "22896431",
"bank_name": "PICPAY"
},
{
"count": 2234,
"ispb": "00360305",
"bank_name": "CAIXA ECONOMICA FEDERAL"
},
{
"count": 1987,
"ispb": "00416968",
"bank_name": "BANCO INTER"
},
{
"count": 1654,
"ispb": "90400888",
"bank_name": "BCO SANTANDER (BRASIL) S.A."
}
]Campos da Resposta
| Parâmetro | Tipo | Descrição |
|---|---|---|
count | integer | Número de transações do banco |
ispb | string | ISPB do banco |
bank_name | string | Nome do banco |
Nota: A resposta é ordenada por count em ordem decrescente (bancos com mais transações primeiro).
Casos de Uso
1. Top 10 bancos de destino
async function getTopDestinationBanks(start, end) {
const response = await fetch(
`https://api.pixtopay.com.br/v2/metrics/withdrawals/banks?start=${start}&end=${end}`,
{ headers: { Authorization: "YOUR_API_KEY" } }
);
const banks = await response.json();
const total = banks.reduce((sum, b) => sum + b.count, 0);
return banks.slice(0, 10).map((bank) => ({
name: bank.bank_name,
ispb: bank.ispb,
transactions: bank.count,
percentage: ((bank.count / total) * 100).toFixed(2) + "%",
}));
}2. Análise de dispersão
async function getDispersionAnalysis(start, end) {
const response = await fetch(
`https://api.pixtopay.com.br/v2/metrics/withdrawals/banks?start=${start}&end=${end}`,
{ headers: { Authorization: "YOUR_API_KEY" } }
);
const banks = await response.json();
const total = banks.reduce((sum, b) => sum + b.count, 0);
const uniqueBanks = banks.length;
// Concentração nos top 5
const top5Count = banks.slice(0, 5).reduce((sum, b) => sum + b.count, 0);
const top5Concentration = ((top5Count / total) * 100).toFixed(2);
// Índice de diversificação
const diversity = banks.map((b) => {
const p = b.count / total;
return -p * Math.log2(p);
});
const diversityIndex = diversity.reduce((sum, d) => sum + d, 0).toFixed(2);
return {
totalBanks: uniqueBanks,
totalTransactions: total,
top5Concentration: `${top5Concentration}%`,
diversityIndex,
};
}3. Comparar períodos
async function compareBankUsage(
period1Start,
period1End,
period2Start,
period2End
) {
const [period1, period2] = await Promise.all([
fetch(
`https://api.pixtopay.com.br/v2/metrics/withdrawals/banks?start=${period1Start}&end=${period1End}`,
{ headers: { Authorization: "YOUR_API_KEY" } }
).then((r) => r.json()),
fetch(
`https://api.pixtopay.com.br/v2/metrics/withdrawals/banks?start=${period2Start}&end=${period2End}`,
{ headers: { Authorization: "YOUR_API_KEY" } }
).then((r) => r.json()),
]);
const period2Map = new Map(period2.map((b) => [b.ispb, b.count]));
return period1.slice(0, 10).map((bank) => {
const prevCount = period2Map.get(bank.ispb) || 0;
const growth = prevCount
? (((bank.count - prevCount) / prevCount) * 100).toFixed(2)
: "N/A";
return {
bank: bank.bank_name,
current: bank.count,
previous: prevCount,
growth: growth !== "N/A" ? `${growth}%` : growth,
};
});
}4. Monitorar problemas por banco
async function monitorBankIssues(start, end, rejectedTransactions) {
const response = await fetch(
`https://api.pixtopay.com.br/v2/metrics/withdrawals/banks?start=${start}&end=${end}`,
{ headers: { Authorization: "YOUR_API_KEY" } }
);
const banks = await response.json();
// Correlacionar com rejeições (dados fictícios - você precisaria buscar isso)
const rejectionsByBank = rejectedTransactions.reduce((acc, t) => {
acc[t.bank_ispb] = (acc[t.bank_ispb] || 0) + 1;
return acc;
}, {});
return banks.map((bank) => {
const rejected = rejectionsByBank[bank.ispb] || 0;
const successRate = (((bank.count - rejected) / bank.count) * 100).toFixed(
2
);
return {
bank: bank.bank_name,
total: bank.count,
rejected,
successRate: `${successRate}%`,
alert: successRate < 95 ? "⚠️ BAIXA TAXA" : "✅ OK",
};
});
}Insights de Negócio
Perfil dos beneficiários
Identifique:
- Bancos preferidos: Onde seus clientes recebem
- Digital vs Tradicional: Perfil dos beneficiários
- Concentração: Dependência de poucos bancos
- Tendências: Mudanças ao longo do tempo
Otimização de processos
Use os dados para:
- Identificar bancos com problemas de processamento
- Priorizar testes com bancos mais utilizados
- Planejar manutenções em horários de baixo volume
- Desenvolver relatórios específicos por banco
Relacionamento com bancos
Insights para parcerias:
- Negociar tarifas com bancos mais utilizados
- Estabelecer SLAs específicos
- Criar canais diretos de suporte
- Desenvolver integrações otimizadas
Observações Importantes
- 🔒 Produção: Endpoint disponível apenas em produção
- 📊 Ordenação: Resultados ordenados por volume (decrescente)
- 🕐 Período flexível: Consulte qualquer período (hora, dia, mês)
- 🏦 Cobertura completa: Inclui todos os bancos do sistema PIX brasileiro
- 💡 ISPB: Use o ISPB para identificar bancos de forma única
- ⏰ Timezone: Datas/horas em UTC-3 (Brasília)
Diferenças: Deposits vs Withdrawals Banks
Deposits (Pagadores)
- Mostra de onde o dinheiro vem
- Perfil dos seus clientes/pagadores
- Geralmente maior volume (muitos pagando)
Withdrawals (Beneficiários)
- Mostra para onde o dinheiro vai
- Perfil dos seus beneficiários
- Pode ter menor diversidade
Principais Métricas
Concentração
Concentração Top 5 = (Soma Top 5 / Total) * 100Diversificação (Shannon Index)
H = -Σ(pi * log2(pi))
onde pi = proporção de transações do banco iQuanto maior H, maior a diversificação.
Taxa de Crescimento por Banco
Crescimento = ((Atual - Anterior) / Anterior) * 100