PartyRegistrationAndGuaranteeRequestV01

tsin.009.001.01

The message PartyRegistrationAndGuaranteeRequest is sent by a factoring client either to a financial service or a guarantee issuer. The message can also be sent from a financial service to a guarantee issuer. Furthermore, the message can be sent to an interested party for example a fiscal authority. When the message is sent to a guarantee issuer, the factoring client or financial service provider requests a guarantee for the factoring agreement concerning the indicated trade party. When the message is sent to a financial service, the financial client requests an agreement to execute assignments of financial items. The financial client may request the guarantee amount to be obtained in case of insolvency of the trade partner for a corresponding account receivable directly from the financial service. Alternatively and depending on the contractual and product definition, the financial client may be required to include a copy of a guarantee status received from a guarantee issuer. 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
%% PartyRegistrationAndGuaranteeRequestV01 recursion level 0 with max 0
class PartyRegistrationAndGuaranteeRequestV01{
    AgreementCount IsoMax15NumericText
    ItemCount IsoMax15NumericText
    ControlSum IsoDecimalNumber
}
PartyRegistrationAndGuaranteeRequestV01 *-- "1..1" BusinessLetter1 : Header
PartyRegistrationAndGuaranteeRequestV01 *-- "1..1" FinancingAgreementList1 : AgreementList
PartyRegistrationAndGuaranteeRequestV01 *-- "0..1" EncapsulatedBusinessMessage1 : AttachedMessage
  

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

Header building block

Set of characteristics that unambiguously identify the request, 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

AgreementList building block

List of agreements. Defines a list of party management registration and guarantee requests. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% FinancingAgreementList1 recursion level 0 with max 1
class FinancingAgreementList1{
    Identifier IsoMax35Text
    Date IsoISODate
    ItemCount IsoMax15NumericText
    ControlSum IsoDecimalNumber
    AdditionalInformation IsoMax2000Text
}
FinancingAgreementList1 *-- "0..0" QualifiedDocumentInformation1 : RelatedDocument
FinancingAgreementList1 *-- "1..1" QualifiedPartyIdentification1 : AgreementRequestor
FinancingAgreementList1 *-- "1..1" QualifiedPartyIdentification1 : AgreementResponder
FinancingAgreementList1 *-- "1..1" QualifiedPartyIdentification1 : GuaranteeApplicant
FinancingAgreementList1 *-- "1..1" QualifiedPartyIdentification1 : GuaranteeBeneficiary
FinancingAgreementList1 *-- "1..1" QualifiedPartyIdentification1 : GuaranteeIssuer
FinancingAgreementList1 *-- "0..0" FinancingNotificationParties1 : NotificationInformation
FinancingAgreementList1 *-- "1..0" FinancingAgreementItem1 : Item
FinancingAgreementList1 *-- "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
%% 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
%% FinancingNotificationParties1 recursion level 1 with max 1
FinancingNotificationParties1 *-- "1..1" QualifiedPartyIdentification1 : NotifyingParty
FinancingNotificationParties1 *-- "1..1" QualifiedPartyIdentification1 : NotificationReceiver
FinancingNotificationParties1 *-- "0..0" QualifiedPartyIdentification1 : AcknowledgementReceiver
%% FinancingAgreementItem1 recursion level 1 with max 1
class FinancingAgreementItem1{
    ItemAction AgreementItemAction1Code
    PaymentInstrument PaymentInstrumentCode
    Rating IsoYesNoIndicator
    ReopenIndication IsoYesNoIndicator
    AdditionalInformation IsoMax2000Text
}
FinancingAgreementItem1 *-- "1..1" FinancialItemParameters1 : ItemContext
FinancingAgreementItem1 *-- "0..1" ValidationStatusInformation1 : ValidationStatusInformation
FinancingAgreementItem1 *-- "0..0" GuaranteeDetails1 : Guarantee
FinancingAgreementItem1 *-- "0..1" ValidationStatusInformation1 : GuaranteeStatus
FinancingAgreementItem1 *-- "0..1" QualifiedDocumentInformation1 : RelatedGuaranteeLetter
FinancingAgreementItem1 *-- "0..0" QualifiedDocumentInformation1 : AssociatedDocument
%% ValidationStatusInformation1 recursion level 1 with max 1
class ValidationStatusInformation1{
    Status TechnicalValidationStatus1Code
    AdditionalStatusReasonInformation IsoMax105Text
}
ValidationStatusInformation1 *-- "0..1" IStatusReason4Choice : StatusReason
  

FinancingAgreementList1 members

Member name Description Data Type / Multiplicity
Identifier Identification assigned to unambiguously identify the agreement list. IsoMax35Text - Required 1..1
Date Creation date of this list. IsoISODate - Required 1..1
RelatedDocument Reference to related document. QualifiedDocumentInformation1 - Unknown 0..0
AgreementRequestor Requestor of the agreement(s). QualifiedPartyIdentification1 - Required 1..1
AgreementResponder Party the agreement(s) are (to be) made with. QualifiedPartyIdentification1 - Required 1..1
GuaranteeApplicant Applicant of the guarantee. QualifiedPartyIdentification1 - Required 1..1
GuaranteeBeneficiary Beneficiary of the guarantee. QualifiedPartyIdentification1 - Required 1..1
GuaranteeIssuer Party that issues the guarantee. QualifiedPartyIdentification1 - Required 1..1
NotificationInformation Party or parties to notify and to acknowledge the agreement. FinancingNotificationParties1 - Unknown 0..0
Item List of agreement items. FinancingAgreementItem1 - 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
AdditionalInformation Additional proprietary formal information concerning the list. IsoMax2000Text - Optional 0..1
ValidationStatusInformation Validation status of the list. ValidationStatusInformation1 - Optional 0..1

