Order Nce products ================== Use sample below to order a Nce product. .. code-block:: c# using Crayon.Api.Sdk; using Crayon.Api.Sdk.Domain.Csp; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace ClientSdkSample { internal class Program { static async Task Main(string[] args) { var clientId = "XXXXXX"; var clientSecret = "XXXXXX"; var userName = "XXXX@XXXX.XXX EMAIL"; var password = "XXXXXX"; var apiUrl = "https://api.crayon.com/"; var client = new CrayonApiClient(apiUrl); var token = client.Tokens.GetUserToken(clientId, clientSecret, userName, password).GetData().AccessToken; var order = new AssetOrder(); order.ResellerCustomerId = XXXX; //customerTenantId // Cloud Account ID order.OrderLines = new List(); var orderLine = new AssetOrderLine(); orderLine.BillingCycle = BillingCycleType.Monthly; orderLine.ProductId = "CFQ7TTC0LF8R"; orderLine.ProductVariantId = 2622144; orderLine.Quantity = 1; orderLine.SkuId = "0010"; orderLine.TermDuration = "P1M"; orderLine.Type = AssetType.Subscription; order.OrderLines.Add(orderLine); var verifyResult = await client.Assets.VerifyAsync(token, order); if (verifyResult.IsSuccessStatusCode) { if (verifyResult.Data.OrderLines.Any(x => x.Errors.Any())) { //order lines with error foreach (var errRow in verifyResult.Data.OrderLines.Where(x => x.Errors.Any())) { foreach (var errItem in errRow.Errors) { Console.WriteLine($"Error: {errItem.Description}"); } } } else { var checkoutResult = await client.Assets.CheckoutAsync(token, verifyResult.Data); if (checkoutResult.IsSuccessStatusCode) { //successful Console.WriteLine("Purchase request successfully added to the queue."); } else { //connection problem Console.WriteLine("Checkout failed."); } } } else { //connection problem Console.WriteLine("Verify failed."); } } } } Related endpoints ^^^^^^^^^^^^^^^^^ :doc:`/scenarios/ordering-verify` :doc:`/scenarios/ordering-checkout`