If you cannot fulfill the order, you can cancel it and refund the customer. Also the customer can cancel an order via refurbed's ticketing system before you shipped it. Every product sold on refurbed comes with a 35-day trial period that allows for returns, irrespective of the motivation. The customer can request to return their device via refurbed's ticketing system within this timeframe and we will provide the return label automatically. After that period of time, customers can return a device due to warranty reasons. In those cases you need to provide the return label.
All services and operations concerning orders must be called with OrderService or OrderItemService in the URL followed by the command/operation.
E.g.:
https://api.refurbed.com/refb.merchant.v1.OrderService/ListOrders
or
https://api.refurbed.com/refb.merchant.v1.OrderItemService/UpdateOrderItem
or
https://api.refurbed.com/refb.merchant.v1.OrderItemReturnService/ListOrderItemReturns
All calls must be done using POST method.
❌ Cancellations (BatchUpdateOrderItemsState / UpdateOrderItemsState & RefundOrderItem / RefundOrder)
It is mandatory to inform the customer if you cannot fulfill an order by creating a ticket in refurbed’s ticket system.
Update order item state
If you work with order item states, you can change the state to CANCELLED.
Refund the order (item)
Refund the order. More information about full and partial refunds can be found below.
↩️ Returns
Automatic return labels during 35-day trial period (ListOrderItemReturns)
Every product sold on refurbed comes with a 35-day trial period that allows for returns, irrespective of the motivation. Automatic return labels are labels automatically generated by refurbed when a customer opens a valid return ticket for an order placed less than 35 days before. Customers can download the return label directly via the customer service interface. Here you can find more information about the Automatic Return Labels: Automatic Return Labels .
ℹ️The ListOrderItemReturns method replaced the return_initiated filter of the OrderService/ListOrders method.
Fetch return requests
You can retrieve all auto-label return requests by calling ListOrderItemReturns. Like all read commands served over our API, you can apply filters and sorting by sending a specific payload in the request header. The response includes order information, such as order and order item IDs and identifiers, as well as return details, including the request date, tracking information, and the reason for the return label request.
Update order item state
If you work with order item states, you can change the state to RETURNED after you received the item(s).
Refund the order (item)
Please note that the order or order item(s) for which a return label has been created won’t be refunded automatically. Once you checked the device you need to refund the order or order item(s) separately. More information about full and partial refunds can be found below.
Returns after the trial period
After the trial period, customers may return a device under warranty. In such cases, they will contact you via refurbed’s ticket system. You can either use refurbed’s shipping agreement to generate a return label directly within the ticket, or create your own return label and share it with the customer through the ticket.
If you use refurbed’s shipping agreement to generate the return label, the corresponding order and return information will be available via the ListOrderItemReturns method. If you generate your own return label, this information will not be included in the ListOrderItemReturns method.
Once the item has been received at your warehouse, you can update the order item state to RETURNED and proceed with the refund.
💵 Refunds (OrderItemService/RefundOrderItem / OrderService/RefundOrder)
There are two types of refunds, full and partial refunds. If an order is fully or partially refunded we will not add this stock back to the item’s offer. You will need to restock this item manually after retrieval from the customer.
Refunds need to be done in presentment currency (currency_code). You can check the presentment currency of the order/order_item to match it to your refund request. Without a ticket linked to each order item that you want to refund, the refund will fail.
Full refund (OrderService/RefundOrder)
Initiate the full refund of all refundable order items via OrderService/RefundOrder.
Partial refund (OrderItemService/RefundOrderItem)
If you only want to partially refund the customer, this has to be done per order item. In the request body of OrderItemService/RefundOrderItem you have to specify the order item ID and target_paid_amount which refers to the amount you want that the customer paid. The full amount you should take into consideration is the customer’s payment and the voucher amount, as reflected in the total_paid fields.
If you want to make a dry-run and check the partial refund before executing it, call the endpoint OrderItemService/CalculateRefundOrderItem. It will provide you with a response as you could expect it when actually initiating the partial refund.
Examples
-
Full refund with discount:
- Full item price (
total_paid): €100 - Discount (
total_discount): €5 - Customer payment (
total_charged): €95
Correct full refund amount: €100,
target_paid_amountwould be €0 - Full item price (
-
Partial refund without discount:
- Full item price (
total_paid): €100 - You want to refund €10
The
target_paid_amountwould be €90. - Full item price (
⚠️ It’s not enough to change the order state to RETURNED to initiate a refund. The change of the order item state has to be executed in a separate request.