POS Transaction types explained

Apr 1, 2024 9 min read 10,251 views
POS Transaction types explained

A Point-of-Sale (POS) terminal communicates with the card network and issuing bank via the ISO 8583 financial transaction card message protocol. Every transaction is identified by a combination of the Message Type Indicator (MTI) and the Processing Code (Field 3). Understanding these transaction types is essential for anyone building, testing, or certifying a POS acquiring system.

Transactions fall into two broad categories: Financial transactions (those that move money or interact with card balances) and Administrative / non-financial transactions (session management, key exchange, and end-of-day settlement flows).

â„šī¸
ISO 8583 Message Type Indicator (MTI) cheat sheet:
0100 Authorization Request  |  0110 Authorization Response  |  0120 Authorization Advice  |  0130 Advice Response  |  0400 Reversal Request  |  0410 Reversal Response  |  0800 Network Management Request  |  0810 Network Management Response


Financial Transactions

 Standard Purchase — Message Flow

POS Terminal
Cardholder
 
0100 Req
Acquirer / Switch
Field 41 TID
 
0100 Fwd
Card Scheme
Visa / MC
 
0100 Fwd
Issuer Bank
Authorization
 
← 0110 Response (Field 39 RC)
🛒
Purchase Transaction
MTI 0100  Proc Code 00xxxx  Field 3: 000000

The most common POS transaction — used for the normal purchase of goods or services at a merchant. The terminal sends an Authorization Request (0100) to the cardholder's issuing bank, which responds with an approval or decline (0110).

  • Supports CHIP (contact EMV), NFC/contactless, and magnetic stripe entry modes (Field 22)
  • Works with both credit and debit cards; debit typically requires PIN verification
  • Field 3 Processing Code:00 00 00(purchase, account type, account type)
  • On approval: Field 39 Response Code =00(Approved)
  • Funds are authorized and held; final settlement occurs at end-of-day batch
â†Šī¸
Merchandise Return
MTI 0200 / 0220  Proc Code 20xxxx

Used when a customer returns goods to a merchant and funds should be credited back to the cardholder's account. The POS sends a Financial Advice Request — unlike a purchase, this is typically processed as an advice (no real-time authorization needed from the issuer).

  • Field 3 Processing Code:20 00 00(credit / return)
  • Sent as an advice (0220); issuer responds with0230
  • No cardholder PIN required in most schemes for a refund
  • Some schemes require the original transaction reference (Field 37) to be included
  • Merchant must have refund privileges enabled in their terminal profile
đŸ’ĩ
Cash Advance
MTI 0100 Proc Code 01xxxx

Allows a cardholder to withdraw cash at a merchant POS, similar to an ATM withdrawal. The amount is debited from the card account and dispensed as cash by the cashier.

  • Field 3 Processing Code:01 00 00(cash disbursement)
  • Authorization Request (0100) sent to issuer; PIN is typically mandatory
  • Subject to daily cash withdrawal limits defined by the issuer
  • Many issuers charge a cash advance fee — reflected in Field 28 (transaction fee)
  • Not available on all card products; some debit-only cards restrict it
🔄
Reversal
MTI 0400 MTI 0420 (Advice)

Sent to undo the most recent transaction — for example when a receipt printer fails mid-transaction or the terminal loses connectivity after the authorization was approved. Only the last transaction can be reversed this way.

  • Reversal Request:0400→ Reversal Response:0410
  • Reversal Advice (when terminal cannot confirm response):04200430
  • Field 90 carries the original data elements from the reversed transaction
  • Must be sent before end-of-day batch close to be effective
  • Distinct from a refund: reversals release the authorization hold immediately
â›Ŋ
Pre-Authorization
MTI 0100  Proc Code 00xxxx  Field 61 (Pre-auth flag)

Checks that a cardholder has sufficient funds and places a hold on a specific amount — without finalizing the charge. Classic use case: fuel dispensers (petrol stations) and hotels, where the final amount is not known at the start of the transaction.

  • Sends an Authorization Request (0100) with a pre-auth indicator in Field 61
  • Issuer places the pre-auth amount on-hold; cardholder's available balance decreases
  • Pre-auth hold typically expires after 24–72 hours if no completion is received
  • Hotels commonly pre-auth for estimated stay cost + incidentals buffer
  • Must be followed by a Completion or Adjustment to settle the actual amount
✅
Pre-Auth Completion / Adjustment
MTI 0200 / 0220   Proc Code 00xxxx

