Taking into account watermark size and quality of recovered image that was tampered, this work proposes a self-recovery watermarking algorithm for e-invoice images based on block classification coding. Image blocks in a test e-invoice image are classified into four types: blocks containing important contents, seal, and invoice format information, and blank ones. The block types and the binary information of all non-blank blocks are coded with RS(1,3) and RS(2,3) respectively to generate a recovery watermark. Based on a key, the recovery watermark is randomly embedded into the blocks in an order of seal, format, and blank until all watermark data are used up. To minimize the size of watermark, the recovery watermark based on the type code and binary information code is used for both authentication and image recovery without additional authentication information. Compared with the recent self-recovery approaches for natural images, the proposed method gives better recovery quality with the same watermark size, and produces a smaller watermark with the same recovery quality, and has better performance both in tamper detection and image recovery against general tampering as well as collage attacks.