public async Task <IActionResult> Index()
        {
            var json = await new StreamReader(HttpContext.Request.Body).ReadToEndAsync();

            try
            {
                // var stripeEvent = EventUtility.ConstructEvent(json,
                //     Request.Headers["Stripe-Signature"], _endpointSecret);
                var stripeEvent = EventUtility.ParseEvent(json, false);

                // Handle the event

                var paymentIntent = stripeEvent.Data.Object as PaymentIntent;
                // Always log all!
                _paymentService.UpdatePayment(new PaymentStatusResponse
                {
                    PaymentId     = paymentIntent.Id,
                    Amount        = paymentIntent.Amount.Value,
                    Created       = paymentIntent.Created,
                    PaymentStatus = paymentIntent.Status,
                    ErrorMessage  = paymentIntent.LastPaymentError?.ToString()
                });
                // Only fullfilment when succes
                if (stripeEvent.Type == Events.PaymentIntentSucceeded)
                {
                    await _voucherService.HandleFulfillment(paymentIntent.Id);
                }

                return(Ok());
            }
            catch (Exception e)
            {
                Log.Error($"{e}");
                return(BadRequest());
            }
        }