InvoiceFinancingRequestStatusV01

tsin.002.001.01

Scope The InvoiceFinancingRequestStatus message is sent by the First Agent to the Financing Requestor, alternatively through an Intermediary Agent (relay scenario). It is used to inform the Financing Requestor about the positive or negative status of a financing request or a financing cancellation request. Usage The InvoiceFinancingRequestStatus message flows from the First Agent to the Financing Requestor (alternatively through an Intermediary Agent) to provide status information about a request previously sent. Its usage will always be governed by a bilateral agreement between the First Agent and the Financing Requestor. The InvoiceFinancingRequestStatus message can be used two fold:

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
%% InvoiceFinancingRequestStatusV01 recursion level 0 with max 0
InvoiceFinancingRequestStatusV01 *-- "1..1" MessageIdentification1 : StatusIdentification
InvoiceFinancingRequestStatusV01 *-- "1..1" OriginalRequestInformation1 : OriginalRequestInformationAndStatus
InvoiceFinancingRequestStatusV01 *-- "0..1" FinancingInformationAndStatus1 : FinancingInformationAndStatus
  

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

StatusIdentification building block

General information that unambiguously identify the invoice financing status report, such as status identification, creation date time. 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

OriginalRequestInformationAndStatus building block

Set of summary information that unambiguously identifies the original invoice financing (or cancellation) request to which the status is referred. The status of the original request is also given in this block. . Set of characteristics that unambiguously identify the original global invoice financing request. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% OriginalRequestInformation1 recursion level 0 with max 1
class OriginalRequestInformation1{
    Identification IsoMax35Text
    CreationDateTime IsoISODateTime
}
OriginalRequestInformation1 *-- "0..1" PartyIdentificationAndAccount6 : FinancingRequestor
OriginalRequestInformation1 *-- "0..1" FinancialInstitutionIdentification6 : IntermediaryAgent
OriginalRequestInformation1 *-- "0..1" FinancialInstitutionIdentification6 : FirstAgent
OriginalRequestInformation1 *-- "1..1" ValidationStatusInformation1 : ValidationStatusInformation
OriginalRequestInformation1 *-- "0..1" CancellationStatusInformation1 : CancellationStatusInformation
%% PartyIdentificationAndAccount6 recursion level 1 with max 1
PartyIdentificationAndAccount6 *-- "1..1" PartyIdentification25 : PartyIdentification
PartyIdentificationAndAccount6 *-- "0..1" CashAccount7 : CreditAccount
PartyIdentificationAndAccount6 *-- "0..1" CashAccount7 : FinancingAccount
%% FinancialInstitutionIdentification6 recursion level 1 with max 1
class FinancialInstitutionIdentification6{
    BIC IsoBICIdentifier
}
FinancialInstitutionIdentification6 *-- "0..1" IClearingSystemMemberIdentification2Choice : ClearingSystemMemberIdentification
FinancialInstitutionIdentification6 *-- "0..1" GenericIdentification4 : ProprietaryIdentification
%% FinancialInstitutionIdentification6 recursion level 1 with max 1
class FinancialInstitutionIdentification6{
    BIC IsoBICIdentifier
}
FinancialInstitutionIdentification6 *-- "0..1" IClearingSystemMemberIdentification2Choice : ClearingSystemMemberIdentification
FinancialInstitutionIdentification6 *-- "0..1" GenericIdentification4 : ProprietaryIdentification
%% ValidationStatusInformation1 recursion level 1 with max 1
class ValidationStatusInformation1{
    Status TechnicalValidationStatus1Code
    AdditionalStatusReasonInformation IsoMax105Text
}
ValidationStatusInformation1 *-- "0..1" IStatusReason4Choice : StatusReason
%% CancellationStatusInformation1 recursion level 1 with max 1
class CancellationStatusInformation1{
    Status CancellationStatus4Code
    AdditionalStatusReasonInformation IsoMax105Text
}
CancellationStatusInformation1 *-- "0..1" IStatusReason4Choice : StatusReason
  

OriginalRequestInformation1 members

