Skip to main content
POST
Create resend order
Creates a resend order — bundles one or more received return inventory items into an outbound shipment to a customer address. Triggers asynchronous label generation; the label URL is delivered via webhook.

Prerequisites

  • The target inventory items exist in your account. The returnInventoryId values come from the newInventoryCreated webhook event — cache them on your side as parcels are logged.
  • All inventories in a single resend must be in the same warehouse.
  • Each inventory’s current handlingStatusCode must be eligible to advance to rsd (resend) per the handling state machine — typically items in ohd (on-hold) status.
  • None of the items’ line items can have pending VAS requests.
  • Each inventory must be physically in stock (not in-transit, not under another active workflow).
  • Have your destination address ready.

Required fields

  • resendShipment — full shipment payload (destination address, contact, dimensions, weight, service type). Country codes are ISO3.
    • warehouseId is required and must match the warehouse of the items in returnInventoryIdList (all items in a single resend share one warehouse). Omitting it fails validation.
    • shipmentServiceType inside the payload is a shipment service type (not a return service type) — fetch valid codes from Get available shipment service types for warehouse. Passing a return-service-type code here will fail validation.
  • returnInventoryIdList — non-empty List<long>. Maximum size is ResendConfig.groupResendMaxRmaCount (typically a single-digit cap; check via support if you need to bundle many items).

Optional fields

  • description — free-text description for the resend order (max 255 characters). Persisted against the order and returned by Get resend order details.
  • remarks — merchant remarks/notes for the resend order (max 5000 characters). Persisted against the order and returned by Get resend order details.
These map to the Description and Remarks fields on the portal’s Create Resend form. Both are optional — omit them to leave the order without a description or remarks.

Side effects

  • Each inventory’s handlingCode is set to rsd and the matching status is applied.
  • The shipment is dispatched by the warehouse once the label is ready.

Label generation: auto vs manual service types

Whether a resend generates its shipping label automatically depends on the shipment service type you pass in resendShipment.shipmentServiceType. Each shipment service type carries an isEnableAutoCreateLabel flag — fetch it from Get available shipment service types for warehouse and read isEnableAutoCreateLabel for the code you intend to use.

Auto-label (isEnableAutoCreateLabel: true)

The label is generated asynchronously after creation. The resend status flow is: queuedlabel-successcompleted (or queuedfailed if label generation fails) The resend can be cancelled via Cancel resend order only while it is in label-success, and only before the cut-off. It cannot be cancelled while queued, because the label is still being generated.

Manual-label (isEnableAutoCreateLabel: false)

No label is auto-generated; the warehouse processes the resend. The resend status flow is: pendingin-progresscompleted The resend can be cancelled via Cancel resend order while it is in pending, and only before the cut-off.

Cancellation cut-off

Every resend has a cancellation cut-off of 08:00 UTC on working days, set when the resend is created. You can cancel up to that cut-off, provided the resend is in its cancellable status (label-success for auto-label, pending for manual-label). Once the cut-off passes, the resend can no longer be cancelled through the API.
If the cut-off has already passed and you still need to cancel a resend, please contact our customer support team for assistance. Cancellation is not guaranteed once the cut-off has passed — the package may already have been shipped out.

Authorizations

x-rr-apikey
string
header
required

Your API key

x-rr-apitoken
string
header
required

Your API token — keep this private

Body

application/json
returnInventoryIdList
integer<int64>[]
required

List of return inventory IDs for resend

resendShipment
object
required

Destination shipment address for the resend

description
string

Optional free-text description for the resend order. Stored against the order and returned by Get resend order details.

Maximum string length: 255
remarks
string

Optional merchant remarks/notes for the resend order. Stored against the order and returned by Get resend order details.

Maximum string length: 5000

Response

Success

resendId
integer<int64>

Created resend identifier