Verifying Voucher

Any Idea to make validation voucher,
i make voucher with special numbers.
Ex. i make vocher BG1110111, BG1110112, etc
amout of voucher is 50.000 and 100.000
How record to sambapos this voucher number?
How to validation this voucher when customer pay with voucher?
How to limit payment with voucher just 50% from total payment, scenario customer can pay using more than 1 voucher.

Typically voucher would be an entity type with an account associated with it.
There is a couple of gift voucher tutorials, please search the forum, they are easy to find.

I had search it. But no voucher validation

The validation would be on the payment type.
If you use accounts for the voucher credit which is best way, you make the transaction types to top up and charge to voucher account.
The charge to voucher is payment type based on the voucher entity being selected and charging to voucher account and the validation is set on the payment type for charging to voucher account.

Sorry, i still not understand. Could you help me show me how to make it

Not the whole thing, gift voucher itself is already documented.
You might not find tutorial for gift voucher with payment processor conditions as is more specific but voucher itself is;
Her for example

Impliment your voucher system first then we can work out the value/amount validation.

You can refer to below implementation:

How to make limit payment with voucher just <= 50 % from ticket total (total amount)?

i use execute script for voucher payment processors

 function UpdateDescription() {
    var paymenttype = Data.Get("paymentTypeName");

    if (paymenttype=='Credit Card') {
       var cctype = dlg.AskQuestion("Choose Credit Card type","BCA=BCA Card,BNI=BNI Card,MANDIRI=MANDIRI Card,MASTER=MASTER Card,VISA=VISA,CANCEL=CANCEL");
   if (cctype=="CANCEL") {
      Data.Set("canContinue",false);
      dlg.ShowMessage("Payment Cancelled");
      return 1;
   }
    var paymentinfo = cctype;
   } 

   if (paymenttype=='Debit Card') {
      var dctype = dlg.AskQuestion("Choose Debit Card type","BCA=BCA,BNI=BNI,MANDIRI=MANDIRI,CANCEL=CANCEL");
   if (dctype=="CANCEL") {
      Data.Set("canContinue",false);
      dlg.ShowMessage("Payment Cancelled");
      return 1;
   }
     var paymentinfo = dctype ;
   }

   if (paymenttype=='Voucher') {
     var tendered = Data.Get("tenderedAmount");
    if (tendered == 50000 || tendered == 100000) {      
    var vnum = dlg.EditValue("Voucher Number;.{8};;OCS","");
            }
    else {
    Data.Set("canContinue",false);
    dlg.ShowMessage("Payment Cancelled");
    return 1;
    }
    paymentinfo = vnum;
   }

   Data.Set("description", paymentinfo);
   dlg.ShowMessage("Payment Processed\r"+paymentinfo);

   return 0;
   }