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.
https://api.mmcore.techJSON9 REQUESTSYour first integration
- Import the collection
Open the online Postman documentation and use the collection in Postman. Set baseUrl, authUsername and authPassword as collection variables using your own credentials.
- Obtain an API key
Run GET /auth. The Postman script saves the returned apikey in the apiKey variable.
- Configure your shipment
Replace example addresses and carrier_id / carrier_option_id with values for your account. DO=Y returns label content directly.
01 / GETCreate an API key/auth
/authAuthenticate using AUTH_USER and AUTH_PW headers. The test script stores apikey in the apiKey collection variable when present.
/authHeaders
| Name | Value |
|---|---|
AUTH_USER | {{authUsername}} |
AUTH_PW | {{authPassword}} |
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
{
"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 / POSTCreate a shipment/action/{{apiKey}}/101?o=JSON
/action/{{apiKey}}/101?o=JSONCreate a shipment using a JSON body without customs/commercial invoice shipment_details.
/action/{{apiKey}}/101?o=JSONprint_phone_number is a print setting; the recipient phone number belongs in phone_number. The collection uses false or "Y" as example values for the print setting. print_logo_on_label controls whether the logo is printed on the label. return_label controls whether the example requests a return label; DO=Y controls whether the response includes label content directly.
Headers
| Name | Value |
|---|---|
Content-Type | application/json |
Query parameters
| Name | Example value |
|---|---|
o | JSON |
curl --request POST "https://api.mmcore.tech/action/${MMCORE_API_KEY}/101?o=JSON" \
--header 'Content-Type: application/json' \
--data-binary @request.json{
"created_by": "CustomerMiddleware",
"print_phone_number": false,
"print_logo_on_label": true,
"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": "+31612345678",
"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.
| Field | Type |
|---|---|
created_by | string |
print_phone_number | boolean |
print_logo_on_label | boolean |
carrier_id | number |
carrier_option_id | number |
signature_required | boolean |
number_of_packages | number |
weight | number |
length | number |
width | number |
height | number |
is_company | boolean |
company_name | string |
first_name | string |
last_name | string |
email | string |
phone_number | string |
content | string |
street | string |
house_number | string |
postal_code | string |
city | string |
country | string |
reference | string |
reference2 | string |
return_label | boolean |
Response examples
200 · 200 OK - DO=Y direct label response
{
"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
{
"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 / POSTShipment with customs details/action/{{apiKey}}/101?o=JSON
/action/{{apiKey}}/101?o=JSONCreate a shipment using a JSON body with customs/commercial invoice shipment_details.
/action/{{apiKey}}/101?o=JSONHeaders
| Name | Value |
|---|---|
Content-Type | application/json |
Query parameters
| Name | Example value |
|---|---|
o | JSON |
curl --request POST "https://api.mmcore.tech/action/${MMCORE_API_KEY}/101?o=JSON" \
--header 'Content-Type: application/json' \
--data-binary @request.json{
"created_by": "CustomerMiddleware",
"print_phone_number": false,
"print_logo_on_label": true,
"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": "+31612345678",
"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.
| Field | Type |
|---|---|
created_by | string |
print_phone_number | boolean |
print_logo_on_label | boolean |
carrier_id | number |
carrier_option_id | number |
signature_required | boolean |
number_of_packages | number |
weight | number |
length | number |
width | number |
height | number |
is_company | boolean |
company_name | string |
first_name | string |
last_name | string |
email | string |
phone_number | string |
content | string |
street | string |
house_number | string |
postal_code | string |
city | string |
country | string |
reference | string |
reference2 | string |
return_label | boolean |
shipment_details | object |
shipment_details.invoice_number | string |
shipment_details.invoice_date | string |
shipment_details.invoice_terms | string |
shipment_details.invoice_currency | string |
shipment_details.invoice_reason | string |
shipment_details.sender | object |
shipment_details.sender.invoice_sender_company_name | string |
shipment_details.sender.invoice_sender_name | string |
shipment_details.sender.invoice_sender_street | string |
shipment_details.sender.invoice_sender_house_number | string |
shipment_details.sender.invoice_sender_postal_code | string |
shipment_details.sender.invoice_sender_city | string |
shipment_details.sender.invoice_sender_country | string |
shipment_details.sender.invoice_sender_email | string |
shipment_details.sender.invoice_sender_phone_number | string |
shipment_details.sender.invoice_sender_type | string |
shipment_details.sender.invoice_sender_vat_number | string |
shipment_details.sender.invoice_sender_eori_number | string |
shipment_details.recipient | object |
shipment_details.recipient.invoice_recipient_company_name | string |
shipment_details.recipient.invoice_recipient_name | string |
shipment_details.recipient.invoice_recipient_street | string |
shipment_details.recipient.invoice_recipient_house_number | string |
shipment_details.recipient.invoice_recipient_postal_code | string |
shipment_details.recipient.invoice_recipient_city | string |
shipment_details.recipient.invoice_recipient_country | string |
shipment_details.recipient.invoice_recipient_email | string |
shipment_details.recipient.invoice_recipient_phone_number | string |
shipment_details.recipient.invoice_recipient_type | string |
shipment_details.recipient.invoice_recipient_vat_number | string |
shipment_details.recipient.invoice_recipient_eori_number | string |
shipment_details.invoice_items | array |
shipment_details.invoice_items[].productcode | string |
shipment_details.invoice_items[].product | string |
shipment_details.invoice_items[].quantity | number |
shipment_details.invoice_items[].tariffcode | string |
shipment_details.invoice_items[].country_origin | string |
shipment_details.invoice_items[].weight | number |
shipment_details.invoice_items[].itemprice | number |
Response examples
200 · 200 OK - DO=Y direct label response
{
"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
{
"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 / POSTCreate shipment and label/action/{{apiKey}}/101?o=JSON&DO=Y
/action/{{apiKey}}/101?o=JSON&DO=YUse 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.
/action/{{apiKey}}/101?o=JSON&DO=YHeaders
| Name | Value |
|---|---|
Content-Type | application/json |
Query parameters
| Name | Example value |
|---|---|
o | JSON |
DO | Y |
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{
"created_by": "CustomerMiddleware",
"print_phone_number": "Y",
"print_logo_on_label": true,
"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": "+31612345678",
"content": "Consumer goods",
"street": "Example Street",
"house_number": "1",
"postal_code": "1234AB",
"city": "Amsterdam",
"country": "NL",
"reference": "ORDER-10001",
"reference2": "CUSTOMER-20002",
"return_label": true
}Body fields and example types
Types are derived from the collection example. The collection does not include a complete required/optional validation specification.
| Field | Type |
|---|---|
created_by | string |
print_phone_number | string |
print_logo_on_label | boolean |
carrier_id | number |
carrier_option_id | number |
signature_required | boolean |
number_of_packages | number |
weight | number |
length | number |
width | number |
height | number |
is_company | boolean |
company_name | string |
first_name | string |
last_name | string |
email | string |
phone_number | string |
content | string |
street | string |
house_number | string |
postal_code | string |
city | string |
country | string |
reference | string |
reference2 | string |
return_label | boolean |
Response examples
200 · 200 OK - DO=Y direct label response
{
"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
{
"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 / POSTCreate a shipment on a customer account/action/{{apiKey}}/101?o=JSON&DO=Y
/action/{{apiKey}}/101?o=JSON&DO=YCreate a shipment on a customer account with customer_data.customer_uuid and customer_data.customer_number. You can find customer_uuid on the Users page in the MMCore portal. Use the identifiers for that customer account. DO=Y returns label content directly; retain SubLogID for support.
/action/{{apiKey}}/101?o=JSON&DO=YHeaders
| Name | Value |
|---|---|
Content-Type | application/json |
Query parameters
| Name | Example value |
|---|---|
o | JSON |
DO | Y |
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{
"created_by": "CustomerMiddleware",
"print_phone_number": "Y",
"print_logo_on_label": true,
"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": "+31612345678",
"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,
"customer_data": {
"customer_uuid": "cccccccc-cccc-4ccc-8ccc-cccccccccccc",
"customer_number": "CUSTOMER-NUMBER"
}
}Body fields and example types
Types are derived from the collection example. The collection does not include a complete required/optional validation specification.
| Field | Type |
|---|---|
created_by | string |
print_phone_number | string |
print_logo_on_label | boolean |
carrier_id | number |
carrier_option_id | number |
signature_required | boolean |
number_of_packages | number |
weight | number |
length | number |
width | number |
height | number |
is_company | boolean |
company_name | string |
first_name | string |
last_name | string |
email | string |
phone_number | string |
content | string |
street | string |
house_number | string |
postal_code | string |
city | string |
country | string |
reference | string |
reference2 | string |
return_label | boolean |
customer_data | object |
customer_data.customer_uuid | string |
customer_data.customer_number | string |
Response examples
200 · Direct label content (DO=Y)
{
"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 · Shipment created (DO=N)
{
"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"
}06 / GETTrack a shipment/get_tracking_information/{{apiKey}}/{{trackingCode}}?flight_tracking_setting=include&lang=en&type=barcode&tracking_details=full
/get_tracking_information/{{apiKey}}/{{trackingCode}}?flight_tracking_setting=include&lang=en&type=barcode&tracking_details=fullRetrieve 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_tracking_information/{{apiKey}}/{{trackingCode}}?flight_tracking_setting=include&lang=en&type=barcode&tracking_details=fullQuery parameters
| Name | Example value |
|---|---|
flight_tracking_setting | include |
lang | en |
type | barcode |
tracking_details | full |
flight_tracking_setting: only / include / excludelang: en / nltype: barcode / waybill / boxtracking_details: minimal / lastStatus / full
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 · Single shipment tracking
{
"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": []
}07 / GETBulk tracking/get_tracking_information/{{apiKey}}?flight_tracking_setting=include&lang=en&type=barcode&tracking_details=full
/get_tracking_information/{{apiKey}}?flight_tracking_setting=include&lang=en&type=barcode&tracking_details=fullRetrieve tracking information for multiple barcodes using a JSON array request body.
/get_tracking_information/{{apiKey}}?flight_tracking_setting=include&lang=en&type=barcode&tracking_details=fullHeaders
| Name | Value |
|---|---|
Content-Type | application/json |
Query parameters
| Name | Example value |
|---|---|
flight_tracking_setting | include |
lang | en |
type | barcode |
tracking_details | full |
flight_tracking_setting: only / include / excludelang: en / nltype: barcode / waybill / boxtracking_details: minimal / lastStatus / full
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[
"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.
| Field | Type |
|---|---|
body | array |
body[] | string |
Response examples
200 · Bulk barcode tracking
{
"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": []
}08 / POSTUpload a manifest/post_manifest_data/{{apiKey}}
/post_manifest_data/{{apiKey}}Upload manifest records as a JSON array. For EU imports, nsPid and sPid are required and are the only fields validated. Waybill and shipment-lock checks still apply. For non-EU imports, existing validation remains in place and both PID fields are optional. Use ?ls=Y only when the AWB manifest should be locked after successful validation and this has been agreed operationally.
/post_manifest_data/{{apiKey}}Headers
| Name | Value |
|---|---|
Content-Type | application/json |
curl --request POST "https://api.mmcore.tech/post_manifest_data/${MMCORE_API_KEY}" \
--header 'Content-Type: application/json' \
--data-binary @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",
"nsPid": "NS-PID-123456",
"sPid": "S-PID-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.
| Field | Type |
|---|---|
body | array |
[].transportType | string |
[].transportNumber | string |
[].packageId | string |
[].parcelId | string |
[].name | string |
[].address | string |
[].address2 | string |
[].zipcode | string |
[].city | string |
[].country | string |
[].phone | string |
[].email | string |
[].sellerName | string |
[].sellerAddress | string |
[].sellerZipcode | string |
[].sellerCity | string |
[].sellerCountry | string |
[].sku | string |
[].nsPid | string |
[].sPid | string |
[].content | string |
[].hsCode | string |
[].quantity | string |
[].itemPrice | string |
[].itemWeight | string |
[].parcelWeight | string |
[].parcelPrice | string |
[].currency | string |
[].taxType | string |
[].taxIdent | string |
[].grossWeight | string |
Response examples
The collection does not include a response example for this route.
09 / POSTUpload an AWB pre-alert/post_pre_alert/{{apiKey}}
/post_pre_alert/{{apiKey}}Upload AWB PDF base64, ETA, AWB number, and gross weight after the manifest exists.
/post_pre_alert/{{apiKey}}Headers
| Name | Value |
|---|---|
Content-Type | application/json |
curl --request POST "https://api.mmcore.tech/post_pre_alert/${MMCORE_API_KEY}" \
--header 'Content-Type: application/json' \
--data-binary @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.
| Field | Type |
|---|---|
airWaybillPdfBase64 | string |
estimatedTimeOfArrival | string |
airWaybillNumber | string |
grossWeight | number |
Response examples
200 · 200 OK - success
{
"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 ↗