ForwardDataSetSubmissionReportV04

tsmt.017.001.04

Scope The ForwardDataSetSubmissionReport message is sent by the matching application to the counterparty(ies) of the submitter of data sets. This message is used to pass on information related to the purchasing agreement(s) covered by the transaction(s) referred to in the message. Usage The ForwardDataSetSubmission message can be sent by the matching application to forward the details of a DataSetSubmission message that it has obtained.

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
%% ForwardDataSetSubmissionReportV04 recursion level 0 with max 0
ForwardDataSetSubmissionReportV04 *-- "1..1" MessageIdentification1 : ReportIdentification
ForwardDataSetSubmissionReportV04 *-- "1..1" DataSetSubmissionReferences4 : RelatedTransactionReferences
ForwardDataSetSubmissionReportV04 *-- "1..1" SimpleIdentificationInformation : CommonSubmissionReference
ForwardDataSetSubmissionReportV04 *-- "1..1" BICIdentification1 : Submitter
ForwardDataSetSubmissionReportV04 *-- "1..1" BICIdentification1 : BuyerBank
ForwardDataSetSubmissionReportV04 *-- "1..1" BICIdentification1 : SellerBank
ForwardDataSetSubmissionReportV04 *-- "0..1" CommercialDataSet4 : CommercialDataSet
ForwardDataSetSubmissionReportV04 *-- "0..1" TransportDataSet4 : TransportDataSet
ForwardDataSetSubmissionReportV04 *-- "0..1" InsuranceDataSet1 : InsuranceDataSet
ForwardDataSetSubmissionReportV04 *-- "0..1" CertificateDataSet2 : CertificateDataSet
ForwardDataSetSubmissionReportV04 *-- "0..1" OtherCertificateDataSet1 : OtherCertificateDataSet
ForwardDataSetSubmissionReportV04 *-- "0..1" PendingActivity2 : RequestForAction
  

Now, we will zero-in one-by-one on each of these building blocks.

ReportIdentification building block

Identifies the report. 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

RelatedTransactionReferences building block

Identifies the transactions that this submission relates to and provides associated information. Provides references to the transactions both for the matching application and for the user. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% DataSetSubmissionReferences4 recursion level 0 with max 1
class DataSetSubmissionReferences4{
    TransactionIdentification IsoMax35Text
    ForcedMatch IsoYesNoIndicator
    TransactionStatus BaselineStatus3Code
}
DataSetSubmissionReferences4 *-- "1..1" DocumentIdentification7 : PurchaseOrderReference
DataSetSubmissionReferences4 *-- "0..2" DocumentIdentification5 : UserTransactionReference
DataSetSubmissionReferences4 *-- "1..1" DocumentIdentification3 : EstablishedBaselineIdentification
%% DocumentIdentification7 recursion level 1 with max 1
class DocumentIdentification7{
    Identification IsoMax35Text
    DateOfIssue IsoISODate
}
%% DocumentIdentification5 recursion level 1 with max 1
class DocumentIdentification5{
    Identification IsoMax35Text
}
DocumentIdentification5 *-- "1..1" BICIdentification1 : IdentificationIssuer
%% DocumentIdentification3 recursion level 1 with max 1
class DocumentIdentification3{
    Identification IsoMax35Text
    Version IsoNumber
}
  

DataSetSubmissionReferences4 members

Member name Description Data Type / Multiplicity
TransactionIdentification Unique identification assigned by the matching application to the transaction. This identification is to be used in any communication between the parties.
PurchaseOrderReference Reference to the purchase order of the underlying transaction. DocumentIdentification7 - Required 1..1
UserTransactionReference Own reference to the transaction for the financial institution. DocumentIdentification5 - Collection 0..2
ForcedMatch Specifies that this message should force the matching application to match all data sets it has received so far for the transaction identified by the transaction identification. IsoYesNoIndicator - Required 1..1
EstablishedBaselineIdentification Unique identification assigned by the matching engine to the baseline when it is established. DocumentIdentification3 - Required 1..1
TransactionStatus Identifies the status of the transaction by means of a code. BaselineStatus3Code - Required 1..1

CommonSubmissionReference building block

This reference must be used for all data sets belonging to the same submission group. Information related to an identification, eg, party identification or account identification. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% SimpleIdentificationInformation recursion level 0 with max 1
class SimpleIdentificationInformation{
    Identification IsoMax35Text
}
  

SimpleIdentificationInformation members

Member name Description Data Type / Multiplicity
Identification Name or number assigned by an entity to enable recognition of that entity, eg, account identifier. IsoMax35Text - Required 1..1

Submitter building block

The financial institution that has submitted the data sets to the matching engine. Unique and unambiguous identifier of a financial institution, as assigned under an internationally recognised or proprietary identification scheme. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% BICIdentification1 recursion level 0 with max 1
class BICIdentification1{
    BIC IsoBICIdentifier
}
  

