Проверка статуса платежа

У меня есть функция, которая вызывается по нажатию кнопки обновить

введите сюда описание изображения

def check_payment_status(request, payment_id):
    ticket = WalletTicket.objects.get(payment_id=payment_id, payment_status='waiting')

    try:
        url = f"https://api.nowpayments.io/v1/payment/{payment_id}"
    except ConnectionError:
        redirect('money:wallet')

    payload={}
    headers = {
        'x-api-key': API_KEY
    }

    json_response = requests.request("GET", url, headers=headers, data=payload)
    response = json.loads(json_response.text)

    if response['payment_status'] == 'finished':
        ticket.payment_status = 'finished'
        user = User.objects.get(ticket.user)
        user.balance += int(response['pay_amount'])
        user.save()

        return redirect('money:wallet')

Насколько это правильно? Можно ли сделать это более удобней? итерироватся по всем платежным тикетам займет время, а каждый раз наживать обновить не совсем удобно.

Вернуться на верх