Return and refund management


Overview

The 2 main concepts implicated in this part are the return and the claim.

  • Return: Return of items within 14 days after delivery (cancellation period)
  • Claim: Return of items after 14 after delivery (e.g. a warranty case)

In both cases the customer can chose between 2 different compensation methods:

  • An exchange: The buyer sends his items back and the merchant sends an exchange item to the customer. No refund process implicated.
  • A refund: The buyer sends his items back to the merchant and the merchant simply refunds the buyer. The merchant does not send back any item.

If the buyer does not ask a return, but simply a refund then:

  • he won’t have to send back the item.
  • he will simply be refunded by the merchant

Here is the schema describing the main workflow:


Fetch return/claim requests

laets handles the possibility to open a return/claim request on an specific merchant order. The resource schema is accessible with the following API call:

  
  {{api_url}}/v1/return/schema/

The response will contain the description of the return resource

  • attributes
  • possible ordering and filtering

The request to fetch a given return request:

  
  GET  {{api_url}}/v1/return/{{RETURN_ID}}/

The response will contain the content of the return request, the detail of the concerned items.

The request to fetch all the return requests of a given merchant:

  
  GET  {{api_url}}/v1/return/?merchant={{MERCHANT_ID}}


Manage return/claim requests

Returns are accepted automatically by the application. When a claim request gets opened, it’s possible to accept or to cancel them.

The merchant can accept the claim request:

  
  POST {{api_url}}/v1/return/{{RETURN_ID}}/accept/

with the body:

  
  {
  "order_items": [
    {{ORDER_ITEM_ID}}
  ],
  "return_type": 1
  }

where:

  • order items: contains the list of returned items
  • return_type: the type of return (1: exchange, 2: refund)

The merchant can close the return/claim request:

  
  POST {{api_url}}/v1/return/{{RETURN_ID}}/close/

with the body:

  
  {
  "order_items": [
    {{ORDER_ITEM_ID}}
  ],
  "return_type": 1
  }

where:

  • order items: contains the list of return items received
  • return_type: the type of compensation (1: exchange, 2: refund)

The merchant can mark the package sent back by the buyer as received:

  
  POST {{api_url}}/v1/return/{{RETURN_ID}}/received/

with the body:

  
  {
  "order_items": [
    {{ORDER_ITEM_ID}}
  ],
  "return_type": 1
  }

where:

  • order items: contains the list of return items received
  • return_type: the type of compensation (1: exchange, 2: refund)


Refund from a return request

According to the discussion between the buyer and the merchant, the merchant can decide to refund an order item after it has been returned:

  
  POST  {{api_url}}/v1/refund/

with the body:

  
  {
  "amount": "10",
  "shipping": "0",
  "adjustment": 0,
  "partial_refund": true,
  "return_requests": [ /v1/return/2380/ ],
  "order_items": ["/v1/order_item/{{ORDER_ITEM_ID}}/"],
  "merchant_order": "/v1/merchant_order/{{MERCHANT_ORDER_ID}}/",
  "memo":"Memo to buyer",
  "seller_note":"Seller note"
  }

where:

  • amount: is the refund amount
  • shipping: is the refunded amount of the shipping
  • adjustment: the amount of the adjustment
  • order_items: the list of the refunded items of the ordering
  • memo: “a memo used for the merchant”
  • seller_note: “the comments of the seller”
  • return_requests: the resource uri of the return if the refund is linked to a return request

Note :

To link the refund to a return request, specify the return_requests attribute in the body.

For claims we strongly recommend to not manage refunds via laets but to handle them directly with the customer (bank transfer, etc.) as we can not ensure that for claims the payment method/card used for the initial order is still valid.


Refund

The merchant can decide to refund an order if the order is at a confirmed or processed state:

  
  POST  {{api_url}}/v1/refund/

with the body:

  
  {
    "amount": "10",
    "shipping": "0",
    "adjustment": 0,
    "partial_refund": true,
    "order_items": ["/v1/order_item/{{ORDER_ITEM_ID}}/"],
    "merchant_order": "/v1/merchant_order/{{MERCHANT_ORDER_ID}}/",
    "memo":"Memo to buyer",
    "seller_note":"Seller note"
  }

where:

  • amount: is the refund amount
  • shipping: is the refunded amount of the shipping
  • adjustment: the amount of the adjustment
  • order_items: the list of the refunded items of the ordering
  • memo: “a memo used for the merchant”
  • seller_note: “the comments of the seller”