Skip to content

CLI Reference

iso8583sim provides a command-line interface for parsing, building, and validating ISO 8583 messages.

Installation

The CLI is included with iso8583sim:

pip install iso8583sim

Basic Usage

# Get help
iso8583sim --help

# Parse a message
iso8583sim parse "0100702406C120E09000..."

# Build a message
iso8583sim build --mti 0100 --fields fields.json

# Validate a message
iso8583sim validate "0100702406C120E09000..."

# Generate sample messages
iso8583sim generate --type auth --pan 4111111111111111

Commands

parse

Parse a raw ISO 8583 message and display its contents.

iso8583sim parse MESSAGE [OPTIONS]

Arguments:

Argument Description
MESSAGE Raw ISO 8583 message as hex string

Options:

Option Description
--version ISO 8583 version (1987, 1993, 2003)
--network Card network (visa, mastercard, amex, etc.)
--format Output format (table, json, raw)
--verbose Show detailed field information

Examples:

# Basic parsing
iso8583sim parse "0100702406C120E09000..."

# With version specification
iso8583sim parse "0100..." --version 1993

# JSON output
iso8583sim parse "0100..." --format json

# Verbose output with field descriptions
iso8583sim parse "0100..." --verbose

build

Build an ISO 8583 message from field values.

iso8583sim build [OPTIONS]

Options:

Option Description
--mti Message Type Indicator (required)
--fields JSON file with field values
--field Individual field (can be repeated): --field 2=4111111111111111
--version ISO 8583 version
--output Output file (default: stdout)

Examples:

# Build from JSON file
iso8583sim build --mti 0100 --fields fields.json

# Build with inline fields
iso8583sim build --mti 0100 \
    --field 2=4111111111111111 \
    --field 3=000000 \
    --field 4=000000010000

# Save to file
iso8583sim build --mti 0100 --fields fields.json --output message.hex

fields.json format:

{
    "2": "4111111111111111",
    "3": "000000",
    "4": "000000010000",
    "11": "123456",
    "41": "TERM0001",
    "42": "MERCHANT123456 "
}

validate

Validate an ISO 8583 message for structure and content.

iso8583sim validate MESSAGE [OPTIONS]

Options:

Option Description
--network Validate against network requirements
--strict Enable strict validation mode

Examples:

# Basic validation
iso8583sim validate "0100..."

# With network validation
iso8583sim validate "0100..." --network visa

# Strict mode
iso8583sim validate "0100..." --strict

Output:

Validation Results:
  Message is VALID

  Fields validated: 7
  Network: VISA (auto-detected)

Or with errors:

Validation Results:
  Message is INVALID

  Errors:
    - Field 4 must contain only digits
    - Missing required field: 11

generate

Generate sample ISO 8583 messages.

iso8583sim generate [OPTIONS]

Options:

Option Description
--type Message type (auth, financial, reversal)
--pan Primary Account Number
--amount Transaction amount (in cents)
--count Number of messages to generate
--output Output file

Examples:

# Generate authorization request
iso8583sim generate --type auth --pan 4111111111111111 --amount 10000

# Generate multiple messages
iso8583sim generate --type auth --count 10

# Save to file
iso8583sim generate --type auth --output messages.txt

Output Formats

Table (default)

┌─────────┬───────────────────────────┬────────────────────────┐
│ Field   │ Value                     │ Description            │
├─────────┼───────────────────────────┼────────────────────────┤
│ MTI     │ 0100                      │ Authorization Request  │
│ 2       │ 4111111111111111          │ Primary Account Number │
│ 3       │ 000000                    │ Processing Code        │
│ 4       │ 000000010000              │ Amount                 │
└─────────┴───────────────────────────┴────────────────────────┘

JSON

iso8583sim parse "0100..." --format json
{
    "mti": "0100",
    "bitmap": "7024058020C09000",
    "fields": {
        "2": "4111111111111111",
        "3": "000000",
        "4": "000000010000"
    },
    "network": "VISA"
}

Raw

iso8583sim parse "0100..." --format raw
0100
7024058020C09000
2: 4111111111111111
3: 000000
4: 000000010000

Exit Codes

Code Meaning
0 Success
1 Parse error
2 Validation error
3 Build error
4 File not found

Environment Variables

Variable Description
ISO8583SIM_VERSION Default ISO 8583 version
ISO8583SIM_NETWORK Default card network
ANTHROPIC_API_KEY For LLM features
OPENAI_API_KEY For LLM features

Piping and Scripting

# Pipe messages
cat messages.txt | while read line; do
    iso8583sim parse "$line" --format json
done

# Parse from file
iso8583sim parse "$(cat message.hex)"

# Build and parse roundtrip
iso8583sim build --mti 0100 --fields fields.json | iso8583sim parse -

Troubleshooting

Common Issues

"Command not found":

# Ensure iso8583sim is in PATH
pip show iso8583sim  # Check installation
python -m iso8583sim.cli --help  # Alternative invocation

"Invalid hex string":

# Ensure message contains only hex characters (0-9, A-F)
# Remove any spaces or newlines

"Parse error: Invalid bitmap":

# Check that bitmap is 16 hex characters
# Primary bitmap must be exactly 8 bytes (16 hex chars)