DCSA Reference Documentation / Standards / Standard Releases / Arrival Notice / Arrival Notice v1.0.0
DCSA Interface Standard for Arrival Notice 1.0.0 - Conformance Scenarios
Contents
1. What is Conformance?
Conformance refers to the validation process used to assess whether a carrier’s implementation of the Arrival Notice API adheres to the expected technical and business requirements defined by DCSA.
The objective is to ensure interoperability across carriers and systems by demonstrating that APIs behave correctly in realistic, standards-based scenarios.
2. Conformance Scenarios
POST scenarios
These scenarios measure the conformance of arrival notice publishers who send out arrival notices to the POST endpoints of registered arrival notice subscribers.
-
POST Arrival Notice (BASIC)
- does not need to include charges or free time
-
POST Arrival Notice (FREIGHTED)
- must include charges
-
POST Arrival Notice (FREE_TIME)
- must include free time
GET scenarios
These scenarios measure the conformance of arrival notice publishers who implement the GET endpoint and send out arrival notices in response to GET requests from arrival notice subscribers.
-
Supply parameters (BASIC) + GET Arrival Notice
- does not need to include charges or free time
-
Supply parameters (FREIGHTED) + GET Arrival Notice
- must include charges
-
Supply parameters (FREE_TIME) + GET Arrival Notice
- must include free time
3. Conformance validations
Conformance reports contain the text of each relevant custom validation below, either with a ✅ or with a 🚫 depending on whether the validation succeeded or failed.
-
Default validations (URL, response code, schema) are included.
-
Custom validations: user-defined rules that check specific business or data requirements on top of the default technical validations during conformance testing.
Custom validations must be identical for the GET and the POST scenarios.
Arrival Notices message validations
-
“At least one Arrival Notice must be included in a message sent to the sandbox during conformance testing”
-
“At least one Arrival Notice must demonstrate the correct use of the ‘transportDocumentReference’ attribute (not empty or blank)”
-
“At least one Arrival Notice must demonstrate the correct use of the ‘carrierCode’ attribute (not empty or blank)”
-
“At least one Arrival Notice must demonstrate the correct use of the ‘carrierCodeListProvider’ attribute (‘NMFTA’ or ‘SMDG’)”
-
“At least one Arrival Notice must demonstrate the correct use of the ‘carrierContactInformation’ object”
-
“The ‘carrierContactInformation’ object within at least one Arrival Notice must demonstrate the correct use of the ‘phone’ or ‘email’ attribute (not empty or blank)”
-
“The ‘carrierContactInformation’ object within at least one Arrival Notice must demonstrate the correct use of the ‘name’ attribute (not empty or blank)”
-
-
“At least one Arrival Notice must demonstrate the correct use of the ‘deliveryTypeAtDestination’ attribute (‘CY’, ‘SD’, or ‘CFS’)”
-
“At least one Arrival Notice must demonstrate the correct use of the ‘documentParties’ object”
-
“The ‘documentParties’ object within at least one Arrival Notice must demonstrate the correct use of the ‘partyFunction’ attribute (‘OS’, ‘CN’, ‘END’, ‘RW’, ‘CG’, ‘N1’, ‘N2’, ‘NI’, ‘SCO’, ‘DDR’, ‘DDS’, ‘COW’, ‘COX’, ‘CS’, ‘MF’, or ‘WH’)”
-
“The ‘documentParties’ object within at least one Arrival Notice must demonstrate the correct use of the ‘partyName’ attribute (not empty or blank)”
-
“At least one ‘documentParties.partyContactDetails’ object within at least one Arrival Notice must demonstrate the correct use of the ‘phone’ or ‘email’ attribute (not empty or blank)”
-
“At least one ‘documentParties.partyContactDetails’ object within at least one Arrival Notice must demonstrate the correct use of the ‘name’ attribute (not empty or blank)”
-
-
“The ‘documentParties’ object within at least one Arrival Notice must demonstrate the correct use of the ‘address’ object”
- “At least one ‘documentParties.address’ object within at least one Arrival Notice must demonstrate the correct use of at least one attribute (not empty or blank)”
-
-
“At least one Arrival Notice must demonstrate the correct use of the ‘transport’ object”
-
“The ‘transport’ object within at least one Arrival Notice must demonstrate the correct use of the ‘portOfDischargeArrivalDate.value’ or ‘placeOfDeliveryArrivalDate.value’ attribute”
-
“The ‘transport’ object within at least one Arrival Notice must demonstrate the correct use of the ‘portOfDischarge’ object”
-
“The ‘transport.portOfDischarge’ object within at least one Arrival Notice must demonstrate the correct use of the ‘UNLocationCode’ attribute, ‘facility’ object or ‘address’ object (not empty or blank)”
-
(if included) “The ‘transport.portOfDischarge.facility’ object within at least one Arrival Notice must demonstrate the correct use of the ‘facilityCode’ attribute (not empty or blank)”
-
(if included) “The ‘transport.portOfDischarge.facility’ object within at least one Arrival Notice must demonstrate the correct use of the ‘facilityCodeListProvider’ attribute (‘SMDG’ or ‘BIC’)”
-
(if included) “The ‘transport.portOfDischarge.address’ object within at least one Arrival Notice must demonstrate the correct use of at least one attribute (not empty or blank)”
-
-
-
“The ‘transport.legs’ object within at least one Arrival Notice must have at least one element”
-
“At least one ‘transport.legs’ list item within at least one Arrival Notice must demonstrate the correct use of the ‘vesselVoyage’ object”
-
“At least one ‘transport.legs.vesselVoyage’ object within at least one Arrival Notice must demonstrate the correct use of the ‘vesselName’ attribute (not empty or blank)”
-
“At least one ‘transport.legs.vesselVoyage’ object within at least one Arrival Notice must demonstrate the correct use of the ‘carrierImportVoyageNumber’ attribute (not empty or blank)”
-
-
-
-
“At least one Arrival Notice must demonstrate the correct use of a ‘utilizedTransportEquipments’ list with at least one item”
-
“At least one ‘utilizedTransportEquipments’ list item within at least one Arrival Notice must demonstrate the correct use of the ‘equipment’ object”
-
“At least one ‘utilizedTransportEquipments.equipment’ object within at least one Arrival Notice must demonstrate the correct use of the ‘equipmentReference’ attribute (not empty or blank)”
-
“At least one ‘utilizedTransportEquipments.equipment’ object within at least one Arrival Notice must demonstrate the correct use of the ‘ISOEquipmentCode’ attribute (not empty or blank)”
-
-
“At least one ‘utilizedTransportEquipments’ list item within at least one Arrival Notice must demonstrate the correct use of a ‘seals’ list with at least one item”
- “At least one ‘utilizedTransportEquipments.equipment.seals’ list item within at least one Arrival Notice must demonstrate the correct use of the ‘number’ attribute (not empty or blank)”
-
-
“At least one Arrival Notice must demonstrate the correct use of a ‘consignmentItems’ list with at least one item”
-
“At least one ‘consignmentItems’ list item within at least one Arrival Notice must demonstrate the correct use of the ‘descriptionOfGoods’ attribute (not empty or blank)”
-
“At least one ‘consignmentItems’ list item within at least one Arrival Notice must demonstrate the correct use of a ‘cargoItems’ list with at least one item”
-
“At least one ‘consignmentItems.cargoItems’ list item within at least one Arrival Notice must demonstrate the correct use of the ‘equipmentReference’ attribute (not empty or blank)”
-
“At least one ‘consignmentItems.cargoItems’ list item within at least one Arrival Notice must demonstrate the correct use of the ‘cargoGrossWeight’ object”
-
“At least one ‘consignmentItems.cargoItems.cargoGrossWeight’ object within at least one Arrival Notice must demonstrate the correct use of the ‘value’ attribute (positive number)”
-
“At least one ‘consignmentItems.cargoItems.cargoGrossWeight’ object within at least one Arrival Notice must demonstrate the correct use of the ‘unit’ attribute (‘KGM’, ‘LBR’, ‘GRM’, or ‘ONZ’)”
-
-
“At least one ‘consignmentItems.cargoItems’ list item within at least one Arrival Notice must demonstrate the correct use of the ‘outerPackaging’ object”
-
“At least one ‘consignmentItems.cargoItems.outerPackaging’ object within at least one Arrival Notice must demonstrate the correct use of the ‘packageCode’ or ‘IMOPackagingCode’ or ‘description’ attribute (not empty or blank)”
-
“At least one ‘consignmentItems.cargoItems.outerPackaging’ object within at least one Arrival Notice must demonstrate the correct use of the ‘numberOfPackages’ attribute (positive number)”
-
-
-
-
(if FREE_TIME scenario) “At least one Arrival Notice must demonstrate the correct use of a ‘freeTimes’ list with at least one item”
-
“At least one ‘freeTimes’ list item within at least one Arrival Notice must demonstrate the correct use of the ‘typeCodes’ list with at least one value (‘DEM’, ‘DET’, or ‘STO’)”
-
“At least one ‘freeTimes’ list item within at least one Arrival Notice must demonstrate the correct use of the ‘ISOEquipmentCodes’ list with at least one value (not empty or blank)”
-
“At least one ‘freeTimes’ list item within at least one Arrival Notice must demonstrate the correct use of the ‘equipmentReferences’ list with at least one value (not empty or blank)”
-
“At least one ‘freeTimes’ list item within at least one Arrival Notice must demonstrate the correct use of the ‘duration’ attribute (positive number)”
-
“At least one ‘freeTimes’ list item within at least one Arrival Notice must demonstrate the correct use of the ‘timeUnit’ attribute (‘CD’, ‘WD’, or ‘HR’)”
-
-
(if FREIGHTED scenario) “At least one Arrival Notice must demonstrate the correct use of a ‘charges’ list with at least one item”
-
“At least one ‘charges’ list item within at least one Arrival Notice must demonstrate the correct use of the ‘chargeName’ attribute (not empty or blank)”
-
“At least one ‘charges’ list item within at least one Arrival Notice must demonstrate the correct use of the ‘currencyAmount’ attribute (positive number)”
-
“At least one ‘charges’ list item within at least one Arrival Notice must demonstrate the correct use of the ‘currencyCode’ attribute (not empty or blank)”
-
“At least one ‘charges’ list item within at least one Arrival Notice must demonstrate the correct use of the ‘paymentTermCode’ attribute (‘PRE’, or ‘COL’)”
-
“At least one ‘charges’ list item within at least one Arrival Notice must demonstrate the correct use of the ‘unitPrice’ attribute (positive number)”
-
“At least one ‘charges’ list item within at least one Arrival Notice must demonstrate the correct use of the ‘quantity’ attribute (positive number)“
-
Arrival Notice Notifications message validations
No custom validations are needed for Arrival Notice Notifications messages.