title: HMAC validation Failure with code 403
body: <p>I have been exploring payeezy api from last three days. I am just making a simple http web request from a C# application. I have followed all the steps mentions and correctly verified each and everything. Below is the detail per item.</p>
  
  <ol>
  <li>API Key :- I have verified my api key its correct.</li>
  <li>API Secret :- It is also correct.</li>
  <li>merchant token :- It is also verified.</li>
  <li><p>Nonce :- I have created cryptographically strong random number as following.</p>
  
  <pre><code>RandomNumberGenerator rng = new RNGCryptoServiceProvider();
  byte[] nonceData = new byte[18];
  rng.GetBytes(nonceData);
  string nonce = BitConverter.ToUInt64(nonceData,0).ToString();  
  </code></pre></li>
  <li><p>Timestamp :-</p>
  
  <pre><code>string timestamp = Convert.ToInt64(ts.TotalMilliseconds).ToString();
  </code></pre></li>
  <li><p>Payload :-</p>
  
  <pre><code>{"merchant_ref":"Astonishing-Sale","transaction_type":"authorize","method":"credit_card","amount":"1299","currency_code":"USD","credit_card":{"type":"visa","cardholder_name":"John Smith","card_number":"4788250000028291","exp_date":"1020","cvv":"123"}}
  </code></pre></li>
  <li><p>Then I have created HMAC as following.</p>
  
  <pre><code>private string CreateAuthorization(string data, string secret)
  {
      // data is in following format.
      //  data = apiKey + nonce + timestamp + token + payload;
      secret = secret ?? "";
      using (var hmacsha256 = new HMACSHA256(Encoding.UTF8.GetBytes(secret)))
      {
          byte[] hashdata = hmacsha256.ComputeHash(Encoding.UTF32.GetBytes(data));
          return Convert.ToBase64String(hashdata);
      }
  }
  </code></pre></li>
  <li>Now I am getting hmac validation error. My generated hmac string is 64 bit while on your website under docs and sandbox its 86 bit. </li>
  </ol>
  
  <p>Can you please assist me in this as I am stuck on this issue from last three days.
  Thanks</p>