什么是ISO20022?

ISO 20022 是国际标准化组织 (ISO) 提议用于开发所有金融消息的平台 , 金融消息标准化使得各行各业的运作变得更加有效和高效,它们为产品和服务提供了规范,以确保产品和服务安全、可靠、具有良好的质量。

ISO 20022 标准包含多个部分,由负责银行、证券和其他金融服务领域的标准化的 ISO 技术委员会 (ISO/TC 68) 开发和维护。ISO 20022 没有描述消息本身;它描述了一个使用以下工具开发标准化消息的通用平台:

  • 一种建模方法(基于 UML),用于采用某种与语法无关的方式跨金融业务领域捕获业务交易和关联的消息流。
  • 一个业务术语中央字典,常用在金融机构之间的通信中。
  • 一组 XML 设计规则,用于将使用 UML 描述的消息转换为 XML 模式。应注意到,XML 不是规定的消息语法,但它常常是首选语法,也是本文中使用的语法。

View more info in ISO 20022 ORG !

WHY ISO 20022?

在这里插入图片描述

ISO 支付消息

在 ISO 上下文中,该标准描述了赖以表达信息的协议,而语法是用于表达信息的格式或 语言 。消息定义提供了对可在各方之间交换的信息和数据格式(字段长度、代码和字符集)的明确分类,在逻辑上,这些格式可被视为对消息中交换的数据、其结构和其含义的描述。这些逻辑定义可映射到 ISO 20022 中定义的业务定义。尽管 ISO 没有规定消息的语法,但 XML 是消息规范中使用最广泛的语法,而且 XML 消息模式源自 ISO UML 消息模型。

ISO 20022 消息可用于完整的端到端支付链:客户到银行(支付)银行到银行(支付清算与结算),以及报告(现金管理)。这些金融消息定义分为多个业务区域(这些是行业中公认的功能领域),由业务区域代码(4 个字符)来标识。这些代码是:

  • acmt – 帐户管理
  • admi – 行政管理
  • caaa – 承兑人到受让人卡交易
  • camt – 现金管理
  • catm – 终端管理
  • pacs – 支付清算与结算
  • pain – 支付发起
  • reda – 参考数据
  • seev – 证券事件
  • semt – 证券管理
  • sese – 证券结算
  • setr – 证券交易
  • trea – 金库
  • tsmt – 交易服务管理
  • tsin – 交易服务启动

表示一次特定的业务交易的消息流由来自上面定义的业务区域的消息组成。例如,客户发起的直接借记发起消息 (pain.008.001.03) 将导致出现客户支付状态报告消息 (pain.002.001.04)。所有业务区域的消息流的详细信息可在 ISO 20022 网站的 “ISO 支付消息” 部分(参见 参考资料 )中找到。

消息类型

关于消息类型,例如pain.002.001.04, 可以在ISO2022官网文档中找到 ISO 20022 Message Definitions

  • All business domains
  • Business Application Header
  • Cards
  • FX
  • Payments
  • Securities
  • Trade Services

直接借记消息示例

直接借记或直接提款是一种金融交易,其中一个人(债权人)从另一个人(债务人)的银行帐户提取资金。从形式上讲,直接提取资金的人(收款人)告诉他或她的银行从另一个人(付款人)指定的他的银行帐户收取(也就是借入)一笔资金,将这些资金支付给收款人指定的银行帐户。直接借记会导致债权人与债务人通过基础设施或通汇银行进行现金转账。它们可作为单个指令进行交换,但在传统上,可以按照一些通用特征将它们分组到一起,并通常在批处理模式下进行交换,以提高效率。

使用 ISO 标准,发起方将支付发起 (pain.008.001.03) 消息发送给转账代理或债权人代理。它被用于从一个债权人的各个债务人的帐户请求单次收取或批量收取资金。

示例 1 : Smith 保险公司向它的帐户服务方 AAAAUS29 发送的客户直接借记发起消息。AAAAUS29 依照协议 VERPA-1 向 Smith 提供了一项特殊服务。直接借记发起消息包含单个收款指令。该指令用于从帐户 789101 收取 985 英镑,该帐户归债务人 Lee 所有,并由代理 CCCCUS27 提供服务。这是一种一次性直接借记,它在 2013 年 6 月 8 号使用引用消息 SMITH2435/2012 通知 Lee。这笔支付用于一笔汽车保险费。请求的收款日期是 2012 年 7 月 13 日,与处理该指令相关的手续费将在 Smith 保险公司与债务人之间分摊。

