Freightcom Customer API (2.10.0)

Download OpenAPI specification:

API for use by Freightcom customers. This API uses polling for some long running requests. In those cases the initial request will return a 202 Accepted status.

What's New In Version 2.10.0

Version 2.10.0, released in July 2026, that introduces changes related to CPSC (Consumer Product Safety Commission) regulations.

  • Regulations Validation

    • Adds a new API endpoint that returns if a product is cpsc regulated or not by analyzing the customer input product information.
    • Only useful in 2 cases:
      • Your customs' product is not registered on CPSC Registry and want to ship it without registering.
      • You want to register first and then book the shipment (recommended if you will be shipping the same product again).
    • Only applicable to US destined shipments.
  • Intended Use Details

    • Adds a new API endpoint that returns a map of regulation to a map of valid intended use code and their description.
  • Citation Codes Details

    • Adds a new API endpoint that returns a map of certificate to a map of description and the citation code to use based on the description.
  • How to provide the required CPSC details (if the product comes under CPSC) for shipments going to United States (US) for full customs clearance

    • Provide cpsc_regulated in customs_data and customs_invoice objects.
      • Valid values are true and false.
    • If cpsc_regulated is false then we can omit all the fields mentioned below.
    • Provide product_id and product_id_type (mandatory if cpsc_regulated is true).
    • Provide the fields only under cpsc_registered_product_information if the product is regulated and registered on the CPSC Registry.
    • Provide the fields only under cpsc_non_registered_product_information if the product is regulated not registered on the CPSC Registry.
    • Provide the fields only under cpsc_certificate_not_required_information if the product is exempted under CPSC.

List Of All Fields Added Or Modified In 2.10.0

The following is only a list of all fields added or modified in version 2.10.0. Please read the fields' descriptions in the endpoints' documentation for more information.

  • POST /shipment/regulations-validate - new endpoint
  • GET /shipment/intended-use-details - new endpoint
  • GET /shipment/citation-code-details - new endpoint
  • POST /rate
    • Request Body
      • details
        • customs_data
          • products
            • product_id new field
            • product_id_type new field
            • cpsc_regulated new field
            • cpsc_registered_product_information new field
              • certifier_id
              • product_id
              • version_id
            • cpsc_non_registered_product_information new field
              • product_certificate_declaration
              • certificate_type
              • product_details
                • sku_code
                • model_number
                • serial_number
                • alternate_id
                • gtin_code
                • upc_code
                • model_description
                • model_color
                • model_style
              • manufacturer_details
                • specialized_in_small_batch_production
                • small_batch_manufacturer_registry_id
                • contact_name
                • company_name
                • email_address
                • ext
                • address_line1
                • city
                • province_or_state
                • postal_code
                • phone_number
                • country
                • manufacturer_date
                  • year
                  • month
                  • day
              • lot_details
                • lot_number
                • lot_number_qualifier
                • production_start_date
                  • year
                  • month
                  • day
                • production_end_date
                  • year
                  • month
                  • day
              • citation_details
                • previously_tested
                • lab_id
                • lab_type
                • citation_code
                • lab_test_date
                  • year
                  • month
                  • day
                • test_report_id
                • test_report_url
                • test_report_access_key
                • contact_name
                • company_name
                • email_address
                • phone_number
                • ext
                • address_line1
                • city
                • province_or_state
                • postal_code
                • country
              • point_of_contact
                • contact_name
                • company_name
                • email_address
                • phone_number
                • ext
                • address_line1
                • city
                • province_or_state
                • postal_code
                • country
            • cpsc_certificate_not_required_information new field
              • disclaimer_code
              • intended_use_code
              • intended_use_description
  • POST /shipment
    • Request Body
      • details
        • customs_data
          • products
            • product_id new field
            • product_id_type new field
            • cpsc_regulated new field
            • cpsc_registered_product_information new field
              • certifier_id
              • product_id
              • version_id
            • cpsc_non_registered_product_information new field
              • product_certificate_declaration
              • certificate_type
              • product_details
                • sku_code
                • model_number
                • serial_number
                • alternate_id
                • gtin_code
                • upc_code
                • model_description
                • model_color
                • model_style
              • manufacturer_details
                • specialized_in_small_batch_production
                • small_batch_manufacturer_registry_id
                • contact_name
                • company_name
                • email_address
                • ext
                • address_line1
                • city
                • province_or_state
                • postal_code
                • phone_number
                • country
                • manufacturer_date
                  • year
                  • month
                  • day
              • lot_details
                • lot_number
                • lot_number_qualifier
                • production_start_date
                  • year
                  • month
                  • day
                • production_end_date
                  • year
                  • month
                  • day
              • citation_details
                • previously_tested
                • lab_id
                • lab_type
                • citation_code
                • lab_test_date
                  • year
                  • month
                  • day
                • test_report_id
                • test_report_url
                • test_report_access_key
                • contact_name
                • company_name
                • email_address
                • phone_number
                • ext
                • address_line1
                • city
                • province_or_state
                • postal_code
                • country
              • point_of_contact
                • contact_name
                • company_name
                • email_address
                • phone_number
                • ext
                • address_line1
                • city
                • province_or_state
                • postal_code
                • country
            • cpsc_certificate_not_required_information new field
              • disclaimer_code
              • intended_use_code
              • intended_use_description
      • customs_invoice
        • details
          • products
            • cpsc_regulated new field
            • cpsc_registered_product_information new field
              • certifier_id
              • product_id
              • version_id
            • cpsc_non_registered_product_information new field
              • product_certificate_declaration
              • certificate_type
              • product_details
                • sku_code
                • model_number
                • serial_number
                • alternate_id
                • gtin_code
                • upc_code
                • model_description
                • model_color
                • model_style
              • manufacturer_details
                • specialized_in_small_batch_production
                • small_batch_manufacturer_registry_id
                • contact_name
                • company_name
                • email_address
                • ext
                • address_line1
                • city
                • province_or_state
                • postal_code
                • phone_number
                • country
                • manufacturer_date
                  • year
                  • month
                  • day
              • lot_details
                • lot_number
                • lot_number_qualifier
                • production_start_date
                  • year
                  • month
                  • day
                • production_end_date
                  • year
                  • month
                  • day
              • citation_details
                • previously_tested
                • lab_id
                • lab_type
                • citation_code
                • lab_test_date
                  • year
                  • month
                  • day
                • test_report_id
                • test_report_url
                • test_report_access_key
                • contact_name
                • company_name
                • email_address
                • phone_number
                • ext
                • address_line1
                • city
                • province_or_state
                • postal_code
                • country
              • point_of_contact
                • contact_name
                • company_name
                • email_address
                • phone_number
                • ext
                • address_line1
                • city
                • province_or_state
                • postal_code
                • country
            • cpsc_certificate_not_required_information new field
              • disclaimer_code
              • intended_use_code
              • intended_use_description
  • GET /shipment/{shipment_id}
    • 200 Response
      • shipment
        • details
          • customs_data
            • products
              • product_id new field
              • product_id_type new field
              • cpsc_regulated new field
              • cpsc_registered_product_information new field
                • certifier_id
                • product_id
                • version_id
              • cpsc_non_registered_product_information new field
                • product_certificate_declaration
                • certificate_type
                • product_details
                  • sku_code
                  • model_number
                  • serial_number
                  • alternate_id
                  • gtin_code
                  • upc_code
                  • model_description
                  • model_color
                  • model_style
                • manufacturer_details
                  • specialized_in_small_batch_production
                  • small_batch_manufacturer_registry_id
                  • contact_name
                  • company_name
                  • email_address
                  • ext
                  • address_line1
                  • city
                  • province_or_state
                  • postal_code
                  • phone_number
                  • country
                  • manufacturer_date
                    • year
                    • month
                    • day
                • lot_details
                  • lot_number
                  • lot_number_qualifier
                  • production_start_date
                    • year
                    • month
                    • day
                  • production_end_date
                    • year
                    • month
                    • day
                • citation_details
                  • previously_tested
                  • lab_id
                  • lab_type
                  • citation_code
                  • lab_test_date
                    • year
                    • month
                    • day
                  • test_report_id
                  • test_report_url
                  • test_report_access_key
                  • contact_name
                  • company_name
                  • email_address
                  • phone_number
                  • ext
                  • address_line1
                  • city
                  • province_or_state
                  • postal_code
                  • country
                • point_of_contact
                  • contact_name
                  • company_name
                  • email_address
                  • phone_number
                  • ext
                  • address_line1
                  • city
                  • province_or_state
                  • postal_code
                  • country
              • cpsc_certificate_not_required_information new field
                • disclaimer_code
                • intended_use_code
                • intended_use_description

