Integrator SDK

The cornerstone library of the Prowide Integrator suite — providing core schemas, LAU authentication, DataPDU parsing, BIC directory, and expanded printout generation for MT and MX messages.
Message Schemas

Complete MT and MX Schemas

Full schema definitions for all SWIFT MT (ISO 15022) and MX (ISO 20022) message types, including CBPR+ and IAP (ISO Accelerator Package), providing the structural foundation for parsing, building, and validating financial messages.

All MT message types with complete field definitions and sequence structures
ISO 20022 MX message schemas for payments, securities, and trade finance
CBPR+ and IAP (ISO Accelerator Package) message schemas
Updated with each yearly SRG release — delivered 6 months before SWIFT go-live
Extends the open source Prowide Core and ISO 20022 libraries with enterprise-grade features
java
// Create an MX pacs.008 CBPR+ payment message
MxPacs00800102 mx = new MxPacs00800102();

mx.setFIToFICstmrCdtTrf(new FIToFICustomerCreditTransferV02()
    .setGrpHdr(new GroupHeader33()));

// General Information
mx.getFIToFICstmrCdtTrf().getGrpHdr()
    .setMsgId("TBEXO12345");
mx.getFIToFICstmrCdtTrf().getGrpHdr()
    .setNbOfTxs("1");

// Settlement Information
mx.getFIToFICstmrCdtTrf().getGrpHdr()
    .setSttlmInf(new SettlementInformation13());
mx.getFIToFICstmrCdtTrf().getGrpHdr()
    .getSttlmInf()
    .setSttlmMtd(SettlementMethod1Code.INDA);

// Transaction Amount
ActiveCurrencyAndAmount amount =
    new ActiveCurrencyAndAmount();
amount.setCcy("USD");
amount.setValue(new BigDecimal("23453"));

System.out.println(mx.message());
Security

LAU Signing & Verification

Local Authentication (LAU) provides digital signing and verification for SWIFT Alliance Access integration, ensuring message integrity and non-repudiation across the communication chain.

HMAC-SHA256 signing and verification following SWIFT security standards
Automatic LAU header computation for outbound messages
Signature verification for inbound messages from Alliance Access
Key management utilities for LAU key configuration
Ensures message authenticity and integrity for all SAA communication
java
// Create a LAU signer with SAA private keys
LAU signer = new LAU();
AuthParameters authParameters =
    new AuthParameters();
authParameters.setLeftKey("Abcd1234abcd1234");
authParameters.setRightKey("Abcd1234abcd1234");

// Sign an MX DataPDU envelope
String signedPayload =
    signer.signXmlV2(dataPDU, authParameters);

// Verify an inbound signed payload
boolean valid =
    signer.verifyXmlV2(signedPayload, authParameters);
Alliance Access Integration

DataPDU Parser

Create and parse the DataPDU — the SAA XML v2 message envelope used for communication with SWIFT Alliance Access. Full support for both inbound and outbound message wrapping.

Parse DataPDU XML envelopes to extract embedded MT and MX messages
Build DataPDU wrappers for outbound message delivery to Alliance Access
Full header and trailer field access
Support for service messages, system messages, and acknowledgements
SAA XML v2 envelope format compliance
java
// Parse a DataPDU envelope
DataPDUParser pdu =
    DataPDUParser.parse(xml);

// Access header metadata
pdu.getHeader().getMessage()
    .getMessageIdentifier();
// → "pacs.008.001.08"

// Extract the embedded MX message
AbstractMX mx = pdu.extractMx();
MxPacs00800108 pacs =
    (MxPacs00800108) mx;

// Build outbound DataPDU for an MX message
DataPDUWriter w =
    new DataPDUWriter(mxMessage);
w.getHeader().getMessage()
    .getNetworkInfo()
    .setService("swift.finplus!pc");
String dataPDU = w.xml();
Reference Data

BIC Directory

Import and manage BIC data from SWIFT Ref files, then make the BIC repository available for institution lookup, validation, and routing decisions across your application.

Import tool for SWIFT Ref BIC directory files
BIC repository available for lookup, validation, and routing
Query by BIC8 or BIC11 with wildcard support
Optional JPA-compatible database persistence for shared access
Developer Tools

Expanded Printout

Generate human-readable expanded printout for any MT message type. Transforms raw SWIFT FIN content into structured documents with field labels, qualifiers, and descriptions — ideal for audit reports, compliance documentation, and operational review.

Supports all MT message types generically
Customizable TXT and HTML output formats
Includes field labels, qualifier descriptions, and BIC institution names
java
// Generate expanded printout for any MT
PrintoutWriter w = new PrintoutWriter();
System.out.println(w.print(mt515));

// Output:
// ---- Message Header ----
// Swift : FIN 515 Client Confirmation
//         of Purchase or Sale
// Sender : RBDSJPJTBXXX
//
// A - General Information
//   20C: Reference
//     Qualifier: Sender's Message Reference
//     Reference: M1999999.1
//   23G: Function of the Message
//     Function: NEWM
//
// C - Confirmation Details
//   98A: Date
//     Qualifier: Trade Date/Time
//     Date: Jul 12, 2016
Content Selection

MtPath DSL

A domain-specific language that simplifies content selection in MT (FIN) messages. Use XPath-like expressions to navigate message structures, extract field values, and query across sequences — without manual field parsing.

XPath-like expressions for MT message navigation
Query by field tag, qualifier, component, and sequence
Wildcard and indexed access across repeated sequences
Access header block fields with the same expression syntax
java
// Get component 2 of field 20C qualifier SEME
List<MtPathResult> found =
    MtPath.evaluate("20C/SEME/2", mt);
found.get(0).getComponent();

// All 93a AVAI fields in first B1b sequence
found = MtPath.evaluate(
    "B1b[1]/93a/AVAI/5", mt);
for (MtPathResult f : found) {
    System.out.println(f.getComponent());
}

// All 93B fields within sequence B
found = MtPath.evaluate(
    "B[*]/93B", mt);

// MIR from header block 2
found = MtPath.evaluate(
    "b2/" + SwiftBlock2OutputField
        .MIRLogicalTerminal,
    mt);
Corporate Messaging

SWIFT SCORE

Complete model and API support for SWIFT SCORE (Standardised CORporate Environment) messages, enabling corporate-to-bank communication through the SWIFT network.

Full SCORE message model with type-safe field access
Parse and build corporate payment instructions
Statement and reporting message support
Compliant with SWIFT corporate messaging standards
SDK Specifications

Requirements

Java: 11 or higher (any JDK distribution)
Build: Gradle or Maven
Standards: ISO 15022, ISO 20022, SWIFT MT, SWIFT MX
Dependencies: Prowide Core + Prowide ISO 20022 (open source)
Optional: JPA-compatible database for BIC directory persistence

Distribution

License: Commercial (unified license covering all components)
Delivery: Maven artifacts via Nexus repository
Group ID: com.prowidesoftware
Updates: Yearly SRG releases (6 months before SWIFT go-live)
Documentation: Javadoc, integration guides, code examples
Start building with the SDK
Contact our team for trial access and pricing tailored to your deployment model.