tsmt.046.001.01
Scope The IntentToPayReport message is sent by the matching application to the two primary banks after receiving an IntentToPayNotification message. This message is a report per transaction that were referenced in the IntentToPayNotice message. For each transaction, the matching application has accumulated the amounts present in all previous IntentToPayNotice messages and reports the total. Usage The IntentToPayReport message is a report that is automatically generated by the matching application following an IntentToPayNotice message. No response is expected.
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 %% IntentToPayReportV01 recursion level 0 with max 0 IntentToPayReportV01 *-- "1..1" MessageIdentification1 : ReportIdentification IntentToPayReportV01 *-- "0..1" ReportLine1 : ReportedItems
Now, we will zero-in one-by-one on each of these building blocks.
ReportIdentification building block
Identifies the report message. Identifies a message by a unique identifier and the date and time when the message was created by the sender. For comparison, see the ISO20022 official specification
classDiagram direction tb %% MessageIdentification1 recursion level 0 with max 1 class MessageIdentification1{ Identification IsoMax35Text CreationDateTime IsoISODateTime }
MessageIdentification1 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
Identification | Identification of the message. | IsoMax35Text - Required 1..1 |
CreationDateTime | Date of creation of the message. | IsoISODateTime - Required 1..1 |
ReportedItems building block
Reports on the intention to pay per purchase order. Information about a payment against a purchase order. For comparison, see the ISO20022 official specification
classDiagram direction tb %% ReportLine1 recursion level 0 with max 1 class ReportLine1{ TransactionIdentification IsoMax35Text PurchaseOrderTotalNetAmount IsoCurrencyAndAmount AccumulatedNetAmount IsoCurrencyAndAmount } ReportLine1 *-- "1..1" TransactionStatus4 : TransactionStatus ReportLine1 *-- "1..1" DocumentIdentification7 : PurchaseOrderReference %% TransactionStatus4 recursion level 1 with max 1 class TransactionStatus4{ Status BaselineStatus3Code } %% DocumentIdentification7 recursion level 1 with max 1 class DocumentIdentification7{ Identification IsoMax35Text DateOfIssue IsoISODate }
ReportLine1 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
TransactionIdentification | Unique identification assigned by the matching application to the transaction. | IsoMax35Text - Required 1..1 |
TransactionStatus | Identifies the status of the transaction. | TransactionStatus4 - Required 1..1 |
PurchaseOrderReference | Unique identification of the purchase order, assigned by the buyer. | DocumentIdentification7 - Required 1..1 |
PurchaseOrderTotalNetAmount | Total amount of the purchase order after taxes, adjustments and charges. | IsoCurrencyAndAmount - Required 1..1 |
AccumulatedNetAmount | Accumulated net amount, after adjustments, intended to be paid. | IsoCurrencyAndAmount - Required 1..1 |
Extensibility and generalization considerations
To facilitate generalized design patterns in the system, the IntentToPayReportV01 implementation follows a specific implementaiton pattern. First of all, IntentToPayReportV01 impleemnts IOuterRecord indicating it is the outermost logical part of the message definition. Like all message wrappers, IntentToPayReportV01Document implements IOuterDocument. Because IntentToPayReportV01 implements IOuterDocument, it is a suitable template parameter for IOuterDocument, and causes the internal ‘Message’ to be of type IntentToPayReportV01.
classDiagram class IOuterRecord IntentToPayReportV01 --|> IOuterRecord : Implements IntentToPayReportV01Document --|> IOuterDocument~IntentToPayReportV01~ : Implements class IOuterDocument~IntentToPayReportV01~ { IntentToPayReportV01 Message }
Document wrapper for serialization
The only real purpose IntentToPayReportV01Document serves is to cause the document to be serialized into the ‘urn:iso:std:iso:20022:tech:xsd:tsmt.046.001.01’ namespace. Therefore, it will probably be the usual practice to build the message and construct this wrapper at the last minute using IntentToPayReportV01.ToDocument() method. The returned IntentToPayReportV01Document value will serialize correctly according to ISO 20022 standards.
classDiagram IntentToPayReportV01Document *-- IntentToPayReportV01 : 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.046.001.01">
<InttToPayRpt>
<RptId>
<!-- ReportIdentification inner content -->
</RptId>
<RptdItms>
<!-- ReportedItems inner content -->
</RptdItms>
</InttToPayRpt>
</Document>
Data from ISO specification
This is the technical data from the specification document.
<messageDefinition
xmi:id="_quPoNdE8Ed-BzquC8wXy7w_-1126725598"
name="IntentToPayReportV01"
definition="Scope
The IntentToPayReport message is sent by the matching application to the two primary banks after receiving an IntentToPayNotification message.
This message is a report per transaction that were referenced in the IntentToPayNotice message. For each transaction, the matching application has accumulated the amounts present in all previous IntentToPayNotice messages and reports the total.
Usage
The IntentToPayReport message is a report that is automatically generated by the matching application following an IntentToPayNotice message. No response is expected."
registrationStatus="Registered"
messageSet="_wRx2yk2rEeG_I4xRYCA_7g _1a374FXOEeOkkLyrDUP66g"
xmlTag="InttToPayRpt"
rootElement="Document"
xmlns:xmi="http://www.omg.org/XMI">
<messageBuildingBlock
xmi:id="_quPoNtE8Ed-BzquC8wXy7w_-1126725320"
name="ReportIdentification"
definition="Identifies the report message."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="1"
xmlTag="RptId"
complexType="_Q7pG5Np-Ed-ak6NoX_4Aeg_-967008570" />
<messageBuildingBlock
xmi:id="_quPoN9E8Ed-BzquC8wXy7w_747097845"
name="ReportedItems"
definition="Reports on the intention to pay per purchase order."
registrationStatus="Provisionally Registered"
minOccurs="0"
xmlTag="RptdItms"
complexType="_ToDCydp-Ed-ak6NoX_4Aeg_-314950341" />
<messageDefinitionIdentifier
businessArea="tsmt"
messageFunctionality="046"
flavour="001"
version="01" />
</messageDefinition>
ISO Building Blocks
The following items are used as building blocks to construct this message.