{
  "slug": "mt940-statement-parse",
  "name": "gizza-ai/mt940-statement-parse",
  "version": "0.1.0",
  "title": "MT940 Parser — Convert SWIFT Bank Statements to JSON or CSV",
  "description": "Parse a SWIFT MT940 bank statement into JSON or CSV in your browser: balances, dates, debit/credit, amounts, references and narrative. No upload, free.",
  "tags": [
    "mt940 parser",
    "mt940 to csv",
    "mt940 to json",
    "swift statement parser",
    "bank statement converter"
  ],
  "category": "utilities",
  "urls": {
    "page": "https://gizza.ai/tools/mt940-statement-parse/",
    "markdown": "https://gizza.ai/tools/mt940-statement-parse/index.md",
    "descriptor": "https://gizza.ai/tools/mt940-statement-parse/tool.json",
    "deep_link_example": "https://gizza.ai/tools/mt940-statement-parse/?data=%3A20%3AREF12345%0A%3A25%3ANL91ABNA0417164300%0A%3A28C%3A00123%2F001%0A%3A60F%3AC240101EUR1000%2C00%0A%3A61%3A2401020102D150%2C50NTRFNONREF%2F%2FBANKREF1%0A%3A86%3APayment%20to%20Acme%20Corp%20invoice%2042%0A%3A62F%3AC240131EUR849%2C50&output=json&date_format=iso&delimiter=comma&signed_amounts=true"
  },
  "cli": "gizza tool mt940-statement-parse \":20:REF12345\n:25:NL91ABNA0417164300\n:28C:00123/001\n:60F:C240101EUR1000,00\n:61:2401020102D150,50NTRFNONREF//BANKREF1\n:86:Payment to Acme Corp invoice 42\n:62F:C240131EUR849,50\"",
  "tool": {
    "description": "Parse a SWIFT MT940 customer bank statement (the tagged-field format — :20: :25: :28C: :60F: :61: :86: :62F: :64: :65:) into structured statements: opening/closing/available balances plus each transaction's value & entry dates, debit/credit mark, signed amount, currency, 4-char transaction-type code, customer & bank references, and :86: narrative. Output full JSON (default) or a flat CSV transaction table. Handles multi-statement files, reversal marks (RC/RD), reformats dates (iso/us/eu/raw), and picks the CSV delimiter.",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "data": {
          "description": "The raw MT940 statement text (the SWIFT tagged fields — :20: :25: :28C: :60F: :61: :86: :62F: …). One or more statements; block headers and the '-' trailer are ignored.",
          "type": "string"
        },
        "date_format": {
          "default": "iso",
          "description": "How value/entry dates are rendered: 'iso' (YYYY-MM-DD), 'us' (MM/DD/YYYY), 'eu' (DD/MM/YYYY), or 'raw' (the source YYMMDD). Default 'iso'.",
          "enum": [
            "iso",
            "us",
            "eu",
            "raw"
          ],
          "type": "string"
        },
        "delimiter": {
          "default": "comma",
          "description": "CSV field separator, used only when output='csv': 'comma', 'semicolon', 'tab', or 'pipe'. Default 'comma'.",
          "enum": [
            "comma",
            "semicolon",
            "tab",
            "pipe"
          ],
          "type": "string"
        },
        "output": {
          "default": "json",
          "description": "Output format: 'json' for full structured statements (balances + transactions) or 'csv' for a flat transaction table. Default 'json'.",
          "enum": [
            "json",
            "csv"
          ],
          "type": "string"
        },
        "signed_amounts": {
          "default": true,
          "description": "When true, debit amounts and balances are negative and credits positive; when false, amounts stay positive and the D/C mark carries the direction. Default true.",
          "type": "boolean"
        }
      },
      "required": [
        "data"
      ],
      "type": "object"
    }
  }
}