/// <summary>
        /// Envia uma requisição-token para gerar um token para um cartão de crédito.
        /// </summary>
        /// <returns>O Token retornado pela Cielo</returns>
        /// <param name="transaction">A transação que contém os dados do portador</param>
        public Token tokenRequest(Holder holder, Merchant merchant = null)
        {
            TokenRequest request = TokenRequest.create(merchant ?? this.merchant, holder);

            return(RetornoTokenElement.unserialize(sendHttpRequest(serialize(request))));
        }
        /// <summary>
        /// Envia uma requisição-token para gerar um token para um cartão de crédito.
        /// </summary>
        /// <returns>O Token retornado pela Cielo</returns>
        /// <param name="transaction">A transação que contém os dados do portador</param>
        public Token tokenRequest(Transaction transaction)
        {
            TokenRequest request = TokenRequest.create(transaction);

            return(RetornoTokenElement.unserialize(transaction, sendHttpRequest(serialize(request))));
        }