using System.Security.Cryptography;
public static void Main() {
var bankId = "250216f5-4ca1-4732-80a2-d90d52610d3f";
var hashSecret = "VekF%6Wwt&C0gtrYNyaG#LKh#Iue31RvYry5If6VL$h!%xZ";
var userId = "a02d486f-d04b-43b0-8cf8-3ce7b43e5f49";
var accountNumber = "12345678901234567890";
var name = "Иванов Иван Иваныч";
var stringToHash = hashSecret + bankId + hashSecret + accountNumber + hashSecret + userId + hashSecret + name + hashSecret;
Console.WriteLine("string to hash: " + stringToHash);
var hash = Sha256(stringToHash);
Console.WriteLine("hash: " + hash);
var postData = "bankId=" + bankId + "&userId=" + userId + "&accountNumber=" + accountNumber + "&name=" + UrlEncode(name) + "&hash=" + hash;
Console.WriteLine("post data: " + postData);
private static string Sha256(string input) {
using (var hashAlgorithm = SHA256.Create()) {
var data = hashAlgorithm.ComputeHash(Encoding.UTF8.GetBytes(input));
var hashBuilder = new StringBuilder();
for (int i = 0; i < data.Length; i++) {
hashBuilder.Append(data[i].ToString("x2"));
return hashBuilder.ToString();
private static string UrlEncode(string input) {
return HttpUtility.UrlEncode(input);