MyNixOS website logo
Description

Access Brazilian Central Bank 'PIX' Open Data 'API'.

Provides a 'tidyverse'-style interface to the Brazilian Central Bank (<https://www.bcb.gov.br>) 'PIX' Open Data 'API' <https://olinda.bcb.gov.br/olinda/servico/Pix_DadosAbertos/versao/v1/aplicacao#!/recursos>. Retrieve statistics on 'PIX' keys, transactions by municipality, and monthly transaction summaries. All functions return 'tibbles' and support 'OData' query parameters for filtering, selecting, and ordering data.

pixr

R-CMD-check CRAN status Lifecycle: experimental

Access Brazilian Central Bank PIX Open Data API from R

Overview

pixr provides a tidyverse-style interface to the Brazilian Central Bank (BCB) PIX Open Data API. Retrieve statistics on PIX keys, transactions by municipality, transaction breakdowns, and fraud statistics.

Installation

# install.packages("remotes")
remotes::install_github("StrategicProjects/pixr")

Configuration

Timeout

The default timeout for API requests is 120 seconds. You can change it:

# Using the helper function
pix_timeout(180)  # Set to 3 minutes

# Or via options
options(pixr.timeout = 180)

API Endpoints

Each endpoint has a different parameter name and format:

EndpointParameterFormatR Function
ChavesPixDataYYYY-MM-DDget_pix_keys()
TransacoesPixPorMunicipioDataBaseYYYYMMget_pix_transactions_by_municipality()
EstatisticasTransacoesPixDatabaseYYYYMMget_pix_transaction_stats()
EstatisticasFraudesPixDatabaseYYYYMMget_pix_fraud_stats()

Quick Start

library(pixr)

# PIX Keys Stock (uses date in YYYY-MM-DD format)
keys <- get_pix_keys(date = "2025-12-01")

# Transaction Statistics (uses database in YYYYMM format)
stats <- get_pix_transaction_stats(database = "202509")

# Transactions by Municipality
muni <- get_pix_transactions_by_municipality(database = "202512")

# Fraud Statistics (MED)
fraud <- get_pix_fraud_stats(database = "202509")

OData Filter and OrderBy

All functions support OData filter and orderby parameters:

# Filter by state and order by municipality name (descending)
maranhao <- get_pix_transactions_by_municipality(
  database = "202512",
  filter = "Estado eq 'MARANHÃO'",
  orderby = "Municipio desc",
  top = 10
)

# Filter by transaction nature
p2p <- get_pix_transaction_stats(
  database = "202509",
  filter = "NATUREZA eq 'P2P'"
)

# Multiple filters using 'and'
filtered <- get_pix_transaction_stats(
  database = "202509",
  filter = "NATUREZA eq 'P2P' and PAG_REGIAO eq 'NORDESTE'"
)

# Filter PIX keys by type
cpf_keys <- get_pix_keys(
  date = "2025-12-01",
  filter = "TipoChave eq 'CPF'",
  orderby = "qtdChaves desc",
  top = 100
)

OData Filter Syntax

OperatorDescriptionExample
eqEqual"Estado eq 'SÃO PAULO'"
neNot equal"NATUREZA ne 'P2P'"
gtGreater than"VALOR gt 1000"
geGreater or equal"QUANTIDADE ge 100"
ltLess than"VALOR lt 5000"
leLess or equal"QUANTIDADE le 50"
andLogical AND"NATUREZA eq 'P2P' and PAG_REGIAO eq 'SUDESTE'"
orLogical OR"Estado eq 'SP' or Estado eq 'RJ'"

Available Functions

Data Retrieval Functions

FunctionDescription
get_pix_keys()PIX keys stock by participant
get_pix_keys_summary()Top institutions by key count
get_pix_keys_by_type()Keys aggregated by type
get_pix_transaction_stats()Detailed transaction statistics
get_pix_summary()Aggregated summaries by grouping
get_pix_transaction_stats_multi()Stats for multiple months
get_pix_transactions_by_municipality()Transactions by municipality
get_pix_transactions_by_state()Aggregated by state
get_pix_transactions_by_region()Aggregated by region
get_pix_fraud_stats()Fraud statistics (MED)

Utility Functions

FunctionDescription
pix_endpoints()List available API endpoints
pix_columns()Column info for each endpoint
pix_timeout()Get or set request timeout
pix_url()Build API URL for debugging
pix_query()Custom OData queries

Examples

PIX Keys

library(pixr)
library(dplyr)

# Get keys stock for December 2025
keys <- get_pix_keys(date = "2025-12-01")

# Top 20 institutions
get_pix_keys_summary(date = "2025-12-01", n_top = 20)

# Aggregate by key type
keys |>
  group_by(TipoChave, NaturezaUsuario) |>
  summarise(total = sum(qtdChaves), .groups = "drop")

Transaction Statistics

# Get statistics for September 2025
stats <- get_pix_transaction_stats(database = "202509")

# Summary by transaction nature (P2P, P2B, etc.)
get_pix_summary(database = "202509", group_by = "NATUREZA")

# Multiple months
q3_data <- get_pix_transaction_stats_multi(
  databases = c("202507", "202508", "202509")
)

Transactions by Municipality

# Get all municipalities
muni <- get_pix_transactions_by_municipality(database = "202512")

# Filter by state
sp <- muni |> filter(Estado == "SÃO PAULO")

# Aggregate by state
get_pix_transactions_by_state(database = "202512")

# Aggregate by region
get_pix_transactions_by_region(database = "202512")

Debugging

# See the URL that would be called
pix_url("ChavesPix", params = list(Data = "2025-12-01"), top = 10)
pix_url("EstatisticasTransacoesPix", params = list(Database = "202509"))

References

License

MIT © pixr authors.

Metadata

Version

0.1.0

License

Unknown

Platforms (78)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    uefi
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-freebsd
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64-uefi
  • aarch64-windows
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-linux
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-uefi
  • x86_64-windows