Infrastructure

PTS systems are engineered as immutable, replicable, and scalable services. They are not "microservices"; each service deals with a seperate domain responsibility, key amongst them being:

  • Authorization;
  • Confirmation;
  • Settlement; and
  • Authentication

Authorization is a monolithic service speaking ISO 8583. It listens on TCP port 843, receiving messages from acquirer owned systems/equipment and issuer systems alike. It is written in Rust.

Confirmation is a distributed system, also implemented in Rust, that is driven by a proprietary implementation of blockchain. The chain is confirmed after only a few seconds through a proof-of-stake process. Institutions communicating on the network in a particular market run the confirmation worker service in their own offices and/or data centres.

Settlement is handled by a .NET service that aggregates entries to the confirmation blockchain and settles them with the acquiring institution. The settlement is received when the "real" card network confirms receipt of the transaction batch and applies its fees. PTS then settles the transaction batch at the acquirer and bills its fees.

Authentication is a public-facing Spring Boot service that handles secondary cardholder authentication for transactions where 3-D Secure PARes Status is U (some failiure may have ocurred). If the acquiring institution wishes, the cardholder may be authenticated (where possible) by PTS' own systems. In Iceland this is done by retrieving the cardholder details and sending an electronic ID authentication request to the cardholder's mobile.