<?xml version="1.0" encoding="UTF-8"?>
<?valid true?>
<?description Sample Message?>
<Document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="urn:iso:std:iso:20022:tech:xsd:pain.008.001.03">
  <CstmrDrctDbtInitn>
    <GrpHdr>
      <MsgId>CAVAY1234</MsgId>
      <CreDtTm>2013-06-02T14:25:00</CreDtTm>
      <NbOfTxs>1</NbOfTxs>
      <CtrlSum>985</CtrlSum>
      <InitgPty>
        <Nm>Smith</Nm>
        <PstlAdr>
          <StrtNm>Virginia Lane</StrtNm>
          <BldgNb>3</BldgNb>
          <PstCd>W12 8QT</PstCd>
          <TwnNm>London</TwnNm>
          <Ctry>GB</Ctry>
        </PstlAdr>
        <CtctDtls>
          <Nm>J. Thompson</Nm>
          <EmailAdr>Thompson@Smith.com</EmailAdr>
        </CtctDtls>
      </InitgPty>
    </GrpHdr>
    <PmtInf>
      <PmtInfId>CAVAY/88683</PmtInfId>
      <PmtMtd>DD</PmtMtd>
      <BtchBookg>false</BtchBookg>
      <ReqdColltnDt>2013-07-13</ReqdColltnDt>
      <Cdtr>
        <Nm>Smith</Nm>
        <PstlAdr>
          <StrtNm>Virginia Lane</StrtNm>
          <BldgNb>3</BldgNb>
          <PstCd>W12 8QT</PstCd>
          <TwnNm>London</TwnNm>
          <Ctry>GB</Ctry>
        </PstlAdr>
      </Cdtr>
      <CdtrAcct>
        <Id>
          <Othr>
            <Id>789123</Id>
          </Othr>
        </Id>
      </CdtrAcct>
      <CdtrAgt>
        <FinInstnId>
          <BICFI>AAAAUS29</BICFI>
        </FinInstnId>
      </CdtrAgt>
      <DrctDbtTxInf>
        <PmtId>
          <EndToEndId>AY090327/456</EndToEndId>
        </PmtId>
        <PmtTpInf>
          <InstrPrty>NORM</InstrPrty>
          <SvcLvl>
            <Prtry>VERPA-1</Prtry>
          </SvcLvl>
          <SeqTp>OOFF</SeqTp>
        </PmtTpInf>
        <InstdAmt Ccy="GBP">985</InstdAmt>
        <ChrgBr>SHAR</ChrgBr>
        <DrctDbtTx>
          <PreNtfctnId>Smith2435/2013</PreNtfctnId>
          <PreNtfctnDt>2013-06-08</PreNtfctnDt>
        </DrctDbtTx>
        <DbtrAgt>
          <FinInstnId>
            <BICFI>CCCCUS27</BICFI>
          </FinInstnId>
        </DbtrAgt>
        <Dbtr>
          <Nm>Lee</Nm>
          <PstlAdr>
            <StrtNm>Cross Road</StrtNm>
            <BldgNb>45</BldgNb>
            <PstCd>E56 7HY</PstCd>
            <TwnNm>London</TwnNm>
            <Ctry>GB</Ctry>
          </PstlAdr>
        </Dbtr>
        <DbtrAcct>
          <Id>
            <Othr>
              <Id>789101</Id>
            </Othr>
          </Id>
        </DbtrAcct>
        <RmtInf>
          <Ustrd>CAR INSURANCE PREMIUM</Ustrd>
        </RmtInf>
      </DrctDbtTxInf>
    </PmtInf>
  </CstmrDrctDbtInitn>
</Document>

在响应中,发送了一条积极的客户支付状态报告消息 (pain.002.001.04),以确认消息已(基于客户概要信息)通过验证并被接受。

<?xml version="1.0" encoding="UTF-8"?>
<?valid true?>
<?description Sample CustomerPaymentStatusReport to acknowledge that the message passed
validation and was accepted based on the customer profile.?>
<Document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="urn:iso:std:iso:20022:tech:xsd:pain.002.001.04">
    <CstmrPmtStsRpt>
        <GrpHdr>
            <MsgId>BBBB/120928-PSR/001</MsgId>
            <CreDtTm>2013-09-28T14:09:00</CreDtTm>
            <InitgPty>
                <Nm>Smith</Nm>
                <PstlAdr>
                    <StrtNm>Virginia Lane</StrtNm>
                    <BldgNb>3</BldgNb>
                    <PstCd>W12 8QT</PstCd>
                    <TwnNm>London</TwnNm>
                    <Ctry>GB</Ctry>
                </PstlAdr>
            </InitgPty>
            <DbtrAgt>
                <FinInstnId>
                    <BICFI>AAAAUS29</BICFI>
                </FinInstnId>
            </DbtrAgt>
        </GrpHdr>
        <OrgnlGrpInfAndSts>
            <OrgnlMsgId>CAVAY1234</OrgnlMsgId>
            <OrgnlMsgNmId>pain.008.001.03</OrgnlMsgNmId>
            <OrgnlCreDtTm>2013-09-28T14:07:00</OrgnlCreDtTm>
            <OrgnlNbOfTxs>1</OrgnlNbOfTxs>
            <OrgnlCtrlSum>985</OrgnlCtrlSum>
            <GrpSts>ACCP</GrpSts>
        </OrgnlGrpInfAndSts>
    </CstmrPmtStsRpt>
