Concepts

What Is the SWIFT Network?

SWIFT (Society for Worldwide Interbank Financial Telecommunication) and its networks provide a secure, global financial IP-based messaging platform that enables financial institutions to exchange formatted financial information and transactional data. The SWIFT networks enable you to exchange SWIFT FIN messages using the original SWIFT Transport Network (STN) or the new SWIFT Secure IP Network (SIPN).

What Is SWIFTNet?

SWIFTNet is SWIFT's advanced IP-based messaging solution, which provides an alternate method for transferring information to SWIFT. It consists of a portfolio of products and services enabling the secure and reliable communication of financial information and transactional data.

What Is SWIFTNet Link?

SWIFTNet Link (SNL) is an application programming interface that offers access to all SWIFTNet services. Business applications can use SNL with SWIFT FIN interface products such as SWIFT Alliance Access to connect to and use the SWIFTNet FIN services. Applications can use SNL directly, or with an interface product such as the SWIFT Alliance Gateway (SAG), to enable application-to-application communication over the SWIFTNet services.

SNL functionality includes messaging, security, and service management. The security and service management functions are beyond the scope of this guide and are not discussed here.

SNL Messaging Services

The messaging services that SNL supports are: SWIFTNet InterAct, SWIFTNet FileAct, SWIFTNet FIN, and SWIFTNet Browse.

Note: The Swift Module 7.1 version supports the SWIFTNet InterAct and SWIFTNet FileAct messaging services. None of the Service Pack (SP) versions support it.

SWIFTNet InterAct

SWIFTNet InterAct allows the exchange of messages between parties in synchronous mode, using the Exchange Request function, or asynchronous mode, using the Send/Wait Request function.

  • In synchronous mode, the Exchange Request function sends data to the Responder application. This function blocks the Requester application until the response is returned from the Responder and delivered to the Requester.

    The Responder SAG sends a Handle Request primitive to the Responder application, which processes it and returns a Handle Response primitive. The Responder SAG then sends the Exchange Response primitive back to the Requester application.

  • In asynchronous mode, the Send/Wait Requests function sends data. The Requester application initiates a send request to SNL. SNL accepts or rejects the request immediately, and simultaneously unblocks the Requester application so that it can perform other tasks. The message is forwarded to the destination SNL and delivered to the Responder application. The subsequent response is returned to the Requester SNL where the Requester collects it through a Wait Request.
  • The requests and responses for both Exchange and Send/Wait requests are coded in XML and passed between the communicating SNL instances over SIPN.

SWIFTNet FileAct

SWIFTNet FileAct allows the automated exchange of files, supporting both synchronous and asynchronous modes. SWIFTNet FileAct is oriented toward transferring data larger than the SWIFTNet InterAct payload can accommodate.

  • The Exchange File Request function transfers files to server applications.
  • The Handle File Request function requests that the server application receive the file transfer and send a response.
  • Both requests have an optional delivery notification primitive that acknowledges that a file has been received and transferred to a reliable storage environment.

SWIFTNet FIN

SWIFTNet FIN allows the use of the standard SNL APIs with the SWIFTNet FIN interface to do the following:

  • Sign SWIFTNet FIN messages using SWIFTNet PKI security profiles.
  • Send SWIFTNet InterAct requests that contain input messages and user acknowledgments of previously received output messages.
  • Handle SWIFTNet InterAct requests that contain output messages and SWIFTNet FIN acknowledgments of previously sent input messages.

SWIFTNet Browse

SWIFTNet Browse enables secure communication between standard browsers and web servers. SWIFTNet Browse supports the messaging functions of SWIFTNet InterAct and SWIFTNet FileAct, and request/response interactions with a web server. The message flow path in SWIFTNet Browse is identical for both SWIFTNet InterAct and SWIFTNet FileAct messages/files.

For more information, see the documentation provided by SWIFT or go to

http://www.swift.com

What Is IBM webMethods Module for SWIFT?

IBM webMethods Module for SWIFT provides message exchange over the SWIFTNet messaging services and enables you to do the following:

  • Map data easily from any source format to any target format.
  • Manage data dictionary standards and validation.
  • Monitor and control message flow.
  • Provide exception handling.
  • Archive inbound and outbound messages.

webMethods Module for SWIFT consists of two components to facilitate parsing, validation, and transport of messages: SWIFT FIN and SWIFTNet.

  • SWIFT FIN interacts with the SWIFT Network through the SWIFT Alliance Access interface (SAA).
  • SWIFTNet interacts with the SWIFT Network through the SWIFT Alliance Gateway (SAG) interface.

The following diagram illustrates the webMethods SWIFT solutions architecture.

solution architecture
Important: With payment systems of all reserve currencies adopting ISO 20022, the financial community with consensus has decided to move to Financial Institution payments and reporting. SWIFT is facilitating this community-wide adoption of the ISO 20022 Programme and moving towards adopting it.

In the SWIFT module, ISO 20022/MX messages are supported, to provide structural and semantic validation for ISO 20022/MX messages.

