diff --git a/project/src/com/openbravo/pos/util/RFIDEncoding.java b/project/src/com/openbravo/pos/util/RFIDEncoding.java
--- a/project/src/com/openbravo/pos/util/RFIDEncoding.java
+++ b/project/src/com/openbravo/pos/util/RFIDEncoding.java
@@ -58,8 +58,8 @@
         .leftPad(String.valueOf(Integer.parseInt(binaryCompanyPrefix, 2)), 13 - partition, '0');
 
     String itemReference = StringUtils
-        .leftPad(String.valueOf(Integer.parseInt(binaryItemReference, 2)), partition, '0');
-    String serialNumber = String.format("%012d", Integer.parseInt(binarySerialNumber, 2));
+        .leftPad(String.valueOf(Long.parseLong(binaryItemReference, 2)), partition, '0');
+    String serialNumber = String.format("%012d", Long.parseLong(binarySerialNumber, 2));
 
     String eanWithoutCheckDigit = companyPrefix + itemReference;
     int i = eanWithoutCheckDigit.length() - 1, oddSum = 0, evenSum = 0;
@@ -128,7 +128,7 @@
     String binaryItemReferenceString = StringUtils.leftPad(
         Integer.toBinaryString(Integer.valueOf(itemReference)), numberOfBitsOfItemReference, "0");
     String binarySerialNumberString = StringUtils
-        .leftPad(Integer.toBinaryString(Integer.valueOf(serialNumber)), 38, "0");
+        .leftPad(Long.toBinaryString(Long.valueOf(serialNumber)), 38, "0");
 
     String binaryString = binaryHeaderString + binaryFilterString + binaryPartitionString
         + binaryCompanyPrefixString + binaryItemReferenceString + binarySerialNumberString;