</Document>

008 消息的数据映射

Data mapping for pain.008 message pain

ISO pathXML tagISO data typeData entityData attributeData type
Document/@xmlnsMap the content of the namespace after xsd: to the Message Name (required for response) e.g. pain.008.001.03 ISO Message Document Message Name ID CHAR(35)
CstmrDrctDbtInitn/GrpHdr/MsgId MsgId Max35Text ISO Message Document Message Identifier CHAR(35)
CstmrDrctDbtInitn/GrpHdr/CreDtTm CreDtTm ISODateTime ISO Message Document Message Creation Date DATE
CstmrDrctDbtInitn/GrpHdr/NbOfTxs NbOfTxs Max15NumericText ISO Message Document Number of Transactions NUMERIC(15,0)
CstmrDrctDbtInitn/GrpHdr/InitgPty/Id/OrgId/Othr/Id Id Max35Text ISO Message Document Initiating Generic Organisation ID CHAR(35)
CstmrDrctDbtInitn/PmtInf/PmtMtd PmtMtd PaymentMethod2Code See note 1 below.
CstmrDrctDbtInitn/PmtInf/PmtTpInf/CtgyPurp/Cd Cd ExternalCategoryPurpose1Code Payment Instruction Payment Type Identifier VARCHAR(3)
CstmrDrctDbtInitn/PmtInf/ReqdColltnDt ReqdColltnDt ISODate Payment Instruction Requested Date DATE
CstmrDrctDbtInitn/PmtInf/CdtrAcct/Id/Othr/Id Id Max34Text ISO Message Document Creditor Account Identifier CHAR(35)
CstmrDrctDbtInitn/PmtInf/CdtrAcct/Id/IBAN IBAN IBAN2007Identifier Payment Instruction Creditor Account IBAN CHAR(34)
CstmrDrctDbtInitn/PmtInf/CdtrAgt/BrnchId/Id Id Max35Text Payment Instruction Creditor Account Branch Identifier CHAR(35)
CstmrDrctDbtInitn/PmtInf/DrctDbtTxInf/InstdAmt InstdAmt ActiveOrHistoricCurrencyAndAmount Payment Instruction Instructed Amount NUMERIC(23,5)
CstmrDrctDbtInitn/PmtInf/DrctDbtTxInf/InstdAmt/@Ccy InstdAmt ActiveOrHistoricCurrencyAndAmount Payment Instruction TransactionCurrency CHAR(3)
CstmrDrctDbtInitn/PmtInf/ DrctDbtTxInf/ DbtrAgt DbtrAgt BranchAndFinancialInstitutionIdentification5 See note 2 below.
CstmrDrctDbtInitn/PmtInf/DrctDbtTxInf/ Dbtr Dbtr PartyIdentification43 See note 2 below.
CstmrDrctDbtInitn/PmtInf/DrctDbtTxInf/ DbtrAcct/Id/Othr/Id Id Max35Text See note 3 below.
CstmrDrctDbtInitn/PmtInf/ DrctDbtTxInf/ InstrForCdtrAgt InstrForCdtrAgt Max140Text Payment Instruction Product ID CHAR(3)

002 消息的数据映射

Data Mapping for pain.002 message

ISO pathXML tagISO data typeData entityData attributeData type
CstmrPmtStsRpt/GrpHdr/MsgId MsgId Max35Text ISO Message Document Transaction Message ID CHAR(35)
CstmrPmtStsRpt/GrpHdr/CreDtTm CreDtTm ISODateTime ISO Message Document Message Creation Date DATE
CstmrPmtStsRpt/OrgnlGrpInfAndSts/OrgnlMsgId OrgnlMsgId Max35Text ISO Message Document Message Identifier CHAR(35)
OrgnlGrpInfAndSts/OrgnlMsgNmId OrgnlMsgNmId Max35Text ISO Message Document Message Name ID CHAR(35)
OrgnlGrpInfAndSts/OrgnlNbOfTxs OrgnlNbOfTxs Max15NumericText ISO Message Document Number of Transactions NUMERIC(15,0)
OrgnlPmtInfAndSts/PmtInfSts TxSts TransactionIndividualStatus3Code See note below
OrgnlPmtInfAndSts/TxInfAndSts/TxSts TxSts TransactionIndividualStatus3Code See note below
OrgnlPmtInfAndSts/TxInfAndSts/StsRsnInf/Rsn/Prtry Prtry Max35Text Payment Instruction Lifecycle Status Payment Instruction State Type Id NUMERIC(15,0)
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