Skip to content
SIBISIBI Developers
Esc
navigateopen⌘Jpreview

Open a return request

Opens a return request for one or more lines of an order. Every requested line starts in a PENDING status; Sibi staff then approve or deny each line, and the outcome arrives on the order.return-request.item-approved and order.return-request.item-denied webhook events — see Order Return Requests events.

Check line eligibility first with GET /orders/{orderId}/returns/eligibility. A request for a line that is not eligible, is not on the order, appears twice, or exceeds the returnable quantity is rejected with a 400 carrying one of the codes: RETURN_INVALID_CONDITION, RETURN_INVALID_QUANTITY, RETURN_DUPLICATE_LINE, RETURN_LINE_NOT_ON_ORDER, RETURN_ITEM_NOT_ELIGIBLE, RETURN_QUANTITY_EXCEEDED.

POST/{orderId}/returns
Authorization
AuthorizationBearer token · headerrequired
API token from the SIBI developer dashboard (developer.sibipro.com), sent as `Authorization: Bearer <token>`.
Scopes:create:returns
Path parameters
orderIdstringrequired
The order the return data belongs to.
min length 1
Request body
application/json
itemsReturnRequestItemInput[]required
The lines to return. At least one; each must reference a distinct order line.
min items 1 · max items 100
Show properties
Array of ReturnRequestItemInput
orderLineItemIdstringrequired
The order line to return, referencing the order line by its itemId.
quantityintegerrequired
Units of the order line to return. At least one, and bounded by the ordered quantity.
conditionstringrequired
Physical condition of the item at intake.
Allowed:UNOPENEDOPENED-UNUSEDINSTALLEDDAMAGED
requestReasonstringrequired
Why the line is being returned.
min length 1
Responses
201The return request was opened. Every line starts PENDING.
idstringrequired
The unique identifier for the return request.
orderIdstringrequired
The order the returned lines belong to.
createdAtstringrequired
ISO 8601 timestamp of when the request was created.
updatedAtstringrequired
ISO 8601 timestamp of the most recent change.
itemsReturnRequestItem[]required
The requested lines, each carrying its current status.
Show properties
Array of ReturnRequestItem
orderLineItemIdstringrequired
Links back to the order line (Order line itemId).
quantityintegerrequired
How many units of the order line this covers.
conditionstringrequired
Physical condition reported at intake.
requestReasonstringrequired
Why the line was requested for return.
statusstringrequired
Per-item status, derived from the latest decision (PENDING when none exists).
Allowed:PENDINGAPPROVEDDENIED
latestDecisionReturnItemDecision | nullrequired
The most recent decision on this line; null while PENDING.
Show properties
outcomestringrequired
The decision recorded for the line.
Allowed:APPROVEDDENIED
denialReasonstring | nullrequired
Set only when the outcome is DENIED.
decidedAtstringrequired
ISO 8601 timestamp of when the decision was made.
400Bad request - Invalid input data. See the operation description for the possible error codes.
codestringrequired
Error code indicating the type of error
Allowed:VALIDATION_ERRORRETURN_INVALID_CONDITIONRETURN_INVALID_QUANTITYRETURN_DUPLICATE_LINERETURN_LINE_NOT_ON_ORDERRETURN_ITEM_NOT_ELIGIBLERETURN_QUANTITY_EXCEEDED
messagestringrequired
Human-readable error message explaining what went wrong
detailsobject[]
Detailed validation errors when applicable
Show properties
Array of object
fieldstringrequired
errorstringrequired
401Unauthorized - Missing or invalid authentication
codestringrequired
Error code indicating the type of error
messagestringrequired
Human-readable error message explaining what went wrong
detailsobject[]
Detailed validation errors when applicable
Show properties
Array of object
fieldstringrequired
errorstringrequired
403Forbidden - the token was minted for the other environment, is not a Public REST API token, does not carry the scope this operation requires, or targeted the test environment (the Returns API is production-only)
codestringrequired
Error code indicating the type of error
messagestringrequired
Human-readable error message explaining what went wrong
detailsobject[]
Detailed validation errors when applicable
Show properties
Array of object
fieldstringrequired
errorstringrequired
404Not found - no order with the given id is visible to the caller, or its return data could not be resolved
codestringrequired
Error code indicating the type of error
messagestringrequired
Human-readable error message explaining what went wrong
detailsobject[]
Detailed validation errors when applicable
Show properties
Array of object
fieldstringrequired
errorstringrequired
500Internal server error
codestringrequired
Error code indicating the type of error
messagestringrequired
Human-readable error message explaining what went wrong
detailsobject[]
Detailed validation errors when applicable
Show properties
Array of object
fieldstringrequired
errorstringrequired
Request
curl -X POST "https://api.sibipro.com/orders/SIBI-12345678/returns" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "items": [
    {
      "orderLineItemId": "OLI-0001",
      "quantity": 1,
      "condition": "UNOPENED",
      "requestReason": "Ordered the wrong size"
    }
  ]
}'
Response
{
  "id": "RET-12345XYZ",
  "orderId": "SIBI-12345678",
  "createdAt": "string",
  "updatedAt": "string",
  "items": [
    {
      "orderLineItemId": "string",
      "quantity": 0,
      "condition": "UNOPENED",
      "requestReason": "string",
      "status": "PENDING",
      "latestDecision": {
        "outcome": "APPROVED",
        "denialReason": "string",
        "decidedAt": "string"
      }
    }
  ]
}