Bank statement import fails in treasury management on ICS 2021 due to unsupported file format

Treasury management module rejects bank statement imports with “unsupported file format” errors on ICS 2021. We receive MT940 format statements from our bank, but the import process consistently fails.

The error message in the import log:


Error: MT940 parse failed at line 15
Field :86: contains invalid transaction code
File structure validation failed

We’re using ION with a custom integration for file transformation before import. The same MT940 files imported successfully on our legacy system. Our cash reconciliation process is completely manual now because automated statement import doesn’t work. Is there a specific MT940 variant that ICS 2021 treasury management expects? The file structure seems standard to us, but clearly something isn’t compatible.

We’re looking at the ION templates now. Do we need to configure the transaction code mapping manually, or does the template handle Deutsche Bank codes automatically? Also, how do we ensure the XML output matches what treasury management expects?

ICS 2021 treasury management supports MT940 but only specific variants. Which bank are you using? Different banks implement MT940 with slight variations in field formats, especially in the :86: supplementary details field. The transaction code format might not match what CloudSuite expects.

We’re using Deutsche Bank. The MT940 files have transaction codes like “020” and “051” in the :86: field. Are these not standard codes? What format does CloudSuite expect?

I recommend using Infor’s pre-built MT940 transformation templates in ION rather than custom integration. They handle most bank variants including Deutsche Bank. The templates map bank-specific codes to SWIFT standard codes automatically.

Your import failures are caused by MT940 variant incompatibility and file structure validation issues specific to ICS 2021.

MT940 Variant Compatibility: Deutsche Bank uses an extended MT940 variant (MT940-DB) that differs from SWIFT standard MT940 in several ways:

  • Transaction codes in :86: field use bank-specific 3-digit codes (020, 051, 166, etc.)
  • Field separators use proprietary format (slash-delimited vs standard colon-delimited)
  • Supplementary details include bank-specific data elements not in SWIFT standard

ICS 2021 treasury management strictly validates against SWIFT standard MT940. You must transform Deutsche Bank’s variant to standard format.

File Structure Validation: ICS 2021 introduced mandatory field requirements:

  1. :20: Transaction Reference - must be unique and max 16 characters
  2. :25: Account Identification - must match account configured in treasury management
  3. :28C: Statement Number - format must be XXXXX/XXX (statement number/page number)
  4. :60F: Opening Balance - must include currency code and date in YYMMDD format
  5. :86: Transaction Details - must follow structured format with specific separators

Integration Transformation Steps:

Implement transformation in ION using these steps:


// Pseudocode - MT940 transformation logic:
1. Parse incoming MT940-DB file line by line
2. Map Deutsche Bank transaction codes to SWIFT codes:
   020 → NTRF (Transfer), 051 → NDDT (Direct Debit), etc.
3. Restructure :86: field from slash-delimited to colon-delimited
4. Validate mandatory fields and add defaults if missing
5. Convert to CloudSuite XML schema for treasury import
// See: Treasury Management Integration Guide Section 8.3

Solution Implementation:

  1. Use ION Pre-built Template:

    • ION Desk > Integration Flows > Banking > MT940 Import
    • Select “Deutsche Bank MT940” variant template
    • Template includes pre-configured transaction code mappings
  2. Configure Transaction Code Mapping:

    • Open template configuration
    • Verify mappings in Transaction Code Mapping table:
      • DB Code 020 → SWIFT NTRF
      • DB Code 051 → SWIFT NDDT
      • DB Code 166 → SWIFT NCHG
    • Add custom mappings for any codes not in default template
  3. XML Output Configuration: The template outputs XML matching CloudSuite schema:

<BankStatement>
  <AccountID>DE89370400440532013000</AccountID>
  <StatementDate>2025-02-20</StatementDate>
  <Transaction>
    <Code>NTRF</Code>
  1. Validation Settings:

    • Treasury Management > Configuration > Import Settings
    • Set “MT940 Validation Level” to “Standard” (not “Strict”)
    • Enable “Auto-correct Minor Format Issues”
    • Map your bank account ID to CloudSuite account master
  2. Testing:

    • Test transformation with a single-day statement first
    • Verify transaction codes are mapped correctly in import preview
    • Check that all mandatory fields pass validation
    • Monitor import log for any remaining format warnings

After implementing the ION template with proper transaction code mapping and validation settings, your Deutsche Bank MT940 statements should import successfully into treasury management, enabling automated cash reconciliation.

Deutsche Bank uses a proprietary MT940 variant with extended transaction codes. ICS 2021 expects SWIFT-standard codes, not bank-specific extensions. You need to transform those codes in your ION integration before they reach treasury management. The :86: field structure also needs to follow a specific pattern - CloudSuite expects structured data with specific separators, not free-form text.