def METHOD_NAME(self):
    clean = re.compile('[^a-zA-Z0-9.-]')
    hasher = hashlib.sha1()
    hasher.update(clean.sub('', self.payer.lower()).encode('utf-8'))
    hasher.update(clean.sub('', self.reference.lower()).encode('utf-8'))
    hasher.update(clean.sub('', str(self.amount).lower()).encode('utf-8'))
    hasher.update(clean.sub('', self.date.lower()).encode('utf-8'))
    return str(hasher.hexdigest())