DEVELOPERS / CUSTOMER INTEGRATION

From your first request to a connected shipping workflow.

Authenticate, create shipments and labels, and track your transport. Build with concrete JSON examples from the Customer Integration v2 Postman collection.

BASE URLhttps://api.mmcore.techJSON8 REQUESTS
START HERE

Your first integration

  1. Import the collection

    Set baseUrl, authUsername and authPassword as collection variables in Postman. The download contains no populated credentials.

  2. Obtain an API key

    Run GET /auth. The Postman script saves the returned apikey in the apiKey variable.

  3. Configure your shipment

    Replace example addresses and carrier_id / carrier_option_id with values for your account. DO=Y returns label content directly.

v2 is the Postman collection name, not a URL prefix. Use the routes below. Send requests from your backend and keep credentials out of browser code and logs.
01 / GET

Create an API key

Authenticate using AUTH_USER and AUTH_PW headers. The test script stores apikey in the apiKey collection variable when present.

GET/auth

Headers

NameValue
AUTH_USER{{authUsername}}
AUTH_PW{{authPassword}}
cURL · Bash
curl --request GET "https://api.mmcore.tech/auth" \
  --header "AUTH_USER: ${MMCORE_AUTH_USER}" \
  --header "AUTH_PW: ${MMCORE_AUTH_PASSWORD}"

Response examples

200 · GET /auth - Create API key
application/json
{
  "state": "true",
  "message": "APIKey gegenereerd.",
  "Errors": "",
  "accessByHeader": "Y",
  "id": "EXAMPLE_CUSTOMER_ID",
  "id2": "EXAMPLE_ACCOUNT_ID",
  "name": "Example Customer",
  "apikey": "EXAMPLE_API_KEY",
  "DatumTijd": "2025-07-01 15:00:00"
}
02 / POST

Create a shipment

Create a shipment using a JSON body without customs/commercial invoice shipment_details.

POST/action/{{apiKey}}/101?o=JSON

Headers

NameValue
Content-Typeapplication/json

Query parameters

NameExample value
oJSON
cURL · Bash
curl --request POST "https://api.mmcore.tech/action/${MMCORE_API_KEY}/101?o=JSON" \
  --header 'Content-Type: application/json' \
  --data-binary @request.json
request.json
{
  "created_by": "CustomerMiddleware",
  "print_phone_number": "+12025550123",
  "carrier_id": 9999,
  "carrier_option_id": 0,
  "signature_required": false,
  "number_of_packages": 1,
  "weight": 1.2,
  "length": 10,
  "width": 30,
  "height": 20,
  "is_company": true,
  "company_name": "Example Company",
  "first_name": "John",
  "last_name": "Doe",
  "email": "john.doe@example.com",
  "phone_number": "+12025550123",
  "content": "Consumer goods",
  "street": "Example Street",
  "house_number": "1",
  "postal_code": "1234AB",
  "city": "Amsterdam",
  "country": "NL",
  "reference": "ORDER-10001",
  "reference2": "CUSTOMER-20002",
  "return_label": false
}
Body fields and example types

Types are derived from the collection example. The collection does not include a complete required/optional validation specification.

FieldType
created_bystring
print_phone_numberstring
carrier_idnumber
carrier_option_idnumber
signature_requiredboolean
number_of_packagesnumber
weightnumber
lengthnumber
widthnumber
heightnumber
is_companyboolean
company_namestring
first_namestring
last_namestring
emailstring
phone_numberstring
contentstring
streetstring
house_numberstring
postal_codestring
citystring
countrystring
referencestring
reference2string
return_labelboolean

Response examples