What's New In Version 2.9.0

Version 2.9.0, released in July 2026, that introduces changes related to EU-DE Minimis threshold removal.

  • How to provide the required details for shipments going to European Union (EU) for full customs clearance
    • Provide shipment_classification in details.
      • Valid values are B2B, B2C, C2B, C2C
    • Provide the following fields according to the shipped products.
      • product_id (mandatory)
      • product_id_type (mandatory)
      • merchant_product_identifier (optional)
      • non_standardised_manufacturer_product_identifier (optional)
      • standardised_manufacturer_product_identifier (optional)

List Of All Fields Added Or Modified In 2.9.0

The following is only a list of all fields added or modified in version 2.9.0. Please read the fields' descriptions in the endpoints' documentation for more information.

  • POST /shipment
    • Request Body
      • details
        • shipment_classification - new field
      • customs_invoice
        • details
          • products
            • product_id new field
            • product_id_type new field
            • merchant_product_identifier new field
            • non_standardised_manufacturer_product_identifier new field
            • standardised_manufacturer_product_identifier new field
  • GET /shipment/{shipment_id}
    • 200 Response
      • shipment
        • details
          • shipment_classification - new field

What's New In Version 2.8.0

Version 2.8.0, released in April 2026, that introduces HTS validation and enables the continued access to guaranteed Delivered Duty Paid(DDP) guaranteed rates for eligible shipments.

  • HTS Validation

    • Adds a new API endpoint that returns recommended HTS codes by analyzing the customer input product description.
    • Allows requesting DDP guaranteed rates if the selected HTS code aligns with one of the recommended codes returned by the validation API.
    • Only applicable to CA-US shipments.
  • How to use the new API to get guaranteed rates

    • Submit product details for validation.
      • Call the hts-validate API with complete product information based on the customer-provided product description.
      • From the response, save one of the most relevant recommended HTS codes and its corresponding description for each product.
      • This information is required for downstream processing when requesting rates and booking cross-border shipments.
    • Include validation details in rate request.
      • When calling the rate or shipment API, set hsverified to true in product details.
      • Provide the saved hscode (recommended HTS code) and description (recommended description) with the provided_hscode and provided_description as well.
      • If all required fields are correctly passed, the request will be eligible for DDP guaranteed rates. If any required data is missing or inconsistent, the API will return an error indicating the issue.

List Of All Fields Added Or Modified In 2.8.0

The following is only a list of all fields added or modified in version 2.8.0. Please read the fields' descriptions in the endpoints' documentation for more information.

  • POST /shipment/hts-validate - new endpoint
  • POST /rate
    • Request Body
      • details
        • customs_data
          • products
            • product_name - new field
            • hsverified - new field
            • provided_hscode - new field
            • provided_description - new field
  • POST /shipment
    • Request Body
      • details
        • customs_data
          • products
            • product_name - new field
            • hsverified - new field
            • provided_hscode - new field
            • provided_description - new field
      • customs_invoice
        • details
          • products
            • hsverified - new field
            • provided_hscode - new field
            • provided_description - new field
  • GET /shipment/{shipment_id}
    • 200 Response
      • shipment
        • details
          • customs_data
            • products
              • product_name - new field
              • hsverified - new field
              • provided_hscode - new field
              • provided_description - new field

What's New In Version 2.7.0

Version 2.7.0, released in March 2026, adds a new way to pay for shipments: Prepaid Shipping. When activated in the customer portal,

  • Prepaid Shipping
    • If you activate Prepaid Shipping in the customer portal, you can get your prepaid payment method id and use it to book shipments.
    • After you activate Prepaid Shipping, you can no longer use your credit card payment method to book shipments. You must book shipments with your prepaid payment method.
    • A new endpoint will allow you to get your current available balances for your prepaid accounts.
      • This endpoint can also be used by Net Terms customers to retrieve the available Net Terms balance.
    • A new endpoint will allow you to reload (add funds to) your prepaid balance via this API as well as on the customer portal.
    • Please log in to the customer portal to view your statements, to set up automatic reloads and email warnings, and to perform other actions with your prepaid accounts.

List Of All Fields Added Or Modified In 2.7.0

The following is only a list of all fields added or modified in version 2.7.0. Please read the fields' descriptions in the endpoints' documentation for more information.

  • POST /shipment
    • Request Body
      • payment_method_id - description and validation updated
      • customs_and_duties_payment_method_id - description and validation updated
  • GET /finance/payment-methods - description updated
  • GET /finance/payment-method/{payment_method_id}/available-balances - new endpoint
  • POST /finance/reload-prepaid-balance - new endpoint

What's New In Version 2.6.3

Version 2.6.3, released in March 2026, adds a new endpoint:

  • Courier pickup availability
    • New endpoint to resolve courier pickup availability before booking.
    • This endpoint is for courier pickups only and does not apply to pallet dispatches.

List Of All Fields Added Or Modified In 2.6.3

The following is only a list of all fields added or modified in version 2.6.3. Please read the fields' descriptions in the endpoints' documentation for more information.

  • POST /shipment/schedule/validate - new endpoint

What's New In Version 2.6.2

Version 2.6.2, released in November 2025, adds the following new field.

  • FDA regulated
    • Required for package and courier pak shipments from Canada to the US. At time of writing, other shipments are not affected by this field.
    • If required, please add the field fda_regulated to all customs products. If a product is regulated by the U.S. Food and Drug Administration (FDA), specify fda_regulated "yes". Otherwise, specify "no". Please note that the allowed values are strings, not true/false.
    • By correctly identifying FDA-regulated products, the system can automatically prevent rates or bookings for carriers that do not accept such items, helping you avoid delays, rejections, or additional compliance issues at the border.

List Of All Fields Added Or Modified In 2.6.2