Member name Description Data Type / Multiplicity
Identification Unique and unambiguous identifier of the original request message as assigned by the original sending party. IsoMax35Text - Required 1..1
CreationDateTime Date and time at which the original request message was created. IsoISODateTime - Required 1..1
FinancingRequestor Party that requests the invoice financing, on behalf of a creditor, as indicated in the original request message. PartyIdentificationAndAccount6 - Optional 0..1
IntermediaryAgent Financial institution that receives the request from the financing requestor and forwards it to the first agent for execution, as indicated in the original request message. FinancialInstitutionIdentification6 - Optional 0..1
FirstAgent Financial institution of financing requestor to which an invoice financing request is addressed, as indicated in the original request message. FinancialInstitutionIdentification6 - Optional 0..1
ValidationStatusInformation Information about the validation status of the request message. ValidationStatusInformation1 - Required 1..1
CancellationStatusInformation Information on the business status of the cancellation. CancellationStatusInformation1 - Optional 0..1

FinancingInformationAndStatus building block

Information concerning the business status of a financing request. Financing information and status. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% FinancingInformationAndStatus1 recursion level 0 with max 1
FinancingInformationAndStatus1 *-- "1..1" FinancingAllowedSummary1 : FinancingAllowedSummary
FinancingInformationAndStatus1 *-- "1..0" InvoiceFinancingDetails1 : InvoiceFinancingDetails
%% FinancingAllowedSummary1 recursion level 1 with max 1
class FinancingAllowedSummary1{
    FinancedItemNumber IsoNumber
    TotalAcceptedItemsAmount IsoActiveCurrencyAndAmount
    AppliedPercentage IsoPercentageRate
    TotalFinancedAmount IsoActiveCurrencyAndAmount
}
FinancingAllowedSummary1 *-- "0..1" FinancingDateDetails1 : FinancingDateDetails
FinancingAllowedSummary1 *-- "0..1" CashAccount7 : CreditAccount
FinancingAllowedSummary1 *-- "0..1" CashAccount7 : FinancingAccount
%% InvoiceFinancingDetails1 recursion level 1 with max 1
InvoiceFinancingDetails1 *-- "1..1" OriginalInvoiceInformation1 : OriginalInvoiceInformation
InvoiceFinancingDetails1 *-- "0..1" PartyIdentification8 : Supplier
InvoiceFinancingDetails1 *-- "1..1" FinancingResult1 : InvoiceFinancingResult
InvoiceFinancingDetails1 *-- "0..0" InstalmentFinancingInformation1 : InstalmentFinancingInformation
  

FinancingInformationAndStatus1 members

Member name Description Data Type / Multiplicity
FinancingAllowedSummary Specifies summary information about invoices/instalments financed, such as total amount financed, number of single requests accepted. FinancingAllowedSummary1 - Required 1..1
InvoiceFinancingDetails Specifies detailed information about single invoice/instalment financing result, such as result of request (financed or not financed), amount, percentage applied. InvoiceFinancingDetails1 - Unknown 1..0

Extensibility and generalization considerations

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

classDiagram
    class IOuterRecord
    InvoiceFinancingRequestStatusV01 --|> IOuterRecord : Implements
    InvoiceFinancingRequestStatusV01Document --|> IOuterDocument~InvoiceFinancingRequestStatusV01~ : Implements
    class IOuterDocument~InvoiceFinancingRequestStatusV01~ {
        InvoiceFinancingRequestStatusV01 Message
     }
  

Document wrapper for serialization

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

classDiagram
    InvoiceFinancingRequestStatusV01Document *-- InvoiceFinancingRequestStatusV01 : 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.002.001.01">
    <InvcFincgReqSts>
        <StsId>
            <!-- StatusIdentification inner content -->
        </StsId>
        <OrgnlReqInfAndSts>
            <!-- OriginalRequestInformationAndStatus inner content -->
        </OrgnlReqInfAndSts>
        <FincgInfAndSts>
            <!-- FinancingInformationAndStatus inner content -->
        </FincgInfAndSts>
    </InvcFincgReqSts>
</Document>

Data from ISO specification

This is the technical data from the specification document.