200 · 200 OK - DO=Y direct label response
application/json
{
  "status": true,
  "labels": [
    {
      "barcode": "EXAMPLE_TRACKING_NUMBER",
      "labeltype": "pdf",
      "encodeType": "base64",
      "content": "Base64Label",
      "carrierId": "9999",
      "carrierOptionId": "0",
      "shipmentId": "EXAMPLE_SHIPMENT_ID"
    }
  ],
  "shipmentID": "EXAMPLE_SHIPMENT_ID",
  "SubLogID": "EXAMPLE_SUBLOG_ID"
}
200 · 200 OK - DO=N Only shipment creation
application/json
{
  "state": "true",
  "message": "Shipment created.",
  "Errors": "",
  "ActionName": 101,
  "carrierId": "9999",
  "carrierOptionId": "0",
  "logId": "EXAMPLE_LOG_ID",
  "parcelInformation": {
    "MinL": "15.000",
    "MaxL": "200.000",
    "DBMinB": "10.000",
    "DBMaxB": "80.000",
    "DBMinH": "0.000",
    "DBMaxH": "60.000",
    "DBMinGewicht": "0.000",
    "DBMaxGewicht": "31.000",
    "DBMaxVolume": "200",
    "DBMaxOmtrek": "300"
  },
  "Pricing": null,
  "trace": "https://example.com/tracking/EXAMPLE_TRACKING_NUMBER",
  "zpl": "",
  "ZendingID": 123456,
  "Barcode": "EXAMPLE_TRACKING_NUMBER",
  "url": "https://example.com/labels/EXAMPLE_SHIPMENT_ID"
}
03 / POST

Shipment with customs details

Create a shipment using a JSON body with customs/commercial invoice shipment_details.

POST/action/{{apiKey}}/101?o=JSON

Headers

NameValue
Content-Typeapplication/json

Query parameters

NameExample value
oJSON
cURL · Bash
curl --request POST "https://api.mmcore.tech/action/${MMCORE_API_KEY}/101?o=JSON" \
  --header 'Content-Type: application/json' \
  --data-binary @request.json
request.json
{
  "created_by": "CustomerMiddleware",
  "print_phone_number": "+12025550123",
  "carrier_id": 9999,
  "carrier_option_id": 0,
  "signature_required": false,
  "number_of_packages": 1,
  "weight": 1.2,
  "length": 10,
  "width": 30,
  "height": 20,
  "is_company": false,
  "company_name": "",
  "first_name": "John",
  "last_name": "Doe",
  "email": "john.doe@example.com",
  "phone_number": "+12025550123",
  "content": "Consumer goods",
  "street": "Example Street",
  "house_number": "1",
  "postal_code": "10001",
  "city": "New York",
  "country": "US",
  "reference": "ORDER-10001",
  "reference2": "CUSTOMER-20002",
  "return_label": false,
  "shipment_details": {
    "invoice_number": "INV-10001",
    "invoice_date": "2026-05-06",
    "invoice_terms": "DDP",
    "invoice_currency": "EUR",
    "invoice_reason": "Sale",
    "sender": {
      "invoice_sender_company_name": "Example Seller B.V.",
      "invoice_sender_name": "Jane Seller",
      "invoice_sender_street": "Seller Street",
      "invoice_sender_house_number": "10",
      "invoice_sender_postal_code": "1234AB",
      "invoice_sender_city": "Amsterdam",
      "invoice_sender_country": "NL",
      "invoice_sender_email": "seller@example.com",
      "invoice_sender_phone_number": "+12025550123",
      "invoice_sender_type": "Y",
      "invoice_sender_vat_number": "NL000000000B00",
      "invoice_sender_eori_number": "NL000000000"
    },
    "recipient": {
      "invoice_recipient_company_name": "",
      "invoice_recipient_name": "John Doe",
      "invoice_recipient_street": "Example Street",
      "invoice_recipient_house_number": "1",
      "invoice_recipient_postal_code": "10001",
      "invoice_recipient_city": "New York",
      "invoice_recipient_country": "US",
      "invoice_recipient_email": "john.doe@example.com",
      "invoice_recipient_phone_number": "+12025550123",
      "invoice_recipient_type": "N",
      "invoice_recipient_vat_number": "",
      "invoice_recipient_eori_number": ""
    },
    "invoice_items": [
      {
        "productcode": "SKU-123456",
        "product": "Cotton T-shirt",
        "quantity": 1,
        "tariffcode": "610910",
        "country_origin": "CN",
        "weight": 0.2,
        "itemprice": 14.9
      }
    ]
  }
}
Body fields and example types

