Blog Home

ISO8583 Message Converter to XML SQL CSV interface specification mapping

Posted on 25th Jan 2022 2795 views

Sample ISO8583 conversion to SQL and XML

This article describes how the ISO8583 Converter creates an XML,  SQL and CSV object from an incoming TCP/IP ISO8583 binary message, and then sends it to a HTTp host as a POST, and a Mysql database, and a flat file on disk respectively. Go to ISO8583 converter to JSON for more details and download links.

Analysis of a sample ISO8583 to JSON conversion, from the Converter. 

ISO8583 Request

25-01-22 06:42:35:783:- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
25-01-22 06:42:35:784:CNV: Message received by Converter
25-01-22 06:42:35:801:CNV: MessageType :0100
25-01-22 06:42:35:804:CNV: Bitmap :723C46D128E0B000 bits:0111001000111100010001101101000100101000111000001011000000000000
25-01-22 06:42:35:809:CNV: F02_PAN :9876500000306082
25-01-22 06:42:35:810:CNV: F03_ProcessingCode :010000
25-01-22 06:42:35:810:CNV: F04_AmountTransaction :000000005000
25-01-22 06:42:35:811:CNV: F07_TransmissionDateTime :0125064235
25-01-22 06:42:35:811:CNV: F11_SystemTraceAuditNumber :006232
25-01-22 06:42:35:812:CNV: F12_DateTimeLocalTransaction :220125
25-01-22 06:42:35:812:CNV: F13_DateLocalTxn :0125
25-01-22 06:42:35:813:CNV: F14_DateExpiration :3012
25-01-22 06:42:35:813:CNV: F18_MerchantType :5961
25-01-22 06:42:35:814:CNV: F22_POSDataCode :020
25-01-22 06:42:35:814:CNV: F23_CardSequenceNumber :000
25-01-22 06:42:35:815:CNV: F25_MessageReasonCode :00
25-01-22 06:42:35:815:CNV: F26_CardAcceptorBusinessCode :53
25-01-22 06:42:35:816:CNV: F28_DateReconciliation :000000000
25-01-22 06:42:35:818:CNV: F32_AcquiringInstitutionIdenti:27610000001
25-01-22 06:42:35:819:CNV: F35_Track2Data :9876500000306082=30121011123123000
25-01-22 06:42:35:819:CNV: F37_RetrievalReferenceNumber :423541700000
25-01-22 06:42:35:820:CNV: F41_CardAcceptorTerminalIdenti:20390059
25-01-22 06:42:35:820:CNV: F42_CardAcceptorIdentification:111120000012000
25-01-22 06:42:35:825:CNV: F43_CardAcceptorNameLocation :contact@neaPay.comAlmere-AmsterdamNeth
25-01-22 06:42:35:826:CNV: F49_CurrencyCodeTransaction :566
25-01-22 06:42:35:826:CNV: F51_CurrencyCodeCardholderBill:566
25-01-22 06:42:35:826:CNV: F52_PINData :FEE8CA6A604F09F0
25-01-22 06:42:35:828:- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

ISO8583 Response

