Package Overview
Core Module (iso8583sim.core)
The core module handles ISO 8583 message parsing, building, and validation.
types.py
Central type definitions and field specifications. Classes:ISO8583Version- Protocol version enum (1987, 1993, 2003)FieldType- Field data type enum (NUMERIC, ALPHA, LLVAR, etc.)CardNetwork- Card network enum (VISA, MASTERCARD, etc.)MessageClass- Message class enum (AUTHORIZATION, FINANCIAL, etc.)MessageFunction- Message function enum (REQUEST, RESPONSE, etc.)FieldDefinition- Field metadata dataclassISO8583Message- Message data structureParseError/BuildError- Exception types
ISO8583_FIELDS- Standard ISO 8583 field definitions (128 fields)NETWORK_SPECIFIC_FIELDS- Network-specific field overridesVERSION_SPECIFIC_FIELDS- Version-specific field overrides
get_field_definition()- Get field definition with network/version overridesdetect_network()- Identify card network from PAN
parser.py
Message parsing from raw string toISO8583Message.
Classes:
ISO8583Parser- Main parser classEMVTag- EMV tag data structure
parse(message, network=None)- Parse raw message string_parse_mti()- Extract Message Type Indicator_parse_bitmap()- Parse primary/secondary bitmaps_parse_fields()- Parse individual fields
builder.py
Message building fromISO8583Message to raw string.
Classes:
ISO8583Builder- Main builder class
build(message)- Build raw message string_format_field_value()- Format field with padding_build_bitmap()- Generate bitmap from fields_build_field()- Build field with length prefix
validator.py
Message validation with network-specific rules. Classes:ISO8583Validator- Main validator class
validate_message(message)- Full message validationvalidate_field(field_number, value, field_def)- Single field validation_validate_pan_luhn()- PAN Luhn checksum validation_validate_visa_specific()- VISA-specific rules_validate_mastercard_specific()- Mastercard-specific rules
emv.py
EMV/ICC chip card data handling. Functions:parse_emv_data(data)- Parse Field 55 TLV databuild_emv_data(tags)- Build Field 55 from tagsformat_emv_tag()- Format EMV tag for display
codes.py
Reference tables and lookups for code values. Constants:RESPONSE_CODES- Response codes (field 39) and meaningsPROCESSING_CODES- Transaction types (first two digits of field 3)NETWORK_MANAGEMENT_CODES- Network management codes (field 70)CURRENCY_CODES- Common ISO 4217 codes with minor unit exponents
detect_network_from_pan(pan)- Detect the card network from a PAN prefix
pool.py
Object pooling for high-throughput scenarios. Classes:MessagePool- Reusable message object pool
acquire()- Get message from poolrelease(message)- Return message to pool
LLM Module (iso8583sim.llm)
AI-powered message explanation and generation.
base.py
Provider interface and exceptions. Classes:LLMProvider- Abstract base class for providersLLMResponse- Response with metadata dataclassLLMError- Base LLM exceptionProviderConfigError- Configuration errorProviderNotAvailableError- Missing provider/package
explainer.py
Message explanation using LLMs. Classes:MessageExplainer- Explain messages in plain English
explain(message, verbose=False)- Explain a messageexplain_field(field_number, value)- Explain a single fieldexplain_response_code(code)- Explain response code
generator.py
Message generation from natural language. Classes:MessageGenerator- Generate messages from descriptions
generate(description, validate=True)- Generate messagesuggest_fields(partial_message)- Suggest missing fields
providers/
LLM provider implementations. Files:__init__.py- Provider factory and auto-detectionanthropic.py- Anthropic (Claude) provideropenai.py- OpenAI (GPT) providergoogle.py- Google (Gemini) providerollama.py- Ollama (local) provider
get_provider(name=None)- Get provider instancelist_available_providers()- List configured providerslist_installed_providers()- List installed providers
CLI Module (iso8583sim.cli)
Command-line interface using Click.
commands.py
CLI command implementations. Commands:parse- Parse a raw ISO 8583 messagebuild- Build a message from fieldsvalidate- Validate a messagegenerate- Generate sample messagesmcp- Run the MCP server over stdio
MCP Module (iso8583sim.mcp)
MCP server that exposes the core module to AI assistants. Requires the mcp extra.
Functions:
create_server()- Build the server with its tools, resources and promptsmain()- Run the server over stdio
Demo Module (iso8583sim.demo)
Interactive helpers for notebooks and exploration.
Functions:
generate_auth_request()- Generate authorization requestgenerate_emv_auth()- Generate EMV authorizationpretty_print()- Format message for display
Cython Extensions
Optional compiled extensions for performance. Files:core/_parser_fast.pyx- Fast parsing functionscore/_bitmap.pyx- Fast bitmap operationscore/_validator_fast.pyx- Fast validation functions