Types are derived from the collection example. The collection does not include a complete required/optional validation specification.

FieldType
created_bystring
print_phone_numberstring
carrier_idnumber
carrier_option_idnumber
signature_requiredboolean
number_of_packagesnumber
weightnumber
lengthnumber
widthnumber
heightnumber
is_companyboolean
company_namestring
first_namestring
last_namestring
emailstring
phone_numberstring
contentstring
streetstring
house_numberstring
postal_codestring
citystring
countrystring
referencestring
reference2string
return_labelboolean
shipment_detailsobject
shipment_details.invoice_numberstring
shipment_details.invoice_datestring
shipment_details.invoice_termsstring
shipment_details.invoice_currencystring
shipment_details.invoice_reasonstring
shipment_details.senderobject
shipment_details.sender.invoice_sender_company_namestring
shipment_details.sender.invoice_sender_namestring
shipment_details.sender.invoice_sender_streetstring
shipment_details.sender.invoice_sender_house_numberstring
shipment_details.sender.invoice_sender_postal_codestring
shipment_details.sender.invoice_sender_citystring
shipment_details.sender.invoice_sender_countrystring
shipment_details.sender.invoice_sender_emailstring
shipment_details.sender.invoice_sender_phone_numberstring
shipment_details.sender.invoice_sender_typestring
shipment_details.sender.invoice_sender_vat_numberstring
shipment_details.sender.invoice_sender_eori_numberstring
shipment_details.recipientobject
shipment_details.recipient.invoice_recipient_company_namestring
shipment_details.recipient.invoice_recipient_namestring
shipment_details.recipient.invoice_recipient_streetstring
shipment_details.recipient.invoice_recipient_house_numberstring
shipment_details.recipient.invoice_recipient_postal_codestring
shipment_details.recipient.invoice_recipient_citystring
shipment_details.recipient.invoice_recipient_countrystring
shipment_details.recipient.invoice_recipient_emailstring
shipment_details.recipient.invoice_recipient_phone_numberstring
shipment_details.recipient.invoice_recipient_typestring
shipment_details.recipient.invoice_recipient_vat_numberstring
shipment_details.recipient.invoice_recipient_eori_numberstring
shipment_details.invoice_itemsarray
shipment_details.invoice_items[].productcodestring
shipment_details.invoice_items[].productstring
shipment_details.invoice_items[].quantitynumber
shipment_details.invoice_items[].tariffcodestring
shipment_details.invoice_items[].country_originstring
shipment_details.invoice_items[].weightnumber
shipment_details.invoice_items[].itempricenumber

Response examples

200 · 200 OK - DO=Y direct label response
application/json
{
  "status": true,
  "labels": [
    {
      "barcode": "EXAMPLE_TRACKING_NUMBER",
      "labeltype": "pdf",
      "encodeType": "base64",
      "content": "Base64Label",
      "carrierId": "9999",
      "carrierOptionId": "0",
      "shipmentId": "EXAMPLE_SHIPMENT_ID"
    }
  ],
  "shipmentID": "EXAMPLE_SHIPMENT_ID",
  "SubLogID": "EXAMPLE_SUBLOG_ID"
}
200 · 200 OK - DO=N Only shipment creation
application/json
{
  "state": "true",
  "message": "Shipment created.",
  "Errors": "",
  "ActionName": 101,
  "carrierId": "9999",
  "carrierOptionId": "0",
  "logId": "EXAMPLE_LOG_ID",
  "parcelInformation": {
    "MinL": "15.000",
    "MaxL": "200.000",
    "DBMinB": "10.000",
    "DBMaxB": "80.000",
    "DBMinH": "0.000",
    "DBMaxH": "60.000",
    "DBMinGewicht": "0.000",
    "DBMaxGewicht": "31.000",
    "DBMaxVolume": "200",
    "DBMaxOmtrek": "300"
  },
  "Pricing": null,
  "trace": "https://example.com/tracking/EXAMPLE_TRACKING_NUMBER",
  "zpl": "",
  "ZendingID": 123456,
  "Barcode": "EXAMPLE_TRACKING_NUMBER",
  "url": "https://example.com/labels/EXAMPLE_SHIPMENT_ID"
}
04 / POST

