Shipment Models

Shipment models for ACPortal API.

class ab.api.models.shipments.ShipmentParams(*, franchiseeId=None, providerId=None, proNumber=None)[source]

Bases: RequestModel

Query parameters for GET /shipment.

Parameters:
  • franchiseeId (str | None)

  • providerId (str | None)

  • proNumber (str | None)

franchisee_id: str | None
provider_id: str | None
pro_number: str | None
model_config = {'alias_generator': <function _to_camel>, 'extra': 'forbid', 'populate_by_name': True, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ab.api.models.shipments.RateQuotesParams(*, ShipOutDate=None, RatesSources=None, SettingsKey=None)[source]

Bases: RequestModel

Query parameters for GET rate quotes.

Parameters:
  • ShipOutDate (str | None)

  • RatesSources (str | None)

  • SettingsKey (str | None)

ship_out_date: str | None
rates_sources: str | None
settings_key: str | None
model_config = {'alias_generator': <function _to_camel>, 'extra': 'forbid', 'populate_by_name': True, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ab.api.models.shipments.ShipmentDocumentParams(*, franchiseeId=None)[source]

Bases: RequestModel

Query parameters for GET shipment document.

Parameters:

franchiseeId (str | None)

franchisee_id: str | None
model_config = {'alias_generator': <function _to_camel>, 'extra': 'forbid', 'populate_by_name': True, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ab.api.models.shipments.RateQuote(*, carrierName=None, serviceType=None, totalCharge=None, transitDays=None, accessorialCharges=None, providerOptionIndex=None, errors=None, rates=None, ratesKey=None, requestSnapshot=None, carrierCode=None, usedCarrierAccountInfo=None, serviceDays=None, price=None, accessorials=None, **extra_data)[source]

Bases: ResponseModel

Rate quote — GET /job/{jobDisplayId}/shipment/ratequotes.

Parameters:
  • carrierName (str | None)

  • serviceType (str | None)

  • totalCharge (float | None)

  • transitDays (int | None)

  • accessorialCharges (List[dict] | None)

  • providerOptionIndex (int | None)

  • errors (list | None)

  • rates (list | None)

  • ratesKey (str | None)

  • requestSnapshot (dict | None)

  • carrierCode (str | None)

  • usedCarrierAccountInfo (dict | None)

  • serviceDays (int | None)

  • price (float | None)

  • accessorials (list | None)

  • extra_data (Any)

carrier_name: str | None
service_type: str | None
total_charge: float | None
transit_days: int | None
accessorial_charges: List[dict] | None
provider_option_index: int | None
errors: list | None
rates: list | None
rates_key: str | None
request_snapshot: dict | None
carrier_code: str | None
used_carrier_account_info: dict | None
service_days: int | None
price: float | None
accessorials: list | None
model_config = {'alias_generator': <function _to_camel>, 'extra': 'allow', 'populate_by_name': True, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ab.api.models.shipments.ShipmentOriginDestination(*, origin=None, destination=None, **extra_data)[source]

Bases: ResponseModel

Origin/destination — GET /job/{jobDisplayId}/shipment/origindestination.

Parameters:
  • origin (dict | None)

  • destination (dict | None)

  • extra_data (Any)

origin: dict | None
destination: dict | None
model_config = {'alias_generator': <function _to_camel>, 'extra': 'allow', 'populate_by_name': True, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ab.api.models.shipments.Accessorial(*, id=None, name=None, description=None, price=None, isSelected=None, **extra_data)[source]

Bases: ResponseModel, IdentifiedModel

Accessorial — GET /job/{jobDisplayId}/shipment/accessorials.

Parameters:
  • id (str | int | None)

  • name (str | None)

  • description (str | None)

  • price (float | None)

  • isSelected (bool | None)

  • extra_data (Any)

name: str | None
description: str | None
price: float | None
is_selected: bool | None
model_config = {'alias_generator': <function _to_camel>, 'extra': 'allow', 'populate_by_name': True, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ab.api.models.shipments.ShipmentExportData(*, exportData=None, valuesSpecified=None, soldTo=None, commodities=None, packingInfo=None, customsValue=None, invoiceNumber=None, purchaseOrderNumber=None, termsOfSale=None, exporterTaxId=None, consigneeTaxId=None, totalCosts=None, uspsSpecific=None, fedExSpecific=None, upsSpecific=None, **extra_data)[source]

Bases: ResponseModel

Export data — GET /job/{jobDisplayId}/shipment/exportdata.

Parameters:
  • exportData (dict | None)

  • valuesSpecified (dict | None)

  • soldTo (dict | None)

  • commodities (list | None)

  • packingInfo (list | None)

  • customsValue (float | None)

  • invoiceNumber (str | None)

  • purchaseOrderNumber (str | None)

  • termsOfSale (str | None)

  • exporterTaxId (str | None)

  • consigneeTaxId (str | None)

  • totalCosts (dict | None)

  • uspsSpecific (dict | None)

  • fedExSpecific (dict | None)

  • upsSpecific (dict | None)

  • extra_data (Any)

export_data: dict | None
values_specified: dict | None
sold_to: dict | None
commodities: list | None
packing_info: list | None
customs_value: float | None
invoice_number: str | None
purchase_order_number: str | None
terms_of_sale: str | None
exporter_tax_id: str | None
consignee_tax_id: str | None
total_costs: dict | None
usps_specific: dict | None
fed_ex_specific: dict | None
ups_specific: dict | None
model_config = {'alias_generator': <function _to_camel>, 'extra': 'allow', 'populate_by_name': True, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ab.api.models.shipments.RatesState(*, state=None, rates=None, fromZip=None, toZip=None, itemWeight=None, services=None, parcelItems=None, parcelServices=None, shipOutDate=None, **extra_data)[source]

Bases: ResponseModel

Rates state — GET /job/{jobDisplayId}/shipment/ratesstate.

Parameters:
  • state (str | None)

  • rates (List[dict] | None)

  • fromZip (str | None)

  • toZip (str | None)

  • itemWeight (float | None)

  • services (list | None)

  • parcelItems (list | None)

  • parcelServices (list | None)

  • shipOutDate (str | None)

  • extra_data (Any)

state: str | None
rates: List[dict] | None
from_zip: str | None
to_zip: str | None
item_weight: float | None
services: list | None
parcel_items: list | None
parcel_services: list | None
ship_out_date: str | None
model_config = {'alias_generator': <function _to_camel>, 'extra': 'allow', 'populate_by_name': True, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ab.api.models.shipments.ShipmentWeight(*, pounds=None, originalWeight=None, originalWeightMeasureUnit=None, **extra_data)[source]

Bases: ResponseModel

Weight details for a shipment.

Parameters:
  • pounds (float | None)

  • originalWeight (float | None)

  • originalWeightMeasureUnit (str | None)

  • extra_data (Any)

pounds: float | None
original_weight: float | None
original_weight_measure_unit: str | None
model_config = {'alias_generator': <function _to_camel>, 'extra': 'allow', 'populate_by_name': True, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ab.api.models.shipments.ShipmentInfo(*, shipmentId=None, status=None, carrier=None, proNumber=None, usedAPI=None, historyProviderName=None, historyStatuses=None, weight=None, jobWeight=None, successfully=None, errorMessage=None, multipleShipments=None, packages=None, estimatedDelivery=None, **extra_data)[source]

Bases: ResponseModel

Shipment info — GET /shipment.

Parameters:
  • shipmentId (str | None)

  • status (str | None)

  • carrier (str | None)

  • proNumber (str | None)

  • usedAPI (int | None)

  • historyProviderName (str | None)

  • historyStatuses (list | None)

  • weight (ShipmentWeight | None)

  • jobWeight (float | None)

  • successfully (bool | None)

  • errorMessage (str | None)

  • multipleShipments (bool | None)

  • packages (list | None)

  • estimatedDelivery (str | None)

  • extra_data (Any)

shipment_id: str | None
status: str | None
carrier: str | None
pro_number: str | None
used_api: int | None
history_provider_name: str | None
history_statuses: list | None
weight: ShipmentWeight | None
job_weight: float | None
successfully: bool | None
error_message: str | None
multiple_shipments: bool | None
packages: list | None
estimated_delivery: str | None
model_config = {'alias_generator': <function _to_camel>, 'extra': 'allow', 'populate_by_name': True, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ab.api.models.shipments.RadioButtonOption(*, description=None, code=None, **extra_data)[source]

Bases: ResponseModel

Radio button option within an accessorial option.

Parameters:
  • description (str | None)

  • code (str | None)

  • extra_data (Any)

description: str | None
code: str | None
model_config = {'alias_generator': <function _to_camel>, 'extra': 'allow', 'populate_by_name': True, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ab.api.models.shipments.AccessorialOption(*, key=None, type=None, radioButtonOptions=None, **extra_data)[source]

Bases: ResponseModel

Option within a global accessorial.

Parameters:
key: str | None
type: int | None
radio_button_options: List[RadioButtonOption] | None
model_config = {'alias_generator': <function _to_camel>, 'extra': 'allow', 'populate_by_name': True, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ab.api.models.shipments.GlobalAccessorial(*, id=None, name=None, category=None, description=None, price=None, options=None, uniqueId=None, sourceAPIs=None, **extra_data)[source]

Bases: ResponseModel

Global accessorial — GET /shipment/accessorials.

Parameters:
id: str | None
name: str | None
category: str | None
description: str | None
price: str | None
options: List[AccessorialOption] | None
unique_id: str | None
source_apis: List[int] | None
model_config = {'alias_generator': <function _to_camel>, 'extra': 'allow', 'populate_by_name': True, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ab.api.models.shipments.ShipmentBookRequest(*, providerOptionIndex=None, shipDate=None)[source]

Bases: RequestModel

Body for POST /job/{jobDisplayId}/shipment/book.

Parameters:
  • providerOptionIndex (int | None)

  • shipDate (str | None)

provider_option_index: int | None
ship_date: str | None
model_config = {'alias_generator': <function _to_camel>, 'extra': 'forbid', 'populate_by_name': True, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ab.api.models.shipments.AccessorialAddRequest(*, addOnId=None)[source]

Bases: RequestModel

Body for POST /job/{jobDisplayId}/shipment/accessorial.

Parameters:

addOnId (str | None)

add_on_id: str | None
model_config = {'alias_generator': <function _to_camel>, 'extra': 'forbid', 'populate_by_name': True, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ab.api.models.shipments.ShipmentRateQuoteRequest(*, ShipOutDate=None, RatesSources=None, SettingsKey=None)[source]

Bases: RequestModel

Body for POST /job/{jobDisplayId}/shipment/ratequotes.

Parameters:
  • ShipOutDate (str | None)

  • RatesSources (str | None)

  • SettingsKey (str | None)

ship_out_date: str | None
rates_sources: str | None
settings_key: str | None
model_config = {'alias_generator': <function _to_camel>, 'extra': 'forbid', 'populate_by_name': True, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ab.api.models.shipments.ShipmentExportRequest(*, exportData=None)[source]

Bases: RequestModel

Body for POST /job/{jobDisplayId}/shipment/exportdata.

Parameters:

exportData (dict | None)

export_data: dict | None
model_config = {'alias_generator': <function _to_camel>, 'extra': 'forbid', 'populate_by_name': True, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].