public async Task <IActionResult> PushUserTransaction(long accountId, [FromBody] SpUserTransactionRequestDto spUserTransactionRequest) { AccountDescriptor account = _accountsService.GetById(accountId); string transactionId = Guid.NewGuid().ToString(); long registrationId = long.Parse(spUserTransactionRequest.RegistrationId); long userTransactionId = _dataAccessService.AddSpUserTransaction(accountId, registrationId, transactionId, spUserTransactionRequest.Description); var registration = _dataAccessService.GetServiceProviderRegistration(registrationId); TransactionConsentRequest consentRequest = new TransactionConsentRequest { RegistrationCommitment = registration.Commitment.ToHexString(), TransactionId = transactionId, WithKnowledgeProof = true, Description = spUserTransactionRequest.Description, PublicSpendKey = account.PublicSpendKey.ToHexString(), PublicViewKey = account.PublicViewKey?.ToHexString() }; await _restApiConfiguration.ConsentManagementUri .AppendPathSegments("ConsentManagement", "TransactionForConsent") .PostJsonAsync(consentRequest).ContinueWith(t => { if (!t.IsCompletedSuccessfully) { _logger.Error($"Failed to register transaction for consent. {JsonConvert.SerializeObject(consentRequest)}", t.Exception); } }, TaskScheduler.Current).ConfigureAwait(false); return(Ok(new SpUserTransactionDto { SpUserTransactionId = userTransactionId.ToString(), TransactionId = transactionId, RegistrationId = spUserTransactionRequest.RegistrationId.ToString(), Description = spUserTransactionRequest.Description })); }