The terminal's selectedCard comes from CardLookupResponse which uses card_id field, but the JS was referencing selectedCard.id (undefined). This caused all terminal transactions to fail with "LoyaltyCard with identifier 'unknown' not found" instead of processing the transaction or showing proper PIN validation errors. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>