BICIdentification1 members

Member name Description Data Type / Multiplicity
BIC Code allocated to a financial institution by the ISO 9362 Registration Authority as described in ISO 9362 “Banking - Banking telecommunication messages - Business identifier code (BIC)”. IsoBICIdentifier - Required 1..1

BuyerBank building block

The financial institution of the buyer, uniquely identified by its BIC. Unique and unambiguous identifier of a financial institution, as assigned under an internationally recognised or proprietary identification scheme. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% BICIdentification1 recursion level 0 with max 1
class BICIdentification1{
    BIC IsoBICIdentifier
}
  

BICIdentification1 members

Member name Description Data Type / Multiplicity
BIC Code allocated to a financial institution by the ISO 9362 Registration Authority as described in ISO 9362 “Banking - Banking telecommunication messages - Business identifier code (BIC)”. IsoBICIdentifier - Required 1..1

SellerBank building block

The financial institution of the seller, uniquely identified by its BIC. Unique and unambiguous identifier of a financial institution, as assigned under an internationally recognised or proprietary identification scheme. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% BICIdentification1 recursion level 0 with max 1
class BICIdentification1{
    BIC IsoBICIdentifier
}
  

BICIdentification1 members

Member name Description Data Type / Multiplicity
BIC Code allocated to a financial institution by the ISO 9362 Registration Authority as described in ISO 9362 “Banking - Banking telecommunication messages - Business identifier code (BIC)”. IsoBICIdentifier - Required 1..1

CommercialDataSet building block

Commercial information that has been submitted to the matching application by the other party. Goods or services that are part of a commercial trade agreement. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% CommercialDataSet4 recursion level 0 with max 1
CommercialDataSet4 *-- "1..1" DocumentIdentification1 : DataSetIdentification
CommercialDataSet4 *-- "1..1" InvoiceIdentification1 : CommercialDocumentReference
CommercialDataSet4 *-- "1..1" PartyIdentification26 : Buyer
CommercialDataSet4 *-- "1..1" PartyIdentification26 : Seller
CommercialDataSet4 *-- "0..1" PartyIdentification26 : BillTo
CommercialDataSet4 *-- "1..0" LineItem12 : Goods
CommercialDataSet4 *-- "1..0" PaymentTerms4 : PaymentTerms
CommercialDataSet4 *-- "1..1" SettlementTerms3 : SettlementTerms
%% DocumentIdentification1 recursion level 1 with max 1
class DocumentIdentification1{
    Identification IsoMax35Text
    Version IsoNumber
}
DocumentIdentification1 *-- "1..1" BICIdentification1 : Submitter
%% InvoiceIdentification1 recursion level 1 with max 1
class InvoiceIdentification1{
    InvoiceNumber IsoMax35Text
    IssueDate IsoISODate
}
%% PartyIdentification26 recursion level 1 with max 1
class PartyIdentification26{
    Name IsoMax70Text
}
PartyIdentification26 *-- "0..1" GenericIdentification4 : ProprietaryIdentification
PartyIdentification26 *-- "1..1" PostalAddress5 : PostalAddress
%% PartyIdentification26 recursion level 1 with max 1
class PartyIdentification26{
    Name IsoMax70Text
}
PartyIdentification26 *-- "0..1" GenericIdentification4 : ProprietaryIdentification
PartyIdentification26 *-- "1..1" PostalAddress5 : PostalAddress
%% PartyIdentification26 recursion level 1 with max 1
class PartyIdentification26{
    Name IsoMax70Text
}
PartyIdentification26 *-- "0..1" GenericIdentification4 : ProprietaryIdentification
PartyIdentification26 *-- "1..1" PostalAddress5 : PostalAddress
%% LineItem12 recursion level 1 with max 1
class LineItem12{
    FinalSubmission IsoYesNoIndicator
    LineItemsTotalAmount IsoCurrencyAndAmount
    TotalNetAmount IsoCurrencyAndAmount
}
LineItem12 *-- "1..1" DocumentIdentification7 : PurchaseOrderReference
LineItem12 *-- "1..0" LineItemDetails11 : CommercialLineItems
LineItem12 *-- "0..0" Adjustment6 : Adjustment
LineItem12 *-- "0..1" Charge25 : FreightCharges
LineItem12 *-- "0..0" Tax22 : Tax
LineItem12 *-- "0..0" UserDefinedInformation1 : BuyerDefinedInformation
LineItem12 *-- "0..0" UserDefinedInformation1 : SellerDefinedInformation
LineItem12 *-- "0..1" Incoterms4 : Incoterms
%% PaymentTerms4 recursion level 1 with max 1
PaymentTerms4 *-- "1..1" IPaymentCodeOrOther1Choice : PaymentTerms
PaymentTerms4 *-- "1..1" IAmountOrPercentage2Choice : AmountOrPercentage
%% SettlementTerms3 recursion level 1 with max 1
SettlementTerms3 *-- "0..1" IFinancialInstitutionIdentification4Choice : CreditorAgent
SettlementTerms3 *-- "1..1" CashAccount24 : CreditorAccount
  

