BCBFinancialService

De Wiki do Leitão
Revisão de 13h00min de 29 de abril de 2025 por Rodrigogml (discussão | contribs) (Criou página com '= BCBFinancialService = A classe <code>BCBFinancialService</code> é responsável por realizar a consulta de índices financeiros diretamente na API pública do Banco Central do Brasil (BCB). == Objetivo == Facilitar o acesso a séries históricas financeiras como: - Taxa SELIC (diária e mensal) - Cotação do Dólar (compra e venda) - Índice IPCA - Rentabilidade da Poupança (regra pós-2012) Sem a necessidade de configuração adicional de bibliotecas externas. T...')
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para: navegação, pesquisa

BCBFinancialService

A classe BCBFinancialService é responsável por realizar a consulta de índices financeiros diretamente na API pública do Banco Central do Brasil (BCB).

Objetivo

Facilitar o acesso a séries históricas financeiras como: - Taxa SELIC (diária e mensal) - Cotação do Dólar (compra e venda) - Índice IPCA - Rentabilidade da Poupança (regra pós-2012)

Sem a necessidade de configuração adicional de bibliotecas externas. Toda comunicação é feita via HTTP(S) e interpretada via JSON nativo.

Principais Funcionalidades

A classe é utilitária (não deve ser instanciada) e expõe métodos estáticos para consulta de diferentes séries financeiras.

Métodos Públicos Disponíveis

  • getSelicDailySeries(String startDate, String endDate)

Retorna a série da Taxa SELIC diária no período informado.

  • getSelicMonthlySeries(String startDate, String endDate)

Retorna a série da Taxa SELIC mensal (taxa acumulada no mês).

  • getDollarBuySeries(String startDate, String endDate)

Retorna a série da cotação de compra do Dólar.

  • getDollarSellSeries(String startDate, String endDate)

Retorna a série da cotação de venda do Dólar.

  • getIPCASeries(String startDate, String endDate)

Retorna a série histórica do índice IPCA.

  • getPoupanca2012Series(String startDate, String endDate)

Retorna a série histórica da rentabilidade da poupança segundo regra pós-2012.

Todos os métodos recebem: - startDate: Data inicial no formato dd/MM/yyyy - endDate: Data final no formato dd/MM/yyyy

E retornam uma List<FinancialIndexEntry> contendo data e valor.

Exemplos de Uso

Consultar a taxa SELIC diária dos últimos 30 dias

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.List;
import br.eng.rodrigogml.rfw.finance.fetcher.BCBFinancialService;
import br.eng.rodrigogml.rfw.finance.fetcher.FinancialIndexEntry;
import br.eng.rodrigogml.rfw.kernel.exceptions.RFWException;

public class ExemploSelic {

    public static void main(String[] args) {
        try {
            LocalDate hoje = LocalDate.now();
            LocalDate inicio = hoje.minusMonths(1);

            String dataInicio = inicio.format(DateTimeFormatter.ofPattern("dd/MM/yyyy"));
            String dataFim = hoje.format(DateTimeFormatter.ofPattern("dd/MM/yyyy"));

            List<FinancialIndexEntry> selicDiaria = BCBFinancialService.getSelicDailySeries(dataInicio, dataFim);

            for (FinancialIndexEntry entry : selicDiaria) {
                System.out.println(entry.getDate() + ": " + entry.getValue());
            }
        } catch (RFWException e) {
            e.printStackTrace();
        }
    }
}

Consultar a cotação de compra do Dólar

import br.eng.rodrigogml.rfw.finance.fetcher.BCBFinancialService;
import br.eng.rodrigogml.rfw.finance.fetcher.FinancialIndexEntry;
import java.util.List;

public class ExemploDolarCompra {

    public static void main(String[] args) {
        try {
            List<FinancialIndexEntry> dolarCompra = BCBFinancialService.getDollarBuySeries("01/04/2025", "29/04/2025");

            for (FinancialIndexEntry entry : dolarCompra) {
                System.out.println(entry.getDate() + ": " + entry.getValue());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Observações Importantes

- É importante validar limites de requisições impostos pela API pública do BCB.