import {z} from 'zod' export type LinearDimensions = {linearUnit?: ('in' | 'cm') | undefined, length?: number | undefined, width?: number | undefined, height?: number | undefined}; export type Weight = {weightUnit?: ('g' | 'kg' | 'oz' | 'lb') | undefined, weight?: number | undefined}; export type PackagingTypeParameters = {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') | undefined, packagingSizeName?: string | undefined, packagingTypeId?: string | undefined, linearDimensions?: LinearDimensions | undefined, packagingWeight?: Weight | undefined}; export type PrinterlessLabelParameters = {type?: string | undefined, imageFormat?: string | undefined}; export type HoldAtLocation = {holdAtLocationId?: string | undefined, useHoldAtLocation?: boolean | undefined}; export type CarrierLabelCreate = {currencyCode?: string | undefined, labelFormats?: Array | undefined, printerlessParameters?: PrinterlessLabelParameters | undefined, includeLabelImagesInResponse?: boolean | undefined, customLabelEntries?: {[key: string]: string} | undefined, testMode?: boolean | undefined, eligibleForManifest?: boolean | undefined, contentDescription?: string | undefined, holdAtLocation?: HoldAtLocation | undefined}; export type AddressLineComponents = {streetName?: string | undefined, primaryAddressNumber?: string | undefined, secondaryAddressNumber?: string | undefined, district?: string | undefined, neighborhood?: string | undefined}; export type CSAddress = {name?: string | undefined, phoneNumber?: string | undefined, phoneNumberCountryCode?: string | undefined, emailAddress?: string | undefined, company?: string | undefined, street1?: string | undefined, street2?: string | undefined, city?: string | undefined, state?: string | undefined, countryCode: string, postalCode: string, addressType?: ('commercial' | 'residential') | undefined, addressLineComponents?: AddressLineComponents | undefined}; export type Contact = {contactName?: string | undefined, phoneNumber?: string | undefined, phoneNumberCountryCode?: string | undefined, email?: string | undefined}; export type ReturnLabelCreate = {partnerShipmentId?: string | undefined, returnToAddress?: CSAddress | undefined, returnToContactInfo?: Contact | undefined, fulfillmentContext?: string | undefined, inlineReturnReferenceIdentifier?: string | undefined, inlineReturnReferenceIdentifier2?: string | undefined, inlineReturnReferenceIdentifier3?: string | undefined, inlineReturnReferenceIdentifier4?: string | undefined, inlineReturnReferenceIdentifier5?: string | undefined, inlineReturnPartnerReferenceIdentifier?: string | undefined, inlineReturnPartnerReferenceIdentifier2?: string | undefined, saturdayDelivery?: boolean | undefined, returnPaymentType?: ('prepaid' | 'pay_on_use') | undefined}; export type DesiredDeliveryDateOptions = {exactDateDelivery?: boolean | undefined}; export type Tip = {type?: ('FIXED' | 'PERCENTAGE') | undefined, value?: number | undefined, currency?: string | undefined}; export type LastMileDeliveryOptions = {deliveryInstruction?: ('LEAVE_AT_DOOR' | 'MEET_AT_DOOR') | undefined, undeliverableInstruction?: ('LEAVE_AT_DOOR' | 'RETURN' | 'DESTROY') | undefined, tip?: Tip | undefined, tipForLabelCreate?: Tip | undefined, deliverableActionForLabelCreate?: ('RETURN' | 'LEAVE_AT_DOOR' | 'DISCARD' | 'MEET_AT_DOOR') | undefined, undeliverableActionForLabelCreate?: ('RETURN' | 'LEAVE_AT_DOOR' | 'DISCARD' | 'MEET_AT_DOOR') | undefined}; export type TimeWindow = {startWindow: string, endWindow: string, timeZone?: string | undefined}; export type ThirdPartyBillingCredentials = {accountNumber?: string | undefined, countryCode?: string | undefined, postalCode?: string | undefined}; export type ThirdPartyBillingAccounts = {carrierId: string, thirdPartyBillingCredentials: ThirdPartyBillingCredentials, billThirdPartyForShippingCost?: boolean | undefined, billThirdPartyDutiesAndTaxes?: boolean | undefined}; export type PayorAccountCredentials = {accountNumber?: string | undefined, accountCountryCode?: string | undefined, accountPostalCode?: string | undefined}; export type RegistrationInformation = {typeCode?: ('VAT' | 'EIN' | 'GST' | 'SSN' | 'EOR' | 'DUN' | 'FED' | 'STA' | 'CNP' | 'IE' | 'INN' | 'KPP' | 'OGR' | 'OKP' | 'MRN' | 'SDT' | 'FTZ' | 'DAN' | 'TAN' | 'DTF' | 'RGP' | 'DLI' | 'NID' | 'PAS' | 'MID' | 'IMS' | 'EIC') | undefined, registrationNumber?: string | undefined, issuerCountryCode?: string | undefined}; export type UspsInformation = {customerRegistrationId?: string | undefined, mailerId?: string | undefined, manifest?: string | undefined, permitNumber?: string | undefined, permitPostalCode?: string | undefined}; export type AdditionalCarrierSpecificInformation = {usps?: UspsInformation | undefined}; export type PayorAccounts = {accountType: 'consignee' | 'collect' | 'third_party' | 'recipient' | 'sender', carrierId?: string | undefined, payorAccountCredentials: PayorAccountCredentials, payorAccountAddress?: CSAddress | undefined, registrationInformation?: RegistrationInformation | undefined, additionalCarrierSpecificInformation?: AdditionalCarrierSpecificInformation | undefined, billForShippingCost?: boolean | undefined, billDutiesAndTaxes?: boolean | undefined}; export type PackShipShipmentParameters = {shipmentTags?: Array | undefined, currencyCode: string, partnerShipmentId?: string | undefined, shippedDateTime?: string | undefined, desiredDeliveryDate?: string | undefined, preferredCarrierDeliveryDateTime?: string | undefined, desiredDeliveryDateOptions?: DesiredDeliveryDateOptions | undefined, businessDaysOfTransit?: number | undefined, includePackagesArray?: boolean | undefined, ignoreUpgradeSpendLimits?: boolean | undefined, returnToAddress?: CSAddress | undefined, saturdayDelivery?: boolean | undefined, deliverySignatureOption?: ('None' | 'Signature' | 'ResidentSignature' | 'AdultSignature' | 'AdultResidentSignature' | 'Unknown') | undefined, lastMileDeliveryOptions?: LastMileDeliveryOptions | undefined, pickupWindow?: TimeWindow | undefined, deliveryWindow?: TimeWindow | undefined, deliveryNote?: string | undefined, referenceIdentifier?: string | undefined, referenceIdentifier2?: string | undefined, referenceIdentifier3?: string | undefined, referenceIdentifier4?: string | undefined, referenceIdentifier5?: string | undefined, partnerReferenceIdentifier?: string | undefined, partnerReferenceIdentifier2?: string | undefined, purchaseOrderIdentifier?: string | undefined, carrierProcessingId?: string | undefined, fulfillmentContext?: string | undefined, fulfillmentType?: ('customer' | 'at_large' | 'returns' | 'hundredweight' | 'reship' | 'unknown') | undefined, tenantId?: string | undefined, thirdPartyBillingSetId?: string | undefined, forceThirdPartyBilling?: boolean | undefined, fulfillmentContextIds?: Array | undefined, testMode?: boolean | undefined, thirdPartyBillingAccounts?: Array | undefined, payorAccounts?: Array | undefined}; export type InjectionParameter = {injectionProfileId?: string | undefined, injectionSiteId?: string | undefined}; export type PackShipCarrierSelectionOptions = {carrierServiceMethodAllowList?: Array | undefined, includeInjectionProfiles?: boolean | undefined, injectionParameters?: Array | undefined}; export type OrderItemReference = {orderItemReferenceIdentifier?: string | undefined, productId: string, quantity: number}; export type OrderSplitRuntimeParameters = {reasonCode?: ('customer_request' | 'item_size' | 'stock_not_available') | undefined, orderItemQuantities: Array}; export type PackShipActionParams = {packagingType?: PackagingTypeParameters | undefined, totalWeight?: Weight | undefined, labelParameters?: CarrierLabelCreate | undefined, inlineReturnsLabel?: ReturnLabelCreate | undefined, generateLabel?: boolean | undefined, shipmentParameters?: PackShipShipmentParameters | undefined, carrierSelectionOptions?: PackShipCarrierSelectionOptions | undefined, splitOrder?: boolean | undefined, splitReferenceId?: string | undefined, splitParameters?: OrderSplitRuntimeParameters | undefined}; export type CreateApiApiV1PackShipOrderOrderIdSubmitArgs = {orderId: string, tenantId?: string | undefined, body: PackShipActionParams}; export type CreateApiApiV1PackShipOrderOrderIdSubmitOptions = {baseUrl?: string | undefined, oauth2Scheme?: string | undefined, fetch?: typeof fetch | undefined}; export const orderIds = z.object({shipiumOrderId: z.string(), partnerOrderId: z.string().optional()}); export const shiptimeLabelDimensions = z.object({height: z.number().optional(), width: z.number().optional(), linearUnits: z.string().optional()}); export const shiptimeLabelProperties = z.object({height: z.number(), width: z.number(), linearUnits: z.string(), dpi: z.number().int(), labelOrientation: z.string(), nonZplLabelDimensions: shiptimeLabelDimensions.optional()}); export const carrierLabelImage = z.object({imageEncoding: z.string().optional(), imageContents: z.string().optional(), imageFormat: z.string().optional()}); export const printerlessInfo = z.object({type: z.string().optional(), valueRepresented: z.string().optional()}); export const carrierLabelInfo = z.object({labelExpiration: z.string().optional(), labelFormat: z.string().optional(), labelProperties: shiptimeLabelProperties.optional(), labelImage: carrierLabelImage.optional(), labelUrl: z.string().optional(), carrierTrackingId: z.string().optional(), carrierTrackingLink: z.string().optional(), packageReferenceIdentifier: z.string().optional(), shipiumPackageReferenceId: z.string().optional(), packageScannableId: z.string().optional(), carrierShipmentId: z.string().optional(), printerlessInfo: printerlessInfo.optional()}); export const documentImage = z.object({documentEncoding: z.string().optional(), documentContents: z.string().optional()}); export const internationalDocumentInfo = z.object({documentType: z.enum(["commercial_invoice", "electronic_export_information", "ps_2976", "air_waybill", "multiple", "unknown"]).optional(), documentExpiration: z.string().optional(), documentFormat: z.string().optional(), documentImage: documentImage.optional(), electronicallySubmitted: z.boolean().optional(), packageReferenceIdentifier: z.string().optional()}); export const hazardousMaterialsDocumentInfo = z.object({documentType: z.enum(["OP_900LG", "OP_900LL"]).optional(), documentExpiration: z.string().optional(), documentFormat: z.string().optional(), documentImage: documentImage.optional(), electronicallySubmitted: z.boolean().optional(), packageReferenceIdentifier: z.string().optional()}); export const inlineReturnsLabel = z.object({shipiumShipmentId: z.string().optional(), carrierSelectionId: z.string().optional(), shipiumLabelId: z.string().optional(), carrier: z.string().optional(), carrierServiceName: z.string().optional(), serviceMethodName: z.string().optional(), carrierServiceMethodId: z.string().optional(), documents: z.array(carrierLabelInfo).optional(), internationalDocuments: z.array(internationalDocumentInfo).optional(), hazardousMaterialsDocuments: z.array(hazardousMaterialsDocumentInfo).optional(), failureReason: z.string().optional()}); export const customerForwardLabel = z.object({partnerShipmentId: z.string().optional(), baseShipiumShipmentId: z.string().optional(), shipiumShipmentId: z.string().optional(), carrierSelectionId: z.string().optional(), shipiumLabelId: z.string().optional(), documents: z.array(carrierLabelInfo).optional(), internationalDocuments: z.array(internationalDocumentInfo).optional(), hazardousMaterialsDocuments: z.array(hazardousMaterialsDocumentInfo).optional(), failureReason: z.string().optional(), shipment_type: z.enum(["OUTBOUND", "FORWARD", "RETURN"]).optional()}); export const desiredDeliveryDateOptions = z.object({exactDateDelivery: z.boolean().optional()}); export const hazmatInfo = z.object({category: z.enum(["defined", "aerosols_flammable", "contains_lithium_ion", "packaged_lithium_ion", "lithium_ion_battery_only", "contains_lithium_metal", "packaged_lithium_metal", "lithium_metal_battery_only", "dry_ice"]), quantity: z.number(), quantityType: z.enum(["gross", "net"]), quantityUnits: z.enum(["g", "kg", "lb", "oz", "ml", "l", "gal"]), containerType: z.enum(["fiberboard_box", "wooden_box", "plastic_jerrican", "metal_box", "steel_drum", "other", "plastic_box", "plastic_drum", "styrofoam_box", "cylinder", "envirotainer", "plywood_box", "aluminum_drum", "aluminum_cylinder", "plastic_pail", "plywood_drum", "fiber_drum", "steel_jerrican", "aluminum_jerrican", "steel_box", "carton", "aluminum_box"]), hazmatId: z.string().optional(), properShippingName: z.string().optional(), packingGroup: z.enum(["I", "II", "III"]).optional(), transportMode: z.enum(["ground", "passenger_and_cargo_aircraft", "cargo_aircraft_only"]).optional(), packingInstructionCode: z.string().optional(), hazardClass: z.enum(["class_1_explosive", "class_2_flammable_gas", "class_3_flammable_liquid", "class_4_flammable_solid", "class_5_organic_peroxide", "class_6_poisonous_material", "class_7_radioactive", "class_8_corrosive_material", "class_9_miscellaneous", "forbidden", "other"]).optional(), subsidiaryClasses: z.array(z.string()).optional(), numberOfInnerPackagings: z.number().int().optional(), innerPackagingType: z.string().optional(), outerPackagingType: z.string().optional(), shipperDeclarationStatement: z.enum(["FDG", "LQ_air", "EQ", "small_battery_air", "small_battery_ground", "cargo_aircraft_only"]).optional(), wattHours: z.number().optional(), lithiumContent: z.number().optional(), numberOfCells: z.number().int().optional(), numberOfBatteries: z.number().int().optional(), batteryConfiguration: z.enum(["contained_in_equipment", "packed_with_equipment", "standalone"]).optional()}); export const weight = z.object({weightUnit: z.enum(["g", "kg", "oz", "lb"]).optional(), weight: z.number().optional()}); export const orderItem = z.object({orderItemReferenceIdentifier: z.string().optional(), shipiumOrderId: z.string().optional(), partnerOrderId: z.string().optional(), hazmat: z.boolean().optional(), hazmatInfo: hazmatInfo.optional(), productTaxCode: z.string().optional(), nmfcCode: z.string().optional(), nmfcFreightClass: z.string().optional(), deliveryEstimateId: z.string().optional(), productId: z.string(), quantity: z.number().int(), productDetails: z.array(z.string()).optional(), itemWeight: weight.optional(), productDescription: z.string().optional(), serialNumbers: z.array(z.string()).optional()}); export const linearDimensions = z.object({linearUnit: z.enum(["in", "cm"]).optional(), length: z.number().optional(), width: z.number().optional(), height: z.number().optional()}); export const packagingType = z.object({packagingMaterial: z.enum(["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"]).optional(), packagingSizeName: z.string().optional(), shipiumPackagingTypeId: z.string().optional(), partnerPackagingTypeId: z.string().optional(), requestPackagingTypeId: z.string().optional(), linearDimensions: linearDimensions.optional(), packagingWeight: weight.optional()}); export const declaredValue = z.object({declaredValue: z.number().optional(), currencyCode: z.string().optional()}); export const multiParcelShipmentPackage = z.object({shipiumPackageReferenceId: z.string(), packageReferenceIdentifier: z.string(), orderItemQuantities: z.array(orderItem), packagingType: packagingType.optional(), totalWeight: weight.optional(), totalDeclaredValue: declaredValue.optional(), deliveredDateTime: z.string().optional()}); export const addressLineComponents = z.object({streetName: z.string().optional(), primaryAddressNumber: z.string().optional(), secondaryAddressNumber: z.string().optional(), district: z.string().optional(), neighborhood: z.string().optional()}); export const cSAddress = z.object({name: z.string().optional(), phoneNumber: z.string().optional(), phoneNumberCountryCode: z.string().optional(), emailAddress: z.string().optional(), company: z.string().optional(), street1: z.string().optional(), street2: z.string().optional(), city: z.string().optional(), state: z.string().optional(), countryCode: z.string(), postalCode: z.string(), addressType: z.enum(["commercial", "residential"]).optional(), addressLineComponents: addressLineComponents.optional()}); export const injectionSummary = z.object({requestInjectionProfileId: z.string().optional(), partnerInjectionProfileId: z.string().optional(), shipiumInjectionProfileId: z.string().optional(), requestInjectionSiteId: z.string().optional(), partnerInjectionSiteId: z.string().optional(), shipiumInjectionSiteId: z.string().optional()}); export const cubicVolume = z.object({cubicVolumeUnit: z.enum(["in", "ft", "cm", "m"]).optional(), cubicVolume: z.number().optional()}); export const laneMatch = z.object({laneId: z.string().optional(), partnerLaneId: z.string().optional()}); export const injectionRateModifier = z.object({modifierType: z.enum(["flat", "percentage"]).optional(), modifierValue: z.number().optional()}); export const injectionCostDetails = z.object({injectionLineItemRate: z.number().optional(), injectionLineItemCurrencyCode: z.string().optional(), injectionRateModifier: injectionRateModifier.optional()}); export const injectionDetails = z.object({requestInjectionProfileId: z.string().optional(), partnerInjectionProfileId: z.string().optional(), shipiumInjectionProfileId: z.string().optional(), requestInjectionSiteId: z.string().optional(), partnerInjectionSiteId: z.string().optional(), shipiumInjectionSiteId: z.string().optional(), injectionCostDetails: injectionCostDetails.optional()}); export const rateLineItem = z.object({name: z.string(), rate: z.number(), carrierSurchargeId: z.string().optional(), surchargeType: z.enum(["additional_handling_weight", "additional_handling_volume", "additional_handling_length", "additional_handling_extra_length", "additional_handling_width", "additional_handling_packaging", "alaska_delivery_commercial_air", "alaska_delivery_commercial_ground", "alaska_delivery_residential_air", "alaska_delivery_residential_ground", "base", "delivery_commercial_air", "delivery_commercial_ground", "delivery_residential_air", "delivery_residential_ground", "extended_delivery_commercial_air", "extended_delivery_commercial_ground", "extended_delivery_residential_air", "extended_delivery_residential_ground", "fuel_air_domestic", "fuel_air_international_export", "fuel_air_international_import", "fuel_ground", "hawaii_delivery_commercial_air", "hawaii_delivery_commercial_ground", "hawaii_delivery_residential_air", "hawaii_delivery_residential_ground", "hazmat", "incentive", "international_delivery_area", "international_extended_delivery_area", "large_package_commercial", "large_package_residential", "peak", "peak_additional_handling", "peak_residential_delivery_air", "peak_residential_delivery_ground", "peak_large_package", "remote_delivery_commercial_air", "remote_delivery_commercial_ground", "remote_delivery_residential_air", "remote_delivery_residential_ground", "residential_air", "residential_ground", "saturday_delivery", "signature", "signature_resident", "signature_adult", "signature_adult_resident", "surcharge", "zone_weight"]).optional(), lineItemType: z.string().optional(), hiddenFromCarrierCompare: z.boolean().optional(), hiddenFromInvoice: z.boolean().optional(), hiddenFromOperational: z.boolean().optional()}); export const carrierSelectionExpansion = z.object({carrier: z.string().optional(), carrierServiceMethodId: z.string().optional(), serviceMethodName: z.string().optional(), carrierAccountId: z.string().optional(), totalCost: z.number().optional(), estimatedDeliveryDate: z.string().optional(), injectionDetails: injectionDetails.optional(), rateCurrency: z.string().optional(), lineItems: z.array(rateLineItem).optional(), estimatedDeliveryDateLocal: z.string().optional()}); export const carrierSelectionSummary = z.object({status: z.enum(["success", "uncosted", "no_decision"]).optional(), statusDetails: z.string().optional(), carrierSelectionId: z.string().optional(), shipiumShipmentId: z.string().optional(), partnerShipmentId: z.string().optional(), partnerId: z.string().optional(), carrierAccountId: z.string().optional(), serviceMethodUrn: z.string().optional(), serviceMethodIdentifier: z.string().optional(), carrier: z.string().optional(), carrierServiceMethodId: z.string().optional(), serviceMethodName: z.string().optional(), costAdjustConfigId: z.string().optional(), totalCost: z.number().optional(), carrierCompareCost: z.number().optional(), carrierInvoiceCost: z.number().optional(), operationalCost: z.number().optional(), thirdPartyBilling: z.boolean().optional(), carrierSelectionDateTime: z.string().optional(), injectionDetails: injectionSummary.optional(), carrierZoneId: z.string().optional(), calculatedBillableWeight: weight.optional(), calculatedBillableCubicVolume: cubicVolume.optional(), laneMatch: laneMatch.optional(), evaluatedServiceMethods: z.array(carrierSelectionExpansion).optional(), cancellationDateTime: z.string().optional(), effectiveShipDateTime: z.string().optional(), currencyCode: z.string().optional()}); export const trackingEvent = z.object({deliveryStep: z.enum(["InfoReceived", "InTransit", "OutForDelivery", "Delivered", "Exception", "Unknown"]).optional(), shipmentStatus: z.enum(["InfoReceived", "PickedUp", "ArrivedCarrierFacility", "DepartedCarrierFacility", "InTransit", "Hold", "OutForDelivery", "Delivered", "Exception", "Unknown"]).optional(), statusMessage: z.string().optional(), eventDateTime: z.string().optional(), eventCity: z.string().optional(), eventRegion: z.string().optional(), eventPostalCode: z.string().optional(), eventCountry: z.string().optional()}); export const trackingInfo = z.object({carrier: z.string().optional(), trackingId: z.string().optional(), shippedDateTime: z.string().optional(), deliveredDateTime: z.string().optional(), currentStatus: trackingEvent.optional(), events: z.array(trackingEvent).optional()}); export const carrierLabel = z.object({shipiumShipmentId: z.string().optional(), partnerShipmentId: z.string().optional(), carrierSelectionId: z.string().optional(), shipiumTenantId: z.string().optional(), partnerTenantId: z.string().optional(), shipiumLabelId: z.string().optional(), eligibleForManifest: z.boolean().optional(), partnerManifestId: z.string().optional(), status: z.enum(["success", "failure", "voided", "failover", "generated", "imported", "label_created", "manifesting", "manifested", "manifest_failure", "not_set", "carrier_selection_failure"]).optional(), statusDetails: z.string().optional(), effectiveShipDateTime: z.string().optional(), estimatedDeliveryDate: z.string().optional(), estimatedInjectionDateTime: z.string().optional(), labelCreationDateTime: z.string().optional(), cancellationDateTime: z.string().optional(), manifestDateTime: z.string().optional(), serviceMethodIdentifier: z.string().optional(), serviceMethodUrn: z.string().optional(), carrier: z.string().optional(), carrierServiceName: z.string().optional(), serviceMethodName: z.string().optional(), carrierServiceMethodId: z.string().optional(), carrierShipmentId: z.string().optional(), carrierTrackingId: z.string().optional(), carrierTrackingLink: z.string().optional(), customLabelEntries: z.record(z.string(), z.string()).optional(), shipiumTrackingId: z.string().optional(), carrierGroupId: z.string().optional(), packageScannableId: z.string().optional(), partnerThirdPartyBillingAccountId: z.string().optional(), shipiumThirdPartyBillingAccountId: z.string().optional(), thirdPartyBillingForShippingCosts: z.boolean().optional(), thirdPartyBillingForDutiesAndTaxes: z.boolean().optional(), carrierLabelCurrencyCode: z.string().optional(), carrierLabelPrice: z.number().optional(), estimatedLabelCost: z.number().optional(), billableWeight: weight.optional(), billableCubicVolume: cubicVolume.optional(), documents: z.array(carrierLabelInfo).optional(), internationalDocuments: z.array(internationalDocumentInfo).optional(), hazardousMaterialsDocuments: z.array(hazardousMaterialsDocumentInfo).optional(), fulfilledByCarrier: z.string().optional(), fulfilledByServiceMethod: z.string().optional(), fulfilledByCarrierTrackingId: z.string().optional(), laneMatch: laneMatch.optional(), labelFailoverOccurred: z.boolean().optional(), trackingInfo: trackingInfo.optional(), testMode: z.boolean().optional(), failureType: z.string().optional(), multiParcel: z.boolean().optional()}); export const invoicePrePaidAmount = z.object({value: z.number().optional(), currencyCode: z.string().optional()}); export const windsorFrameworkInfo = z.object({atRisk: z.boolean().optional()}); export const europeanUnionInfo = z.object({vendorIossNumber: z.string().optional(), vendorIossAddress: cSAddress.optional(), windsorFramework: windsorFrameworkInfo.optional()}); export const exportReturnInfo = z.object({originalExportDate: z.string().optional(), originalExportTrackingId: z.string().optional(), originalOutboundCarrier: z.string().optional()}); export const electronicExportInformation = z.object({exportDate: z.string().optional(), pointOfOrigin: z.string().optional()}); export const standardizedProductId = z.object({type: z.enum(["GTIN", "EAN", "UPC", "ISBN", "unknown"]).optional(), value: z.string().optional()}); export const scheduleBInformation = z.object({scheduleBNumber: z.string(), scheduleBQuantity: z.number().int(), scheduleBUnitOfMeasurement: z.enum(["barrels", "carat", "content_kilogram", "square_centimeter", "content_ton", "curie", "clean_yield_kilogram", "dozen", "dozen_pieces", "dozen_pairs", "fiber_meter", "gross_container", "gram", "gross", "hundred", "kilogram", "cubic_kilometer", "kilogram_total_sugars", "liter", "meter", "square_meter", "cubic_meter", "millicurie", "number", "pieces", "proof_liter", "pack", "pairs", "running_bales", "square", "ton", "thousand", "no_quantity_required", "unknown"])}); export const exportLicense = z.object({licenseNumber: z.string(), licenseLineValue: z.number().int(), licenseExpiration: z.string()}); export const exportLicenseInformation = z.object({licenseType: z.string(), licenseExemptionCode: z.string().optional(), exportLicense: exportLicense.optional()}); export const electronicExportCommodityInformation = z.object({exportType: z.enum(["domestic", "foreign", "unknown"]), exportInformationCode: z.string(), scheduleBInformation: scheduleBInformation, eccnNumber: z.string(), exportLicenseInformation: exportLicenseInformation}); export const cpscCertificateOfCompliance = z.object({filingMode: z.enum(["FULL", "REFERENCE"]), cpscProductId: z.string().optional(), applicableCpscRules: z.array(z.string()).optional(), dateOfManufacture: z.string().optional(), manufacturerName: z.string().optional(), manufacturerAddress: cSAddress.optional(), lastComplianceTestingDate: z.string().optional(), testingLabName: z.string().optional(), testingLabAddress: cSAddress.optional(), testingLabContactInfo: z.string().optional(), importerRecordKeeperContact: z.string().optional(), registryProductId: z.string().optional(), registryVersionId: z.string().optional(), registryCertifierId: z.string().optional()}); export const customsItemData = z.object({customsValue: z.number().optional(), customsValueCurrency: z.string().optional(), commodityDescription: z.string().min(3).optional(), countryOfManufacture: z.string().optional(), customsWeight: weight.optional(), quantity: z.number().int().optional(), productId: z.string().optional(), standardizedProductIds: z.array(standardizedProductId).optional(), manufacturerProductId: z.string().optional(), quantityUnitOfMeasurement: z.enum(["bag", "barrel", "box", "case_of_goods", "container", "crate", "cylinder", "envelope", "pallet", "piece", "roll", "tube", "unknown"]).optional(), harmonizedTariffNumber: z.string().optional(), importHarmonizedTariffNumber: z.string().optional(), commodityPartNumber: z.string().optional(), marksAndNumbers: z.string().optional(), electronicExportCommodityInformation: electronicExportCommodityInformation.optional(), b13AFilingOption: z.enum(["NOT_REQUIRED", "MANUALLY_ATTACHED", "FILED_ELECTRONICALLY", "SUMMARY_REPORTING", "CARRIER_TO_STAMP", "UNKNOWN"]).optional(), exportComplianceStatement: z.string().optional(), cpscCertificateOfCompliance: cpscCertificateOfCompliance.optional()}); export const requestTaxIdentificationNumber = z.object({number: z.string().optional(), tinType: z.enum(["PERSONAL_NATIONAL", "PERSONAL_STATE", "FEDERAL", "BUSINESS_NATIONAL", "BUSINESS_STATE", "BUSINESS_UNION"]).optional()}); export const importerOfRecord = z.object({importerAddress: cSAddress.optional(), accountNumber: z.string().optional(), taxIdentificationNumbers: z.array(requestTaxIdentificationNumber).optional()}); export const broker = z.object({brokerAddress: cSAddress.optional(), accountNumber: z.string().optional(), taxIdentificationNumbers: z.array(requestTaxIdentificationNumber).optional(), deliveryInstructions: z.string().optional(), type: z.enum(["IMPORT", "EXPORT"]).optional()}); export const soldTo = z.object({address: cSAddress.optional(), accountNumber: z.string().optional(), taxIdentificationNumbers: z.array(requestTaxIdentificationNumber).optional()}); export const requestCustomsInfo = z.object({totalCustomsValue: z.number().optional(), totalCustomsValueCurrency: z.string().optional(), customsDescription: z.string().optional(), reasonForExport: z.enum(["sale", "gift", "sample", "returns", "personal_effects", "unknown"]).optional(), businessIndicator: z.enum(["B2C", "B2B", "unknown"]).optional(), invoiceDate: z.string().optional(), invoiceNumber: z.string().optional(), invoicePrePaidAmount: invoicePrePaidAmount.optional(), europeanUnionInfo: europeanUnionInfo.optional(), exportReturnInfo: exportReturnInfo.optional(), ultimateConsigneeAddress: cSAddress.optional(), ultimateConsigneeType: z.enum(["direct_consumer", "government_entity", "reseller", "unknown"]).optional(), aesInternalTransactionNumber: z.string().optional(), electronicExportInformation: electronicExportInformation.optional(), b13AFilingOption: z.enum(["NOT_REQUIRED", "MANUALLY_ATTACHED", "FILED_ELECTRONICALLY", "SUMMARY_REPORTING", "CARRIER_TO_STAMP", "UNKNOWN"]).optional(), exportComplianceStatement: z.string().optional(), permitNumber: z.string().optional(), customsItems: z.array(customsItemData).optional(), incoterm: z.enum(["DDP", "DDU", "DAP", "DPU", "FCA", "CPT", "FOB", "EXW"]).optional(), declarationStatement: z.string().optional(), taxIdentificationNumber: z.string().optional(), importerOfRecord: importerOfRecord.optional(), brokers: z.array(broker).optional(), soldTo: soldTo.optional()}); export const tip = z.object({type: z.enum(["FIXED", "PERCENTAGE"]).optional(), value: z.number().optional(), currency: z.string().optional()}); export const lastMileDeliveryOptions = z.object({deliveryInstruction: z.enum(["LEAVE_AT_DOOR", "MEET_AT_DOOR"]).optional(), undeliverableInstruction: z.enum(["LEAVE_AT_DOOR", "RETURN", "DESTROY"]).optional(), tip: tip.optional(), tipForLabelCreate: tip.optional(), deliverableActionForLabelCreate: z.enum(["RETURN", "LEAVE_AT_DOOR", "DISCARD", "MEET_AT_DOOR"]).optional(), undeliverableActionForLabelCreate: z.enum(["RETURN", "LEAVE_AT_DOOR", "DISCARD", "MEET_AT_DOOR"]).optional()}); export const timeWindow = z.object({startWindow: z.string(), endWindow: z.string(), timeZone: z.string().optional()}); export const emergencyResponseInfo = z.object({phoneNumber: z.string().optional(), contactName: z.string().optional(), contractNumber: z.string().optional()}); export const shipmentRequestedDocument = z.object({documentBlueprintId: z.string().optional(), partnerProvidedDocumentBlueprintId: z.string().optional(), documentFormat: z.string().optional(), documentImage: documentImage.optional(), errorMessage: z.string().optional()}); export const thirdPartyBillingCredentials = z.object({accountNumber: z.string().optional(), countryCode: z.string().optional(), postalCode: z.string().optional()}); export const thirdPartyBillingAccounts = z.object({carrierId: z.string(), thirdPartyBillingCredentials: thirdPartyBillingCredentials, billThirdPartyForShippingCost: z.boolean().optional(), billThirdPartyDutiesAndTaxes: z.boolean().optional()}); export const payorAccountCredentials = z.object({accountNumber: z.string().optional(), accountCountryCode: z.string().optional(), accountPostalCode: z.string().optional()}); export const registrationInformation = z.object({typeCode: z.enum(["VAT", "EIN", "GST", "SSN", "EOR", "DUN", "FED", "STA", "CNP", "IE", "INN", "KPP", "OGR", "OKP", "MRN", "SDT", "FTZ", "DAN", "TAN", "DTF", "RGP", "DLI", "NID", "PAS", "MID", "IMS", "EIC"]).optional(), registrationNumber: z.string().optional(), issuerCountryCode: z.string().optional()}); export const uspsInformation = z.object({customerRegistrationId: z.string().optional(), mailerId: z.string().optional(), manifest: z.string().optional(), permitNumber: z.string().optional(), permitPostalCode: z.string().optional()}); export const additionalCarrierSpecificInformation = z.object({usps: uspsInformation.optional()}); export const payorAccounts = z.object({accountType: z.enum(["consignee", "collect", "third_party", "recipient", "sender"]), carrierId: z.string().optional(), payorAccountCredentials: payorAccountCredentials, payorAccountAddress: cSAddress.optional(), registrationInformation: registrationInformation.optional(), additionalCarrierSpecificInformation: additionalCarrierSpecificInformation.optional(), billForShippingCost: z.boolean().optional(), billDutiesAndTaxes: z.boolean().optional()}); export const configurationOverrides = z.object({maximumAdditionalDaysToHold: z.number().int().optional(), labelToDockDoorHours: z.number().optional()}); export const shipmentResponse = z.object({shipiumShipmentId: z.string(), partnerShipmentId: z.string().optional(), shipiumBulkProcessingIds: z.array(z.string()).optional(), orderIds: z.array(orderIds).optional(), orderedDateTime: z.string().optional(), shippedDateTime: z.string().optional(), rawDesiredDeliveryDate: z.string().optional(), preferredCarrierDeliveryDateTime: z.string().optional(), returnsLabel: inlineReturnsLabel.optional(), customerForwardLabels: z.array(customerForwardLabel).optional(), desiredDeliveryDateOptions: desiredDeliveryDateOptions.optional(), businessDaysOfTransit: z.number().int().optional(), originTimezoneId: z.string().optional(), destinationTimezoneId: z.string().optional(), ignoreUpgradeSpendLimits: z.boolean().optional(), deliveredDateTime: z.string().optional(), cancellationDateTime: z.string().optional(), fulfillmentType: z.enum(["customer", "at_large", "returns", "hundredweight", "reship", "unknown"]).optional(), carrierName: z.string().optional(), carrierTrackingId: z.string().optional(), packages: z.array(multiParcelShipmentPackage).optional(), orderItemQuantities: z.array(orderItem), destinationAddress: cSAddress, shipOption: z.string().optional(), shipFromAddress: cSAddress, returnToAddress: cSAddress.optional(), injectionAddress: cSAddress.optional(), fulfillmentCenterId: z.string().optional(), fulfillmentContextId: z.string().optional(), partnerFulfillmentContextId: z.string().optional(), requestFulfillmentContextIds: z.array(z.string()).optional(), packagingType: packagingType.optional(), totalWeight: weight.optional(), shipmentTags: z.array(z.string()).optional(), carrierSelection: carrierSelectionSummary.optional(), carrierLabel: carrierLabel.optional(), customsInfo: requestCustomsInfo.optional(), totalDeclaredValue: declaredValue.optional(), saturdayDelivery: z.boolean().optional(), desktopDelivery: z.boolean().optional(), deliverySignatureOption: z.enum(["None", "Signature", "ResidentSignature", "AdultSignature", "AdultResidentSignature", "Unknown"]).optional(), lastMileDeliveryOptions: lastMileDeliveryOptions.optional(), deliveryWindow: timeWindow.optional(), pickupWindow: timeWindow.optional(), deliveryNote: z.string().optional(), requestThirdPartyBillingSetId: z.string().optional(), shipiumThirdPartyBillingSetId: z.string().optional(), partnerThirdPartyBillingSetId: z.string().optional(), forceThirdPartyBilling: z.boolean().optional(), referenceIdentifier: z.string().optional(), referenceIdentifier2: z.string().optional(), referenceIdentifier3: z.string().optional(), referenceIdentifier4: z.string().optional(), referenceIdentifier5: z.string().optional(), packageReferenceIdentifier: z.string().optional(), purchaseOrderIdentifier: z.string().optional(), partnerReferenceIdentifier: z.string().optional(), partnerReferenceIdentifier2: z.string().optional(), carrierProcessingId: z.string().optional(), fulfillmentContext: z.string().optional(), requestTenantId: z.string().optional(), shipiumTenantId: z.string().optional(), partnerTenantId: z.string().optional(), createdWithVersion: z.enum(["v1", "v2"]).optional(), shipmentProperties: z.array(z.string()).optional(), testMode: z.boolean().optional(), orderSourceName: z.string().optional(), emergencyResponseInfo: emergencyResponseInfo.optional(), shipmentRequestedDocuments: z.array(shipmentRequestedDocument).optional(), thirdPartyBillingAccounts: z.array(thirdPartyBillingAccounts).optional(), payorAccounts: z.array(payorAccounts).optional(), configurationOverrides: configurationOverrides.optional(), endorsementType: z.enum(["AddressServiceRequested", "ForwardingServiceRequested", "ChangeServiceRequested", "ReturnServiceRequested", "CarrierLeaveIfNoResponse"]).optional(), useShipFromAddressInRequest: z.boolean().optional(), desiredDeliveryDateLocal: z.string().optional(), multiParcel: z.boolean().optional(), estimatedDeliveryDateLocal: z.string().optional(), missingRequiredLabelFields: z.array(z.string()).optional(), desiredDeliveryDate: z.string().optional(), effectiveShipDateTime: z.string().optional(), estimatedDeliveryDate: z.string().optional()}); export const validateResponse = async ( schema: { readonly '~standard': { readonly validate: (value: unknown) => ({ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }) | Promise<{ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }> } }, value: unknown ): Promise => { const result = await schema['~standard'].validate(value) if (result.issues !== undefined) { const detail = result.issues .map(({ message, path }) => path?.length ? `${path.map((segment) => String(typeof segment === 'object' ? segment.key : segment)).join('.')}: ${message}` : message ) .join('; ') throw new Error(`Response does not match the schema: ${detail}`, { cause: { issues: result.issues } }) } return result.value }; /** * Pack and ship order. * * POST /api/v1/packShip/order/{orderId}/submit */ export const createApiApiV1PackShipOrderOrderIdSubmit = async (args: CreateApiApiV1PackShipOrderOrderIdSubmitArgs, options?: CreateApiApiV1PackShipOrderOrderIdSubmitOptions) => { const {baseUrl = "https://api.shipium.com", fetch: fetchFn = fetch, oauth2Scheme} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('content-type', "application/json") headers.set('accept', "application/json") if (args.tenantId != null) query.append("tenantId", String(args.tenantId)) if (oauth2Scheme !== undefined) headers.set('authorization', `Bearer ${oauth2Scheme}`) const url = `${baseUrl.replace(/\/+$/, '')}/api/v1/packShip/order/${encodeURIComponent(String(args.orderId))}/submit${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "POST", headers, body: JSON.stringify(args.body)}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return validateResponse(shipmentResponse, await res.json()) };