CommercialDataSet4 members

Member name Description Data Type / Multiplicity
DataSetIdentification Identifies the commercial data set. DocumentIdentification1 - Required 1..1
CommercialDocumentReference Reference to the identification of the underlying commercial document. InvoiceIdentification1 - Required 1..1
Buyer Party that buys goods or services, or a financial instrument. PartyIdentification26 - Required 1..1
Seller Party that sells goods or services, or a financial instrument. PartyIdentification26 - Required 1..1
BillTo Party to be invoiced for the purchase. PartyIdentification26 - Optional 0..1
Goods Information about the goods and/or services of the underlying transaction. LineItem12 - Unknown 1..0
PaymentTerms Specifies the payment terms by means of a code and a limit in time. PaymentTerms4 - Unknown 1..0
SettlementTerms Specifies how the transaction should be settled. SettlementTerms3 - Required 1..1

TransportDataSet building block

Transport information that has been submitted to the matching application by the other party. Provides details on the transportation of goods that are part of a commercial trade agreement. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% TransportDataSet4 recursion level 0 with max 1
TransportDataSet4 *-- "1..1" DocumentIdentification1 : DataSetIdentification
TransportDataSet4 *-- "0..1" PartyIdentification26 : Buyer
TransportDataSet4 *-- "0..1" PartyIdentification26 : Seller
TransportDataSet4 *-- "1..1" PartyIdentification26 : Consignor
TransportDataSet4 *-- "0..1" PartyIdentification26 : Consignee
TransportDataSet4 *-- "0..1" PartyIdentification26 : ShipTo
TransportDataSet4 *-- "1..1" TransportDetails3 : TransportInformation
%% DocumentIdentification1 recursion level 1 with max 1
class DocumentIdentification1{
    Identification IsoMax35Text
    Version IsoNumber
}
DocumentIdentification1 *-- "1..1" BICIdentification1 : Submitter
%% PartyIdentification26 recursion level 1 with max 1
class PartyIdentification26{
    Name IsoMax70Text
}
PartyIdentification26 *-- "0..1" GenericIdentification4 : ProprietaryIdentification
PartyIdentification26 *-- "1..1" PostalAddress5 : PostalAddress
%% PartyIdentification26 recursion level 1 with max 1
class PartyIdentification26{
    Name IsoMax70Text
}
PartyIdentification26 *-- "0..1" GenericIdentification4 : ProprietaryIdentification
PartyIdentification26 *-- "1..1" PostalAddress5 : PostalAddress
%% PartyIdentification26 recursion level 1 with max 1
class PartyIdentification26{
    Name IsoMax70Text
}
PartyIdentification26 *-- "0..1" GenericIdentification4 : ProprietaryIdentification
PartyIdentification26 *-- "1..1" PostalAddress5 : PostalAddress
%% PartyIdentification26 recursion level 1 with max 1
class PartyIdentification26{
    Name IsoMax70Text
}
PartyIdentification26 *-- "0..1" GenericIdentification4 : ProprietaryIdentification
PartyIdentification26 *-- "1..1" PostalAddress5 : PostalAddress
%% PartyIdentification26 recursion level 1 with max 1
class PartyIdentification26{
    Name IsoMax70Text
}
PartyIdentification26 *-- "0..1" GenericIdentification4 : ProprietaryIdentification
PartyIdentification26 *-- "1..1" PostalAddress5 : PostalAddress
%% TransportDetails3 recursion level 1 with max 1
TransportDetails3 *-- "1..0" DocumentIdentification7 : TransportDocumentReference
TransportDetails3 *-- "1..0" TransportedGoods1 : TransportedGoods
TransportDetails3 *-- "0..1" Consignment3 : Consignment
TransportDetails3 *-- "1..1" TransportMeans4 : RoutingSummary
TransportDetails3 *-- "1..1" IShipmentDate1Choice : ShipmentDate
TransportDetails3 *-- "0..1" Charge25 : FreightCharges
TransportDetails3 *-- "0..1" Incoterms4 : Incoterms
  

TransportDataSet4 members

