Fields at risk of user manipulation can be setup as Hash Required. When this requirement exists, a second field is validated for a hash value. The hash can only be generated using the clear text value and a secret "salt" value known only by your organization and Paperless Transactions. If the hash value passed does not match the hash created, the entire post will fail.
Below is a sample of the hashing algorithm in C#. Hashes can also be produced by calling the GenerateHash method available on the Back Office API.
///
/// This method will generate hash value for use with
/// Paperless Transactions' Transparent Redirect Service
///
///
///
string GenerateHash(string clearText, string saltValue)
{
if (string.IsNullOrEmpty(clearText)) throw new ArgumentNullException("clearText");
if (string.IsNullOrEmpty(saltValue)) throw new ArgumentNullException("saltValue");
byte[] plainTextBytes = Encoding.UTF8.GetBytes(clearText + saltValue);
byte[] hashBytes = new Sha1managed().ComputeHash(plainTextBytes);
return Convert.ToBase64String(hashBytes);
}