25-01-22 06:42:36:343:- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
25-01-22 06:42:36:344:CNV: Message response sent by Converter
25-01-22 06:42:36:344:CNV: MessageType :0110
25-01-22 06:42:36:345:CNV: Bitmap :723040012EE08400 bits:0111001000110000010000000000000100101110111000001000010000000000
25-01-22 06:42:36:346:CNV: F02_PAN :9876500000306082
25-01-22 06:42:36:346:CNV: F03_ProcessingCode :010000
25-01-22 06:42:36:346:CNV: F04_AmountTransaction :000000005000
25-01-22 06:42:36:347:CNV: F07_TransmissionDateTime :0125064236
25-01-22 06:42:36:347:CNV: F11_SystemTraceAuditNumber :006232
25-01-22 06:42:36:348:CNV: F12_DateTimeLocalTransaction :220125
25-01-22 06:42:36:348:CNV: F18_MerchantType :5961
25-01-22 06:42:36:349:CNV: F32_AcquiringInstitutionIdenti:27610000001
25-01-22 06:42:36:349:CNV: F35_Track2Data :9876500000306082=30121011123123000
25-01-22 06:42:36:350:CNV: F37_RetrievalReferenceNumber :423541700000
25-01-22 06:42:36:350:CNV: F38_ApprovalCode :940262
25-01-22 06:42:36:354:CNV: F39_ActionCode :00
25-01-22 06:42:36:354:CNV: F41_CardAcceptorTerminalIdenti:20390059
25-01-22 06:42:36:355:CNV: F42_CardAcceptorIdentification:111120000012000
25-01-22 06:42:36:355:CNV: F43_CardAcceptorNameLocation :contact@neaPay.comAlmere-AmsterdamNeth
25-01-22 06:42:36:356:CNV: F49_CurrencyCodeTransaction :566
25-01-22 06:42:36:357:CNV: F54_AdditionalAmounts :0002504C000055102.020001504+000006030701
25-01-22 06:42:36:357:- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

 

 

Expected functionality and behaviour

The way the ISO8583 Converter works is to immediately convert the binary ISO8583 message to a JSON

This JSON is available in the javaScript engine, which we can then convert into any XML, SQL, CSV

 

Default business action of the neaPay Converter

Usually customers want that neapay handles all ISO8583-related data.

That is why, by default, the converter pre-builds the response message to the acquirer (POS, ATM, mobile app, e-commerce, bank, switch).

Also, by default, the converter declines the transaction

Action code 99 (to be changed according to the functional specification)

Therefore, we compose the decline reponse transaction, convert it and and send it to the Issuer.

The JSON response

[{"name":"MessageType","value":"0110"},{"name":"Bitmap","value":"723040012EE08400"},{"name":"F02_PAN","value":"9876500000306082"},{"name":"F03_ProcessingCode","value":"010000"},{"name":"F04_AmountTransaction","value":"000000005000"},{"name":"F05_AmountReconciliation","value":""},{"name":"F06_AmountCardholderBilling","value":""},{"name":"F07_TransmissionDateTime","value":"0125064236"},{"name":"F09_ConvRateReconciliation","value":""},{"name":"F10_ConvRateBill","value":""},{"name":"F11_SystemTraceAuditNumber","value":"006232"},{"name":"F12_DateTimeLocalTransaction","value":"220125"},{"name":"F13_DateLocalTxn","value":""},{"name":"F14_DateExpiration","value":""},{"name":"F15_DateSettlement","value":""},{"name":"F16_DateConversion","value":""},{"name":"F17_DateCapture","value":""},{"name":"F18_MerchantType","value":"5961"},{"name":"F19_AcquiringInstitutionCountryCode","value":""},{"name":"F21_CntryCodeFrdInst","value":""},{"name":"F22_POSDataCode","value":""},{"name":"F23_CardSequenceNumber","value":""},{"name":"F24_FunctionCode","value":""},{"name":"F25_MessageReasonCode","value":""},{"name":"F26_CardAcceptorBusinessCode","value":""},{"name":"F27_ApprovalCodeLength","value":""},{"name":"F28_DateReconciliation","value":""},{"name":"F29_ReconciliationIndicator","value":""},{"name":"F30_AmountsOriginal","value":""},{"name":"F32_AcquiringInstitutionIdentificationCode","value":"27610000001"},{"name":"F33_ForwardInstitutionIdentificationCode","value":""},{"name":"F34_PANExtended","value":""},{"name":"F35_Track2Data","value":"9876500000306082=30121011123123000"},{"name":"F36_Track3Data","value":""},{"name":"F37_RetrievalReferenceNumber","value":"423541700000"},{"name":"F38_ApprovalCode","value":"940262"},{"name":"F39_ActionCode","value":"00"},{"name":"F40_ServiceCode","value":""},{"name":"F41_CardAcceptorTerminalIdentification","value":"20390059"},{"name":"F42_CardAcceptorIdentificationCode","value":"111120000012000"},{"name":"F43_CardAcceptorNameLocation","value":"contact@neaPay.comAlmere-AmsterdamNeth"},{"name":"F44_AdditionalResponseData","value":""},{"name":"F45_Track1Data","value":""},{"name":"F46_AmountFees","value":""},{"name":"F48_AdditionalDataPrivate","value":""},{"name":"F49_CurrencyCodeTransaction","value":"566"},{"name":"F50_CurrencyCodeReconciliation","value":""},{"name":"F51_CurrencyCodeCardholderBilling","value":""},{"name":"F52_PINData","value":""},{"name":"F53_Security_CtlInfo","value":""},{"name":"F54_AdditionalAmounts","value":"0002504C000055102.020001504+000006030701"},{"name":"F55_ICCData","value":""},{"name":"F56_OriginalDataElements","value":""},{"name":"F57_AuthorisationLifeCycleCode","value":""},{"name":"F58_AuthorisingAgentInstitutionIDCode","value":""},{"name":"F59_TransportData","value":""},{"name":"F60_CSMReserved","value":""},{"name":"F62_Reserved","value":""},{"name":"F63_PrivateData","value":""},{"name":"F64_MAC","value":""},{"name":"F67_ExtendedPaymentData","value":""},{"name":"F68_ReceivingInstitutionCountryCode","value":""},{"name":"F70_AuthInstCntryCode","value":""},{"name":"F72_DataRecord","value":""},{"name":"F90_OriginalDataElements","value":""},{"name":"F93_TxnDestInstID","value":""},{"name":"F94_TxnOrgInstId","value":""},{"name":"F95_ReplacementAmounts","value":""},{"name":"F96_KeyManagementData","value":""},{"name":"F100_RecInstIdCode","value":""},{"name":"F102_AccountId1","value":""},{"name":"F103_AccountId2","value":""},{"name":"F123_Reserved","value":""},{"name":"F124_NFC","value":""},{"name":"F127_ReservedPrivate","value":""},{"name":"F128_MAC","value":""}]

 

 

