<?php
echo wordwrap(strtoupper(md5('2000')),4,'-',true);
?>

bunu zaten yeniden çözemeyeceğine göre 2000 değeri ile üretmek gereksiz bence. şöyle bir şey tavsiye ederim.

2000 kredi kodu üret:

$id = rand(1000,9999);
wordwrap(strtoupper(md5($id)),4,'-',true);

5000 kredi kodu üret:
$id = rand(1000,9999);
wordwrap(strtoupper(md5($id)),5,'-',true);

10000 kredi kodu üret
$id = rand(1000,9999);
wordwrap(strtoupper(md5($id)),6,'-',true);

gibi...

çözerken kaç karakterli ise ona göre değer verir. mesela kod tutuyorsa ve 30 karakterse 2000 kredi, kod tutuyorsa ve 36 karakterse 5000 kredi gibi...

ya da direk db ye kaydederken 'degeri' diye bir satır açarsın. kod oluşturur ve degerini elle girerek db ye kaydedersin. kod çözülürken 'degeri' sütunundaki miktar kredi olarak kullanıcı tablosuna eklenir...