Member name Description Data Type / Multiplicity
DataSetIdentification Identifies the submitted transport data set. DocumentIdentification1 - Required 1..1
Buyer Party that buys goods or services, or a financial instrument. PartyIdentification26 - Optional 0..1
Seller Party that sells goods or services, or a financial instrument. PartyIdentification26 - Optional 0..1
Consignor Party responsible for dispatching the goods. PartyIdentification26 - Required 1..1
Consignee Party to whom the goods must be delivered. PartyIdentification26 - Optional 0..1
ShipTo Party to whom the goods must be delivered in the end. PartyIdentification26 - Optional 0..1
TransportInformation Specifies the shipment date, the charges, the routing and the goods that are described in the transport document. TransportDetails3 - Required 1..1

InsuranceDataSet building block

Insurance information that has been submitted to the matching application by the other party. Formal document used to record a fact and used as proof of the fact that goods have been insured under an insurance policy. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% InsuranceDataSet1 recursion level 0 with max 1
class InsuranceDataSet1{
    IssueDate IsoISODate
    EffectiveDate IsoISODate
    InsuranceDocumentIdentification IsoMax35Text
    InsuredAmount IsoCurrencyAndAmount
    InsuredGoodsDescription IsoMax70Text
    InsuranceConditions IsoMax350Text
    InsuranceClauses InsuranceClauses1Code
    ClaimsPayableIn CurrencyCode
}
InsuranceDataSet1 *-- "1..1" DocumentIdentification1 : DataSetIdentification
InsuranceDataSet1 *-- "1..1" PartyIdentification26 : Issuer
InsuranceDataSet1 *-- "0..1" PostalAddress5 : PlaceOfIssue
InsuranceDataSet1 *-- "0..1" SingleTransport3 : Transport
InsuranceDataSet1 *-- "1..1" IPartyIdentification29Choice : Assured
InsuranceDataSet1 *-- "1..1" PostalAddress5 : ClaimsPayableAt
%% DocumentIdentification1 recursion level 1 with max 1
class DocumentIdentification1{
    Identification IsoMax35Text
    Version IsoNumber
}
DocumentIdentification1 *-- "1..1" BICIdentification1 : Submitter
%% PartyIdentification26 recursion level 1 with max 1
class PartyIdentification26{
    Name IsoMax70Text
}
PartyIdentification26 *-- "0..1" GenericIdentification4 : ProprietaryIdentification
PartyIdentification26 *-- "1..1" PostalAddress5 : PostalAddress
%% PostalAddress5 recursion level 1 with max 1
class PostalAddress5{
    StreetName IsoMax70Text
    PostCodeIdentification IsoMax16Text
    TownName IsoMax35Text
    CountrySubDivision IsoMax35Text
    Country CountryCode
}
%% SingleTransport3 recursion level 1 with max 1
SingleTransport3 *-- "0..1" TransportByAir2 : TransportByAir
SingleTransport3 *-- "0..1" TransportBySea4 : TransportBySea
SingleTransport3 *-- "0..1" TransportByRoad2 : TransportByRoad
SingleTransport3 *-- "0..1" TransportByRail2 : TransportByRail
%% IPartyIdentification29Choice recursion level 1 with max 1
%% PostalAddress5 recursion level 1 with max 1
class PostalAddress5{
    StreetName IsoMax70Text
    PostCodeIdentification IsoMax16Text
    TownName IsoMax35Text
    CountrySubDivision IsoMax35Text
    Country CountryCode
}
  

InsuranceDataSet1 members

Member name Description Data Type / Multiplicity
DataSetIdentification Identifies the insurancedata set. DocumentIdentification1 - Required 1..1
Issuer Issuer of the certificate, typically the insurance company or its agent. PartyIdentification26 - Required 1..1
IssueDate Issue date of the document. IsoISODate - Required 1..1
EffectiveDate Date upon which cover under an insurance policy becomes effective. IsoISODate - Optional 0..1
PlaceOfIssue Place where the insurance certificate was issued. PostalAddress5 - Optional 0..1
InsuranceDocumentIdentification Unique identifier of the document. IsoMax35Text - Required 1..1
Transport Transport information relative to the goods that are insured under the insurance policy. SingleTransport3 - Optional 0..1
InsuredAmount Value of the goods as insured under the insurance policy. IsoCurrencyAndAmount - Required 1..1
InsuredGoodsDescription Information about the goods and/or services of a trade transaction. IsoMax70Text - Optional 0..1
InsuranceConditions Description of the conditions and exclusion clauses under which insurance is granted. IsoMax350Text - Unknown 0..0
InsuranceClauses Standard insurance clauses defined by the Institute of London Underwriters (or the American Institute of marine Underwriters). InsuranceClauses1Code - Unknown 0..0
Assured Party that is covered under the assurance policy. IPartyIdentification29Choice - Required 1..1
ClaimsPayableAt Place where claims under the insurance policy will be paid. PostalAddress5 - Required 1..1
ClaimsPayableIn Currency in which claims, if valid, will be paid. CurrencyCode - Optional 0..1

