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).
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 ResponseFinancial Transactions
Standard Purchase — Message Flow
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
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
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
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):
0420→0430 - 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
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
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)
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
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 Code
85("No Reason to Decline") = card is valid - Does not generate interchange or affect cardholder's available balance
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 / 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
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
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)
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
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
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 Type | MTI (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 |