{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/dhl/json-schema/dhl-dctrequest-schema.json",
  "title": "DCTRequest",
  "x-generated": "2026-11-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/dhl-mydhl-api-xml-dhl-express-openapi.yml#/components/schemas/DCTRequest",
  "type": "object",
  "oneOf": [
    {
      "properties": {
        "GetQuote": {
          "description": "Root element of Quote request\n\t\t\t\t\t\t\t",
          "properties": {
            "Request": {
              "$ref": "#/$defs/Request"
            },
            "From": {
              "$ref": "#/$defs/DCTFrom"
            },
            "BkgDetails": {
              "$ref": "#/$defs/BkgDetailsType"
            },
            "To": {
              "$ref": "#/$defs/DCTTo"
            },
            "Dutiable": {
              "$ref": "#/$defs/DCTDutiable"
            },
            "GenReq": {
              "$ref": "#/$defs/GenReq"
            },
            "RequestValueAddedServicesAndRuleGroups": {
              "$ref": "#/$defs/YesNo"
            },
            "StrictValidation": {
              "$ref": "#/$defs/YesNo"
            },
            "RequestEstimatedDeliveryDate": {
              "$ref": "#/$defs/YesNo"
            },
            "EstimatedDeliveryDateType": {
              "$ref": "#/$defs/EDDType"
            }
          },
          "required": [
            "Request",
            "From",
            "BkgDetails",
            "To"
          ]
        }
      },
      "required": [
        "GetQuote"
      ]
    },
    {
      "properties": {
        "GetCapability": {
          "description": "Root element of Capability request\n\t\t\t\t\t\t\t",
          "properties": {
            "Request": {
              "$ref": "#/$defs/Request"
            },
            "From": {
              "$ref": "#/$defs/DCTFrom"
            },
            "BkgDetails": {
              "$ref": "#/$defs/BkgDetailsType"
            },
            "To": {
              "$ref": "#/$defs/DCTTo"
            },
            "Dutiable": {
              "$ref": "#/$defs/DCTDutiable"
            },
            "GenReq": {
              "$ref": "#/$defs/GenReq"
            },
            "RequestValueAddedServicesAndRuleGroups": {
              "$ref": "#/$defs/YesNo"
            },
            "StrictValidation": {
              "$ref": "#/$defs/YesNo"
            },
            "RequestEstimatedDeliveryDate": {
              "$ref": "#/$defs/YesNo"
            },
            "EstimatedDeliveryDateType": {
              "$ref": "#/$defs/EDDType"
            }
          },
          "required": [
            "Request",
            "From",
            "BkgDetails",
            "To"
          ]
        }
      },
      "required": [
        "GetCapability"
      ]
    }
  ],
  "$defs": {
    "BkgDetailsType": {
      "type": "object",
      "properties": {
        "PaymentCountryCode": {
          "type": "string",
          "description": "object",
          "minLength": 2,
          "maxLength": 2
        },
        "Date": {
          "type": "string",
          "description": "object",
          "format": "date"
        },
        "ReadyTime": {
          "type": "string",
          "description": "Time in hours and minutes (HH:MM)",
          "format": "duration"
        },
        "ReadyTimeGMTOffset": {
          "type": "string",
          "description": "\n\t\t\t\t\t\t\tTime in hours and minutes (HH:MM)\n\t\t\t\t\t\t",
          "minLength": 0,
          "maxLength": 6
        },
        "DimensionUnit": {
          "type": "string",
          "description": "\n\t\t\t\t\t\t\tDimension Unit I (inches);Centimeters (CM)\n\t\t\t\t\t\t",
          "maxLength": 3,
          "enum": [
            "IN",
            "CM"
          ]
        },
        "WeightUnit": {
          "type": "string",
          "description": "\n\t\t\t\t\t\t\tKilogram (KG),Pounds (LB)\n\t\t\t\t\t\t",
          "maxLength": 3,
          "enum": [
            "KG",
            "LB"
          ]
        },
        "NumberOfPieces": {
          "type": "number",
          "description": "object",
          "format": "positive-integer",
          "pattern": "^[1-9]\\d*$",
          "minimum": 1,
          "maximum": 999
        },
        "ShipmentWeight": {
          "type": "number",
          "description": "object Positive number with 15 amount of digits. Positive number with 3 decimal places precision."
        },
        "Volume": {
          "type": "number",
          "description": "object Positive number with 15 amount of digits. Positive number with 3 decimal places precision."
        },
        "MaxPieceWeight": {
          "type": "number",
          "description": "object Positive number with 15 amount of digits. Positive number with 3 decimal places precision."
        },
        "MaxPieceHeight": {
          "type": "number",
          "description": "object Positive number with 10 amount of digits. Positive number with 3 decimal places precision."
        },
        "MaxPieceDepth": {
          "type": "number",
          "description": "object Positive number with 10 amount of digits. Positive number with 3 decimal places precision."
        },
        "MaxPieceWidth": {
          "type": "number",
          "description": "object Positive number with 10 amount of digits. Positive number with 3 decimal places precision."
        },
        "Pieces": {
          "description": "object",
          "properties": {
            "Piece": {
              "$ref": "#/$defs/PieceType"
            }
          },
          "required": [
            "Piece"
          ]
        },
        "PaymentAccountNumber": {
          "type": "string",
          "description": "object",
          "maxLength": 12
        },
        "IsDutiable": {
          "type": "string",
          "description": "\n\t\t\t\t\t\t\tY - Dutiable/Non-Doc, \n\t\t\t\t\t\t\tN - Non-dutiable/Doc\n\t\t\t\t\t\t",
          "minLength": 1,
          "maxLength": 1,
          "enum": [
            "Y",
            "N"
          ]
        },
        "NetworkTypeCode": {
          "type": "string",
          "description": "object",
          "minLength": 2,
          "maxLength": 2,
          "enum": [
            "DD",
            "TD",
            "AL"
          ]
        },
        "QtdShp": {
          "type": "array",
          "minItems": 0,
          "items": {
            "$ref": "#/$defs/QtdShpType"
          }
        },
        "InsuredValue": {
          "type": "number",
          "description": "object Positive number with 18 amount of digits. Positive number with 3 decimal places precision."
        },
        "InsuredCurrency": {
          "type": "string",
          "description": "object",
          "minLength": 3,
          "maxLength": 3
        },
        "PaymentType": {
          "type": "string",
          "description": "Payment type - by method of payment ( DHL account)",
          "enum": [
            "D"
          ]
        },
        "AcctPickupCloseTime": {
          "type": "string",
          "description": "Account's Pickup Close Time to be retrieved from GCDB or specified by customer",
          "format": "date-time"
        }
      },
      "required": [
        "PaymentCountryCode",
        "Date",
        "ReadyTime",
        "DimensionUnit",
        "WeightUnit"
      ]
    },
    "DCTDutiable": {
      "type": "object",
      "properties": {
        "DeclaredCurrency": {
          "type": "string",
          "description": "object",
          "minLength": 3,
          "maxLength": 3
        },
        "DeclaredValue": {
          "type": "number",
          "description": "object",
          "minimum": 0,
          "maximum": 999999999999999999,
          "multipleOf": 0.001
        }
      }
    },
    "DCTFrom": {
      "type": "object",
      "properties": {
        "CountryCode": {
          "type": "string",
          "description": "object",
          "minLength": 2,
          "maxLength": 2
        },
        "Postalcode": {
          "type": "string",
          "description": "object",
          "maxLength": 12
        },
        "City": {
          "type": "string",
          "description": "object",
          "maxLength": 45
        },
        "Suburb": {
          "type": "string",
          "description": "object",
          "maxLength": 45
        }
      },
      "required": [
        "CountryCode"
      ]
    },
    "DCTTo": {
      "type": "object",
      "properties": {
        "CountryCode": {
          "type": "string",
          "description": "object",
          "minLength": 2,
          "maxLength": 2
        },
        "Postalcode": {
          "type": "string",
          "description": "object",
          "maxLength": 12
        },
        "City": {
          "type": "string",
          "description": "object",
          "maxLength": 45
        },
        "Suburb": {
          "type": "string",
          "description": "object",
          "maxLength": 45
        }
      },
      "required": [
        "CountryCode"
      ]
    },
    "EDDType": {
      "type": "string",
      "description": "Quoted Fastest Delivery Date (QDDF), Quoted Committed Delivery Date (QDDC)",
      "maxLength": 4,
      "enum": [
        "QDDF",
        "QDDC"
      ]
    },
    "GenReq": {
      "type": "object",
      "properties": {
        "OSINFO": {
          "type": "string",
          "description": "object",
          "minLength": 1,
          "maxLength": 1,
          "enum": [
            "Y",
            "N"
          ]
        },
        "NXTPU": {
          "type": "string",
          "description": "object",
          "minLength": 1,
          "maxLength": 1,
          "enum": [
            "Y",
            "N"
          ]
        },
        "FCNTWTYCD": {
          "type": "string",
          "description": "object",
          "minLength": 2,
          "maxLength": 2,
          "enum": [
            "DD",
            "TD",
            "AL"
          ]
        },
        "CUSTAGRIND": {
          "type": "string",
          "description": "object",
          "minLength": 1,
          "maxLength": 1,
          "enum": [
            "Y",
            "N"
          ]
        },
        "VLDTRT_DD": {
          "type": "string",
          "description": "object",
          "minLength": 1,
          "maxLength": 1,
          "enum": [
            "Y",
            "N"
          ]
        }
      }
    },
    "MessageReference": {
      "type": "string",
      "description": "Reference to the requested Message",
      "minLength": 28,
      "maxLength": 32
    },
    "MetaData": {
      "type": "object",
      "description": "MetaData header",
      "properties": {
        "SoftwareName": {
          "type": "string",
          "description": "The Software Name element is used to identify the software name used by customer or third party vendor. It is mandatory field",
          "maxLength": 30
        },
        "SoftwareVersion": {
          "type": "string",
          "description": "The Software Version element is used to identify the software version used by customer or third party vendor. It is mandatory field",
          "maxLength": 10
        }
      },
      "required": [
        "SoftwareName",
        "SoftwareVersion"
      ]
    },
    "Password": {
      "type": "string",
      "description": "Password used for verifying the sender",
      "minLength": 8,
      "maxLength": 20
    },
    "PieceType": {
      "type": "array",
      "minItems": 1,
      "maxItems": 999,
      "items": {
        "properties": {
          "PieceID": {
            "type": "string",
            "description": "object",
            "pattern": "[0-9]+"
          },
          "PackageTypeCode": {
            "type": "string",
            "description": "object",
            "minLength": 3,
            "maxLength": 3,
            "enum": [
              "FLY",
              "COY",
              "NCY",
              "PAL",
              "DBL",
              "BOX"
            ]
          },
          "Height": {
            "type": "number",
            "description": "required if width and depth are specified Positive number with 10 amount of digits. Positive number with 3 decimal places precision."
          },
          "Depth": {
            "type": "number",
            "description": "required if width and height are specified Positive number with 10 amount of digits. Positive number with 3 decimal places precision."
          },
          "Width": {
            "type": "number",
            "description": "required if height and depth are specified Positive number with 10 amount of digits. Positive number with 3 decimal places precision."
          },
          "Weight": {
            "type": "number",
            "description": "object Positive number with 15 amount of digits. Positive number with 3 decimal places precision."
          }
        }
      },
      "required": [
        "PieceID",
        "Weight"
      ]
    },
    "QtdShpExChrgType": {
      "type": "object",
      "properties": {
        "SpecialServiceType": {
          "type": "string",
          "description": "object",
          "maxLength": 6
        },
        "LocalSpecialServiceType": {
          "type": "string",
          "description": "object",
          "maxLength": 3
        }
      }
    },
    "QtdShpType": {
      "type": "object",
      "properties": {
        "GlobalProductCode": {
          "type": "string",
          "description": "object",
          "minLength": 0,
          "maxLength": 6,
          "pattern": "[A-Z0-9]+"
        },
        "LocalProductCode": {
          "type": "string",
          "description": "object",
          "minLength": 0,
          "maxLength": 6
        },
        "QtdShpExChrg": {
          "type": "array",
          "minItems": 0,
          "items": {
            "$ref": "#/$defs/QtdShpExChrgType"
          }
        }
      }
    },
    "Request": {
      "type": "object",
      "description": "Generic request header",
      "properties": {
        "ServiceHeader": {
          "$ref": "#/$defs/ServiceHeader"
        },
        "MetaData": {
          "$ref": "#/$defs/MetaData"
        }
      },
      "required": [
        "ServiceHeader"
      ]
    },
    "ServiceHeader": {
      "type": "object",
      "description": "Standard routing header",
      "properties": {
        "MessageTime": {
          "type": "string",
          "description": "Time this message is sent",
          "format": "date-time"
        },
        "GMTOffset": {
          "type": "string",
          "description": "The GMToffset element is a simple type of element which gives the time difference between the service areas time and GMT"
        },
        "MessageReference": {
          "$ref": "#/$defs/MessageReference"
        },
        "SiteID": {
          "$ref": "#/$defs/SiteID"
        },
        "Password": {
          "$ref": "#/$defs/Password"
        }
      },
      "required": [
        "MessageTime",
        "MessageReference",
        "SiteID",
        "Password"
      ]
    },
    "SiteID": {
      "type": "string",
      "description": "Site ID used for verifying the sender",
      "minLength": 6,
      "maxLength": 20
    },
    "YesNo": {
      "type": "string",
      "description": "Boolean flag",
      "minLength": 1,
      "maxLength": 1,
      "enum": [
        "Y",
        "N"
      ]
    }
  }
}