IBM webMethods Module for SWIFT Packages

IBM webMethods Module for SWIFT uses services and other elements included in packages that you install on Integration Server. Some of those packages contain services that are common to both the SWIFT FIN component and the SWIFTNet component, while other packages contain services that are specific to each component. The following table describes the contents of each package and the functionality that it supports.

Package Description
WmFIN Contains services used to implement and support the SWIFT FIN-compliant functionality of webMethods Module for SWIFT.
WmSWIFTCommon Contains common services that are used by other webMethods Module for SWIFT packages.
WmEstdCommonLib Contains generic services that enable you to use various webMethods eStandards Modules with Integration Server.

For a list of services that SWIFT Module uses from this package, see WmEstdCommonLib Package Services. For detailed information about those services, see IBM webMethods eStandards Modules Common Built-In Services Reference .

WmSWIFTClient Contains the elements (flow services, Java services, record descriptions, and wrapper services) that support SWIFTNet component client-side functionality.
WmSWIFTServer Contains the elements (flow services, Java services, record descriptions, and wrapper services) that support SWIFTNet component server-side functionality.
WmSWIFTSamples Contains sample services that show how to use different features of webMethods Module for SWIFT. You can also use the sample services as examples of how to create your own services.
Important: The webMethods Module for SWIFT samples only demonstrate the features of the module and must not be used in the production environment. You must delete the WmSWIFTSamples package before you go into production.

For detailed information about the contents of each package, see Configuring SWIFT Interfaces and the appendices. For information about the samples see webMethods SWIFT Module Samples Guide.

SWIFT FIN Component

The SWIFT FIN component enables Integration Server to do the following:

  • Receive inbound SWIFT FIN messages from the SWIFT network.
  • Convert SWIFT FIN messages into your back-end format and process the messages according to your settings.
  • Send SWIFT FIN messages to the SWIFT network with correct header information, according to your settings.

The SWIFT FIN component interfaces with SWIFT Alliance Access (SAA) software via MQHA, CASmf, or AFT. SAA, in turn, communicates with SNL, which sends and receives messages securely via SWIFT Secure IP Network. SAA and SNL software modules are provided by SWIFT and must be installed and configured at a customer site by a SWIFT professional or by a trained expert.

The SWIFT FIN component provides the ability to seamlessly integrate SWIFT FIN messages as webMethods documents into a solutions architecture and validate those messages at the syntax and network level. Messages sent and received by webMethods Module for SWIFT are validated at the individual field level and across the fields using network validation rules. The SWIFT FIN component also supports Market Practices among partners located in a particular market.

What Is a SWIFT FIN Message?

SWIFT FIN messages transmit financial information from one financial institution to another. These messages are classified into different message categories. There are 10 categories of FIN messages (Category 0 through Category 9), and each category relates to a particular topic. For example, Category 5 contains messages related to Securities.

Each SWIFT message is represented by a three-digit number (for example, MT 541). The MT represents SWIFT's “Message Type.” The first number (5) identifies the category to which the message belongs; the second and third numbers (41) identify the message type.

SWIFT updates the MT specifications every year. webMethods Module for SWIFT maintains these specification changes in the swiftMT and dfdMT XML files. Based on the specified version, webMethods Module for SWIFT uses the corresponding swiftMT or dfdMT files to define the IS document that is created.

For details about SWIFT specifications, see http://www.swift.com. For details about the SWIFT specification versions that webMethods Module for SWIFT supports, see IBM webMethods eStandards Modules System Requirements .

About SWIFT Message Format

All SWIFT messages must adhere to a defined format or “block structure.” There are five possible blocks within a message, each consisting of fields that provide specific information related to the block type. Blocks are distinguishable by brace delimiters that start and end each individual block. Additionally, each block begins with a block identifier (number) and a colon. The identifier indicates the block type as header, trailer, or text.

A SWIFT message may have the following five blocks:

  • 1: Basic Header Block—Mandatory. Contains basic header information. A SWIFT message always has header Block 1. No field separators are used within this block.
  • 2: Application Header Block—Contains header information about the message itself. The content of this block depends on whether it is a GPA or a FIN message. No field separators are used within this block.
  • 3: User Header Block—Contains header information for user-to-user messages only within the FIN application. This identifies the version of the message standard.
  • 4: Text Block—Contains the text of the SWIFT message. This is the “body” of the message that provides the message data. Each field within this block starts with a message tag, followed by the values for that tag, for example, 22F::MICO/A2C4E6G8/A2C4, where 22F is the message tag, and the information that follows is the value for that field. The format of this block is always the tag number, followed by a colon, and then the field values. This block begins with a carriage return and line feed and ends with a carriage return and line feed followed by a hyphen.
  • 5: Trailers Block—Contains the trailer information to indicate any special handling conditions or additional information.
