tsmt.054.001.01
The message InvoicePaymentReconciliationStatus is sent from a payee to a payer to acknowledge attribution of payments. A payee that has received payment reconciliation information uses this message to confirm or to question common understanding of payments and instalments. The payee may include references to the corresponding items of an InvoicePaymentReconciliationAdvice message or to other messages and may include the referenced data. The message can carry digital signatures if required by context.
Message Construction
Every ISO20022 message has at the highest level what we call ‘building blocks’. Because the message is constructed as immutable records, the association is by composition. Below you can see the relationship between the message and its constituent building blocks: For comparison, see the ISO20022 official specification
classDiagram direction LR %% InvoicePaymentReconciliationStatusV01 recursion level 0 with max 0 class InvoicePaymentReconciliationStatusV01{ ReconciliationCount IsoMax15NumericText ItemCount IsoMax15NumericText ControlSum IsoDecimalNumber } InvoicePaymentReconciliationStatusV01 *-- "1..1" BusinessLetter1 : Header InvoicePaymentReconciliationStatusV01 *-- "1..1" ReconciliationList1 : ReconciliationList InvoicePaymentReconciliationStatusV01 *-- "0..1" EncapsulatedBusinessMessage1 : AttachedMessage
Now, we will zero-in one-by-one on each of these building blocks.
Header building block
Specifies a set of characteristics that unambiguously identify the status, common parameters, documents and identifications. Defines a business letter containing identifications of involved entities and their roles, references to documents, free form text and signatures. The semantics of this information are defined by usual business practices for the exchange and tracing of business letters. The described references and party identifiers permit to establish a linked informal trace of sequences of letters. This message component contains three types of elements that can be referenced using IDREF: (1) - all elements defining qualified parties, (2) - all elements defining qualified documents or references to them, (3) - the LegalContext element. For comparison, see the ISO20022 official specification
classDiagram direction tb %% BusinessLetter1 recursion level 0 with max 1 class BusinessLetter1{ ApplicationContext IsoMax35Text Date IsoISODate ContentIdentifier IsoMax35Text InstructionPriority Priority3Code AdditionalInformation IsoMax2000Text Notice IsoMax350Text } BusinessLetter1 *-- "1..1" QualifiedDocumentInformation1 : LetterIdentifier BusinessLetter1 *-- "0..0" QualifiedDocumentInformation1 : RelatedLetter BusinessLetter1 *-- "0..0" QualifiedDocumentInformation1 : RelatedMessage BusinessLetter1 *-- "1..1" QualifiedPartyIdentification1 : Originator BusinessLetter1 *-- "1..0" QualifiedPartyIdentification1 : PrimaryRecipient BusinessLetter1 *-- "0..0" QualifiedPartyIdentification1 : Sender BusinessLetter1 *-- "1..0" QualifiedPartyIdentification1 : AuthorisationUser BusinessLetter1 *-- "0..0" QualifiedPartyIdentification1 : ResponseRecipient BusinessLetter1 *-- "0..0" QualifiedPartyIdentification1 : CopyRecipient BusinessLetter1 *-- "0..0" QualifiedPartyIdentification1 : OtherParty BusinessLetter1 *-- "0..0" QualifiedDocumentInformation1 : AssociatedDocument BusinessLetter1 *-- "0..0" QualifiedDocumentInformation1 : GoverningContract BusinessLetter1 *-- "0..0" GovernanceRules2 : LegalContext BusinessLetter1 *-- "0..1" ValidationStatusInformation1 : ValidationStatusInformation BusinessLetter1 *-- "0..0" QualifiedPartyAndXMLSignature1 : DigitalSignature %% QualifiedDocumentInformation1 recursion level 1 with max 1 class QualifiedDocumentInformation1{ Identification IsoID ItemListIdentifier IsoMax35Text ItemIdentifier IsoMax35Text Date IsoISODate Version IsoMax6Text ElectronicOriginal IsoYesNoIndicator DocumentType ExternalDocumentType1Code URL IsoMax2048Text } QualifiedDocumentInformation1 *-- "0..1" QualifiedPartyIdentification1 : Issuer QualifiedDocumentInformation1 *-- "0..2" AlgorithmAndDigest1 : Digest QualifiedDocumentInformation1 *-- "0..0" BinaryFile1 : AttachedFile %% QualifiedDocumentInformation1 recursion level 1 with max 1 class QualifiedDocumentInformation1{ Identification IsoID ItemListIdentifier IsoMax35Text ItemIdentifier IsoMax35Text Date IsoISODate Version IsoMax6Text ElectronicOriginal IsoYesNoIndicator DocumentType ExternalDocumentType1Code URL IsoMax2048Text } QualifiedDocumentInformation1 *-- "0..1" QualifiedPartyIdentification1 : Issuer QualifiedDocumentInformation1 *-- "0..2" AlgorithmAndDigest1 : Digest QualifiedDocumentInformation1 *-- "0..0" BinaryFile1 : AttachedFile %% QualifiedDocumentInformation1 recursion level 1 with max 1 class QualifiedDocumentInformation1{ Identification IsoID ItemListIdentifier IsoMax35Text ItemIdentifier IsoMax35Text Date IsoISODate Version IsoMax6Text ElectronicOriginal IsoYesNoIndicator DocumentType ExternalDocumentType1Code URL IsoMax2048Text } QualifiedDocumentInformation1 *-- "0..1" QualifiedPartyIdentification1 : Issuer QualifiedDocumentInformation1 *-- "0..2" AlgorithmAndDigest1 : Digest QualifiedDocumentInformation1 *-- "0..0" BinaryFile1 : AttachedFile %% QualifiedPartyIdentification1 recursion level 1 with max 1 class QualifiedPartyIdentification1{ Identification IsoID RoleDescription IsoMax256Text } QualifiedPartyIdentification1 *-- "1..0" SingleQualifiedPartyIdentification1 : Party QualifiedPartyIdentification1 *-- "0..1" IPartyIdentification2Choice : ShortIdentification QualifiedPartyIdentification1 *-- "0..1" GenericIdentification1 : Role %% QualifiedPartyIdentification1 recursion level 1 with max 1 class QualifiedPartyIdentification1{ Identification IsoID RoleDescription IsoMax256Text } QualifiedPartyIdentification1 *-- "1..0" SingleQualifiedPartyIdentification1 : Party QualifiedPartyIdentification1 *-- "0..1" IPartyIdentification2Choice : ShortIdentification QualifiedPartyIdentification1 *-- "0..1" GenericIdentification1 : Role %% QualifiedPartyIdentification1 recursion level 1 with max 1 class QualifiedPartyIdentification1{ Identification IsoID RoleDescription IsoMax256Text } QualifiedPartyIdentification1 *-- "1..0" SingleQualifiedPartyIdentification1 : Party QualifiedPartyIdentification1 *-- "0..1" IPartyIdentification2Choice : ShortIdentification QualifiedPartyIdentification1 *-- "0..1" GenericIdentification1 : Role %% QualifiedPartyIdentification1 recursion level 1 with max 1 class QualifiedPartyIdentification1{ Identification IsoID RoleDescription IsoMax256Text } QualifiedPartyIdentification1 *-- "1..0" SingleQualifiedPartyIdentification1 : Party QualifiedPartyIdentification1 *-- "0..1" IPartyIdentification2Choice : ShortIdentification QualifiedPartyIdentification1 *-- "0..1" GenericIdentification1 : Role %% QualifiedPartyIdentification1 recursion level 1 with max 1 class QualifiedPartyIdentification1{ Identification IsoID RoleDescription IsoMax256Text } QualifiedPartyIdentification1 *-- "1..0" SingleQualifiedPartyIdentification1 : Party QualifiedPartyIdentification1 *-- "0..1" IPartyIdentification2Choice : ShortIdentification QualifiedPartyIdentification1 *-- "0..1" GenericIdentification1 : Role %% QualifiedPartyIdentification1 recursion level 1 with max 1 class QualifiedPartyIdentification1{ Identification IsoID RoleDescription IsoMax256Text } QualifiedPartyIdentification1 *-- "1..0" SingleQualifiedPartyIdentification1 : Party QualifiedPartyIdentification1 *-- "0..1" IPartyIdentification2Choice : ShortIdentification QualifiedPartyIdentification1 *-- "0..1" GenericIdentification1 : Role %% QualifiedPartyIdentification1 recursion level 1 with max 1 class QualifiedPartyIdentification1{ Identification IsoID RoleDescription IsoMax256Text } QualifiedPartyIdentification1 *-- "1..0" SingleQualifiedPartyIdentification1 : Party QualifiedPartyIdentification1 *-- "0..1" IPartyIdentification2Choice : ShortIdentification QualifiedPartyIdentification1 *-- "0..1" GenericIdentification1 : Role %% QualifiedDocumentInformation1 recursion level 1 with max 1 class QualifiedDocumentInformation1{ Identification IsoID ItemListIdentifier IsoMax35Text ItemIdentifier IsoMax35Text Date IsoISODate Version IsoMax6Text ElectronicOriginal IsoYesNoIndicator DocumentType ExternalDocumentType1Code URL IsoMax2048Text } QualifiedDocumentInformation1 *-- "0..1" QualifiedPartyIdentification1 : Issuer QualifiedDocumentInformation1 *-- "0..2" AlgorithmAndDigest1 : Digest QualifiedDocumentInformation1 *-- "0..0" BinaryFile1 : AttachedFile %% QualifiedDocumentInformation1 recursion level 1 with max 1 class QualifiedDocumentInformation1{ Identification IsoID ItemListIdentifier IsoMax35Text ItemIdentifier IsoMax35Text Date IsoISODate Version IsoMax6Text ElectronicOriginal IsoYesNoIndicator DocumentType ExternalDocumentType1Code URL IsoMax2048Text } QualifiedDocumentInformation1 *-- "0..1" QualifiedPartyIdentification1 : Issuer QualifiedDocumentInformation1 *-- "0..2" AlgorithmAndDigest1 : Digest QualifiedDocumentInformation1 *-- "0..0" BinaryFile1 : AttachedFile %% GovernanceRules2 recursion level 1 with max 1 class GovernanceRules2{ Identification IsoID } GovernanceRules2 *-- "1..1" IGovernanceIdentification1Choice : RuleIdentification GovernanceRules2 *-- "0..1" Location1 : ApplicableLaw GovernanceRules2 *-- "0..0" Location1 : Jurisdiction %% ValidationStatusInformation1 recursion level 1 with max 1 class ValidationStatusInformation1{ Status TechnicalValidationStatus1Code AdditionalStatusReasonInformation IsoMax105Text } ValidationStatusInformation1 *-- "0..1" IStatusReason4Choice : StatusReason %% QualifiedPartyAndXMLSignature1 recursion level 1 with max 1 QualifiedPartyAndXMLSignature1 *-- "0..1" QualifiedPartyIdentification1 : Party QualifiedPartyAndXMLSignature1 *-- "1..1" IsoSignatureEnvelope : Signature
BusinessLetter1 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
ApplicationContext | Application context defined by users. This is typically the name of a product. | IsoMax35Text - Optional 0..1 |
LetterIdentifier | Unambiguous identifier for this letter. | QualifiedDocumentInformation1 - Required 1..1 |
Date | Purported creation date of the document. | IsoISODate - Required 1..1 |
RelatedLetter | Identifier of a related letter. | QualifiedDocumentInformation1 - Unknown 0..0 |
RelatedMessage | Identifier of a related message. | QualifiedDocumentInformation1 - Unknown 0..0 |
ContentIdentifier | Cross references the lists that are associated to this letter inside a message. The identifiers are relative to the Originator. | IsoMax35Text - Unknown 0..0 |
InstructionPriority | Urgency or order of importance that the originator would like the recipient of the business letter to apply to the processing of the letter. | Priority3Code - Optional 0..1 |
Originator | Identification of the originating party of this letter. | QualifiedPartyIdentification1 - Required 1..1 |
PrimaryRecipient | Primary recipient of the business letter. The exact meaning is given by the users. | QualifiedPartyIdentification1 - Unknown 1..0 |
Sender | Sender of the business letter. The exact meaning is given by the users. | QualifiedPartyIdentification1 - Unknown 0..0 |
AuthorisationUser | User who, either individually or in concert with others, authorises the origination of a message. | QualifiedPartyIdentification1 - Unknown 1..0 |
ResponseRecipient | Party to receive a reply to this letter. | QualifiedPartyIdentification1 - Unknown 0..0 |
CopyRecipient | Party to receive a copy of the message. | QualifiedPartyIdentification1 - Unknown 0..0 |
OtherParty | Other party involved. This element is usable as a target for IDREFs. | QualifiedPartyIdentification1 - Unknown 0..0 |
AssociatedDocument | Associated free form document. | QualifiedDocumentInformation1 - Unknown 0..0 |
GoverningContract | Governing contract. | QualifiedDocumentInformation1 - Unknown 0..0 |
LegalContext | Rules and laws governing the letter. | GovernanceRules2 - Unknown 0..0 |
AdditionalInformation | Free form information about this message. | IsoMax2000Text - Optional 0..1 |
Notice | Free form information unrelated to the message for example advertising or a service notice. | IsoMax350Text - Optional 0..1 |
ValidationStatusInformation | Status of referenced messages or letters. | ValidationStatusInformation1 - Optional 0..1 |
DigitalSignature | Digital signatures and signing parties of this letter or parts of it. | QualifiedPartyAndXMLSignature1 - Unknown 0..0 |
ReconciliationList building block
List of payment reconciliation information. Specifies a list of reconciliation information concerning financial items. For comparison, see the ISO20022 official specification
classDiagram direction tb %% ReconciliationList1 recursion level 0 with max 1 class ReconciliationList1{ Date IsoISODate PaymentDate IsoISODate PaymentAmount IsoCurrencyAndAmount ItemCount IsoMax15NumericText ControlSum IsoDecimalNumber AdditionalInformation IsoMax2000Text } ReconciliationList1 *-- "0..0" QualifiedDocumentInformation1 : RelatedDocument ReconciliationList1 *-- "1..1" QualifiedPartyIdentification1 : Recipient ReconciliationList1 *-- "1..1" QualifiedPartyIdentification1 : Advisor ReconciliationList1 *-- "1..1" FinancialItemParameters1 : Parameters ReconciliationList1 *-- "1..1" PaymentIdentification1 : PaymentReference ReconciliationList1 *-- "1..1" PaymentMeans1 : PaymentMeans ReconciliationList1 *-- "1..1" PaymentTerms6 : PaymentTerms ReconciliationList1 *-- "1..0" FinancialItem1 : Item ReconciliationList1 *-- "0..0" QualifiedDocumentInformation1 : AssociatedDocument ReconciliationList1 *-- "0..1" ValidationStatusInformation1 : ValidationStatusInformation %% QualifiedDocumentInformation1 recursion level 1 with max 1 class QualifiedDocumentInformation1{ Identification IsoID ItemListIdentifier IsoMax35Text ItemIdentifier IsoMax35Text Date IsoISODate Version IsoMax6Text ElectronicOriginal IsoYesNoIndicator DocumentType ExternalDocumentType1Code URL IsoMax2048Text } QualifiedDocumentInformation1 *-- "0..1" QualifiedPartyIdentification1 : Issuer QualifiedDocumentInformation1 *-- "0..2" AlgorithmAndDigest1 : Digest QualifiedDocumentInformation1 *-- "0..0" BinaryFile1 : AttachedFile %% QualifiedPartyIdentification1 recursion level 1 with max 1 class QualifiedPartyIdentification1{ Identification IsoID RoleDescription IsoMax256Text } QualifiedPartyIdentification1 *-- "1..0" SingleQualifiedPartyIdentification1 : Party QualifiedPartyIdentification1 *-- "0..1" IPartyIdentification2Choice : ShortIdentification QualifiedPartyIdentification1 *-- "0..1" GenericIdentification1 : Role %% QualifiedPartyIdentification1 recursion level 1 with max 1 class QualifiedPartyIdentification1{ Identification IsoID RoleDescription IsoMax256Text } QualifiedPartyIdentification1 *-- "1..0" SingleQualifiedPartyIdentification1 : Party QualifiedPartyIdentification1 *-- "0..1" IPartyIdentification2Choice : ShortIdentification QualifiedPartyIdentification1 *-- "0..1" GenericIdentification1 : Role %% FinancialItemParameters1 recursion level 1 with max 1 class FinancialItemParameters1{ Identifier IsoMax35Text IssueDate IsoISODate DocumentPurpose ExternalDocumentPurpose1Code LanguageCode LanguageCode Currency CurrencyCode } FinancialItemParameters1 *-- "0..0" QualifiedDocumentInformation1 : RelatedItem FinancialItemParameters1 *-- "0..1" QualifiedPartyIdentification1 : Issuer FinancialItemParameters1 *-- "0..1" QualifiedPartyIdentification1 : Recipient FinancialItemParameters1 *-- "0..1" QualifiedPartyIdentification1 : Buyer FinancialItemParameters1 *-- "0..1" QualifiedPartyIdentification1 : Seller FinancialItemParameters1 *-- "0..1" QualifiedPartyIdentification1 : SellerFinancialAgent FinancialItemParameters1 *-- "0..1" QualifiedPartyIdentification1 : BuyerFinancialAgent FinancialItemParameters1 *-- "0..0" QualifiedDocumentInformation1 : GoverningContract FinancialItemParameters1 *-- "0..1" GovernanceRules2 : LegalContext FinancialItemParameters1 *-- "0..1" IAccountIdentification4Choice : DebitAccount FinancialItemParameters1 *-- "0..1" IAccountIdentification4Choice : CreditAccount FinancialItemParameters1 *-- "0..1" ITradeMarket1Choice : TradeMarket %% PaymentIdentification1 recursion level 1 with max 1 class PaymentIdentification1{ InstructionIdentification IsoMax35Text EndToEndIdentification IsoMax35Text } %% PaymentMeans1 recursion level 1 with max 1 class PaymentMeans1{ PaymentMethodCode PaymentMethod4Code } PaymentMeans1 *-- "1..1" PaymentTypeInformation19 : PaymentType PaymentMeans1 *-- "1..1" CashAccount16 : PayeeCreditorAccount PaymentMeans1 *-- "1..1" BranchAndFinancialInstitutionIdentification4 : PayeeFinancialInstitution PaymentMeans1 *-- "0..1" CashAccount16 : PayerDebtorAccount PaymentMeans1 *-- "0..1" BranchAndFinancialInstitutionIdentification4 : PayerFinancialInstitution %% PaymentTerms6 recursion level 1 with max 1 class PaymentTerms6{ DueDate IsoISODate Description IsoMax140Text PartialPaymentPercent IsoPercentageRate DirectDebitMandateIdentification IsoMax35Text BasisAmount IsoCurrencyAndAmount DiscountAmount IsoCurrencyAndAmount DiscountPercentRate IsoPercentageRate PenaltyAmount IsoCurrencyAndAmount PenaltyPercentRate IsoPercentageRate } PaymentTerms6 *-- "0..1" PaymentPeriod1 : PaymentPeriod %% FinancialItem1 recursion level 1 with max 1 class FinancialItem1{ CreditDebitIndicator CreditDebitCode DueAmount IsoActiveCurrencyAndAmount AdditionalInformation IsoMax2000Text } FinancialItem1 *-- "1..1" FinancialItemParameters1 : ItemContext FinancialItem1 *-- "0..0" QualifiedDocumentInformation1 : FinancialDocumentReference FinancialItem1 *-- "1..1" InvoiceTotals1 : TotalAmount FinancialItem1 *-- "0..0" Instalment2 : InstalmentInformation FinancialItem1 *-- "0..0" QualifiedDocumentInformation1 : AssociatedDocument FinancialItem1 *-- "0..1" ValidationStatusInformation1 : ValidationStatusInformation FinancialItem1 *-- "0..1" FinancingInformationAndStatus1 : FinancingStatus FinancialItem1 *-- "0..1" SupplementaryData1 : ProprietaryDetails %% QualifiedDocumentInformation1 recursion level 1 with max 1 class QualifiedDocumentInformation1{ Identification IsoID ItemListIdentifier IsoMax35Text ItemIdentifier IsoMax35Text Date IsoISODate Version IsoMax6Text ElectronicOriginal IsoYesNoIndicator DocumentType ExternalDocumentType1Code URL IsoMax2048Text } QualifiedDocumentInformation1 *-- "0..1" QualifiedPartyIdentification1 : Issuer QualifiedDocumentInformation1 *-- "0..2" AlgorithmAndDigest1 : Digest QualifiedDocumentInformation1 *-- "0..0" BinaryFile1 : AttachedFile %% ValidationStatusInformation1 recursion level 1 with max 1 class ValidationStatusInformation1{ Status TechnicalValidationStatus1Code AdditionalStatusReasonInformation IsoMax105Text } ValidationStatusInformation1 *-- "0..1" IStatusReason4Choice : StatusReason
ReconciliationList1 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
Date | Date of creation of this document. | IsoISODate - Required 1..1 |
RelatedDocument | Reference to related documents for example to original assignment in a status response or retry. | QualifiedDocumentInformation1 - Unknown 0..0 |
Recipient | Party to be advised. | QualifiedPartyIdentification1 - Required 1..1 |
Advisor | Informing party. | QualifiedPartyIdentification1 - Required 1..1 |
Parameters | Identification parameters. | FinancialItemParameters1 - Required 1..1 |
PaymentReference | Reference to a payment instruction. | PaymentIdentification1 - Required 1..1 |
PaymentMeans | Set of elements used to further specify the type of transaction. | PaymentMeans1 - Required 1..1 |
PaymentDate | Effective date of payment. | IsoISODate - Required 1..1 |
PaymentTerms | Terms of the payment. | PaymentTerms6 - Required 1..1 |
PaymentAmount | Amount of the referenced payment. | IsoCurrencyAndAmount - Required 1..1 |
Item | Financial item impacted by the payment. | FinancialItem1 - Unknown 1..0 |
ItemCount | Number of individual items contained in the list. | IsoMax15NumericText - Required 1..1 |
ControlSum | Total of all individual amounts included in the list, irrespective of currencies. | IsoDecimalNumber - Optional 0..1 |
AssociatedDocument | Associated free form document. | QualifiedDocumentInformation1 - Unknown 0..0 |
AdditionalInformation | Additional proprietary formal information concerning the list. | IsoMax2000Text - Optional 0..1 |
ValidationStatusInformation | Validation status of the list. | ValidationStatusInformation1 - Optional 0..1 |
ReconciliationCount building block
Specifies the number of reconciliation lists. Specifies a numeric string with a maximum length of 15 digits. For comparison, see the ISO20022 official specification This message is declared as Max15NumericText in the ISO specification. In our implementation, it is represented in source code as IsoMax15NumericText. Due to global using directives, it is treated as a System.String by the compiler and runtime.
ItemCount building block
Total number of individual items in all lists. Specifies a numeric string with a maximum length of 15 digits. For comparison, see the ISO20022 official specification This message is declared as Max15NumericText in the ISO specification. In our implementation, it is represented in source code as IsoMax15NumericText. Due to global using directives, it is treated as a System.String by the compiler and runtime.
ControlSum building block
Total of all individual amounts included in all lists, irrespective of currencies or direction. Number of objects represented as a decimal number, for example 0.75 or 45.6. For comparison, see the ISO20022 official specification This message is declared as DecimalNumber in the ISO specification. In our implementation, it is represented in source code as IsoDecimalNumber. Due to global using directives, it is treated as a System.UInt64 by the compiler and runtime.
AttachedMessage building block
Referenced or related business message. Defines an encapsulated form of an ISO 20022 message and, if present, its associated Business Application Header. The encapsulation guarantees uniqueness of ID/IDREFs though the use of the Prefix element. This element can be added during message preparation to ID/IDREFs. In order to verify the signature in the Hdr element or inside the encapsulated message, for each occurrence of an ID orIDREF that possesses the same value as a prefix, the prefix part is removed before signature verification. This is not done for surrounding signatures. For comparison, see the ISO20022 official specification
classDiagram direction tb %% EncapsulatedBusinessMessage1 recursion level 0 with max 1 class EncapsulatedBusinessMessage1{ Prefix IsoID Partial IsoYesNoIndicator } EncapsulatedBusinessMessage1 *-- "0..1" BusinessApplicationHeader1 : Header EncapsulatedBusinessMessage1 *-- "1..1" IsoStrictPayload : Message %% BusinessApplicationHeader1 recursion level 1 with max 1 class BusinessApplicationHeader1{ CharacterSet UnicodeChartsCode BusinessMessageIdentifier IsoMax35Text MessageDefinitionIdentifier IsoMax35Text BusinessService IsoMax35Text CreationDate IsoISONormalisedDateTime CopyDuplicate CopyDuplicate1Code PossibleDuplicate IsoYesNoIndicator Priority BusinessMessagePriorityCode } BusinessApplicationHeader1 *-- "1..1" IParty9Choice : From BusinessApplicationHeader1 *-- "1..1" IParty9Choice : To BusinessApplicationHeader1 *-- "0..1" IsoSignatureEnvelope : Signature %% IsoStrictPayload recursion level 1 with max 1
EncapsulatedBusinessMessage1 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
Header | The Business Application Header associated to the encapsulated message if it exists. | BusinessApplicationHeader1 - Optional 0..1 |
Prefix | Prefix of ID/IDREFs in the encapsulated message to be removed before signature verification. | IsoID - Optional 0..1 |
Partial | If yes, the Msg element contains only a subset of the original message. | IsoYesNoIndicator - Required 1..1 |
Message | The encapsulated ISO 20022 message. | IsoStrictPayload - Required 1..1 |
Extensibility and generalization considerations
To facilitate generalized design patterns in the system, the InvoicePaymentReconciliationStatusV01 implementation follows a specific implementaiton pattern. First of all, InvoicePaymentReconciliationStatusV01 impleemnts IOuterRecord indicating it is the outermost logical part of the message definition. Like all message wrappers, InvoicePaymentReconciliationStatusV01Document implements IOuterDocument. Because InvoicePaymentReconciliationStatusV01 implements IOuterDocument, it is a suitable template parameter for IOuterDocument, and causes the internal ‘Message’ to be of type InvoicePaymentReconciliationStatusV01.
classDiagram class IOuterRecord InvoicePaymentReconciliationStatusV01 --|> IOuterRecord : Implements InvoicePaymentReconciliationStatusV01Document --|> IOuterDocument~InvoicePaymentReconciliationStatusV01~ : Implements class IOuterDocument~InvoicePaymentReconciliationStatusV01~ { InvoicePaymentReconciliationStatusV01 Message }
Document wrapper for serialization
The only real purpose InvoicePaymentReconciliationStatusV01Document serves is to cause the document to be serialized into the ‘urn:iso:std:iso:20022:tech:xsd:tsmt.054.001.01’ namespace. Therefore, it will probably be the usual practice to build the message and construct this wrapper at the last minute using InvoicePaymentReconciliationStatusV01.ToDocument() method. The returned InvoicePaymentReconciliationStatusV01Document value will serialize correctly according to ISO 20022 standards.
classDiagram InvoicePaymentReconciliationStatusV01Document *-- InvoicePaymentReconciliationStatusV01 : Document
Sample of message format
This is an abbreviated version of what the message should look like.
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:tsmt.054.001.01">
<InvcPmtRcncltnSts>
<Hdr>
<!-- Header inner content -->
</Hdr>
<RcncltnList>
<!-- ReconciliationList inner content -->
</RcncltnList>
<RcncltnCnt>
<!-- ReconciliationCount inner content -->
</RcncltnCnt>
<ItmCnt>
<!-- ItemCount inner content -->
</ItmCnt>
<CtrlSum>
<!-- ControlSum inner content -->
</CtrlSum>
<AttchdMsg>
<!-- AttachedMessage inner content -->
</AttchdMsg>
</InvcPmtRcncltnSts>
</Document>
Data from ISO specification
This is the technical data from the specification document.
<messageDefinition
xmi:id="_OTgzNTA1-AOSNFX-8224507"
name="InvoicePaymentReconciliationStatusV01"
definition="The message InvoicePaymentReconciliationStatus is sent from a payee to a payer to acknowledge attribution of payments.
A payee that has received payment reconciliation information uses this message to confirm or to question common understanding of payments and instalments.
The payee may include references to the corresponding items of an InvoicePaymentReconciliationAdvice message or to other messages and may include the referenced data.
The message can carry digital signatures if required by context."
registrationStatus="Registered"
messageSet="_ODg4MjY3-AOSNFX-3856349"
xmlTag="InvcPmtRcncltnSts"
rootElement="Document"
xmlns:xmi="http://www.omg.org/XMI">
<messageBuildingBlock
xmi:id="_OTgzNTA2-AOSNFX-8224507"
name="Header"
definition="Specifies a set of characteristics that unambiguously identify the status, common parameters, documents and identifications."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="1"
xmlTag="Hdr"
complexType="_OTgzMTkz-AOSNFX-8224490" />
<messageBuildingBlock
xmi:id="_OTgzNTA3-AOSNFX-822450"
name="ReconciliationList"
definition="List of payment reconciliation information."
registrationStatus="Provisionally Registered"
minOccurs="1"
xmlTag="RcncltnList"
complexType="_OTgzMTk5-AOSNFX-8224490" />
<messageBuildingBlock
xmi:id="_OTgzNTA4-AOSNFX-8224507"
name="ReconciliationCount"
definition="Specifies the number of reconciliation lists."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="0"
xmlTag="RcncltnCnt"
simpleType="_YXbjAtp-Ed-ak6NoX_4Aeg_-1365324848" />
<messageBuildingBlock
xmi:id="_OTgzNTA5-AOSNFX-8224507"
name="ItemCount"
definition="Total number of individual items in all lists."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="0"
xmlTag="ItmCnt"
simpleType="_YXbjAtp-Ed-ak6NoX_4Aeg_-1365324848" />
<messageBuildingBlock
xmi:id="_OTgzNTEw-AOSNFX-8224507"
name="ControlSum"
definition="Total of all individual amounts included in all lists, irrespective of currencies or direction."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="0"
xmlTag="CtrlSum"
simpleType="_YXlUA9p-Ed-ak6NoX_4Aeg_1283031972" />
<messageBuildingBlock
xmi:id="_OTgzNTEx-AOSNFX-8224507"
name="AttachedMessage"
definition="Referenced or related business message."
registrationStatus="Provisionally Registered"
minOccurs="0"
xmlTag="AttchdMsg"
complexType="_OTgzMTky-AOSNFX-8224490" />
<messageDefinitionIdentifier
businessArea="tsmt"
messageFunctionality="054"
flavour="001"
version="01" />
</messageDefinition>
ISO Building Blocks
The following items are used as building blocks to construct this message.