Create resend order
Resend
Create resend order
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.
Auto-label (
The label is generated asynchronously after creation. The resend status flow is:
Manual-label (
No label is auto-generated; the warehouse processes the resend. The resend status flow is:
Prerequisites
- The target inventory items exist in your account. The
returnInventoryIdvalues come from thenewInventoryCreatedwebhook 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
handlingStatusCodemust be eligible to advance torsd(resend) per the handling state machine — typically items inohd(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.warehouseIdis required and must match the warehouse of the items inreturnInventoryIdList(all items in a single resend share one warehouse). Omitting it fails validation.shipmentServiceTypeinside 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-emptyList<long>. Maximum size isResendConfig.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
handlingCodeis set torsdand 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 inresendShipment.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:
queued → label-success → completed (or queued → failed 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:
pending → in-progress → completed
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.
Related
- Get resend order details — only when a webhook event references a resend you haven’t cached.
- Cancel resend order — abort before the warehouse dispatches.
- Get all resend statuses — code-to-label mappings.
- Webhooks — resend-status-update event deliver lifecycle changes to your endpoint.
Authorizations
Your API key
Your API token — keep this private
Body
application/json
List of return inventory IDs for resend
Destination shipment address for the resend
Optional free-text description for the resend order. Stored against the order and returned by Get resend order details.
Maximum string length:
255Optional merchant remarks/notes for the resend order. Stored against the order and returned by Get resend order details.
Maximum string length:
5000Response
Success
Created resend identifier