order.updated because a return can begin after fulfillment and can be approved,
rejected, received, refunded, or corrected independently of the order status.
Events
All three use
schemaVersion: "2026-08-29", the standard event ID,
resourceVersion, source identity, and complete data.return snapshot.
Statuses
marketplaceStatus preserves the provider label. Build business behavior from
the normalized status; retain the provider label only for audit and support.
Return snapshot
Each line contains stable internal and provider line IDs, matched
productId,
marketplace product/variant IDs, SKU aliases, quantity, status, and line refund
money. Buyer names, emails, phones, and delivery addresses are excluded.
Example status change
Pull reconciliation
UseGET /api/v1/returns with returns:read for bootstrap or reconciliation.
Filter by marketplace, exact account, external order ID, or updatedSince, and
follow the opaque cursor. Use GET /api/v1/returns/{returnId} for one resource.
Consumer rules are the same as other versioned webhooks: deduplicate by event
id, apply only a newer resourceVersion for one subject.id, replace from
the complete snapshot, and ignore unknown additive fields.