Manage Refund Requests
Refund Request Lifecycle
After an order has been placed, the buyer may initiate a refund, which creates a refund request in a pending_seller_response
state.
The seller may respond via Reverb's API by updating the refund request with one of the following states:
conditionally_approved
: Approve the refund after the item has been returned. The refund request is still active and will need to be approved at a later time.approved
: Approve the refund immediately, typically after the item has been returned. This will immediately credit the buyer and debit the seller. Once approved, the refund request is completed and no further action is needed.denied
: Deny the refund, which will complete the refund request without crediting the buyer or debiting the seller. Once denied, the refund request is completed and no further action is needed.
When responding to a refund request by approving or conditionally approving, the seller may also change the amount to be refunded.
A single order can have multiple refund requests, as long as the order has not been fully refunded.
Getting a List of Refund Requests
By default, refund requests with an active state (pending_seller_response
or conditionally_approved
) are returned. These can be filtered by created date range or updated date range.
Filter by Create Date Range
curl -XGET
-H "Content-Type: application/hal+json"
-H "Accept: application/hal+json"
-H "Accept-Version: 3.0"
-H "Authorization: Bearer [personal_token]"
https://api.reverb.com/api/my/refund_requests/selling?created_start_date=2017-10-01T12:00-00:00&created_end_date=2017-10-31T12:00-00:00
Filter by Update Date Range
curl -XGET
-H "Content-Type: application/hal+json"
-H "Accept: application/hal+json"
-H "Accept-Version: 3.0"
-H "Authorization: Bearer [personal_token]"
https://api.reverb.com/api/my/refund_requests/selling?updated_start_date=2017-10-01T12:00-00:00&updated_end_date=2017-10-31T12:00-00:00
Filter by Refund State
curl -XGET
-H "Content-Type: application/hal+json"
-H "Accept: application/hal+json"
-H "Accept-Version: 3.0"
-H "Authorization: Bearer [personal_token]"
https://api.reverb.com/api/my/refund_requests/selling?state[]=approved&state[]=conditionally_approved
curl -XGET
-H "Content-Type: application/hal+json"
-H "Accept: application/hal+json"
-H "Accept-Version: 3.0"
-H "Authorization: Bearer [personal_token]"
https://api.reverb.com/api/my/refund_requests/selling?state=approved
Filter by Order Number
curl -XGET
-H "Content-Type: application/hal+json"
-H "Accept: application/hal+json"
-H "Accept-Version: 3.0"
-H "Authorization: Bearer [personal_token]"
https://api.reverb.com/api/my/refund_requests/selling?order_number=123
Paginate through Refund Request responses
curl -XGET
-H "Content-Type: application/hal+json"
-H "Accept: application/hal+json"
-H "Accept-Version: 3.0"
-H "Authorization: Bearer [personal_token]"
https://api.reverb.com/api/my/refund_requests/selling?page=1&per_page=1
Response Example
The response format includes a list of refund requests and its associated orders:
{
"total":2,
"current_page":1,
"per_page":1,
"total_pages":2,
"_links":{
"next":{
"href":"https://api.reverb.com/api/my/refund_requests/selling?page=2&per_page=1&state=conditionally_approved"
}
},
"refund_requests":[
{
"id":47,
"state":"conditionally_approved",
"amount":{
"amount":"87.00",
"amount_cents":8700,
"currency":"USD",
"symbol":"$",
"display":"$87"
},
"refund_type":"full",
"reason":"buyer_return",
"initiated_by":"buyer",
"note_to_buyer":"",
"created_at":"2017-05-12T09:56:03-05:00",
"updated_at":"2017-05-12T09:56:03-05:00",
"order":{
"buyer_id":"1651",
"order_number":"290",
"paid_at":"2017-05-12T09:54:25-05:00",
"quantity":1,
"shipping_address":{
"region":"IL",
"locality":"Chicago",
"country_code":"US",
"display_location":"Chicago, IL, United States"
},
"shipping_date":"2017-05-12",
"shipped_at":"2017-05-12T09:55:15-05:00",
"shipping_provider":"USPS",
"shipping_code":"9410836897846109604096",
"shipping_method":"shipped",
"local_pickup":false,
"status":"shipped",
"product_id":"637",
"order_bundle_id":"162",
"created_at":"2017-05-12T09:54:23-05:00",
"amount_product":{
"amount":"77.00",
"amount_cents":7700,
"currency":"USD",
"symbol":"$",
"display":"$77"
},
"amount_product_subtotal":{
"amount":"77.00",
"amount_cents":7700,
"currency":"USD",
"symbol":"$",
"display":"$77"
},
"shipping":{
"amount":"10.00",
"amount_cents":1000,
"currency":"USD",
"symbol":"$",
"display":"$10"
},
"amount_tax":{
"amount":"0.00",
"amount_cents":0,
"currency":"USD",
"symbol":"$",
"display":"FREE"
},
"total":{
"amount":"87.00",
"amount_cents":8700,
"currency":"USD",
"symbol":"$",
"display":"$87"
},
"fully_refundable_amount":{
"amount":"87.00",
"amount_cents":8700,
"currency":"USD",
"symbol":"$",
"display":"$87"
}
},
"_links":{
"self":{
"href":"https://api.reverb.com/api/my/refund_requests/selling/47"
}
}
}
]
}
Responding to Buyer-Initiated Refund Requests
How to conditionally approve a refund, including a note to the buyer:
curl -XPUT
-H "Content-Type: application/hal+json"
-H "Accept: application/hal+json"
-H "Accept-Version: 3.0"
-H "Authorization: Bearer [personal_token]"
https://api.reverb.com/api/my/refund_requests/selling/[refund_request_id]
-d '{
"state":"conditionally_approved",
"note_to_buyer":"hello"
}' \
How to approve a refund:
curl -XPUT
-H "Content-Type: application/hal+json"
-H "Accept: application/hal+json"
-H "Accept-Version: 3.0"
-H "Authorization: Bearer [personal_token]"
https://api.reverb.com/api/my/refund_requests/selling/[refund_request_id]
-d '{
"state":"approved"
}' \
How to deny a refund:
curl -XPUT
-H "Content-Type: application/hal+json"
-H "Accept: application/hal+json"
-H "Accept-Version: 3.0"
-H "Authorization: Bearer [personal_token]"
https://api.reverb.com/api/my/refund_requests/selling/[refund_request_id]
-d '{
"state":"denied"
}' \
Creating a Seller-Initiated Refund Request
curl -XPOST
-H "Content-Type: application/hal+json"
-H "Accept: application/hal+json"
-H "Accept-Version: 3.0"
-H "Authorization: Bearer [personal_token]"
https://api.reverb.com/api/my/orders/selling/[order_number]/refund_requests
-d '{
"state":"conditionally_approved",
"reason":"sold_elsewhere",
"refund_amount":{"amount":"10.00","currency":"USD"}
}' \
The reason
parameter is required and must be one of the following values:
buyer_return
lost_shipment
shipping_damage
sold_elsewhere
accidental_order
change_shipping_address
shipping_adjustments
Please note that the currency parameter must be set to whatever you have set as your Shop Currency in your Reverb shop. If the buyer's currency differs from your own and you attempt to make a PUT call using the buyer's currency, you will receive an error. You can review your Shop Currency from your Shop Policies page in your Reverb account.
Updated about 2 months ago