Create shipment and label

Use DO=Y when the response should return direct label content. When communicating with the developers the best way to help find an solution as fast as possible is to send over the SubLogID.

POST/action/{{apiKey}}/101?o=JSON&DO=Y

Headers

NameValue
Content-Typeapplication/json

Query parameters

NameExample value
oJSON
DOY
cURL · Bash
curl --request POST "https://api.mmcore.tech/action/${MMCORE_API_KEY}/101?o=JSON&DO=Y" \
  --header 'Content-Type: application/json' \
  --data-binary @request.json
request.json
{
  "created_by": "CustomerMiddleware",
  "print_phone_number": "+12025550123",
  "carrier_id": 9999,
  "carrier_option_id": 0,
  "signature_required": false,
  "number_of_packages": 1,
  "weight": 1.2,
  "length": 10,
  "width": 30,
  "height": 20,
  "is_company": true,
  "company_name": "Example Company",
  "first_name": "John",
  "last_name": "Doe",
  "email": "john.doe@example.com",
  "phone_number": "+12025550123",
  "content": "Consumer goods",
  "street": "Example Street",
  "house_number": "1",
  "postal_code": "1234AB",
  "city": "Amsterdam",
  "country": "NL",
  "reference": "ORDER-10001",
  "reference2": "CUSTOMER-20002",
  "return_label": false
}
Body fields and example types

Types are derived from the collection example. The collection does not include a complete required/optional validation specification.

FieldType
created_bystring
print_phone_numberstring
carrier_idnumber
carrier_option_idnumber
signature_requiredboolean
number_of_packagesnumber
weightnumber
lengthnumber
widthnumber
heightnumber
is_companyboolean
company_namestring
first_namestring
last_namestring
emailstring
phone_numberstring
contentstring
streetstring
house_numberstring
postal_codestring
citystring
countrystring
referencestring
reference2string
return_labelboolean

Response examples

200 · 200 OK - DO=Y direct label response
application/json
{
  "status": true,
  "labels": [
    {
      "barcode": "EXAMPLE_TRACKING_NUMBER",
      "labeltype": "pdf",
      "encodeType": "base64",
      "content": "Base64Label",
      "carrierId": "9999",
      "carrierOptionId": "0",
      "shipmentId": "EXAMPLE_SHIPMENT_ID"
    }
  ],
  "shipmentID": "EXAMPLE_SHIPMENT_ID",
  "SubLogID": "EXAMPLE_SUBLOG_ID"
}
200 · 200 OK - DO=N Only shipment creation
application/json
{
  "state": "true",
  "message": "Shipment created.",
  "Errors": "",
  "ActionName": 101,
  "carrierId": "9999",
  "carrierOptionId": "0",
  "logId": "EXAMPLE_LOG_ID",
  "parcelInformation": {
    "MinL": "15.000",
    "MaxL": "200.000",
    "DBMinB": "10.000",
    "DBMaxB": "80.000",
    "DBMinH": "0.000",
    "DBMaxH": "60.000",
    "DBMinGewicht": "0.000",
    "DBMaxGewicht": "31.000",
    "DBMaxVolume": "200",
    "DBMaxOmtrek": "300"
  },
  "Pricing": null,
  "trace": "https://example.com/tracking/EXAMPLE_TRACKING_NUMBER",
  "zpl": "",
  "ZendingID": 123456,
  "Barcode": "EXAMPLE_TRACKING_NUMBER",
  "url": "https://example.com/labels/EXAMPLE_SHIPMENT_ID"
}
05 / GET

