Working with payment systems, I kept running into the same frustrations with existing ISO 8583 libraries:

  • Everything comes back as String (then you convert it yourself)
  • Nested subfields (TLV, private fields, etc.) are painful or unsupported
  • Configuration is usually locked in annotations or static XML
  • Fixed-length and ISO 8583 messages often need completely different code paths

I got tired of fighting the tools, so I built alatka-messages.

What is alatka-messages?

It’s a Java library focused on parsing and building both fixed-length and ISO 8583 messages.

Not a full payment switch (like jPOS). Just a clean, modern message definition + pack/unpack layer.

What makes it different?

1. Proper nested subdomain support

Supports TLV, ULV, bitmap subfields, and deep nesting. This is especially useful for UnionPay and other schemes with complex private fields.

2. Real Java type mapping

Fields can map directly to:

  • BigDecimal, Integer, Boolean
  • LocalDate / LocalDateTime
  • List, Map
  • Custom POJOs

No more endless String → type conversions.

3. Flexible configuration + hot reload

Supports:

  • YAML
  • XML
  • Annotations
  • Database tables

YAML, XML, and database configs can be hot-reloaded without restarting the app.

4. Unified API

Same approach for both fixed-length and ISO 8583 messages.

5. Spring Boot Starter + simple Admin UI

Easy to drop into Spring Boot projects.

Quick example

MessageHolder holder = MessageBuilder.init("iso:cups:common:payload") .unpack(hexMessage); BigDecimal amount = holder.get(4); LocalDateTime transmissionTime = holder.get(7); 

Who might find this useful?

  • Building payment gateways / acquirers / clearing systems
  • Dealing with frequent message definition changes
  • Want better type safety than classic ISO 8583 libs
  • Find jPOS too heavy, but basic libraries too limited

Links

It’s MIT licensed and actively maintained.

If you’ve struggled with rigid ISO 8583 configs or weak subdomain support, feel free to check it out. Feedback and issues are welcome.