Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Excerpt
hiddentrue

POST /v1/export-preadvices

In order to understand the Export Pre-advice submission, some familiarity with the Export Pre-advice User Guide is recommended. This details how export pre-advice submitted via the PortConnect website. The structure of the API is conceptually very similar to this screen, comprising a header with a list of containers being submitted.

Endpoint

Code Block
POST https://api.portconnect.io/v1/export-preadvices

Request Body

...

Name

...

Type

...

Description

...

header

...

Table of Contents
stylenone

API Request Body

Header section

Level

Name

Required

Repeats

Type

Description

Applicable Ports

0

header

PreadviceHeader

No

-

Pre-advice header information

containers

1

PreadviceContainer[]

List of container information

comments

string (optional)

Additional comments (not included in Swagger documentation)

PreadviceHeader

Name

Type

Description

ShipperName

string

Shipper name

ConsigneeName

string

Consignee name

BookingReference

string (required)

Booking reference

MessageAction

MessageActions?

Message action type

PointOfOriginCode

shipperName

Mandatory

No

string

Shipper name

ALL

1

consigneeName

Optional

No

string

Consignee name

NZTRG / NZTIU

1

bookingReference

Mandatory

No

string

Booking reference

ALL

1

messageAction

Mandatory

No

string (Create/Cancel)

For new Pre-Advice or updates to previously submitted containers enter “Create”. To Cancel a previously submitted incorrect container number enter "Cancel".

ALL

1

pointOfOriginCode

Mandatory

No

string

Point of origin code

LoadPortFacility

ALL

1

loadPortFacility

Mandatory

No

string

(required)

Load port facility

Vessel

GenericPreadviceVessel

ALL

1

vessel

Mandatory

No

Vessel information

NotificationEmails

ALL

2

shipName

Conditional

No

string

[]

List of notification email addresses

MessageType

PreadviceMessageTypes?

Pre-advice message type

TradingPartnerCode

string

Trading partner code

UserName

string

User name

UserReference

string

User reference

LineOperatorCode

Vessel Name

ALL

2

voyageNumber

Conditional

No

string

Voyage Number

ALL

2

partnerPortShippingReference

Conditional

No

string

Port Vessel reference

ALL

1

lineOperatorCode

Mandatory

No

string

Line operator code

LoadPortCode

ALL

1

loadPortCode

Mandatory

No

string

(required)

Load port code

PortOfDischarge

ALL

1

portOfDischarge

Optional

No

string

Port of discharge

ForeignPortOfDischarge

.

If the segment is omitted then PortConnect will look up and populate the value from the booking.

ALL

1

foreignPortOfDischarge

Optional

No

string

Foreign port of discharge

OverseasDestinationFinal

ALL

1

overseasDestinationFinal

Optional

No

string

Overseas destination final

PreadviceContainer

Name

ALL

1

notificationEmails

Mandatory

No

string[]

List of notification email addresses

ALL

1

userName

Mandatory

No

string

User name

ALL

1

userReference

Mandatory

No

string

User reference

ALL

Container section

Level

Name

Required

Repeats

Type

Description

HazardousCertificateUri

Applicable Ports

string

URI for hazardous certificate

LatestSubmissionStatus

GenericPreadviceContainerSubmission

Latest submission status of the container

CurrentStatus

string

Current status of the container

ContainerNumber

string (required)

Container number

AttachedContainerNumbers

List<string>

0

containers

Mandatory

Yes

List of container information

ALL

1

containerNumber

Mandatory

No

string

Container number

ALL

1

attachedContainerNumbers

Optional

No

string[]

List of attached container numbers

IsoTypeCode

string (required)

.

Only required if the container has attached containers.

NZTRG / NZTIU

1

isoTypeCode

Mandatory

No

string

ISO type code for the container

FlexiTank

ALL

1

flexiTank

Optional

No

bool

?

Indicates if the container is a flexi tank

IsFull

NZTRG / NZTIU

1

isFull

Mandatory

No

bool

?

Indicates if the container is full

CommodityCode

ALL

1

commodityCode

Mandatory

No

string

(required)

Commodity code

IsNonOperatingReefer

ALL

1

isNonOperatingReefer

Optional

No

bool

?

Indicates if the container is a non-operating reefer

Refrigeration

GenericPreadviceRefrigeration

.

Only required if container ISO Type is a Reefer ISO type.

ALL

1

refrigeration

Optional

No

Refrigeration details for the container.

Only required if container

Vent

GenericPreadviceVent

ISO Type is a Reefer ISO type.

ALL

2

isFantainer

Optional

No

bool

ALL

2

requiredTemperature

Conditional

No

float

ALL

2

refrigerationType

Optional

No

string

“Chilled”

ALL

2

activeRefrigerationRequired

Conditional

NZTRG

2