Track a shipment

Retrieve tracking information for one barcode, box, or waybill. Query parameters: flight_tracking_setting=only|include|exclude, lang=en|nl, type=barcode|waybill|box, tracking_details=minimal|lastStatus|full.

GET/get_tracking_information/{{apiKey}}/{{trackingCode}}?flight_tracking_setting=include&lang=en&type=barcode&tracking_details=full

Query parameters

NameExample value
flight_tracking_settinginclude
langen
typebarcode
tracking_detailsfull

flight_tracking_setting: only / include / exclude
lang: en / nl
type: barcode / waybill / box
tracking_details: minimal / lastStatus / full

cURL · Bash
curl --request GET "https://api.mmcore.tech/get_tracking_information/${MMCORE_API_KEY}/${TRACKING_CODE}?flight_tracking_setting=include&lang=en&type=barcode&tracking_details=full"

Response examples

200 · GET /get_tracking_information/{{apiKey}}/{{trackingCode}} - Single lookup
application/json
{
  "state": true,
  "numberOfItems": 1,
  "notFound": [],
  "items": {
    "EXAMPLE_TRACKING_NUMBER": [
      {
        "itemNumber": 0,
        "code": "9000",
        "description": "Delivered",
        "location": "Filipstad",
        "dateTime": "2026-06-19 06:07:00"
      },
      {
        "itemNumber": 1,
        "code": "5001",
        "description": "Parcel is out for delivery to recipient",
        "location": "Karlstad",
        "dateTime": "2026-06-18 20:45:00"
      },
      {
        "itemNumber": 2,
        "code": "3000",
        "description": "Parcel has reached a depot",
        "location": "Karlstad",
        "dateTime": "2026-06-18 20:45:00"
      },
      {
        "itemNumber": 3,
        "code": "2006",
        "description": "The cargo is delivered in the destination country",
        "location": "",
        "dateTime": "2026-06-17 16:45:00"
      },
      {
        "itemNumber": 4,
        "code": "2002",
        "description": "The logistics provider has loaded the cargo.",
        "location": "",
        "dateTime": "2026-06-16 11:13:00"
      },
      {
        "itemNumber": 5,
        "code": "99",
        "description": "Label has been created",
        "location": "",
        "dateTime": "2026-06-04 17:32:18"
      }
    ]
  },
  "lastStatus": {
    "EXAMPLE_TRACKING_NUMBER": {
      "itemNumber": 0,
      "code": "9000",
      "description": "Delivered",
      "location": "Filipstad",
      "dateTime": "2026-06-19 06:07:00"
    }
  },
  "flightTracking": []
}
06 / GET

Bulk tracking

Retrieve tracking information for multiple barcodes using a JSON array request body.

This endpoint uses a GET request with a JSON body. Use a compatible server-side HTTP client; browser fetch does not support GET bodies.
GET/get_tracking_information/{{apiKey}}?flight_tracking_setting=include&lang=en&type=barcode&tracking_details=full

Headers

NameValue
Content-Typeapplication/json

Query parameters

NameExample value
flight_tracking_settinginclude
langen
typebarcode
tracking_detailsfull

flight_tracking_setting: only / include / exclude
lang: en / nl
type: barcode / waybill / box
tracking_details: minimal / lastStatus / full

cURL · Bash
curl --request GET "https://api.mmcore.tech/get_tracking_information/${MMCORE_API_KEY}?flight_tracking_setting=include&lang=en&type=barcode&tracking_details=full" \
  --header 'Content-Type: application/json' \
  --data-binary @request.json