The following is only a list of all fields added or modified in version 2.6.2. Please read the fields' descriptions in the endpoints' documentation for more information.

  • POST /rate
    • Request Body
      • details
        • customs_data
          • products
            • fda_regulated - new field
            • completed_kitchen_cabinets_or_vanities - new field
  • POST /shipment
    • Request Body
      • details
        • customs_data
          • products
            • fda_regulated - new field
            • completed_kitchen_cabinets_or_vanities - new field
      • customs_invoice
        • details
          • products
            • fda_regulated - new field
            • completed_kitchen_cabinets_or_vanities - new field
  • GET /shipment/{shipment_id}
    • 200 Response
      • shipment
        • details
          • customs_data
            • products
              • fda_regulated - new field
              • completed_kitchen_cabinets_or_vanities - new field

What's New In Version 2.6.1

Version 2.6.1, released in November 2025, includes the following changes:

  • Email addresses now required for all international shipments
    • The origin and destination of every international shipment now each require at least one email address.
    • This change was motivated by a recent change in UPS's requirements for international shipments.

This version also includes the following changes that apply only to package and courier pak shipments from Canada to the US. All other shipments will be unaffected by these changes.

  • Steel, aluminum, and copper allocations
    • You can now specify the steel, aluminum, and copper allocations for each of your customs products.
    • Providing steel, aluminum, and copper allocations can reduce your customs charges.
    • Omitting this information may result in higher customs charges than necessary.
  • Guaranteed customs charges
    • For an additional fee, you can receive a guarantee that you will not receive any additional charges on the clearance of the shipment - provided the product information, description and HTS codes are correct.
    • To request guaranteed customs charges, specify request_guaranteed_customs_charges true in the customs_data object when requesting a rate or booking a shipment. If the rate you receive has customs_charge_data.is_rate_guaranteed true, then its customs charges are guaranteed.
  • Non-auto parts
    • You can now certify that your customs products do not contain auto parts. This may reduce tariffs if the product's HTS Code implies it may contain auto parts.
  • Rate fields removed/renamed
    • Some of the customs_charge_data fields were removed or renamed. Please update your code accordingly. See below for details.

List Of All Fields Added Or Modified In 2.6.1

The following is only a list of all fields added or modified in version 2.6.1. Please read the fields' descriptions in the endpoints' documentation for more information.

  • POST /rate
    • Request Body
      • details
        • origin
          • email_addresses - description and validation updated
        • destination
          • email_addresses - description and validation updated
        • customs_data
          • products
            • non_auto_parts - new field
            • product_composition_allocation - new field
            • product_composition_allocation_zero - new field
          • request_guaranteed_customs_charges - new field
  • GET /rate/{rate_id}
    • 200 Response
      • rates
        • customs_charge_data
          • brokerage_surcharge_keys - removed
          • government_fees_surcharge_keys - removed
          • guarantee_fee_surcharge_keys - new field
          • carrier_and_government_fees_surcharge_keys - new field
          • is_rate_guaranteed - new field
  • POST /shipment
    • Request Body
      • details
        • origin
          • email_addresses - description and validation updated
        • destination
          • email_addresses - description and validation updated
        • customs_data
          • products
            • non_auto_parts - new field
            • product_composition_allocation - new field
            • product_composition_allocation_zero - new field
          • request_guaranteed_customs_charges - new field
      • customs_invoice
        • details
          • products
            • non_auto_parts - new field
            • product_composition_allocation - new field
            • product_composition_allocation_zero - new field
  • GET /shipment/{shipment_id}
    • 200 Response
      • shipment
        • details
          • customs_data
            • products
              • non_auto_parts - new field
              • product_composition_allocation - new field
              • product_composition_allocation_zero - new field
            • request_guaranteed_customs_charges - new field
        • rate
          • customs_charge_data
            • brokerage_surcharge_keys - removed
            • government_fees_surcharge_keys - removed
            • guarantee_fee_surcharge_keys - new field
            • carrier_and_government_fees_surcharge_keys - new field
            • is_rate_guaranteed - new field

What's New In Version 2.6.0

Version 2.6.0, released in September 2025, introduces the following features. For a complete list of modified endpoints and fields, see the section below.

  • Export charges included in rates
    • Include customs_data when requesting a rate or booking a shipment.
    • Surcharge types that correspond to export charges will be listed in the customs_charge_data field.
    • Applies only to package and courier pak shipments from Canada to the US.
    • Documentation may refer to 'export charges' or 'customs charges' interchangeably.
  • DDP vs DDU shipments
    • To book a DDP shipment, include customs_data and select tax recipient type 'shipper'.
      • If your primary payment method is Net Terms, you must pay for export charges with a credit card, specified by the customs_and_duties_payment_method_id.
    • To book a DDU shipment, omit customs_data and select tax recipient type 'receiver'.
    • These changes only affect package and courier pak shipments from Canada to the US.
  • Uploading CUSMA and other documents
    • When booking a shipment, you can upload customs documents via the paperless_customs_documents field.
      • Supported carriers: FedEx Courier and UPS.
      • Size limit: approximately 4.5 MB for all files, before Base64 encoding.
    • If you specified cusma_included true for any of your customs products, you must upload a CUSMA document with type 'cusma-form'.
      • Only applies to carriers that support uploading customs documents.

There is also a new restriction:

  • Must use carrier as broker below $800 USD
    • Package and courier pak shipments from Canada to the US must use carrier as broker if their customs products are valued at $800 USD or less.

List Of All Fields Added Or Modified In 2.6.0

The following is only a list of all fields added or modified in version 2.6.0. Please read the fields' descriptions in the endpoints' documentation for more information.

  • POST /rate
    • Request Body
      • details
        • customs_data - new field
  • GET /rate/{rate_id}
    • 200 Response
      • rates
        • paperless - new field
        • customs_charge_data - new field
  • POST /shipment
    • Request Body
      • customs_and_duties_payment_method_id - new field
      • details
        • customs_data - new field
      • customs_invoice
        • broker
          • use_carrier - description updated
        • details
          • tax_recipient
            • type - description updated
          • products
            • hs_code - description updated
            • cusma_included - new field
      • paperless_customs_documents - new field
  • GET /shipment/{shipment_id}
    • 200 Response
      • shipment
        • details
          • customs_data - new field
        • rate
          • paperless - new field
          • customs_charge_data - new field
        • paperless_customs_documents - new field

rate

Obtain estimated rates based upon a small number of details.

Request a rate estimate.

Request a rate estimate.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
services
Array of strings

List of service IDs for which to get rates. If not provided then all services will be queried for rates.

excluded_services
Array of strings

Excluded list of service IDs for which to ignore rates from.

object (ShippingDetails)

Details on a shipment.

Responses

Request samples

Content type
application/json
{
  • "services": [
    ],
  • "excluded_services": [
    ],
  • "details": {
    }
}

Response samples

Content type
application/json
{
  • "request_id": "string"
}

Retrieve a requested rate. Also includes details o

Retrieve a requested rate. Also includes details on the number of pending rate lookups to perform if any.

Authorizations:
ApiKeyAuth
path Parameters
rate_id
required
string

The rate ID to retrieve details on.

Responses

Response samples

Content type
application/json
{
  • "status": {
    },
  • "rates": [
    ]
}

Calculate freight class

Calculate freight class for pallet dimensions.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
object (Box)

Responses

Request samples

Content type
application/json
{
  • "box": {
    }
}

Response samples

Content type
application/json
{
  • "freight_class": "50"
}

shipment

Retrieving and booking shipments.

Book a shipment.

Book a shipment.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
unique_id
required
string