Finalizes a previous pre-authorization with the actual transaction amount. The terminal sends a Financial Advice referencing the original pre-auth. The Adjustment variant also allows the amount to differ from the original pre-auth (e.g., actual fuel dispensed vs. the initial hold).

  • Financial Advice Request:0220→ Response:0230
  • Field 25 (POS condition code) differentiates completion from a new transaction
  • The original approval code (Field 38) must be echoed back from the pre-auth response
  • If final amount < pre-auth amount, the excess hold is automatically released
  • If final amount > pre-auth amount, the issuer may decline (depends on policy)
đŸ’ŗ
Balance Inquiry
MTI 0100   Proc Code 31xxxx

Allows a cardholder to check their account balance at a POS terminal, in the same way they might at an ATM. No funds are moved; the issuer returns the balance in the response message.

  • Field 3 Processing Code:31 00 00(balance inquiry)
  • Issuer returns available and ledger balance in Field 54 (Additional Amounts)
  • PIN entry is typically required to authenticate the cardholder
  • Some card schemes allow balance display on the POS receipt (configurable)
  • Not supported by all card products — credit cards often omit this feature at POS
🔍
Card Verification
MTI 0100   Proc Code 36xxxx

Checks whether a card is valid and accepted at the terminal or merchant — without placing any hold or moving funds. Typically used when signing up a customer for a recurring payment, or validating a card before allowing a high-value transaction.

  • Field 3 Processing Code:36 00 00(account verification)
  • Transaction amount in Field 4 is set to zero (000000000000)
  • Issuer validates card status, expiry, and merchant eligibility
  • Response Code85("No Reason to Decline") = card is valid
  • Does not generate interchange or affect cardholder's available balance
📞
Mail / Telephone Order (MOTO)
MTI 0100   Field 22: POS entry 01

Used when a cardholder places an order via telephone or email and the operator manually keys in the card details at the POS. The card is not physically present, which makes this a Card Not Present (CNP) transaction with a different risk and liability profile.

  • POS Entry Mode (Field 22):01(manual key entry, card not present)
  • CVV2/CVC2 is used instead of PIN for cardholder verification
  • Liability shifts to the merchant in most schemes for CNP fraud
  • Subject to additional fraud screening; 3DS may apply to online MOTO flows
  • Requires specific merchant category and terminal capability flags to be enabled
Administrative

Administrative / Non-Financial Transactions

Administrative transactions manage the POS terminal's session with the acquiring host. They do not move funds but are essential for terminal security, key management, reconciliation, and availability. All administrative messages use MTI 0800 (Network Management Request) and 0810 (Network Management Response), differentiated by Field 70 (Network Management Information Code).

âŦĄ Terminal Logon — Message Flow

POS Terminal
0800 / F70=001
 
0800 Req
Acquirer Host
Validate TID
 
Verify / Sync
Approved
0810 RC=00
🔌
Logon
MTI 0800   Field 70: 001

Establishes a session between the POS terminal and the Terminal Host (Acquirer). Performed at the start of each business day, after a restart, or following a network interruption. The host validates the terminal, synchronizes state, and confirms the terminal is authorised to operate.

  • Network Management Request:0800, Field 70 =001(Sign-On)
  • Host validates Terminal ID (Field 41) and Merchant ID (Field 42)
  • Session keys may be exchanged or confirmed during logon
  • POS Operator ID can also be authenticated at this stage
  • Successful response:0810, Field 39 =00
🔒
Logoff
MTI 0800   Field 70: 002

Terminates the active session between the POS terminal and the host. Sent when an operator shift ends, when a terminal is being taken offline for maintenance, or to close a failed session cleanly before re-logging on.

  • Network Management Request:0800, Field 70 =002(Sign-Off)
  • Cleans up session state on the host side
  • Recommended before initiating a new logon or key exchange
  • Should be sent when changing POS operator (different cashier shift)
đŸ“Ļ
Close Batch (End of Day)
MTI 0500   MTI 0800 / F70: 201

Signals the end of a processing period — a day, shift, or accumulation batch. Triggers reconciliation between the POS terminal's local counters and the host's records. Authorized transactions are captured and sent for clearing and settlement.

  • Batch Upload Request:0500→ Batch Upload Response:0510
  • Or via Network Management:0800, Field 70 =201(Reconcile)
  • Terminal counters (amounts and counts by transaction type) are verified against host
  • Discrepancies trigger a "out-of-balance" condition that must be resolved
  • Can close day, shift, or a specific merchant batch depending on configuration
