---
title: "Run the carrier selection process on a existing partner shipment."
method: POST
path: "/api/v1/deliveryexperience/shipment/{shipiumShipmentId}/carrierSelection"
tags: ["carrier-selection"]
---

# Run the carrier selection process on a existing partner shipment.

`POST /api/v1/deliveryexperience/shipment/{shipiumShipmentId}/carrierSelection`

## Path parameters

- `shipiumShipmentId` string, required

## Request body

- CarrierSelectionCreate — Parameters used in the carrier selection create request.
  - `currencyCode` string, required — Currency in which all the rates for shipping carrier selection costs will be calculated in.
  - `shippedDateTime` string, date-time — Date the shipment is expected to leave the warehouse.
  - `packagingType` PackagingTypeParameters — Fields describing the physical properties of the package.
    - `packagingMaterial` 'box' | 'envelope' | 'flat_pack' | 'fedex_one_rate_envelope' | 'fedex_one_rate_pak' | 'fedex_one_rate_extra_small_box' | 'fedex_one_rate_small_box' | 'fedex_one_rate_medium_box' | 'fedex_one_rate_large_box' | 'fedex_one_rate_extra_large_box' | 'fedex_one_rate_tube' | 'fedex_ten_kg_box' | 'fedex_twenty_five_kg_box' | 'mailing_tube' | 'parcel_pallet' | 'small_tire' | 'large_tire' | 'usps_large_box' | 'usps_large_box_to_apo_fpo_dpo' | 'usps_medium_box' | 'usps_small_box' | 'usps_legal_envelope' | 'usps_envelope' | 'usps_padded_envelope' | 'ups_express_envelope' — The type of packaging used to create the package for the shipment.
    - `packagingSizeName` string — A custom name for the packaging.
    - `packagingTypeId` string — Either the Shipium or partner-provided packagingTypeId that was used for this package. When this value is present, the dimensions defined in the partner are used. When this value is absent, linearDimensions is required.
    - `linearDimensions` LinearDimensions — Dimensions describing the size of the packaging.
      - `linearUnit` 'in' | 'cm' — The unit that linear dimensions are provided in, either in for inches or cm for centimeters.
      - `length` number, float — The longest linear dimension (e.g. the longest side of a box or envelope).
      - `width` number, float — The second longest linear dimension (e.g. the second-longest side of a box of envelope.
      - `height` number, float — The least long linear dimension (e.g. the shortest side of a box or envelope. Note on envelopes: This height should represent the highest product you would reasonably put in this envelope before losing more than 10% of the length of the envelope in other dimensions.
    - `packagingWeight` Weight — The weight of this type of packaging empty.
      - `weightUnit` 'g' | 'kg' | 'oz' | 'lb' — The unit that weight values are provided in. g for grams kg for kilograms oz for ounces lb for pounds
      - `weight` number, float — The value of the weight.
  - `asOfDate` string, date-time — Date used to re-create a carrier selection as of a certain point in time. This parameter will prevent the use of caching for this request.
  - `carrierServiceMethodAllowList` string[] — A list of carrierServiceMethodId and/or carriers that should be considered for selection.
  - `ignoreRuleSets` boolean — When "true", rule sets will be ignored during carrier selection.
  - `includeEvaluatedServiceMethodsInResponse` boolean — Indicates if the partner passed in a field to expand carrier selection
  - `includeLineItemsInEvaluatedServiceMethods` boolean — When "true" a response will include line item information for the returned evaluated service methods, provided that includeEvaluatedServiceMethodsInResponse is also set to true.
  - `includeInjectionProfiles` boolean — When "true", service methods from the configured InjectionProfiles will be considered during carrier selection.
  - `injectionParameters` InjectionParameter[] — A list of Injection Profile and/or Injection Profile/Site tuples that should be considered during carrier selection. If an InjectionSite is specified, it must be accompanied by an InjectionProfile
    - `injectionProfileId` string — The shipium ID or the partner-provided ID of an InjectionProfile that should be considered during carrier selection.
    - `injectionSiteId` string — The shipium ID or the partner-provided ID of an InjectionSite that should be considered during carrier selection. If an injectionSiteId is specified, it must be accompanied by an injectionProfileId
  - `ignoreCarrierMinimumDimensions` boolean — When "true", the minimum dimensions of carriers will effectively be ignored when deciding if a carrier service method is eligible to be considered during costing.
  - `serviceMethodPoBoxAllowList` string[] — A list of serviceMethodIds that will be considered for USPS PO box delivery that otherwise would be filtered out as they don't support USPS PO box delivery for the shipment.

## Response `200`

CarrierSelection provided.

- CarrierSelection
  - `carrierSelectionId` string — Unique id of the carrier selection for later lookup.
  - `shipiumShipmentId` string — The unique identifier for this shipment.
  - `partnerShipmentId` string — The optional unique identifier that may be used for this shipment.
  - `shipiumTenantId` string — The shipium generated tenant ID. When present, this is used to indicate the tenant associated with the shipment.
  - `partnerTenantId` string — The partner provided tenant ID. When present, this is used to indicate the tenant associated with the shipment.
  - `costAdjustConfigId` string — If specified, this is the dynamic costing config applied for the carrier selection
  - `carrierDecision` CarrierSelectionDecision — Details of the carrier selection decision
    - `status` 'success' | 'uncosted' | 'no_decision' — Defines the result of the carrier selection call. Values returned will be success, or no_decision
    - `statusDetails` string — Details explaining the result status. Pertinent when the status is "no_decision".
    - `partnerId` string — Unique id of the partner.
    - `carrierAccountId` string — Unique id of the carrier account selected for shipping.
    - `serviceMethodUrn` string — Specific version of the service level of the shipping carrier selected
    - `serviceMethodIdentifier` string — The string used to identify the service method for this partner
    - `carrier` string — The carrier that was used for delivering the package to your customer.
    - `carrierServiceName` string — Name of the carrier service method selected.
    - `thirdPartyBilling` boolean — Indicates if the selected service method will be billed to a third party.
    - `includeEvaluatedServiceMethodsInResponse` boolean — Indicates if the partner passed in a field to expand carrier selection
    - `includeLineItemsInEvaluatedServiceMethods` boolean — When "true" a response will include line item information for the returned evaluated service methods, provided that includeEvaluatedServiceMethodsInResponse is also set to true.
    - `carrierEstimatedPriceDetails` CarrierSelectionPrice — Estimated cost of the carrier service selected.
      - `currencyCode` string — Currency which all price line items are stored in e.g. USD.
      - `shippingCost` number, float — Cost of shipment charged by the carrier.
      - `insuranceCost` number, float — Cost of insurance added to the shipment.
      - `accessorials` number, float — Costs added to the shipment outside the normal basics of dock to dock transportation such as special equipment required, lift gates, or non-commercial destinations.
      - `duty` number, float — Cost of duties added to the shipment.
      - `taxes` number, float — Cost of taxes added to the shipment
      - `totalCost` number, float — Total cost of the shipment
      - `adjustedLabelCost` number, float — Cost used for carrier selection adjusted based on limit minimums
      - `carrierCompareCost` number, float — Cost expected to be provided in the carrier response. not including custom adjustments or hidden surcharges
      - `carrierInvoiceCost` number, float — Expected cost that carrier will charge.
      - `operationalCost` number, float — Carrier invoice cost plus operational costs like injection line haul.
    - `serviceMethodName` string — Name of the carrier service method selected during the carrier selection process.
    - `carrierServiceMethodId` string — Maps to the unique internal Shipium ID which represents a carrier service method definition.
    - `ruleSetProcessingResultSummary` RuleSetProcessingResultSummary — Result of processing the applicable RuleSet if one was processed.
      - `result` 'selection_made' | 'no_selection' — Description of the result of the RuleSet processing.
      - `selectedCarrierServiceMethodIdentifiers` string[] — Ordered list of Service methods selecgted by the RuleSet processing if a selection was made.
      - `ruleMakingSelection` RuleIdentification — Rules that were active and in tenant scope but whose criteria did not match the shipment.
        - `ruleId` string
        - `ruleUrn` string
        - `name` string
        - `serviceMethodIdsAfterExecutingRule` string[]
        - `sequence` integer
        - `inactive` boolean
      - `rulesApplied` RuleIdentification[] — The Rule(s) that were applied in the order that they were executed.
        - `ruleId` string
        - `ruleUrn` string
        - `name` string
        - `serviceMethodIdsAfterExecutingRule` string[]
        - `sequence` integer
        - `inactive` boolean
      - `ruleSetUrn` string — Versioned identifier of the RuleSet processed.
      - `processingTimestamp` string, date-time — The timestamp at which the RuleSet was processed.
    - `effectiveShipDateTime` string, date-time — The earliest that a shipment can leave the FC/origin based on the shippedDateTime and the schedules for that FC/origin and the carriers.
    - `estimatedDeliveryDate` string, date-time — The date and time by when the package is estimated to be delivered to the customer in respect to a Desired Delivery Date.
    - `estimatedInjectionDateTime` string, date-time — The estimate date that the shipment will arrive at the injection site.
    - `carrierZoneId` string — The carrier zone that is being considered.
    - `injectionDetails` InjectionDetails — InjectionProfile and InjectionSite details
      - `requestInjectionProfileId` string — The partner can provide either partnerInjectionProfileId or shipiumInjectionProfileId in the request and this attribute records / indicates the injectionProfile identifier provided by the partner in the request.
      - `partnerInjectionProfileId` string — Unique to the partner asset ID that is provided by the partner to the injectionProfile.
      - `shipiumInjectionProfileId` string — InjectionProfile identifier.
      - `requestInjectionSiteId` string — The partner can provide either partnerInjectionSiteId or shipiumInjectionSiteId in the request and this attribute records / indicates the injectionSite identifier provided by the partner in the request.
      - `partnerInjectionSiteId` string — Unique to the partner asset ID that is provided by the partner to the injectionSite.
      - `shipiumInjectionSiteId` string — InjectionSite identifier
      - `injectionCostDetails` InjectionCostDetails — Injection cost details
        - `injectionLineItemRate` number, float — The amount of the rate modification
        - `injectionLineItemCurrencyCode` string — The currency that the rate is in.
        - `injectionRateModifier` InjectionRateModifier — The RateModifier to be applied if the service method is for Injection
          - `modifierType` 'flat' | 'percentage' — The type of the injection rate modifier.
          - `modifierValue` number, float — The value of the modification.
    - `effectiveDesiredDeliveryDate` string, date-time — The timestamp for the adjusted desired delivery date. This date includes all adjustments that Shipium has made to the requested desired delivery date. Shipium will use this dateTime for carrier selection. The timestamp must be a valid ISO 8601 timestamp.
    - `currencyCode` string — Currency in which all the rates for shipping carrier selection costs were calculated in.
    - `exddCompatibleFlag` boolean — Indicates if the confidence level of the TNT value used in the estimated delivery date calculation was above the threshold required for the service method to be considered for exact date delivery. This field is only set if the SDP ML model is the source of the TNT value - otherwise, this field will be null.
  - `carrierSelectionDateTime` string, date-time — ISO-8601 formatted date when the carrier selection decision was made.
  - `carrierSelectionExpiration` string, date-time — ISO-8601 formatted date defining the point in time when the carrier selection details expire and cannot be acted upon.
  - `laneMatch` LaneMatch — The matched lane for the carrier that was selected. This will be empty if nothing is configured for lanes.
    - `laneId` string — The laneId that was matched on and used.
    - `partnerLaneId` string — The lane sort match name that was configured on the lane.
  - `cancellationDateTime` string, date-time — The timestamp for when a carrier selection was cancelled. This field will default to null when the carrier selection is not cancelled. A carrier selection cannot be cancelled if it is associated with an active label
  - `currencyCode` string — Currency in which all the rates for shipping carrier selection costs were calculated in.

## Other responses

- `400` — Invalid inputs were provided.

---

[API](https://skmtc.net/shipium/apis/shipium-api.md) · [All operations](https://skmtc.net/shipium/apis/shipium-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/shipium/shipium-api/revisions/7ef5dbd6a025/schema)
