Congress can subpoena witnesses, or force them to testify under oath, before its committees. This authority comes from the Constitution’s grant to Congress of all legislative powers (Article 1, Section 1). Witnesses are subpoenaed to provide information that will assist committees in preparing legislation. In the case of Mc-Grain v. Daugherty (1927), the Supreme Court recognized that Congress could subpoena even private citizens to testify. The Court noted that since not everyone would volunteer needed information, some means of compulsion are essential to obtain what is needed. Witnesses who refuse to respond to a congressional subpoena, or refuse to give information (unless they invoke their 5th Amendment protection against self-incrimination) may be found in contempt of Congress and sent to prison.
If that's the case, then why doesn't the House committee simply issue the subpoena? He could refuse to testify under the Fifth Amendment, but they'd grant him immunity anyway because I'm not sure he's going to be asked anything that might put him in legal trouble.