McCullum, who is in his 34th, announced this in Christchurch a day after his team won the Test series against Sri Lanka 2-0.
Accordingly, McCullum will not play the World T20 in March in India, where Kane Williamson will captain his team. He will play his 100th Test against Australia in Wellington from February 12 - the first player to play so many consecutive matches from debut - and retire after the second and final Test of that series, in Christchurch from February 20.