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.
Original order name from the eCommerce platform
Email from the shopper. Must be the email used in the original purchase
The Line Item ID from the Platform, not the REVER line item ID.
Reason name. Retrieve available reasons via GET /v1/public/configs/return-reasons/find (Storefront API) and use the name field from that response.
- 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-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"
}'{ "process_id": "retp_38Fv8eXCCjU7cG0XnrZ2DaWDqzj" }
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.
REVER process_id of the return you are reviewing
Reviews to be processed. 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)
ID of the line item. This property accepts both the line_item_id from REVER, the line_item_id from the eCommerce platform or the SKU
Review status. This is the outcome of the review and it's what will define any actions or communications.
Item received and approved.
Email of the user making the review
Required when status: DECLINED
Reason for rejection.
- 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-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",
"show_reject_reason": true
},
{
"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
}
}'{}
- https://api.byrever.com/v1/processes/search
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://api.byrever.com/v1/processes/search?page=0&order_id=string&status=string&customer_email=string&order_number=string'{ "pagination": { "current_page": 0, "page_size": 0, "total_pages": 0 }, "return_summaries": [ { … } ] }
- 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}'{ "return_summary": { "basic_process_data": { … }, "compensation": { … }, "currency_code": "string", "customer": { … }, "exchange_timing": "TIMING_UNSPECIFIED", "extra_line_items": { … }, "keep_your_item_type": "KEEP_YOUR_ITEM_TYPE_UNSPECIFIED", "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}/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' \
-d '{
"patch": "string",
"process_id": "string",
"return_process_patch": {},
"user": "string"
}'{ "new_last_known_shipping_status": "NO_SHIPPING_STATUS", "previous_last_known_shipping_status": "NO_SHIPPING_STATUS" }
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' \
-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'{ "documents": [ { … } ] }
- https://api.byrever.com/v1/processes/{process_id}/mark-as-refunded
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://api.byrever.com/v1/processes/{process_id}/mark-as-refunded' \
-H 'Content-Type: application/json' \
-d '{
"currency": "string",
"extra_lines": [
{
"name": "string",
"price": "string"
}
],
"line_items": [
{
"line_item_id": "string",
"name": "string",
"price": "string",
"quantity": "string",
"sku": "string"
}
],
"order_id": "string",
"order_reference": "string",
"process_id": "string",
"return_process_platform_id": "string",
"total_amount": {
"amount": "string",
"currency": "string"
},
"total_amount_shop": {
"amount": "string",
"currency": "string"
}
}'{ "credit_note_id": "string", "ecommerce_id": "string", "process_id": "string" }
- https://api.byrever.com/v1/processes/{process_id}/reviews/
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://api.byrever.com/v1/processes/{process_id}/reviews/' \
-H 'Content-Type: application/json' \
-d '{
"process_id": "string",
"refund_override": {
"amount": {
"amount": "1200",
"currency_code": "EUR"
},
"reason": "The order is partially broken",
"requested": true
},
"reviews": [
{
"created_by_user": "string",
"line_item_id": "string",
"reject_reason": "string",
"show_reject_reason": true,
"status": "string"
}
]
}'