Skip to content
Merchant guide
HTTPS · Signed events

return.created — first-generation event (flat fields + envelope)

It reaches you the moment an actual return is recorded on an order: the refund amount and method, the reason, and the returned items.

Reviewed against implementation
YOUR INTEGRATION, AT A GLANCE
return.created — full payload example
{
  "return_id": "b4e1f7a2-9c30-4d58-8e6b-3f2a1d0c9b87",
  "order_id": "3f0c8e6a-1d24-4b7f-9a3e-2c5b8d90f1aa",
  "refund_amount": 225,
  "refund_method": "VODAFONE_CASH",
  "reason": "WRONG_SIZE",
  "items": [
    {
      "product_id": "7a2b9c4e-8f31-4d5a-b6c2-1e9f8a7b6c5d",
      "variant_id": "2c4e6f8a-0b1d-4e2f-8a3b-5c6d7e8f9a0b",
      "name": "Cotton T-shirt - Blue / L",
      "price": 225,
      "quantity": 1
    }
  ],
  "items_truncated": false,
  "created_at": "2026-10-21T09:12:40.115602+00:00",
  "customer_name": "Ahmed Mahmoud",
  "customer_phone": "+201001234567",
  "branch_id": "4d5e6f7a-8b9c-4d0e-9f1a-2b3c4d5e6f7a",
  "id": "mwh:return-created:9e8d7c6b-5a4f-4e3d-2c1b-0a9f8e7d6c5b:b4e1f7a2-9c30-4d58-8e6b-3f2a1d0c9b87",
  "type": "return.created",
  "api_version": "v2",
  "tenant_id": "9e8d7c6b-5a4f-4e3d-2c1b-0a9f8e7d6c5b"
}
See the implementation
On this page

01When does it fire?

  • When a completed return is recorded on an order (not just a return request — that is return.requested).
  • Once per return — with the stable identity mwh:return-created:<tenant_id>:<return_id>.

02Full payload example

return.created — full payload example
{
  "return_id": "b4e1f7a2-9c30-4d58-8e6b-3f2a1d0c9b87",
  "order_id": "3f0c8e6a-1d24-4b7f-9a3e-2c5b8d90f1aa",
  "refund_amount": 225,
  "refund_method": "VODAFONE_CASH",
  "reason": "WRONG_SIZE",
  "items": [
    {
      "product_id": "7a2b9c4e-8f31-4d5a-b6c2-1e9f8a7b6c5d",
      "variant_id": "2c4e6f8a-0b1d-4e2f-8a3b-5c6d7e8f9a0b",
      "name": "Cotton T-shirt - Blue / L",
      "price": 225,
      "quantity": 1
    }
  ],
  "items_truncated": false,
  "created_at": "2026-10-21T09:12:40.115602+00:00",
  "customer_name": "Ahmed Mahmoud",
  "customer_phone": "+201001234567",
  "branch_id": "4d5e6f7a-8b9c-4d0e-9f1a-2b3c4d5e6f7a",
  "id": "mwh:return-created:9e8d7c6b-5a4f-4e3d-2c1b-0a9f8e7d6c5b:b4e1f7a2-9c30-4d58-8e6b-3f2a1d0c9b87",
  "type": "return.created",
  "api_version": "v2",
  "tenant_id": "9e8d7c6b-5a4f-4e3d-2c1b-0a9f8e7d6c5b"
}

03Payload fields

FieldCan be null?Meaning
return_idNoThe return id (UUID).
order_idNoThe original order id.
refund_amountNoThe refunded amount in the store currency.
refund_methodNoThe refund method.
reasonNoThe return reason — e.g. DEFECTIVE, WRONG_SIZE or CHANGED_MIND. Capped at 500 characters in the payload.
itemsNoReturned items in the same shape as order items.
items_truncatedNotrue when items exceeded 100 and were capped.
created_atNoWhen the return was recorded, ISO 8601.
customer_nameYesThe customer name from the original order, when present.
customer_phoneYesThe customer phone from the original order, when present.
branch_idYesThe order branch id — when the store has more than one branch.

04Event identity

Pattern: mwh:return-created:<tenant_id>:<return_id> — constant across retries and replays.