MMCore API Documentation

Complete reference for integrating with our multi-carrier shipping platform

REST API
Real-time Tracking
Manifest Processing
Multi-carrier

Quick Start

Get up and running

1. Sign up for an account

Include your AUTH_USER and AUTH_PW to authenticate.

2. Verify your credentials

Verify your credentials

3. Start processing shipments

Start processing shipments

Example: Authentication
Basic example
// First, authenticate your credentials
curl --location 'https://api.mmcore.tech/auth' \
--header 'AUTH_USER=YOUR_AUTH_USER' \
--header 'AUTH_PW=YOUR_AUTH_PW'

API Endpoints

Complete reference

GET
/auth
Authenticate and validate your API credentials

Parameters

AUTH_USERAUTH_PW

Response

authentication_status, permissions, rate_limits

Example

curl --location 'https://api.mmcore.tech/auth' \
--header 'AUTH_USER=YOUR_AUTH_USER' \
--header 'AUTH_PW=YOUR_AUTH_PW'
GET
/get_tracking_information/APIKEY/tracking_code
Get detailed tracking information for shipments with comprehensive query parameters

Parameters

APIKEYtracking_codeflight_tracking_settinglangtypetracking_details

Query Parameters

langDefault: en

Sets the language for the API response

Values: en, nl

flight_tracking_settingDefault: exclude

Defines how flight/waybill tracking should be handled

Values: only, include, exclude

typeDefault: barcode

Specifies the type of tracking being used

Values: barcode, waybill, box

tracking_detailsDefault: full

Defines the level of detail in the tracking response

Values: minimal, lastStatus, full

Response

tracking_events, current_status, estimated_delivery, carrier_info, flight_tracking

Example

# Single tracking
curl --location 'https://api.mmcore.tech/get_tracking_information/APIKEY/tracking_code?flight_tracking_setting=include&lang=en&type=barcode&tracking_details=full' \
--data ''

# Bulk tracking
curl --location --request GET 'https://api.mmcore.tech/get_tracking_information/APIKEY/tracking_code?flight_tracking_setting=include&lang=en&type=barcode&tracking_details=full' \
--data '[
    "123456789",
    "987654321",
    "123498765",
    "567894321"
]'
POST
/action/APIKEY/101/
Request a carrier label for a specific country with various output options

Parameters

created_bycarriercarrier_optionweightdimensionsrecipient_infosender_info

Query Parameters

plDefault: N

Y = Show PDF label, N = get JSON result

Values: Y, N

dhlzplDefault: N

Y = get DHL JSON Label, N = get URL to get PDF

Values: Y, N

zplDefault: N

Y = get ZPL label if carrier supports it

Values: Y, N

oDefault:

Output will be in JSON format

Values: JSON

doDefault: N

Y = the label will be called within this call

Values: Y, N

Response

label_url, tracking_number, shipment_id, processing_status

Example

curl --location 'https://api.mmcore.tech/action/APIKEY/101/?pl=Y&zpl=N&o=JSON' \
--header 'Content-Type: application/json' \
--data '{
    "created_by": "API_USER",
    "standard_email_to_sender": "sender@example.com",
    "standard_email_to_receiver": "receiver@example.com",
    "print_phone_number": "+31612345678",
    "carrier": 9999,
    "carrier_option": 0,
    "signature_required": false,
    "number_of_packages": 1,
    "weight": 0.12,
    "value": 22.99,
    "length": 1.0,
    "width": 2.0,
    "height": 3.0,
    "is_company": false,
    "company_name": "",
    "department": "",
    "first_name": "John",
    "last_name": "Doe",
    "email": "john.doe@email.com",
    "content": "Electronics",
    "content_on_label": "",
    "street": "Test Street",
    "street2": "",
    "house_number": "123",
    "postal_code": "1012AB",
    "city": "Amsterdam",
    "country": "Netherlands",
    "phone_number": "+31612345678",
    "reference": "ORDER-001",
    "reference2": "",
    "vat_number": "",
    "return_label": false
}'
POST
/post_manifest_data/APIKEY
Upload manifest data to the database for shipment processing (supports bulk uploads)

Parameters

transportNumberpackageIdparcelIdrecipient_infosender_infoitem_detailsls (optional)

Query Parameters

lsDefault: N

Y = Lock manifest data (if there are no errors), N = Don't lock manifest data. ONLY APPLICABLE FOR AIRWAYBILLS

Values: Y, N

Response

upload_status, validation_errors, manifest_id

Example