<messageDefinition
  xmi:id="_BUZXMH1LEeCF8NjrBemJWQ_1543411923"
  name="InvoiceFinancingRequestStatusV01"
  definition="Scope&#xD;&#xA;The InvoiceFinancingRequestStatus message is sent by the First Agent to the Financing Requestor, alternatively through an Intermediary Agent (relay scenario). It is used to inform the Financing Requestor about the positive or negative status of a financing request or a financing cancellation request.&#xD;&#xA;Usage&#xD;&#xA;The InvoiceFinancingRequestStatus message flows from the First Agent to the Financing Requestor (alternatively through an Intermediary Agent) to provide status information about a request previously sent.&#xD;&#xA;Its usage will always be governed by a bilateral agreement between the First Agent and the Financing Requestor.&#xD;&#xA;The InvoiceFinancingRequestStatus message can be used two fold:&#xD;&#xA;- to provide information about the reception status (eg rejection, acceptance) of a request message. In this case the status message is the result of a technical validation performed by the First Agent on the request message received;&#xD;&#xA;- to inform the Financing Requestor about the business status of the financing process initiated. In this case the First Agent can:&#xD;&#xA;* communicate that a single financing request has been granted, is pending or has not been granted at all;&#xD;&#xA;* inform that a financing cancellation request has been allowed or denied.&#xD;&#xA;Note.&#xD;&#xA;If the Financing Requestor requests financing for more than one instalment related to the same invoice, the First Agent can decide to finance only some of the instalments. In such case the status message contains details and status of every single instalment (financed, not financed).&#xD;&#xA;The message can be used in a direct or in a relay scenario:&#xD;&#xA;- In a direct scenario, the message is sent directly by the First Agent to the Financing Requestor;&#xD;&#xA;- In a relay scenario, the message is sent first by the First Agent to the Intermediary Agent, who forwards it to the Financing Requestor.&#xD;&#xA;The InvoiceFinancingRequestStatus message refers to the original request(s) by means of references and a set of data elements included into the original request."
  registrationStatus="Registered"
  messageSet="_wRx2yE2rEeG_I4xRYCA_7g"
  xmlTag="InvcFincgReqSts"
  rootElement="Document"
  xmlns:xmi="http://www.omg.org/XMI">
  <constraint
    xmi:id="_BUZXNH1LEeCF8NjrBemJWQ_-571610005"
    name="Request1Rule"
    definition="If the status message refers to the technical validation result&#xA;related to a financing request, then only Status Identification and&#xA;Original Request Information blocks must be present.&#xA;If the status message refers to the business status related to a financing request, then the FinancingInformationAndStatus block is mandatory."
    registrationStatus="Provisionally Registered" />
  <constraint
    xmi:id="_BUZXN31LEeCF8NjrBemJWQ_-229907851"
    name="Cancellation1Rule"
    definition="If the status message refers to the business status of cancellation request, then only Status Identification and Original Request Information must be present."
    registrationStatus="Provisionally Registered" />
  <constraint
    xmi:id="_BUjIMn1LEeCF8NjrBemJWQ_-183730453"
    name="Multiplicity1Rule"
    definition="The status message must contain one occurrence of the InvoiceFinancingDetails block for every single invoice request present into the original bulk invoice financing request message."
    registrationStatus="Provisionally Registered" />
  <messageBuildingBlock
    xmi:id="_BUZXMX1LEeCF8NjrBemJWQ_746296789"
    name="StatusIdentification"
    definition="General information that unambiguously identify the invoice financing status report, such as status identification, creation date time."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="1"
    xmlTag="StsId"
    complexType="_Q7pG5Np-Ed-ak6NoX_4Aeg_-967008570" />
  <messageBuildingBlock
    xmi:id="_BUZXMn1LEeCF8NjrBemJWQ_1550684151"
    name="OriginalRequestInformationAndStatus"
    definition="Set of summary information that unambiguously identifies the original invoice financing (or cancellation) request to which the status is referred. The status of the original request is also given in this block.&#xA;."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="1"
    xmlTag="OrgnlReqInfAndSts"
    complexType="_TiOuodp-Ed-ak6NoX_4Aeg_1502660608" />
  <messageBuildingBlock
    xmi:id="_BUZXM31LEeCF8NjrBemJWQ_740712719"
    name="FinancingInformationAndStatus"
    definition="Information concerning the business status of a financing request."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="0"
    xmlTag="FincgInfAndSts"
    complexType="_RYGZYtp-Ed-ak6NoX_4Aeg_645590457" />
  <messageDefinitionIdentifier
    businessArea="tsin"
    messageFunctionality="002"
    flavour="001"
    version="01" />
</messageDefinition>

ISO Building Blocks

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