CertificateDataSet building block

Certificate information that has been submitted to the matching application by the other party. Formal document used to record a fact and used as proof of the fact, in the context of a commercial trade transaction. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% CertificateDataSet2 recursion level 0 with max 1
class CertificateDataSet2{
    CertificateType TradeCertificateType1Code
    IssueDate IsoISODate
    AuthorisedInspectorIndicator IsoYesNoIndicator
    CertificateIdentification IsoMax35Text
    GoodsDescription IsoMax70Text
    AdditionalInformation IsoMax350Text
}
CertificateDataSet2 *-- "1..1" DocumentIdentification1 : DataSetIdentification
CertificateDataSet2 *-- "0..0" LineItemAndPOIdentification1 : LineItem
CertificateDataSet2 *-- "1..1" ICertifiedCharacteristics2Choice : CertifiedCharacteristics
CertificateDataSet2 *-- "0..1" PostalAddress5 : PlaceOfIssue
CertificateDataSet2 *-- "1..1" PartyIdentification26 : Issuer
CertificateDataSet2 *-- "0..1" DatePeriodDetails : InspectionDate
CertificateDataSet2 *-- "0..1" SingleTransport3 : Transport
CertificateDataSet2 *-- "0..1" PartyIdentification26 : Consignor
CertificateDataSet2 *-- "0..1" PartyIdentification26 : Consignee
CertificateDataSet2 *-- "0..1" PartyIdentification26 : Manufacturer
%% DocumentIdentification1 recursion level 1 with max 1
class DocumentIdentification1{
    Identification IsoMax35Text
    Version IsoNumber
}
DocumentIdentification1 *-- "1..1" BICIdentification1 : Submitter
%% LineItemAndPOIdentification1 recursion level 1 with max 1
class LineItemAndPOIdentification1{
    LineItemIdentification IsoMax70Text
}
LineItemAndPOIdentification1 *-- "1..1" DocumentIdentification7 : PurchaseOrderReference
%% ICertifiedCharacteristics2Choice recursion level 1 with max 1
%% PostalAddress5 recursion level 1 with max 1
class PostalAddress5{
    StreetName IsoMax70Text
    PostCodeIdentification IsoMax16Text
    TownName IsoMax35Text
    CountrySubDivision IsoMax35Text
    Country CountryCode
}
%% PartyIdentification26 recursion level 1 with max 1
class PartyIdentification26{
    Name IsoMax70Text
}
PartyIdentification26 *-- "0..1" GenericIdentification4 : ProprietaryIdentification
PartyIdentification26 *-- "1..1" PostalAddress5 : PostalAddress
%% DatePeriodDetails recursion level 1 with max 1
class DatePeriodDetails{
    FromDate IsoISODate
    ToDate IsoISODate
}
%% SingleTransport3 recursion level 1 with max 1
SingleTransport3 *-- "0..1" TransportByAir2 : TransportByAir
SingleTransport3 *-- "0..1" TransportBySea4 : TransportBySea
SingleTransport3 *-- "0..1" TransportByRoad2 : TransportByRoad
SingleTransport3 *-- "0..1" TransportByRail2 : TransportByRail
%% PartyIdentification26 recursion level 1 with max 1
class PartyIdentification26{
    Name IsoMax70Text
}
PartyIdentification26 *-- "0..1" GenericIdentification4 : ProprietaryIdentification
PartyIdentification26 *-- "1..1" PostalAddress5 : PostalAddress
%% PartyIdentification26 recursion level 1 with max 1
class PartyIdentification26{
    Name IsoMax70Text
}
PartyIdentification26 *-- "0..1" GenericIdentification4 : ProprietaryIdentification
PartyIdentification26 *-- "1..1" PostalAddress5 : PostalAddress
%% PartyIdentification26 recursion level 1 with max 1
class PartyIdentification26{
    Name IsoMax70Text
}
PartyIdentification26 *-- "0..1" GenericIdentification4 : ProprietaryIdentification
PartyIdentification26 *-- "1..1" PostalAddress5 : PostalAddress
  

CertificateDataSet2 members

