Server · Client · Proxy · TCP/IP · REST · RS232

Host Simulator

Simulate acquirer and issuer host responses for payment terminals, ATMs, and client applications. Test your ISO8583 integrations without a production host.

On this page
host-simulator · Hitachi - 1 · Server gateway

Overview

The Host Simulator in ISO8583Studio acts as a payment host simulator for development and testing. It accepts incoming connections from POS terminals, ATMs, or other financial clients and returns configurable responses based on matching rules. This eliminates the need for a real host environment during development and QA testing.

host-simulator · ISO8583 Transaction — running as Hitachi - 1 on 0.0.0.0:8080 — a formatted 0200 request and 0210 response beside their raw hex

Multi-Mode GatewayRun as Server, Client, or Proxy with support for synchronous and asynchronous transmission.
Multiple ProtocolsTCP/IP, REST/HTTP, RS232 serial, and dial-up connections all supported out of the box.
Configurable RulesMatch requests by MTI, processing code, REST paths, headers, and return dynamic responses.
Format SupportHandle ISO8583 binary, JSON, XML, HEX, and plain text message formats with conversion.
Unsolicited MessagesSend and receive unsolicited messages for network management and terminal notifications.
Live MonitoringReal-time transaction monitoring with request/response inspection and hex dump views.

Runtime tabs

The simulator screen exposes a different subset of tabs depending on the gateway type — each card links to the section that documents it.

01 · Configure

Quick Start Guide

Follow these steps to get a basic host simulator up and running:

  1. Create a new simulator — From the Home screen, navigate to Simulator → Host Simulator and create a new configuration.
  2. Choose a Gateway Type — Select Server to accept incoming connections, Client to connect outward, or Proxy to bridge two sides.
  3. Configure Transmission Settings — Set the IP address, port, connection type (TCP/IP or REST), and message length type.
  4. Configure the ISO8583 Template — Open the ISO8583 Template tab and import a YAML template via Upload YAML, or build the bit definitions manually. Save with the top-bar Save button.
  5. Add Transactions and Responses — In the Settings tab, click + in the transaction list to add a transaction (Description, MTI, Processing Code). Select it, then in the right panel use the Fields tab to set the response field values, the Config tab for transaction-level options, and the API tab for REST matching. Click Save All in the header.
  6. Start the Simulator — Open the ISO8583 Transaction tab and click Start. Incoming traffic appears live in the request / response split view.
Tip
Use placeholders like [SV] in response field values to echo back request values. Useful for fields like System Trace or RRN that must match the original request.
01 · Configure

Gateway Types

The host simulator supports three gateway modes, each suited to different testing scenarios:

host-simulator · Gateway Type — the Server, Client and Proxy tiles with the Synchronous / Asynchronous transmission type below

Gateway TypeModeDescriptionUse Case
ServerListens for connectionsBinds to a port and accepts incoming connections from clients (POS, ATM, payment apps). Parses incoming ISO8583 requests and returns configured responses.Simulating an acquirer or issuer host during terminal testing.
ClientInitiates connectionsConnects outward to an external host. Allows sending crafted messages and inspecting responses.Testing outbound integrations, sending test transactions to a real or simulated host.
ProxyBridges two sidesReceives from one side (source), optionally modifies, and forwards to the other side (destination). Returns destination responses to source.Man-in-the-middle testing, message inspection, protocol translation between endpoints.
Note
For Server and Proxy modes, you can choose between Synchronous (one request at a time per connection) and Asynchronous (multiple concurrent requests) transmission modes.
01 · Configure

Gateway Configuration

The Gateway Type tab provides the core configuration for your simulator instance.

host-simulator · Gateway Configuration — Response Settings with the Realistic response delay selected, Max Concurrent set to 50, and Advanced Options with Enable Detailed Logging checked

Basic Settings

SettingDescription
NameA descriptive name for your simulator instance.
DescriptionOptional description for documentation purposes.
Gateway TypeServer, Client, or Proxy.
Auto-StartAutomatically start the simulator when the configuration is loaded.

Response Delay

Control how quickly the simulator responds to incoming requests. Useful for simulating real-world network conditions.

OptionDelayDescription
Instant0 msResponds immediately. Ideal for high-throughput testing.
Realistic~200-500 msSimulates typical production host response times.
Slow~1-3 sSimulates slow networks or stressed hosts.
CustomUser-definedSet an exact delay in milliseconds.

Performance Settings

  • Max Concurrent Transactions — Limit the number of simultaneous transactions the simulator will process.
  • Detailed Logging — Enable verbose logging for debugging purposes.
01 · Configure

Transmission Settings

Configure how the simulator communicates over the network. Settings differ based on your gateway type.

host-simulator · Transmission Settings — incoming and outgoing connection settings side by side, each with a connection type and a message length format

Incoming Connection (Server / Proxy)

Configure the listener that accepts incoming connections:

  • IP Address — Bind address (e.g. 0.0.0.0 for all interfaces, or a specific IP).
  • Port — TCP port to listen on.
  • Message Length Type — How message boundaries are determined.
  • Max Concurrent Connections — Limit on simultaneous client connections.
  • Timeout — Connection idle timeout in seconds.

Outgoing Connection (Client / Proxy)

Configure the connection to the destination host:

  • Target Address — Hostname or IP of the target.
  • Target Port — Port to connect to.
  • Terminate on Error — Whether to close the connection on errors.

Message Length Types

TypeDescription
BCDBinary-coded decimal length header.
NONENo length header; messages are delimited by the stream itself.
STRING_44-character ASCII string length prefix.
HEX_HL2-byte hex length header, high byte first.
HEX_LH2-byte hex length header, low byte first.
01 · Configure

Connection Types

The simulator supports multiple connection protocols for maximum flexibility:

TypeProtocolStatusDescription
TCP/IPTCP SocketFull supportStandard TCP/IP socket connections. Most common for ISO8583 host communication.
RESTHTTP/HTTPSFull supportREST API endpoints supporting JSON, XML, HEX, BASE64, BINARY, and FORM_DATA formats.
COMRS232 SerialAvailableSerial port communication with configurable baud rate, data bits, stop bits, and parity.
Dial-UpModemAvailableLegacy modem dial-up connections via phone number.
01 · Configure

Message Formats

The simulator can handle multiple message encoding formats for both source and destination.

ISO8583 Formats

FormatDescription
BYTE_ARRAYStandard binary ISO8583 encoding. Default for most payment hosts.
JSONJSON representation with configurable field mapping.
XMLXML representation with configurable field mapping.
HEXHexadecimal string representation of the binary message.
PLAIN_TEXTKey-value pairs with configurable delimiters.

REST Message Formats

When using REST connections, the following content types are supported:

  • JSON — Application/json content type
  • XML — Application/xml content type
  • HEX — Hex-encoded message body
  • BASE64 — Base64-encoded message body
  • BINARY — Raw binary body
  • FORM_DATA — Multipart form data

Format Mapping

For non-binary formats (JSON, XML, PlainText), use the Format Mapping Config in the ISO8583 Template tab to map ISO8583 fields to JSON keys, XML elements, or delimited fields.

01 · Configure

Log Settings

Configure how the simulator logs transactions and connections.

host-simulator · Log Settings — Logging Options with logfile name and max size, and Logging Content set to Parsed data using the ISO8583 protocol

SettingDescription
Log FilenameOutput file path for transaction logs.
Max Log SizeMaximum log file size in MB before rotation.
SimpleBasic transaction summaries (MTI, response code, timestamps).
Raw DataFull hex dump of request/response messages.
Text DataText-decoded message content with configurable encoding.
Parsed DataFully parsed ISO8583 fields using a template file for structured output.
02 · Run

ISO8583 Transaction Tab

The ISO8583 Transaction tab (visible for Server and Proxy gateway types) is the main runtime interface for controlling and monitoring the simulator.

host-simulator · Unsolicited Message — Message Parser — a raw ISO8583 hex message parsed into 12 fields, field 25 selected and its point of service condition code decoded

host-simulator · Bitmap Analysis — Bitmap Analysis — the twelve set fields of bitmap 3038048020C00014

Controls

  • Start / Stop — Launch or shut down the simulator server.
  • Hold Message — When enabled, the simulator will not auto-respond. Responses are sent only when you manually click "Send" or after a configurable delay. Useful for inspecting requests before responding.

Live View