offPowerTemperature

Optional

No

float

NZAKL

2

offPowerTimestamp

Optional

No

DateTime

NZAKL

2

onPowerTargetTime

Optional

No

DateTime

NZAKL

2

humidityPercent

Optional

No

float

ALL

2

co2Percent

Optional

No

float

ALL

2

o2Percent

Optional

No

float

ALL

1

vent

Optional

No

Vent details for the container

IMEX

GenericPreadviceIMEX

IMEX details for the container

CargoWeightKg

ALL

2

ventSettingType

Optional

No

string

ALL

2

ventSetting

Optional

No

float

ALL

1

cargoWeightKg

Mandatory

No

float

Cargo weight in kilograms

TotalWeightKg

ALL

1

totalWeightKg

Mandatory

No

float

Total weight of the container in kilograms

Hazardous

GenericPreadviceHazardous[]

ALL

1

hazardous

Optional

No

List of hazardous details

OverGauge

ALL

2

hazardousClass

Conditional

Yes

float

e.g. 1.1f, 1.1g etc.

ALL

2

unNumber

Conditional

Yes

string

e.g. 0005, 0121 etc

ALL

2

quantity

Conditional

Yes

string

Number and Type of packages e.g. 2 Pallets or 1 box

ALL

2

hazardousWeight

Conditional

Yes

float

Weight of the hazardous cargo. Must be in KGs.

ALL

2

packagingGroup

Conditional

Yes

string

Values: 0, 1, 2 or 3. If no packaging group then select 0.

ALL

2

limitedQuantities

Conditional

Yes

bool

ALL

2

marinePollutant

Conditional

Yes

bool

ALL

2

emsCode

Conditional

Yes

string

Fire Rating and Spill Rating. F-A to F-Z and S-A to S-Z. No space between values.

ALL

2

hazardContact

Conditional

Yes

ALL

3

name

Conditional

Yes

string

ALL

3

phone

Conditional

Yes

string

ALL

2

medicalFirstAidGuideSet

Conditional

Yes

string

NZTRG / NZTIU

2

flashPointSet

Conditional

Yes

float

Range: -999-999

NZTRG / NZTIU

1

overGauge

Optional

No

GenericPreadviceOverDimension[]

List of over-dimension details

ContainerSeals

.

Only required if container ISO Type is an Out of Gauge ISO type.

ALL

2

area

Conditional

Yes

String

TOP, LEFT, RIGHT, FRONT, BACK

ALL

2

measureCm

Conditional

Yes

float

ALL

1

containerSeals

Mandatory

No

GenericPreadviceContainerSeal[]

List of container seals

ArrivalCarrierType

GenericPreadviceArrivalCarrierTypes?

Arrival carrier type

Carrier

string

Carrier details

...

ALL

2

sealType

Mandatory

Yes

string

ALL

2

sealCode

Mandatory

Yes

string

ALL

1

arrivalCarrierType

Mandatory

No

string

Value list: Truck, Rail. This is the mode of arrival at the receival facility which can be an inland port or directly to the Seaport

ALL

1

carrier

Mandatory

No

string

See the following list for all Arrival Carrier Codes.

ALL

1

hazardousCertificateBase64

Optional

No

string

Base64 encoded hazardous certificate.

Only required if the container is hazardous.

The base64 content must sit within a CDATA segment e.g.

“hazardousCertificateBase64”: <![CDATA[Base64ContentHere]]>

NZTRG / NZTIU

Test URL:

Code Block
POST https://apitest.portconnect.io/v1/export-preadvices

Example

...

Messages

All fields example:

