What is the ideal type of barcode for paper tickets? I can use the following type of barcodes in my project:


Code 39
Code 128
QR Code
Data Matrix
PDF-417


They will be printed with standard office printers and with boca printers. It should also be possible to show them on smartphone screens.

They will be read with webcams or Windows tablets. It would also be helpful I could buy an USB barcode reader or something similar to use with this codes.

The data in the code will be text and numbers, at least 10 characters.

Which barcode type is most suitable for this situation? The most critical factor is the fault toleration, this has to be as low as possible on the mentioned media.
First, about the USB barcode reader: at my previous job (QA at a label printer company), we had one from Scanology. It worked as a keyboard device, the scanned data is sent to the pc as if it were typed. So you don't need any special software.


Code 39 has no error correction, but even a single misread line won't result in wrong data, because it simply won't produce a valid character. So you either get valid data, or you get nothing.
A major advantage of code 39 is that you don't need barcode software, you can simply use a barcode font.
Code 128 is slightly better than code 39 in terms of error detection, but still no fault tolerance. And you can't use a barcode font. In your case, you would use 128A (0-9, A-Z and a few special chars).
If your most critical factor is fault tolerance, then I would suggest QR, with high error correction setting, which gives up to 30% redundancy. This means that up to 30% of your QR code can be unreadable before the scanner gives up. The Wikipedia page on QR shows an example of a torn QR code that is still readable: http://en.wikipedia.org/wiki/QR_code#Error_correction
Another advantage is that it can be scanned in any direction, and it's a quite popular format.
Data Matrix and PDF-417 are similar to QR in terms of fault tolerance, but they are not widely supported for smartphones. I scanned thousands of QR and PDF-417 codes during my time as QA engineer at that label printer company, and I found a lot of high quality QR scanning software for Android and iPhone, but hardly any for PDF-417 and Data Matrix. I assume the situation will be the same (or worse) for Windows Phone.


My advice:


Easy implementation: Code 39. Use a Code 39 barcode font. Works with cheaper barcode scanners.
Very high fault tolerance: QR at level H (High). Use the ZXing library. Handheld USB barcode scanners may cost a tiny bit more.