Sistema de Pagamentos Brasileiro Modelo Operacional
Modelo operacional - requisições da IF/Clearing Legado STR Procedimentos de segurança Parser XML DTD Converte código Assinatura digital Msg assinada LOG Certificado digital da IF/C LOG Cifragem Certificado digital BC Msg assinada e cifrada
Modelo operacional - respostas do BACEN Legado STR Procedimentos de segurança DTD Parser XML Converte código Msg assinada LOG report LOG Confere assinatura Certificado digital BC report Decifra Certificado digital IF/C Msg assinada e cifrada
Topologia 8 x 2 Servidor A Provedor A Provedor B Servidor B
Sistema de Pagamentos Brasileiro Rede SPB
Infraestrutura Básica da Rede SPB IF 64K 2M 2M Clearing 256K-2M 2M Clearing 256K-2M 2M
Características da rede SPB Protocolo BGP Gerenciamento integrado e centralizado entre os provedores Integração com o sistema Tivoli do BC Endereços IP válidos para a internet Não estará ligada à internet Provedores com redundância de meios físicos e rede lógica em Brasília, Rio de Janeiro e São Paulo
Características da rede SPB Disponibilidade: 99,9% no backbone e na conexão com o BC 99,8% na última milha com as IF Comitê gestor: Banco Central Instituições financeiras Clearings
O Sistema de Pagamentos Brasileiro e a Troca de Mensagens 08/03/2001
Agenda GT-Mensagem Arquitetura do SPB Fluxo de Mensagens no SPB Evolução do Manual de Mensagens Nova versão do Manual de Mensagens / DTD
GT-Mensagem
GT-Mensagem - Composição ABBC ABBI ANDIMA ASBACE BACEN BM&F CBLC CETIP FEBRABAN
GT-Mensagem - Decisões Adoção do XML (Extensible MarkUp Language); Criação de protocolo próprio; As mensagens serão estruturadas em 3 (três) segmentos: BCMSG SISMSG USERMSG
GT-Mensagem - Modelo Padrão <SPBDOC> <BCMSG> . . . informações do Controle da Mensagem </BCMSG> <SISMSG> . . . informações do Sistema na Mensagem </SISMSG> <USERMSG> . . . área livre </USERMSG> </SPBDOC>
GT-Mensagem - Próximos Passos Divulgação Nova Versão do Manual em 09.03.2001 (DTD disponível); Inclusão Mensagens das Câmaras LDL; Nova Revisão e Divulgação Versão 1.0; Participação no futuro Comitê do SPB.
Arquitetura do SPB
Impacto do SPB Novo desenho da rede Comunicação através de mensagens LBTR x LDL Tratamento dos débitos não efetivados “Piloto” de reservas
(*) Em parceria com a ANDIMA Sistemas a serem criados / alterados no BACEN Sistemas a serem criados / alterados pelo Mercado CÂMARAS LDL (BM&F, CBLC, CETIP, PAGAMENTOS, etc.) COMPE SISTEMAS INTERNOS DAS IF’s STR SLB COMPULSÓRIO REDESCONTO COMPE SELIC (*) CONTABIL CÂMBIO CCR MECIR CNR PROAGRO LEILÃO POUPANÇA TESOURO Mensagens (*) Em parceria com a ANDIMA
STN SLB STR IF IF RDC CMP LDL SEL CIR RCO S1 S2 Sn Reservas Bancárias Mensagens IF RDC CMP LDL SEL CIR STN SLB STR Conta LDL COMPE MECIR Reservas Bancárias Pendências RCO
IF S T R Mensageria SEL RDC LDL RCO CMP CIR SLB STN Outros Pagamentos CETIP CBLC BM&F IF COMPE S T R LDL SEL CMP RDC CIR SLB Custodiante BB RCO STN
Premissas Básicas S T R I F Débito Comandado Reservas Bancárias Pendências 1) Apenas a Instituição Financeira comanda débitos na sua conta Reservas Bancárias. 2) Saldo em Reservas Bancárias não pode ser negativo. 3) A responsabilidade pela resposta a uma solicitação e/ou requisição é sempre do sistema que foi chamado.
Transferência de Reservas - Modelo Simplificado Pendências IF 1 Débito IF 2 Crédito Reservas Bancárias Serviço de Mensagens S T R
Fluxo de Mensagens - Alguns exemplos -
MECIR - Saque de Numerário Conta Transitória MECIR Reservas Bancárias Pendências Apartado/Efetivado / Pendente (dia D) STR Débito Principal + Tarifa (dia D) CIR0003R1(D) MECIR CIR0003 (D-2) IF CIR0003R1(D-2) Obs.: Se o saque for em Banco custodiante deve-se informar o CNPJ e a Agência do Custodiante.
MECIR - Depósito de Numerário Efetivado / Pendente (dia D) STR Reservas Bancárias Pendências Crédito Principal + Débito Tarifa (dia D) CIR0005R1(D) MECIR CIR0005 (D) IF Obs.: Se o depósito for em Banco custodiante deve-se informar o CNPJ e a Agência do Custodiante.
RDC - Redesconto Intradia IF RDC0002R1 SELIC Custódia Títulos STR Reservas Bancárias
SLB - Aviso de débito IF STR SLB SLB0002R1 SLB0002 SLB0001 S1 S2 Sn Pendências STR Reservas Bancárias Débito / Crédito Efetivado / Pendente SLB0001 S1 SLB S2 Sn
RCO - Informação de Demonstrativo Efetivado / Pendente STR Reservas Bancárias Pendências Débito / Crédito SLB0002 SLB Custos Multas SLB0001 RCO RCO0002 IF RCO0002R1
STN - Repasse de Arrecadação Efetivado / Pendente STR Reservas Bancárias Pendências Débito Tesouro STN STN0002 IF STN0002R1
STR - Transferências Interbancárias IF 1 Pendências Reservas Bancárias STR0004R1 STR0004R2 Debitada IF 2 Creditada
Sistemas LBTR Sistema LBTR STR IF1 IF2 Confirma Rejeita CRB a debitar Reservas Bancárias Confirma Rejeita CRB a debitar CRB a creditar Custódia Observações para sistemas que transacionam papéis: O papel tem que estar sob custódia do vendedor. Operações do Selic não entram em pendência no STR. IF1 Sistema LBTR Confirma Resposta IF2 Confirma
LDL - Transferência Resultado Líquido Câmara LDL Conta Câmara LDL Reservas Bancárias STR LDL0004R1 LDL0004R2 LDL LDL0004 IF Considerar a existência de: Horário início liquidação da Câmara LDL Horário término da liquidação da Câmara LDL
CMP - Transf. para Depósito na COMPE CMP0002R1 Conta COMPE Reservas Bancárias STR BB CMP0001 CMP IF CMP0002
Exemplo de uma Mensagem <SPBDOC> <BCMSG> . . . informações do Controle da Mensagem </BCMSG> <SISMSG> <SLBAvisLancDevidoIF> <CodMsg> <CNPJIF> <CNPJConv> <NumCtrlSLB> <SistOrigem> <DtVenc> <Historico> <VlrLanc> <DtMovto> </SLBAvisLancDevidoIF> </SISMSG> <USERMSG> . . . área livre </USERMSG> </SPBDOC>
Evolução do Manual de Mensagens Versão Preliminar - 30.11.2000; Versão Preliminar - 31.12.2000; Versão Preliminar - 31.01.2001; Versão Preliminar com DTD - 09.03.2001; Nova Versão Revisada em 30.03.2001; Manual de Mensagens único para o SFN; Subgrupo do Comitê Gestor de Tecnologia do SPB.
Nova Versão do Manual de Mensagens & DTD
DTD? Definindo que Tipo de Documento é esse... Como o computador vai reconhecer quais campos devem constar numa mensagem?
Um Documento XML <SPBDOC> <BCMSG> . . . informações do Controle da Mensagem </BCMSG> <SISMSG> <STRReqTransfReserva> <CodMsg> <NumCtrlIF> <CNPJIFDeb> <CNPJIFCred> <Finldd> <VlrLanc> <Historico> <NivelPref> <DtMovto> </STRReqTransfReserva> </SISMSG> <USERMSG> . . . área livre </USERMSG> </SPBDOC>
Estrutura do DTD - Comentários Comentários estão envolvidos pelas marcas “<--” e “-->” Exemplo: <-- Evento: STR0004 - If requisita Transferencia de Reservas --> <-- Mensagem: Requisicao de Transferencia de Reservas --> <-- Codigo Msg: STR0004 Emissor: IF Destinatario: STR -->
Estrutura do DTD - Mensagens As mensagens são definidas como elementos dentro de uma estrutura. Exemplo: Definição da mensagem “Requisição de Transferencia de Reservas” <-- Evento: STR0004 - If requisita Transferencia de Reservas --> <-- Mensagem: Requisicao de Transferencia de Reservas --> <-- Codigo Msg: STR0004 Emissor: IF Destinatario: STR --> <!ELEMENT STRReqTransfReserva (CodMsg, NumCtrlIF, CNPJIFDeb, CNPJIFCred, Finldd, VlrLanc, Historico, NivelPref?, DtMovto) > Observação: NivelPref? significa que Nivel Preferência é um campo opcional.
Estrutura do DTD - SISMSG Por sua vez, STRReqTransfReserva é um elemento do SISMSG <!ELEMENT SISMSG (STRReqTransfContaCliContaIf | STRReqTransfContaCliContaIfRespReq | STRReqTransfContaCliContaIfRespTerc | STRReqTransfContaDifTitularidade | STRReqTransfContaDifTitularidadeRespReq | STRReqTransfContaDifTitularidadeRespTerc | STRReqTransfReserva | STRReqTransfReservaRespReq | STRReqTransfReservaRespTerc) > Observação: “|” significa “ou” Este é apenas um trecho da definição do SISMSG
Estrutura do DTD - Notação Já apresentamos uma parte da sintaxe utilizada, mas ainda é necessário acrescentar outros símbolos para os casos de estruturas de repetição. “*” - pode repetir de 0 a n vezes “+” - pode repetir de 1 a n vezes Com isso já temos condições de entender plenamente o DTD...
Estrutura do DTD - Repetição Correndo o risco de estar repetindo um assunto que já é de pleno domínio de todos... No STR0002 - STR avisa alteração horários, temos um grupo de repetição que na versão anterior do manual de mensagens estava: <Repeticao> <CodGrade> <HrioAb> <HrioFch> </Repeticao>
Estrutura do DTD - Repetição Agora ficou assim: <STR0002_Repet1> <STR0002_Grupo1> <CodGrade> <HrioAb> <HrioFch> </STR0002_Grupo1> </STR0002_Repet1> <STR0002_Repet1> <STR0002_Grupo1> <CodGrade> <HrioAb> <HrioFch> </STR0002_Grupo1> </STR0002_Repet1>
Estrutura do DTD - Repetição Definição da mensagem “STR avisa Alteração Horários do STR” <-- Evento: STR0002 - STR avisa Alteracao Horarios do STR --> <-- Mensagem: Aviso de Alteracao de Horarios do STR --> <-- Codigo Msg: STR0002 Emissor: STR Destinatario: Todas IFs --> <!ELEMENT STRAvisAltHorarioSTR (CodMsg, STR0002_Repet1, DtHSTR, TipoHrio, DtMovto) > <!ELEMENT STR0002_Repet1 (STR0002_Grupo1+) > <!ELEMENT STR0002_Grupo1 (CodGrade, HrioAb, HrioFch) >
Estrutura do DTD - Campos Definição dos campos que podem ser utilizados nas mensagens: <!ELEMENT CodMsg (#PCDATA) > <!ELEMENT DtHSTR (#PCDATA) > <!ELEMENT TipoHrio (#PCDATA) > <!ELEMENT DtMovto (#PCDATA) > .
FIM Banco Central do Brasil Departamento de Informática