Member name Description Data Type / Multiplicity
DataSetIdentification Identifies the certificate data set. DocumentIdentification1 - Required 1..1
CertificateType Specifies the type of the certificate. TradeCertificateType1Code - Required 1..1
LineItem Specifies if the certificate data set is required in relation to specific line items, and which line items. LineItemAndPOIdentification1 - Unknown 0..0
CertifiedCharacteristics Characteristics of the goods that are certified, in the context of a commercial trade transaction. ICertifiedCharacteristics2Choice - Required 1..1
IssueDate Issue date of the document. IsoISODate - Required 1..1
PlaceOfIssue Place where the certificate was issued. PostalAddress5 - Optional 0..1
Issuer Issuer of the certificate, typically the inspection company or its agent. PartyIdentification26 - Required 1..1
InspectionDate Date(s) at which inspection of the goods took place. DatePeriodDetails - Optional 0..1
AuthorisedInspectorIndicator Indicates that the inspection has been performed by an authorised inspector. IsoYesNoIndicator - Optional 0..1
CertificateIdentification Unique identifier of the document. IsoMax35Text - Required 1..1
Transport Transport information relative to the goods that are covered by the certificate. SingleTransport3 - Optional 0..1
GoodsDescription Information about the goods and/or services of a trade transaction. IsoMax70Text - Optional 0..1
Consignor Party responsible for dispatching the goods. PartyIdentification26 - Optional 0..1
Consignee Party to whom the goods (which are the subject of the certificate) must be delivered. PartyIdentification26 - Optional 0..1
Manufacturer Manufacturer of the goods which are the subject of the certificate. PartyIdentification26 - Optional 0..1
AdditionalInformation Additional and important information that could not be captured by structured fields. IsoMax350Text - Unknown 0..0

OtherCertificateDataSet building block

Other certificate information that has been submitted to the matching application by the other party. Formal document used to record a fact and used as proof of the fact, in the context of a commercial trade transaction. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% OtherCertificateDataSet1 recursion level 0 with max 1
class OtherCertificateDataSet1{
    CertificateIdentification IsoMax35Text
    CertificateType TradeCertificateType2Code
    IssueDate IsoISODate
    CertificateInformation IsoMax350Text
}
OtherCertificateDataSet1 *-- "1..1" DocumentIdentification1 : DataSetIdentification
OtherCertificateDataSet1 *-- "1..1" PartyIdentification26 : Issuer
%% DocumentIdentification1 recursion level 1 with max 1
class DocumentIdentification1{
    Identification IsoMax35Text
    Version IsoNumber
}
DocumentIdentification1 *-- "1..1" BICIdentification1 : Submitter
%% PartyIdentification26 recursion level 1 with max 1
class PartyIdentification26{
    Name IsoMax70Text
}
PartyIdentification26 *-- "0..1" GenericIdentification4 : ProprietaryIdentification
PartyIdentification26 *-- "1..1" PostalAddress5 : PostalAddress
  

OtherCertificateDataSet1 members

Member name Description Data Type / Multiplicity
DataSetIdentification Identifies the certificate data set. DocumentIdentification1 - Required 1..1
CertificateIdentification Unique identifier of the document. IsoMax35Text - Required 1..1
CertificateType Specifies the type of the certificate. TradeCertificateType2Code - Required 1..1
IssueDate Issue date of the document. IsoISODate - Required 1..1
Issuer Issuer of the certificate, typically the inspection company or its agent. PartyIdentification26 - Required 1..1
CertificateInformation Additional and important information that could not be captured by structured fields. IsoMax350Text - Unknown 0..0

RequestForAction building block

Next processing step required. Specifies the event that require an action from one of the parties to the trade transaction. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% PendingActivity2 recursion level 0 with max 1
class PendingActivity2{
    Type Action2Code
    Description IsoMax140Text
}
  

PendingActivity2 members

Member name Description Data Type / Multiplicity
Type Code which specifies the next course of action that the receiver of the message must take. Action2Code - Required 1..1
Description Further information on the course of action that the receiver of the message must take. IsoMax140Text - Optional 0..1

Extensibility and generalization considerations

To facilitate generalized design patterns in the system, the ForwardDataSetSubmissionReportV04 implementation follows a specific implementaiton pattern. First of all, ForwardDataSetSubmissionReportV04 impleemnts IOuterRecord indicating it is the outermost logical part of the message definition. Like all message wrappers, ForwardDataSetSubmissionReportV04Document implements IOuterDocument. Because ForwardDataSetSubmissionReportV04 implements IOuterDocument, it is a suitable template parameter for IOuterDocument, and causes the internal ‘Message’ to be of type ForwardDataSetSubmissionReportV04.

classDiagram
    class IOuterRecord
    ForwardDataSetSubmissionReportV04 --|> IOuterRecord : Implements
    ForwardDataSetSubmissionReportV04Document --|> IOuterDocument~ForwardDataSetSubmissionReportV04~ : Implements
    class IOuterDocument~ForwardDataSetSubmissionReportV04~ {
        ForwardDataSetSubmissionReportV04 Message
     }
  

Document wrapper for serialization