Maximum length of 128 characters. Uppercase and lowercase characters are considered equal for comparisons. Used to uniquely identify a shipment. If the unique_id matches a previously created shipment that is in the process of booking or booked successfully then a new shipment will NOT be created and the ID for the previously created shipment will be returned. If the previously created shipment had an error during booking or was cancelled then a new shipment with the unique_id will be created and unique_id will be associated with this new shipment.

payment_method_id
required
string

Payment method to use, obtained from /finance/payment-methods.

(UPDATED in 2.7.0) If you have activated Prepaid Shipping in the customer portal, you must use your prepaid payment method to book shipments.

customs_and_duties_payment_method_id
string

(NEW in 2.6.0) Payment method to use to pay for the customs charges when booking a DDP shipment (shipper pays the customs charges). If omitted, payment_method_id will be used to pay for all charges including customs charges.

If you are booking a DDP shipment and payment_method_id is your Net Terms payment method, then you must specify a credit card payment method in this field to pay for the customs charges.

Obtained from /finance/payment-methods.

(UPDATED in 2.7.0) If you have activated Prepaid Shipping in the customer portal, you must use your prepaid payment method to book shipments.

service_id
required
string

Service to book with.

required
object (ShippingDetails)

Details on a shipment.

object

Customs invoice info. Required for international shipments.

object (PickupDetails)

Courier pickup details, required if courier service utilized.

object (DispatchDetails)

LTL dispatch details, required if dispatch service utilized.

Array of objects

(NEW in 2.6.0) Paperless customs documents to upload to the carrier, if supported.

Currently, we support paperless customs documents for international shipments with paperless rates from FedEx Courier and UPS. Each carrier limits the number of files that can be uploaded:

  • FedEx Courier: up to 5 files may be uploaded.
  • UPS: up to 13 files may be uploaded.

A paperless customs invoice is created automatically: it is not necessary to upload one. The paperless customs invoice does not count towards the maximum # of files that may be uploaded.

Since an API request is limited to at most 6 MB, and files must be Base64 encoded, this puts an upper limit of approximately 4.5 MB (before Base64 encoding) on the total size of all files that may be uploaded in a single request.

Responses

Request samples

Content type
application/json
{
  • "unique_id": "string",
  • "payment_method_id": "string",
  • "customs_and_duties_payment_method_id": "string",
  • "service_id": "string",
  • "details": {
    },
  • "customs_invoice": {
    },
  • "pickup_details": {
    },
  • "dispatch_details": {
    },
  • "paperless_customs_documents": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "previously_created": true
}

Retrieve details on a shipment.

Retrieve details on a shipment.

Authorizations:
ApiKeyAuth
path Parameters
shipment_id
required
string

The shipment ID to retrieve details on.

Responses

Response samples

Content type
application/json
{
  • "shipment": {
    }
}

Cancel a shipment. Will also remove any unique_id

Cancel a shipment. Will also remove any unique_id association with the shipment.

Authorizations:
ApiKeyAuth
path Parameters
shipment_id
required
string

The shipment ID to cancel.

Responses

Retrieve tracking events for a shipment.

Retrieve tracking events for a shipment.

Authorizations:
ApiKeyAuth
path Parameters
shipment_id
required
string

The shipment ID to retrieve details on.

Responses

Response samples

Content type
application/json
{
  • "events": [
    ]
}

Get details on scheduling.

Get details on scheduling.

Authorizations:
ApiKeyAuth
path Parameters
shipment_id
required
string

The shipment ID to get the scheduling status.

Responses

Response samples

Content type
application/json
{
  • "status": "pending",
  • "error": "string",
  • "pickup_confirmation_number": "string"
}

Schedule a dispatch or pickup.

Schedule a dispatch or pickup.

Authorizations:
ApiKeyAuth
path Parameters
shipment_id
required
string

The shipment ID to schedule.

Request Body schema: application/json
object (PickupDetails)

Courier pickup details, required if courier service utilized.

object (DispatchDetails)

LTL dispatch details, required if dispatch service utilized.

Responses

Request samples

Content type
application/json
{
  • "pickup_details": {
    },
  • "dispatch_details": {
    }
}

Cancel a scheduling.

Cancel a scheduling.

Authorizations:
ApiKeyAuth
path Parameters
shipment_id
required
string

The shipment ID to cancel scheduling for.

Responses

Get courier pickup availability

If date/ready_at/ready_until are omitted, defaults are used. The response returns the validated pickup window. If the requested window is not available, the window may be adjusted to the next available window. When a full window is provided, exact_match indicates whether the returned window matches the requested window. Supported packaging types: package, courier-pak, envelope.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
carrier_id
required
string
service_id
required
string
required
object
required
object
object (Date)
object (TimeOfDay)

Time of day in 24 hour time.

object (TimeOfDay)

Time of day in 24 hour time.

Responses

Request samples

Content type
application/json
{
  • "carrier_id": "string",
  • "service_id": "string",
  • "origin": {
    },
  • "destination": {
    },
  • "pickup_date": {
    },
  • "open_time": {
    },
  • "close_time": {
    }
}

Response samples

Content type
application/json
{
  • "pickup_date": {
    },
  • "open_time": {
    },
  • "close_time": {
    }
}

Get Validated HTS Codes

Use Recommended HTS code for your customs' products. All fields are optional but must be provided for the most accurate results.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
Array of objects

Responses

Request samples

Content type
application/json
{
  • "data": [
    ]
}

Response samples

Content type
application/json
[
  • {
    }
]

Get Validated Regulation Information

Validate regulations for your customs' products. All fields are optional but must be provided for the most accurate results. id is used for mapping request to response and does not have any impact over the returned results.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
regulation_type
enum
Value: "CPSC"

Regulation Type to check for, only CPSC is available currently.

Array of objects

Responses

Request samples

Content type
application/json
{
  • "regulation_type": "CPSC",
  • "data": [
    ]
}

Response samples

Content type
application/json
[
  • {
    }
]

Get Intended Use Case Map

Returns a map of product categories to a map of use case codes and descriptions.

Authorizations:
ApiKeyAuth

Responses

Response samples

Content type
application/json
{
  • "MedicalDevices": {
    },
  • "Food": {
    },
  • "Cosmetic": {
    },
  • "Biological": {
    },
  • "CPSC": {
    }
}

Get Citation Code Details

Returns accepted citation codes and descriptions grouped by CertificateTypeCPC and CertificateTypeGCC.

Authorizations:
ApiKeyAuth

Responses

Response samples

Content type
application/json
{
  • "CertificateTypeCPC": {
    },
  • "CertificateTypeGCC": {
    }
}

finance

Retrieve financial details.

Get the payment methods available for your account

Get the payment methods available for your account.

(UPDATED in 2.7.0) If you have activated Prepaid Shipping in the customer portal, your credit card payment methods will still be returned, but you can no longer use credit cards to book shipments. Credit cards can be used to reload your prepaid balance, and your prepaid payment method can be used to book shipments.

Authorizations:
ApiKeyAuth

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get the available balances for a Net Terms or Prep

Get the available balances for a Net Terms or Prepaid payment method.

(NEW in 2.7.0)

Authorizations:
ApiKeyAuth
path Parameters
payment_method_id
required
string

The Net Terms or Prepaid payment method ID to get available balances for.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "type": "net-terms",
  • "label": "string",
  • "available_balances": [
    ]
}

Reload your Prepaid balance from a credit card pay

