- ISO 8583
-
ISO 8583 — стандарт ISO, описывающий процесс передачи и формат финансовых сообщений (транзакций) систем, обрабатывающих данные банковских платёжных карт.
Содержание
Введение
Транзакция данных платёжных карт (например, для запроса авторизации держателя карты) начинается с устройства, её инициировавшего, например c POS-терминала, проходит через ряд сетей и заканчивается на системе, которая выпустила карту.
Транзакционные данные включают в себя:
- информацию о карте (например, номер счета, англ. Account number)
- информацию о терминале (например, номер торговца, англ. Merchant)
- собственно финансовая информация (например, цена, количество)
Система, которая выпустила карту, авторизует транзакцию либо отклоняет её и генерирует ответное сообщение, которое возвращается на терминал.
ISO 8583 описывает формат транзакций и механизм их передачи («communication flow») таким образом, чтобы различные системы могли обмениваться этими транзакциями. Большинство транзакций, которые выполняются с банкоматов, используют ISO 8583 в некоторых аспектах коммуникационной цепочки, как то например, транзакции, выполняющиеся при оплате покупателем товара в магазине. Такие международные платёжные системы как MasterCard и Visa используют стандарт ISO 8583 при авторизационных взаимодействиях.
ISO 8583 описывает транзакции, инициированные держателем карты, такие как покупка, снятие наличных, пополнение счёта, оплату, аннулирование операции, запрос баланса, платежи и переводы со счёта на счёт. ISO 8583 также описывает сообщения между системами для обмена ключами безопасности, согласования итогов и сообщения для других административных целей.
Несмотря на то, что ISO 8583 определяет общий стандарт, как правило, он не используется напрямую в системах или сетях. Вместо этого каждая сеть адаптирует стандарт для собственных нужд, пользуясь отдельными полями и вариантами использования.
Положение полей различается в разных версиях стандарта. К примеру, отдельные элементы, определяющие валюту в версиях 1987 и 1993 более не используются в версии 2003, где валюта является составной частью элемента, определяющего сумму. ISO 8583:2003 нужно время для достижения широкого признания.
Сообщение ISO 8583 состоит из следующих частей:
- Message Type Indicator (MTI) — Индикатор типа сообщения;
- Одна или несколько битовых карт, указывающие, какие элементы данных присутствуют в сообщении;
- Элементы данных, поля сообщения.
Индикатор типа сообщения
Индикатор типа сообщения (англ. Message Type Indicator (MTI)) — 4 значное числовое поле, которое определяет высокоуровневую функцию сообщения. Индикатор типа сообщения включает в себя версию стандарта ISO 8583, класс сообщения, функцию сообщения и источник сообщения, описанные ниже.
Пример: 0110
0xxx -> версия стандарта ISO 8583 (версия 1987 года) x1xx -> класс сообщения (сообщение авторизации) xx1x -> функция сообщения (ответ на запрос) xxx0 -> кто начал взаимодействие (эквайер)
ISO 8583 версия
Первая позиция MTI определяет версию стандарта ISO 8583, используемую для передачи сообщения.
Позиция Значение 0xxx Версия ISO 8583-1:1987 1xxx Версия ISO 8583-2:1993 2xxx Версия ISO 8583-1:2003 9xxx Частное использование Класс сообщения
Вторая позиция MTI определяет общую цель сообщения.
Позиция Значение Использование x1xx Authorization Message Determine if funds are available, get an approval but do not post to account for reconciliation, Dual Message System (DMS), awaits file exchange for posting to account x2xx Financial Message Determines if funds are available, get an approval and post directly to the account, Single Message System (SMS), no file exchange after this x3xx File Actions Message Used for hot-card, TMS and other exchanges x4xx Reversal Message Отменяет действие предыдущей авторизации x5xx Reconciliation Message Transmits settlement information x6xx Administrative Message Transmits administrative advice. Often used for failure messages (e.g. message reject or failure to apply) x7xx Fee Collection Message x8xx Network Management Message Используется для обмена ключами безопасности, входа в систему, посылки эхо-тестов и для других функций сети x9xx Зарезервировано ISO Функция сообщения
Третья позиция Индикатора сообщения (MTI) определяет функцию сообщения и способ его обработки в системе. Запросы являются сообщениями полного цикла (т.е. от эквайера к издателю и обратно включая время ожидания и автоматической переадресации), в то время как авизо - прямые сообщения (например, от терминала к эквайеру, от эквайера в сеть, из сети к издателю, с гарантированной передачей к следующему звену, но, возможно, с задержкой).
Позиция Значение xx0x Request xx1x Request Response xx2x Advice xx3x Advice Response xx4x Notification xx8x Response acknowledgment xx9x Negative acknowledgment Источник сообщения
Четвертое значение индикатора сообщения (MTI) определяет его инициатора в платежной системе.
Позиция Значение xxx0 Acquirer xxx1 Acquirer Repeat xxx2 Issuer xxx3 Issuer Repeat xxx4 Other xxx5 Other Repeat Примеры
С помощью всех вышеуказанных позиций индекса сообщения (MTI), полностью определяется как будет обрабатываться сообщение в сети. К сожалению, не все реализации стандарта ISO 8583 интерпретируют значение индекса (MTI) одинаково, но несмотря на это, некоторые MTI - стандартны:
MTI Значение Применение 0100 Authorization request Запрос POS-терминала на авторизацию покупки держателя карты 0120 Authorization Advice При падении POS-терминала и необходимости подписать платежный документ 0121 Authorisation Advice Repeat При ожидании авизо 0200 Acquirer Financial Request Запрос баланса, обычно от банкомата 0220 Acquirer Financial Advice например, при проверке в отеле 0221 Acquirer Financial Advice repeat При ожидании авизо 0400 Acquirer Reversal Request Reverses a transaction 0420 Acquirer Reversal Advice Advises that a reversal has taken place 0421 Acquirer Reversal Advice Repeat Message if the reversal times out 0800 Network Management Request Echo test, logon, log off etc 0820 Network Management Advice Keychange Побитовые карты
В соответствии с ISO 8583, побитовая карта — это поле или подполе внутри сообщения, показывающие какие элементы данных представлены в другом месте сообщения.
Сообщение содержит как минимум одну битовую карту, которая называется Primary Bitmap (англ. Первичная битовая карта), определяющую, какие из элементов данных с номерами от 1 до 64 присутствуют в сообщении. Как правило, если вторая битовая карта присутствует, то размещается в качестве первого элемента данных и определяет, какие из элементов данных с номерами от 65 до 128 присутствуют в сообщении. Аналогично, третья битовая карта может использоваться для определения наличия или присутствия элементов со 129 до 192, впрочем, они используются редко.
Битовые карты могут быть переданы как 8 байт двоичной информации или как 16 шестнадцатеричных символов (0-9, A-F) из наборов ASCII или EBCDIC.
Поле присутствует, когда соответствующий бит битовой карты имеет значение «истина», например, байт '10000010' означает, что поля 1 и 7 присутствуют в сообщении.
Примеры
Bitmap Определяет наличие... 4210001102C04804 ...полей 2, 7, 12, 28, 32, 39, 41, 42, 50, 53, 62 7234054128C28805 ...полей 2, 3, 4, 7, 11, 12, 14, 22, 24, 26, 32, 35, 37, 41, 42, 47, 49, 53, 62, 64, 100 (требуется второй Bitmap, чтобы показать наличие поля номер 100) 8000000000000001 ...полей 1, 64 0000000000000003
(второй Bitmap)Поля 127, 128 Объяснение Bitmap поля 4210001102C04804
01000010 = 42x (нумеруем слева направо, второй и седьмой бит равны 1, что означает присутствие полей 2 и 7)
00010000 = 10x (присутствует поле 12)
00000000 = 00x (никакие поля не присутствуют)
00010001 = 11x (присутствуют поля 28 и 32)
00000010 = 02x (присутствует поле 39)
11000000 = C0x (присутствуют поля 41 и 42)
01001000 = 48x (присутствуют поля 50 и 53)
00000100 = 04x (присутствует поле 62)
0________10________20________30________40________50________60__64
1234567890123456789012345678901234567890123456789012345678901234 номер бита
0100001000010000000000000001000100000010110000000100100000000100 битовая карта
Поля, присутствующие в сообщении с переменной длиной:
2-7-12-28-32-39-41-42-50-53-62Элементы данных
Элементы данных — это отдельные поля, содержащие информацию о транзакции. Исходный стандарт ISO 8583:1987 был рассчитан на возможность включения 128 элементов данных, а в последующих версиях было определено до 192 элементов данных. В ревизии 1993 года были введены новые описания, удалены некоторые старые, при этом формат как таковой не претерпел изменений.
Несмотря на то, что каждый элемент данных имеет описанное значение и формат, стандарт включает некоторые элементы данных для общих целей, а также специфические для системы (или страны) элементы данных, которые могут иметь огромные различия в разных реализациях.
Каждый элемент данных описан в формате стандарта, который указывает разрешенные значения полей (напр. числовое, бинарное итд.) и длину поля (постоянное значение или меняющее), в соответствии с данной таблицей:
Сокращение Значение a (Латинские?) буквы, включая пробелы n Только числовые значения s Только специальные символы an Буквы и цифры as Буквы и специальные символы ns Числа и специальные символы ans Буквы, числа и специальные символы b Двоичные данные z Набор кодов трека 2 и 3, как определено в ISO 4909 и ISO 7813 . или .. или … индикатор переменной длины поля, каждый символ . означает цифру x или xx или xxx поле фиксированной длины или максимальная длина в случае полей переменной длины Кроме того, каждое поле может быть или фиксированной, или переменной длины. Если поле переменной длины, длина поля предшествуется индикатором длины.
Тип Значение Fixed длина поля не используется LLVAR или (..xx) Где LL < 100, означает две лидирующих цифры LL, определяющие длину поля VAR LLLVAR или (…xxx) Где LLL < 1000, изначает три лидирующие цифры LLL, определяющие длину поля VAR LL и LLL - шестнадцатеричные цифры или ASCII-символы. Поле VAR может быть упаковано (compressed) или быть записано в ASCII, в зависимости от типа данных элемента LL может быть длиной 1 или 2 байта. Например, если оно упаковано как один шестнадцатеричный байт, 0x27 означает, что далее следует 27 байт поля VAR. Если формат ASCII, два байта 0x32, 0x37 означают, что далее следует 27 байт (так как 0x32 - это код символа '2' в кодировке ASCII и т.п.). 3-цифирная длина поля LLL использует 2 байта с лидирующим 0x00 в упакованном режиме, или 3 байта в формате ASCII. Формат элемента данных VAR зависит от типа элемента данных. Если число было упаковано, то 87456 будет представлено 3 байтами 0x087456. В формате ASCII будет использоваться один байт для каждой цифры или символа, оно будет выглядеть, как 0x38 ('8'), 0x37 ('7'), 0x34 ('4'), 0x35 ('5'), 0x36 ('6'). ISO-Defined Data Elements Элемент данных (номер поля) Тип Использование 1 b 8 Дополнительная битовая карта 2 n ..19 Primary account number (PAN) 3 n 6 Processing code 4 n 12 Amount, transaction 5 n 12 Amount, Settlement 6 n 12 Amount, cardholder billing 7 n 10 Transmission date & time 8 n 8 Amount, Cardholder billing fee 9 n 8 Conversion rate, Settlement 10 n 8 Conversion rate, cardholder billing 11 n 6 Systems trace audit number 12 n 6 Time, Local transaction 13 n 4 Date, Local transaction 14 n 4 Date, Expiration 15 n 4 Date, Settlement 16 n 4 Date, conversion 17 n 4 Date, capture 18 n 4 Merchant type 19 n 3 Acquiring institution country code 20 n 3 PAN Extended, country code 21 n 3 Forwarding institution. country code 22 n 3 Point of service entry mode 23 n 3 Application PAN number 24 n 3 Function code(ISO 8583:1993)/Network International identifier (NII) 25 n 2 Point of service condition code 26 n 2 Point of service capture code 27 n 1 Authorizing identification response length 28 n 8 Amount, transaction fee 29 n 8 Amount. settlement fee 30 n 8 Amount, transaction processing fee 31 n 8 Amount, settlement processing fee 32 n ..11 Acquiring institution identification code 33 n ..11 Forwarding institution identification code 34 n ..28 Primary account number, extended 35 z ..37 Данные трека 2 (Track 2 Data) 36 n …104 Данные трека 3 (Track 3 Data) 37 an 12 Retrieval reference number 38 an 6 Authorization identification response 39 an 2 Код ответа (Response code) 40 an 3 Service restriction code 41 ans 8 Card acceptor terminal identification 42 ans 15 Card acceptor identification code 43 ans 40 Card acceptor name/location 44 an ..25 Additional response data 45 an ..76 Данные трека 1 (Track 1 Data) 46 an …999 Дополнительные данные — ISO 47 an …999 Дополнительные данные — National 48 an …999 Дополнительные данные — Private 49 a 3 Currency code, transaction 50 an 3 Currency code, settlement 51 a 3 Currency code, cardholder billing 52 b 16 Personal Identification number data 53 n 18 Security related control information 54 an 120 Additional amounts 55 ans …999 Reserved ISO 56 ans …999 Reserved ISO 57 ans …999 Reserved National 58 ans …999 Reserved National 59 ans …999 Зарезервировано для использования на национальной уровне 60 an .7 Advice/reason code (private reserved) 61 ans …999 Reserved Private 62 ans …999 Reserved Private 63 ans …999 Reserved Private 64 b 16 Message authentication code (MAC) 65 b 16 Bit map, tertiary 66 n 1 Settlement code 67 n 2 Extended payment code 68 n 3 Receiving institution country code 69 n 3 Settlement institution county code 70 n 3 Network management Information code 71 n 4 Message number 72 ans …999 Data record (ISO 8583:1993)/n 4 Message number, last(?) 73 n 6 Date, Action 74 n 10 Credits, number 75 n 10 Credits, reversal number 76 n 10 Debits, number 77 n 10 Debits, reversal number 78 n 10 Transfer number 79 n 10 Transfer, reversal number 80 n 10 Inquiries number 81 n 10 Authorizations, number 82 n 12 Credits, processing fee amount 83 n 12 Credits, transaction fee amount 84 n 12 Debits, processing fee amount 85 n 12 Debits, transaction fee amount 86 n 15 Credits, amount 87 n 15 Credits, reversal amount 88 n 15 Debits, amount 89 n 15 Debits, reversal amount 90 n 42 Original data elements 91 an 1 File update code 92 n 2 File security code 93 n 5 Response indicator 94 an 7 Service indicator 95 an 42 Replacement amounts 96 an 8 Message security code 97 n 16 Amount, net settlement 98 ans 25 Payee 99 n ..11 Settlement institution identification code 100 n ..11 Receiving institution identification code 101 ans 17 File name 102 ans ..28 Account identification 1 103 ans ..28 Account identification 2 104 ans …100 Transaction description 105 ans …999 Зарезервировано для использования в ISO 106 ans …999 Зарезервировано для использования в ISO 107 ans …999 Зарезервировано для использования в ISO 108 ans …999 Зарезервировано для использования в ISO 109 ans …999 Зарезервировано для использования в ISO 110 ans …999 Зарезервировано для использования в ISO 111 ans …999 Зарезервировано для использования в ISO 112 ans …999 Зарезервировано для использования на национальной уровне 113 n ..11 Authorizing agent institution id code 114 ans …999 Зарезервировано для использования на национальной уровне 115 ans …999 Зарезервировано для использования на национальной уровне 116 ans …999 Зарезервировано для использования на национальной уровне 117 ans …999 Зарезервировано для использования на национальной уровне 118 ans …999 Зарезервировано для использования на национальной уровне 119 ans …999 Зарезервировано для использования на национальной уровне 120 ans …999 Зарезервировано для использования конкретными реализаторами стандарта 121 ans …999 Зарезервировано для использования конкретными реализаторами стандарта 122 ans …999 Зарезервировано для использования конкретными реализаторами стандарта 123 ans …999 Зарезервировано для использования конкретными реализаторами стандарта 124 ans …255 Info Text 125 ans ..50 Network management information 126 ans .6 Issuer trace id 127 ans …999 Зарезервировано для использования конкретными реализаторами стандарта 128 b 16 Message Authentication code Примеры
Определение поля Значение n6 Поле фиксированной длины в 6 цифр n.6 Числовое поле LLVAR с длиной до 6 цифр a..11 Буквенно-числовое поле LLVAR с длиной до 11 символов b…999 Поле двоичных данных LLLVAR с длиной до 999 байт См. также
Ссылки
- DL-ISO-8583 Open-source implementation, written in C (англ.)
- GPL’d ISO8583 Framework (англ.)
- .NET ISO-8583 Framework (англ.)
- jPOS ISO-8583 Framework in Java (англ.)
- ISO-8583 '93 based POS Terminal — HOST protocol (итал.) (англ.)
- iso8583.info FREE OnLine ISO 8583:1987 & ISO 8583:1993 messages encoder and decoder (англ.) (рус.)
Стандарты ISO Перечни: Перечень стандартов ИСО • Перечень романизаций ISO • Перечень стандартов IEC
Категории: Категория:Стандарты ISO • Категория:Протоколы OSI1
по
99991 • 2 • 3 • 4 • 5 • 6 • 7 • 9 • 16 • 31 (-0, -1, -2, -3, -4, -5, -6, -7, -8, -9, -10, -11, -12, -13) • 128 • 216 • 217 • 226 • 228 • 233 • 259 • 269 • 296 • 302 • 306 • 428 • 639 (-1, -2, -3, -5, -6) • 646 • 690 • 732 • 764 • 843 • 898 • 1000 • 1004 • 1007 • 1073-1 • 1413 • 1538 • 1745 • 2014 • 2015 • 2022 • 2108 • 2145 • 2146 • 2281 • 2709 • 2711 • 2788 • 3029 • 3103 • 3166 (-1, -2, -3) • 3297 • 3307 • 3602 • 3864 • 3901 • 3977 • 4031 • 4157 • 4217 • 5218 • 5775 • 5776 • 5964 • 6166 • 6344 • 6346 • 6425 • 6429 • 6438 • 6523 • 6709 • 7001 • 7002 • 7098 • 7185 • 7388 • 7498 • 7736 • 7810 • 7811 • 7812 • 7813 • 7816 • 8000 • 8217 • 8571 • 8583 • 8601 • 8632 • 8652 • 8691 • 8807 • 8820-5 • 8859 (-1, -2, -3, -4, -5, -6, -7, -8, -9, -10, -11, -12, -13, -14, -15, -16) • 8879 • 9000 • 9075 • 9126 • 9241 • 9362 • 9407 • 9506 • 9529 • 9564 • 9594 • 9660 • 9897 • 9945 • 9984 • 9985 • 9995 10000
по
1999910006 • 10118-3 • 10160 • 10161 • 10165 • 10179 • 10206 • 10303 • 10303-11 • 10303-21 • 10303-22 • 10303-238 • 10303-28 • 10383 • 10487 • 10585 • 10589 • 10646 • 10664 • 10746 • 10861 • 10957 • 10962 • 10967 • 11073 • 11170 • 11179 • 11404 • 11544 • 11783 • 11784 • 11785 • 11801 • 11898 • 11940 • 11941 • 11941 (TR) • 11992 • 12006 • 12164 • 12182:1998 • 12207:1995 • 12207:2008 • 12234-2 • 13211 (-1, -2) • 13216 • 13250 • 13399 • 13406-2 • 13407 • 13450 • 13485 • 13490 • 13567 • 13568 • 13584 • 13616 • 14000 • 14031 • 14396 • 14443 • 14496-10 • 14496-14 • 14644 (-1, -2, -3, -4, -5, -6, -7, -8, -9) • 14649 • 14651 • 14698 • 14698-2 • 14750 • 14882 • 14971 • 15022 • 15189 • 15288 • 15291 • 15292 • 15408 • 15444 • 15445 • 15438 • 15504 • 15511 • 15686 • 15693 • 15706 • 15706-2 • 15707 • 15897 • 15919 • 15924 • 15926 • 15926 WIP • 15930 • 16023 • 16262 • 16750 • 17024 • 17025 • 17369 • 17799 • 18000 • 18004 • 18014 • 18245 • 18629 • 18916 • 19005 • 19011 • 19092-1 • 19092-2 • 19114 • 19115 • 19439 • 19501:2005 • 19752 • 19757 • 19770 • 19775-1 • 19794-5 20000+ 20000 • 20022 • 21000 • 21047 • 21827:2002 • 22000 • 23008-2 • 23270 • 23360 • 24613 • 24707 • 25178 • 26000 • 26300 • 26324 • 27000 series • 27000 • 27001 • 27002 • 27003 • 27004 • 27005 • 27006 • 27007 • 27729 • 27799 • 29199-2 • 29500 • 31000 • 32000 • 38500 • 42010 • 50001 • 80000 См. также: Все статьи, начинающиеся с «ISO» Категории:- Стандарты ISO
- Безналичные расчёты
Wikimedia Foundation. 2010.