Learn R Programming

pixr

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

Copy Link

Version

Install

install.packages('pixr')

Version

0.1.0

License

MIT + file LICENSE

Issues

Pull Requests

Stars

Forks

Maintainer

Andre Leite

Last Published

January 31st, 2026

Functions in pixr (0.1.0)

utils

Utility Functions for pixr
year_month_to_date

Convert Year-Month String to Date
get_pix_transactions_by_region

Get PIX Transactions by Region
get_pix_transactions_by_municipality

Get PIX Transactions by Municipality
get_pix_transaction_stats_multi

Get PIX Transaction Statistics for Multiple Months
get_pix_transaction_stats

Get PIX Transaction Statistics
get_pix_keys_summary

Get PIX Keys Summary by Institution
get_pix_summary

Get PIX Transaction Summary
get_pix_keys

Get PIX Keys Stock by Participant
get_pix_keys_by_type

Get PIX Keys by Key Type
format_brl

Format Currency Value
client

BCB PIX API Client Utilities
pix_endpoints

Get Available PIX API Endpoints
pix_ping

Check API Connection
pix_query

Get Raw Data from PIX API
get_pix_transactions_by_state

Get PIX Transactions by State
pix_columns

Get Column Information for a PIX Endpoint
get_pix_fraud_stats

Get PIX Fraud Statistics (MED)
get_pix_fraud_stats_multi

Get PIX Fraud Statistics for Multiple Months
pix_url

Build PIX API URL (for debugging)
pixr-package

pixr: Access Brazilian Central Bank PIX Open Data API
pix_timeout

Get or Set API Request Timeout