# iso8583sim > Parse, build, validate and simulate ISO 8583 payment messages in Python. - [iso8583sim](https://iso8583sim.com/docs/index.md): Parse, build, validate and simulate ISO 8583 payment messages in Python. - [Installation](https://iso8583sim.com/docs/getting-started/installation.md): Install iso8583sim from PyPI: - [Quick Start](https://iso8583sim.com/docs/getting-started/quickstart.md): This guide will get you parsing and building ISO 8583 messages in under 5 minutes. - [ISO 8583 Concepts](https://iso8583sim.com/docs/getting-started/concepts.md): ISO 8583 is the international standard for financial transaction card-originated messages. - [Upgrading](https://iso8583sim.com/docs/getting-started/upgrading.md): The string-based API (ISO8583Parser.parse, ISO8583Builder.build, ISO8583Validator) has not changed since 1.0. - [Core Module](https://iso8583sim.com/docs/core/index.md): The core module provides all ISO 8583 message handling functionality. - [Types & Fields](https://iso8583sim.com/docs/core/types.md): The types module defines all data types, enums, and field definitions used throughout iso8583sim. - [Parser](https://iso8583sim.com/docs/core/parser.md): The ISO8583Parser class converts raw ISO 8583 message strings into structured ISO8583Message objects. - [Builder](https://iso8583sim.com/docs/core/builder.md): The ISO8583Builder class constructs raw ISO 8583 message strings from ISO8583Message objects. - [Validator](https://iso8583sim.com/docs/core/validator.md): The ISO8583Validator class validates ISO 8583 messages for structure and content correctness. - [EMV Data](https://iso8583sim.com/docs/core/emv.md): The EMV module handles Field 55 (ICC Data) which contains chip card data in TLV (Tag-Length-Value) format. - [PIN Blocks and MACs](https://iso8583sim.com/docs/core/security.md): The iso8583sim.security module builds and checks the two security fields most test harnesses need: PIN blocks for field 52 and message authentication codes (MACs) for fields 64 and 128. - [Version Conversion](https://iso8583sim.com/docs/core/convert.md): convert_message converts a message between the 1987, 1993 and 2003 versions of ISO 8583. - [Wire Formats](https://iso8583sim.com/docs/core/wire.md): The rest of iso8583sim works with messages as strings: an ASCII MTI, a hex bitmap, and binary fields as hex. - [Object Pool](https://iso8583sim.com/docs/core/pool.md): The MessagePool class provides object pooling for high-throughput scenarios, reducing memory allocation overhead. - [Card Networks](https://iso8583sim.com/docs/networks/index.md): iso8583sim supports multiple card networks with network-specific field definitions and validation rules. - [VISA](https://iso8583sim.com/docs/networks/visa.md): VISA-specific field definitions and requirements for iso8583sim. - [Mastercard](https://iso8583sim.com/docs/networks/mastercard.md): Mastercard-specific field definitions and requirements for iso8583sim. - [Other Networks](https://iso8583sim.com/docs/networks/others.md): Support for American Express, Discover, JCB, and UnionPay. - [CLI Reference](https://iso8583sim.com/docs/cli/index.md): iso8583sim provides a command-line interface for parsing, building, and validating ISO 8583 messages. - [Networking](https://iso8583sim.com/docs/net/index.md): iso8583sim can talk to real hosts over TCP, and can stand in for one. - [REST API](https://iso8583sim.com/docs/web/index.md): iso8583sim includes a REST API built with FastAPI, for tools and services that aren't written in Python. - [MCP Server](https://iso8583sim.com/docs/mcp-server/index.md): iso8583sim includes an MCP (Model Context Protocol) server. - [LLM Features](https://iso8583sim.com/docs/llm/index.md): iso8583sim includes AI-powered features for message explanation and generation using large language models. - [LLM Providers](https://iso8583sim.com/docs/llm/providers.md): iso8583sim supports multiple LLM providers with a unified interface. - [Message Explainer](https://iso8583sim.com/docs/llm/explainer.md): The MessageExplainer class uses LLMs to explain ISO 8583 messages in plain English. - [Message Generator](https://iso8583sim.com/docs/llm/generator.md): The MessageGenerator class uses LLMs to create ISO 8583 messages from natural language descriptions. - [Architecture Overview](https://iso8583sim.com/docs/architecture/overview.md): iso8583sim is designed with a focus on performance, extensibility, and ease of use. - [Message Flow](https://iso8583sim.com/docs/architecture/message-flow.md): This document describes how ISO 8583 messages flow through iso8583sim. - [Module Structure](https://iso8583sim.com/docs/architecture/module-structure.md): This document describes the package organization and module responsibilities. - [Performance Optimization Guide](https://iso8583sim.com/docs/performance.md): This document describes the performance optimizations implemented in iso8583sim v0.3.0 and how to leverage them for high-throughput message processing. - [Troubleshooting](https://iso8583sim.com/docs/troubleshooting.md): Common issues and solutions when using iso8583sim. - [Types](https://iso8583sim.com/docs/api/core/types.md): iso8583sim.core.types - [Parser](https://iso8583sim.com/docs/api/core/parser.md): iso8583sim.core.parser - [Builder](https://iso8583sim.com/docs/api/core/builder.md): iso8583sim.core.builder - [Validator](https://iso8583sim.com/docs/api/core/validator.md): iso8583sim.core.validator - [Network rules](https://iso8583sim.com/docs/api/core/network_rules.md): Network-specific field format rules. - [EMV](https://iso8583sim.com/docs/api/core/emv.md): EMV (Europay, Mastercard, Visa) TLV data handling. - [Codes](https://iso8583sim.com/docs/api/core/codes.md): Reference tables and lookups for ISO 8583 code values. - [Describe](https://iso8583sim.com/docs/api/core/describe.md): Rule-based, human-readable descriptions of ISO 8583 messages. - [Convert](https://iso8583sim.com/docs/api/core/convert.md): Convert messages between ISO 8583 versions (1987, 1993, 2003). - [Samples](https://iso8583sim.com/docs/api/core/samples.md): Valid sample messages for tests and demos. - [Pool](https://iso8583sim.com/docs/api/core/pool.md): Object pooling for high-throughput ISO8583 message processing. - [PIN blocks](https://iso8583sim.com/docs/api/security/pinblock.md): ISO 9564-1 PIN blocks (formats 0, 1, 3 and 4). - [MACs](https://iso8583sim.com/docs/api/security/mac.md): ISO 9797-1 message authentication codes for ISO 8583 fields 64 and 128. - [WireFormat](https://iso8583sim.com/docs/api/wire/format.md): Wire formats: how an ISO 8583 message is laid out as bytes on the network. - [Encode and decode](https://iso8583sim.com/docs/api/wire/codec.md): Encode messages to bytes and decode them back, in any WireFormat. - [Framing](https://iso8583sim.com/docs/api/net/framing.md): Message framing for TCP: length headers and TPDUs. - [Client](https://iso8583sim.com/docs/api/net/client.md): Asyncio TCP client that sends ISO 8583 requests and waits for their responses. - [Mock host](https://iso8583sim.com/docs/api/net/host.md): Mock issuer host: an asyncio TCP server that answers ISO 8583 requests by rules. - [Load testing](https://iso8583sim.com/docs/api/net/load.md): Load generator: send many requests concurrently and measure throughput and latency. - [Base](https://iso8583sim.com/docs/api/llm/base.md): Base classes for LLM providers. - [Explainer](https://iso8583sim.com/docs/api/llm/explainer.md): Message Explainer using LLM to provide human-readable explanations. - [Generator](https://iso8583sim.com/docs/api/llm/generator.md): Message Generator using LLM to create ISO 8583 messages from natural language. - [Providers](https://iso8583sim.com/docs/api/llm/providers.md): LLM provider factory and auto-detection. - [MCP server](https://iso8583sim.com/docs/api/mcp/server.md): MCP server exposing the ISO 8583 toolkit to MCP clients (Claude, Cursor, etc.). - [REST app](https://iso8583sim.com/docs/api/web/app.md): REST API for iso8583sim, built with FastAPI. - [Demo helpers](https://iso8583sim.com/docs/api/demo.md): Demo module with helper functions for notebooks and interactive use. - [REST API](https://iso8583sim.com/docs/rest/index.md): Run iso8583sim as an HTTP service and try every endpoint from this page. - [Build](https://iso8583sim.com/docs/api-reference/messages/build.md): Build a raw message from an MTI and field values. - [Convert](https://iso8583sim.com/docs/api-reference/messages/convert.md): Convert a message to another ISO 8583 version, listing dropped fields and notes. - [Explain](https://iso8583sim.com/docs/api-reference/messages/explain.md): Explain a message in plain English, with rules (default) or an LLM. - [Generate](https://iso8583sim.com/docs/api-reference/messages/generate.md): Generate a valid test message from options, or from a description with an LLM. - [Parse](https://iso8583sim.com/docs/api-reference/messages/parse.md): Parse a raw message into its MTI, bitmap and named fields. - [Validate](https://iso8583sim.com/docs/api-reference/messages/validate.md): Validate a message, optionally against other networks' rules too. - [Health](https://iso8583sim.com/docs/api-reference/meta/health.md): Liveness check. ## OpenAPI Specs - [openapi](/docs/rest/openapi.json) ## Optional - [Website](https://iso8583sim.com) - [Changelog](https://github.com/bassrehab/ISO8583-Simulator/blob/main/CHANGELOG.md) This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.