TCP gateway that accepts raw ISO 8583 financial messages, parses them, forwards to a core banking system over HTTP, and returns packed responses with duplicate detection.
Card networks still speak ISO 8583 over raw TCP, while modern core banking systems expose HTTP APIs. This switch sits between the two: it listens for packed ISO 8583 messages, parses the MTI, bitmaps, and data elements, translates each transaction into an HTTP call to the core banking system, and packs the answer back into ISO 8583 for the terminal. The walkthrough below follows three real message flows.
The gateway starts a TCP listener on port 8583 and receives a packed 0200 financial request. It parses the message, extracts the STAN and transaction details, forwards them to the core banking system's financial endpoint, and completes the leg with an approved response code 00.
Different message classes route to different core banking endpoints. A 0100 balance inquiry carries processing code 31 in field 3, so the switch sends it to the inquiry endpoint instead of the financial one, and the terminal gets its balance in the packed response.
Failures translate cleanly: when the core banking system reports insufficient funds, the switch packs response code 51 back to the terminal. Retried messages reusing an already-seen STAN are detected and dropped, so a flaky terminal can't double-post a transaction.
Terminals and hosts exchange 0800 network management messages to confirm the link is alive. The switch answers echo tests locally with an 0810 in milliseconds, without touching the core banking system.
Not everything arriving on a payment port is a valid message. When parsing fails, the switch rejects the message, logs exactly where the parse broke, and keeps the connection alive for the next message instead of dropping the terminal.