Sample SWIFT FIN Message, MT 541, Receive Against Payment
{1:F01CLSAHKHHXXXX0116013185}{2:I541CLSAHKHHXXXXN}  
{3:{108:MT535 004 OF 006}}  
{4:  
:16R:GENL  
:20C::SEME//01430  
:23G:NEWM/CODU  
:98C::PREP//19991231232359  
:99B::SETT//123  
:16R:LINK  
:22F::LINK/A2C4E6G8/A2C4  
:13A::LINK//513  
:20C::PREV//x  
:16S:LINK  
:16S:GENL  
:16R:TRADDET  
:94B::TRAD//EXCH/30x  
...  
:97A::CASH//x  
:97A::SAFE//x  
:16S:OTHRPRTY-}

For more detailed information about SWIFT FIN messages, see the documentation provided by SWIFT or go to http://www.swift.com.

What Is a SWIFT MX Message?

The SWIFT FIN component also supports the SWIFT Standards MX messages. MX messages are represented using eXtensible Markup Language (XML). With MX messages, you can transport structured information using XML and specify the structure of the message. At the highest level, an MX message is categorized by its business area, represented by four letters. For example, in camt.029.001.01, “camt” specifies the Cash Management business area. The three numbers that follow the letters identify the message functionality. The next three numbers identify the Variant ID, and the last two numbers show the version number.

An MX message contains the business area specific payload. Its structure is defined by the corresponding XML schema. The MX message is wrapped as the RequestPayload within the XML envelope. This request payload also contains the ApplicationHeader. This application header contains general information, and its usage is specific to the context of the service.

Sample SWIFT MX Message

<AppHdr xmlns="urn:swift:xsd:$ahV10">  
<MsgRef>TRNREF001</MsgRef>  
<CrDate>2009-05-08T22:02:36.218+02:00</CrDate></AppHdr>  
<tns:Document xmlns:tns="urn:swift:xsd:setr.010.001.03">  
<tns:SbcptOrdrV03><tns:MsgId>  
<tns:Id>TRNREF001</tns:Id>  
<tns:CreDtTm>2007-04-25T10:10:30.000+02:00</tns:CreDtTm></tns:MsgId>  
<tns:MltplOrdrDtls><tns:InvstmtAcctDtls>  
<tns:AcctId><tns:Prtry><tns:Id>1111  
</tns:Id></tns:Prtry></tns:AcctId>  
<tns:AcctDsgnt>SMART INVESTOR</tns:AcctDsgnt>  
</tns:InvstmtAcctDtls>  
<tns:IndvOrdrDtls><tns:OrdrRef>TRNREF001</tns:OrdrRef>  
<tns:FinInstrmDtls><tns:Id><tns:ISIN>GB1234567890</tns:ISIN></tns:Id>  
</tns:FinInstrmDtls>  
<tns:GrssAmt Ccy="GBP">1050</tns:GrssAmt>  
<tns:IncmPref>CASH</tns:IncmPref>  
<tns:PhysDlvryInd>false</tns:PhysDlvryInd>  
<tns:ReqdSttlmCcy>GBP</tns:ReqdSttlmCcy>  
<tns:ReqdNAVCcy>GBP</tns:ReqdNAVCcy>  
</tns:IndvOrdrDtls></tns:MltplOrdrDtls>  
</tns:SbcptOrdrV03></tns:Document>

For information about MX messages, see SWIFT User Handbook.

SWIFT FIN Component Parts

The following parts compose and support the SWIFT FIN component:

  • The WmFIN Package

    This package contains services, mappings, and records for using webMethods Module for SWIFT with Integration Server. For a complete list of packages, see IBM webMethods Module for SWIFT Packages.

  • SWIFT Interfaces

    You can connect to SWIFT using one of the following interfaces:

    • MQHA (MQ Host Adapter)

      To communicate with SWIFT using MQHA, use the IBM webMethods Adapter for MQ. For more information about using the Adapter for MQ with webMethods Module for SWIFT, see Using Adapter for MQ to Communicate with SWIFT.

    • CASmf (Common Application Server message format)

      To communicate with SWIFT using CASmf, use the CASmf services provided in the WmFIN package. For more information about CASmf services, see Using the CASmf Services to Communicate with SWIFT

    • AFT (Automated File Transfer)

      To communicate with SWIFT using AFT, use the File Polling Listener and File Drop capabilities. For more information about using AFT with webMethods Module for SWIFT, see Using AFT to Communicate with SWIFT.

      For more information about these interfaces, see Configuring SWIFT Interfaces.

  • IBM webMethods Integration Server

    This is the underlying server of the webMethods product suite. Use the web-based user interface, Integration Server Administrator, to manage, configure, and administer all aspects of Integration Server, such as users, security, packages, and services. For more information, see IBM webMethods Integration Server Administrator’s Guide .

  • IBM webMethods B2B Trading Networks

    IBM webMethods B2B Trading Networks enables your enterprise to link with other financial institutions and marketplaces to form a business-to-business trading network. For more information about using Trading Networks, see IBM webMethods Trading Networks Administrator’s Guide .

  • IBM webMethods Designer

    IBM webMethods Designer is a design-time tool that you can use to create processes and easy-to-understand, visually-based process models. You can also use Designer to create, update, and execute services from the Package Navigator. For more information about Designer, see IBM webMethods Service Development Help .

  • IBM webMethods Monitor

    IBM webMethods Monitor allows you to manage and monitor business processes. Access Monitor functionality through the My webMethods user interface. Monitor displays information about a business process by retrieving information from the Process Audit Log. For more information about Monitor, see IBM webMethods Monitor User’s Guide