Standard behaviour of the converter TO XML and SQL.

 ISO8583 to SQL conversion mapping

The converter by default uses the same names of the ISO8583 fields for the database table columns.

But it also has the capability to define custom names, within the ISO8583 definition.

Example: MessageType:{name:"MessageType",length_type:"fixed 4",data_type:"binary",base:"10",fill:"zeros",value:"",db_column:"msg_type"},

 

A sample conversion to SQL, with default table column names:

 

 

A sample decline of the HTTP host

25-01-22 06:42:36:122:XML Equivalent:

 

 

 In this example of an Authorization in ISO8583-87 format, the host, which only receives a JSON of the response data, has decided to decline a transaction that the converter has decided to approve.

Therefore, the converter sends back a decline response to the transaction.

The converter can do all MAC, EMV, key exchnages and PIN verification, and the host can receive only transactions that have passed pre-screeening.


LinkedIn

Top Read Articles


BIN List & Range for MasterCard, Visa, Amex, Diners, Discover, JCB, CUP
83347 views

Read smart card chip data with APDU commands ISO 7816
47712 views

ISO8583 Response Codes for Transaction processing
29064 views

ISO8583 Message Types for Transaction Processing
19038 views

ISO8583 Processing Codes for Transaction Processing
17105 views

Run the neaPay ISO8583 simulator
16054 views

Deploy, run and generate with neaPay Card Data Generator
15889 views

ISO8583 payments message format, programmers guide
14144 views

MCC Codes - Merchant Category Codes to use in ISO8583 Field 18
13619 views

ISO8583 message: The list of ISO 4217 currency codes for data elements 49 and 52
12068 views

ISO8583 Message Converter JSON and XML interface specification mapping
9851 views

Asking for defects support for the neaPay products: converter, switch, issuer, simulator
7124 views

