The aim of this work is to study monoid morphisms between commutative monoids. Algorithms to check if a monoid morphism between two finitely generated monoids is injective and/or surjective are given. The structure of the set of monoid morphisms between a monoid and a cancellative monoid is also studied and an algorithm to obtain a system of generators of this set is provided.