Reload your Prepaid balance from a credit card payment method with a one-time payment.

(NEW in 2.7.0)

The amount currency, CAD or USD, will determine which currency will be charged to your credit card and which Prepaid balance the funds will be added to: your CAD balance or your USD balance.

The amount must be at least $25 CAD or USD.

This is a one-time transaction. You can set up automatic reload and email warnings in the customer portal.

The 200 response contains the amount that was reloaded, the Prepaid balance after the reload, and information about the credit card receipt generated for the transaction.

If another Prepaid activity occurs at the same time, such as booking a shipment or reloading twice with the same currency, the available_balance in the response may reflect the balance before or after the other activity. In this case, you can find accurate balances before and after each activity on your statement in the customer portal.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
from_payment_method_id
string

The credit card payment method id that will be charged.

object (Money)

Responses

Request samples

Content type
application/json
{
  • "from_payment_method_id": "string",
  • "amount": {
    }
}

Response samples

Content type
application/json
{
  • "amount": {
    },
  • "available_balance": {
    },
  • "receipt_document_id": "string",
  • "receipt_email_recipients": [
    ]
}

Get a list of documents in a date range.

Get a list of documents in a date range.

Authorizations:
ApiKeyAuth
query Parameters
start_date
required
string
Example: start_date=2021-07-01

The start date in UTC to search in.

end_date
required
string
Example: end_date=2021-07-31

The end date in UTC.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "type": "string",
  • "number": "string",
  • "date": {
    },
  • "due_date": {
    },
  • "amount": {
    },
  • "owing": {
    }
}

Get a particular document with details.

Get a particular document with details.

Authorizations:
ApiKeyAuth
path Parameters
document_id
required
string

The document to retrieve details on.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "type": "string",
  • "number": "string",
  • "date": {
    },
  • "due_date": {
    },
  • "amount": {
    },
  • "owing": {
    },
  • "urls": { },
  • "payments": [
    ],
  • "line_items": [
    ]
}

Get invoices for the shipment id

Get invoices for the shipment id

Authorizations:
ApiKeyAuth
path Parameters
shipment_id
required
string

The shipment id to retrieve invoices for.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get invoices for the shipment transaction number

Get invoices for the shipment transaction number

Authorizations:
ApiKeyAuth
path Parameters
transaction_number
required
string

The transaction number to retrieve invoices for.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

service

Carrier service details.

Get the services available.

Get the services available.

Authorizations:
ApiKeyAuth

Responses

Response samples

Content type
application/json
{
  • "services": [
    ]
}

manifest

Initiate a manifest request and get the results.

Initiate a manifest request.

Initiate a manifest request.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
carrier_id
string
object

Contains additional data that can be used to filter or limit the manifest request. Specific fields required depending upon the carrier.

Responses

Request samples

Content type
application/json
{
  • "carrier_id": "string",
  • "manifest_data": {
    }
}

Response samples

Content type
application/json
{
  • "request_id": "string"
}

Get the results of a manifest request.

Get the results of a manifest request.

Authorizations:
ApiKeyAuth
path Parameters
manifest_id
required
string

Responses

Response samples

Content type
application/json
{
  • "url": "string"
}

2.7.0 changes

Endpoints with changes in version 2.7.0, released in March 2026.

Book a shipment.

Book a shipment.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
unique_id
required
string

Maximum length of 128 characters. Uppercase and lowercase characters are considered equal for comparisons. Used to uniquely identify a shipment. If the unique_id matches a previously created shipment that is in the process of booking or booked successfully then a new shipment will NOT be created and the ID for the previously created shipment will be returned. If the previously created shipment had an error during booking or was cancelled then a new shipment with the unique_id will be created and unique_id will be associated with this new shipment.

payment_method_id
required
string

Payment method to use, obtained from /finance/payment-methods.

(UPDATED in 2.7.0) If you have activated Prepaid Shipping in the customer portal, you must use your prepaid payment method to book shipments.

customs_and_duties_payment_method_id
string

(NEW in 2.6.0) Payment method to use to pay for the customs charges when booking a DDP shipment (shipper pays the customs charges). If omitted, payment_method_id will be used to pay for all charges including customs charges.

If you are booking a DDP shipment and payment_method_id is your Net Terms payment method, then you must specify a credit card payment method in this field to pay for the customs charges.

Obtained from /finance/payment-methods.

(UPDATED in 2.7.0) If you have activated Prepaid Shipping in the customer portal, you must use your prepaid payment method to book shipments.

service_id
required
string

Service to book with.

required
object (ShippingDetails)

Details on a shipment.

object

Customs invoice info. Required for international shipments.

object (PickupDetails)

Courier pickup details, required if courier service utilized.

object (DispatchDetails)

LTL dispatch details, required if dispatch service utilized.

Array of objects

(NEW in 2.6.0) Paperless customs documents to upload to the carrier, if supported.

Currently, we support paperless customs documents for international shipments with paperless rates from FedEx Courier and UPS. Each carrier limits the number of files that can be uploaded:

  • FedEx Courier: up to 5 files may be uploaded.
  • UPS: up to 13 files may be uploaded.

A paperless customs invoice is created automatically: it is not necessary to upload one. The paperless customs invoice does not count towards the maximum # of files that may be uploaded.

Since an API request is limited to at most 6 MB, and files must be Base64 encoded, this puts an upper limit of approximately 4.5 MB (before Base64 encoding) on the total size of all files that may be uploaded in a single request.

Responses

Request samples

Content type
application/json
{
  • "unique_id": "string",
  • "payment_method_id": "string",
  • "customs_and_duties_payment_method_id": "string",
  • "service_id": "string",
  • "details": {
    },
  • "customs_invoice": {
    },
  • "pickup_details": {
    },
  • "dispatch_details": {
    },
  • "paperless_customs_documents": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "previously_created": true
}

Get the payment methods available for your account

Get the payment methods available for your account.

(UPDATED in 2.7.0) If you have activated Prepaid Shipping in the customer portal, your credit card payment methods will still be returned, but you can no longer use credit cards to book shipments. Credit cards can be used to reload your prepaid balance, and your prepaid payment method can be used to book shipments.

Authorizations:
ApiKeyAuth

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get the available balances for a Net Terms or Prep

Get the available balances for a Net Terms or Prepaid payment method.

(NEW in 2.7.0)

Authorizations:
ApiKeyAuth
path Parameters
payment_method_id
required
string

The Net Terms or Prepaid payment method ID to get available balances for.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "type": "net-terms",
  • "label": "string",
  • "available_balances": [
    ]
}

Reload your Prepaid balance from a credit card pay

Reload your Prepaid balance from a credit card payment method with a one-time payment.

(NEW in 2.7.0)

The amount currency, CAD or USD, will determine which currency will be charged to your credit card and which Prepaid balance the funds will be added to: your CAD balance or your USD balance.

The amount must be at least $25 CAD or USD.

This is a one-time transaction. You can set up automatic reload and email warnings in the customer portal.

The 200 response contains the amount that was reloaded, the Prepaid balance after the reload, and information about the credit card receipt generated for the transaction.

If another Prepaid activity occurs at the same time, such as booking a shipment or reloading twice with the same currency, the available_balance in the response may reflect the balance before or after the other activity. In this case, you can find accurate balances before and after each activity on your statement in the customer portal.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
from_payment_method_id
string