{
Code Block
languagejson
    {
	"header": {
		"shipperName": "FNT",
		"loadPortCode": "NZAKL",
		"shipperNamebookingReference": "ALNEMAH HALAL MEAT LIMITED",
    "bookingReferenceSHIPPINGLINEBOOKINGREF",
		"pointOfOriginCode": "AKC",
		"vessel": {
			"shipName": "CMA CGM SEMARANG",
			"voyageNumber": "1AKL0267402416",
			"partnerPortShippingReference": "CMC9741"
		},
		"loadPortFacility": "Auckland",
		"lineOperatorCode": "HSUDARMC",
		"portOfDischarge": "AUMEL",
		"foreignPortOfDischarge": "AUMEL",
		"loadPortCodeuserReference": "NZTRGUNIQUEREFERENCE",
		"notificationEmails": ["info@portconnect.co.nz"]
	},
	"containers": "portOfDischarge[{
		"containerNumber": "HAZD1234510"	
		"isoTypeCode": "USLGB4500",
		"isFull": true,
		"commodityCode": "74",
		"cargoWeightKg": 16000.0,
"foreignPortOfDischarge": "USLGB"
    "pointOfOriginCode": "Bay of Plenty",
    "loadPortFacility": "TCT",
    "vessel": {
      "shipName": "DEBUSSY",
      "voyageNumber": "138N",
      "partnerPortShippingReference": "USY138N",
    },
    "notificationEmails": [
      "Cameron.Pitches@portconnect.co.nz"
    ],
    "userReference": "CAMTEST001"
  },
  "containers": [
    {
      "containerNumber": "CDPU3736837",
      "isoTypeCode": "2232",
      "flexiTank": false,
      "isFull": true,
      "commodityCode": "0201",
      "isNonOperatingReefer": false,
      "refrigeration": {
        "isFantainer": false,
        "requiredTemperature": -5.0,
        "refrigerationType": "Chilled"
      },
      "cargoWeightKg": 28000.0,
      "totalWeightKg": 30000.0,
      "containerSeals": [
        {
          "sealType": "Shipper",
          "sealCode": "555"
        }
      ],
      "arrivalCarrierType": "Truck"
    }
  		"totalWeightKg": 18000.0,
		"hazardous": [{
			"medicalFirstAidGuideSet": true,
			"flashPointSet": true,
			"hazardousClass": "2.1",
			"unNumber": "1950",
			"packagingGroup": "1",
			"limitedQuantities": true,
			"marinePollutant": true,
			"hazardousWeight": 200.0,
			"quantity": "10",
			"emsCode": "F-BS-C",
			"hazardContact": {
				"name": "John Smith",
				"phone": "021 588 998"
			}
		},
		{
			"medicalFirstAidGuideSet": true,
			"flashPointSet": true,
			"hazardousClass": "2.2",
			"unNumber": "1950",
			"packagingGroup": "0",
			"limitedQuantities": false,
			"marinePollutant": false,
			"hazardousWeight": 1000.0,
			"quantity": "75",
			"emsCode": "F-YS-Y",
			"hazardContact": {
				"name": "John Smith",
				"phone": "021 588 998"
			}
		}],
		"containerSeals": [{
			"sealType": "Shipper",
			"sealCode": "4455"
		}],
		"arrivalCarrierType": "Rail",
		"carrier": "CONLIN"
	},
	{
		"containerNumber": "OOGC1234651"	
		"attachedContainerNumbers": ["ADCU1234510"],
		"isoTypeCode": "22P1",
		"isFull": true,
		"commodityCode": "47",
		"isNonOperatingReefer": false,
		"cargoWeightKg": 16000.0,
		"totalWeightKg": 18000.0,
		"overGauge": [{
			"area": "Top",
			"measureCm": 10.0
		},
		{
			"area": "Left",
			"measureCm": 20.0
		},
		{
			"area": "Right",
			"measureCm": 30.0
		},
		{
			"area": "Front",
			"measureCm": 40.0
		},
		{
			"area": "Back",
			"measureCm": 50.0
		}],
		"containerSeals": [{
			"sealType": "Shipper",
			"sealCode": "TBC"
		}],
		"arrivalCarrierType": "Truck",
		"carrier": "AACAR "
	},
	{
		"containerNumber": "REEF1234510"		
		"isoTypeCode": "2230",
		"isFull": true,
		"commodityCode": "2199",
		"IsNonOperatingReefer": false,
		"refrigeration": {
			"isFantainer": false,
			"co2Percent": 50.0,
			"o2Percent": 40.0,
			"maximumOffPowerHours": 24.0,
			"offPowerTemperature": -21.0,
			"offPowerTimestamp": "2024-09-11T10:00:00+12:00",
			"onPowerTargetTime": "2024-09-11T10:00:00+12:00",
			"requiredTemperature": -21.0,
			"humidityPercent": 20.0,
			"refrigerationType": "Chilled"
		},
		"vent": {
			"ventSettingType": "PercentageOpen",
			"ventSetting": 30.0
		},
		"cargoWeightKg": 16000.0,
		"totalWeightKg": 18000.0,
		"containerSeals": [{
			"sealType": "Shipper",
			"sealCode": "1223"
		},
		{
			"sealType": "Shipper",
			"sealCode": "5665"
		}],
		"arrivalCarrierType": "Truck",
		"carrier": "WALTER"
	}]
}

Hazard example

