Metrics
Deposit Banks

Deposit banks

List the banks most used by your payers in a specific period.

Available endpoint

  • Production: https://api.pixtopay.com.br/v2/metrics/deposits/banks

⚠️ Attention: This endpoint is only available in production.


Query deposit banks

Route

GET /v2/metrics/deposits/banks

Headers

{
  "Authorization": "YOUR_API_KEY"
}

Query parameters

ParameterTypeRequiredDescription
startstringYesStart date/time in "YYYY-MM-DD HH:MM:SS" format
endstringYesEnd date/time in "YYYY-MM-DD HH:MM:SS" format

Request example:

curl --location 'https://api.pixtopay.com.br/v2/metrics/deposits/banks?start=2025-08-04%2016:00:00&end=2025-08-04%2017:00:00' \
--header 'Authorization: API_KEY'

Response 200 - Success:

[
  {
    "count": 23130,
    "ispb": "18236120",
    "bank_name": "NU PAGAMENTOS - IP"
  },
  {
    "count": 6985,
    "ispb": "22896431",
    "bank_name": "PICPAY"
  },
  {
    "count": 6191,
    "ispb": "00360305",
    "bank_name": "CAIXA ECONOMICA FEDERAL"
  },
  {
    "count": 5439,
    "ispb": "00416968",
    "bank_name": "BANCO INTER"
  },
  {
    "count": 5027,
    "ispb": "90400888",
    "bank_name": "BCO SANTANDER (BRASIL) S.A."
  },
  {
    "count": 4078,
    "ispb": "60701190",
    "bank_name": "ITAÚ UNIBANCO S.A."
  }
]

Response fields

ParameterTypeDescription
countintegerNumber of transactions per bank
ispbstringBank ISPB
bank_namestringBank name

Note: The response is sorted by count in descending order (banks with the most transactions first).


Use cases

1. Top 10 most-used banks

async function getTopBanks(start, end) {
  const response = await fetch(
    `https://api.pixtopay.com.br/v2/metrics/deposits/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);
 
  // Top 10 banks
  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. Analysis: Digital vs traditional banks

async function analyzeBankTypes(start, end) {
  const response = await fetch(
    `https://api.pixtopay.com.br/v2/metrics/deposits/banks?start=${start}&end=${end}`,
    { headers: { Authorization: "YOUR_API_KEY" } }
  );
  const banks = await response.json();
 
  const digitalBanks = [
    "18236120", // Nubank
    "22896431", // PicPay
    "00416968", // Inter
    "10573521", // Mercado Pago
    "08561701", // PagSeguro
    "20855875", // Neon
    "31872495", // C6
  ];
 
  const digital = banks
    .filter((b) => digitalBanks.includes(b.ispb))
    .reduce((sum, b) => sum + b.count, 0);
 
  const traditional = banks
    .filter((b) => !digitalBanks.includes(b.ispb))
    .reduce((sum, b) => sum + b.count, 0);
 
  const total = digital + traditional;
 
  return {
    digital: {
      count: digital,
      percentage: ((digital / total) * 100).toFixed(2) + "%",
    },
    traditional: {
      count: traditional,
      percentage: ((traditional / total) * 100).toFixed(2) + "%",
    },
  };
}

3. Bank diversification

async function getBankDiversity(start, end) {
  const response = await fetch(
    `https://api.pixtopay.com.br/v2/metrics/deposits/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 top5 = banks.slice(0, 5).reduce((sum, b) => sum + b.count, 0);
 
  return {
    totalBanks: banks.length,
    top5Concentration: ((top5 / total) * 100).toFixed(2) + "%",
    longTail: banks.length - 5,
  };
}

4. Export bank report

async function exportBankReport(start, end) {
  const response = await fetch(
    `https://api.pixtopay.com.br/v2/metrics/deposits/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);
 
  // Build CSV
  const csv = [
    "Rank,Bank,ISPB,Transactions,Percentage",
    ...banks.map((bank, index) => {
      const percentage = ((bank.count / total) * 100).toFixed(2);
      return `${index + 1},${bank.bank_name},${bank.ispb},${
        bank.count
      },${percentage}%`;
    }),
  ].join("\n");
 
  return csv;
}

Business insights

Customer preferences

With bank data, identify:

  • Digital vs traditional banks: Your customers’ profile
  • Concentration: Reliance on a small set of banks
  • Trends: Growth of new digital banks
  • Regional: Region-specific banks

Integration optimization

Use the data to:

  • Prioritize integrations with the most-used banks
  • Spot issues on specific banks
  • Plan features based on user profile

Targeted marketing

Campaign insights:

  • Create materials tailored to digital-bank users
  • Campaigns to attract traditional-bank users
  • Strategic partnerships with top banks

Important notes

  • 🔒 Production: Endpoint available only in production
  • 📊 Sorting: Results ordered by volume (descending)
  • 🕐 Flexible period: Query any period (hour, day, month)
  • 🏦 Full coverage: Includes all banks in the Brazilian PIX system
  • 💡 ISPB: Use ISPB to uniquely identify banks
  • Timezone: Dates/times in UTC-3 (Brasília)

Most common banks

Digital banks (top)

  • Nubank (ISPB: 18236120) - NU PAGAMENTOS
  • PicPay (ISPB: 22896431) - PICPAY
  • Inter (ISPB: 00416968) - BANCO INTER
  • Mercado Pago (ISPB: 10573521) - MERCADO PAGO IP
  • C6 Bank (ISPB: 31872495) - BCO C6 S.A.

Traditional banks (top)

  • Caixa (ISPB: 00360305) - CAIXA ECONOMICA FEDERAL
  • Santander (ISPB: 90400888) - BCO SANTANDER
  • Itaú (ISPB: 60701190) - ITAÚ UNIBANCO S.A.
  • Bradesco (ISPB: 60746948) - BCO BRADESCO S.A.
  • Banco do Brasil (ISPB: 00000000) - BCO DO BRASIL S.A.