The credit card payment method id that will be charged.

object (Money)

Responses

Request samples

Content type
application/json
{
  • "from_payment_method_id": "string",
  • "amount": {
    }
}

Response samples

Content type
application/json
{
  • "amount": {
    },
  • "available_balance": {
    },
  • "receipt_document_id": "string",
  • "receipt_email_recipients": [
    ]
}

2.6.3 changes

Endpoints with changes in version 2.6.3, released in March 2026.

2.6.2 changes

Endpoints with changes in version 2.6.2, released in November 2025.

Request a rate estimate.

Request a rate estimate.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
services
Array of strings

List of service IDs for which to get rates. If not provided then all services will be queried for rates.

excluded_services
Array of strings

Excluded list of service IDs for which to ignore rates from.

object (ShippingDetails)

Details on a shipment.

Responses

Request samples

Content type
application/json
{
  • "services": [
    ],
  • "excluded_services": [
    ],
  • "details": {
    }
}

Response samples

Content type
application/json
{
  • "request_id": "string"
}

Book a shipment.

Book a shipment.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
unique_id
required
string

Maximum length of 128 characters. Uppercase and lowercase characters are considered equal for comparisons. Used to uniquely identify a shipment. If the unique_id matches a previously created shipment that is in the process of booking or booked successfully then a new shipment will NOT be created and the ID for the previously created shipment will be returned. If the previously created shipment had an error during booking or was cancelled then a new shipment with the unique_id will be created and unique_id will be associated with this new shipment.

payment_method_id
required
string

Payment method to use, obtained from /finance/payment-methods.

(UPDATED in 2.7.0) If you have activated Prepaid Shipping in the customer portal, you must use your prepaid payment method to book shipments.

customs_and_duties_payment_method_id
string

(NEW in 2.6.0) Payment method to use to pay for the customs charges when booking a DDP shipment (shipper pays the customs charges). If omitted, payment_method_id will be used to pay for all charges including customs charges.

If you are booking a DDP shipment and payment_method_id is your Net Terms payment method, then you must specify a credit card payment method in this field to pay for the customs charges.

Obtained from /finance/payment-methods.

(UPDATED in 2.7.0) If you have activated Prepaid Shipping in the customer portal, you must use your prepaid payment method to book shipments.

service_id
required
string

Service to book with.

required
object (ShippingDetails)

Details on a shipment.

object

Customs invoice info. Required for international shipments.

object (PickupDetails)

Courier pickup details, required if courier service utilized.

object (DispatchDetails)

LTL dispatch details, required if dispatch service utilized.

Array of objects

(NEW in 2.6.0) Paperless customs documents to upload to the carrier, if supported.

Currently, we support paperless customs documents for international shipments with paperless rates from FedEx Courier and UPS. Each carrier limits the number of files that can be uploaded:

  • FedEx Courier: up to 5 files may be uploaded.
  • UPS: up to 13 files may be uploaded.

A paperless customs invoice is created automatically: it is not necessary to upload one. The paperless customs invoice does not count towards the maximum # of files that may be uploaded.

Since an API request is limited to at most 6 MB, and files must be Base64 encoded, this puts an upper limit of approximately 4.5 MB (before Base64 encoding) on the total size of all files that may be uploaded in a single request.

Responses

Request samples

Content type
application/json
{
  • "unique_id": "string",
  • "payment_method_id": "string",
  • "customs_and_duties_payment_method_id": "string",
  • "service_id": "string",
  • "details": {
    },
  • "customs_invoice": {
    },
  • "pickup_details": {
    },
  • "dispatch_details": {
    },
  • "paperless_customs_documents": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "previously_created": true
}

Retrieve details on a shipment.

Retrieve details on a shipment.

Authorizations:
ApiKeyAuth
path Parameters
shipment_id
required
string

The shipment ID to retrieve details on.

Responses

Response samples

Content type
application/json
{
  • "shipment": {
    }
}

2.6.1 changes

Endpoints with changes in version 2.6.1, released in November 2025.

Request a rate estimate.

Request a rate estimate.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
services
Array of strings

List of service IDs for which to get rates. If not provided then all services will be queried for rates.

excluded_services
Array of strings

Excluded list of service IDs for which to ignore rates from.

object (ShippingDetails)

Details on a shipment.

Responses

Request samples

Content type
application/json
{
  • "services": [
    ],
  • "excluded_services": [
    ],
  • "details": {
    }
}

Response samples

Content type
application/json
{
  • "request_id": "string"
}

Retrieve a requested rate. Also includes details o

Retrieve a requested rate. Also includes details on the number of pending rate lookups to perform if any.

Authorizations:
ApiKeyAuth
path Parameters
rate_id
required
string

The rate ID to retrieve details on.

Responses

Response samples

Content type
application/json
{
  • "status": {
    },
  • "rates": [
    ]
}

Book a shipment.

Book a shipment.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
unique_id
required
string

Maximum length of 128 characters. Uppercase and lowercase characters are considered equal for comparisons. Used to uniquely identify a shipment. If the unique_id matches a previously created shipment that is in the process of booking or booked successfully then a new shipment will NOT be created and the ID for the previously created shipment will be returned. If the previously created shipment had an error during booking or was cancelled then a new shipment with the unique_id will be created and unique_id will be associated with this new shipment.

payment_method_id
required
string

Payment method to use, obtained from /finance/payment-methods.

(UPDATED in 2.7.0) If you have activated Prepaid Shipping in the customer portal, you must use your prepaid payment method to book shipments.

customs_and_duties_payment_method_id
string

(NEW in 2.6.0) Payment method to use to pay for the customs charges when booking a DDP shipment (shipper pays the customs charges). If omitted, payment_method_id will be used to pay for all charges including customs charges.

If you are booking a DDP shipment and payment_method_id is your Net Terms payment method, then you must specify a credit card payment method in this field to pay for the customs charges.

Obtained from /finance/payment-methods.

(UPDATED in 2.7.0) If you have activated Prepaid Shipping in the customer portal, you must use your prepaid payment method to book shipments.

service_id
required
string

Service to book with.

required
object (ShippingDetails)

Details on a shipment.

object

Customs invoice info. Required for international shipments.

object (PickupDetails)

Courier pickup details, required if courier service utilized.

object (DispatchDetails)

LTL dispatch details, required if dispatch service utilized.

Array of objects

(NEW in 2.6.0) Paperless customs documents to upload to the carrier, if supported.

Currently, we support paperless customs documents for international shipments with paperless rates from FedEx Courier and UPS. Each carrier limits the number of files that can be uploaded:

  • FedEx Courier: up to 5 files may be uploaded.
  • UPS: up to 13 files may be uploaded.

A paperless customs invoice is created automatically: it is not necessary to upload one. The paperless customs invoice does not count towards the maximum # of files that may be uploaded.

Since an API request is limited to at most 6 MB, and files must be Base64 encoded, this puts an upper limit of approximately 4.5 MB (before Base64 encoding) on the total size of all files that may be uploaded in a single request.

Responses

Request samples

Content type
application/json
{
  • "unique_id": "string",
  • "payment_method_id": "string",
  • "customs_and_duties_payment_method_id": "string",
  • "service_id": "string",
  • "details": {
    },
  • "customs_invoice": {
    },
  • "pickup_details": {
    },
  • "dispatch_details": {
    },
  • "paperless_customs_documents": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "previously_created": true
}

