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
- Gitee (main): https://gitee.com/asuka2001/alatka-messages
- GitHub: https://github.com/goGetSomeFries/alatka-messages
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.