request.json
[
  "EXAMPLE_TRACKING_NUMBER_1",
  "EXAMPLE_TRACKING_NUMBER_2"
]
Body fields and example types

Types are derived from the collection example. The collection does not include a complete required/optional validation specification.

FieldType
bodyarray
body[]string

Response examples

200 · GET /get_tracking_information/{{apiKey}} - Bulk barcode lookup
application/json
{
  "state": true,
  "numberOfItems": 2,
  "notFound": [],
  "items": {
    "EXAMPLE_TRACKING_NUMBER_1": [
      {
        "itemNumber": 0,
        "code": "9000",
        "description": "Delivered",
        "location": "Malmo",
        "dateTime": "2026-06-24 01:59:00"
      },
      {
        "itemNumber": 1,
        "code": "5001",
        "description": "Parcel is out for delivery to recipient",
        "location": "Malmo",
        "dateTime": "2026-06-23 16:22:00"
      },
      {
        "itemNumber": 2,
        "code": "3000",
        "description": "Parcel has reached a depot",
        "location": "Early Bird Malmo",
        "dateTime": "2026-06-23 14:18:00"
      },
      {
        "itemNumber": 3,
        "code": "2006",
        "description": "The cargo is delivered in the destination country",
        "location": "",
        "dateTime": "2026-06-23 11:10:00"
      },
      {
        "itemNumber": 4,
        "code": "2002",
        "description": "The logistics provider has loaded the cargo.",
        "location": "",
        "dateTime": "2026-06-19 15:58:00"
      },
      {
        "itemNumber": 5,
        "code": "99",
        "description": "Label has been created",
        "location": "",
        "dateTime": "2026-06-12 19:13:30"
      }
    ],
    "EXAMPLE_TRACKING_NUMBER_2": [
      {
        "itemNumber": 0,
        "code": "9000",
        "description": "Delivered",
        "location": "Hassleholm",
        "dateTime": "2026-06-24 03:39:00"
      },
      {
        "itemNumber": 1,
        "code": "3000",
        "description": "Parcel has reached a depot",
        "location": "Vaxjo",
        "dateTime": "2026-06-23 16:15:00"
      },
      {
        "itemNumber": 2,
        "code": "5001",
        "description": "Parcel is out for delivery to recipient",
        "location": "Malmo",
        "dateTime": "2026-06-23 16:15:00"
      },
      {
        "itemNumber": 3,
        "code": "2006",
        "description": "The cargo is delivered in the destination country",
        "location": "",
        "dateTime": "2026-06-23 11:10:00"
      },
      {
        "itemNumber": 4,
        "code": "2002",
        "description": "The logistics provider has loaded the cargo.",
        "location": "",
        "dateTime": "2026-06-19 15:58:00"
      },
      {
        "itemNumber": 5,
        "code": "99",
        "description": "Label has been created",
        "location": "",
        "dateTime": "2026-06-12 19:04:53"
      }
    ]
  },
  "lastStatus": {
    "EXAMPLE_TRACKING_NUMBER_1": {
      "itemNumber": 0,
      "code": "9000",
      "description": "Delivered",
      "location": "Malmo",
      "dateTime": "2026-06-24 01:59:00"
    },
    "EXAMPLE_TRACKING_NUMBER_2": {
      "itemNumber": 0,
      "code": "9000",
      "description": "Delivered",
      "location": "Hassleholm",
      "dateTime": "2026-06-24 03:39:00"
    }
  },
  "flightTracking": []
}
07 / POST

Upload a manifest

Upload manifest records as a JSON array. Use ?ls=Y only when the AWB manifest should be locked after successful validation and this has been agreed operationally.

POST/post_manifest_data/{{apiKey}}

Headers

NameValue
Content-Typeapplication/json
cURL · Bash
curl --request POST "https://api.mmcore.tech/post_manifest_data/${MMCORE_API_KEY}" \
  --header 'Content-Type: application/json' \
  --data-binary @request.json
