Collection of methods that provide logistics services including CRUD operations for logistics orders, pickups, etc. Also handles logistics-related files like shipping labels.
REVER Admin API (1.0.0)
- Overview: The REVER ADMIN API provides seamless integration for managing returns through three main categories: Reverse Logistics, Processes, and Settings.
- Logistics: Handles all operations related to package returns, including shipment tracking, warehouse logistics, and return labels for items sent back to the eCommerce warehouse.
- Processes: Manages return workflows, including return statuses, item inspections, and actions that can be taken on a return, such as refunds, exchanges, or inspections.
- Settings: Contains configuration information REVER uses to execute return processes, including return rules, time limits, and warehouse preferences.
You can download the OpenAPI specification file here to generate your client code.
this API is meant to be used for returns that are already created or processed. The API is not meant to be used to start returns from the customer portal. For integrating with your own portal please take a look at the Storefront API.
Most commonly, you will only need to use the e-commerce ID provided during onboarding. However, if you need to manage multiple e-commerce stores simultaneously, a group ID is required. An e-commerce group is an identifier that groups multiple e-commerce stores that are managed together. Typically, these are different brands belonging to the same parent company.
This authentication method is primarily used for server-to-server (unattended) integrations. You must request an API key through your account manager. The API key must be kept secure and confidential, do not share it with anyone.
To authenticate a request using an API key, include the header x-rever-api-key. Example: x-rever-api-key: 87bf223499abeef
Request
Create a new return process using the order, email and items to be returned.
Notes:
- Returns are unique: make sure a return doesn't exist for that line_item_id in the same order
- Each portal has a unique ecommerce_id. Make sure you use a valid ecommerce_id.
- You'll need to add a valid return reason in the line_item_id (see details below)
- The user preferred languaged will be used to define the communications' language with the shopper. The default language is english but can be overriden
Details of the return to be created.
- https://api.byrever.com/v1/public/returns/{ecommerce_id}/import_return
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://api.byrever.com/v1/public/returns/ecommerce_id/import_return \
-H 'Content-Type: application/json' \
-H 'x-rever-api-key: YOUR_API_KEY_HERE' \
-d '{
"customer_printed_order_id": "ORDER-1001",
"email": "user@example.com",
"line_items": [
{
"line_item_id": "9876543210987",
"product_return_reason": "NOT_AS_EXPECTED",
"quantity": 1
}
],
"user_preferred_lang": "en"
}'{ "error": { "code": "IMPORT_RETURN_ERROR_CODE_UNSPECIFIED", "message": "string" }, "process_id": "string" }
Request
Notify REVER when a return has been reviewed. Reviews must cover every line item of the process.
Notes:
- Reviews of a return process must be done in full; unreviewed items will block processing.
- Each quantity of the line_item_id needs to have a review line (if there's multiple quantity for the same line_item_id, they need to go on different review lines within the reviews array)
- If an expected item was not received, set status as
MISSING. - Optionally override the refund amount with
refund_override.
when true, authorization approval is executed before processing the review
- https://api.byrever.com/v1/ops/ecommerce/review
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://api.byrever.com/v1/ops/ecommerce/review \
-H 'Content-Type: application/json' \
-H 'x-rever-api-key: YOUR_API_KEY_HERE' \
-d '{
"process_id": "retp_38Fv8eXCCjU7cG0XnrZ2DaWDqzj",
"reviews": [
{
"line_item_id": "PD12341N32",
"status": "DECLINED",
"timestamp": "2025-04-16T14:30:00Z",
"user": "warehouse-agent1@brand.com",
"reject_reason": "The T-Shirt was used and broken"
},
{
"line_item_id": "PD12341N32",
"status": "APPROVED",
"timestamp": "2025-04-16T14:30:00Z",
"user": "warehouse-agent1@brand.com"
},
{
"line_item_id": "LS87941L99",
"status": "MISSING",
"timestamp": "2025-04-16T14:30:00Z",
"user": "warehouse-agent1@brand.com"
}
],
"refund_override": {
"amount": {
"amount": "1200",
"currency_code": "EUR"
},
"reason": "The order is partially broken",
"requested": true
}
}'{}
Request
Returns a paginated list of return process summaries, with optional filters (order ID, status, customer email, order number).
- https://api.byrever.com/v1/processes/summaries
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://api.byrever.com/v1/processes/summaries?page=0&order_id=string&status=string&customer_email=string&order_number=string' \
-H 'x-rever-api-key: YOUR_API_KEY_HERE'{ "pagination": { "current_page": 0, "page_size": 0, "total_pages": 0 }, "return_summaries": [ { … } ] }
- https://api.byrever.com/v1/processes/ecommerce/{platform_process_id}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://api.byrever.com/v1/processes/ecommerce/{platform_process_id}' \
-H 'x-rever-api-key: YOUR_API_KEY_HERE'{ "return_summary": { "basic_process_data": { … }, "checkout_id": "string", "compensation": { … }, "currency_code": "string", "customer": { … }, "exchange_timing": "TIMING_UNSPECIFIED", "extra_line_items": { … }, "is_claim": true, "keep_your_item_type": "KEEP_YOUR_ITEM_TYPE_UNSPECIFIED", "navigation": { … }, "open_exchange_items": { … }, "ordered_items": { … }, "payments": { … }, "refund_payment_method": "REFUND_PAYMENT_METHOD_UNSPECIFIED", "refund_timing": "TIMING_UNSPECIFIED", "returned_items": { … }, "start_return_on_platform_time": "string", "status": "RETURN_PROCESS_STATUS_UNSPECIFIED", "upload_documents_info": { … } } }
- https://api.byrever.com/v1/processes/{process_id}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://api.byrever.com/v1/processes/{process_id}' \
-H 'x-rever-api-key: YOUR_API_KEY_HERE'{ "return_summary": { "basic_process_data": { … }, "checkout_id": "string", "compensation": { … }, "currency_code": "string", "customer": { … }, "exchange_timing": "TIMING_UNSPECIFIED", "extra_line_items": { … }, "is_claim": true, "keep_your_item_type": "KEEP_YOUR_ITEM_TYPE_UNSPECIFIED", "navigation": { … }, "open_exchange_items": { … }, "ordered_items": { … }, "payments": { … }, "refund_payment_method": "REFUND_PAYMENT_METHOD_UNSPECIFIED", "refund_timing": "TIMING_UNSPECIFIED", "returned_items": { … }, "start_return_on_platform_time": "string", "status": "RETURN_PROCESS_STATUS_UNSPECIFIED", "upload_documents_info": { … } } }
Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.
- https://api.byrever.com/v1/processes/{process_id}/patch
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X PATCH \
'https://api.byrever.com/v1/processes/{process_id}/patch' \
-H 'Content-Type: application/json' \
-H 'x-rever-api-key: YOUR_API_KEY_HERE' \
-d '{
"patch": "string",
"process_id": "string",
"return_process_patch": {
"@type": "string"
},
"user": "string"
}'{ "new_last_known_shipping_status": "NO_SHIPPING_STATUS", "previous_last_known_shipping_status": "NO_SHIPPING_STATUS" }
Request
Marks a return process as refunded externally (manual refund made outside the platform). Records the optional amount override and a required note explaining the reason.
- https://api.byrever.com/v1/ops/mark_as_refunded_externally
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://api.byrever.com/v1/ops/mark_as_refunded_externally \
-H 'Content-Type: application/json' \
-H 'x-rever-api-key: YOUR_API_KEY_HERE' \
-d '{
"amount_override": {
"amount": "string",
"currency_code": "string"
},
"note": "string",
"process_id": "string"
}'{}
- https://api.byrever.com/v1/processes/{process_id}/review
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://api.byrever.com/v1/processes/{process_id}/review' \
-H 'Content-Type: application/json' \
-H 'x-rever-api-key: YOUR_API_KEY_HERE' \
-d '{
"process_id": "string",
"refund_override": {
"amount": {
"amount": "string",
"currency_code": "string"
},
"reason": "string",
"requested": true
},
"reviews": [
{
"created_by_user": "string",
"line_item_id": "string",
"reject_reason": "string",
"show_reject_reason": true,
"status": "string"
}
]
}'The new logistics carrier of the process. It's used by the process to request the creation to the provider of the shipping order using his carrier If it's already created, has no effect. Required.
- https://api.byrever.com/v1/processes/{process_id}/logistics
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://api.byrever.com/v1/processes/{process_id}/logistics' \
-H 'Content-Type: application/json' \
-H 'x-rever-api-key: YOUR_API_KEY_HERE' \
-d '{
"process_id": "string",
"user": "string",
"user_selected_carrier": "string",
"user_selected_provider": "string"
}'- https://api.byrever.com/v1/processes/{process_id}/documents
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://api.byrever.com/v1/processes/{process_id}/documents' \
-H 'x-rever-api-key: YOUR_API_KEY_HERE'{ "documents": [ { … } ] }