transaction emails, optional mesage field, and tests