/// <summary> /// Gets merchant account transactions. /// Privatbank API reference: <https://api.privatbank.ua/#p24/orders>. /// </summary> /// <param name="password">Private merchant password.</param> /// <param name="merchantId">Merchant id.</param> /// <param name="cardNumber">Merchant assossiated card number.</param> /// <param name="from">Statement start date.</param> /// <param name="to">Statement end date.</param> /// <returns></returns> public async Task <PrivatbankAccountStatement> GetMerchantAccountStatementAsync( string password, string merchantId, string cardNumber, DateTime from, DateTime to) { AccountTransactionsRequest request = new AccountTransactionsRequest(password, merchantId, cardNumber, from, to); HttpResponseMessage response = await _privatbankClient.GetMerchantDataAsync("rest_fiz", request.Xml); string xml = await response.Content.ReadAsStringAsync(); AccountStatementParser parser = new AccountStatementParser(); PrivatbankAccountStatement statement = parser.Parse(xml); return(statement); }
public async Task <IReadOnlyCollection <ExternalAccountTransactionModel> > GetAccountTransactionsAsync(AccountStatementRequestParams requestParams) { PrivatbankAccountStatement statement = await _accountService.GetMerchantAccountStatementAsync( requestParams.Token, requestParams.BankClientId, requestParams.Account, requestParams.From, requestParams.To); if (statement == null || statement.Items == null) { return(new List <ExternalAccountTransactionModel>()); } List <ExternalAccountTransactionModel> transactions = statement.Items .Select(i => new ExternalAccountTransactionModel( i.AppCode, i.TransactionDate, i.Description, i.TransactionAmount.Currency, i.TransactionAmount.Value, i.AccountBalance.Value)) .ToList(); return(transactions); }