Boost your productivity and maximize your use of NetSuite with Training delivered by Education Services expert resources. Get started today with a free LCS Explorer Pass.


Check out Oracle NetSuite upcoming events and conferences here
Now is the time to ask your NetSuite-savvy friends and colleagues to join the NetSuite Support Community! Refer now! Click here to watch and learn more!
Attention: Customers with NetSuite Electronic Bank Payment (EBP) SuiteApp, version 2020.2 QA (ID 315896) must UPDATE (do NOT uninstall) their bundle to the Production version 2022.1 (ID 416781) by December 31, 2022. Note: If users fail to manually update the Electronic Bank Payments SuiteApp within the given time window, this version of the SuiteApp (ID: 315896) will be deprecated and the account will not be updated to Leading version (2022.1) of the Electronic Bank Payments SuiteApp. Please refer to the campaign email sent to impacted customers for more information.
Update your Profile with your Support type to get your Support Type badge.
Join the NetSuite Referral Program and get rewarded for introducing your peers to the NetSuite community. ⭐️
Drumroll please...registration for #SuiteWorld 2023 is now OPEN! See you in Las Vegas October 16-19 to celebrate 25 years of NetSuite with even more learning, more networking, and more fun! The show will sell-out (again), so grab that Early Bird $300 discount and reserve your spot today!

SuiteQL HMAC-SHA256 signature

Hi. I'm working on c# SuiteQL rest application. Recently we've got error, that we need to change signature from HMAC-SHA1 to HMAC-SHA256.

Currently, we are using for creating signature Google api - OAuthBase.GenerateSignature. But, this method can't create HMAC-SHA256.

I've been looking through many different solutions, how to create signature manually, but all of them doesn't allow me to create request to NetSuite, i've got "InvalidSignature" error.

This is my current code:

//Creating signature and header
var signature = GenerateSignature(consumerKey,ConfigurationManager.AppSettings["login.tbaConsumerSecret"], ConfigurationManager.AppSettings["login.tbaTokenSecret"],nonce,time,                    tokenId, ConfigurationManager.AppSettings["login.acct"]).Replace("+", "%2B");

var header = $"Authorization: OAuth oauth_signature=\"{signature}\", oauth_version=\"1.0\", oauth_nonce=\"{nonce}\", oauth_signature_method=\"HMAC-SHA256\", oauth_consumer_key=\"{consumerKey}\", oauth_token=\"{tokenId}\",oauth_timestamp=\"{time}\", realm=\"{ConfigurationManager.AppSettings["login.acct"]}\"";
//Generating signature
private static string GenerateSignature(string consumerKey, string consumerSecret, string tokenSecret, string nonce, string timestamp, string token, string acct)
            var baseString = $"{acct}&{consumerKey}&{token}&{nonce}&{timestamp}";
            var key = consumerSecret + "&" + tokenSecret;
            string signature;
            var encoding = new ASCIIEncoding();
            var keyBytes = encoding.GetBytes(key);
            var baseStringBytes = encoding.GetBytes(baseString);
            using (var hmacSha = new HMACSHA256(keyBytes))
                var hashBaseString = hmacSha.ComputeHash(baseStringBytes);
                signature = Convert.ToBase64String(hashBaseString);
            return signature;

Howdy, Stranger!

Log In

To view full details, sign in.


Don't have an account? Click here to get started!


This Week's Leaders

This Month's Leaders

All Time Leaders