When reciting a string of numbers such as your credit card number it is common and perfectly acceptable to pronounce zero as “oh.” But when dealing with a registration code or other such string of characters which mixes letters and numbers, it is important to distinguish between the number 0 and the letter O. In most typefaces a capital O is rounder, fatter, than a zero, but that is not always the case. What looks unambiguous when you type it may come out very unclear on the other end on a computer that renders your message in a different typeface.
In technical contexts, the distinction is often made by using zeros with slashes through them, but this can create as many problems as it solves: those unfamiliar with the convention will be confused by it, numbers using such characters may not sort properly, and slashed zeros created in some fonts change to normal zeros in other fonts.
If you work for a company that requires registration codes you do a disservice to your customers and yourself by including either zeros or O’s in your codes where there is any possibility of confusion.