sequenceDiagram
    participant T as Terminal
    participant IMP as IncomingMessageProcessor  
    participant VP as ValidationProcessor
    participant YSP as YSP.MessageProcessor
    participant ACQ as Acquirer Context
    participant DB as Database
    
    T->>IMP: ISO8583 Message (DE-41=Terminal ID)
    IMP->>VP: validate_required_fields([41, 42])
    VP-->>IMP: ✅ DE-41 present and valid
    
    IMP->>YSP: ysp_message?(DE-24=782?)
    YSP-->>IMP: ✅ YSP message detected
    
    IMP->>ACQ: get_terminal_by_switch_ids(DE-41, DE-42)
    ACQ->>DB: SELECT * FROM acquirer_terminal WHERE tid=? AND mid=?
    DB-->>ACQ: Terminal record (or nil)
    ACQ-->>IMP: Terminal validation result
    
    alt Terminal Found & Active
        IMP->>ACQ: create_temp_transaction(attrs)
        ACQ->>DB: INSERT INTO pos_temp_transaction (s_tid=DE-41, ...)
        DB-->>ACQ: pos_temp_transaction.id
        ACQ-->>IMP: ✅ Transaction created
    else Terminal Not Found
        IMP-->>T: ❌ Invalid Terminal (Response Code 03)
    end