public async Task <BaseAudioticaResponse> SubscribeAsync( SubscriptionType plan, SubcriptionTimeFrame timeFrame, AudioticaStripeCard card, string coupon = null) { var creditCardData = new Dictionary <string, string> { { "name", card.Name }, { "number", card.Number }, { "expMonth", card.ExpMonth.ToString() }, { "expYear", card.ExpYear.ToString() }, { "cvc", card.Cvc } }; // plan id and coupon are passed in url query var planId = plan == SubscriptionType.Silver ? "autc_silver" : "autc_gold"; planId += "_" + timeFrame.ToString().ToLower(); var url = string.Format(SubscribePath, planId, coupon); var resp = await PostAsync <LoginData>(url, creditCardData); if (resp.Success) { await SaveLoginStateAsync(resp); } return(resp); }