📊
Subtotals (Totals Request)
MTI 0800   Field 70: 301

Requests a running totals report from the host without closing the batch. Used by operators to check accumulated transaction counts and amounts mid-shift, helping to catch discrepancies early.

  • Network Management Request:0800, Field 70 =301(Cutover)
  • Host responds with totals in Field 63 (Additional Private Data) or Field 60
  • Subtotals can be requested per transaction type (purchase, refund, cash, etc.)
  • Does not close or reset the current batch period
🔑
Key Exchange
MTI 0800   Field 70: 161 / 163

Generates and distributes a new encryption key between the POS terminal and the host, following a defined key exchange protocol (typically DUKPT or Master/Session). Performed regularly to maintain PCI DSS compliance and protect PIN and transaction data in transit.

  • Key Exchange Request:0800, Field 70 =161(Master Key Download)
  • Session Key Exchange uses Field 70 =163
  • New keys are delivered encrypted under the existing KEK (Key Encrypting Key)
  • DUKPT (Derived Unique Key Per Transaction) is the most common scheme at POS
  • Must succeed before the terminal can process PIN-based transactions

ISO 8583 Quick Reference Table

Summary of MTI and Processing Codes for all POS transaction types covered in this article.

Transaction TypeMTI (Request)MTI (Response)Processing Code (Field 3)Field 70 (Admin only)Category
Purchase 0100 0110 00 00 00 Financial
Merchandise Return 0220 0230 20 00 00 Financial
Cash Advance 0100 0110 01 00 00 Financial
Reversal (Request) 0400 0410 (original) Financial
Reversal (Advice) 0420 0430 (original) Financial
Pre-Authorization 0100 0110 00 00 00 Financial
Pre-Auth Completion 0220 0230 00 00 00 Financial
Balance Inquiry 0100 0110 31 00 00 Financial
Card Verification 0100 0110 36 00 00 Financial
MOTO 0100 0110 00 00 00 Financial (CNP)
Logon 0800 0810 001 Admin
Logoff 0800 0810 002 Admin
Close Batch / Reconcile 0800 / 0500 0810 / 0510 201 Admin
Subtotals 0800 0810 301 Admin
Key Exchange (Master) 0800 0810 161 Admin
Key Exchange (Session) 0800 0810 163 Admin
Tip for testers & integrators: The neaPay ISO 8583 Payments Simulator and POS Device Simulator support all transaction types listed in this article — including pre-authorization flows, key exchange, and batch reconciliation — out of the box. You can also test response code scenarios, EMV cryptogram generation, and load-test at up to 1000 TPS.

Test every POS transaction type with neaPay

The neaPay ISO 8583 Simulator supports the complete POS transaction lifecycle — from logon through batch close — with full EMV, PIN, and MAC support.

© 2025 neaPay · Enterprise ISO 8583 Payments Integration & Simulation · neapay.com
Tags:
Tutorials
  Related

Recent Articles on Tutorials

Choose the product you need

ISO8583 Converter REST-api

Convert ISO8583 to rest-api JSON XML SQL &more

ISO8583 Interface Connector

Integrate ISO8583 card schemes and hosts

ISO20022 SWIFT MT MX Converter

Convert and integrate ISO20022 SWIFT MX with MT , ISO8583

ISO8583 Builder Parser Connector

Most simple solution to build and parse ISO8583 messages

ISO8583 Switch Router

ISO8583 or REST-api Switch Router Bin Amount

Card Payments Authorization

Pre-screen, pre-authorize and Authorize cards and ledger

POS Card Acquirer & Aggregator

Acquiring and Aggregating from POS and other devices

Cards Generator Issuing Host

Generate and export card data for cards issuing and test

ISO8583 Simulator

ISO8583 HISO98 HISO87 simulator

ISO20022 Simulator

ISO20022 & SWIFT simulator

POS Simulator

POS protocols simulator

Mobile Banking Simulator

Mobile Banking Testing Simulator

QR Payments Connector

EMV QR Payments Interface Connector

Micropayments Connector

Micropayments Acquiring Connector & Router

ISO8583 Alerts Notifications

Detect Anomalies, Alerts & Notifications

Clearing & Settlement

Generate Convert Import

Request a Quote

Get a free quote, Ask for details
Get help

Documentation

Read Documentation and Start guides

Online Tools

Online Tools Overview