Retrieve details on a shipment.

Retrieve details on a shipment.

Authorizations:
ApiKeyAuth
path Parameters
shipment_id
required
string

The shipment ID to retrieve details on.

Responses

Response samples

Content type
application/json
{
  • "shipment": {
    }
}

2.6.0 changes

Endpoints with changes in version 2.6.0, released in September 2025.

Request a rate estimate.

Request a rate estimate.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
services
Array of strings

List of service IDs for which to get rates. If not provided then all services will be queried for rates.

excluded_services
Array of strings

Excluded list of service IDs for which to ignore rates from.

object (ShippingDetails)

Details on a shipment.

Responses

Request samples

Content type
application/json
{
  • "services": [
    ],
  • "excluded_services": [
    ],
  • "details": {
    }
}

Response samples

Content type
application/json
{
  • "request_id": "string"
}

Retrieve a requested rate. Also includes details o

Retrieve a requested rate. Also includes details on the number of pending rate lookups to perform if any.

Authorizations:
ApiKeyAuth
path Parameters
rate_id
required
string

The rate ID to retrieve details on.

Responses

Response samples

Content type
application/json
{
  • "status": {
    },
  • "rates": [
    ]
}

Book a shipment.

Book a shipment.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
unique_id
required
string

Maximum length of 128 characters. Uppercase and lowercase characters are considered equal for comparisons. Used to uniquely identify a shipment. If the unique_id matches a previously created shipment that is in the process of booking or booked successfully then a new shipment will NOT be created and the ID for the previously created shipment will be returned. If the previously created shipment had an error during booking or was cancelled then a new shipment with the unique_id will be created and unique_id will be associated with this new shipment.

payment_method_id
required
string

Payment method to use, obtained from /finance/payment-methods.

(UPDATED in 2.7.0) If you have activated Prepaid Shipping in the customer portal, you must use your prepaid payment method to book shipments.

customs_and_duties_payment_method_id
string

(NEW in 2.6.0) Payment method to use to pay for the customs charges when booking a DDP shipment (shipper pays the customs charges). If omitted, payment_method_id will be used to pay for all charges including customs charges.

If you are booking a DDP shipment and payment_method_id is your Net Terms payment method, then you must specify a credit card payment method in this field to pay for the customs charges.

Obtained from /finance/payment-methods.

(UPDATED in 2.7.0) If you have activated Prepaid Shipping in the customer portal, you must use your prepaid payment method to book shipments.

service_id
required
string

Service to book with.

required
object (ShippingDetails)

Details on a shipment.

object

Customs invoice info. Required for international shipments.

object (PickupDetails)

Courier pickup details, required if courier service utilized.

object (DispatchDetails)

LTL dispatch details, required if dispatch service utilized.

Array of objects

(NEW in 2.6.0) Paperless customs documents to upload to the carrier, if supported.

Currently, we support paperless customs documents for international shipments with paperless rates from FedEx Courier and UPS. Each carrier limits the number of files that can be uploaded:

  • FedEx Courier: up to 5 files may be uploaded.
  • UPS: up to 13 files may be uploaded.

A paperless customs invoice is created automatically: it is not necessary to upload one. The paperless customs invoice does not count towards the maximum # of files that may be uploaded.

Since an API request is limited to at most 6 MB, and files must be Base64 encoded, this puts an upper limit of approximately 4.5 MB (before Base64 encoding) on the total size of all files that may be uploaded in a single request.

Responses

Request samples

Content type
application/json
{
  • "unique_id": "string",
  • "payment_method_id": "string",
  • "customs_and_duties_payment_method_id": "string",
  • "service_id": "string",
  • "details": {
    },
  • "customs_invoice": {
    },
  • "pickup_details": {
    },
  • "dispatch_details": {
    },
  • "paperless_customs_documents": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "previously_created": true
}

Retrieve details on a shipment.

Retrieve details on a shipment.

Authorizations:
ApiKeyAuth
path Parameters
shipment_id
required
string

The shipment ID to retrieve details on.

Responses

Response samples

Content type
application/json
{
  • "shipment": {
    }
}

2.8.0 changes

Request a rate estimate.

Request a rate estimate.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
services
Array of strings

List of service IDs for which to get rates. If not provided then all services will be queried for rates.

excluded_services
Array of strings

Excluded list of service IDs for which to ignore rates from.

object (ShippingDetails)

Details on a shipment.

Responses

Request samples

Content type
application/json
{
  • "services": [
    ],
  • "excluded_services": [
    ],
  • "details": {
    }
}

Response samples

Content type
application/json
{
  • "request_id": "string"
}

Book a shipment.

Book a shipment.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
unique_id
required
string

Maximum length of 128 characters. Uppercase and lowercase characters are considered equal for comparisons. Used to uniquely identify a shipment. If the unique_id matches a previously created shipment that is in the process of booking or booked successfully then a new shipment will NOT be created and the ID for the previously created shipment will be returned. If the previously created shipment had an error during booking or was cancelled then a new shipment with the unique_id will be created and unique_id will be associated with this new shipment.

payment_method_id
required
string

Payment method to use, obtained from /finance/payment-methods.

(UPDATED in 2.7.0) If you have activated Prepaid Shipping in the customer portal, you must use your prepaid payment method to book shipments.

customs_and_duties_payment_method_id
string

(NEW in 2.6.0) Payment method to use to pay for the customs charges when booking a DDP shipment (shipper pays the customs charges). If omitted, payment_method_id will be used to pay for all charges including customs charges.

If you are booking a DDP shipment and payment_method_id is your Net Terms payment method, then you must specify a credit card payment method in this field to pay for the customs charges.

Obtained from /finance/payment-methods.

(UPDATED in 2.7.0) If you have activated Prepaid Shipping in the customer portal, you must use your prepaid payment method to book shipments.

service_id
required
string

Service to book with.

required
object (ShippingDetails)

Details on a shipment.

object

Customs invoice info. Required for international shipments.

object (PickupDetails)

Courier pickup details, required if courier service utilized.

object (DispatchDetails)

LTL dispatch details, required if dispatch service utilized.

Array of objects

(NEW in 2.6.0) Paperless customs documents to upload to the carrier, if supported.

Currently, we support paperless customs documents for international shipments with paperless rates from FedEx Courier and UPS. Each carrier limits the number of files that can be uploaded:

  • FedEx Courier: up to 5 files may be uploaded.
  • UPS: up to 13 files may be uploaded.

A paperless customs invoice is created automatically: it is not necessary to upload one. The paperless customs invoice does not count towards the maximum # of files that may be uploaded.

Since an API request is limited to at most 6 MB, and files must be Base64 encoded, this puts an upper limit of approximately 4.5 MB (before Base64 encoding) on the total size of all files that may be uploaded in a single request.

Responses

Request samples

Content type
application/json
{
  • "unique_id": "string",
  • "payment_method_id": "string",
  • "customs_and_duties_payment_method_id": "string",
  • "service_id": "string",
  • "details": {
    },
  • "customs_invoice": {
    },
  • "pickup_details": {
    },
  • "dispatch_details": {
    },
  • "paperless_customs_documents": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "previously_created": true
}

2.10.0 changes

Book a shipment.

Book a shipment.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
unique_id
required
string

