PacSortDevelopers
04 / Delivery services

Choose a delivery service

Choose distributionChannel and serviceLevel for each shipment. You can switch between package and parcel from one request to the next using the same account.

Delivery options and request values
Your delivery optiondistributionChannelserviceLevelWhen to use it
Varubrev / mailbox packagepackageeconomyRecommended combination for the Varubrev use case. PacSort selects the suitable carrier.
Packagepackageeconomy or prioritySmall-package distribution within the package weight and size limits.
Parcel / ombudparceleconomy or priorityParcel distribution, including service-point delivery to private recipients. Enter the actual recipient type; a company recipient can use a different delivery service.

On smaller screens, scroll the table sideways to see every column. With a keyboard, focus the table and use the arrow keys.

Check the weight and size limits by channel, destination and recipient type. The channel defaults to package when omitted. serviceLevel is required; use lowercase values.

Letter is in beta

letter is available for beta testing. For a Varubrev integration, use package with economy. A successful beta request is not a recommendation to use letter in your production integration.

Can I force PostNord Varubrev?

The recommended request is package + economy. PacSort optimises carrier selection using the shipment data and your account's routing and prices. The request does not select a named carrier product.

Can I require service-point delivery?

Use parcel for the ombud use case and supply accurate recipient details. For a private recipient, omit item.recipient.company. The chosen service also depends on the recipient type, destination and shipment limits.

Can I choose a specific ombud?

This endpoint has no service-point ID selector. pickupSettings describes collection from the sender; it does not select the recipient's ombud.

Example: select the parcel channel

This synthetic request is for a private recipient and includes optional collection details. Replace the recipient, measurements and collection date before testing. pickupSettings is optional in the create request; it is not required just because the channel is parcel.

View the complete parcel request
JSON · parcel channel request
{
  "serviceLevel": "economy",
  "distributionChannel": "parcel",
  "labelsSettings": {
    "layout": "a4_portrait",
    "mode": "separate",
    "positioning": "single"
  },
  "item": {
    "invoiceReference": "DEMO-DELIVERY-1002",
    "weight": 250,
    "height": 4,
    "length": 20,
    "width": 15,
    "recipient": {
      "firstName": "Alex",
      "lastName": "Example",
      "countryCode": "SE",
      "postalCode": "11122",
      "city": "Stockholm",
      "addressLine": "Exempelgatan 1",
      "email": "recipient@example.com"
    }
  },
  "pickupSettings": {
    "date": "2030-01-15",
    "instructions": "Collect from the sender reception."
  }
}

Company recipients and departments

A company shipment can omit firstName and lastName. Keep a real company in item.recipient.company. For a private recipient, firstName is required; lastName is optional.

There is no carrier-independent attention service in this API. To address a company department without a person's name, include it in the company recipient name, for example "company": "Exempel AB, Ekonomi", and omit both person-name fields. Keep the complete text within 35 characters for compatibility with the shortest name fields in the current integrations. Longer company/contact names may be shortened by individual carriers. This identifies the addressee; it does not order personal delivery or override identification requirements.

Provide the actual recipient's email or phoneNumber for notifications. Carrier and product requirements still apply: some services need a mobile number, both contact channels, or a named individual. Do not replace a person's name with a department for identity-checked collection.

Choose a sender under the same account

Use GET /sender-addresses with your existing API key to list your sender profiles. Send the chosen id as senderAddressId in POST /assignment/single. The sender address, configured prices and priorities belong to that profile; billing stays on the main account. Omitting the field keeps the existing country/default sender selection. An unknown ID or an address belonging to another account is rejected.

Create and edit profiles in PacSort under sender addresses. PacSort staff enter a configured tracking and notification brand identifier as text. The selected sender brand takes priority; existing account branding is used when the sender has no branding. Saving a brand identifier does not create a tracking domain or notification template. A used branded profile cannot be deleted or rebranded; create a new profile to preserve the identity of previous shipments.

Share the returned tracking link

Use item.trackingUrl from the booking response or a later GET /assignment/single/{id}. It uses the selected sender brand with its configured environment, then falls back to existing account branding when the sender has no branding. Selecting a branded profile does not change which party sends notifications: PacSort branding applies to PacSort notifications; carrier messages depend on the delivery service.

View a complete company/department request
JSON · company department and sender profile
{
  "serviceLevel": "economy",
  "distributionChannel": "package",
  "labelsSettings": {
    "layout": "a4_portrait",
    "mode": "separate",
    "positioning": "single"
  },
  "item": {
    "invoiceReference": "DEMO-DELIVERY-1003",
    "weight": 250,
    "height": 3,
    "length": 20,
    "width": 15,
    "recipient": {
      "company": "Exempel AB, Ekonomi",
      "countryCode": "SE",
      "postalCode": "11122",
      "city": "Stockholm",
      "addressLine": "Exempelgatan 1",
      "email": "recipient@example.com"
    }
  },
  "senderAddressId": "37dcd9d1-4f26-4f80-bdf1-ad2cf69e8f20"
}

Replace the synthetic senderAddressId with an ID from your GET /sender-addresses response, and use the actual recipient and measurements. Download company shipment JSON.

Read the selected carrier and status

The returned item.carrierHandle, when populated, is the carrier PacSort selected as the best option for that shipment. No separate carrier-selection check is needed. Follow the tracking guide for delivery progress using status fields.

See JSON examples and units, the label workflow and the full API reference.