public async Task <IActionResult> RealizarPagamento([FromBody] PedidoModel pedidoModel)
        {
            using (var unitOfWork = _unitOfWorkFactory.CriarParaTenant(_contexto.CodigoTenant))
            {
                var clientesRepositorio = new ClientesRepositorio(unitOfWork);
                var pedidosRepositorio  = new PedidosRepositorio(unitOfWork);

                var cliente = await clientesRepositorio.ObterAsync(pedidoModel.CodigoCliente);

                var pedido    = Pedido.Criar(cliente, pedidoModel.Dividas, pedidoModel.DadosPagamento);
                var pagamento = await _servicoPagamento.PagarAsync(pedido);

                if (!pagamento.Aprovado)
                {
                    return(BadRequest(pagamento.NegadoPor));
                }
                pedido.RealizarPagamento(pagamento);

                await _servicoEmail.EnviarObrigadoPeloPagamentoAsync(pedido);

                await _regrasPosPagamento.ExecutarRegrasPosPagamentoAsync(pedido);

                await pedidosRepositorio.IncluirAsync(pedido);

                await unitOfWork.CommitAsync();

                return(Ok(pagamento));
            }
        }