The Returns API currently supports Shopify orders only. Support for additional
marketplaces will be added over time.
Creating a return
CallPOST /api/v1/returns with
the Rye orderId and a reason (such as defective, wrong_item, or
unwanted). The order must be completed.
curl
id and its state. The
reference has the full request and
response shape.
Lifecycle
A return moves through the states below and ends inrefunded, denied, or
failed. The state field tells you where it is, and which details are present
on the response (a shipping label, a denial reason, or the refund).
Following a return
PollGET /api/v1/returns/{returnId}
to track a return until it reaches a terminal state. Once it is refunded, the
response reports the amount returned to the shopper.
Handling requires_action
When a return reaches requires_action, the shopper needs to ship the items
back before the merchant will refund. The response carries a nextAction with a
prepaid return label at nextAction.shipItemsToMerchant.label.url. Forward that
URL to the shopper so they can print the label and send the items in.
refunded on its own. No further calls are required. (When a
merchant approves a return without needing the items back, nextAction.type is
no_action_required and the return skips straight to processing.)
If the original order was paid from your drawdown balance, Rye credits that
balance when it reconciles the refund. Orders paid by other methods refund the
shopper’s own funds and don’t affect your balance.