The only real purpose ForwardDataSetSubmissionReportV04Document serves is to cause the document to be serialized into the ‘urn:iso:std:iso:20022:tech:xsd:tsmt.017.001.04’ namespace. Therefore, it will probably be the usual practice to build the message and construct this wrapper at the last minute using ForwardDataSetSubmissionReportV04.ToDocument() method. The returned ForwardDataSetSubmissionReportV04Document value will serialize correctly according to ISO 20022 standards.

classDiagram
    ForwardDataSetSubmissionReportV04Document *-- ForwardDataSetSubmissionReportV04 : 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.017.001.04">
    <FwdDataSetSubmissnRpt>
        <RptId>
            <!-- ReportIdentification inner content -->
        </RptId>
        <RltdTxRefs>
            <!-- RelatedTransactionReferences inner content -->
        </RltdTxRefs>
        <CmonSubmissnRef>
            <!-- CommonSubmissionReference inner content -->
        </CmonSubmissnRef>
        <Submitr>
            <!-- Submitter inner content -->
        </Submitr>
        <BuyrBk>
            <!-- BuyerBank inner content -->
        </BuyrBk>
        <SellrBk>
            <!-- SellerBank inner content -->
        </SellrBk>
        <ComrclDataSet>
            <!-- CommercialDataSet inner content -->
        </ComrclDataSet>
        <TrnsprtDataSet>
            <!-- TransportDataSet inner content -->
        </TrnsprtDataSet>
        <InsrncDataSet>
            <!-- InsuranceDataSet inner content -->
        </InsrncDataSet>
        <CertDataSet>
            <!-- CertificateDataSet inner content -->
        </CertDataSet>
        <OthrCertDataSet>
            <!-- OtherCertificateDataSet inner content -->
        </OthrCertDataSet>
        <ReqForActn>
            <!-- RequestForAction inner content -->
        </ReqForActn>
    </FwdDataSetSubmissnRpt>
</Document>

Data from ISO specification

This is the technical data from the specification document.

