public async Task <Response <Guid> > Handle(DebitAccountCommand request, CancellationToken cancellationToken)
        {
            if (request.Invalid)
            {
                return(new Response <Guid>(request.Notifications.Select(p => p.Message)));
            }

            // Get Account from Database
            var account = await _accountReadRepository.GetAccountAsync(request.BankId, request.Number, request.Agency);

            account.Debit(request.Amount);

            // Create Account Transaction
            var transactionId = await _transactionWriteRepository.CreateAsync(
                new Transaction(account.Id, request.Amount, Domain.Enums.OperationType.Debit)
                );

            // Update Account overbalance
            await _accountWriteRepository.UpdateAsync(account);

            return(new Response <Guid>(transactionId));
        }