Below is an end-to-end example of submitting a ExtractCheck request using C# programming language:


// Simple program to make and process the results of an ExtractCheck request to the LEADTOOLS CloudServices.
// In order to run this program, the following changes will need to be added:
//	1) Place your Application ID in the AppId variable in the InitClient method.
//	2) Place your Application Password in the Password variable in the InitClient method.
//
// The program will perform the following operations in order:
//	1)Perform an ExtractCheck request to the LEADTOOLS CloudServices.  A successfully made request will return a unique identifier.
//	2)We will then query the services using the GUID -- if the file is finished processing, the body will contain all the 
//	  request data.
//	3)We will take the json data that was returned, parse it, and display all the information that was returned.     
//
// This program makes use of the following NuGet Packages:
//  1) Newtonsoft.Json

using System;
using System.Text;
using System.Threading.Tasks;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using System.IO;
using Newtonsoft.Json.Linq;


namespace Azure_Code_Snippets.Tutorial_Code
{
	class CloudServices_Check
	{
		private string hostedServicesUrl = "https://azure.leadtools.com/api/";
		public async Task ExtractCheck()
		{
			var client = InitClient();

			//The first page in the file to mark for processing
			int firstPage = 1;

			//Sending a value of -1 will indicate to the service that all pages in the file should be processed.
			int lastPage = -1;

			// If using URL to the file
			string fileURL = "http://demo.leadtools.com/JavaScript/BankCheckReader/Resources/Samples/BankCheck.jpg";
			string recognitionUrl = string.Format("Recognition/ExtractCheck?firstPage={0}&lastPage={1}&fileurl={2}", firstPage, lastPage, fileURL);
			var result = await client.PostAsync(recognitionUrl, null);

			/*
			//If uploading a file as multi-part content:
			HttpContent byteContent = new ByteArrayContent(File.ReadAllBytes(@"path/to/file"));
			byteContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data")
			{
				Name = "attachment",
				FileName = "file-name"
			};
			var formData = new MultipartFormDataContent();
			formData.Add(byteContent, "formFieldName");

			string recognitionUrl = string.Format("Recognition/ExtractCheck?firstPage={0}&lastPage={1}", firstPage, lastPage);
			var result = await client.PostAsync(recognitionUrl, formData);
			formData.Dispose();
			*/

			if (result.StatusCode == HttpStatusCode.OK)
			{
				//Unique ID returned by the services
				string id = await result.Content.ReadAsStringAsync();
				Console.WriteLine("Unique ID returned by the services: " + id);
				await Query(id, client);
			}
			else
				Console.WriteLine("Request failed with the following response: " + result.StatusCode);
		}

		private async Task Query(string id, HttpClient client)
		{
			string queryUrl = string.Format("Query?id={0}", id.ToString());
			var result = await client.PostAsync(queryUrl, null);
			var returnedContent = await result.Content.ReadAsStringAsync();
			var returnedData = JObject.Parse(returnedContent);
			int fileStatus = (int)returnedData.SelectToken("FileStatus");
			if ( fileStatus == 100 || fileStatus == 123)
			{
				//The file is still being processed -- we will sleep the current thread for 5 seconds before trying again. 
				await Task.Delay(5000);
				await Query(id, client);
				return;
			}

			Console.WriteLine("File has finished processing with return code: " + returnedData.SelectToken("FileStatus"));
			if ((int)returnedData.SelectToken("FileStatus") != 200)
				return;

			ParseJson(returnedData.SelectToken("RequestData").ToString());
		}

		private void ParseJson(string json)
		{
			JArray requestArray = JArray.Parse(json);
			foreach(var requestReturn in requestArray)
			{
				Console.WriteLine("Service Type: " + requestReturn.SelectToken("ServiceType"));
				Console.WriteLine("Returned Data:");
				var objArray = JArray.Parse(requestReturn.SelectToken("data").ToString());
				foreach(var obj in objArray)
				{
				var jObj = JObject.Parse(obj.ToString());
				foreach (var val in jObj)
					Console.WriteLine(val.Key + ": " + val.Value.ToString());
				Console.WriteLine("------------------------------------");
				}
			}
		}

		private HttpClient InitClient()
		{
			string AppId = "Replace with Application ID";
			string Password = "Replace with Application Password";

			HttpClient client = new HttpClient();
			client.BaseAddress = new Uri(hostedServicesUrl);
			client.DefaultRequestHeaders.Accept.Clear();
			client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

			string authData = string.Format("{0}:{1}", AppId, Password);
			string authHeaderValue = Convert.ToBase64String(Encoding.UTF8.GetBytes(authData));
			client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", authHeaderValue);

			return client;
		}
	}
}


Note: This example uses the following additional third-party libraries: Newtonsoft.Json.