<messageDefinition
  xmi:id="_2hJwodQrEeK0PPbKncCqzA"
  nextVersions="_kTZ6EQgGEeSeS5xdjFfOTw"
  previousVersion="_oieUONE8Ed-BzquC8wXy7w_403319045"
  name="ForwardDataSetSubmissionReportV04"
  definition="Scope&#xD;&#xA;The ForwardDataSetSubmissionReport message is sent by the matching application to the counterparty(ies) of the submitter of data sets.&#xD;&#xA;This message is used to pass on information related to the purchasing agreement(s) covered by the transaction(s) referred to in the message.&#xD;&#xA;Usage&#xD;&#xA;The ForwardDataSetSubmission message can be sent by the matching application to forward the details of a DataSetSubmission message that it has obtained."
  registrationStatus="Registered"
  messageSet="_wRx2yk2rEeG_I4xRYCA_7g _urpIICeJEeOCeO5e7islRQ"
  xmlTag="FwdDataSetSubmissnRpt"
  rootElement="Document"
  xmlns:xmi="http://www.omg.org/XMI">
  <doclet
    xmi:id="_2sLU4NQrEeK0PPbKncCqzA"
    type="purpose" />
  <messageBuildingBlock
    xmi:id="_2hJwo9QrEeK0PPbKncCqzA"
    nextVersions="_kTZ6FQgGEeSeS5xdjFfOTw"
    previousVersion="_oieUOdE8Ed-BzquC8wXy7w_403319072"
    name="ReportIdentification"
    definition="Identifies the report."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="1"
    xmlTag="RptId"
    complexType="_Q7pG5Np-Ed-ak6NoX_4Aeg_-967008570" />
  <messageBuildingBlock
    xmi:id="_2hJwpdQrEeK0PPbKncCqzA"
    nextVersions="_kTZ6FwgGEeSeS5xdjFfOTw"
    previousVersion="_oioFMNE8Ed-BzquC8wXy7w_403320811"
    name="RelatedTransactionReferences"
    definition="Identifies the transactions that this submission relates to and provides associated information."
    registrationStatus="Provisionally Registered"
    minOccurs="1"
    xmlTag="RltdTxRefs"
    complexType="_RaCTGNp-Ed-ak6NoX_4Aeg_-1149247875" />
  <messageBuildingBlock
    xmi:id="_2hJwp9QrEeK0PPbKncCqzA"
    nextVersions="_kTZ6GQgGEeSeS5xdjFfOTw"
    previousVersion="_oioFMdE8Ed-BzquC8wXy7w_-1228245791"
    name="CommonSubmissionReference"
    definition="This reference must be used for all data sets belonging to the same submission group."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="1"
    xmlTag="CmonSubmissnRef"
    complexType="_P-ile9p-Ed-ak6NoX_4Aeg_745508310" />
  <messageBuildingBlock
    xmi:id="_2hJwqdQrEeK0PPbKncCqzA"
    nextVersions="_kTZ6GwgGEeSeS5xdjFfOTw"
    previousVersion="_oioFMtE8Ed-BzquC8wXy7w_397445842"
    name="Submitter"
    definition="The financial institution that has submitted the data sets to the matching engine."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="1"
    xmlTag="Submitr"
    complexType="_QEp0kNp-Ed-ak6NoX_4Aeg_792527554" />
  <messageBuildingBlock
    xmi:id="_2hJwq9QrEeK0PPbKncCqzA"
    nextVersions="_kTZ6HQgGEeSeS5xdjFfOTw"
    previousVersion="_oioFM9E8Ed-BzquC8wXy7w_403320313"
    name="BuyerBank"
    definition="The financial institution of the buyer, uniquely identified by its BIC."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="1"
    xmlTag="BuyrBk"
    complexType="_QEp0kNp-Ed-ak6NoX_4Aeg_792527554" />
  <messageBuildingBlock
    xmi:id="_2hJwrdQrEeK0PPbKncCqzA"
    nextVersions="_kTZ6HwgGEeSeS5xdjFfOTw"
    previousVersion="_oioFNNE8Ed-BzquC8wXy7w_403320018"
    name="SellerBank"
    definition="The financial institution of the seller, uniquely identified by its BIC."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="1"
    xmlTag="SellrBk"
    complexType="_QEp0kNp-Ed-ak6NoX_4Aeg_792527554" />
  <messageBuildingBlock
    xmi:id="_2hJwr9QrEeK0PPbKncCqzA"
    nextVersions="_kTZ6IQgGEeSeS5xdjFfOTw"
    previousVersion="_oioFNdE8Ed-BzquC8wXy7w_403319443"
    name="CommercialDataSet"
    definition="Commercial information that has been submitted to the matching application by the other party."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="0"
    xmlTag="ComrclDataSet"
    complexType="_kPbooRVZEeOCqpkCrPgk4g" />
  <messageBuildingBlock
    xmi:id="_2hJwsdQrEeK0PPbKncCqzA"
    nextVersions="_kTZ6IwgGEeSeS5xdjFfOTw"
    previousVersion="_oioFNtE8Ed-BzquC8wXy7w_403319768"
    name="TransportDataSet"
    definition="Transport information that has been submitted to the matching application by the other party."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="0"
    xmlTag="TrnsprtDataSet"
    complexType="_LhNqEdQsEeK0PPbKncCqzA" />
  <messageBuildingBlock
    xmi:id="_2hJws9QrEeK0PPbKncCqzA"
    nextVersions="_kTZ6JQgGEeSeS5xdjFfOTw"
    previousVersion="_oioFN9E8Ed-BzquC8wXy7w_1316682998"
    name="InsuranceDataSet"
    definition="Insurance information that has been submitted to the matching application by the other party."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="0"
    xmlTag="InsrncDataSet"
    complexType="_Tm2v9tp-Ed-ak6NoX_4Aeg_888710434" />
  <messageBuildingBlock
    xmi:id="_2hJwtdQrEeK0PPbKncCqzA"
    nextVersions="_kTZ6JwgGEeSeS5xdjFfOTw"
    previousVersion="_oixPINE8Ed-BzquC8wXy7w_1650995885"
    name="CertificateDataSet"
    definition="Certificate information that has been submitted to the matching application by the other party."
    registrationStatus="Provisionally Registered"
    minOccurs="0"
    xmlTag="CertDataSet"
    complexType="_2LOxkTANEeOKib24wnHaFg" />
  <messageBuildingBlock
    xmi:id="_2hJwt9QrEeK0PPbKncCqzA"
    nextVersions="_kTZ6KQgGEeSeS5xdjFfOTw"
    previousVersion="_oixPIdE8Ed-BzquC8wXy7w_1469713115"
    name="OtherCertificateDataSet"
    definition="Other certificate information that has been submitted to the matching application by the other party."
    registrationStatus="Provisionally Registered"
    minOccurs="0"
    xmlTag="OthrCertDataSet"
    complexType="_Tncl2dp-Ed-ak6NoX_4Aeg_-105876723" />
  <messageBuildingBlock
    xmi:id="_2hJwudQrEeK0PPbKncCqzA"
    nextVersions="_kTZ6KwgGEeSeS5xdjFfOTw"
    previousVersion="_oixPItE8Ed-BzquC8wXy7w_403319846"
    name="RequestForAction"
    definition="Next processing step required."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="0"
    xmlTag="ReqForActn"
    complexType="_RaowBtp-Ed-ak6NoX_4Aeg_-888447978" />
  <messageDefinitionIdentifier
    businessArea="tsmt"
    messageFunctionality="017"
    flavour="001"
    version="04" />
</messageDefinition>

ISO Building Blocks

The following items are used as building blocks to construct this message.