private async Task ExecuteSubscribe(string channel)
        {
            _logger.Debug("Subscribing to channel '{0}'",
                          channel);
            var message = new SubscriptionRequestMessage(clientId: ClientId,
                                                         subscriptionChannel: channel,
                                                         id: MessageCounter++);

            var result = await ExecuteSynchronousMessage <SubscriptionResponseMessage>(message : message);

            if (!result.Successful)
            {
                throw new SubscriptionException(result.Error);
            }
        }
        /// <summary>
        /// Cria uma assinatura para um cliente cadastrado
        /// </summary>
        /// <param name="request">Request para criar uma assinatura</param>
        /// <param name="customApiToken">Um token customizado, por exemplo, de um cliente de uma subconta, comum em marketplaces</param>
        public async Task <SubscriptionModel> CreateAsync(SubscriptionRequestMessage request, string customApiToken)
        {
            var retorno = await PostAsync <SubscriptionModel>(request, null, customApiToken).ConfigureAwait(false);

            return(retorno);
        }
        /// <summary>
        /// Cria uma assinatura para um cliente cadastrado
        /// </summary>
        /// <param name="request">Request para criar uma assinatura</param>
        public async Task <SubscriptionModel> CreateAsync(SubscriptionRequestMessage request)
        {
            var retorno = await CreateAsync(request, null).ConfigureAwait(false);

            return(retorno);
        }