SWIFT FIN Component Architecture

The SWIFT FIN component uses either the publish and subscribe Process Engine functionality of webMethods Module for SWIFT or Trading Networks processing rules to send and receive SWIFT FIN messages. When used with Trading Networks, the SWIFT FIN component leverages the archiving, Trading Partner Agreement (TPA), and document type components of Trading Networks to work with your enterprise to exchange SWIFT FIN messages.

The following figure shows the SWIFT FIN component architecture.

When the SWIFT FIN component creates an outbound document, it formats, validates, and publishes the SWIFT message. When the SWIFT FIN component receives an inbound document, it parses, formats, validates, and publishes the message for a back-end application.

To communicate with SWIFT using SAA, there are three options:

  • Use IBM webMethods Adapter for MQ to interface with MQHA.
  • Use the CASmf services provided in the WmFIN package to interface with CASmf.
  • Use the File Polling Listener and File Drop capabilities to interface with AFT.

The following diagram illustrates the end-to-end architecture of the SWIFT FIN component messaging solution.

SWIFT FIN Component Features

The SWIFT FIN component runs on top of Integration Server and provides the following functionality:

  • Current Messages

    The component supports the following SWIFT messages:

    • The latest release of SWIFT FIN messages.
    • The SWIFT Standards MX messages.
  • Data Field Dictionary

    The SWIFT FIN component provides a data field dictionary (DFD) based on the ISO 15022 standards for SWIFT FIN messages. This DFD enables translation of a message tag number (for example, “22F::SFRE”) into a meaningful business name (for example, “Statement Frequency Indicator”). In addition, the SWIFT FIN component enables you to choose how you want to display each message in IBM webMethods Designer as follows:

    • Tag number only (for example, “22F::SFRE”)
    • Equivalent message business name only (for example, “Statement Frequency Indicator”)
    • Both the tag number and the equivalent message business name (for example, “22F::SFRE_Statement Frequency Indicator”)
    • XML data tag (for example, “22FSFRE”)
  • Message Archival

    All SWIFT FIN messages can be archived in Trading Networks.

  • SWIFT Interfaces

    The SWIFT FIN component provides out-of-box support to interface to SWIFT using MQHA, CASmf, and AFT. For more information, see Configuring SWIFT Interfaces.

  • Bank Directory Plus Validation and Searching

    The SWIFT FIN component provides support for deriving or validating data against Bank Directory Plus. Bank Directory Plus is a SWIFT directory that contains identifiers recognized by financial institutions, such as Bank Identifier Codes (BICs), International Bank Account Numbers (IBANs), and national clearing codes. Bank Directory Plus serves two main purposes:

    • To provide or validate data in international payment messages, for example to translate the beneficiary bank's BIC into national (clearing, sort) code, or validate the banks' details (such as name and address).
    • To provide or validate data in SEPA (Single Euro Payment Area) payments, for example, to derive the BIC from the IBAN if the IBAN is missing, or to validate IBAN/BIC combinations.

    For more information about the directories, see Importing Bank Directory Plus and SEPA Plus.

  • Syntax and Network Validation

    The SWIFT FIN component enables you to validate the message structure, field formats, and network rules of inbound and outbound SWIFT FIN messages. webMethods Module for SWIFT provides network validation rules for a few commonly used message types. In addition to these rules, the component enables you to create network, Market Practice, and usage validation rules for additional messages as well. For more information, see Creating Validation Rules and Working with Market Practices.

  • Market Practices

    Market Practices are specific requirements for individual markets. Using Trading Partner Agreements (TPAs), the SWIFT FIN component supports customization of SWIFT FIN messages based on specific trading partner pairs. For more information about SWIFT-related Market Practices and TPAs, see Working with Market Practices and Customizing Trading Partner Agreements.

  • Processing Rule Support

    You can use custom-created Trading Networks processing rules for each SWIFT message record. For information about creating processing rules, see IBM webMethods Trading Networks Administrator’s Guide .

  • SWIFT Error Codes

    The component supports SWIFT error codes for field level and network validation. It also supplies resource bundles so that all error codes can be localized.

  • Integration Server Clustering

    The SWIFT FIN component can be used in a clustered Integration Server environment. For more information about clustering, see Administering IBM webMethods Module for SWIFT in a Cluster.

  • Subfield Parsing

    The SWIFT FIN component automatically parses messages into blocks and fields. You can configure further parsing into subfields with the subfieldFlag variable, which is included in the following services:

The following figure illustrates how the SWIFT FIN component interacts with other components. For further explanation, see the table that follows the figure.

