- It’s fulfilled.
- The items to be returned aren’t previously returned.
- The item’s
eligibleproperty is set tofalsein check order return eligibility API response. - The item aligns with fabric’s return policy.
- Return for an item is identified by the
exchangeboolean (exchangeis set tofalse) field on the return payload. - Return for an order is validated for eligibility based on the orderId and lineItemId.
- Charged amount in the payments object of the order document shouldn’t be null to process the refund.
- Use the
POST/v3/orders/{orderId}/actions/submit-return-requestendpoint to initiate order return by order ID. - You can also use the
POST/v3/orders/order-number/{orderNumber}/actions/submit-return-requestendpoint to initiate order return by order number. - Order status should be one of:
ORDER_DELIVERED,ORDER_SHIPPED,ORDER_PARTIALLY_SHIPPED,ORDER_PARTIALLY_DELIVERED,ORDER_PARTIALLY_RETURNED,
ORDER_PARTIALLY_CANCELLED,PICKUP_COMPLETE. - The
lineOrderStatusshould be one of:PENDING_EXCHANGE,RETURN_PROCESSING,PARTIALLY_CANCELLED,PARTIALLY_REFUNDED,PARTIALLY_CANCELLED_REFUNDED,VALID,PENDING_RETURN,ORDER_LINE_VALID,SHIPPED,PARTIALLY_SHIPPED,PARTIALLY_ALLOCATED,DELIVERED,PARTIALLY_DELIVERED,PARTIAL_RETURN. - Initiate a return when an item is pending to be received at the distribution center
- Create a return when the item is received at the distribution center for return
Initiate a return request when an item is pending to be received at the distribution center
When a shopper or a customer service agent creates a return request, but the item isn’t received at the distribution center:- Set
returnTypetoPENDINGin the request payload while using thePOST/v3/orders/{orderId}/actions/submit-return-requestendpoint to create a return.
lineOrderStatuswill be updated toRETURN_PENDINGfor the line item of an order ID. Merchants can get the order details, along with the order status, by calling theGET/v3/orders/{orderId}endpoint.RETURN_PENDINGwebhook event is triggered if the merchant has subscribed to the event. The target URL of the subscription payload is notified.
Item reaches the distribution center and is processed for return or reject
- When an item reaches the distribution center, use the
POST/v3/orders/{orderId}/actions/submit-return-requestendpoint to setreturnTypetoPROCESSINGin the request payload. lineOrderStatuswill be updated toRETURN_PROCESSINGfor the line item of the order ID. You can get the order details, along with the order status, by calling theGET/v3/orders/{orderId}endpoint.- At this stage, the customer service agent at the warehouse or the distribution center does the quality checks such as, if the item is in good condition to return if the item matches the original order, etc. After a thorough inspection, the CSR can accept or reject the return request.
RETURN_PROCESSINGwebhook event is triggered if the merchant has subscribed to the event. The target URL of the subscription payload is notified about the event.
- If customer service agent rejects the return request for any reason, they must use the
POST/v3/orders/{orderId}/actions/submit-return-requestendpoint to setreturnTypetoREJECTED. - Provide proper reason and sub-reasons for rejecting the return request.
lineOrderStatusis updated toRETURN_REJECTEDfor the line item of the order ID. You can get the order details, along with the order status, by calling theGET/v3/orders/{orderId}endpoint.RETURN_REJECTEDwebhook event is triggered if the merchant has subscribed to the event. The target URL will be notified of the event.
Create a return when an item is received or accepted for return
- Use
POST/v3/orders/{orderId}/actions/submit-return-requestendpoint, and setreturnTypetoreceived. - The amount received for return will be validated based on the invoiced amount for the item. If validation fails for any reason, an error message will be returned.
- If a refund for returned item is successful, the response for the order return endpoint (POST/api/v2/order/return) will display
refundStatusasSUCCESSFUL. - If all the quantity of line items are returned:
lineOrderStatus(return status at item level) will be updated toRETURNED.statusCode(return status at order level) will be updated toORDER_RETURNED.
- If some of the quantities of line items are returned:
lineOrderStatus(return status at item level) will be updated toPARTIALLY_RETURNED.statusCode(return status at order level) will be updated toORDER_PARTIALLY_RETURNED.
- If the refund failed for any reason, the response for the order return endpoint (POST/api/v2/order/return) will display
refundStatusasREFUND_FAILED. RETURN_NOTIFICATION_EMAILandREFUND_NOTIFICATION_EMAILwebhook events are triggered if the merchant has subscribed to the events, and details are sent to the merchant.