request.json
[
  {
    "transportType": "AWB",
    "transportNumber": "999-12345678",
    "packageId": "1",
    "parcelId": "PARCEL-123456",
    "name": "John Doe",
    "address": "Example Street 1",
    "address2": "",
    "zipcode": "10001",
    "city": "New York",
    "country": "US",
    "phone": "+12025550123",
    "email": "john.doe@example.com",
    "sellerName": "Example Seller B.V.",
    "sellerAddress": "Seller Street 10",
    "sellerZipcode": "1234AB",
    "sellerCity": "Amsterdam",
    "sellerCountry": "NL",
    "sku": "SKU-123456",
    "content": "Cotton T-shirt",
    "hsCode": "610910",
    "quantity": "1",
    "itemPrice": "14.90",
    "itemWeight": "0.20",
    "parcelWeight": "0.30",
    "parcelPrice": "14.90",
    "currency": "EUR",
    "taxType": "IOSS",
    "taxIdent": "IM0000000000",
    "grossWeight": "152.75"
  }
]
Body fields and example types

Types are derived from the collection example. The collection does not include a complete required/optional validation specification.

FieldType
bodyarray
[].transportTypestring
[].transportNumberstring
[].packageIdstring
[].parcelIdstring
[].namestring
[].addressstring
[].address2string
[].zipcodestring
[].citystring
[].countrystring
[].phonestring
[].emailstring
[].sellerNamestring
[].sellerAddressstring
[].sellerZipcodestring
[].sellerCitystring
[].sellerCountrystring
[].skustring
[].contentstring
[].hsCodestring
[].quantitystring
[].itemPricestring
[].itemWeightstring
[].parcelWeightstring
[].parcelPricestring
[].currencystring
[].taxTypestring
[].taxIdentstring
[].grossWeightstring

Response examples

The collection does not include a response example for this route.

08 / POST

Upload an AWB pre-alert

Upload AWB PDF base64, ETA, AWB number, and gross weight after the manifest exists.

POST/post_pre_alert/{{apiKey}}

Headers

NameValue
Content-Typeapplication/json
cURL · Bash
curl --request POST "https://api.mmcore.tech/post_pre_alert/${MMCORE_API_KEY}" \
  --header 'Content-Type: application/json' \
  --data-binary @request.json
request.json
{
  "airWaybillPdfBase64": "JVBERi0xLjQKJcTl8uXrp...truncated...==",
  "estimatedTimeOfArrival": "2026-05-28",
  "airWaybillNumber": "999-12345678",
  "grossWeight": 152.75
}
Body fields and example types

Types are derived from the collection example. The collection does not include a complete required/optional validation specification.

FieldType
airWaybillPdfBase64string
estimatedTimeOfArrivalstring
airWaybillNumberstring
grossWeightnumber

Response examples

200 · 200 OK - success
application/json
{
  "ok": true,
  "message": "Validated and saved",
  "estimatedTimeOfArrival": "2026-05-28",
  "airWaybillNumber": "999-12345678",
  "submittedGrossWeight": 152.75,
  "boxes": 18,
  "totalParcels": 342,
  "totalManifestWeight": 150.22,
  "iossManifestLocked": true,
  "carrier": {
    "name": "Example Cargo Carrier",
    "awbPrefix": "999"
  }
}

Handle responses correctly

Response shapes differ by operation. Check the HTTP status and the relevant response fields: state and Errors for authentication and standard shipment responses, status for direct labels, state and notFound for tracking, and ok for pre-alerts. Some examples use a string for state; others use a boolean.

Keep SubLogID from direct label responses for support. Preserve field casing: shipmentID, shipmentId and ZendingID are distinct example fields. The collection does not specify a global error catalog, retry policy or idempotency guarantee; do not blindly repeat shipment requests after a timeout.

Discuss your integration ↗