diff --git a/src/pretix/api/views/order.py b/src/pretix/api/views/order.py index c99df25989..dcbe46d030 100644 --- a/src/pretix/api/views/order.py +++ b/src/pretix/api/views/order.py @@ -661,7 +661,16 @@ class OrderViewSet(viewsets.ModelViewSet): with language(order.locale, self.request.event.settings.region): payment = order.payments.last() - + # OrderCreateSerializer creates at most one payment + if payment and payment.state == OrderPayment.PAYMENT_STATE_CONFIRMED: + order.log_action( + 'pretix.event.order.payment.confirmed', { + 'local_id': payment.local_id, + 'provider': payment.provider, + }, + user=request.user if request.user.is_authenticated else None, + auth=request.auth, + ) order_placed.send(self.request.event, order=order) if order.status == Order.STATUS_PAID: order_paid.send(self.request.event, order=order) diff --git a/src/tests/api/test_order_create.py b/src/tests/api/test_order_create.py index e382dab283..06e4f95dc4 100644 --- a/src/tests/api/test_order_create.py +++ b/src/tests/api/test_order_create.py @@ -1807,7 +1807,7 @@ def test_order_create_free(token_client, organizer, event, item, quota, question assert p.provider == "free" assert p.amount == o.total assert p.state == "confirmed" - assert o.all_logentries().count() == 2 + assert o.all_logentries().count() == 3 @pytest.mark.django_db