A method and apparatus for creating, supporting and using a "travelling program" is disclosed. A "travelling program" is a digital data structure which includes a sequence of instructions and associated data and which has the capability of determining at least one next destination or recipient for receiving the travelling program and for transmitting itself together with all relevant data determined by the program to the next recipient or destination. The travelling program can compute, according to any algorithm, the digital material which is to be signed, and also, as needed, the digital material which is to be verified. The program can conditionally decide, based on any known criteria, which users should participate in the signature process. Digital signatures allow the travelling program to provide other types of valuable authentication. The travelling program operates to automate data collection among a group of users. It can be sent to one user, attach (or detach) relevant data files and move on to the next user. Data or files, collected from one or more users can be deposited with another user, or accumulated for batched processing as desired. This methodology eliminates the need for individual users to be counted on to transmit all the required data in the required format. The present invention also efficiently performs electronic data interchange (EDI) in the context of a travelling program which sends itself from user to to the next within an organization, collecting, editing and approving data.