Component Description
SWIFT FIN component The SWIFT FIN component uses Trading Networks processing rules to manage the execution of SWIFT FIN messages. When the component receives a message from a back-end system, it invokes a Trading Networks service to recognize the message. For information about creating processing rules, see Configuring Processing Rules to Send and Receive SWIFT FIN Messages.
Trading Networks Trading Networks uses the information defined in trading partner profiles to enable your enterprise to link to the financial institutions with whom you want to exchange SWIFT FIN messages. You can customize TPAs and view TN document types when you create your message records.

For more information about Trading Networks, trading partner profiles, TN document types, and TPAs, see IBM webMethods Trading Networks Administrator’s Guide . You can also find information about trading partner profiles and TN document types in Defining Trading Networks Information and information about TPAs in Customizing Trading Partner Agreements.

Trading Networks Database The Trading Networks database stores TN document types, TPA, and trading partner profile information, among other things.
Integration Server Integration Server contains the documents, services, and IS documents that you need when creating your process models. Integration Server also contains the elements (services, triggers, and process fragments) that were generated by the automated controlled steps within the process model.

SWIFTNet Component

The SWIFTNet component supports communication of SWIFT messages and files between clients and servers:

  • The client sends a request and receives a response.
  • The server receives a request and sends a response.

The SWIFTNet component provides client-side and server-side support for the following messaging services and capabilities:

  • InterAct
  • FileAct

Both InterAct and FileAct can work in either real-time mode or in store-and-forward mode. In real-time mode, both the requester and the responder must be online at the same time, but in store-and-forward mode, they do not both need to be online.

The client uses the SNL function SwCall() to access the server application through SWIFTNet. The server uses the SNL function SwCallback() to respond to clients through SWIFTNet.

As mentioned earlier, InterAct and FileAct are implemented as a set of SNL primitives that are exchanged between the client or server application program and the SNL software on your SAG. Along with its packages, the SWIFTNet component provides two DLLs, WmSWIFTNetClient.dll and WmSWIFTNetServer.dll, that invoke the functionality of the SNL libraries to transfer the SNL primitives between the client and server.

Client Functionality

The WmSWIFTNetClient libraries (that is, WmSWIFTNetClient.dll or WmSWIFTNetClient.so) invoke functionality for a client, which sends a request to, and receives a response from, a server in real-time or store-and-forward mode. When using webMethods Module for SWIFT with a client, you can do the following:

  • Send an InterAct request message and receive a response in real-time or store-and-forward mode.
  • Put a file using FileAct service in real-time or store-and-forward mode.
  • Get a file using FileAct service in real-time mode only.
  • Pull messages from a queue in store-and-forward mode only.
  • Fetch a file from the SnF queue in store-and-forward mode only.

Server Functionality

The WmSWIFTNetServer libraries (that is, WmSWIFTNetServer.dll or WmSWIFTNetServer.so) invoke functionality for a server, which receives a request from, and sends a response to, a client. When using webMethods Module for SWIFT with a server, you can do the following:

  • Receive an InterAct request message and send a response in real-time or store-and-forward mode.
  • Accept a put file request from the client application in real-time mode only.
  • Accept a get file request from the client application in real-time mode only.
  • Receive the pushed messages from the SnF queue in store-and-forward mode only.

For more information about the architecture of the module, see SWIFTNet Component Architecture.

SWIFTNet Component Architecture

The following diagram illustrates the architecture of systems and processes that enable the SWIFTNet component to exchange messages and files. See the table below the diagram for additional information.

The following table describes the elements of the SWIFTNet component architecture:

Component Description
IBM Web SphereMQ IBM WebSphere MQ uses the store-and-forward model to enable programs to communicate by passing messages to one another via a message queue. This enables asynchronous data exchange.
Integration Server Integration Server hosts the SWIFTNet component, Trading Networks, and Adapter for MQ services and related files. Use Integration Server Administrator to manage, configure, and administer all aspects of Integration Server, such as users, security, packages, and services.

For more information about Integration Server, see IBM webMethods Integration Server Administrator’s Guide .

MQHA The MQ Host Adapter (MQHA) enables your SWIFTNet component client and server applications to communicate with SWIFT Alliance Gateway through IBM WebSphere MQ. MQHA is the default transport.

To obtain MQHA, contact SWIFT.

IBM webMethods B2B Trading Networks Trading Networks enables your enterprise to link with other financial institutions and marketplaces to form a business-to-business trading network. Trading Networks also enables the SWIFTNet component to exchange messages and files with your SWIFT Alliance Gateway.

For more information about Trading Networks, see IBM webMethods Trading Networks Administrator’s Guide .

RA The Remote API (RA) client enables the SWIFTNet component to communicate with your SWIFT Alliance Gateway and SNL through your Remote API Host Adapter (RAHA). You must install an RA client on the same machine as Integration Server.

To obtain an RA client, contact SWIFT.

