Indian markets ended marginally lower amid volatility. The BSE Sensex ended at 40,558.49, down 148.82 points or 0.37%. The Nifty ended at 11,896.45, down 41.20 points or 0.35%.