Giter Club home page Giter Club logo

iso-8583's Introduction

iso-8583

A native Node module to process ISO 8583 Financial transaction card originated messages

NPM Version Build Status Dependency Status devDependency Status NPM Downloads Massachusetts Institute of Technology (MIT) Donate

ISO 8583 Financial transaction card originated messages โ€” Interchange message specifications is the International Organization for Standardization standard for systems that exchange electronic transactions made by cardholders using payment cards.

Installation

npm install iso-8583

API

The main namespace

	var ISO8583 = require('iso-8583');

ISO8583 Message Constructor

ISO8583.Message()

Methods of ISO8583.Message

ISO8583.Message().packSync()

A native method to pack a message.

Example:

	var msg = [
		[0, "1234"],
		[2, "1234567890123456"],
		[4, "000000005699"],
		[11, "000234"],
		[39, "004"],
		[41, "12345"],
		[42, "678901234"],
		[125, "BLAH BLAH"]
	];

	var message = new ISO8583.Message();
	var packedMessage = message.packSync(msg);
	console.log(packedMessage);

Yields:

[
	"12", "34", "D0", "20", "00", "00", "02", "C0", "00", "00", "00", "00", "00", "00", "00", "00", "00", "08", "16", "12", "34", "56", "78", "90", "12", "34", "56", "00", "00", "00", "00", "56", "99", "00", "02", "34", "00", "04", "31", "32", "33", "34", "35", "20", "20", "20", "36", "37", "38", "39", "30", "31", "32", "33", "34", "20", "20", "20", "20", "20", "20", "00", "09", "42", "4C", "41", "48", "20", "42", "4C", "41", "48"
]

ISO8583.Message().unpackSync()

A native method to parse and unpack a message.

Example:

	var message = new ISO8583.Message();
	var data = "1234D020000002C000000000000000000008161234567890123456000000005699000234000431323334352020203637383930313233342020202020200009424C414820424C4148";
	var msg = new Buffer(data, "hex");
	var len = msg.length;
  	var unpackedMessage = message.unpackSync(msg, len);
  	console.log(unpackedMessage);

Yields:

[
	[0, "1234"],
	[2, "1234567890123456"],
	[4, "000000005699"],
	[11, "000234"],
	[39, "004"],
	[41, "12345"],
	[42, "678901234"],
	[125, "BLAH BLAH"]
]

ISO8583.Message().parseSync()

A JavaScript wrapper helper method calling unpackSync()

Example:

	var message = new ISO8583.Message();
	var data = "1234D020000002C000000000000000000008161234567890123456000000005699000234000431323334352020203637383930313233342020202020200009424C414820424C4148";
  	var unpackedMessage = message.parseSync(data);
  	console.log(unpackedMessage);

Yields:

[
	[0, "1234"],
	[2, "1234567890123456"],
	[4, "000000005699"],
	[11, "000234"],
	[39, "004"],
	[41, "12345"],
	[42, "678901234"],
	[125, "BLAH BLAH"]
]

Usage

This section need improvements. So far please take a look at the unit tests to learn how to use this module.

Background

This module is based on the efforts of Oscar Sanderson.

ISO 8583 is a messaging standard used for payment card originated financial transactions. At present there are three different versions of the standard, as follows:

1987 (used by Visa / MasterCard)
1993 (used by Amex)
2003
Each version is named based on the year that it was published.

Whilst ISO 8583 is an official standard, it is important to note that most implementations are derivatives and do not fully comply with the published standard, however the variations are typically minor and it is generally quite a trivial task to modify an existing ISO 8583 version handler to accommodate such variations.

Source: http://www.oscarsanderson.com/iso-8583/

More details

List of ISO 8583-like specifications used by Card Payment System associations:

  • AMEX / American Express Payment Services Ltd.:
    • Global Credit Authorization Guide (GCAG)
    • Global Electronic Data Capture (GEDC) Terminal Message Specification
    • Plural Interface Processing (PIP) Terminal Interface
  • CUP / China UnionPay / UnionPay International:
    • CUP Online Message.
  • DCI / Diners Club International Ltd.:
    • Diners Club International Service Centre (DCISC) Relay Authorisation System
    • Diners Club International Relay Xpress Authorization System.
  • DFS / Discover Financial Services:
    • Authorization Interface Technical Specifications.
  • JCB / JCB International:
    • J-Link Online Interface Guide.
  • MasterCard International:
    • Customer Interface Specification (CIS)
    • Global Clearing Management System (GCMS) Reference
    • Integrated Product Messages (IPM) Clearing Formats
    • MasterCard Debit Switch (MDS) Online Specifications
    • Single Message System (SMS) Specifications.
  • Visa International / Visa Europe:
    • BASE I Technical Specifications
    • Single Message System (SMS) ATM/POS Technical Specifications
    • Dual Message System Authorization (DMSA) Technical Specifications.

A huge list of different acquirers national and domestic payment services which also used ISO 8583 messages are not in this list.
Specifications available for the members of these associations. They are confidential usually but could be found in the web if you know which specification to search.
The services around payments industry like iso8583.info providing details about the messages content with data parsing and test hosts.

iso-8583's People

Contributors

s-a avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.