Skip to content
Raghavendra Balgi edited this page Apr 25, 2020 · 28 revisions

Welcome to the IsoSim wiki!


Isosim is ISO8583 simulator developed using Go programming language. The simulator is accessed using a web interface. **Please note that the web interface is has only been tested on the chrome browser. **

Isosim provides the ability to -

  1. Define an ISO8583 specification (layout of messages including field definitions)
  2. Define ISO8583 servers (listeners)
  3. Ability to define behaviour of such servers i.e behaviour to respond to incoming ISO8583 Messages
  4. Start and Stop servers
  5. Build and send transactions to ISO servers

Define Spec

The ISO8583 specifications are currently defined in a text file manually (Please see an example here - isoSpecs.spec )

Define Server

Servers are managed by using the url - http://localhost:8080/iso/v0/server -

  1. Start by providing a server name, port (for listening), a mli type, a predefined spec
  2. Add a message selector (+ Msg Selector). Here you select what message to use based on how a message starts (Example - MTI - 1100 for Auth, 1420 for reversal etc). Please note that the field value should be hex bytes (Example - 31313030 for 1100 if the encoding used is ASCII or 1100 if BINARY/BCD)
  3. Within a message selector, add processing conditions that will define a "field to value condition" which will determine how the message will be responded to - Example - If amount equals 100 then set action code= 100
  4. Comparison conditions as of date include 'Equals' which is the comparison of raw string value of field i.e string comparison for ASCII/EDCDIC or raw binary strings for BINARY/BCD fields
  5. Other comparisons are useful for integer fields like amount (Equals,GreaterThan,LessThan) etc
  6. Save the spec with a name which will then appear under the "Server Def" when you later want to load and start a server

For a more detailed example, please see here page.

Tip: You can use the 'Any' comparator as a default condition which can appear last in the list of processing conditions. Processing conditions are processed in the order they appear and so, if 'Any' appears at the start then all other processing conditions are ignored.

Start Server

To start a server -

  1. Select a spec from the drop down
  2. Use the 'Fetch All' button to load all the available definitions
  3. Use 'Load Definition' to load the definition
  4. Use the 'Start' button to start the server

Note: You can optionally change the 'Server Port' and the 'MLI Type' incase you want to use a different values than the >ones you used when defining the server

Stop Server

You can use the 'Show Active Servers' button to bring up a list of all listeners. You can then use the 'Stop' button to stop the server (Please note that this will not stop any previously connected clients)

Build and Send Message

  1. To build and send a message, use the http://host:port url.
  2. On this page, select a spec, a spec message, MLI, a target host and a port
  3. On the layout, populate the message fields and click the 'Send' button

You can optionally save the message if in future you want to resend the message. Here's how you do it -

  1. Click the 'Save' button, provide a name and save the message
  2. You can then use the 'Load' button to load up a saved message

Check this brief screencast