Create a new test case in the neaPay ISO8583 simulator Video guide
7083 views

Cards and Banks Training
6858 views

Deploy the neaPay ISO8583 simulator - video guide
6820 views

Log Files in BASE24 classic
6617 views

BASE24 documentation to read
6008 views

BASE24 classic interview questions
5923 views

Performance testing at 500, 1000 and 1500 TPS
5908 views

BASE24 classic vs BASE24-eps
5883 views

ISO8583 converter to JSON XML SQL to HTTP host - message flow - video guide - Part.2
5264 views

EMV explained for programmers
5146 views

Connect the neaPay ISO8583 Acquirer simulator to your own host or Issuer
5005 views

ISO8583 converter to JSON XML SQL to HTTP Host - host unavailable - video guide- Part.3
4932 views

Card readers supported by neaPay payments simulator, CHIP and NFC
4748 views

Adding your own card to the Payments simulator to test your system
4744 views

ISO8583 converter to JSON XML SQL to HTTP host - start& run - video guide - Part.1
4743 views

BASE24 classic screens examples explained
4741 views

ISO8583 ATM POS Crypto API integration with exchanges like Coinbase or Binance
4721 views

Run the neaPay ISO8583 converter to JSON, XML, SQL, in a test environment
4719 views

Run One, Run Scenario, Run All, Run Load in the neaPay ISO8583 Simulator - Use guide
4717 views

Enabling traces in the payments simulator
4712 views

Load Test enabling and performance testing at 1TPS and 100TPS
4712 views

Changing fields definitions in the ISO8583 simulator and message converter
4711 views

Altering test cases in Excel for the ISO8583 simulator
4710 views

Deploy the neaPay ISO8583 Payments converter in a test environment
4710 views

How the fingerprint reader works in the ISO8583 payments simulator
4709 views

Sample Recommended design for an Acquirer test cases suite, Scenarios and Regression
4708 views

Regression Testing in 1 click with instant Analytics and CSV report
4663 views

Deploy the Payments Switch Router in a test environment
4560 views

BASE24-eps interview questions
4489 views

BASE24 classic ATM configuration Tutorial in ATD and XPNET with examples
4328 views

Deploy the neaPay HSM simulator in a test environment
4266 views

Add extra custom fields to the ISO8583 simulator
4084 views

BASE24 classic cards configuration tutorial with Examples
3685 views

BASE24-EPS ACI DESKTOP tutorial - Getting started
3367 views

PCI compliant with neapay switch
2859 views

ISO8583 Message Converter to XML SQL CSV interface specification mapping
2796 views

Getting started with BASE24. Compiling your first TAL program
2737 views

BASE24 classic prefix configuration tutorial CPF with examples
2667 views

BASE24 classic tracing of transactions. Audits, configuration, enabling and opening
2647 views

Getting started with Base24 development. TAL tutorial
2636 views

ACI BASE24 classic automatic extract configuration
2609 views

BASE24 classic interchange configuration with examples
2431 views

BASE24 classic balance file configuration PBF with example
2357 views

Java versions for neapay products: Simulator, Converter, Switch, Authorization, Cards Issuer - ISO8583
2339 views

BASE24 classic Institution configuration Tutorial with example
2318 views

First steps with BASE24 Classic
2120 views

Base24-eps how to create journals with esbldjnl
1942 views

Getting started with using Prognosis for BASE24 and BASE24-eps
1909 views

BASE24 classic External Message File configuration EMF with examples
1821 views

BASE24 classic host configuration tutorial HCF with examples
1725 views

POS simulator format SPDH HPDH Verifone and custom
943 views

Trace configuration in neaPay Simulator, Converter, Switch, Authorization and Cards Issuer
519 views

Iso8583 - articles


Are you ready to start or need help?


Ready to start your next project with us? Give us a call or send us an email and we will get back to you as soon as possible!

Download and Use the software yourself


Download software

Read Documentation and Start guides


Get started