Maximum length of 128 characters. Uppercase and lowercase characters are considered equal for comparisons. Used to uniquely identify a shipment. If the unique_id matches a previously created shipment that is in the process of booking or booked successfully then a new shipment will NOT be created and the ID for the previously created shipment will be returned. If the previously created shipment had an error during booking or was cancelled then a new shipment with the unique_id will be created and unique_id will be associated with this new shipment.

payment_method_id
required
string

Payment method to use, obtained from /finance/payment-methods.

(UPDATED in 2.7.0) If you have activated Prepaid Shipping in the customer portal, you must use your prepaid payment method to book shipments.

customs_and_duties_payment_method_id
string

(NEW in 2.6.0) Payment method to use to pay for the customs charges when booking a DDP shipment (shipper pays the customs charges). If omitted, payment_method_id will be used to pay for all charges including customs charges.

If you are booking a DDP shipment and payment_method_id is your Net Terms payment method, then you must specify a credit card payment method in this field to pay for the customs charges.

Obtained from /finance/payment-methods.

(UPDATED in 2.7.0) If you have activated Prepaid Shipping in the customer portal, you must use your prepaid payment method to book shipments.

service_id
required
string

Service to book with.

required
object (ShippingDetails)

Details on a shipment.

object

Customs invoice info. Required for international shipments.

object (PickupDetails)

Courier pickup details, required if courier service utilized.

object (DispatchDetails)

LTL dispatch details, required if dispatch service utilized.

Array of objects

(NEW in 2.6.0) Paperless customs documents to upload to the carrier, if supported.

Currently, we support paperless customs documents for international shipments with paperless rates from FedEx Courier and UPS. Each carrier limits the number of files that can be uploaded:

  • FedEx Courier: up to 5 files may be uploaded.
  • UPS: up to 13 files may be uploaded.

A paperless customs invoice is created automatically: it is not necessary to upload one. The paperless customs invoice does not count towards the maximum # of files that may be uploaded.

Since an API request is limited to at most 6 MB, and files must be Base64 encoded, this puts an upper limit of approximately 4.5 MB (before Base64 encoding) on the total size of all files that may be uploaded in a single request.

Responses

Request samples

Content type
application/json
{
  • "unique_id": "string",
  • "payment_method_id": "string",
  • "customs_and_duties_payment_method_id": "string",
  • "service_id": "string",
  • "details": {
    },
  • "customs_invoice": {
    },
  • "pickup_details": {
    },
  • "dispatch_details": {
    },
  • "paperless_customs_documents": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "previously_created": true
}

2.9.0 changes

Book a shipment.

Book a shipment.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
unique_id
required
string

Maximum length of 128 characters. Uppercase and lowercase characters are considered equal for comparisons. Used to uniquely identify a shipment. If the unique_id matches a previously created shipment that is in the process of booking or booked successfully then a new shipment will NOT be created and the ID for the previously created shipment will be returned. If the previously created shipment had an error during booking or was cancelled then a new shipment with the unique_id will be created and unique_id will be associated with this new shipment.

payment_method_id
required
string

Payment method to use, obtained from /finance/payment-methods.

(UPDATED in 2.7.0) If you have activated Prepaid Shipping in the customer portal, you must use your prepaid payment method to book shipments.

customs_and_duties_payment_method_id
string

(NEW in 2.6.0) Payment method to use to pay for the customs charges when booking a DDP shipment (shipper pays the customs charges). If omitted, payment_method_id will be used to pay for all charges including customs charges.

If you are booking a DDP shipment and payment_method_id is your Net Terms payment method, then you must specify a credit card payment method in this field to pay for the customs charges.

Obtained from /finance/payment-methods.

(UPDATED in 2.7.0) If you have activated Prepaid Shipping in the customer portal, you must use your prepaid payment method to book shipments.

service_id
required
string

Service to book with.

required
object (ShippingDetails)

Details on a shipment.

object

Customs invoice info. Required for international shipments.

object (PickupDetails)

Courier pickup details, required if courier service utilized.

object (DispatchDetails)

LTL dispatch details, required if dispatch service utilized.

Array of objects

(NEW in 2.6.0) Paperless customs documents to upload to the carrier, if supported.

Currently, we support paperless customs documents for international shipments with paperless rates from FedEx Courier and UPS. Each carrier limits the number of files that can be uploaded:

  • FedEx Courier: up to 5 files may be uploaded.
  • UPS: up to 13 files may be uploaded.

A paperless customs invoice is created automatically: it is not necessary to upload one. The paperless customs invoice does not count towards the maximum # of files that may be uploaded.

Since an API request is limited to at most 6 MB, and files must be Base64 encoded, this puts an upper limit of approximately 4.5 MB (before Base64 encoding) on the total size of all files that may be uploaded in a single request.

Responses

Request samples

Content type
application/json
{
  • "unique_id": "string",
  • "payment_method_id": "string",
  • "customs_and_duties_payment_method_id": "string",
  • "service_id": "string",
  • "details": {
    },
  • "customs_invoice": {
    },
  • "pickup_details": {
    },
  • "dispatch_details": {
    },
  • "paperless_customs_documents": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "previously_created": true
}

2.6.3

Get courier pickup availability

If date/ready_at/ready_until are omitted, defaults are used. The response returns the validated pickup window. If the requested window is not available, the window may be adjusted to the next available window. When a full window is provided, exact_match indicates whether the returned window matches the requested window. Supported packaging types: package, courier-pak, envelope.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
carrier_id
required
string
service_id
required
string
required
object
required
object
object (Date)
object (TimeOfDay)

Time of day in 24 hour time.

object (TimeOfDay)

Time of day in 24 hour time.

Responses

Request samples

Content type
application/json
{
  • "carrier_id": "string",
  • "service_id": "string",
  • "origin": {
    },
  • "destination": {
    },
  • "pickup_date": {
    },
  • "open_time": {
    },
  • "close_time": {
    }
}

Response samples

Content type
application/json
{
  • "pickup_date": {
    },
  • "open_time": {
    },
  • "close_time": {
    }
}

2.8.0

Get Validated HTS Codes

Use Recommended HTS code for your customs' products. All fields are optional but must be provided for the most accurate results.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
Array of objects

Responses

Request samples

Content type
application/json
{
  • "data": [
    ]
}

Response samples

Content type
application/json
[
  • {
    }
]

2.10.0

Get Validated Regulation Information

Validate regulations for your customs' products. All fields are optional but must be provided for the most accurate results. id is used for mapping request to response and does not have any impact over the returned results.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
regulation_type
enum
Value: "CPSC"

Regulation Type to check for, only CPSC is available currently.

Array of objects

Responses

Request samples

Content type
application/json
{
  • "regulation_type": "CPSC",
  • "data": [
    ]
}

Response samples

Content type
application/json
[
  • {
    }
]

Get Intended Use Case Map

Returns a map of product categories to a map of use case codes and descriptions.

Authorizations:
ApiKeyAuth

Responses

Response samples

Content type
application/json
{
  • "MedicalDevices": {
    },
  • "Food": {
    },
  • "Cosmetic": {
    },
  • "Biological": {
    },
  • "CPSC": {
    }
}

Get Citation Code Details

Returns accepted citation codes and descriptions grouped by CertificateTypeCPC and CertificateTypeGCC.

Authorizations:
ApiKeyAuth

Responses

Response samples

Content type
application/json
{
  • "CertificateTypeCPC": {
    },
  • "CertificateTypeGCC": {
    }
}