Skip to content

charisad/cardutil.java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cardutil.java

cardutil.java is a Java implementation of the cardutil Python package for working with payment card systems, including command-line tools for working with Mastercard IPM files.

Java CI JitPack

Features

  • ISO8583 Message Parsing: Parse and pack ISO8583 messages.
  • Mastercard IPM File Handling: Read, write, and convert Mastercard IPM files (including 1014 blocking support).
  • CLI Tools: Convert between IPM and CSV formats.
  • Cryptography Utilities: Check digit calculator, Pin Block generator, Visa PVV calculator.
  • Zero Dependencies: Core library relies only on standard Java libraries (except for CLI which uses commons-csv).

Installation

Maven (via JitPack)

Add the JitPack repository to your pom.xml:

<repositories>
    <repository>
        <id>jitpack.io</id>
        <url>https://jitpack.io</url>
    </repository>
</repositories>

Add the dependency:

<dependency>
    <groupId>com.github.charisad</groupId>
    <artifactId>cardutil.java</artifactId>
    <version>v1.0.1</version>
</dependency>

Usage

Java API

ISO8583 Parsing

import com.charisad.cardutil.Iso8583;
import java.util.Map;

byte[] messageBytes = ...;
Map<String, Object> data = Iso8583.unpack(messageBytes, null);
System.out.println("MTI: " + data.get("MTI"));
System.out.println("PAN: " + data.get("DE2"));

IPM File Reading

import com.charisad.cardutil.MciIpm;
import java.nio.file.Files;
import java.nio.file.Paths;

try (InputStream is = Files.newInputStream(Paths.get("incoming.ipm"));
     MciIpm.IpmReader reader = new MciIpm.IpmReader(is, true)) { // true for 1014 blocking
    for (Map<String, Object> record : reader) {
        System.out.println(record);
    }
}

Command Line Interface (CLI)

The library includes a CLI for common tasks.

Convert IPM to CSV

mvn exec:java -Dexec.mainClass="com.charisad.cardutil.Cli" -Dexec.args="ipm2csv input.ipm -o output.csv"

Convert CSV to IPM

mvn exec:java -Dexec.mainClass="com.charisad.cardutil.Cli" -Dexec.args="csv2ipm input.csv -o output.ipm"

Acknowledgements

This project is a direct port of the Python cardutil library by Anthony Delosa.

Ported and maintained by charisad.

License

MIT

About

Payment cards tools including ISO8583 parser and Mastercard IPM files processing

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages