---
title: "Create Light Return Shipment"
method: POST
path: "/shipments/light-return"
tags: ["Shipments"]
---

# Create Light Return Shipment

`POST /shipments/light-return`

Creates a return after the original shipment has been delivered.

ℹ️ **Information:** </br>
To allow this request to work, the account manager must enable the LightReturn setting on the legal entity in the internal Nova Post system.</br>
Once this setting is activated, the request will function via API on new delivered shipments.
The return can be created only if the parent shipment has the **Delivered** status and includes the **AllowedLightReturn** service. </br>
The current status of a shipment can be found in the `"items" → "statusCode"` field of the [Find documents](https://api-portal.novapost.com/metodi-1/methods/shipments#get-shipments) method.</br>
**AllowedLightReturn** defines the number of days within which the recipient can initiate a return after the delivery.
Internally, the system verifies several conditions before allowing a Light Return shipment to be created:
- The parent shipment status must be one of: `Issued (9, 10, 11, 106)`.
- The system calculates the allowed return period using the following logic: </br>
  `finalDate = toTZ(parentShipment.RecipientDateTime) + returnDays + 1 day`</br>
  where returnDays is taken from the AllowedLightReturn service, and toTZ applies the relevant system time zone (e.g., EU region).
- The return can be created only if the current time (nowTZ) is earlier than finalDate.
- The system also checks that no Light Return has already been created for the same parent shipment.

If all these conditions are met, the return creation request is accepted; otherwise, the system responds with a validation error indicating why the return is not permitted.

**How the Light Return Shipment works (Ukraine → Europe)**

- The request must include one required parameter — `number` (the parent shipment number). All other parameters are optional.
- Two return scenarios are supported:
  - **Full Return** – only the `number` parameter is required. All shipment data is inherited from the parent shipment.
  - **Partial Return** – additional shipment data (such as `invoice` and `parcels`) can be provided to return only selected goods or update parcel dimensions.
- If optional parameters are not specified, their values are automatically inherited from the parent shipment whenever possible.
- Only Nova Post branches are allowed as return handover locations.
- If the parent delivery was made to an APM (parcel locker), PUDO, or an address, the nearest available Nova Post branch is selected automatically.
- Customers may specify a valid `divisionId` directly in the request.
- Courier pickup, APMs (parcel lockers), and PUDO cannot be used as return handover locations.

**Partial Return**

For Partial Returns:
- All values in `invoice.items[]` must exactly match the corresponding items from the parent shipment.
- Creating new invoice items or modifying existing item values is not allowed.
- The initiating client is responsible for ensuring consistency between `amount`, `cost`, and `actualWeight`.
- To avoid validation errors, it is recommended to copy invoice data directly from the parent shipment.

When the return is created, the system automatically generates a return waybill.</br>
For more information on printing the return label, see [Print Shipment Documents](https://api-portal.novapost.com/metodi-1/methods/shipments/print-documents#get-shipments-print).</br>
For more information on creating a parent shipment, see [Create documents](https://api-portal.novapost.com/metodi-1/methods/shipments/create-shipments).

## Request body

- object
  - `number` string, required — The number of the **parent shipment** for which the return is initiated. This parameter is mandatory to create a return.
  - `divisionId` string — Identifier of the division that will process the return. **🔹This field is optional.**
  - `sender` object — Sender information for the return shipment.
    - `divisionId` string — Identifier of the Nova Post branch in Ukraine where the return shipment will be handed over.
    - `senderPhone` string — Phone number of the sender for the return shipment.
    - `addressParts` object — Structure describing the courier pickup address. 🔹Used if `divisionId` is not provided.
      - `countryCode` string — Country code according to ISO 3166-1 alpha-2.
      - `city` string — City name of the pickup address.
      - `region` string — Region or administrative area of the address.
      - `street` string — Street name of the pickup address.
      - `postCode` string — Postal code of the pickup address.
      - `building` string — Building number of the pickup address.
      - `flat` string — Apartment or office number at the specified address.
      - `block` string — Block or section information for the address, if applicable.
      - `note` string — Additional details or notes for the address (e.g., entrance, floor, or courier instructions).
  - `recipient` object — Recipient information for the return shipment.
    - `divisionId` string — Identifier of the Nova Post branch where the return shipment will be delivered.
    - `addressParts` object — Structure describing the delivery address. 🔹Used if `divisionId` is not provided.
      - `countryCode` string — Country code according to ISO 3166-1 alpha-2.
      - `city` string — City name of the delivery address.
      - `region` string — Region or administrative area of the address.
      - `street` string — Street name of the delivery address.
      - `postCode` string — Postal code of the delivery address.
      - `building` string — Building number of the delivery address.
      - `flat` string — Apartment or office number at the specified address.
      - `block` string — Block or section information for the address, if applicable.
      - `note` string — Additional details or notes for the address (e.g., entrance, floor, or delivery instructions).
  - `invoice` object — This object presents the necessary data for customs authorities to process the consignment efficiently, including the assessment of duties and taxes, and to confirm adherence to import/export regulations. The structured format of the invoice ensures that all pertinent information is easily accessible and clear, facilitating a smoother transit across borders. 🔹For Partial Returns, all values in `invoice.items[]` must match the corresponding items from the parent shipment. Creating new items or modifying existing values is not allowed.
    - `incoterm` 'DAP' — Specifies the trade terms based on Incoterms® (e.g., DAP). Required for cross-border shipments.
    - `currencyCode` string — ISO 4217 currency code of the invoice. All items in the invoice must use the same currency.
    - `exportReason` 'ForPersonalPurposes' | 'Selling' | 'Repair' | 'Return' | 'Other' — Reason for export (ForPersonalPurposes, Selling, Repair, Return, Other).
    - `totalCost` number — Total declared invoice value in the original currency, which must equal the sum of all invoice items calculated as **(amount × cost)** for each item.
    - `items` object[] — Detailed list of goods being shipped, required for customs declaration. 🔹For Partial Returns, all item values must match the corresponding items from the parent shipment.
      - `name` string — Item name in the local language.
      - `nameEng` string — Item name in English.
      - `measurementCode` string — Unit of measurement (e.g., pcs, kg, m).
      - `hsCode` string — Harmonized System code for each item (8–10 digits).
      - `amount` number — The quantity of the item being shipped, necessary for inventory and customs documentation. For Partial Returns, the value must remain consistent with `cost` and `actualWeight`.
      - `cost` number — The value per single unit of the item in the sender's currency, important for insurance and customs valuation. For Partial Returns, the value must remain consistent with `amount` and `actualWeight`.
      - `costUsd` number — The item's value converted to US Dollars, facilitating consistent valuation in international transactions. **🔹This field is required for shipments crossing the EU border or going outside the EU.**
      - `costEur` number — The item's value in Euros, providing a standardized currency evaluation for European trade operations. **🔹This field is required for shipments crossing the EU border or going outside the EU.**
      - `producerAndModel` string — The parameter represents the manufacturer and model of the device. Both values are included in a single parameter. This parameter is mandatory for the following categories: - Electrical appliances - Laptops - Phones - Large and small household appliances - Other similar items **🔸This field is not required; however, shipments with this field filled are given priority during customs clearance.**
  - `parcels` object[] — `Parcels` description block. Each object contains information about one parcel in the shipment.
    - `cargoCategory` 'parcel' | 'documents' | 'pallet' — Type of shipment (parcel or documents).
    - `number` string — The number of the **parent shipment** for which the return is initiated. This parameter is mandatory to create a return.
    - `parcelDescription` string — Short description of parcel contents.
    - `insuranceCost` number, float — Declared insurance value of the parcel.
    - `untied` boolean — Indicates whether the parcel is untied. A value of `false` indicates a standard parcel, while `true` indicates an untied parcel (unsecured cargo).
    - `width` integer — Parcel width in millimeters.
    - `length` integer — Parcel length in millimeters.
    - `height` integer — Parcel height in millimeters.
    - `actualWeight` integer — Actual total weight of all units of the item in grams (g).
    - `volumetricWeight` integer — Parcel volumetric weight in grams (g). Retrieved from the parent shipment for return shipments.

## Response `200`

Successfully created Light Return shipment.

- object

## Other responses

- `401` — Unauthorized request — invalid or missing authentication token.
- `403` — Parent shipment is missing the AllowedLightReturn parameter.
- `404` — Parent shipment not found or status not allowed.
- `422` — Parent shipment not found or status not allowed.
- `503` — Service unavailable or request timeout.

---

[API](https://skmtc.net/novapost/apis/api-nova-post.md) · [All operations](https://skmtc.net/novapost/apis/api-nova-post/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/novapost/api-nova-post/revisions/60e380005037/schema)
