Shipment pre-validation

The call of validateShipment provides the advantage of validating shipment data before a createShipment call will persist a shipment in the database.

There is no general answer what the validateShipment call will check beforehand. It is also good to know that the validateShipment will not be successful for all carriers. When the validateShipment call does not check anything or is not implemented yet, the response will be "The carrier does not support carrier-specific route validations."

Pre-validation checks if the shipment with the given carrier, service, and consignee (postal code and country validation) will receive a valid routing and will succeed when it comes to label printing.
Only data on the shipment level will be considered without the packages, items, or hazardous goods. Thus, a successful validateShipment call will not necessarily lead to the successful printing of labels for a specific package.
In most cases, package data influences checks as well e.g. package weight, dimensions, or quantity reglementation. The same applies to shipment items which are required for hazardous goods or shipping to third country. This will not be checked in the pre-validation. However, successful routing for the selected addresses and services will provide a useful indication to the carrier.

The important parameter in the request is the validation mode. Until now, only the "ROUTE_SERVED" mode is supported.

<validationParms>
   <validationMode>ROUTE_SERVED</validationMode>
</validationParms>

For the response, there are several possible scenarios.

Potential validation results and their reasons:

"VALIDATION_NO_CHECK_SELECTED" - No or invalid validation mode in the request.
"VALIDATION_FAILED" - Master data problem of the carrier configuration or route is not valid.
"VALIDATION_MISSING_DATA" - Required data is missing in the request.
"VALIDATION_REQUEST_NOT_SUPPORTED" - Carrier does not support validateShipment or it is not implemented yet.
"VALIDATION_OK" - Validation was successful.