RAHA Your RAHA enables your SWIFT Alliance Gateway (SAG) to exchange messages and files with the RA client on your Integration Server. You must install RAHA on the same machine as SAG. RAHA supports single-threaded processing of messages.

To obtain RAHA, contact SWIFT.

SAG The SWIFT Alliance Gateway (SAG) on which you install your SNL software must be configured to exchange messages and files with SWIFTNet. You also will use this configuration information to configure webMethods Module for SWIFT and your RA client.
IBM webMethods Adapter for MQ Adapter for MQ enables Integration Server to exchange information with SWIFT Alliance Gateway through an IBM WebSphere MQ message queue. This capability lets you route documents or any piece of information from Integration Server to systems that use WebSphere MQ message queuing as their information interface.

SWIFTNet Component Real-Time Mode

Real-time InterAct message services are typically used when the receiver and the sender are both online at the time of message or file transmission. When real-time mode is used, the responder’s server application generates the response and interprets the message sent.

Real-Time InterAct

InterAct ensures secure communication of request/response business messages between application-level clients and servers on SWIFTNet. It is cost-effective and ideal for online queries or reporting systems.

The sequence of the InterAct request/response session is as follows:

  1. The requester’s client sends a request.
  2. The client request is passed to the SWIFTNet network, which processes the request and sends it to the responder's server.
  3. The responder's server receives the request and sends the response.
  4. SWIFTNet processes the response received from the responder's server and sends it to the requester’s client application.
  5. The requester’s client receives the response.

Real-Time FileAct

Real-time FileAct services offer a secure transfer of financial files between organizations on SWIFTNet. XML-based FileAct primitives are used to transfer the files and maintain the status of the file transfers. FileAct services provide the following functionality:

  • Put File. Sends a file to another SWIFTNet user.
  • Get File. Receives a file from another SWIFTNet user.
  • Subscribe to Transfer Events. Receives progressive transfer status on an event-by-event basis.
  • Receive Transfer Events. Responds to the terms of a subscription that is set up by the Subscribe Event primitive at the sending or receiving side of a transfer.

The following diagram illustrates the real-time InterAct/FileAct service. See the table below the diagram for additional information.

Step Description
1 The requester’s client sends the Sw:InitRequest primitive to initialize the SNL client process.
2 The requester’s client makes a SwCall() with SwSec:CreateContextRequest as primitive to initialize the security context.
3 The client makes a request using the appropriate primitive for the service type:
  • For an InterAct service, the client uses SwInt:ExchangeRequest.
  • For a FileAct service, the client uses Sw:ExchangeFileRequest.
4 The requester’s client side SNL passes the InterAct or FileAct request to the responder's server side SNL via SWIFTNet.
5 The responder's server side SNL extracts the request from SWIFTNet and invokes the server through SwCallback()SwInt:HandleRequest/ Sw:HandleFileRequest. The responder's server returns a response to the client.
6 The client destroys the created security context.
7 The client triggers the termination with the SNL.

SWIFTNet Component Store-and-Forward Mode

In store-and-forward (SnF) mode, messages and files are stored within SWIFTNet in a queue and delivered to the receiver at a future time. Therefore, the requester and responder do not need to be online at the same time. The requester receives a notification if a message cannot be delivered.

SnF queues contain the requester’s undelivered messages and the files and delivery notifications generated by SWIFTNet SnF. Messages and files in SnF mode can be routed into queues with the same flexibility available for message routing in real-time mode.

The Message Reception Registry function (MRR) specifies the message routing details. The responder defines and configures the available queues. Then the requester specifies which of these queues to use for the messages or files that the responder sends. (This information is not visible to the responder.)

