An expiry date usually means that you can use something up to and including a certain date.
If a gift voucher has an expiry date of 31st January 2012, you can use it right up until 23:59hrs on 31st January 2012.
On that basis, "before" is incorrect. In order to use it "before 31st January 2012" you would have to use it by 23:59hrs on 30th January 2012.
"Until which" would suggest any date including the expiry date.