Best Practices

Learn about the normalization and hashing of identifiers.

Hashing

The most common identifiers for the ATS API are hashed emails. The endpoint accepts common hash types of emails:

  • MD5
  • SHA1
  • SHA256

In order to obtain the best possible envelope for a user, we recommend calling the API with all three email hash types. If you are only able to hash or obtain one, we prefer:

  • SHA1 for US
  • SHA256 for all other geos

**Phone number identifier (US only)
The ATS Envelope API also supports hashed phone numbers for users in the US. Use only SHA1 hashes to pass such identifiers. Hashed phone numbers are only supported for US, ten-digit phone numbers. Ensure you remove any country codes or formatting before SHA1 hashing, e.g.:

+1 (415) 555-6656 should become 4155556656 before hashing.

Hashing Code Samples

We recommend using a library like jshashes on the web or node.

import hashlib

def get_hashes(message):
        hash_result = {}
        hash_result['md5'] = hashlib.md5(message).hexdigest()
        hash_result['sha1'] = hashlib.sha1(message).hexdigest()
        hash_result['sha256'] = hashlib.sha256(message).hexdigest()
        return hash_result

input_email = '[email protected] '.lower().strip().encode('utf-8')
print(get_hashes(input_email))