| Time | Status | User Agent |  |
| :-- | :-- | :-- | :-- |
| Make a request to see history. |

#### URL Expired

The URL for this request expired after 30 days.

### Information used to generate a shipment planning decision.

#### requestDateOverride

- **Type:** date-time  
Overrides the requestDate to a specific date & time from which the ship by and drop by date are calculated. ISO 8601 format

#### desiredDeliveryDate

- **Type:** string  
The string representation of either an ISO-8601 date or a LocalDate: yyyy-mm-dd. The date on which you want the shipment in question to be delivered on or before.

#### businessDaysOfTransit

- **Type:** int32  
An integer number of business days by which the shipment must be delivered. Used as an alternative to desiredDeliveryDate and cannot be passed with desiredDeliveryDate.

#### mustShipByDate

- **Type:** date  
A date value specifying when the shipment needs to be shipped by (in the timezone of the FC from which it is shipping). Mutually exclusive with mustShipByBusinessDays and mustShipByCalendarDays.

#### mustShipByBusinessDays

- **Type:** int32  
An integer number of business days by which the shipment must be shipped from the FC. Mutually exclusive with mustShipByDate and mustShipByCalendarDays.

#### mustShipByCalendarDays

- **Type:** int32  
An integer number of calendar days by which the shipment must be shipped from the FC. Mutually exclusive with mustShipByDate and mustShipByBusinessDays.

#### deliveryWindowDays

- **Type:** int32  
An integer number of days before the desiredDeliveryDate that defines the earliest acceptable delivery date. Used to determine if candidates are too early for the delivery window. Optional - if not provided, there is no earliest delivery constraint.

#### deliveryWindowDaysType

- **Type:** string (enum)  
The type of days to use when calculating the delivery window: BUSINESS for business days, CALENDAR for calendar days. Can only be set if deliveryWindowDays is provided. If deliveryWindowDays is provided without this field, CALENDAR is assumed.  
  Allowed: `BUSINESS` `CALENDAR`

#### desiredDeliveryDateOptions

- **Type:** object  
Options for how the system will use the desiredDeliveryDate

#### carrierServiceMethodAllowList

- **Type:** array of strings  
A list of carrierServiceMethodId and/or carriers that should be considered for selection.

#### shipmentParameters

- **Type:** object (required)  
Details of the shipment and its corresponding package and to/from addresses.

#### referenceIdentifier

- **Type:** string  
Reference external identifier that is used for reporting purposes.

#### partnerReferenceIdentifier

- **Type:** string  
Reference external identifier explicitly provided by the partner. Used for reporting purposes.

#### partnerReferenceIdentifier2

- **Type:** string  
Secondary reference external identifier explicitly provided by the partner. Used for reporting purposes.

#### referenceIdentifiers

- **Type:** array of objects  
Reference external identifiers that are used for reporting purposes.

#### shipmentTags

- **Type:** array of strings  
Free-form list of shipment tags for this planning request. Used for downstream reporting. Matches the shipmentTags field on the corresponding Carrier Selection API request.

#### options

- **Type:** object  
Options object

#### customerCountryCode

- **Type:** string

#### customerPostalCode

- **Type:** string

#### X-DELEGATED-PARTNER-ID

- **Type:** string

# Response Codes

- **200**  Shipment Planning successfully calculated.
- **204**  No Shipment Planning result available.
- **400**  Invalid inputs were provided.
- **403**  Not authenticated / authorized via OAuth.

---

### Example CURL Request

```bash
curl --request POST \
     --url https://api.shipium.com/api/v1/deliveryexperience/shipmentPlanning \
     --header 'accept: application/json' \
     --header 'content-type: application/json'
```

### Response Codes

`200` `400` `403`
