/// <summary>
        /// Capture Credit Card Async.
        /// </summary>
        /// <returns>ANetCaptureCreateTransactionResponse instance</returns>
        /// <param name="transaction">TransactionRequest.</param>
        /// <param name="refId">Reference identifier.</param>
        public async Task <ANetCaptureTransactionResponse> CaptureAsync(ANetCaptureTransactionRequest transaction, string refId)
        {
            var createRequest          = new ANetCaptureCreateTransactionRequest();
            var requestBody            = new ANetCaptureTransactionRequestBody();
            var merchantAuthentication = getMerchantAuthentication();

            transaction.TransactionType        = ANetTransactionType.priorAuthCaptureTransaction;
            requestBody.MerchantAuthentication = merchantAuthentication;
            requestBody.RefId = refId;
            requestBody.TransactionRequest         = transaction;
            createRequest.CreateTransactionRequest = requestBody;
            return(await captureAsync(createRequest));
        }
        private async Task <ANetCaptureTransactionResponse> captureAsync(ANetCaptureCreateTransactionRequest request)
        {
            var json      = JSON.SerializeObject(request);
            var strResult = await _endPoint.PostStringAsync(json).ReceiveString();

            var entity = JSON.DeserializeObject <ANetCaptureCreateTransactionResponse>(strResult);

            if (entity.TransactionResponse != null)
            {
                return(entity.TransactionResponse);
            }
            else
            {
                //return a new transactionResponse object with the message list
                var errorEntity = new ANetCaptureTransactionResponse();
                var messages    = JSON.DeserializeObject <ANetCreateResponseMessages>(strResult);
                errorEntity.ResponseCode = ANetResponseCodeType.Error;
                errorEntity.Messages     = messages.ToMessageEnumerable();
                return(errorEntity);
            }
        }