Every POST to .../shipping/v1/{ACCOUNT_NUMBER}/{ACCOUNT_NUMBER}/shipments returns:
{“errorCode”:“400”,“errorMessage”:“Schema validation Error”,“errorDescription”:“Schema validation failed”}
The request body has been validated field-by-field against Shipping-1.0.0.yaml and all required fields are present and correctly formatted (confirmed against the spec example and a working portal test).
Suspicion:
The portal analytics log for our app shows plan_version: "8.0.0" and product_version: "8.0.0". Could the app be subscribed to an old plan whose schema validation policy does not match the current v1.0.0 JSON API?
Example request body that returns 400:
{
"groupId": "20260820",
"requestedShippingPoint": "A1A1A1",
"expectedMailingDate": "2026-08-20",
"deliverySpec": {
"serviceCode": "DOM.EP",
"sender": {
"name": "SENDER COMPANY INC",
"company": "SENDER COMPANY INC",
"contactPhone": "5550000000",
"addressDetails": {
"addressLine1": "123 Sender Street",
"city": "Montreal",
"provState": "QC",
"countryCode": "CA",
"postalZipCode": "A1A1A1"
}
},
"destination": {
"name": "RECIPIENT NAME",
"addressDetails": {
"addressLine1": "456 Dest Avenue",
"city": "LAVAL",
"provState": "QC",
"countryCode": "CA",
"postalZipCode": "B2B2B2"
}
},
"parcelCharacteristics": { "weight": 0.181 },
"printPreferences": { "outputFormat": "4x6" },
"preferences": { "showPackingInstructions": false },
"references": { "customerRef1": "REF-0001" },
"settlementInfo": {
"paidByCustomer": "{ACCOUNT_NUMBER}",
"contractId": "{CONTRACT_ID}",
"intendedMethodOfPayment": "Account"
}
}
}