Siren

TransactionCompleted

Fires when an order reaches its final approved state, typically after a payment gateway confirms the charge.

Last updated: April 8, 2026

TransactionCompleted

TransactionCompleted fires when an order reaches its final approved state, typically after a payment gateway confirms the charge. This event exists separately from SaleTriggered because many e-commerce platforms create orders before payment actually clears. The sale event captures intent; the transaction-completed event captures confirmation.

The event ID is transaction_completed, and its fully qualified class is Siren\Commerce\Events\TransactionCompleted.

What does this event carry?

The event carries the full Transaction model. Unlike SaleTriggered, which passes raw transaction details as an array, this event works with the already-persisted transaction record that was created during the sale initialization phase.

use Siren\Commerce\Events\TransactionCompleted;

$event = new TransactionCompleted($transaction);

How does the pipeline react?

When this event fires, ApproveTransactionConversions marks the associated conversions as approved. This is the step that advances obligations from draft to pending status, making them eligible for payout. Without this event, conversions remain in a provisional state.

For the full lifecycle of commerce events and how they connect to the rest of the attribution pipeline, see the Commerce Events overview.