AgreementCount building block

Number of agreement lists as control value. 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 PartyRegistrationAndGuaranteeRequestV01 implementation follows a specific implementaiton pattern. First of all, PartyRegistrationAndGuaranteeRequestV01 impleemnts IOuterRecord indicating it is the outermost logical part of the message definition. Like all message wrappers, PartyRegistrationAndGuaranteeRequestV01Document implements IOuterDocument. Because PartyRegistrationAndGuaranteeRequestV01 implements IOuterDocument, it is a suitable template parameter for IOuterDocument, and causes the internal ‘Message’ to be of type PartyRegistrationAndGuaranteeRequestV01.

classDiagram
    class IOuterRecord
    PartyRegistrationAndGuaranteeRequestV01 --|> IOuterRecord : Implements
    PartyRegistrationAndGuaranteeRequestV01Document --|> IOuterDocument~PartyRegistrationAndGuaranteeRequestV01~ : Implements
    class IOuterDocument~PartyRegistrationAndGuaranteeRequestV01~ {
        PartyRegistrationAndGuaranteeRequestV01 Message
     }
  

Document wrapper for serialization

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

classDiagram
    PartyRegistrationAndGuaranteeRequestV01Document *-- PartyRegistrationAndGuaranteeRequestV01 : 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:tsin.009.001.01">
    <PtyRegnAndGrntReq>
        <Hdr>
            <!-- Header inner content -->
        </Hdr>
        <AgrmtList>
            <!-- AgreementList inner content -->
        </AgrmtList>
        <AgrmtCnt>
            <!-- AgreementCount inner content -->
        </AgrmtCnt>
        <ItmCnt>
            <!-- ItemCount inner content -->
        </ItmCnt>
        <CtrlSum>
            <!-- ControlSum inner content -->
        </CtrlSum>
        <AttchdMsg>
            <!-- AttachedMessage inner content -->
        </AttchdMsg>
    </PtyRegnAndGrntReq>
</Document>

Data from ISO specification

This is the technical data from the specification document.

<messageDefinition
  xmi:id="_OTgzNDYz-AOSNFX-8224506"
  name="PartyRegistrationAndGuaranteeRequestV01"
  definition="The message PartyRegistrationAndGuaranteeRequest is sent by a factoring client either to a financial service or a guarantee issuer. The message can also be sent from a financial service to a guarantee issuer. Furthermore, the message can be sent to an interested party for example a fiscal authority. When the message is sent to a guarantee issuer, the factoring client or financial service provider requests a guarantee for the factoring agreement concerning the indicated trade party. When the message is sent to a financial service, the financial client requests an agreement to execute assignments of financial items. The financial client may request the guarantee amount to be obtained in case of insolvency of the trade partner for a corresponding account receivable directly from the financial service. Alternatively and depending on the contractual and product definition, the financial client may be required to include a copy of a guarantee status received from a guarantee issuer.&#xD;&#xA;The message can carry digital signatures if required by context."
  registrationStatus="Registered"
  messageSet="_ODg4MjY3-AOSNFX-3856349"
  xmlTag="PtyRegnAndGrntReq"
  rootElement="Document"
  xmlns:xmi="http://www.omg.org/XMI">
  <messageBuildingBlock
    xmi:id="_OTgzNDY0-AOSNFX-8224506"
    name="Header"
    definition="Set of characteristics that unambiguously identify the request, common parameters, documents and identifications."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="1"
    xmlTag="Hdr"
    complexType="_OTgzMTkz-AOSNFX-8224490" />
  <messageBuildingBlock
    xmi:id="_OTgzNDY1-AOSNFX-8224506"
    name="AgreementList"
    definition="List of agreements."
    registrationStatus="Provisionally Registered"
    minOccurs="1"
    xmlTag="AgrmtList"
    complexType="_OTgzMTk1-AOSNFX-8224490" />
  <messageBuildingBlock
    xmi:id="_OTgzNDY2-AOSNFX-8224506"
    name="AgreementCount"
    definition="Number of agreement lists as control value."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="0"
    xmlTag="AgrmtCnt"
    simpleType="_YXbjAtp-Ed-ak6NoX_4Aeg_-1365324848" />
  <messageBuildingBlock
    xmi:id="_OTgzNDY3-AOSNFX-8224506"
    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="_OTgzNDY4-AOSNFX-8224506"
    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="_OTgzNDY5-AOSNFX-8224506"
    name="AttachedMessage"
    definition="Referenced or related business message."
    registrationStatus="Provisionally Registered"
    minOccurs="0"
    xmlTag="AttchdMsg"
    complexType="_OTgzMTky-AOSNFX-8224490" />
  <messageDefinitionIdentifier
    businessArea="tsin"
    messageFunctionality="009"
    flavour="001"
    version="01" />
</messageDefinition>

ISO Building Blocks

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