Skip to content

Carrier integration ​

Without a carrier integration, the warehouse creates shipping labels outside Boxture and types or scans the tracking number into the shipment. With a carrier integration, Boxture sends the shipment to the carrier platform itself, receives the label and the tracking number back, and attaches the label to the shipment ready for printing. This page explains how that works, how to configure it, and how to investigate a label that could not be created.

Carriers, service types and shipping methods themselves are described in Carriers and shipping methods.

How it works ​

A shipment is linked to a carrier through its shipping method. When that carrier has an integration method configured for the shipment's account and location, Boxture creates the label automatically:

  1. Boxture collects the shipment's details: sender (the warehouse), recipient, importer and exporter if present, the parcels with their weight, dimensions and contents, the delivery terms and the order reference.
  2. It sends these to the carrier platform at the configured API endpoint, authenticated with the authentication key.
  3. The platform books the shipment with the actual carrier and answers with a tracking number (and, if applicable, a return tracking number) and the label.
  4. Boxture stores the tracking number on the shipment and all its parcels, attaches the label to the shipment as a waybill (ZPL for label printers, or PDF), and marks the shipment labelled.
  5. The label is then printed and e-mails are sent like any other paperwork, through the shipment's papers and messaging templates for the "paperwork generated" event.

The request runs in the background. You receive a notification when it succeeds ("Processed shipment ... for the carrier.") or fails.

Integration methods ​

The setting Carrier › Integration method offers two choices:

MethodStatus
SkeprSupported. Boxture creates labels through the Skepr shipping platform, which books the shipment with the actual carrier.
PortoListed, but Boxture's label creation does not support it. A shipment for a carrier with this method fails with "Integration method porto is not supported."

The carrier's code in Boxture tells Skepr which carrier to use. A few codes are translated: dhl_express, dhl_parcel, post_nl, dpd_nl, fcb and nfo; any other code is passed on unchanged. For UPS, the shipment's service type name (for example "Standard", "Ground" or "Worldwide Express") is translated into the UPS service code.

Configuring a carrier ​

  1. Go to Admin › Carriers & Services › Carriers and click the carrier.

  2. The carrier page shows its settings. Set them for the account (and location) that ships with this carrier:

    SettingWhat to enter
    Integration methodSkepr. Leave empty to create labels outside Boxture.
    API endpointThe address of the platform's shipment API. Required.
    Authentication keyThe API token for the platform. Required.
    Authentication passwordA password, if the platform requires one.
    Account numberYour account number with the carrier.
    Pickup timeWhen the carrier collects parcels (local time of the location, default 17:00). Used to calculate an order's ship date, not for label creation. See Cutoff and SLA.

These settings are looked up from the shipment's account upwards through its parent accounts. Configure a carrier once on a parent account to use it for all customers below it, and override it on a customer account that has its own contract with the carrier. Most settings can also be made specific to a location and a service type, for example to use a different account number per warehouse.

When labels are created ​

The moment depends on the setting Packing › Create label on pack complete, which can be set per carrier.

SettingWhen the label is createdShipment states
OnAs soon as the order is completely packedpending → labelling → labelled → shipping → shipped
Off (default)When the shipment is shippedshipped → labelling → labelled

With the setting on, the label is ready while the parcel is still at the packing station, which is the usual choice when packers print and attach labels themselves. If the order is not yet fully packed, no label is requested and you see "Order ... is not fully packed."

Creating a label manually ​

Open the shipment and choose Label in its menu. This sends the request again, for example after correcting an address or a parcel weight. The Label action is available to admins, warehouse associates and shippers while the shipment is pending or shipped.

Return orders ​

When a return order has a shipping method whose carrier has an integration method for the return's destination location, Boxture creates the return shipment and requests the return label straight away, so it can be sent to the customer. If that fails, you see "Error during waybill create with the carrier, verify and/or update the shipment details before trying again."

When a label fails ​

If the platform rejects the shipment or cannot be reached:

  • you receive the notification "Failed to process shipment ... for the carrier." with the reason, usually the carrier's own error message (for example an invalid postal code or a missing phone number);
  • the shipment goes back to pending (or stays shipped if everything on it had already been shipped), so it can be corrected and labelled again.
MessageCause
Integration method ... is not supported.The carrier's integration method is not Skepr.
Missing authorization_key / no API endpointThe authentication key or API endpoint is not set for this account, location and service type.
Order ... is not fully packed.Create label on pack complete is on and the order still has items to pack.
Carrier faced an internal server error.The platform answered with an internal error; the details follow. Try again later.
Error during waybill create with the carrier, verify and/or update the shipment details before trying again ...The carrier rejected the data. Check the addresses, weights, dimensions and customs values on the shipment.

To fix a rejected shipment: correct the shipment (or the order's delivery contact), then choose Label on the shipment.

Logged requests ​

Every request Boxture sends to the carrier platform is recorded with its response, so you can see exactly what was sent and what came back.

Open the shipment and go to the Other card. The Carrier waybill requests tab lists each attempt with:

ColumnMeaning
ShipmentThe shipment the request was for
Carrier nameThe carrier
Response statusThe HTTP status of the answer (for example 201 for success, 422 for rejected data)
ErrorsThe error messages returned by the platform
Created atWhen the request was sent

Click a row to open the request. The page shows the Response Info (status), the Request Body and Response Body, and the Response Headers and Request Headers. This is the information the carrier platform's support team needs when a label keeps failing.

TIP

When a label fails, check the Errors column first. In most cases it names the field the carrier did not accept, such as the recipient's phone number or a parcel weight of zero.

Tracking ​

The tracking number from the carrier is shown on the shipment and its parcels, used in shipping confirmation e-mails, and passed on to sales channels by the integrations (for example to Shopify and WooCommerce). The tracking link is built from the carrier's tracking URL, configured on the carrier. See Shipments and Labels and documents.

Boxture Help