Why there is a difference in OHLC values present on charts on kite web/mob app and the OHLC values fetched through kiteconnect API historical data function?

I am using Kiteconnect API. I have observed something strange related to fetching historical data. The closing price of 30 min or 15 min or any other time frame candle that I retrieve through historical data API does not matches with the closing price on the chart on zerodha kite. Why is it that? It should be same exactly.
Example - I fetched the historical data 30 min data for Tatasteel yesterday 03.04.2018 at 14:45:01 pm i.e 1 second after the formation of candle. The closing price shown on zerodha chart for 14:15 candle for 30 minute time frame is 538.69 but what I got through API is 538.10. Why is this difference? Once the data is inserted in the database at 14:45, the value I should get after 1 second should be same as visible on the chart. And which one is actually correct that I can use to backtest and formulate a strategy accordingly.