Changelog for Prowide Core (WIFE) - Version 7.8.5

Version 7.8.5 LTS for SRU2016 - October 2016

LTS versions including the yearly SRU from SWIFT are released yearly by the end of October, one month before production.

This same version is released for support customers 6 months in advance. If you are interested on pre-releases of the yearly SRU or on intermediate maintenance versions please check our Services for a subscription package.

SRU 2016

  • Updated the standard compliance to the latest SRU (in production November 2016)


  • Added getSubBlockByTagNames and getSubBlocksByTagNames in SwiftTagListBlock to retrieve subblocks based on comprehensive list or tag names
  • Added API in BusinessHeader to create valid BAH from simple parameters
  • Added API in BIC to get the branch and institution
  • Added API to match message identifier by regex, for example fin.*STP
  • Added API to strip header and document portion of Mx message in XML format
  • Added analizeMessage in MxParser, lightweight API to retrieve structure information from an MX messages
  • Added enumerations for message priority and delivery monitoring in MT block 2
  • Added json() to AbstractMT
  • Added getComponentLabel(int) in Field classes
  • Added updateFrom AbstractMT to MtSwiftMessage
  • Added reference as class attribute in AbstractSwiftMessage (set by subclasses)
  • Added FileFormat attribute to AbstractSwiftMessage for clear identification of content in implementing subclasses
  • Added constructor of MxSwiftMessage from AbstracMX
  • Added API to get BIC codes from DN in Mx messages
  • Added MtId class, analogous to the existing MxId for MX messages
  • SwiftParser parsing of block 4 published as static public method
  • Added AbstractMessage as base class for specific MTnnn and MXmmm model hierarchy
  • Added MessageStandardType with MT and MX values and ServiceIdType for header service id values
  • Added nextSwiftMessage in RJE/PPC readers for system messages support
  • Added valuesNumeric to MT enumeration MtType
  • Added getValueDisplay with optional locale parameter to display formatted field and individual components values
  • Added MTVariant enum and getVariant API in swift messages
  • Added CONDITIONAL_QUALIFIER component number as static class field for all generic fields (fields implementing the GenericField interface)
  • Added BusinessHeader serialization into xml and Element objects
  • Added business header parse from Element object in MxParser
  • Added RJEReader and RJEWriter to create MT message files in RJE format
  • Added PPCWriter to create MT message files in DOS-PPC format (also enhanced API for the existing PPCFileReader)
  • Added path() API in MxNode
  • Added MtType, an enumeration of all available MTnnn implementations
  • Added parse to Field classes to update field components from full value
  • Added append lists of Tag or Field to TagListBlock
  • Added support for attributes in MxNode
  • Added generic setters for attributes in header blocks 1 and 2 using qualified names (#setField)
  • Added write XML method for MX business header
  • Added validName as static method in Field, to validate field names
  • Added getField static API in Field to create new instances with reflection given the field name and value
  • Added reference(msg) to SwiftMessageUtils to get the sender reference from messages that contain a reference field
  • Added SwiftMessageRevision to the swift messages model, to hold and track changes in swift messages


  • Fixed parser for field 98H
  • Fixed field 61 parse allowing EC and ED as credit/debit mark subfield
  • Fixed from() and to() methods in BusinessHeader to return the BIC code for both possible header types
  • FIxed serialization of component 1 in field 50F
  • Fixed parser and serialization in Field98F
  • Fixed SwiftMessage.toJson single quote to double quote in timestamp field
  • Fixed getLabel when used with the parameters combination of a valid mt and a null sequence
  • Fixed getValue in Field61
  • Added proper implementation for isOptional(component) in Field61
  • Fixed components trim to null in parser for several fields when the component value is not present
  • Fixed separators trim in getLine API
  • Fixed setComponentN(Number) when component is not a SWIFT amount, Number is now serialized as an integer (without decimal separator)
  • Fixed MT parser to allow additional lines in a field start with colon ':'
  • Fixed field 32R second component changed from currency to string to allow codewords 'FOZ', 'GOZ', 'GRM', 'KLO', 'LIT', 'LOT', 'OTH', 'PND', 'TAL', 'TOL', 'TON', 'TOZ', 'UNT'
  • Fixed field 33B first component changed from currency to string to allow codeword 'PCT' used in MT601
  • Fixed API inconsistencies in MtSwiftMessage when updating from SwiftMessage objects
  • Bugfix MT506 added mandatory field 28E


  • Added missing getters for Sequence E1 in MT300
  • Changed MX messages detection in MxParser to lighter implementation using Stax
  • Normalized Input/Output Outgoing/Incoming API in AbstractMT and SwiftMessage
  • SwiftMessage.toJson changed timestamp format to the recommended ISO 8601
  • MxSwiftMessage meta-data (sender, receiver, reference, identifier) read and set from raw XML content
  • Added support in XmlParser for the field version of Core proprietary XML format for MTs, the parser now reads both formats seamlessly
  • Better header API in MxSwiftMessage to support both ISO and SWIFT business headers
  • Elaborated identifier in MtSwiftMessage, using fin.msgtype[.mug|variant] instead of just the message type
  • Added comprehensive sequence names into pw_swift_label property files
  • Added translations of pw_swift_label property files to FR, DE and IT (complementing the existent EN, ES and RU files)
  • Completed pw_swift_label property files for all field + mt + sequence combinations
  • Complete application header parsing in MxParser
  • Better application header detection in MxParser based on namespaces
  • Added component labels for field 13K
  • Fields 11R and 11S component 3 split into two independent components
  • In Field61, component 6 was splitted into two independent components to hold the "transaction type" and the "identification code" as stated in the standard definition for function SUB-6
  • Added SwiftParserConfiguration to encapsulate several parsing options, allowing fast parsing of AbstractMT by reading the text block in raw format