The transaction view provides real-time visibility into all traffic:

  • Formatted View — Parsed ISO8583 fields shown in a readable table.
  • Raw Hex View — Full hexadecimal dump of the message bytes.
  • Request / Response Split — Side-by-side view of incoming request and outgoing response.
02 · Run

Transaction Rules (Settings Tab)

Transaction rules define how the simulator matches incoming requests and what responses to return. Configure them in the Settings tab.

host-simulator · Settings — SALE, REVERSAL and VOID transactions on the left and the Fields tab on the right with 13 configured ISO8583 fields

Settings Tab Layout

  • Header bar — Field info, Export, Import, Save All, plus a Source / Destination toggle (Server simulators default to Source; Proxy mode lets you stage rules for either side).
  • Left panel: Transaction list — Add, edit, duplicate, delete transactions. Click a row to select it.
  • Right panel: Per-transaction tabs — Fields, Config, and (REST connections only) API.

Adding a Transaction

  1. Click + at the top of the transaction list. The Add Transaction dialog opens.
  2. Fill in Description * (e.g. Purchase Transaction).
  3. Fill in MTI * (e.g. 0200).
  4. Fill in Processing Code (e.g. `000000`; use `` as a wildcard for any code).
  5. Click Save. The new transaction appears in the list.

Setting up the Response (Fields tab)

  1. Select the transaction in the left list.
  2. Open the Fields tab on the right.
  3. Click Add Fields to pick which ISO 8583 bits the response should contain.
  4. For each added field, type its response value. Use placeholders — [SV] echoes the request value, [TIME] generates a timestamp, [RAND] generates random digits.
  5. Click Save All in the header bar to persist the rules.

Per-Transaction Config & API tabs

  • Config tab — Transaction-level options such as response delay overrides and conditional logic.
  • API tab (REST connections only) — API Path, request matchers (key path / operator / value), response mappers, and headers.

Matching Logic

When a request arrives, the simulator evaluates rules in order:

  1. Parse the incoming message to extract MTI and processing code (Field 3).
  2. Compare against each configured transaction rule.
  3. The first matching rule wins and its response fields are used to build the response.
Tip
Place more specific rules (with exact processing codes) before generic ones (with * wildcard) to ensure correct matching priority.

Example Rule

Description:     Purchase Transaction
MTI:             0200
Processing Code: 000000

Response Fields (Fields tab):
  Field 39 (Response Code):     00
  Field 38 (Auth Code):         [RAND]
  Field 11 (System Trace):      [SV]
  Field 37 (RRN):               [SV]
  Field 12 (Local Time):        [TIME]
  Field 13 (Local Date):        [TIME]
02 · Run

Dynamic Placeholders

Use placeholders in response field values to generate dynamic content at runtime instead of static values.

[SV]Source ValueCopies data from the corresponding field in the request message.
Examples
  • Field 3: [SV] → Processing Code
  • Field 11: [SV] → STAN
  • Field 37: [SV] → RRN
Useful for response messages where you need to echo back values from the original request.
[TIME]Current TimeGenerates a current timestamp based on the field’s expected length.
Examples
  • Field 12 (6): [TIME] → 143052 (HHmmss)
  • Field 13 (4): [TIME] → 1204 (MMdd)
  • Field 7 (10): [TIME] → 1204143052
Automatically formats the current time according to ISO8583 field specifications.
[RAND]Random NumberGenerates a random numeric value based on the field’s maximum length.
Examples
  • Field 11 (6): [RAND] → 123456
  • Field 37 (12): [RAND] → 987654321098
  • Field 38 (6): [RAND] → 456789
Generates unique values for fields like STAN, RRN or authorization codes during testing.
Note
Placeholders can be combined with static text. Any field value that does not contain a placeholder is sent as a literal static value.
02 · Run

REST API Matching

When using REST connections, the simulator provides advanced request matching beyond MTI/processing code.

Match Criteria

  • Path — Match the URL path exactly or use * as a wildcard.
  • HTTP Method — Match by GET, POST, PUT, DELETE, etc.
  • Query Parameters — Match by URL query parameters.
  • Headers — Match by HTTP request headers.
  • Body Fields — Match by fields in the request body (JSON/XML).

Match Operators

Each matcher supports these comparison operators:

