public static async Task <Plan> CreateBillingPlan(string name, string description, string baseUrl) { var client = PayPalConfiguration.GetClient(); var returnUrl = baseUrl + "/Home/SubscribeSuccess"; var cancelUrl = baseUrl + "/Home/SubscribeCancel"; // Plan Details var plan = CreatePlanObject("Test Plan", "Plan for Tuts+", returnUrl, cancelUrl, PlanInterval.Month, 1, (decimal)19.90, trial: true, trialLength: 1, trialPrice: 0); PlanCreateRequest request = new PlanCreateRequest(); request.RequestBody(plan); try { HttpResponse response = await client.Execute(request); var statusCode = response.StatusCode; return(response.Result <Plan>()); } catch (HttpException httpException) { var statusCode = httpException.StatusCode; var debugId = httpException.Headers.GetValues("PayPal-Debug-Id").FirstOrDefault(); throw httpException; } }