> ## Documentation Index
> Fetch the complete documentation index at: https://iso8583sim.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# iso8583sim

> Parse, build, validate and simulate ISO 8583 payment messages in Python.

iso8583sim is a toolkit for card payment messages. It covers the 1987, 1993 and 2003 versions of ISO 8583 and the VISA, Mastercard, AMEX, Discover, JCB and UnionPay networks, from a single message up to a mock issuer host under load.

```bash theme={null}
pip install iso8583sim
```

```python theme={null}
from iso8583sim.core.builder import ISO8583Builder
from iso8583sim.core.parser import ISO8583Parser
from iso8583sim.core.samples import sample_message

# A VISA authorization request for 25.00
raw = ISO8583Builder().build(sample_message(amount_minor_units=2500))

message = ISO8583Parser().parse(raw)
print(message.mti, message.network, message.fields[4])
# 0100 CardNetwork.VISA 000000002500
```

## Start here

<CardGroup cols={2}>
  <Card title="Quick start" icon="rocket" href="./getting-started/quickstart">
    Build, parse and validate your first messages in a few minutes.
  </Card>

  <Card title="ISO 8583 concepts" icon="book-open" href="./getting-started/concepts">
    MTIs, bitmaps and data elements, explained with examples.
  </Card>
</CardGroup>

## Work with messages

<CardGroup cols={2}>
  <Card title="Parse, build and validate" icon="code" href="./core">
    The core API, with network-aware validation and EMV (field 55) support.
  </Card>

  <Card title="Card networks" icon="credit-card" href="./networks">
    What each network requires, and the field 22 and field 48 rules the validator enforces.
  </Card>

  <Card title="PIN blocks and MACs" icon="shield-check" href="./core/security">
    ISO 9564 PIN blocks and ISO 9797-1 MACs for fields 52, 64 and 128.
  </Card>

  <Card title="Version conversion" icon="arrow-left-right" href="./core/convert">
    Convert messages between the 1987, 1993 and 2003 versions.
  </Card>
</CardGroup>

## Simulate a network

<CardGroup cols={2}>
  <Card title="Wire formats" icon="binary" href="./core/wire">
    Binary bitmaps, packed BCD and EBCDIC, byte for byte.
  </Card>

  <Card title="Mock host and load testing" icon="network" href="./net">
    Run a rules-driven issuer, send over TCP and measure throughput.
  </Card>
</CardGroup>

## Other ways in

<CardGroup cols={3}>
  <Card title="CLI" icon="terminal" href="./cli">
    Parse, explain, convert, serve and load test from the shell.
  </Card>

  <Card title="REST API" icon="server" href="./web">
    Every feature over HTTP, with an interactive playground.
  </Card>

  <Card title="MCP server" icon="bot" href="./mcp-server">
    Let Claude, Cursor and other assistants work with messages.
  </Card>
</CardGroup>

## Performance

With the compiled extensions (included in the wheels for Linux, macOS and Windows), iso8583sim parses about 180,000 messages per second on Apple Silicon. See [Performance](./performance) for the numbers and tuning.

iso8583sim is developed on [GitHub](https://github.com/bassrehab/ISO8583-Simulator) and dual-licensed: free under the [GNU AGPL-3.0](https://github.com/bassrehab/ISO8583-Simulator/blob/main/LICENSE), or under a [commercial license](https://github.com/bassrehab/ISO8583-Simulator/blob/main/COMMERCIAL-LICENSE.md) for closed-source products and services.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.