OperatorDescription
EQUALSExact string match.
NOT_EQUALSValue does not equal the specified string.
STARTS_WITHValue starts with the specified prefix.
ENDS_WITHValue ends with the specified suffix.
CONTAINSValue contains the specified substring.
REGEXValue matches a regular expression pattern.
GREATER_THANNumeric comparison (value > threshold).
LESS_THANNumeric comparison (value < threshold).

Response Mapping

For REST responses, use Response Mapping to define which fields appear in the response body and headers:

  • targetKey — JSON/XML key in the response body.
  • value — Static value or placeholder ([SV], [TIME], [RAND]).
  • targetHeader — Set a response HTTP header instead of a body field.
02 · Run

ISO8583 Template Tab

The ISO8583 Template tab defines the message specification used for parsing and building messages.

host-simulator · ISO8583 Template — Source Bit Templates listing each bit with its format type, length type, max length and description, beside the source advanced options and message format panels

Top-bar actions

  • Save — Persist template changes. Send Message and other tabs re-sync immediately.
  • Upload YAML — Import a YAML template (the fastest way to bootstrap a known message spec).
  • Download Template — Export the current template to YAML.

Per-Bit Editor

Click any bit number to edit it in a side dialog with three required attributes:

  • Bit Length — Maximum length (in bytes or characters depending on type).
  • Bit Type — Field type (numeric, alphanumeric, binary, etc.).
  • Max Length — Used together with the length type (fixed, LLVAR, LLLVAR, LLLLVAR).

Add or remove bits with the Add / Delete buttons.

Template-level Options (toggles)

  • Iso8583 use Ascii — Treat numeric fields as ASCII rather than packed BCD.
  • Don’t use TPDU Header — Skip the 5-byte TPDU prefix.
  • Respond same message if unrecognized — Echo unmatched requests instead of returning an error.
  • Metfone message — Enable Metfone-specific framing.
  • Not update screen — Suppress UI updates for high-throughput tests.
Important
The template must match the message specification used by the connecting client. Mismatched templates will cause parsing errors. Ensure field lengths, formats, and encoding match your ISO8583 specification.
02 · Run

Unsolicited Messages

Unsolicited messages are messages sent outside the normal request-response flow, typically for network management, notifications, or terminal updates.

Send Message (Client / Proxy)

Craft and send outbound unsolicited messages to connected hosts. Available in Client and Proxy modes. Use the message builder to construct ISO8583 messages with specific fields and send them on demand.

Receive Unsolicited (Server / Proxy)

In Server and Proxy modes, incoming unsolicited messages from clients are displayed in the Unsolicited Message tab. Messages are parsed using the active ISO8583 template.

03 · Reference

Security Options

The simulator supports several security features for testing encrypted and authenticated connections.

Cipher Types

AlgorithmKey Sizes
DES56-bit
Triple DES (3DES)112/168-bit
AES128, 192, 256-bit
RSAVariable

Cipher Modes

ECB, CBC, CFB, OFB, and CTS modes are available for block cipher operations.

Authentication

  • None — No authentication required.
  • Single Password — One shared password for all clients.
  • Client Password — Per-client authentication credentials.

SSL/TLS

Enable SSL for both the server listener and REST API client connections for encrypted transport.

03 · Reference

Tabs Reference

The runtime simulator screen exposes a different subset of tabs depending on the gateway type.

TabServerClientProxyDescription
ISO8583 Transaction✓—✓Start / stop, live request / response view, hold message control.
Logs✓✓✓Transaction and connection logs, connection count, bytes in / out.
Settings✓—✓Transaction list with Fields / Config / API tabs for each transaction.
ISO8583 Template✓✓✓Message specification, bit definitions, YAML import / export, template-level toggles.
Send Message✓✓—Craft and send outbound ISO 8583 messages; inspect responses.
Load Test—✓—Concurrency / throughput testing for client-mode integrations.
Unsolicited Message✓✓✓View incoming unsolicited messages from connected peers.

Run it against your own host

Free and open source. Download the studio, start a Server gateway and point your terminal at 0.0.0.0:8080 in minutes.

✦ Pro

Testing with a team, or certifying with a scheme? Pro raises the CPS ceiling, unlocks the full algorithm set and deep simulator tweaks, plus hosted endpoints and priority support.

Register for Pro