separate reason classes for voiding different transaction types, #38532