Sistema de Pagamentos Brasileiro Modelo operacional - requisições da IF/Clearing Legado Procedimentos de segurança STR 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 Procedimentos de segurança STR Parser XML DTD Converte código Msg assinada LOG LOG report Confere assinatura Certificado digital BC Decifra report Certificado digital IF/C Msg assinada e cifrada Topologia 8 x 2 Servidor A Provedor A Provedor B Servidor B Sistema de Pagamentos Brasileiro Infraestrutura Básica da Rede SPB 2M 64K Provedor 1 rede IP multiserviços 64K IF 2M 256K-2M 2M Provedor 2 rede IP multiserviços 2M 256K-2M Clearing 256K-2M Clearing 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 ea 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 Sistemas a serem criados / alterados no BACEN STR SLB COMPULSÓRIO REDESCONTO COMPE SELIC (*) CONTABIL CÂMBIO CCR MECIR CNR PROAGRO LEILÃO POUPANÇA TESOURO Sistemas a serem criados / alterados pelo Mercado CÂMARAS LDL (BM&F, CBLC, CETIP, PAGAMENTOS, etc.) COMPE SISTEMAS INTERNOS DAS IF’s Mensagens (*) Em parceria com a ANDIMA IF Mensagens RDC Mensagens CMP LDL SEL CIR S1 STN Mensagens Mensagens S2 SLB STR IF Sn Mensagens Conta LDL COMPE MECIR Reservas Bancárias Pendências RCO CBLC BM&F IF CETIP SEL Pagamentos Outros RDC LDL RCO STR CMP CIR SLB COMP E STN Custodiante BB Premissas Básicas IF 1) Apenas a Instituição Financeira comanda débitos na sua conta Reservas Bancárias. Débito Comandado STR 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. Reservas Bancárias Pendências Transferência de Reservas - Modelo Simplificado IF 1 IF 2 Débito Crédito Serviço de Mensagens STR Reservas Bancárias Pendências Fluxo de Mensagens - Alguns exemplos - MECIR - Saque de Numerário Débito Principal + Tarifa (dia D) CIR0003 (D-2) IF CIR0003R1(D-2) MECIR Pendente (dia D) CIR0003R1(D) <CIRReqSaqueNumerario> <CodMsg> <NumCtrlIF> <CNPJIF> <AgIF> <CodDpnciaBC> <CNPJCstdte> <TipoVlr> <Catg> <Esp> <DtSaque> <CIR0003_Repet1> <CIR0003_Grupo1> <VlrDen> <QtdDen> </CIR0003_Grupo1> </CIR0003_Repet1> <DtMovto> <AgCstdte> <VlrTarifa> <VlrLanc> <VlrSaque> </CIRReqSaqueNumerario> STR Apartado/Efetivado / Código Mensagem Número Controle IF <CIRReqSaqueNumerarioRespReq> CNPJ IF <CodMsg> Agência IF <NumCtrlIF> Código Dependência BACEN <CNPJIF> CNPJ Custodiante <NumCtrlCIR> Tipo Valor <NumCtrlSTR> Categoria <SitLancCIR> Espécie <DtHSit> Data Saque <DtMovto> CIR0003 Repetição 1 <TipoVlr> CIR0003 <Catg> Grupo 1 Valor Denominação <Esp> Conta Quantidade Denominação <CIR0003R1_Repet1> Fim CIR0003 GrupoTransitória 1 <CIR0003R1_Grupo1> Fim CIR0003 Repetição 1 <VlrDen> MECIR Data Movimento <QtdDen> Agência Custodiante </CIR0003R1_Grupo1> Valor Tarifa </CIR0003R1_Repet1> Valor Lançamento <VlrLanc> Valor Saque </CIRReqSaqueNumerarioRespReq> Obs.: Se o saque for em Banco custodiante deve-se informar o CNPJ e a Agência do Custodiante. X X X X X X X X X X X X X X X X X Código Mensagem Número Controle IF CNPJ IF Número Controle Mecir Número Controle STR Situação Lançamento Mecir Data Hora Situação Data Movimento Tipo Valor Categoria Espécie Reservas CIR0003R1 Repetição 1 Pendências CIR0003R1 Grupo 1 Bancárias Valor Denominação Quantidade Denominação Fim CIR0003R1 Grupo 1 Fim CIR0003R1 Repetição 1 Valor Lançamento X X X X X X X MECIR - Depósito de Numerário Crédito Principal + Débito Tarifa (dia D) CIR0005 (D) IF CIR0005R1(D) MECIR Efetivado / <CIRReqDepositoNumerario> Pendente (dia D) <CodMsg> <NumCtrlIF> <CNPJIF> <AgIF> <CodDpnciaBC> <CNPJCstdte> <AgCstdte> <CIRReqDepositoNumerarioRespReq> <TipoVlr> <CodMsg> <Catg> <NumCtrlIF> <Esp> <CNPJIF> <DtDep> <NumCtrlCIR> <CIR0005_Repet1> <NumCtrlSTRDep> <CIR0005_Grupo1> <SitLancCIR><VlrDen> <DtHSit> <QtdDen> <DtMovto></CIR0005_Grupo1> <NumCtrlSTRTarifa> </CIR0005_Repet1> <VlrDep> <DtMovto> <VlrTarifa> <VlrTarifa> </CIRReqDepositoNumerarioRespReq> <VlrDep> </CIRReqDepositoNumerario> Obs.: Se o depósito for em Banco custodiante deve-se informar o CNPJ e a Agência do Custodiante. STR Código Mensagem Número Controle IF CNPJ IF Agência IF Código Dependência BACEN CNPJ Custodiante Agência Custodiante Tipo Valor Código Categoria Mensagem X NúmeroEspécie Controle IF X CNPJ IFData Depósito X NúmeroCIR0005 ControleRepetição Mecir X 1 NúmeroCIR0005 ControleGrupo STR Depósito 1 Situação Lançamento Mecir X Valor Denominação Reservas Data Hora Situação Denominação Quantidade PendênciasX Bancárias Data Movimento X Fim CIR0005 Grupo 1 NúmeroFim Controle STR Tarifa CIR0005 Repetição 1 Valor Depósito Data Movimento Valor Tarifa Valor Tarifa Valor Depósito X X X X X X X X X X X X X X X X RDC - Redesconto Intradia IF RDC0002 RDC0002R1 Redesconto <RDCReqRedescontoIntradia> <RDCReqRedescontoIntradiaRespReq> <CodMsg> <CodMsg> <NumCtrlIF> <NumCtrlIF> <CNPJIF> <CNPJIF> <NumCtrlRDC> <IdTit> <NumOpSelRet> <NumOpSel> <NumCtrlSTR> <PU> <SitLanc> <QtdTits> <DtHSit> <VlrFinanc> <DtMovto> <DtMovto> </RDCReqRedescontoIntradiaRespReq> </RDCReqRedescontoIntradia> SELIC Custódia Títulos Código Mensagem Código Mensagem Número IF Número Controle Controle IF CNPJ IF CNPJ IF Número Controle Identificador TítuloRDC Número Operação Operação Selic Número Selic Retorno Número Controle STR Preço Unitário Situação Lançamento Quantidade Títulos Data Hora Situação Valor Financeiro Data Movimento Data Movimento STR Reservas Bancárias X X XX XX XX XX X X X X XX X SLB - Aviso de débito IF S1 Efetivado / Pendente S2 Sn SLB Débito / Crédito STR <SLBAvisLancDevidoIF> <CodMsg> <SLBReqPagtoLancBACENRespReq> <CNPJIF> <CodMsg> <CNPJConv> <SLBReqPagtoLancBACEN> <NumCtrlIF> <NumCtrlSLB> <CodMsg> <CNPJIF> <SistOrigem> <NumCtrlIF> <DtVenc> <NumCtrlSLB> <CNPJIF> <Historico> <NumCtrlSLB> <NumCtrlSTR> <VlrLanc> Reservas <NivelPref> <SitLanc> <DtMovto> <DtMovto> <DtHSit> Bancárias </SLBAvisLancDevidoIF> </SLBReqPagtoLancBACEN> <DtMovto> </SLBReqPagtoLancBACENRespReq> Código Mensagem CNPJ IF Código Mensagem CNPJ Conveniado Número Controle Número Controle SLBIF Código Mensagem CNPJ IF Sistema Origem Número Controle IF Data Vencimento Número CNPJ IF Controle SLB Histórico Número Controle SLB Número Controle STR Valor Lançamento Nível Preferência Situação Lançamento Pendências Data Movimento Data Movimento Data Hora Situação Data Movimento X X X X XX X XX X XX XX X X X XX X RCO - Informação de Demonstrativo SLB0002 Débito / Custos RCO0002 IF RCO0002R1 RCO Multas <RCOInfDemonstrativo> <RCOInfDemonstrativoRespInf> <CodMsg> <CodMsg> <NumCtrlIF> <NumCtrlIF> <CNPJIF> <CNPJIF> SLB0001 <CodRCO> <IndMulta> <DtRefDmstr> <DtMovto> <DtIni> </RCOInfDemonstrativoRespInf> <DtFim> <IndIncl_Alt> <RCO0002_Repet1> <RCO0002_Grupo1> <CodItemBaseIncid> <VlrItemDmstr> </RCO0002_Grupo1> </RCO0002_Repet1> <DtMovto> </RCOInfDemonstrativo> Crédito SLB Efetivado / STR Pendente Código Mensagem X X Código Mensagem Número Controle IF X Número Controle IF X CNPJ IF X CNPJ IF Código RCO X X Indicador Multa Data Referência Demonstrativo X Data Movimento Data Início X X Data Fim X Indicador Inclusão/Alteração X RCO0002 Repetição 1 X RCO0002 Grupo 1 X Reservas Código Item Base Incidência X Pendências ValorBancárias Item Demonstrativo X Fim RCO0002 Grupo 1 X Fim RCO0002 Repetição 1 X Data Movimento X STN - Repasse de Arrecadação STN0002 Débito IF STN0002R1 STN Efetivado / STR Pendente <STNReqTransfRepArrecadacao> <CodMsg> <CNPJIF> <STNReqTransfRepArrecadacaoRespReq> <NumCtrlIF> <CodMsg> <DtArrec> <CNPJIF> <DtRecolh> Tesouro <NumCtrlIF> <DtRep> <NumCtrlSTR> <VlrRep> <NumCtrlSTN> <VlrRem> <SitLanc> <DtMovto> <DtHSit> <NivelPref> <DtMovto> <Historico> </STNReqTransfRepArrecadacaoRespReq> </STNReqTransfRepArrecadacao> Código Mensagem CNPJ IF Número Controle IF Código Mensagem Data Arrecadação CNPJ IF Reservas Data Recolhimento Número Controle IFPendências Data Repasse Bancárias Número Controle STR Valor Repasse Número Controle STN Valor Remuneração Situação Lançamento Data Movimento Data Preferência Hora Situação Nível Data Movimento Histórico X X X XX XX XX XX X XX X XX STR - Transferências Interbancárias STR0004 IF 1 Debitada IF 2 Creditada STR0004R1 <STRReqTransfReservaRespReq> <CodMsg> <NumCtrlIF> <CNPJIFDeb> <STRReqTransfReserva> <NumCtrlSTR> <CodMsg> <SitLanc> <NumCtrlIF> <DtHSit> <CNPJIFDeb> <DtMovto> <CNPJIFCred> </STRReqTransfReservaRespReq> <Finldd> <VlrLanc> <Historico> <STRReqTransfReservaRespTerc> <CodMsg> <NivelPref> <NumCtrlSTR> <DtMovto> <DtHSTR> </STRReqTransfReserva> <CNPJIFDeb> <CNPJIFCred> <VlrLanc> <Finldd> <Historico> <DtMovto> </STRReqTransfReservaRespTerc> STR Código Mensagem Número Controle IF CNPJ IF Debitada Número Controle STR Código Mensagem Situação Lançamento Número Controle IF Data Situação CNPJHora IF Debitada Data CNPJMovimento IF Creditada X X X X X X X X X X X Finalidade Valor Lançamento Histórico Código Mensagem Nível Preferência Número Controle STR Data Movimento X X X Data Hora STR CNPJ IF Debitada Reservas CNPJ IF Creditada Bancárias Valor Lançamento Finalidade Histórico Data Movimento Pendências X X X X X X X X X X Sistemas LBTR IF1 CRB a debitar Confirma CRB a creditar Resposta IF2 Confirma Sistema LBTR Confirma Rejeita <SELReqOperacaoDefinitiva> <CodMsg> <NumOpSel> <DtOp> <CtCed> <CtCes> <SELReqOperacaoDefinitivaRespReq> <TipoDebCred> <CodMsg> <IFLqdantCed> <NumOpSel> Observações para sistemas que<IFLqdantCes> <IdTit> <SitLanc> transacionam papéis: <DtVencTit> <SitOpSEL> • O papel tem que estar sob<PU> <NumCtrlSTR> <Qtd> Custódia custódia do vendedor. <DtHSTR> <VlrFinanc> <DtHBC> • Operações do Selic não<NivelPref> <ChVSel> entram em pendência no <DtMovto> <DtMovto> <CNPJIF> STR. <CNPJIF> <NumCtrlIF> <NumCtrlIF> </SELReqOperacaoDefinitivaRespReq> /SELReqOperacaoDefinitiva> Resposta STR Código Mensagem Número Operação Selic Data Operação Conta Cedente Conta Cessionária Tipo Débito/Crédito Código Mensagem IF Liquidante Cedente IF Liquidante Cessionário Número Operação Selic Identificador TítuloLançamento Situação Data Vencimento SituaçãoTítulo Operação Selic Preço Unitário Número Controle STR QuantidadeReservas Data Hora STR Valor Financeiro Bancárias Data Hora Bacen Nível Preferência Chave Vinculação Selic Data Movimento Data Movimento CNPJ IF CNPJ IFNúmero Controle IF Número Controle IF LDL - Transferência Resultado Líquido Câmara <LDLReqTransfResultadoLiquidoNegociacaoRespTerc> LDL IF <CodMsg> Código Mensagem <NumCtrlLDLOr> Número Controle LDL Original <NumCtrlSTR> Número Controle STR <DtHSTR> Data Hora STR <CNPJIF> CNPJ IF <CNPJLDL> CNPJ LDL <IdMerc> Identificador Mercado <VlrLanc> Valor Lançamento <LDL0004R2_Repet1> LDL0004R2 Repetição 1 LDL0004 <LDLReqTransfResultadoLiquidoNegociacao> <LDL0004R2_Grupo1> LDL0004R2 Grupo 1 <CodMsg> Código <CNPJSubLiqdd> CNPJ SubMensagem Liquidado <NumCtrlIF> Número Controle IF LDL0004R1 <VlrCredSubLiqdd> Valor Crédito Sub Liquidado <NumCtrlLDLOr> Número Controle LDL Original <VlrDebSubLiqdd> Valor Débito Sub Liquidado <CNPJIF> CNPJ IF </LDL0004R2_Grupo1> Fim LDL0004R2 Grupo 1 </LDL0004R2_Repet1> Fim LDL0004R2 Repetição 1 <CNPJLDL> CNPJ LDL <DtMovto> Data Movimento <IdMerc> Identificador Mercado </LDLReqTransfResultadoLiquidoNegociacaoRespTerc> <VlrLanc> Valor Lançamento LDL <LDL0004_Repet1> <LDL0004_Grupo1> <LDLReqTransfResultadoLiquidoNegociacaoRespReq> <CNPJSubLiqdd> Considerar a existência de: <CodMsg> Código Mensagem <VlrCredSubLiqdd> <NumCtrlIF> Número Controle IF Horário início liquidação da Câmara<VlrDebSubLiqdd> LDL <CNPJIF> CNPJ IF </LDL0004_Grupo1> <NumCtrlSTR> Número Controle STR Horário término da liquidação</LDL0004_Repet1> da Câmara LDL <SitLanc> Situação Lançamento <NivelPref> <DtHSit> Data Hora Situação <DtMovto>Data Movimento <DtMovto> </LDLReqTransfResultadoLiquidoNegociacao> </LDLReqTransfResultadoLiquidoNegociacaoRespReq> STR LDL0004 Repetição 1 LDL0004 Grupo 1 CNPJ Sub Liquidado XValor Crédito Sub Liquidado XConta Valor Débito Sub Liquidado Reservas X Câmara Fim LDL0004 Grupo 1 Bancárias X LDL Fim LDL0004 Repetição 1 X XNível Preferência XData Movimento X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X CMP - Transf. para Depósito na COMPE COMPE BB CMP0001 IF CMP0002 CMP0002R1 CMP <CMPReqTransfDepositoOperacionalCOMPERespReq> <CMPInfValorParaOperarCOMPE> <CMPReqTransfDepositoOperacionalCOMPE> <CodMsg> Código Mensagem <CodMsg> Código Mensagem <CodMsg> Código Mensagem <NumCtrlIF> Número Controle IF <CNPJIF> CNPJ <NumCtrlIF> Número Controle IF <CNPJIF> CNPJIF IF <NumCtrlCMP> Número Controle <CNPJIF> CNPJ IF ControleCMP <NumCtrlCMP> Número CMP <VlrFinanc> Valor Financeiro <NumCtrlCMPOr> Número Controle CMPSTR Original <NumCtrlSTR> Número Controle <DtHBC> Data Hora Bacen <VlrLanc> Valor Lançamento <SitLanc> Situação Lançamento <DtMovto> Data Movimento <DtHSit> Data Hora Situação <NivelPref> Nível Preferência </CMPInfValorParaOperarCOMPE> <DtMovto> Data Movimento <DtMovto> Data Movimento </CMPReqTransfDepositoOperacionalCOMPERespReq> </CMPReqTransfDepositoOperacionalCOMPE> STR X X X X X X X X X X X X X X X X X X X X Conta COMPE Reservas Bancárias 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_Grupo1> <CodGrade> <HrioAb> <HrioFch> </STR0002_Grupo1> <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 <!ELEMENT <!ELEMENT <!ELEMENT . . . CodMsg DtHSTR TipoHrio DtMovto (#PCDATA) (#PCDATA) (#PCDATA) (#PCDATA) > > > > FIM Banco Central do Brasil Departamento de Informática