Metrics
Deposit Volumes

Deposit volumes (Cash-in)

Query volumes and amounts of PIX charges by status for a specific date.

Available endpoint

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

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


Query deposit volumes

Route

GET /v2/metrics/deposits

Headers

{
  "Authorization": "YOUR_API_KEY"
}

Query parameters

ParameterTypeRequiredDescription
datestringYesDate to query in "YYYY-MM-DD" format (e.g. "2025-08-04")

Request example:

curl --location 'https://api.pixtopay.com.br/v2/metrics/deposits?date=2025-08-04' \
--header 'Authorization: API_KEY'

Response 200 - Success:

{
  "date": "2025-08-04",
  "pending": {
    "qtd": 184,
    "amount": 12577.8
  },
  "expired": {
    "qtd": 6663,
    "amount": 1296962.97
  },
  "paid": {
    "qtd": 48600,
    "amount": 4168422.03
  },
  "refunded": {
    "qtd": 105,
    "amount": 10397.1
  }
}

Response fields

ParameterTypeDescription
datestringQuery date
pendingobjectPending charges (status 0)
pending.qtdintegerNumber of pending charges
pending.amountnumberTotal amount of pending charges
expiredobjectExpired charges (status 3)
expired.qtdintegerNumber of expired charges
expired.amountnumberTotal amount of expired charges
paidobjectPaid charges (status 1)
paid.qtdintegerNumber of paid charges
paid.amountnumberTotal amount of paid charges
refundedobjectRefunded charges (status 4)
refunded.qtdintegerNumber of refunded charges
refunded.amountnumberTotal amount of refunded charges

Charge statuses

StatusDescription
0Charge created, awaiting payment
1Charge paid
2Charge canceled
3Charge expired
4Charge refunded

Use cases

1. Daily charge dashboard

async function getDailyDeposits(date) {
  const response = await fetch(
    `https://api.pixtopay.com.br/v2/metrics/deposits?date=${date}`,
    {
      headers: { Authorization: "YOUR_API_KEY" },
    }
  );
  const data = await response.json();
 
  return {
    total: data.paid.amount,
    count: data.paid.qtd,
    pending: data.pending.amount,
    expired: data.expired.amount,
  };
}

2. Conversion rate

async function getConversionRate(date) {
  const response = await fetch(
    `https://api.pixtopay.com.br/v2/metrics/deposits?date=${date}`,
    { headers: { Authorization: "YOUR_API_KEY" } }
  );
  const data = await response.json();
 
  const total = data.paid.qtd + data.expired.qtd + data.pending.qtd;
  const paid = data.paid.qtd;
  const conversionRate = ((paid / total) * 100).toFixed(2);
 
  return {
    total,
    paid,
    expired: data.expired.qtd,
    conversionRate: `${conversionRate}%`,
  };
}

3. Loss analysis

async function getLossAnalysis(date) {
  const response = await fetch(
    `https://api.pixtopay.com.br/v2/metrics/deposits?date=${date}`,
    { headers: { Authorization: "YOUR_API_KEY" } }
  );
  const data = await response.json();
 
  return {
    expired: {
      count: data.expired.qtd,
      amount: data.expired.amount,
      percentage: (
        (data.expired.amount /
          (data.paid.amount + data.expired.amount + data.pending.amount)) *
        100
      ).toFixed(2),
    },
    refunded: {
      count: data.refunded.qtd,
      amount: data.refunded.amount,
    },
  };
}

Important notes

  • 🔒 Production: Endpoint available only in production
  • 📊 Aggregated data: Metrics are precomputed for performance
  • 🕐 Updates: Data updated in real time
  • 📅 Period: Query any date from account creation onward
  • 💰 Currency: All amounts in BRL (Brazilian Real)
  • Timezone: All dates in UTC-3 (Brasília)

Business insights

Conversion analysis

Use pending, paid, and expired to calculate:

  • Charge conversion rate
  • Abandonment rate
  • Average charge amount by status

Daily performance

Monitor:

  • Volume of charges created
  • Expiration rate
  • Average ticket by status
  • Periods with highest conversion

Operational quality

Track:

  • Refund rate
  • Expiration drivers
  • Performance by day of week