Code Block
languagejson
{
	"header": {
		"shipperName": "FNT",
		"loadPortCode": "NZAKL",
		"bookingReference": "SHIPPINGLINEBOOKINGREF",
		"pointOfOriginCode": "AKC",
		"vessel": {
			"shipName": "CMA CGM SEMARANG",
			"voyageNumber": "2416",
			"partnerPortShippingReference": "CMC9741"
		},
		"loadPortFacility": "Auckland",
		"lineOperatorCode": "ARMC",
		"portOfDischarge": "AUMEL",
		"foreignPortOfDischarge": "AUMEL",
		"userReference": "UNIQUEREFERENCE",
		"notificationEmails": ["info@portconnect.co.nz"]
	},
	"containers": [{
		"containerNumber": "REEF1234510",
		"isoTypeCode": "2230",
		"isFull": true,
		"commodityCode": "2199",
		"cargoWeightKg": 16000.0,
		"totalWeightKg": 18000.0,
		"hazardous": [{
			"medicalFirstAidGuideSet": true,
			"flashPointSet": true,
			"hazardousClass": "2.1",
			"unNumber": "1950",
			"packagingGroup": "1",
			"limitedQuantities": true,
			"marinePollutant": true,
			"hazardousWeight": 200.0,
			"quantity": "10",
			"emsCode": "F-BS-C",
			"hazardContact": {
				"name": "John Smith",
				"phone": "021 588 998"
			}
		},
		{
			"medicalFirstAidGuideSet": true,
			"flashPointSet": true,
			"hazardousClass": "2.2",
			"unNumber": "1950",
			"packagingGroup": "0",
			"limitedQuantities": false,
			"marinePollutant": false,
			"hazardousWeight": 1000.0,
			"quantity": "75",
			"emsCode": "F-YS-Y",
			"hazardContact": {
				"name": "John Smith",
				"phone": "021 588 998"
			}
		}],
		"containerSeals": [{
			"sealType": "Shipper",
			"sealCode": "1223"
		},
		{
			"sealType": "Shipper",
			"sealCode": "5665"
		}],
		"arrivalCarrierType": "Truck",
		"carrier": "WALTER",
		"hazardousCertificateBase64":<![CDATA[JVBERi0xLjcNDQo8PC9UNQ0KJSVFT0Y=]]>
	}]
}

Reefer example

Code Block
languagejson
{
	"header": {
		"shipperName": "FNT",
		"loadPortCode": "NZAKL",
		"bookingReference": "SHIPPINGLINEBOOKINGREF",
		"pointOfOriginCode": "AKC",
		"vessel": {
			"shipName": "CMA CGM SEMARANG",
			"voyageNumber": "2416",
			"partnerPortShippingReference": "CMC9741"
		},
		"loadPortFacility": "Auckland",
		"lineOperatorCode": "ARMC",
		"portOfDischarge": "AUMEL",
		"foreignPortOfDischarge": "AUMEL",
		"userReference": "UNIQUEREFERENCE",
		"notificationEmails": ["info@portconnect.co.nz"]
	},
	"containers": [{
		"containerNumber": "REEF1234510",
		"isoTypeCode": "2230",
		"isFull": true,
		"commodityCode": "2199",
		"IsNonOperatingReefer": false,
		"refrigeration": {
			"isFantainer": false,
			"co2Percent": 50.0,
			"o2Percent": 40.0,
			"maximumOffPowerHours": 24.0,
			"offPowerTemperature": -21.0,
			"offPowerTimestamp": "2024-09-11T10:00:00+12:00",
			"onPowerTargetTime": "2024-09-11T10:00:00+12:00",
			"requiredTemperature": -21.0,
			"humidityPercent": 20.0,
			"refrigerationType": "Chilled"
		},
		"vent": {
			"ventSettingType": "PercentageOpen",
			"ventSetting": 30.0
		},
		"cargoWeightKg": 16000.0,
		"totalWeightKg": 18000.0,
		"containerSeals": [{
			"sealType": "Shipper",
			"sealCode": "1223"
		},
		{
			"sealType": "Shipper",
			"sealCode": "5665"
		}],
		"arrivalCarrierType": "Truck",
		"carrier": "WALTER"
	}]
}

Example Response:

Export pre-advice success

...

Export pre-advice partial failure
Code Block
languagejson
{
    "success": true,
    "errors": [],
    "containers": [
        {
            "containerNumber": "CDPU3736837",
            "errors": [
                "Temperature too high/low for the selected commodity (Range: -5.0 to 2.0). Change commodity or contact Terminal"
            ],
            "success": false
        }
    ]
}

Pre-Advice validation rules

  1. Must provide a valid booking

  2. Load Port must match the booking

  3. Load Port must be valid

  4. Line Operator code must be valid

  5. Line Operator code must match the booking

  6. Vessel Visit must match the booking

  7. Discharge Port must match the booking

  8. Reefer ISO type containers must have a Temperature (unless specified as a Non-Operating Reefer)

  9. Freight Kind (Full vs Empty) must match the booking

  10. Reefer temperatures must match the booking

  11. Conditioning details must match the booking. Conditioning details include: Humidity %, Vent value, Vent Type, O2% and CO2%

  12. Hazard UN Codes must match the booking

  13. Container ISO Type Groups much match the booking.

  14. Total Pre-Advised Containers must not exceed the booking quanta (count)

  15. Seal Type must be valid