Skip to content

Review Aftersales Requests

POST
/return_refund/202609/aftersales/review

API used to review (approve, reject, or offer alternatives to) a buyer’s return request.

shop_cipher
required
string

Identifies the shop. Obtain it from the Get Authorized Shops API.

Media typeapplication/json
object
aftersales_request_decisions

Decisions to apply to aftersales requests.

Array<object>
object
request_id
required

Identifies the object upon which this decision is made.

string
request_id_type

Type of identifier provided in request_id. Possible values:

  • AFTERSALES
  • RMA
string
Allowed values: AFTERSALES RMA
line_item_decisions
required

Decisions applied at the line item level. One SKU may only have one decision, so all line items (corresponding to that same SKU) should fall under the same decision object. Different line item decisions for the same SKU will soon be supported in the future.

Array<object>
object
line_items
required

Line items for which this decision applies. Decision details apply to each line item individually (e.g. a partial refund amount of $1.00 for 3 line items will result in a total partial refund amount of $3.00).

Array<object>
object
return_line_item_id
required

Unique identifier for this item in the return. In the case of virtual bundle, this corresponds to the id of the original parent item bundle.

string
sub_return_line_item_id

Unique identifier for this item in the return. In the case of virtual bundle, this corresponds to the id of the current child item being returned.

string
action
required

Action/decision to be applied. Possible values:

  • APPROVE_REQUEST
  • APPROVE_RETURN_PACKAGE
  • REJECT_REQUEST
  • REJECT_RETURN_PACKAGE
  • REFUND_INSTEAD
  • OFFER_PARTIAL_REFUND
  • OFFER_PARTIAL_REFUND_AFTER_RECEIVING_PKG
string
Allowed values: APPROVE_REQUEST APPROVE_RETURN_PACKAGE REJECT_REQUEST REJECT_RETURN_PACKAGE REFUND_INSTEAD OFFER_PARTIAL_REFUND OFFER_PARTIAL_REFUND_AFTER_RECEIVING_PKG
alternative_solution_details

Details for an alternative resolution (if applicable).

object
partial_refund_amount

Proposed refund amount.

string
currency

Currency of the refund amount (ISO 4217). Must match the currency of the forward order.

string
reason

To justify the action/decision (generally required for rejection).

object
reason_id

Seller’s reason for rejecting the aftersales request. Use the Get Review Decision endpoint to retrieve the currently available rejection options for the same request, and submit the returned rejection reason name in this field. Note: The available decisions and rejection reasons can change depending on the current request status, so fetch eligibility again before calling this API.

string
text

Additional explanation for the decision.

string
media

Supporting evidence (such as images).

object
uri

Image URI obtained from the Upload Product Image API.

string
mime_type

MIME type of the media (such as image/jpeg).

string
action_unix_time

The timestamp at which the decision/action was made (in unix seconds).

integer format: int64
idempotency_key

The idempotency key is a unique value generated by the client which the server uses to recognize the same request. How you create unique keys is up to you, but we suggest using UUIDs, or another random string with enough entropy to avoid collisions. Idempotency keys can be up to 255 characters long.

string
<= 255 characters
Example
{
"aftersales_request_decisions": [
{
"request_id": "4035319218955782461",
"request_id_type": "AFTERSALES",
"line_item_decisions": [
{
"line_items": [
{
"return_line_item_id": "4035227657962164811",
"sub_return_line_item_id": "4035227657962164815"
}
],
"action": "APPROVE_REQUEST",
"alternative_solution_details": {
"partial_refund_amount": "12.34",
"currency": "USD"
},
"reason": {
"reason_id": "seller_reject_apply_package_has_not_exceeded_estimated_delivery_time",
"text": "I have reached an agreement with the buyer",
"media": {
"uri": "tos-maliva-i-o3syd03w52-us/57a1c8908fe74572861ea5e50887d8d1",
"mime_type": "image/png"
}
}
}
],
"action_unix_time": 1774486592,
"idempotency_key": "40b456b1-78e7-412d-9fe6-82181496e1bd&app_key=38abcd"
}
]
}

Success

Media typeapplication/json
object
code

Status code; 0 means success.

integer format: int64
message

Success or failure message.

string
request_id

Request log ID.

string
data
object
errors

Lists errors for partially failed requests. For example, if a request reviews multiple orders or items and only some fail, individual error details are returned here.

IMPORTANT: Partial failures still return a top-level success code (0), so clients must also check this field to detect partial errors. For complete failures (e.g. validation errors), the top-level response code and message will indicate a failure, but this field will remain empty.

Array<object>
object
code

Error Code

string
message

Error Description

string
Example
{
"code": 0,
"data": {
"errors": [
{
"code": "98001004",
"message": "Invalid parameters. Please verify your input before retrying"
}
]
},
"message": "Success",
"request_id": "202203070749000101890810281E8C70B7"
}