Skip to content

BACEN Message Types

FluxiQ SPB supports all 979 message types defined by the Brazilian Central Bank (BACEN) for communication over the RSFN (Rede do Sistema Financeiro Nacional). Messages follow the ISO 20022 standard adapted for the Brazilian financial system.

Message Type Naming Convention

BACEN messages follow the pattern {SYSTEM}{NNNN} where:

  • {SYSTEM} is a three-letter code identifying the settlement system
  • {NNNN} is a four-digit sequential number

Each message has a corresponding response type prefixed with R1, R2, or R3:

ResponseMeaning
R1Protocol acknowledgement (message received)
R2Business validation result (accepted or rejected with reason)
R3Settlement confirmation or final status

Settlement Systems

STR - Sistema de Transferencia de Reservas

The STR is BACEN's Real-Time Gross Settlement (RTGS) system. It processes high-value, time-critical transfers between financial institutions in real time.

Operating hours: 06:30 to 17:30 BRT (Brasilia Time)

MessageDescription
STR0001Reserve transfer request
STR0002Reserve transfer confirmation
STR0003Balance inquiry
STR0004Balance response
STR0005Statement request
STR0006Statement response
STR0007Transfer cancellation request
STR0008Transfer cancellation response
STR0009Scheduled transfer
STR0010Position inquiry
xml
<!-- Example: STR0001 Reserve Transfer Request -->
<DOC xmlns="http://www.bcb.gov.br/str">
  <BCMSG>
    <IdentdEmissor>12345678</IdentdEmissor>
    <IdentdDesworko>99999999</IdentdDesworko>
    <NUOp>2026010100001</NUOp>
    <DtHrMsg>2026-01-15T10:30:00-03:00</DtHrMsg>
  </BCMSG>
  <SISMSG>
    <STR0001>
      <CodMsg>STR0001</CodMsg>
      <NumCtrlIF>IF20260115001</NumCtrlIF>
      <ISPBIF>12345678</ISPBIF>
      <ISPBFav>87654321</ISPBFav>
      <Valor>150000.00</Valor>
      <DtMovto>2026-01-15</DtMovto>
      <FinlddTrsf>1</FinlddTrsf>
    </STR0001>
  </SISMSG>
</DOC>

LPI - Liquidacao por Prioridade Intradiaria

The LPI system handles intraday priority-based settlement, allowing institutions to manage liquidity by assigning priorities to pending transfers.

MessageDescription
LPI0001Priority transfer request
LPI0002Priority assignment
LPI0003Priority modification
LPI0004Queue position inquiry
LPI0005Queue position response

TED - Transferencia Eletronica Disponivel

TED handles same-day electronic funds transfers between different financial institutions. Transfers via TED are settled in real time through the STR.

MessageDescription
TED0001TED transfer request
TED0002TED transfer confirmation
TED0003TED transfer rejection
TED0004TED return request
TED0005TED return confirmation
TED0006TED cancellation request

DOC - Documento de Credito

DOC is used for credit transfers that are settled on the next business day (D+1). While less common since the introduction of Pix, it remains supported for legacy operations.

MessageDescription
DOC0001DOC transfer request
DOC0002DOC transfer confirmation
DOC0003DOC batch submission
DOC0004DOC batch response

SEL - Sistema Especial de Liquidacao e Custodia

SEL handles the settlement and custody of federal government securities (titulos publicos federais).

MessageDescription
SEL0001Securities transfer request
SEL0002Securities transfer confirmation
SEL0003Custody position inquiry
SEL0004Custody position response
SEL0005Securities pledge
SEL0006Securities release
SEL0007Settlement instruction
SEL0008Settlement confirmation

CTP - Cetip (Central de Custodia e Liquidacao)

CTP manages registration, custody, and settlement of private fixed-income securities, derivatives, and other financial instruments.

MessageDescription
CTP0001Instrument registration
CTP0002Registration confirmation
CTP0003Trade settlement request
CTP0004Trade settlement confirmation
CTP0005Position inquiry
CTP0006Position response

LDL - Liquidacao Diferida Liquida

LDL handles deferred net settlement, where transactions are accumulated throughout the day and settled in net positions at designated settlement windows.

Settlement windows: 11:00, 14:00, and 17:00 BRT

MessageDescription
LDL0001Batch submission
LDL0002Batch acknowledgement
LDL0003Net position calculation request
LDL0004Net position result
LDL0005Settlement window status
LDL0006Settlement confirmation
LDL0007Bilateral net position

CAM - Cambio (Foreign Exchange)

CAM handles foreign exchange operations registered with BACEN, including trade-related FX, financial FX, and interbank FX transactions.

MessageDescription
CAM0001FX contract registration
CAM0002FX contract confirmation
CAM0003FX settlement request
CAM0004FX settlement confirmation
CAM0005PTAX rate inquiry
CAM0006PTAX rate response
CAM0007FX position report

CIR - Meio Circulante (Cash Operations)

CIR manages physical cash operations between financial institutions and the Central Bank, including cash ordering, deposits, and distribution logistics.

MessageDescription
CIR0001Cash order request
CIR0002Cash order confirmation
CIR0003Cash deposit notification
CIR0004Cash deposit confirmation
CIR0005Cash balance inquiry
CIR0006Cash balance response
CIR0007Cash transport schedule

Message Processing in FluxiQ

Inbound Messages (BACEN to Institution)

  1. BACEN Gateway receives the XML message from IBM MQ
  2. Message is validated against the official XSD schema
  3. Digital signature is verified using BACEN's public certificate
  4. Message Processor routes to the appropriate domain service
  5. Domain service processes the business logic
  6. R1 acknowledgement is sent back via BACEN Gateway
elixir
defmodule BacenGateway.MessageRouter do
  @doc "Routes inbound BACEN messages to domain services"

  def route(%{system: "STR"} = msg), do: TransactionService.handle(msg)
  def route(%{system: "LPI"} = msg), do: TransactionService.handle(msg)
  def route(%{system: "TED"} = msg), do: TransactionService.handle(msg)
  def route(%{system: "DOC"} = msg), do: TransactionService.handle(msg)
  def route(%{system: "SEL"} = msg), do: SecuritiesService.handle(msg)
  def route(%{system: "CTP"} = msg), do: SecuritiesService.handle(msg)
  def route(%{system: "LDL"} = msg), do: SettlementService.handle(msg)
  def route(%{system: "CAM"} = msg), do: ForexService.handle(msg)
  def route(%{system: "CIR"} = msg), do: CashService.handle(msg)
end

Outbound Messages (Institution to BACEN)

  1. Domain service creates a structured message map
  2. BACEN Gateway builds the XML from the official XSD template
  3. Message is digitally signed with the institution's HSM key
  4. XML is placed on the outbound IBM MQ queue
  5. BACEN Gateway awaits R1, R2, and R3 responses
  6. Status is updated in the originating domain service

Schema Validation

All messages are validated against BACEN's official XSD schemas before sending or after receiving. FluxiQ maintains an up-to-date copy of all schemas:

priv/xsd/
  ├── str/
  │   ├── STR0001.xsd
  │   ├── STR0002.xsd
  │   └── ...
  ├── ted/
  ├── doc/
  ├── sel/
  ├── ctp/
  ├── ldl/
  ├── cam/
  └── cir/

Schemas are versioned and updated when BACEN publishes new catalog releases.

Plataforma de Integracao BACEN/SPB