Key points

  • Rye automatically issues refunds in cases where we fail to place an order with the merchant.
  • Refunds can also be initiated for Amazon orders via cancelOrder, provided the order has not been shipped.
    • For returning orders after they have shipped (both Amazon and Shopify), see our returns guide.
  • Webhooks are fired throughout the refund process, to keep you informed.

Automated refunds

Rye’s checkout process is asynchronous and has two phases.
  1. Rye first debits your Developer Account for the cost of the cart.
  2. Rye then purchases the goods from the merchant.
It is possible for Rye to fail to place the order with the merchant; for example, because the product being purchased went out of stock between us debiting your Developer Account and attempting to place the order. When this happens, Rye automatically refunds any charges on your Developer Account that we could not convert into purchases. There is no further action required here. We also fire an ORDER_FAILED webhook in this case which you can use to identify these failures. The refund property on this event contains the details necessary for you to refund the shopper. Below is a diagram which shows how this works. Note that since developers are responsible for capturing funds from the customer, it would be the developer’s responsibility to refund customers in response to receiving the ORDER_FAILED webhook. Checkout is also a “best effort” process. If a cart contains items from multiple stores, and some stores successfully place the order while others fail then we only refund the charges for those failed orders and keep the successful orders.

Developer-initiated refunds

Developers may also cancel Amazon orders using the cancelOrder mutation, provided the order has not been shipped yet. If you want to refund an order that has already shipped, then see our returns guide for information on that process. This mutation creates a cancellation request in our system which we will try to process. If the cancellation is successful, Rye will refund your Developer Account and cancel the order with the merchant. We emit webhooks throughout the cancellation process so you can react and notify shoppers accordingly. The following diagram shows the case where a developer requests cancellation of an order that has not yet shipped: In cases where the order has already shipped, we generally are able to return that failure synchronously from the cancelOrder mutation. You can identify this error by looking for a ORDER_ALREADY_SHIPPED error code on the response from cancelOrder.

Developer considerations

Refunds are ultimately approved / declined by the merchant, and refund policies vary by merchant. If you expect to receive a lot of refund requests from shoppers using your platform then Rye recommends familiarizing yourself with the refund policies of the merchants you plan to sell from to better manage shopper expectations.