Retrieves detailed statistics on PIX transactions settled through the Instant Payment System (SPI), with breakdowns by payer/receiver type, region, age group, initiation method, and transaction nature.
Usage
get_pix_transaction_stats(
database,
filter = NULL,
columns = NULL,
top = NULL,
skip = NULL,
orderby = NULL,
verbose = TRUE
)Arguments
- database
Character string in "YYYYMM" format specifying which month's data to retrieve. This parameter is required.
- filter
OData filter expression as a character string. Examples:
"NATUREZA eq 'P2P'"- Filter by transaction nature"PAG_REGIAO eq 'SUDESTE'"- Filter by payer region"FORMAINICIACAO eq 'DICT'"- Filter by initiation method
- columns
Character vector of columns to return. If NULL, returns all columns. See "Available Columns" section.
- top
Integer; maximum number of records to return.
- skip
Integer; number of records to skip (for pagination).
- orderby
Character string specifying the column to sort by. Use
"Column"for ascending or"Column desc"for descending order.- verbose
Logical; if TRUE (default), prints progress messages.
Value
A tibble::tibble with PIX transaction statistics.
Details
The BCB PIX API requires a database parameter specifying which month's
data to retrieve. The data provides granular breakdowns of PIX transactions.
Available Columns
- AnoMes
Reference year-month as integer (YYYYMM format)
- PAG_PFPJ
Payer type: PF (Individual) or PJ (Legal Entity)
- REC_PFPJ
Receiver type: PF (Individual) or PJ (Legal Entity)
- PAG_REGIAO
Payer region (NORTE, NORDESTE, SUDESTE, SUL, CENTRO-OESTE)
- REC_REGIAO
Receiver region
- PAG_IDADE
Payer age group
- REC_IDADE
Receiver age group
- FORMAINICIACAO
Initiation method (DICT, QRDN, QRES, MANU, INIC)
- NATUREZA
Transaction nature (P2P, P2B, B2P, B2B, P2G, G2P)
- FINALIDADE
Transaction purpose (Pix, Pix Saque, Pix Troco, etc.)
- VALOR
Total transaction value (in BRL)
- QUANTIDADE
Number of transactions
Examples
if (FALSE) # It usually takes much longer than 5 seconds.
# Get transaction statistics for September 2025
stats <- get_pix_transaction_stats(database = "202509")
# Filter by transaction nature
p2p <- get_pix_transaction_stats(
database = "202509",
filter = "NATUREZA eq 'P2P'"
)
#>
#> ── Fetching PIX Transaction Statistics ──
#>
#> ℹ URL: https://olinda.bcb.gov.br/olinda/servico/Pix_DadosAbertos/versao/v1/odata/EstatisticasTransacoesPix(Database=@Database)?$format=json&@Database='202509'&$filter=NATUREZA%20eq%20'P2P'
#> ✔ Retrieved 32860 records
# Filter by region and order by value
sudeste <- get_pix_transaction_stats(
database = "202509",
filter = "PAG_REGIAO eq 'SUDESTE'",
orderby = "VALOR desc",
top = 100
)
#>
#> ── Fetching PIX Transaction Statistics ──
#>
#> ℹ URL: https://olinda.bcb.gov.br/olinda/servico/Pix_DadosAbertos/versao/v1/odata/EstatisticasTransacoesPix(Database=@Database)?$format=json&@Database='202509'&$filter=PAG_REGIAO%20eq%20'SUDESTE'&$orderby=VALOR%20desc&$top=100
#> ✔ Retrieved 100 records
# Multiple filters (use 'and')
filtered <- get_pix_transaction_stats(
database = "202509",
filter = "NATUREZA eq 'P2P' and PAG_REGIAO eq 'NORDESTE'"
)
#>
#> ── Fetching PIX Transaction Statistics ──
#>
#> ℹ URL: https://olinda.bcb.gov.br/olinda/servico/Pix_DadosAbertos/versao/v1/odata/EstatisticasTransacoesPix(Database=@Database)?$format=json&@Database='202509'&$filter=NATUREZA%20eq%20'P2P'%20and%20PAG_REGIAO%20eq%20'NORDESTE'
#> ✔ Retrieved 5811 records
# \dontrun{}