curl --location 'https://api.mmcore.tech/post_manifest_data/APIKEY?ls=Y' \
--header 'Content-Type: application/json' \
--data '[
    {
        "transportType": "CMR", // Optional, defaults to "AWB" if not provided, possible values: "AWB", "CMR" or B/L
        "transportNumber": "999-12345678", //required to be set and unique per shipment
        "packageId": "1", //optional if CMR, required if AWB
        "parcelId": "123456", //required to be set and unique per parcel within a package
        "name": "John Doe", //recipient name (required)
        "address": "Test Street", //recipient street address (required)
        "address2": "", //recipient additional address info (optional)
        "zipcode": "Test Zipcode", //recipient postal code (required)
        "city": "Test City",  //recipient city (required)
        "country": "ISO 2 Country", //recipient country in ISO 2 format (required)
        "phone": "0612345678", //recipient phone number (required)
        "email": "john.doe@mail.com", //recipient email address (required)
        "sellerName": "seller", //sender name (required)
        "sellerAddress": "seller address", //sender street address (required) 
        "sellerZipcode": "seller zipcode",  //sender postal code (required)
        "sellerCity": "seller city", //sender city (required)
        "sellerCountry": "seller ISO 2 country",  //sender country in ISO 2 format (required)
        "sku": "sku", //item SKU or identifier (required)
        "content": "Some content", //item description (required)
        "hsCode": "123456", //item HS code for customs (required for transportType AWB and CMR outside EU)
        "quantity": "2", //item quantity (required)
        "itemPrice": "10.00", //item price (required)
        "itemWeight": "0.20", //item weight in kg (required)
        "parcelWeight": "0.40", //parcel weight in kg (required)
        "parcelPrice": "20.00", //total parcel price (required)
        "currency": "USD", //currency code in ISO 3 format (required)
        "taxType": "IOSS", //tax type, e.g. IOSS, OSS, NON_EU (required for transportType AWB and CMR outside EU)
        "taxIdent": "taxIdent", //tax identification number (required for transportType AWB and CMR outside EU)
        "grossWeight": "100" //gross weight in kilograms (required)
    },
        {
        "transportType": "CMR",
        "transportNumber": "999-12345678",
        "packageId": "2",
        "parcelId": "654321",
        "name": "John Doe",
        "address": "Test Street",
        "address2": "",
        "zipcode": "Test Zipcode",
        "city": "Test City",
        "country": "ISO 2 Country",
        "phone": "0612345678",
        "email": "john.doe@mail.com",
        "sellerName": "seller",
        "sellerAddress": "seller address",
        "sellerZipcode": "seller zipcode",
        "sellerCity": "seller city",
        "sellerCountry": "seller ISO 2 country",
        "sku": "sku2",
        "content": "Some content",
        "hsCode": "123456",
        "quantity": "1",
        "itemPrice": "10.00",
        "itemWeight": "0.20",
        "parcelWeight": "0.22",
        "parcelPrice": "10.20",
        "currency": "USD",
        "taxType": "IOSS",
        "taxIdent": "taxIdent",
        "grossWeight": "100"
    }
]'
POST
/lock_shipment/APIKEY
Lock a shipment to prevent further changes (Airwaybills only). This notifies that the shipment is complete.

Parameters

waybillAPIKEY

Response

lock_status, confirmation_message

Example

curl --location 'https://api.mmcore.tech/lock_shipment/APIKEY' \
--header 'Content-Type: application/json' \
--data '{"waybill":"999-12345678"}'

Status Codes

Complete reference

Status Codes
Status codes returned in tracking responses with their descriptions
97Manifested for customs
98Label data has been pre-registered
99Label has been created
200Dispatch declaration
201Dispatch arrival
202Dispatch documentation
203Dispatch amendment
204Dispatch cancellation
205Customs clearance started
207Customs Issue
208Confiscated
209Held by customs
210Needs documents
211Accepted
213Parcel cleared
214Cleared manually
215Cancelled
216Arrived in facility
217Ready for last mile
218Released to last mile
219Job dispatched
2000The cargo is being tracked
2001Information has been sent, waiting for the logistics provider to pick up the cargo
2002The logistics provider gets the cargo
2003In transit
2004The cargo arrived at their destination
2005Notify the consignee to pick up the cargo
2006The cargo is delivered to the consignee
2007Packages were lost, damaged, returned, unclaimed, etc
2008Shipping time too long
3000Parcel has reached a depot
3001Outbound scan
3004Parcel details updated
3005Parcel has arrived at the last-mile carrier
3050Parcel has left the depot
5000Parcel is out for delivery
5001Parcel is out for delivery to recipient
5002A text message notification has been sent to the recipient
5003Parcel is out for delivery to parcel locker
5004Parcel is out for delivery to parcel shop
7000Recipient was not at home, second try:
7001Recipient was not at home, package will be stored on the depot for 5 days
7002Recipient was not at home
7003Recipient was not at home, package can be picked up at a collection point
7004Stored until requested
8000Return to sender
8001Shipment canceled
8500Extra information
9000Delivered
9001Package is delivered to the neighbors
9002Package is delivered to the parcelshop
9003Package is delivered to the parcelbox
9004Package is delivered to a secure place
9005Package is collected
9006Return delivered
9500Refused
9501Package was not picked up
9502Package was not delivered
9503Package is rerouted to a new address
9600Incorrect address details

Authentication

Secure your API

Header Authentication
# Authentication endpoint
curl --location 'https://api.mmcore.tech/auth' \
--header 'AUTH_USER=YOUR_AUTH_USER' \
--header 'AUTH_PW=YOUR_AUTH_PW'

# Other endpoints use API key in URL path
curl --location 'https://api.mmcore.tech/post_manifest_data/YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '[{"waybill": "999-12345678", ...}]'

Security Note: Keep your credentials secure. Never expose them. Use environment variables.

Additional Resources

Everything you need