Update: 4 September 2026
As immediate effect KONSOLE v15 is postponed to 12 June 2027, aligned with SWIFT's new date.
KONSOLE — v15 realigned to SWIFT's new date
- V1, which includes the SWIFT changes, remains available on the INT environment.
- The UAT deployment date will be derived from that Q1 date and will therefore be communicated later.
INT environment deployment
Date: July 13th, 2pm (Geneva time)
Expected downtime: 2 hours
- UI: konsole-int.eu.komgo-sit.net/GTSAPortalWUI
- REST: konsole-rest-int.eu.komgo-sit.net
UAT environment deployment
Date: End of March 2027
Expected downtime: 2 hours
- UI: wui-uat.egtsa.com/GTSAPortalWUI
- REST: rest-uat.egtsa.com
PRODUCTION environment deployment
Date: 12 June 2027
Expected downtime: 2 hours
- UI: https://wui.egtsa.com/GTSAPortalWUI
- REST: https://rest.egtsa.com/GTSAPortalREST/
Release Content
New Features
Swift 2026 / ICC Major Upgrade
Structured Fields for Counterparty Addresses
- In line with SWIFT 2026, counterparty addresses (Applicant, Beneficiary, Obligor, Drawer, Drawee, Non-bank Issuer) are now captured as structured data across Letters of Credit, Standby Letters of Credit, Guarantees, Documentary Collections, Letter of Indemnity, Release of Goods, Financing / Loan requests and Free-Text Instructions. Three fields complement the existing name and address: Town/City and Country (mandatory) and Post Code (optional). To ease the transition, Konsole pre-populates these fields for existing counterparties where possible, and users remain fully able to review and correct the proposed values. The structured fields are also available in the Address Book.
-
Bulk Import - Template has been extended with the new structured address columns (Applicant and Beneficiary City, Post Code and Country) so that these values are populated automatically during import.
- Transaction migration - Existing instruments are migrated to the new structured address format, with persisted company addresses enriched with Country Code, Town and Postal Code.
Existing fields updates
Several existing fields have been reformatted to meet the new SWIFT 2026 character set and length rules, with parsing and validation updated accordingly in the UI and on inbound/outbound SWIFT messages:
- Drafts at… (42C) on Letters of Credit - extended character set.
- Shipment & transport locations (44A / 44B / 44E / 44F) on LCs, SBLCs and Guarantees - Place of Taking in Charge/Dispatch, Place of Final Destination, Port of Loading/Airport of Departure and Port of Discharge/Airport of Destination now support two lines
- Instructions to the Paying/Accepting/Negotiating Bank (78) on LCs - increased capacity and extended character set
-
Place of Jurisdiction (44P) - For SBLs and BG, the governing-law information has been restructured: "Governing Law/Jurisdiction (44J)" is renamed Governing Law, and the former narrative sub-field becomes an independent Place of Jurisdiction (44P) field. A validation rule ensures Place of Jurisdiction can only be filled when Governing Law is also filled
-
Charges (71D) for SBLCs and BGs - The Charges field is upgraded to the new SWIFT 2026 structured coded format. Users enter charges as coded lines (fee type, currency, amount and free-text narrative); Konsole then dynamically parses each line and displays it in read-only structured blocks, with guidance messages when the coding rules are not respected. Supported fee types: Agent's Commission, Our Commission, Our Correspondent's Commission, Commercial Discount, Insurance Premium, Our Postage, Stamp Duty, Teletransmission Charges, and Wharfing & Warehouse. Correctly mapped on both incoming (bank-to-corporate) and outgoing (corporate-to-bank) directions
-
Total Amount Claimed (33a) - Now fully supported on StandBy Letter of Credit and Bank Guarantee drawing/claim flow, with both SWIFT options : date + currency + amount, or currency + amount only. The date is optional; when provided, currency and amount become mandatory.
What happens to existing messages and transactions at the time of Go-Live ?
Existing transactions sent / received
- Transactions active at go-live continue — but messages are exchanged using the new structure (no fallback possible to “old” format)
- Komgo will convert messages onto the new format at first interaction with the transaction: the next message a user receives or replies to will be pre-populated with the new address format.
- A warning is displayed to ensure all users are aware of the change. This option will be possible as far as “old format” messages exist.
- Human validation is required before proceeding to the sending of your instructions.
- All historical messages remain available in their original format for audit purposes.
- No retroactive modification of archived data.
Action Required for Draft & Pending Signature Message
- All unsent Messages will be deprecated at the time of Go-Live.
- Deprecated draft will be available for cloning but won’t be available for sending.
- Messages pending Signature (sign-off) before the time of the release won’t be available.
New fields added for better Corporate/Bank Communication
LCIM, LCEX, SBIM, SBEX, BGIS, BGRE
-
HS Code (45H) - A new optional field to tag the HS code(s) of the covered goods, available on Import/Export Letters of Credit, Standby Letters of Credit and Bank Guarantees. Multiple codes can be entered, separated by a comma. It allows banks, customs authorities and compliance teams to identify the nature of the goods without parsing the free-text goods description. On LCs it is available at Opening, Amendment and Internal Modification; on SBLCs and Guarantees it is available at Opening and Internal Modification
LCIM, LCEX
-
Incoterms (44I) - Two dedicated fields for Import and Export Letters of Credit: a structured Incoterms code (three-letter ICC code selected from a dropdown, e.g. CFR - Cost and Freight) and an Incoterms Narrative. Previously embedded in free-text (45A/45B, 77C), Incoterms are now captured as structured data. When the code "OTH" is selected, the narrative becomes mandatory. Displayed in the Narrative tab, below the Goods Description (45A)
- Additional Information at Utilisation - The Additional Information field, previously available only at Opening, is now also available at the Utilization step (Corporate-to-Bank direction) on Import Letters of Credit. Corporates can provide additional context directly when presenting documents, keeping all relevant information within the same structured message
- Utilization Balance mandatory at payment - To support accurate tracking of partial versus full payment under a document presentation, the Utilization Balance field is now mandatory in the Bank-to-Corporate direction at the Paid and Settled statuses, for both Import Letters of Credit and Export Letters of Credit. The balance must be expressed in the same currency as the Utilization Amount and cannot be negative. This allows all parties and integrated systems, to know immediately whether a presentation is fully paid (balance = 0) or partially paid (balance > 0). The field remains optional in the Corporate-to-Bank direction and at other statuses
Integrated Clients
Resources
FormatSpecification (XSD / Excel documentation)
Minimum XSD Changes are included in the v14.0.0 deployed on 13/07/2026
SDK (JDK 1.8)
<dependency>
<groupId>io.komgo.konsole</groupId>
<artifactId>sdk-rest-client</artifactId>
<version>14.0.0</version>
</dependency>
SDK (JDK >=11 if using jakarta namespace in your application)
<dependency>
<groupId>io.komgo.konsole</groupId>
<artifactId>sdk-rest-client</artifactId>
<version>14.0.0</version>
<classifier>jakarta</classifier>
</dependency>
The latest compatible package version is v14.0.0 deployed on 3/07/2026
Schema changes
BGRE (gtsa-bgre.xsd) / SBEX (gtsa-sbex.xsd)
Added
<xs:element maxOccurs="1" minOccurs="0" name="undertaking-structure" type="gtfdt:UndertakingStructureType" />
<xs:element maxOccurs="1" minOccurs="0" name="requested-issue-date" nillable="true" type="xs:date" />
<xs:element maxOccurs="1" minOccurs="0" name="settlement-account" nillable="true" type="gdt:Max34SwiftXText" />
<xs:element maxOccurs="1" minOccurs="0" name="total-amount-claimed-date" nillable="true" type="xs:date" />
<xs:element maxOccurs="1" minOccurs="0" name="total-amount-claimed" nillable="true" type="gdt:Amount" />
<xs:element maxOccurs="1" minOccurs="0" name="hs-code" nillable="true" type="gdt:Max65SwiftXText" />
<xs:element maxOccurs="1" minOccurs="0" name="structured-charge-list" nillable="true">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="6" minOccurs="0" name="structured-charge" nillable="true">
<xs:complexType>
<xs:all>
<xs:element maxOccurs="1" minOccurs="0" name="charge-code" nillable="true" type="gtfdt:ChargeType" />
<xs:element maxOccurs="1" minOccurs="0" name="charge-amount" nillable="true" type="gdt:Amount" />
<xs:element maxOccurs="1" minOccurs="0" name="charge-narrative" nillable="true" type="gdt:Max210SwiftZText" />
</xs:all>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>Changed
<!-- Shipment / transport location fields: type changed Max140SwiftZText -> Max140Lines2x70SwiftZText -->
<!-- Before -->
<xs:element maxOccurs="1" minOccurs="0" name="taking-in-charge-place" nillable="true" type="gdt:Max140SwiftZText" />
<xs:element maxOccurs="1" minOccurs="0" name="loading-port" nillable="true" type="gdt:Max140SwiftZText" />
<xs:element maxOccurs="1" minOccurs="0" name="discharge-port" nillable="true" type="gdt:Max140SwiftZText" />
<xs:element maxOccurs="1" minOccurs="0" name="final-destination-place" nillable="true" type="gdt:Max140SwiftZText" />
<!-- After -->
<xs:element maxOccurs="1" minOccurs="0" name="taking-in-charge-place" nillable="true" type="gdt:Max140Lines2x70SwiftZText" />
<xs:element maxOccurs="1" minOccurs="0" name="loading-port" nillable="true" type="gdt:Max140Lines2x70SwiftZText" />
<xs:element maxOccurs="1" minOccurs="0" name="discharge-port" nillable="true" type="gdt:Max140Lines2x70SwiftZText" />
<xs:element maxOccurs="1" minOccurs="0" name="final-destination-place" nillable="true" type="gdt:Max140Lines2x70SwiftZText" />
<!-- Governing law / place of jurisdiction: fields renamed -->
<!-- Before -->
<xs:element maxOccurs="1" minOccurs="0" name="governing-law-jurisdiction" nillable="true" type="gdt:CountryCode" />
<xs:element maxOccurs="1" minOccurs="0" name="governing-law-jurisdiction-subdivision" nillable="true" type="gdt:Max35SwiftXText" />
<xs:element maxOccurs="1" minOccurs="0" name="governing-law-jurisdiction-narrative" nillable="true" type="gdt:Max65SwiftXText" />
<!-- After -->
<xs:element maxOccurs="1" minOccurs="0" name="governing-law" nillable="true" type="gdt:CountryCode" />
<xs:element maxOccurs="1" minOccurs="0" name="governing-law-subdivision" nillable="true" type="gdt:Max35SwiftXText" />
<xs:element maxOccurs="1" minOccurs="0" name="place-of-jurisdiction" nillable="true" type="gdt:Max65SwiftXText" />
BGIS (gtsa-bgis.xsd) / SBIM (gtsa-sbim.xsd)
Added
<xs:element maxOccurs="1" minOccurs="0" name="undertaking-structure" type="gtfdt:UndertakingStructureType" />
<xs:element maxOccurs="1" minOccurs="0" name="requested-issue-date" nillable="true" type="xs:date" />
<xs:element maxOccurs="1" minOccurs="0" name="settlement-account" nillable="true" type="gdt:Max34SwiftXText" />
<xs:element maxOccurs="1" minOccurs="0" name="total-amount-claimed-date" nillable="true" type="xs:date" />
<xs:element maxOccurs="1" minOccurs="0" name="total-amount-claimed" nillable="true" type="gdt:Amount" />
<xs:element maxOccurs="1" minOccurs="0" name="hs-code" nillable="true" type="gdt:Max65SwiftXText" />
<xs:element maxOccurs="1" minOccurs="0" name="structured-charge-list" nillable="true">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="6" minOccurs="0" name="structured-charge" nillable="true">
<xs:complexType>
<xs:all>
<xs:element maxOccurs="1" minOccurs="0" name="charge-code" nillable="true" type="gtfdt:ChargeType" />
<xs:element maxOccurs="1" minOccurs="0" name="charge-amount" nillable="true" type="gdt:Amount" />
<xs:element maxOccurs="1" minOccurs="0" name="charge-narrative" nillable="true" type="gdt:Max210SwiftZText" />
</xs:all>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>Changed
<!-- Shipment / transport location fields (plus their -new-value companions): -->
<!-- type changed Max140SwiftZText -> Max140Lines2x70SwiftZText -->
<!-- Before -->
<xs:element maxOccurs="1" minOccurs="0" name="taking-in-charge-place" nillable="true" type="gdt:Max140SwiftZText" />
<xs:element maxOccurs="1" minOccurs="0" name="taking-in-charge-place-new-value" nillable="true" type="gdt:Max140SwiftZText" />
<xs:element maxOccurs="1" minOccurs="0" name="loading-port" nillable="true" type="gdt:Max140SwiftZText" />
<xs:element maxOccurs="1" minOccurs="0" name="loading-port-new-value" nillable="true" type="gdt:Max140SwiftZText" />
<xs:element maxOccurs="1" minOccurs="0" name="discharge-port" nillable="true" type="gdt:Max140SwiftZText" />
<xs:element maxOccurs="1" minOccurs="0" name="discharge-port-new-value" nillable="true" type="gdt:Max140SwiftZText" />
<xs:element maxOccurs="1" minOccurs="0" name="final-destination-place" nillable="true" type="gdt:Max140SwiftZText" />
<xs:element maxOccurs="1" minOccurs="0" name="final-destination-place-new-value" nillable="true" type="gdt:Max140SwiftZText" />
<!-- After -->
<xs:element maxOccurs="1" minOccurs="0" name="taking-in-charge-place" nillable="true" type="gdt:Max140Lines2x70SwiftZText" />
<xs:element maxOccurs="1" minOccurs="0" name="taking-in-charge-place-new-value" nillable="true" type="gdt:Max140Lines2x70SwiftZText" />
<xs:element maxOccurs="1" minOccurs="0" name="loading-port" nillable="true" type="gdt:Max140Lines2x70SwiftZText" />
<xs:element maxOccurs="1" minOccurs="0" name="loading-port-new-value" nillable="true" type="gdt:Max140Lines2x70SwiftZText" />
<xs:element maxOccurs="1" minOccurs="0" name="discharge-port" nillable="true" type="gdt:Max140Lines2x70SwiftZText" />
<xs:element maxOccurs="1" minOccurs="0" name="discharge-port-new-value" nillable="true" type="gdt:Max140Lines2x70SwiftZText" />
<xs:element maxOccurs="1" minOccurs="0" name="final-destination-place" nillable="true" type="gdt:Max140Lines2x70SwiftZText" />
<xs:element maxOccurs="1" minOccurs="0" name="final-destination-place-new-value" nillable="true" type="gdt:Max140Lines2x70SwiftZText" />
<!-- Governing law / place of jurisdiction: fields renamed -->
<!-- Before -->
<xs:element maxOccurs="1" minOccurs="0" name="governing-law-jurisdiction" nillable="true" type="gdt:CountryCode" />
<xs:element maxOccurs="1" minOccurs="0" name="governing-law-jurisdiction-subdivision" nillable="true" type="gdt:Max35SwiftXText" />
<xs:element maxOccurs="1" minOccurs="0" name="governing-law-jurisdiction-narrative" nillable="true" type="gdt:Max65SwiftXText" />
<!-- After -->
<xs:element maxOccurs="1" minOccurs="0" name="governing-law" nillable="true" type="gdt:CountryCode" />
<xs:element maxOccurs="1" minOccurs="0" name="governing-law-subdivision" nillable="true" type="gdt:Max35SwiftXText" />
<xs:element maxOccurs="1" minOccurs="0" name="place-of-jurisdiction" nillable="true" type="gdt:Max65SwiftXText" />
BG consolidated view (gtsa-bg-cv.xsd) / SB consolidated view (gtsa-sb-cv.xsd)
Added
<xs:element maxOccurs="1" minOccurs="0" name="undertaking-structure" type="gtfdt:UndertakingStructureType" />
<xs:element maxOccurs="1" minOccurs="0" name="calculated-expiry-date" type="xs:date" />
<xs:element maxOccurs="1" minOccurs="0" name="total-amount-claimed-date" nillable="true" type="xs:date" />
<xs:element maxOccurs="1" minOccurs="0" name="total-amount-claimed" nillable="true" type="gdt:Amount" />
<xs:element maxOccurs="1" minOccurs="0" name="structured-charge-list">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="6" minOccurs="0" name="structured-charge">
<xs:complexType>
<xs:all>
<xs:element maxOccurs="1" minOccurs="0" name="charge-code" type="gtfdt:ChargeType" />
<xs:element maxOccurs="1" minOccurs="0" name="charge-amount" type="gdt:Amount" />
<xs:element maxOccurs="1" minOccurs="0" name="charge-narrative" type="gdt:Max210SwiftZText" />
</xs:all>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- Added to the beneficiary-details node -->
<xs:element maxOccurs="1" minOccurs="0" name="beneficiary-emails-list">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="beneficiary-email" type="gdt:Max6500Text"/>
</xs:sequence>
</xs:complexType>
</xs:element>Changed
<!-- Shipment / transport location fields: type changed Max140SwiftZText -> Max140Lines2x70SwiftZText -->
<!-- Before -->
<xs:element maxOccurs="1" minOccurs="0" name="taking-in-charge-place" type="gdt:Max140SwiftZText" />
<xs:element maxOccurs="1" minOccurs="0" name="loading-port" type="gdt:Max140SwiftZText" />
<xs:element maxOccurs="1" minOccurs="0" name="discharge-port" type="gdt:Max140SwiftZText" />
<xs:element maxOccurs="1" minOccurs="0" name="final-destination-place" type="gdt:Max140SwiftZText" />
<!-- After -->
<xs:element maxOccurs="1" minOccurs="0" name="taking-in-charge-place" type="gdt:Max140Lines2x70SwiftZText" />
<xs:element maxOccurs="1" minOccurs="0" name="loading-port" type="gdt:Max140Lines2x70SwiftZText" />
<xs:element maxOccurs="1" minOccurs="0" name="discharge-port" type="gdt:Max140Lines2x70SwiftZText" />
<xs:element maxOccurs="1" minOccurs="0" name="final-destination-place" type="gdt:Max140Lines2x70SwiftZText" />
<!-- Governing law / place of jurisdiction: fields renamed -->
<!-- Before -->
<xs:element maxOccurs="1" minOccurs="0" name="governing-law-jurisdiction" type="gdt:CountryCode" />
<xs:element maxOccurs="1" minOccurs="0" name="governing-law-jurisdiction-subdivision" type="gdt:Max35SwiftXText" />
<xs:element maxOccurs="1" minOccurs="0" name="governing-law-jurisdiction-narrative" type="gdt:Max65SwiftXText" />
<!-- After -->
<xs:element maxOccurs="1" minOccurs="0" name="governing-law" type="gdt:CountryCode" />
<xs:element maxOccurs="1" minOccurs="0" name="governing-law-subdivision" type="gdt:Max35SwiftXText" />
<xs:element maxOccurs="1" minOccurs="0" name="place-of-jurisdiction" type="gdt:Max65SwiftXText" />
LCEX (gtsa-lcex.xsd) / LCIM (gtsa-lcim.xsd)
Added
<xs:element maxOccurs="1" minOccurs="0" name="hs-code" nillable="true" type="gdt:Max65SwiftXText" />
<xs:element maxOccurs="1" minOccurs="0" name="hs-code-new-value" nillable="true" type="gdt:Max65SwiftXText" />
<xs:element maxOccurs="1" minOccurs="0" name="incoterms" nillable="true" type="gdt:IncotermsType" />
<xs:element maxOccurs="1" minOccurs="0" name="incoterms-new-value" nillable="true" type="gdt:IncotermsType" />
<xs:element maxOccurs="1" minOccurs="0" name="incoterms-narrative" nillable="true" type="gdt:Max140Lines2x70SwiftZText" />
<xs:element maxOccurs="1" minOccurs="0" name="incoterms-narrative-new-value" nillable="true" type="gdt:Max140Lines2x70SwiftZText" />The -new-value companion fields are present on the import message (LCIM) and, for hs-code / incoterms, on the export message (LCEX) as shown above.
Changed
<!-- drafts-at (46A): charset widened X -> Z, Max105SwiftXText -> Max105SwiftZText -->
<!-- Before -->
<xs:element ... name="drafts-at" type="gdt:Max105SwiftXText" />
<!-- After -->
<xs:element ... name="drafts-at" type="gdt:Max105SwiftZText" />
<!-- Shipment / transport location fields (44A/B/E/F): Max140SwiftZText -> Max140Lines2x70SwiftZText -->
<!-- Before -->
<xs:element maxOccurs="1" minOccurs="0" name="taking-in-charge-place" type="gdt:Max140SwiftZText" />
<xs:element maxOccurs="1" minOccurs="0" name="loading-port" type="gdt:Max140SwiftZText" />
<xs:element maxOccurs="1" minOccurs="0" name="discharge-port" type="gdt:Max140SwiftZText" />
<xs:element maxOccurs="1" minOccurs="0" name="final-destination-place" type="gdt:Max140SwiftZText" />
<!-- After -->
<xs:element maxOccurs="1" minOccurs="0" name="taking-in-charge-place" type="gdt:Max140Lines2x70SwiftZText" />
<xs:element maxOccurs="1" minOccurs="0" name="loading-port" type="gdt:Max140Lines2x70SwiftZText" />
<xs:element maxOccurs="1" minOccurs="0" name="discharge-port" type="gdt:Max140Lines2x70SwiftZText" />
<xs:element maxOccurs="1" minOccurs="0" name="final-destination-place" type="gdt:Max140Lines2x70SwiftZText" />
<!-- instructions-paying-accepting-negotiating-bank (78): Max780SwiftXText -> Max1950SwiftZText -->
<!-- Before -->
<xs:element ... name="instructions-paying-accepting-negotiating-bank" type="gdt:Max780SwiftXText" />
<!-- After -->
<xs:element ... name="instructions-paying-accepting-negotiating-bank" type="gdt:Max1950SwiftZText" />
<!-- On LCIM the drafts-at / shipment / instructions changed fields also carry their -new-value companions. -->
LC consolidated view (gtsa-lc-cv.xsd)
Added
<xs:element maxOccurs="1" minOccurs="0" name="calculated-expiry-date" type="xs:date" />
<xs:element maxOccurs="1" minOccurs="0" name="incoterms" type="gdt:IncotermsType" />
<xs:element maxOccurs="1" minOccurs="0" name="incoterms-narrative" type="gdt:Max140Lines2x70SwiftZText" />Changed
<!-- drafts-at: Max105SwiftXText -> Max105SwiftZText -->
<!-- Shipment fields (taking-in-charge-place / loading-port / discharge-port / final-destination-place): -->
<!-- Max140SwiftZText -> Max140Lines2x70SwiftZText -->
<!-- instructions-paying-accepting-negotiating-bank: Max780SwiftXText -> Max1950SwiftZText -->
Domestic Guarantee consolidated view (gtsa-dg-cv.xsd)
Added
<xs:element maxOccurs="1" minOccurs="0" name="calculated-expiry-date" type="xs:date" />
Financing Request (gtsa-financingrequest.xsd) / Financing Request consolidated view (gtsa-financingrequest-cv.xsd)
Changed
<!-- purchase-incoterms and sale-incoterms now reference the shared IncotermsType -->
<!-- (relocated from the eDocs namespace gedt: to the shared data-types namespace gdt:). -->
<!-- Before -->
<xs:element maxOccurs="1" minOccurs="0" name="purchase-incoterms" nillable="true" type="gedt:IncotermsType" />
<xs:element maxOccurs="1" minOccurs="0" name="sale-incoterms" nillable="true" type="gedt:IncotermsType" />
<!-- After -->
<xs:element maxOccurs="1" minOccurs="0" name="purchase-incoterms" nillable="true" type="gdt:IncotermsType" />
<xs:element maxOccurs="1" minOccurs="0" name="sale-incoterms" nillable="true" type="gdt:IncotermsType" />
Trade Finance data types (gtsa-tf-data-types.xsd)
Added
<xs:simpleType name="ChargeType">
<xs:restriction base="xs:string">
<xs:enumeration value="AGENT" />
<xs:enumeration value="COMM" />
<xs:enumeration value="CORCOM" />
<xs:enumeration value="DISC" />
<xs:enumeration value="INSUR" />
<xs:enumeration value="POST" />
<xs:enumeration value="STAMP" />
<xs:enumeration value="TELECHAR" />
<xs:enumeration value="WAREHOUS" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="UndertakingStructureType">
<xs:restriction base="xs:string">
<xs:enumeration value="Direct" />
<xs:enumeration value="Indirect" />
</xs:restriction>
</xs:simpleType>
eDocs data types (gtsa-edocs-data-types.xsd) (moved to gtsa-data-types.xsd)
Removed
<!-- IncotermsType relocated to the shared data-types schema (now gdt:IncotermsType). -->
<xs:simpleType name="IncotermsType">
<xs:restriction base="xs:string">
<xs:enumeration value="CFR" />
<xs:enumeration value="CIF" />
<xs:enumeration value="CIP" />
<xs:enumeration value="CPT" />
<xs:enumeration value="DAP" />
<xs:enumeration value="DAT" />
<xs:enumeration value="DDP" />
<xs:enumeration value="DPU" />
<xs:enumeration value="EXW" />
<xs:enumeration value="FAS" />
<xs:enumeration value="FCA" />
<xs:enumeration value="FOB" />
</xs:restriction>
</xs:simpleType>
Shared data types (gtsa-data-types.xsd)
Added
<xs:simpleType name="Max34SwiftXText">
<xs:restriction base="gdt:SwiftXText">
<xs:maxLength value="34" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Max35SwiftZText">
<xs:restriction base="gdt:SwiftZText">
<xs:maxLength value="35" />
</xs:restriction>
</xs:simpleType>
<!-- Swift 2026 R4+ structured Name field: 4 lines of 35 chars, Swift Z charset (4*35 + 3 separators = 143). -->
<xs:simpleType name="Max4Lines35SwiftZText">
<xs:restriction base="gdt:SwiftZText">
<xs:maxLength value="143" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Max105SwiftZText">
<xs:restriction base="gdt:SwiftZText">
<xs:maxLength value="107" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Max140Lines2x70SwiftZText">
<xs:restriction base="gdt:SwiftZText">
<xs:maxLength value="141" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Max1950SwiftZText">
<xs:restriction base="gdt:SwiftZText">
<xs:maxLength value="1979" />
</xs:restriction>
</xs:simpleType>
<!-- IncotermsType relocated here from the eDocs schema, with a new "OTH" value. -->
<xs:simpleType name="IncotermsType">
<xs:restriction base="xs:string">
<xs:enumeration value="CFR" />
<xs:enumeration value="CIF" />
<xs:enumeration value="CIP" />
<xs:enumeration value="CPT" />
<xs:enumeration value="DAP" />
<xs:enumeration value="DAT" />
<xs:enumeration value="DDP" />
<xs:enumeration value="DPU" />
<xs:enumeration value="EXW" />
<xs:enumeration value="FAS" />
<xs:enumeration value="FCA" />
<xs:enumeration value="FOB" />
<xs:enumeration value="OTH" />
</xs:restriction>
</xs:simpleType>Changed ( This impacts only corporate addresses / names. The bank addresses / names remain unchanged )
<!-- Party name fields widened to the structured 4x35 Swift Z type -->
<!-- CompanyInformation / related parties: name Max35SwiftXText -> Max4Lines35SwiftZText -->
<!-- Address complexType: road1..3 charset widened and new lines added -->
<!-- Before -->
<xs:complexType name="Address">
<xs:sequence>
<xs:element name="road1" minOccurs="0" maxOccurs="1" type="gdt:Max35SwiftXText" />
<xs:element name="road2" minOccurs="0" maxOccurs="1" type="gdt:Max35SwiftXText" />
<xs:element name="road3" minOccurs="0" maxOccurs="1" type="gdt:Max35SwiftXText" />
</xs:sequence>
</xs:complexType>
<!-- After -->
<xs:complexType name="Address">
<xs:sequence>
<xs:element name="road1" minOccurs="0" maxOccurs="1" type="gdt:Max35SwiftZText" />
<xs:element name="road2" minOccurs="0" maxOccurs="1" type="gdt:Max35SwiftZText" />
<xs:element name="road3" minOccurs="0" maxOccurs="1" type="gdt:Max35SwiftZText" />
<xs:element name="road4" minOccurs="0" maxOccurs="1" type="gdt:Max35SwiftZText" />
<xs:element name="city" minOccurs="0" maxOccurs="1" type="gdt:Max35SwiftZText" />
<xs:element name="postCode" minOccurs="0" maxOccurs="1" type="gdt:Max16SwiftXText" />
<xs:element name="country" minOccurs="0" maxOccurs="1" type="gdt:CountryCode" />
</xs:sequence>
</xs:complexType>SDK Changes
Added types
public enum ChargeType {
AGENT,
COMM,
CORCOM,
DISC,
INSUR,
POST,
STAMP,
TELECHAR,
WAREHOUS;
}
public enum UndertakingStructureType {
Direct,
Indirect;
}Modified Types
public enum FieldType {
//added
Max34SwiftXText(FieldTextDto.class, String.class)
Max105SwiftZText(FieldTextDto.class, String.class),
Max140Lines2x70SwiftZText(FieldTextDto.class, String.class),
Max1950SwiftZText(FieldTextDto.class, String.class),
ChargeType( FieldEnumDto.class, ChargeType.class),
UndertakingStructureType(FieldEnumDto.class, io.komgo.konsole.sdk.dto.type.tf.UndertakingStructureType.class)
}
//package change
//from: package io.komgo.konsole.sdk.dto.type.edocs;
//to: package io.komgo.konsole.sdk.dto.type;
public enum IncotermsEnum {
//added
FOB;
FOB,
OTH;
}
public class AddressDto {
//added
private String road4;
private String city;
private String postCode;
private String country;
}
public enum FieldTypeModelEnumDto {
//added
undertaking_structure(UndertakingStructureType),
requested_issue_date(LocalDate),
settlement_account(Max34SwiftXText),
hs_code(Max65SwiftXText),
hs_code_new_value(Max65SwiftXText),
charge_code(ChargeType),
charge_amount(Amount),
charge_narrative(Max210SwiftZText),
structured_charge(ListOfDifferentFields, charge_code, charge_amount, charge_narrative),
structured_charge_list(ListOfIdenticalFields, structured_charge),
incoterms(IncotermsType),
incoterms_narrative(Max140Lines2x70SwiftZText),
incoterms_new_value(IncotermsType),
incoterms_narrative_new_value(Max140Lines2x70SwiftZText),
governing_law(CountryCode),
governing_law_subdivision(Max35SwiftXText),
place_of_jurisdiction(Max65SwiftXText),
taking_in_charge_place__r4(Max140Lines2x70SwiftZText),
taking_in_charge_place_new_value__r4(Max140Lines2x70SwiftZText),
loading_port__r4(Max140Lines2x70SwiftZText),
loading_port_new_value__r4(Max140Lines2x70SwiftZText),
discharge_port__r4(Max140Lines2x70SwiftZText),
discharge_port_new_value__r4(Max140Lines2x70SwiftZText),
final_destination_place__r4(Max140Lines2x70SwiftZText),
final_destination_place_new_value__r4(Max140Lines2x70SwiftZText),
total_amount_claimed(Amount),
total_amount_claimed_date(LocalDate),
external_message_id(Max255Text)
//modified
drafts_at(Max105SwiftZText),
drafts_at_new_value(Max105SwiftZText),
instructions_paying_accepting_negotiating_bank(Max780SwiftXText),
instructions_paying_accepting_negotiating_bank_new_value(Max780SwiftXText),
instructions_paying_accepting_negotiating_bank(Max1950SwiftZText),
instructions_paying_accepting_negotiating_bank_new_value(Max1950SwiftZText),
}
public enum MessageRevisionDto {
//added
R4
}