data object containing the serialized resource:
Event payloads use the same Store API V3 serializers as the REST API. All
id fields use prefixed IDs (e.g., or_m3Rp9wXz, prod_86Rf07xd4z). All monetary values are strings. All timestamps are ISO 8601.
For details on creating webhook endpoints and verifying signatures, see Webhooks. For the event system and the subscriber pattern, see Events.
Event payloads include the same top-level attributes and unconditional associations as API responses. Associations that the API only returns when you ask for them with
expand (like product variants, media, or custom fields) are not included in event payloads.Renamed events
Spree 6.0 renamed several events. For one release, Spree sends the old name as well as the new one, so existing endpoints keep receiving deliveries. The old names stop in Spree 6.1 — subscribe to the new names.
An
order.completed delivery carries "deprecated_alias_of": "order.placed" in its metadata, so an endpoint subscribed to order.* can skip the duplicate.
These events were removed in Spree 6.0 and are no longer sent:
order.resumedandfulfillment.resumed— a canceled order or fulfillment can no longer be resumed.shipment.createdandshipment.updated— usefulfillment.createdandfulfillment.updated.image.*— usemedia.*.report.*— usesaved_report.*.reimbursement.*,return_authorization.*,return_item.*andcustomer_return.*— use thereturn.*,exchange.*andclaim.*events.post.*andpost_category.*.
Order Events
Events:order.created, order.updated, order.deleted, order.placed, order.approved, order.canceled, order.paid, order.fulfilled, order.delivered, order.resend_confirmation_email, order.resend_digital_links_email
The
order.placed and order.canceled payloads also contain a notify_customer boolean. It is false when whoever placed or canceled the order asked for the customer not to be emailed.
Order payloads include nested items, fulfillments, payments, discounts, fees, billing_address, shipping_address, gift_card, and market.
Cart Events
Events:cart.created, cart.updated, cart.deleted
Carts publish their own events, separate from orders. Use them to follow carts that were never checked out. The payload is the same cart object the Store API returns. When a cart is checked out, the resulting order carries the cart’s ID in its cart_id field.
Order Group Events
Events:order_group.created, order_group.updated, order_group.deleted, order_group.completed
When one checkout creates several orders (for example, one per seller), they belong to an order group. order_group.completed fires once every order in the group is placed. The payload includes the group’s number, email, currency, total, item_total, fulfillment_status, payment_status, completed_at, the addresses, and the nested orders.
Line Item Events
Events:line_item.created, line_item.updated, line_item.deleted
Line item payloads include nested option_values and digital_links.
Payment Events
Events:payment.created, payment.updated, payment.deleted, payment.completed, payment.paid, payment.captured, payment.voided, payment.refunded
Payment payloads include a nested payment_method and a source (a credit card, store credit, or other payment source).
source_type field is one of: "credit_card", "store_credit", "payment_source", or null.
Payment Session Events
Events:payment_session.created, payment_session.updated, payment_session.deleted, payment_session.processing, payment_session.completed, payment_session.failed, payment_session.canceled, payment_session.expired
Payment session payloads include a nested payment_method, and a nested payment once one exists.
Payment Setup Session Events
Events:payment_setup_session.created, payment_setup_session.updated, payment_setup_session.deleted, payment_setup_session.processing, payment_setup_session.completed, payment_setup_session.failed, payment_setup_session.canceled, payment_setup_session.expired
Payment setup session payloads include a nested payment_method.
Refund Events
Events:refund.created, refund.updated, refund.deleted
Fulfillment Events
Events:fulfillment.created, fulfillment.updated, fulfillment.deleted, fulfillment.fulfilled, fulfillment.delivered, fulfillment.canceled
fulfillment.fulfilled fires when a fulfillment is handed over — shipped, collected, or made available for download. Its metadata contains notify_customer, which tells you whether the customer should be emailed about it. fulfillment.delivered carries the same key.
Fulfillment payloads include nested deliveries, delivery_method, stock_location, and delivery_rates.
Product Events
Events:product.created, product.updated, product.deleted, product.drafted, product.proposed, product.approved, product.rejected, product.activated, product.archived, product.out_of_stock, product.back_in_stock
Product event payloads include pricing, stock status, and availability flags. Variants, media, option types, categories, and custom fields are not included.
Variant Events
Events:variant.created, variant.updated, variant.deleted
Variant event payloads include pricing, stock status, and option_values. Media and custom fields are not included.
Price Events
Events:price.created, price.updated, price.deleted
Media Events
Events:media.created, media.updated, media.deleted
Media events carry a short payload. Fetch the product or variant from the API when you need the image URLs.
Stock Level Events
Events:stock_level.created, stock_level.updated, stock_level.deleted
A stock level is the quantity of one variant at one stock location.
Stock Movement Events
Events:stock_movement.created, stock_movement.updated, stock_movement.deleted
Stock Transfer Events
Events:stock_transfer.created, stock_transfer.updated, stock_transfer.deleted, stock_transfer.draft, stock_transfer.ready_to_ship, stock_transfer.shipped, stock_transfer.partially_received, stock_transfer.received, stock_transfer.over_received, stock_transfer.canceled
Customer Events
Events:user.created, user.updated, user.deleted, customer.anonymized, customer.password_reset_requested, customer.password_reset
Customer lifecycle events use the user prefix. Customer payloads include nested addresses, default_billing_address, default_shipping_address, newsletter_subscriber, and customer_groups.
Promotion Events
Events:promotion.created, promotion.updated, promotion.deleted
Gift Card Events
Events:gift_card.created, gift_card.updated, gift_card.deleted, gift_card.partially_redeemed, gift_card.redeemed, gift_card.canceled
Gift Card Batch Events
Events:gift_card_batch.created, gift_card_batch.updated, gift_card_batch.deleted
Store Credit Events
Events:store_credit.created, store_credit.updated, store_credit.deleted
Return Events
Events:return.created, return.updated, return.deleted, return.requested, return.approved, return.received, return.refunded, return.canceled
The returned items are not included. Fetch the return from the API with expand=return_line_items when you need them.
Exchange Events
Events:exchange.created, exchange.updated, exchange.deleted, exchange.requested, exchange.approved, exchange.received, exchange.fulfilled, exchange.canceled
Claim Events
Events:claim.created, claim.updated, claim.deleted, claim.opened, claim.approved, claim.resolved, claim.denied, claim.canceled
The resolution field is refund, replacement, refund_and_replacement, or null until the claim is resolved.
Wishlist Events
Events:wishlist.created, wishlist.updated, wishlist.deleted
Wishlist items are not included in wishlist event payloads.
Wishlist Item Events
Events:wishlist_item.created, wishlist_item.updated, wishlist_item.deleted
Wishlist item payloads include a nested variant.
Newsletter Subscriber Events
Events:newsletter_subscriber.created, newsletter_subscriber.updated, newsletter_subscriber.deleted, newsletter_subscriber.subscription_requested, newsletter_subscriber.verified, newsletter_subscriber.unsubscribe_requested
Digital Asset Events
Events:digital_asset.created, digital_asset.updated, digital_asset.deleted
Digital Link Events
Events:digital_link.created, digital_link.updated, digital_link.deleted, digital_link.downloaded
digital_link.downloaded fires each time a customer successfully downloads the
file, after the access counter has been incremented.
Import Events
Events:import.created, import.updated, import.deleted, import.progress, import.completed
Import Row Events
Events:import_row.completed, import_row.failed
Export Events
Events:export.created, export.updated, export.deleted
Invitation Events
Events:invitation.created, invitation.resent, invitation.accepted

