001/* 002 * jPOS Project [http://jpos.org] 003 * Copyright (C) 2000-2026 jPOS Software SRL 004 * 005 * This program is free software: you can redistribute it and/or modify 006 * it under the terms of the GNU Affero General Public License as 007 * published by the Free Software Foundation, either version 3 of the 008 * License, or (at your option) any later version. 009 * 010 * This program is distributed in the hope that it will be useful, 011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 013 * GNU Affero General Public License for more details. 014 * 015 * You should have received a copy of the GNU Affero General Public License 016 * along with this program. If not, see <http://www.gnu.org/licenses/>. 017 */ 018 019package org.jpos.iso.packager; 020 021import org.jpos.iso.*; 022 023/** 024 * ISO 8583 v1993 ASCII Packager<br> 025 * <b>WARNING UNTESTED</b> 026 * 027 * @author <a href="mailto:u_arunkumar@yahoo.com">Arun Kumar U</a> 028 * @author <a href="mailto:apr@cs.com.uy">Alejandro P. Revilla</a> 029 * @version $Id$ 030 * @see ISOPackager 031 * @see ISOBasePackager 032 * @see ISOComponent 033 */ 034public class ISO93APackager extends ISOBasePackager { 035 protected ISOFieldPackager fld[] = { 036 /*000*/ new IFA_NUMERIC ( 4, "Message Type Indicator"), 037 /*001*/ new IFA_BITMAP ( 16, "Bitmap"), 038 /*002*/ new IFA_LLNUM ( 19, "Primary Account number"), 039 /*003*/ new IFA_NUMERIC ( 6, "Processing Code"), 040 /*004*/ new IFA_NUMERIC ( 12, "Amount, Transaction"), 041 /*005*/ new IFA_NUMERIC ( 12, "Amount, Reconciliation"), 042 /*006*/ new IFA_NUMERIC ( 12, "Amount, Cardholder billing"), 043 /*007*/ new IFA_NUMERIC ( 10, "Date and time, transmission"), 044 /*008*/ new IFA_NUMERIC ( 8, "Amount, Cardholder billing fee"), 045 /*009*/ new IFA_NUMERIC ( 8, "Conversion rate, Reconciliation"), 046 /*010*/ new IFA_NUMERIC ( 8, "Conversion rate, Cardholder billing"), 047 /*011*/ new IFA_NUMERIC ( 6, "Systems trace audit number"), 048 /*012*/ new IFA_NUMERIC ( 12, "Date and time, Local transaction"), 049 /*013*/ new IFA_NUMERIC ( 4, "Date, Effective"), 050 /*014*/ new IFA_NUMERIC ( 4, "Date, Expiration"), 051 /*015*/ new IFA_NUMERIC ( 6, "Date, Settlement"), 052 /*016*/ new IFA_NUMERIC ( 4, "Date, Conversion"), 053 /*017*/ new IFA_NUMERIC ( 4, "Date, Capture"), 054 /*018*/ new IFA_NUMERIC ( 4, "Merchant type"), 055 /*019*/ new IFA_NUMERIC ( 3, "Country code, Acquiring institution"), 056 /*020*/ new IFA_NUMERIC ( 3, "Country code, Primary account number"), 057 /*021*/ new IFA_NUMERIC ( 3, "Country code, Forwarding institution"), 058 /*022*/ new IF_CHAR ( 12, "Point of service data code"), 059 /*023*/ new IFA_NUMERIC ( 3, "Card sequence number"), 060 /*024*/ new IFA_NUMERIC ( 3, "Function code"), 061 /*025*/ new IFA_NUMERIC ( 4, "Message reason code"), 062 /*026*/ new IFA_NUMERIC ( 4, "Card acceptor business code"), 063 /*027*/ new IFA_NUMERIC ( 1, "Approval code length"), 064 /*028*/ new IFA_NUMERIC ( 6, "Date, Reconciliation"), 065 /*029*/ new IFA_NUMERIC ( 3, "Reconciliation indicator"), 066 /*030*/ new IFA_NUMERIC ( 24, "Amounts, original"), 067 /*031*/ new IFA_LLCHAR ( 99, "Acquirer reference data"), 068 /*032*/ new IFA_LLNUM ( 11, "Acquirer institution identification code"), 069 /*033*/ new IFA_LLNUM ( 11, "Forwarding institution identification code"), 070 /*034*/ new IFA_LLCHAR ( 28, "Primary account number, extended"), 071 /*035*/ new IFA_LLCHAR ( 37, "Track 2 data"), 072 /*036*/ new IFA_LLLCHAR (104, "Track 3 data"), 073 /*037*/ new IF_CHAR ( 12, "Retrieval reference number"), 074 /*038*/ new IF_CHAR ( 6, "Approval code"), 075 /*039*/ new IFA_NUMERIC ( 3, "Action code"), 076 /*040*/ new IFA_NUMERIC ( 3, "Service code"), 077 /*041*/ new IF_CHAR ( 8, "Card acceptor terminal identification"), 078 /*042*/ new IF_CHAR ( 15, "Card acceptor identification code"), 079 /*043*/ new IFA_LLCHAR ( 99, "Card acceptor name/location"), 080 /*044*/ new IFA_LLCHAR ( 99, "Additional response data"), 081 /*045*/ new IFA_LLCHAR ( 76, "Track 1 data"), 082 /*046*/ new IFA_LLLCHAR (204, "Amounts, Fees"), 083 /*047*/ new IFA_LLLCHAR (999, "Additional data - national"), 084 /*048*/ new IFA_LLLCHAR (999, "Additional data - private"), 085 /*049*/ new IF_CHAR ( 3, "Currency code, Transaction"), 086 /*050*/ new IF_CHAR ( 3, "Currency code, Reconciliation"), 087 /*051*/ new IF_CHAR ( 3, "Currency code, Cardholder billing"), 088 /*052*/ new IFA_BINARY ( 8, "Personal identification number (PIN) data"), 089 /*053*/ new IFA_LLBINARY( 48, "Security related control information"), 090 /*054*/ new IFA_LLLCHAR (120, "Amounts, additional"), 091 /*055*/ new IFA_LLLBINARY(255,"IC card system related data"), 092 /*056*/ new IFA_LLNUM ( 35, "Original data elements"), 093 /*057*/ new IFA_NUMERIC ( 3, "Authorization life cycle code"), 094 /*058*/ new IFA_LLNUM ( 11, "Authorizing agent institution Id Code"), 095 /*059*/ new IFA_LLLCHAR (999, "Transport data"), 096 /*060*/ new IFA_LLLCHAR (999, "Reserved for national use"), 097 /*061*/ new IFA_LLLCHAR (999, "Reserved for national use"), 098 /*062*/ new IFA_LLLCHAR (999, "Reserved for private use"), 099 /*063*/ new IFA_LLLCHAR (999, "Reserved for private use"), 100 /*064*/ new IFA_BINARY ( 8, "Message authentication code field"), 101 /*065*/ new IFA_BINARY ( 8, "Reserved for ISO use"), 102 /*066*/ new IFA_LLLCHAR (204, "Amounts, original fees"), 103 /*067*/ new IFA_NUMERIC ( 2, "Extended payment data"), 104 /*068*/ new IFA_NUMERIC ( 3, "Country code, receiving institution"), 105 /*069*/ new IFA_NUMERIC ( 3, "Country code, settlement institution"), 106 /*070*/ new IFA_NUMERIC ( 3, "Country code, authorizing agent Inst."), 107 /*071*/ new IFA_NUMERIC ( 8, "Message number"), 108 /*072*/ new IFA_LLLCHAR (999, "Data record"), 109 /*073*/ new IFA_NUMERIC ( 6, "Date, action"), 110 /*074*/ new IFA_NUMERIC ( 10, "Credits, number"), 111 /*075*/ new IFA_NUMERIC ( 10, "Credits, reversal number"), 112 /*076*/ new IFA_NUMERIC ( 10, "Debits, number"), 113 /*077*/ new IFA_NUMERIC ( 10, "Debits, reversal number"), 114 /*078*/ new IFA_NUMERIC ( 10, "Transfer, number"), 115 /*079*/ new IFA_NUMERIC ( 10, "Transfer, reversal number"), 116 /*080*/ new IFA_NUMERIC ( 10, "Inquiries, number"), 117 /*081*/ new IFA_NUMERIC ( 10, "Authorizations, number"), 118 /*082*/ new IFA_NUMERIC ( 10, "Inquiries, reversal number"), 119 /*083*/ new IFA_NUMERIC ( 10, "Payments, number"), 120 /*084*/ new IFA_NUMERIC ( 10, "Payments, reversal number"), 121 /*085*/ new IFA_NUMERIC ( 10, "Fee collections, number"), 122 /*086*/ new IFA_NUMERIC ( 16, "Credits, amount"), 123 /*087*/ new IFA_NUMERIC ( 16, "Credits, reversal amount"), 124 /*088*/ new IFA_NUMERIC ( 16, "Debits, amount"), 125 /*089*/ new IFA_NUMERIC ( 16, "Debits, reversal amount"), 126 /*090*/ new IFA_NUMERIC ( 10, "Authorizations, reversal number"), 127 /*091*/ new IFA_NUMERIC ( 3, "Country code, transaction Dest. Inst."), 128 /*092*/ new IFA_NUMERIC ( 3, "Country code, transaction Orig. Inst."), 129 /*093*/ new IFA_LLNUM ( 11, "Transaction Dest. Inst. Id code"), 130 /*094*/ new IFA_LLNUM ( 11, "Transaction Orig. Inst. Id code"), 131 /*095*/ new IFA_LLCHAR ( 99, "Card issuer reference data"), 132 /*096*/ new IFA_LLLBINARY(999,"Key management data"), 133 /*097*/ new IFA_AMOUNT (1+16,"Amount, Net reconciliation"), 134 /*098*/ new IF_CHAR ( 25, "Payee"), 135 /*099*/ new IFA_LLCHAR ( 11, "Settlement institution Id code"), 136 /*100*/ new IFA_LLNUM ( 11, "Receiving institution Id code"), 137 /*101*/ new IFA_LLCHAR ( 17, "File name"), 138 /*102*/ new IFA_LLCHAR ( 28, "Account identification 1"), 139 /*103*/ new IFA_LLCHAR ( 28, "Account identification 2"), 140 /*104*/ new IFA_LLLCHAR (100, "Transaction description"), 141 /*105*/ new IFA_NUMERIC ( 16, "Credits, Chargeback amount"), 142 /*106*/ new IFA_NUMERIC ( 16, "Debits, Chargeback amount"), 143 /*107*/ new IFA_NUMERIC ( 10, "Credits, Chargeback number"), 144 /*108*/ new IFA_NUMERIC ( 10, "Debits, Chargeback number"), 145 /*109*/ new IFA_LLCHAR ( 84, "Credits, Fee amounts"), 146 /*110*/ new IFA_LLCHAR ( 84, "Debits, Fee amounts"), 147 /*111*/ new IFA_LLLCHAR (999, "Reserved for ISO use"), 148 /*112*/ new IFA_LLLCHAR (999, "Reserved for ISO use"), 149 /*113*/ new IFA_LLLCHAR (999, "Reserved for ISO use"), 150 /*114*/ new IFA_LLLCHAR (999, "Reserved for ISO use"), 151 /*115*/ new IFA_LLLCHAR (999, "Reserved for ISO use"), 152 /*116*/ new IFA_LLLCHAR (999, "Reserved for national use"), 153 /*117*/ new IFA_LLLCHAR (999, "Reserved for national use"), 154 /*118*/ new IFA_LLLCHAR (999, "Reserved for national use"), 155 /*119*/ new IFA_LLLCHAR (999, "Reserved for national use"), 156 /*120*/ new IFA_LLLCHAR (999, "Reserved for national use"), 157 /*121*/ new IFA_LLLCHAR (999, "Reserved for national use"), 158 /*122*/ new IFA_LLLCHAR (999, "Reserved for national use"), 159 /*123*/ new IFA_LLLCHAR (999, "Reserved for private use"), 160 /*124*/ new IFA_LLLCHAR (999, "Reserved for private use"), 161 /*125*/ new IFA_LLLCHAR (999, "Reserved for private use"), 162 /*126*/ new IFA_LLLCHAR (999, "Reserved for private use"), 163 /*127*/ new IFA_LLLCHAR (999, "Reserved for private use"), 164 /*128*/ new IFA_BINARY ( 8, "Message authentication code field") 165 }; 166 public ISO93APackager() { 167 super(); 168 setFieldPackager(fld); 169 } 170}