{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/dpd-group/main/json-schema/dpd-group-shipment-schema.json",
  "title": "Shipment",
  "x-generated": "2026-10-13",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/dpd-group-shipments-api-openapi.yml#/components/schemas/Shipment",
  "properties": {
    "id": {
      "$ref": "#/$defs/ShipmentId"
    },
    "shipmentType": {
      "$ref": "#/$defs/ShipmentType"
    },
    "customer": {
      "$ref": "#/$defs/Customer"
    },
    "references": {
      "$ref": "#/$defs/ShipmentReferences"
    },
    "receiver": {
      "$ref": "#/$defs/Receiver"
    },
    "sender": {
      "$ref": "#/$defs/Sender"
    },
    "payer": {
      "$ref": "#/$defs/Payer"
    },
    "declaredSender": {
      "$ref": "#/$defs/DeclaredSender"
    },
    "services": {
      "$ref": "#/$defs/Shipment_services"
    },
    "parcels": {
      "items": {
        "$ref": "#/$defs/Parcel"
      },
      "type": "array"
    },
    "source": {
      "$ref": "#/$defs/Source"
    }
  },
  "required": [
    "customer",
    "payer",
    "receiver",
    "sender",
    "shipmentType"
  ],
  "type": "object",
  "$defs": {
    "Address": {
      "properties": {
        "street": {
          "$ref": "#/$defs/Street_1"
        },
        "postalCode": {
          "$ref": "#/$defs/PostalCode"
        },
        "city": {
          "$ref": "#/$defs/City_1"
        },
        "houseNumber": {
          "$ref": "#/$defs/HouseNumber"
        },
        "country": {
          "$ref": "#/$defs/CountryIdent"
        }
      },
      "required": [
        "city",
        "country",
        "postalCode",
        "street"
      ],
      "type": "object"
    },
    "AirExpressService": {
      "default": false,
      "description": "Service providing express air delivery",
      "title": "Air express",
      "type": "boolean"
    },
    "CashOnDeliveryService_1": {
      "allOf": [
        {
          "$ref": "#/$defs/CashOnDeliveryWithAccount"
        },
        {
          "description": "Cash on delivery - Allows you to specify the amount to be collected from the consignee",
          "title": "Cash on delivery"
        }
      ]
    },
    "CashOnDeliveryWithAccount": {
      "properties": {
        "amountCents": {
          "$ref": "#/$defs/CodAmount"
        },
        "currency": {
          "$ref": "#/$defs/Currency"
        },
        "payment": {
          "$ref": "#/$defs/PaymentType"
        },
        "account": {
          "$ref": "#/$defs/CodAccount"
        },
        "variableSymbol": {
          "description": "Variable symbol of the COD payment",
          "maxLength": 10,
          "type": "string"
        }
      },
      "required": [
        "amountCents",
        "currency",
        "payment"
      ],
      "type": "object"
    },
    "City_1": {
      "description": "WARNING: Depending on type of the label, this field will be shortened to fit the label.\n  - PDF/EPL 31 characters for receiver and 28 characters for sender\n  - ZPL 31 characters for receiver and 19 characters for sender\n",
      "maxLength": 35,
      "type": "string"
    },
    "CodAccount": {
      "description": "The account to which the COD payment should be sent",
      "properties": {
        "bankCode": {
          "deprecated": true,
          "description": "Code of your bank  \n\nDeprecated: Use the \"domestic\" object instead.\n",
          "maxLength": 4,
          "minLength": 4,
          "type": "string"
        },
        "bankName": {
          "deprecated": true,
          "description": "Your custom bank designation (might be displayed to the customer).  \n\nWe suggest you use capital letters and numbers.  \n\nDeprecated: Use the \"domestic\" object instead.\n",
          "maxLength": 30,
          "type": "string"
        },
        "accountNumber": {
          "deprecated": true,
          "description": "The account number without bankCode  \n\nDeprecated: Use the \"domestic\" object instead.\n",
          "maxLength": 17,
          "minLength": 17,
          "type": "string"
        },
        "accountName": {
          "deprecated": true,
          "description": "Your custom account number name for organizational purposes.  \n\nWe suggest using only capital letters and numbers.  \n\nDeprecated: Use the \"domestic\" object instead.\n",
          "maxLength": 30,
          "type": "string"
        },
        "domestic": {
          "$ref": "#/$defs/CodAccount_domestic"
        },
        "international": {
          "$ref": "#/$defs/CodAccount_international"
        }
      },
      "type": "object"
    },
    "CodAccount_domestic": {
      "description": "Country specific bank account information.\n\nThis is currently reserved for CZ based bank accounts!  \n\nIf you provide any non CZ based bank acccount that will pass validation, it might get used for domestic CZ payments!\n",
      "properties": {
        "bankCode": {
          "description": "Code of your bank",
          "maxLength": 4,
          "minLength": 4,
          "type": "string"
        },
        "bankName": {
          "description": "Your custom bank designation (might be displayed to the customer).\n\nWe suggest you use capital letters and numbers.\n",
          "maxLength": 30,
          "type": "string"
        },
        "accountNumber": {
          "description": "The account number without bankCode",
          "maxLength": 17,
          "minLength": 17,
          "type": "string"
        },
        "accountName": {
          "description": "Your custom account number name for organizational purposes.\n\nWe suggest using only capital letters and numbers.\n",
          "maxLength": 30,
          "type": "string"
        }
      },
      "required": [
        "accountName",
        "accountNumber",
        "bankCode",
        "bankName"
      ],
      "type": "object"
    },
    "CodAccount_international": {
      "properties": {
        "IBAN": {
          "description": "The IBAN of the COD account",
          "maxLength": 34,
          "type": "string"
        },
        "BIC": {
          "description": "BIC - The SWIFT Address assigned to a bank",
          "maxLength": 11,
          "minLength": 8,
          "type": "string"
        }
      },
      "required": [
        "BIC",
        "IBAN"
      ],
      "type": "object"
    },
    "CodAmount": {
      "description": "The amount to be collected on delivery.  \nThis value is always represented in cents of the specified currency.  \nCents in this context signify a 1/100 of the currency base units.\n\nFor example when the COD is supposed to be 45.5 CZK, the value should be 4550 (with appropriate currency settings)  \nOr when the COD is supposed to be 2 EUR, the sent value should be 200 (with appropriate currency settings)  \n",
      "type": "number"
    },
    "CountryAlpha2": {
      "description": "Country ISO Alpha-2 code",
      "maxLength": 2,
      "minLength": 2,
      "type": "string"
    },
    "CountryAlpha3": {
      "description": "Country ISO Alpha-3 code",
      "maxLength": 3,
      "minLength": 3,
      "type": "string"
    },
    "CountryIdent": {
      "oneOf": [
        {
          "$ref": "#/$defs/CountryIdent_oneOf"
        },
        {
          "$ref": "#/$defs/CountryIdent_oneOf_1"
        },
        {
          "$ref": "#/$defs/CountryIdent_oneOf_2"
        }
      ]
    },
    "CountryIdent_oneOf": {
      "properties": {
        "isoAlpha3": {
          "$ref": "#/$defs/CountryAlpha3"
        }
      },
      "required": [
        "isoAlpha3"
      ],
      "type": "object"
    },
    "CountryIdent_oneOf_1": {
      "properties": {
        "isoAlpha2": {
          "$ref": "#/$defs/CountryAlpha2"
        }
      },
      "required": [
        "isoAlpha2"
      ],
      "type": "object"
    },
    "CountryIdent_oneOf_2": {
      "properties": {
        "isoNumeric": {
          "$ref": "#/$defs/CountryNumeric"
        }
      },
      "required": [
        "isoNumeric"
      ],
      "type": "object"
    },
    "CountryNumeric": {
      "description": "Country ISO numeric code",
      "maxLength": 3,
      "minLength": 3,
      "type": "string"
    },
    "Currency": {
      "description": "Currency in the ISO 4217 format",
      "maxLength": 3,
      "minLength": 3,
      "type": "string"
    },
    "Customer": {
      "description": "For more info about customers see the [Customer DSW](#/CustomerDSW)",
      "properties": {
        "DSW": {
          "$ref": "#/$defs/CustomerDSW"
        },
        "isActive": {
          "type": "boolean"
        },
        "id": {
          "$ref": "#/$defs/CustomerID"
        }
      },
      "required": [
        "DSW",
        "id",
        "isActive"
      ],
      "type": "object"
    },
    "CustomerAddress": {
      "description": "Each user account, can have multiple customers (identified by DSW).  \nAnd each customer can have multiple customer addresses.  \nThese addresses can for instance represent the pickup addresses for pickup services.\n",
      "properties": {
        "it4emId": {
          "$ref": "#/$defs/CustomerAddressIt4emId"
        },
        "info": {
          "$ref": "#/$defs/SubjectInfo"
        },
        "address": {
          "allOf": [
            {
              "$ref": "#/$defs/Address"
            }
          ],
          "description": "Your registered address. \nYou can for instance create (parcel) pickup orders on these addresses.\n"
        },
        "isActive": {
          "type": "boolean"
        }
      },
      "required": [
        "address",
        "info",
        "isActive",
        "it4emId"
      ],
      "type": "object"
    },
    "CustomerAddressIt4emId": {
      "description": "This ID is used DPD wide to uniquely identify a customer address (alternative to GeoAPI specific Customer Address ID)",
      "type": "number"
    },
    "CustomerDSW": {
      "description": "The customer unique global identification number used across multiple DPD services.\n\nA single user account can have multiple customers.  \nThis allows for a single user account to manage multiple branches via this API.\n",
      "maxLength": 12,
      "minLength": 11,
      "type": "string"
    },
    "CustomerID": {
      "description": "The internal GeoAPI customer ID\n\nYou would only use this if there is no other way to identify the customer.\n",
      "type": "number"
    },
    "DPDGuaranteeService": {
      "default": false,
      "description": "Enable for guaranteed timely delivery abroad\n",
      "title": "DPD Guarantee",
      "type": "boolean"
    },
    "DPDPneuService": {
      "default": false,
      "description": "Delivery of (vehicle) tires",
      "title": "DPD Pneu",
      "type": "boolean"
    },
    "DPDReturnService": {
      "default": false,
      "description": "A special service where the **original receiver** of a **previous shipment** returns the shipment, typically due to a complaint.\n\nThe return shipment will be dropped of by the **original receiver** at a pickup point and sent back to the **original sender**.\n\nBut this new shipment must be setup in a usual way as it will travel from the **sender** (original receiver) to the **receiver** (original sender).\nThe only difference is the **semantic link** to the **previous shipment**.\n\n**Limitations**\n\nDPD service cannot be combined with any other service. Also only the PDF label can be printed.\n",
      "title": "DPD Return Service",
      "type": "boolean"
    },
    "DPDTimeGuaranteeService": {
      "description": "You can choose from the selection of DPD delivery services with guaranteed delivery times\n\nDPD12 - Delivery before 12:00\n\nDPD18 - Guaranteed second day delivery before 18:00\n",
      "enum": [
        "DPD12",
        "DPD18"
      ],
      "title": "DPD Time guarantee",
      "type": "string"
    },
    "DeclaredSender": {
      "description": "Allows you to specify any address as the declared sender.\n\nDeclared sender is a sender that will be listed on the parcel labels \nand will also be listed in the shipment data.\n\nHowever it does not affect the actual shipment routing. The actual sender (pickup place) will still be the \"sender\".\n\n**Usages**\n\n- This is, for instance, used when you are shipping packages for your partner / declared sender.\n",
      "properties": {
        "info": {
          "$ref": "#/$defs/SubjectInfo"
        },
        "address": {
          "$ref": "#/$defs/Address"
        }
      },
      "required": [
        "address",
        "info"
      ],
      "type": "object"
    },
    "DedicatedDirectTruckLoadService": {
      "default": false,
      "description": "A special service where multiple parcels are delivered in a single containe.\n",
      "title": "Dedicated Direct Truck Load",
      "type": "boolean"
    },
    "DepartmentDeliveryService": {
      "description": "The shipment is delivered to a department without any personal identification.\n\nInternal info: Setting identification to \"false\" (the only option currently) equals the \"1\" type in the old GeoAPI\n",
      "properties": {
        "building": {
          "description": "The building where the shipment is delivered to",
          "maxLength": 25,
          "type": "string"
        },
        "floor": {
          "description": "The floor where the shipment is delivered to",
          "maxLength": 25,
          "type": "string"
        },
        "department": {
          "description": "The department where the shipment is delivered to",
          "maxLength": 25,
          "type": "string"
        }
      },
      "required": [
        "building",
        "department",
        "floor"
      ],
      "title": "Department delivery",
      "type": "object"
    },
    "Email": {
      "type": "string"
    },
    "HouseNumber": {
      "type": "string"
    },
    "IDCheck": {
      "description": "This data is used when a check against a personal ID card is required",
      "properties": {
        "name": {
          "description": "The name of the person to be checked",
          "maxLength": 35,
          "type": "string"
        },
        "personalId": {
          "description": "The personal identification card number of the receiving person",
          "maxLength": 18,
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "Insurance": {
      "properties": {
        "amountCents": {
          "description": "Units of the specified currency in cents.\nFor example 125 units of CZK is 1.25 CZK.\n",
          "type": "number"
        },
        "currency": {
          "$ref": "#/$defs/Currency"
        }
      },
      "required": [
        "amountCents",
        "currency"
      ],
      "type": "object"
    },
    "NoRedirectionService": {
      "default": false,
      "description": "This is an additional service to the S2S product which cannot be redirected\n",
      "title": "DPD No Direction",
      "type": "boolean"
    },
    "NotificationService": {
      "default": false,
      "description": "Private shipment with predict notifications and 1HP\n\nEnable this service to send notifications about the delivery times to your customers.\n",
      "title": "Notification",
      "type": "boolean"
    },
    "Parcel": {
      "description": "For more info about parcels see the [Parcel Number](#/ParcelNo)",
      "properties": {
        "parcelNumbers": {
          "$ref": "#/$defs/ParcelNumbers"
        },
        "references": {
          "$ref": "#/$defs/ParcelReferences"
        },
        "insurance": {
          "$ref": "#/$defs/Insurance"
        },
        "isPrinted": {
          "description": "Are the labels for this parcel already printed?",
          "type": "boolean"
        },
        "weightGrams": {
          "$ref": "#/$defs/ParcelWeight"
        },
        "id": {
          "type": "number"
        }
      },
      "required": [
        "id",
        "isPrinted",
        "parcelNumbers"
      ],
      "type": "object"
    },
    "ParcelNo": {
      "description": "Each shipment can have multiple (physical) parcels.  \nThis number is used to identify and reference an individual parcel in the shipment.  \nEach parcel has its own label.\n",
      "maxLength": 14,
      "minLength": 14,
      "type": "string"
    },
    "ParcelNumbers": {
      "properties": {
        "main": {
          "allOf": [
            {
              "$ref": "#/$defs/ParcelNo"
            },
            {
              "description": "Parcel number for a standard/collection parcel"
            }
          ]
        },
        "back": {
          "allOf": [
            {
              "$ref": "#/$defs/ParcelNo"
            },
            {
              "description": "Parcel number assigned only to back parcels (in Swap service)"
            }
          ]
        }
      },
      "title": "Parcel numbers",
      "type": "object"
    },
    "ParcelReference1": {
      "description": "A reference is an internal information for your use cases.\nYou can use this (for instance) to correlate the parcel with your internal system IDs.\n\nThis reference is printed on the parcel label.\nIt is shortened to 14/17 characters when printed on the label.\n",
      "maxLength": 35,
      "type": "string"
    },
    "ParcelReference2": {
      "description": "A reference is an internal information for your use cases.\nYou can use this (for instance) to correlate the parcel with your internal system IDs.\n\nThis reference is printed on the parcel label.\nThis is shortened do 14/17 characters when printed on the label.\n",
      "maxLength": 35,
      "type": "string"
    },
    "ParcelReference3": {
      "description": "Additional information for your use cases.  \nYou can use this (for instance) to correlate the parcel with your internal system IDs.\n",
      "maxLength": 35,
      "type": "string"
    },
    "ParcelReference4": {
      "description": "Additional information for your use cases.  \nYou can use this (for instance) to correlate the parcel with your internal system IDs.\n",
      "maxLength": 35,
      "type": "string"
    },
    "ParcelReferences": {
      "description": "A reference is an internal information for your use cases.",
      "properties": {
        "ref1": {
          "$ref": "#/$defs/ParcelReference1"
        },
        "ref2": {
          "$ref": "#/$defs/ParcelReference2"
        },
        "ref3": {
          "$ref": "#/$defs/ParcelReference3"
        },
        "ref4": {
          "$ref": "#/$defs/ParcelReference4"
        }
      },
      "title": "Parcel references",
      "type": "object"
    },
    "ParcelWeight": {
      "description": "Weight of the parcel in grams\nE.g 1500 represents 1.5 kg.\n",
      "type": "number"
    },
    "Payer": {
      "properties": {
        "customer": {
          "$ref": "#/$defs/Customer"
        },
        "customerAddress": {
          "$ref": "#/$defs/CustomerAddress"
        }
      },
      "required": [
        "customer"
      ]
    },
    "PaymentType": {
      "description": "CASH - Payment by cash\n\nCASH_OR_CARD - Payment by cash or card\n",
      "enum": [
        "Cash",
        "CashOrCard"
      ],
      "type": "string"
    },
    "PersonalIdentificationService": {
      "allOf": [
        {
          "$ref": "#/$defs/IDCheck"
        }
      ],
      "description": "Delivery with personal identification using the ID-Check method.\n\nThe receiver will have to provide an identification card matching the information provided here.\n\nIf you have selected a pickup point delivery service, then the identification will be conducted at the pickup point.\n\n**Limitations**\n\nThe personal identification service is only available when the delivery to department is not requested:\n\nSee the service table for more info.\n",
      "title": "Personal identification"
    },
    "PhoneNumber": {
      "description": "Can be with or without the international prefix",
      "maxLength": 31,
      "type": "string"
    },
    "PickupPointID": {
      "description": "Uniquely identifies a pickup point\n\nAlso internally used by DPD\n",
      "type": "string"
    },
    "PickupPointService": {
      "allOf": [
        {
          "$ref": "#/$defs/PickupPointID"
        },
        {
          "description": "You can use this service to order a delivery to a specified pickup point\n\nSet this value to the ID of the pickup point you want the shipment to be delivered to.\n",
          "title": "Pickup point delivery"
        }
      ]
    },
    "PostalCode": {
      "maxLength": 7,
      "minLength": 3,
      "type": "string"
    },
    "Receiver": {
      "description": "Info about the receiver of the shipment (destination)",
      "properties": {
        "info": {
          "$ref": "#/$defs/SubjectInfo"
        },
        "address": {
          "$ref": "#/$defs/Address"
        }
      },
      "required": [
        "address",
        "info"
      ],
      "type": "object"
    },
    "Sender": {
      "description": "Info about the sender of the shipment (source)",
      "properties": {
        "info": {
          "$ref": "#/$defs/SubjectInfo"
        },
        "address": {
          "$ref": "#/$defs/Address"
        }
      },
      "required": [
        "address",
        "info"
      ],
      "type": "object"
    },
    "ServiceCode": {
      "description": "The DPD wide shipping service/product code.\n\nThis is calculated based on the requested shipment services like COD, notification and etc...\n\nIt is (for instance) used when resolving the shipping route.\n",
      "type": "string"
    },
    "ServiceCombination": {
      "description": "The DPD wide shipping service/product combination code.\nThis is the combination of the codes from the selected services.\n",
      "type": "string"
    },
    "ShipmentId": {
      "description": "Unique shipment ID.\n\nThis ID is used to reference the shipment in the API endpoints.\n",
      "type": "number"
    },
    "ShipmentReference": {
      "description": "You can set this to your invoice number or other value per preference and data needs.\n",
      "maxLength": 35,
      "title": "Shipment reference",
      "type": "string"
    },
    "ShipmentReferences": {
      "description": "A reference is an internal information for your use cases.\n\nShipment references are only used in the data, not printed to any labels.\n",
      "properties": {
        "ref1": {
          "$ref": "#/$defs/ShipmentReference"
        },
        "ref2": {
          "$ref": "#/$defs/ShipmentReference"
        },
        "ref3": {
          "$ref": "#/$defs/ShipmentReference"
        },
        "ref4": {
          "$ref": "#/$defs/ShipmentReference"
        }
      },
      "title": "Shipment References",
      "type": "object"
    },
    "ShipmentServices": {
      "properties": {
        "notification": {
          "$ref": "#/$defs/NotificationService"
        },
        "airExpress": {
          "$ref": "#/$defs/AirExpressService"
        },
        "dpdTimeGuarantee": {
          "$ref": "#/$defs/DPDTimeGuaranteeService"
        },
        "dpdGuarantee": {
          "$ref": "#/$defs/DPDGuaranteeService"
        },
        "swap": {
          "$ref": "#/$defs/SwapService"
        },
        "dpdPneu": {
          "$ref": "#/$defs/DPDPneuService"
        },
        "cashOnDelivery": {
          "$ref": "#/$defs/CashOnDeliveryService_1"
        },
        "pickupPoint": {
          "$ref": "#/$defs/PickupPointService"
        },
        "departmentDelivery": {
          "$ref": "#/$defs/DepartmentDeliveryService"
        },
        "personalIdentification": {
          "$ref": "#/$defs/PersonalIdentificationService"
        },
        "dpdReturn": {
          "$ref": "#/$defs/DPDReturnService"
        },
        "shopToShop": {
          "$ref": "#/$defs/ShopToShopService"
        },
        "shopToHome": {
          "$ref": "#/$defs/ShopToHomeService"
        },
        "ddtl": {
          "$ref": "#/$defs/DedicatedDirectTruckLoadService"
        },
        "noRedirection": {
          "$ref": "#/$defs/NoRedirectionService"
        }
      },
      "type": "object"
    },
    "ShipmentType": {
      "description": "A type of the shipment. The type has impact on validations of sender/receiver, selected services, parcel numbers assigning and routing.\n",
      "enum": [
        "Standard",
        "Collection",
        "ThirdPartyCollection",
        "Import",
        "ThirdPartyStandard",
        "Return"
      ],
      "type": "string"
    },
    "Shipment_services": {
      "properties": {
        "serviceCode": {
          "$ref": "#/$defs/ServiceCode"
        },
        "serviceCombination": {
          "$ref": "#/$defs/ServiceCombination"
        },
        "selectedServices": {
          "$ref": "#/$defs/Shipment_services_selectedServices"
        }
      },
      "required": [
        "serviceCode",
        "serviceCombination"
      ],
      "type": "object"
    },
    "Shipment_services_selectedServices": {
      "allOf": [
        {
          "$ref": "#/$defs/ShipmentServices"
        },
        {
          "description": "The services that have been selected for this shipment"
        }
      ]
    },
    "ShopToHomeService": {
      "default": false,
      "description": "A special service where a standard parcel is sent from a pickup point instead of being pickup up by a courier\n\nThe package is delivered to an arbitrary address.\n",
      "title": "DPD Shop to Home",
      "type": "boolean"
    },
    "ShopToShopService": {
      "default": false,
      "description": "A special service where a standard parcel is sent from a pickup point instead of being pickup up by a courier\n\nThe package is also always delivered to a pickup point\n",
      "title": "DPD Shop to Shop",
      "type": "boolean"
    },
    "Source": {
      "description": "Contains information related to the \"source\" of the shipment.\nThe source usually refers to the system that created the shipment via the API.\n",
      "properties": {
        "systemId": {
          "description": "Uniquely identifies the source system in which the shipment was created.\n\nThis has to be filled if you have received instructions from the DPD to do so.\n\nYou can fill this even if you did not receive the instructions.\nWe will then be able to connect the shipments with your particular system for debugging and analytics if you do so.\n",
          "type": "string"
        },
        "additionalInfo": {
          "additionalProperties": true,
          "type": "object"
        }
      },
      "type": "object"
    },
    "Street_1": {
      "description": "Including the descriptive number\n\nWARNING: Depending on type of the label, this field will be shortened to fit the label.\n  - PDF 31 characters for receiver and 28 characters for sender\n  - ZPL/EPL 31 characters for receiver and 19 characters for sender\n",
      "maxLength": 35,
      "type": "string"
    },
    "SubjectInfo": {
      "properties": {
        "name1": {
          "$ref": "#/$defs/SubjectName"
        },
        "name2": {
          "$ref": "#/$defs/SubjectNameSecondary"
        },
        "contact": {
          "$ref": "#/$defs/SubjectInfo_contact"
        }
      },
      "required": [
        "name1"
      ],
      "title": "Subject information",
      "type": "object"
    },
    "SubjectInfo_contact": {
      "properties": {
        "person": {
          "minLength": 2,
          "type": "string"
        },
        "phone": {
          "$ref": "#/$defs/PhoneNumber"
        },
        "email": {
          "$ref": "#/$defs/Email"
        }
      },
      "type": "object"
    },
    "SubjectName": {
      "description": "The name of the sender/receiver.\n\nUsually this is the full name of the receiver/sender.\nYou can also specify the name of the receiving/sending company (e.g) \n\nIt is up to you to specify all required information, for the delivery to be successfully completed.\n\nWARNING: Depending on type of the label, this field will be shortened to fit the label.\n  - PDF/EPL 31 characters for receiver and 28 characters for sender\n  - ZPL 31 characters for receiver and 19 characters for sender\n",
      "maxLength": 35,
      "type": "string"
    },
    "SubjectNameSecondary": {
      "description": "You can use this property if you need to add some additional information about the receiver/sender.\nOr if the information about the receiver/sender are better expressed in separate fields\n\nFor example, you can specify the name of the company here, or the name of the person who is sending/receiving for the shipment.\n\nWARNING: Depending on type of the label, this field will be shortened to fit the label.\n  - PDF/EPL 31 characters for receiver and 28 characters for sender\n  - ZPL 31 characters for receiver and 19 characters for sender\n",
      "maxLength": 35,
      "type": "string"
    },
    "SwapService": {
      "description": "Swap shipment - Parcels exchanged one for another",
      "title": "Swap",
      "type": "boolean"
    }
  }
}