In store-and-forward mode, the response comes from the SWIFTNet SnF queue and does not contain any feedback from the responder. (When real-time mode is used, the responder's server sends the response and interprets the message sent.)

Only the messages or files that are flagged for store-and-forward delivery mode are added to the queue. Flagging can be done within the RequestControl for store-and-forward delivery mode for SWIFTNet InterAct and for SWIFTNet FileAct.

Step Description
1
2
Requester’s client sends messages or files to the SnF queue. The SnF queue stores the messages or files received and sends a response to the requester.
3
4
Responder's client acquires the SnF queue in pull mode and pulls the messages from the SnF queue.
5
6
Responder's client acquires the SnF queue in push mode. The responder's server receives the pushed messages from the SnF queue and sends an acknowledgment.

The following diagram illustrates the store-and-forward flow on the requester’s side for an InterAct send or FileAct put session.

Store and Forward InterAct

Store-and-forward InterAct services are used for exchanging messages when the sender and receiver are not online simultaneously. To use this feature, the sender must specify that SnF be used to store the message and indicate the queue in which SWIFTNet SnF should store any delivery notifications that it generates. If the file delivery fails, the failed delivery notification, including the reason the delivery failed, is stored in the queue the sender specified in the RequestControl.

Client processes on the requester’s side initiate requests and related functions, and then pass a SWIFTNet primitive parameter to SNL representing the function to be performed.

<?xml version="1.0"?>  
<SwInt:ExchangeRequest>  
<SwSec:AuthorisationContext>  
<SwSec:UserDN>cn=abc,o=xxxx,o=swift</SwSec:UserDN>  
</SwSec:AuthorisationContext>  
<SwInt:Request>  
<SwInt:RequestControl>  
<SwInt:RequestCrypto>TRUE</SwInt:RequestCrypto>  
<SwInt:DeliveryCtrl>  
<SwInt:DeliveryMode>SnF</SwInt:DeliveryMode>  
<SwInt:NotifQueue>xxxx_generic!x</SwInt:NotifQueue>  
<Sw:DeliveryNotif>TRUE</Sw:DeliveryNotif>  
</SwInt:DeliveryCtrl>  
</SwInt:RequestControl>  
<SwInt:RequestHeader>  
<SwInt:Requestor>o=xxxx, o=swift</SwInt:Requestor>  
<SwInt:Responder>o=xxxx, o=swift</SwInt:Responder>  
<SwInt:Service>swift.generic.iast!x</SwInt:Service>  
</SwInt:RequestHeader>  
<SwInt:RequestPayload>This is for SnF Queue</SwInt:RequestPayload>  
<SwSec:Crypto>  
<SwSec:CryptoControl>  
<SwSec:MemberRef>RequestPayload</SwSec:MemberRef>  
<SwSec:SignDN>cn=abc,o=xxxx,o=swift</SwSec:SignDN>  
</SwSec:CryptoControl>  
</SwSec:Crypto>  
</SwInt:Request>  
</SwInt:ExchangeRequest>

If the instruction to trigger store-and-forward mode is not provided in the SwInt:DeliveryCtrl element for an SnF service request, then SWIFTNet will reject the message. The SwSec:UserDN within the SwSec:AuthorisationContext must have the RBAC role "SnFRequestor" with the queue, as specified in the SwInt:NotifQueue as qualifier.

The queue in SwInt:NotifQueue stores failed delivery notifications. It must belong to the same institution specified in the SwInt:Requestor. When the message is stored, SWIFTNet indicates this in the response.

Store and Forward FileAct

Store-and-forward FileAct services can only be used to send a file to a receiver. They cannot be used to request a file.

A store-and-forward FileAct request resembles a real-time FileAct request message. The sender must indicate that SnF be used to store the file, as well as the queue in which SWIFTNet SnF should store any delivery notifications that it generates. If the file delivery fails, the failed delivery notification, including the reason the delivery failed, is stored in the queue the sender specified in the RequestControl.

<Sw:ExchangeFileRequest>  
<SwSec:AuthorisationC ontext>  
<SwSec:UserDN>cn=abc,o=xxxx,o=swift</SwSec:UserDN>  
</SwSec:AuthorisationContext>  
<Sw:FileRequest>  
<Sw:FileRequestControl>  
<SwInt:RequestCrypto>FALSE</SwInt:RequestCrypto>  
<SwInt:DeliveryCtrl>  
<SwInt:DeliveryMode>SnF</SwInt:DeliveryMode>  
<SwInt:NotifQueue>xxxx_generic!x</SwInt:NotifQueue>  
</SwInt:DeliveryCtrl>  
</Sw:FileRequestControl>  
<Sw:FileRequestHeader>  
<SwInt:Requestor>o=xxxx, o=swift</SwInt:Requestor>  
<SwInt:Responder>o=xxxx, o=swift</SwInt:Responder>  
<SwInt:Service>swift.generic.fast!x</SwInt:Service>  
</Sw:FileRequestHeader>  
<Sw:FileOpRequest>  
<Sw:PutFileRequest>  
<Sw:TransferDescription>atlog.txt</Sw:TransferDescription>  
<Sw:PhysicalName>C:\atlog.txt</Sw:PhysicalName> </Sw:PutFileRequest>  
</Sw:FileOpRequest>  
</Sw:FileRequest>  
</Sw:ExchangeFileRequest>

Retrieving Messages and Files from a Queue

Messages and files can be retrieved from a queue using pull or push modes.

Pull Mode

When the pull mode is used, the client process initiates the delivery of a message. It performs an SwCall() with Sw:PullSnFRequest as the input primitive. The Sw:PullSnFResponse contains the message pulled from the queue.

The following diagram illustrates the store-and-forward InterAct pull session. See the table below the diagram for additional information.
Step Description
1 The client sends the Sw:InitRequest to start delivering messages and files in a SnF queue. Next, the client uses SwSec:CreateContextRequest to open the desired security context.
2 The client sends a request to acquire the queue. After receiving the response, the client starts delivering messages by issuing the Sw:PullSnFRequest.
3 The first Sw:PullSnFRequest does not carry an acknowledgment, but all subsequent requests must acknowledge the message delivered in the previous pull request to avoid the same message being delivered again.
4 Messages are removed from the queue.
5 When the client is finished delivering messages, the client sends Sw:AckSnFRequest (Sw:ExchangeSnFRequest) along with the acknowledgment of the last delivered message as input primitive.
6 The client destroys the created security context and triggers the termination with the SNL.
Push Mode

When push mode is used, the initiative to deliver a message resides with SWIFTNet SnF. The message is pushed from SWIFTNet SnF and is received by the server on SWIFTNet Link. In this server, a regular SwCallback() is invoked. The input primitive is the message from the queue within a SwInt:HandleRequest or Sw:HandleFileRequest. The server application ensures that the message is stored safely, and then responds with an acknowledgment to SWIFTNet SnF indicating how the message was received.

The following diagram illustrates the store-and-forward InterAct Push session. See the table below the diagram for additional information.
Step Description
1 The server process opens the required security context with Sw:HandleInitRequest and SwSec:CreateContextRequest. The server prepares to process the incoming requests.
2 The client process starts, sends the Sw:InitRequest, opens the desired security context, acquires the queue in pull mode, and starts delivering messages.
3 The server receives a SwInt:HandleRequest request.
4 The server sends an acknowledgment in SwInt:HandleResponse.
5 Messages are removed from the queue.
6 The client releases the queue.

Fetching a File from a Queue

If a FileAct message is received in either pull mode or push mode, a client process must fetch a file. When the file is available to be fetched, the SWIFTNet SnF does the following:

  • In push mode, delivers a Sw:NotifyFileRequestHandle within Sw:HandleFileRequest.
  • In pull mode, delivers a Sw:NotifyFileRequestHandle within Sw:PullSnFResponse.

The Sw:FetchFileRequest copies the structure received in the Sw:FileRequestHandle. The response is the TransferRef that is used to identify the file transfer from SWIFTNet SnF to the receiver. For a pull session, no other message will be delivered for that queue until the file has been fetched and a delivery acknowledgment has been sent.

Important: When a file is fetched from the queue, the file will remain within SWIFTNet SnF until an explicit acknowledgment has been sent by a client process.

Server Application Processing of SNL Primitives

The following diagram illustrates how the server application processes the SNL primitives when a client application sends a request. See the table below the diagram for additional information.

Step Description
1 The requester’s client sends a request to the server via SWIFTNet.
2 The responder's SAG receives the SNL primitive request and invokes the wm.swiftnet.server.services:handleRequest service in Integration Server on which the server application is installed.
3 The handleRequest service of the server application then invokes the wm.tn:receive service of Trading Networks.
4 Trading Networks uses TN document types to recognize the incoming request, saves the request to the Trading Networks database, and invokes one of the processing rules associated with the request's TN document type.
5 The processing rule processes the document as necessary and generates the XML response.
6 The XML response is sent to SAG.
7 SAG returns the response to the requester’s client application via SWIFTNet.

SWIFT File Transfer Adapter Support

The SWIFTNet component of webMethods Module for SWIFT provides integration support for the File Transfer Adapter (FTA) provided by SWIFT. You can use FTA to automate file transfer between parties over SWIFTNet.

webMethods Module for SWIFT makes the file available on the SWIFT Alliance Gateway (SAG) host. Then the File Transfer interface (FT-interface) provided by SWIFT automatically transfers the file over SWIFTNet using FTA configuration data.

With webMethods Module for SWIFT, you can also create a companion file with custom parameters to override the FTA configuration data, for example, local authentication information, override values, and header information. You can also monitor the SAG input directory for reports that FTA generates about the processing status of data files. For information about how to transfer files using FTA, see Using FTA to Transfer Files over SWIFTNet.

FpML Message Exchange Support

webMethods Module for SWIFT provides support for FpML message exchange over SWIFTNet. FpML messages are XML messages for the transfer of Over The Counter (OTC) derivatives over SWIFTNet. FpML-compliant messages in XML format are transferred over SWIFTNet using the SWIFTNet InterAct store-and-forward messaging service.

Important: Before you can exchange FpML messages over SWIFTNet, you must register with SWIFT.

webMethods Module for SWIFT provides the following support for the transfer of FpML messages:

  • Store-and-Forward mode of message exchange over SAA in XML v2 format or directly over SAG.
  • Reconciliation of delivery notifications with the original messages.
  • Populating the XML v2 header when sending FpML messages to SAA or SAG. You can set similar flags in an XML v2 message when sending a message to the counterparty.
  • Message validation.
  • Built-in support for schema validation.
  • Semantic validation of all XML messages.

The non-repudiation of emission and reception of transferred messages is also required for the exchange of FpML messages over SWIFTNet, but this requirement is handled by SAA or SAG. SWIFT Module does not provide any support for signature generation.

For more information about FpML message exchange over SWIFTNet, see the SWIFT documentation.

FpML messages are based on FpML schemas provided by SWIFT that you can import using the Integration Server functionality for creating a schema. You can create the corresponding document types for the FpML schemas using the Integration Server functionality for creating IS document types. For more information about creating IS schemas and IS document types, see Step 3: Create IS Schema and IS Document Type and IBM webMethods Service Development Help .