The paper deals with the problems of designing observers and unknown input observers for discrete-time Lipschitz non-linear systems. In particular, with the use of the Lyapunov method, three different convergence criteria of the observer are developed. Based on the achieved results, three different design procedures are proposed. Then, it is shown how to extend the proposed approach to the systems with unknown inputs. The final part of the paper presents illustrative examples that confirm the effectiveness of the proposed techniques. The paper also presents a MATLAB® function that implements one of the design procedures.