ISO 8583

ISO 8583 là một chuẩn ISO sử dụng làm chuẩn mã hóa trong các hệ thống trao đổi giao dịch điện tử.

== Sử dụng ==
- ISO 8583 đưa ra định dạng message và luồng giao tiếp để các hệ thống khác nhau có thể trao đổi các giao dịch.

- Mặc dù ISO 8583 đưa ra một chuẩn chung nhưng nó không được sử dụng trực tiếp cho một hệ thống hay một network nào. Thay vào đó mỗi network sẽ tùy biến những chuẩn này cho phù hợp với mục đích sử dụng của nó.

- Các phiên bản khác nhau của ISO 8583 có cách đặt các trường ở vị trí khác nhau. Trong đó ISO 8583:2003 được công nhận rộng rãi.

ISO 8583 bao gồm các phần sau:
- Message Type Indicator (MTI)
- One or more bitmaps, indicating which data elements are present
- Data elements, the fields of the message

== Message Type Indicator (MTI) ==
MTI là một trường gồm 4 ký tự số bao gồm:

• ISO 8583 Version

• Message Class

• Message Function

• Message origin

Ví dụ: 0110

• 0---: ISO 8583 version

• -1--: Message class

• --1-: Message function

• ---0: Message Origin

=== 2.1. ISO 8583 Version ===
Position Meaning

0xxx ISO 8583-1:1987 version

1xxx ISO 8583-2:1993 version

2xxx ISO 8583-1:2003 version

9xxx Private usage

=== 2.2. Message Class ===
Position Meaning Usage

x1xx Authorization Message (Message xác nhận)

x2xx Message tài chính

x3xx Message xử lý file

x4xx Reversal Message

x5xx Reconciliation Message

x6xx Administrative Message

x7xx Fee Collection Message

x8xx Network Management Message

x9xx Resered by ISO

=== 2.3. Message Function ===
Vị trí thứ 3 trong MTI là Message Function chỉ ra luồng Message trong hệ thống.

Position Meaning

xx0x Request

xx1x Request Response

xx2x Advice

xx3x Advice Response

xx4x Notification

xx8x Response acknowledgment

xx9x Negative acknowledgment

=== 2.4 Message Origin ===
Vị trí thứ 4 trong MTI chỉ ra vị trí của Message Source trong chuỗi payment

Position Meaning

xxx0 Acquirer

xxx1 Acquirer Repeat

xxx2 Issuer

xxx3 Issuer Repeat

xxx4 Other

xxx5 Other Repeat

== Bitmaps ==
Trong ISO 8583, bitmaps là một field hay subfield bên trong Message chỉ ra những data element khác hay những data element subfields có thể có mặt bên trong hay một nơi nào khác trong 1 message

Một message phải chứa ít nhất một bitmap gọi là Primary Bitmap chỉ ra data element từ 1 đến 64 nào có mặt. Một message cũng có thể cũng có secondary bitmap chỉ ra sự có mặt của các data element từ 65 đến 128. Giống như thế message có thể có Third bitmap chỉ ra sự có mặt hoặc vắng mặt của các data element từ 129 đến 192, mặc dù những data element này rất ít khi được sử dụng.

Bitmap được truyền 8 byte nhị phân hoặc 16 byte ký tự hexa(bao gồm 0-9,A-F trong mã ASCII hay tập ký tự EBCDIC).
Một field có mặt khi bit đặc trưng của nó trong bitmap có giá trị True. Ví dụ byte 01000010 thì field 2 và 7 có mặt.

== Data Elements ==
Data Element là các trường riêng lẻ mang thông tin giao dịch. Có 128 data element được định nghĩa trong version ISO 8583:1987, và mở rộng ra 192 data element trong các phiên bản sau. Mỗi một data element có một nghĩa và một định dạng nhất định, bao gồm một vài data element chung, và một vài element đặc trưng cho từng hệ thống hay từng quốc gia.

Mỗi data element được mô tả theo một định dạng chuẩn trong đó định nghĩa nội dung, độ dài của field được truyền theo bảng sau:
Mỗi trường có thể được cố định độ dài hoặc độ dài thay đổi theo biến. Nếu có biến độ dài thì nó được đặt trước bởi một tiền tố chỉ ra giới hạn độ dài của field.

== Liên kết ngoài ==
- DL-ISO-8583 Open-source implementation, written in C
- Introduction to ISO 8583
- Free Java/Android library to pack/unpack ISO8583 Message, support Tertiary Bitmap & Subfields
- A free ISO8583 editor and message parser
- An OpenSource implementation of the international ISO-8583 standard
- A free.NET library that allows developers to parse and create ISO8583 messages easily - Free Source Code
- Trx Framework .NET open source project for financial messages interchange including ISO 8583
- DFDL schemas for ISO 8583 Data Format Description Language schemas for parsing and writing ISO 8583 messages
- A free Java library that allows developers to parse and create ISO8583 messages easily - Free Source Code