1) в случае ошибки пишет красным, что именно не так, к сожалению писать не могу, т.к. нет описание работы с /mobile/check?code=. возвращается json, в котором есть поле status, если оно не = ok, то какая-то ошибка, я несколько ловил, но без описания не стал расшифровывать
2) не стал заморачиваться с таймаутами на распознавание марки, если марка та же, то просто не обрабатываю, поэтому повторно одну и ту же марку отсканировать нельзя, если нужно будет, переделаю, но позже, сейчас так быстрее было сделать. да, чтобы понять почему ничего не выводит было бы неплохо посмотреть на марку.
если чёрным, то всё ок. попробуйте эту же марку проверить в приложении честного знака, вообще я сканировал проданные марки и status возвращался = "item_sold_receipt"