A retail data processing system comprises a retail processing device, and a software entity adapted to reside on the processing device. The software entity for example a Java agent is adapted to a) obtain, from the processing device, data relating to a retail transaction with a customer carried out using the processing device; b) filter the data obtained in step a); and c) determine, in dependence on the data obtained in step a), a code including information related to the retail transaction. The code may include one or more of the following items: store identifier, date, time, information relating to items purchased, information relating to one or more items of interest, check flag. The system may include an Electronic Point of Sale (EPOS) system.; In an alternative embodiment the invention comprises matching a first code received from a retail processing device with a second code received from a customer. The invention allows manufacturers to obtain information about the sale and purchasers of their products and can be used to build customer profiles and track customer purchasing behaviour across multiple-retail locations.