Skip to content

Approve Return

POST
/return_refund/202309/returns/{return_id}/approve

Use this API to approve a buyer’s return request. The exact effect depends on the return type and return status. Before calling this API, make sure the return is still awaiting a seller action that matches the decision you are sending.

return_id
required
string

The unique identifier of the return request to be approved by the seller.

shop_cipher
required
string

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

idempotency_key
string
<= 255 characters

A unique value generated by the client that the server uses to recognize repeated requests. Reuse the same key when retrying the same request. If omitted, the server generates a key for that call. You may use a UUID or another random string with enough entropy to avoid collisions. Maximum length: 255 characters.

Media typeapplication/json
object
decision
required

Seller’s decision for the return request, available values:

  • APPROVE_REFUND: seller approve a refund-only request
  • APPROVE_RETURN: seller approve the initial return-and-refund request
  • APPROVE_RECEIVED_PACKAGE: seller approve return-and-refund request after the buyer has already shipped or handed over the item.
  • APPROVE_REPLACEMENT: seller approve replacement request
  • ISSUE_REPLACEMENT_REFUND: seller decline the replacement request and directly refund the buyer instead.
  • OFFER_PARTIAL_REFUND: seller offers a partial refund amount to the buyer without requiring the item(s) to be returned.
  • DIRECT_REFUND: seller issues a returnless refund, meaning the buyer receives a full refund and keeps the item
string
Allowed values: APPROVE_REFUND APPROVE_RETURN APPROVE_RECEIVED_PACKAGE APPROVE_REPLACEMENT ISSUE_REPLACEMENT_REFUND OFFER_PARTIAL_REFUND DIRECT_REFUND
buyer_keep_item

Optional. Use this field only when decision is set to APPROVE_RETURN. If set to true, the seller issues a returnless refund, which means the buyer receives a full refund and keeps the item. If set to false or omitted, the seller approves the return-and-refund flow and the buyer returns the item.

boolean
partial_refund

Required when decision is set to OFFER_PARTIAL_REFUND. When partial_refund is provided, both amount and currency are required. Omit this field for all other decisions.

object
currency

Refund currency must match the currency of the current return request.

string
amount

The partial refund amount seller would like to offer to the buyer

string
Example
{
"decision": "APPROVE_REFUND",
"buyer_keep_item": true,
"partial_refund": {
"currency": "IDR",
"amount": "10"
}
}

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
Example
{
"code": 0,
"data": {},
"message": "Success",
"request_id": "202203070749000101890810281E8C70B7"
}