{
  "openapi": "3.0.1",
  "info": {
    "title": "Machship API V2",
    "version": "V2"
  },
  "paths": {
    "/apiv2/attachments/getAttachment": {
      "get": {
        "tags": [
          "Attachments"
        ],
        "summary": "Downloads the raw Attachment file",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "The id of the attachment",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/apiv2/attachments/getAttachmentPodReport": {
      "get": {
        "tags": [
          "Attachments"
        ],
        "summary": "Downloads the POD report which includes the attachment and details about the consignment",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "The id of the attachment",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/apiv2/attachments/getAttachmentsByConsignmentIds": {
      "get": {
        "tags": [
          "Attachments"
        ],
        "summary": "Downloads attachments given a list of up to 40 consignments",
        "parameters": [
          {
            "name": "ids",
            "in": "query",
            "description": "A list of Ids of the consignments. Note that the maximum number of consignments to query\r\n            at once is 40 and supplying any more than that will result in an error",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/apiv2/attachments/uploadAttachments": {
      "post": {
        "tags": [
          "Attachments"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Attachment"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Attachment"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Attachment"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Attachment"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/authenticate/ping": {
      "post": {
        "tags": [
          "Authenticate"
        ],
        "summary": "Determine whether a user is logged in and get any session properties required by the front end",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/BooleanBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BooleanBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/BooleanBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/login/template": {
      "get": {
        "tags": [
          "Branding"
        ],
        "parameters": [
          {
            "name": "organisation",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/apiv2/carrierInvoices/getAll": {
      "get": {
        "tags": [
          "CarrierInvoices"
        ],
        "summary": "Return the basic information about carrier invoices that have been imported into Machship. It will return at most 100 records,\r\nin the order of most recently imported to oldest.",
        "parameters": [
          {
            "name": "companyId",
            "in": "query",
            "description": "Optional parameter to limit invoices to those imported against a certain MachShip company ID",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "carrierId",
            "in": "query",
            "description": "Optional parameter to limit invoices to those imported against a certain MachShip carrier ID",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "fileName",
            "in": "query",
            "description": "Optional parameter - when supplied it will filter the results to invoices which match the supplied file name",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "invoiceId",
            "in": "query",
            "description": "Optional parameter - when supplied it will filter the results to invoices which match the supplied invoice ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CarrierInvoiceInformationICollectionBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CarrierInvoiceInformationICollectionBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CarrierInvoiceInformationICollectionBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/carrierInvoices/getEntriesForInvoice": {
      "get": {
        "tags": [
          "CarrierInvoices"
        ],
        "summary": "Get a listing of carrier invoice entries for a particular carrier invoice, with the option to filter by the status of the entries.",
        "parameters": [
          {
            "name": "carrierInvoiceId",
            "in": "query",
            "description": "The Machship ID of an imported carrier invoice",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "An optional status filter for the entries",
            "schema": {
              "$ref": "#/components/schemas/CarrierInvoiceEntryStatus"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CarrierInvoiceEntryV2ForGetEntriesEndpointICollectionBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CarrierInvoiceEntryV2ForGetEntriesEndpointICollectionBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CarrierInvoiceEntryV2ForGetEntriesEndpointICollectionBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/carrierInvoices/updateAndRepriceConsignment": {
      "post": {
        "tags": [
          "CarrierInvoices"
        ],
        "summary": "Update a consignment's items and trigger Machship to reprice it using the new item weights / dimensions.",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/RepriceConsignmentV2Model"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RepriceConsignmentV2Model"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RepriceConsignmentV2Model"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RepriceConsignmentV2Model"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/carrierInvoices/attemptAutoReconciliation": {
      "post": {
        "tags": [
          "CarrierInvoices"
        ],
        "summary": "Attempt to auto reconcile consignments based on the thresholds defined in the carrier account associated with the consignment.\r\nNote that a successful response from this function will not indicate whether the consignments did or did not auto-reconcile - you\r\nwill need to establish that from the consignments and their notes instead.",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/AutoReconcileRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AutoReconcileRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AutoReconcileRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AutoReconcileRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/commercialInvoices/uploadCommercialInvoice": {
      "post": {
        "tags": [
          "CommercialInvoices"
        ],
        "summary": "Upload commercial invoice file(s) for a consignment",
        "description": "Uploads one or more files as commercial invoices for the specified consignment.",
        "parameters": [
          {
            "name": "consignmentId",
            "in": "query",
            "description": "The consignment to upload the commercial invoice for",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "files": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "binary"
                    }
                  }
                }
              },
              "encoding": {
                "files": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success"
          },
          "406": {
            "description": "Not Acceptable",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/companies/getAll": {
      "get": {
        "tags": [
          "Companies"
        ],
        "summary": "Get all companies that the current user can access",
        "parameters": [
          {
            "name": "atOrBelowCompanyId",
            "in": "query",
            "description": "When supplied the results will be limited to the company with that ID and any descendants\r\nbelow it. Leave blank to return all companies.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyV2WithParentIdIEnumerableBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyV2WithParentIdIEnumerableBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyV2WithParentIdIEnumerableBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/companies/getAvailableCarriersAccountsAndServices": {
      "get": {
        "tags": [
          "Companies"
        ],
        "summary": "Get all available carriers with accounts and services",
        "parameters": [
          {
            "name": "companyId",
            "in": "query",
            "description": "The id of the company to get the carriers, accounts and services for",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CarrierWithAccountsAndServicesLiteIEnumerableBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CarrierWithAccountsAndServicesLiteIEnumerableBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CarrierWithAccountsAndServicesLiteIEnumerableBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/items/get": {
      "get": {
        "tags": [
          "CompanyItems"
        ],
        "summary": "Returns a saved item with all its dimensions",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "The Machship Id of the saved item",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyItemV2BaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyItemV2BaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyItemV2BaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/items/getAll": {
      "get": {
        "tags": [
          "CompanyItems"
        ],
        "summary": "Returns a list of items for a given company. By default, it will return the top 200 items. If you have more than 200, you will need to enter a different startIndex. Eg. 201, 401, etc. This only returns standard items",
        "parameters": [
          {
            "name": "companyId",
            "in": "query",
            "description": "The company whose items you want want to get",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "startIndex",
            "in": "query",
            "description": "The start Index of the get (Optional. By default this is 1)",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "retrieveSize",
            "in": "query",
            "description": "The number of results to retrieve (Optional. Max number is 200)",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 200
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyItemV2GridDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyItemV2GridDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyItemV2GridDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/items/getBySku": {
      "get": {
        "tags": [
          "CompanyItems"
        ],
        "summary": "Returns a saved item that has the matching Sku. This only returns simple items",
        "parameters": [
          {
            "name": "companyId",
            "in": "query",
            "description": "",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "sku",
            "in": "query",
            "description": "",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyItemV2BaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyItemV2BaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyItemV2BaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/items/getBySkus": {
      "post": {
        "tags": [
          "CompanyItems"
        ],
        "summary": "Returns a list of saved items matching any of the supplied SKUs. Standard items only. SKUs that don't match any item are silently omitted from the response — compare returned `Sku` values against your input to detect misses. Maximum of 100 SKUs per request.",
        "parameters": [
          {
            "name": "companyId",
            "in": "query",
            "description": "The company whose items you want to look up. Defaults to the caller's company when not supplied.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The SKUs to look up (max 100).",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyItemV2ICollectionBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyItemV2ICollectionBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyItemV2ICollectionBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/items/getComplex": {
      "get": {
        "tags": [
          "CompanyItems"
        ],
        "summary": "Returns a saved complex item with all its dimensions",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "The Machship Id of the saved item",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyItemComplexV2BaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyItemComplexV2BaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyItemComplexV2BaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/items/getAllComplex": {
      "get": {
        "tags": [
          "CompanyItems"
        ],
        "summary": "Returns a list of items for a given company. By default, it will return the top 200 items. If you have more than 200, you will need to enter a different startIndex. Eg. 201, 401, etc. Returns all items as complex items",
        "parameters": [
          {
            "name": "companyId",
            "in": "query",
            "description": "The company whose items you want want to get",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "startIndex",
            "in": "query",
            "description": "The start Index of the get (Optional. By default this is 1)",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "retrieveSize",
            "in": "query",
            "description": "The number of results to retrieve (Optional. Max number is 200)",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 200
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyItemComplexV2GridDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyItemComplexV2GridDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyItemComplexV2GridDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/items/getBySkuComplex": {
      "get": {
        "tags": [
          "CompanyItems"
        ],
        "summary": "Returns a saved item that has the matching Sku. Returns complex items",
        "parameters": [
          {
            "name": "companyId",
            "in": "query",
            "description": "",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "sku",
            "in": "query",
            "description": "",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyItemComplexV2BaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyItemComplexV2BaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyItemComplexV2BaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/items/createComplex": {
      "post": {
        "tags": [
          "CompanyItems"
        ],
        "parameters": [
          {
            "name": "companyId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CompanyItemComplexV2"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CompanyItemComplexV2"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CompanyItemComplexV2"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CompanyItemComplexV2"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Int32BaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Int32BaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Int32BaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/items/delete": {
      "delete": {
        "tags": [
          "CompanyItems"
        ],
        "parameters": [
          {
            "name": "companyItemId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/companyLocations/get": {
      "get": {
        "tags": [
          "CompanyLocations"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyLocationV2BaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyLocationV2BaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyLocationV2BaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/companyLocations/getAll": {
      "get": {
        "tags": [
          "CompanyLocations"
        ],
        "parameters": [
          {
            "name": "companyId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyLocationV2GridDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyLocationV2GridDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyLocationV2GridDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/companyLocations/create": {
      "post": {
        "tags": [
          "CompanyLocations"
        ],
        "summary": "Create a new company location against a company",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CompanyLocationV2"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CompanyLocationV2"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CompanyLocationV2"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CompanyLocationV2"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Int32BaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Int32BaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Int32BaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/companyLocations/edit": {
      "post": {
        "tags": [
          "CompanyLocations"
        ],
        "summary": "Edit a company location",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CompanyLocationV2"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CompanyLocationV2"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CompanyLocationV2"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CompanyLocationV2"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/companyLocations/getPermanentPickupsForCompanyLocation": {
      "get": {
        "tags": [
          "CompanyLocations"
        ],
        "parameters": [
          {
            "name": "companyLocationId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyLocationV2PermanentPickupsBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyLocationV2PermanentPickupsBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyLocationV2PermanentPickupsBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/companyLocations/addPermanentPickupsToCompanyLocation": {
      "post": {
        "tags": [
          "CompanyLocations"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CompanyLocationV2PermanentPickups"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CompanyLocationV2PermanentPickups"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CompanyLocationV2PermanentPickups"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CompanyLocationV2PermanentPickups"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/messages/getmessagesforconsignment": {
      "get": {
        "tags": [
          "Messages"
        ],
        "summary": "Returns a page of a consignment's timeline, oldest first. The timeline interleaves\r\nmessages, notes written by users, and notes MachShip recorded automatically.",
        "description": "Deliberately NOT gated on Machship.FeatureFlags.Capability.ConsignmentTwoWayMessaging, unlike\r\nevery write on this controller: history written while a company held the capability must\r\nstay readable after the entitlement lapses (BF-405 — the frontend renders it read-only),\r\nso this read opens under the Consignments View permission alone. Row access is enforced\r\nby the service's own consignment security check.",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "The ID of the consignment whose timeline is returned",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "startIndex",
            "in": "query",
            "description": "The position of the first item to return, counting from 1",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "retrieveSize",
            "in": "query",
            "description": "How many items to return",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/apiv2/messages/getattachment": {
      "get": {
        "tags": [
          "Messages"
        ],
        "summary": "Downloads the file behind an attachment",
        "description": "Deliberately NOT gated on Machship.FeatureFlags.Capability.ConsignmentTwoWayMessaging, unlike\r\nevery write on this controller: attachments uploaded while a company held the capability\r\nmust stay downloadable after the entitlement lapses (BF-405 — the frontend renders the\r\nhistory read-only), so this read opens under the Consignments View permission alone. Row\r\naccess is enforced by the service's read-permission-checked message lookup and its\r\npublic/private visibility rule.",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "The ID of the attachment to download",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/apiv2/consignments/getConsignment": {
      "get": {
        "tags": [
          "Consignments"
        ],
        "summary": "Get Consignment Details for a single consignment",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "includeDeleted",
            "in": "query",
            "description": "If true, will also return details for deleted consignments",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "includeRequestGuids",
            "in": "query",
            "description": "If true, includes InitialPricingRouteRequestId and CreateRouteRequestId in the response",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "includeCarrierCustomFields",
            "in": "query",
            "description": "Set to true (or 1) to include carrier custom fields on the consignment and each item reference. False (or 0) omits them.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ConsignmentV2BaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsignmentV2BaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsignmentV2BaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/consignments/getUnmanifestedConsignmentForEdit": {
      "get": {
        "tags": [
          "Consignments"
        ],
        "summary": "Get an unmanifested consignment in the same format required to perform an update in the edit endpoint",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "The ID of the consignment in MachShip",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EditConsignmentV2BaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EditConsignmentV2BaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EditConsignmentV2BaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/consignments/getConsignmentByPendingConsignmentId": {
      "get": {
        "tags": [
          "Consignments"
        ],
        "summary": "Get a Consignment Details (if it exists) for a single consignment, using a pending consignment ID that\r\nhas been transformed (linked) into a consignment",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ConsignmentV2BaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsignmentV2BaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsignmentV2BaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/consignments/returnConsignmentsByPendingConsignmentIds": {
      "post": {
        "tags": [
          "Consignments"
        ],
        "summary": "Get Consignment Details for multiple consignments using the Pending Consignment Id as the lookup. Maximum of 100 consignments.",
        "requestBody": {
          "description": "List of Pending Consignment Ids from Pending Consignment. Maximum of 100 consignments per request.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/IdsContainer"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IdsContainer"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/IdsContainer"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/IdsContainer"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ConsignmentResponseV2ICollectionBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsignmentResponseV2ICollectionBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsignmentResponseV2ICollectionBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/consignments/returnConsignments": {
      "post": {
        "tags": [
          "Consignments"
        ],
        "summary": "Get Consignment Details for a multiple consignments. Maximum of 100 consignments per request",
        "requestBody": {
          "description": "The Machship ids of the consignments. Maximum of 100 consignments per request",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/IdsContainer"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IdsContainer"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/IdsContainer"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/IdsContainer"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ConsignmentV2ICollectionBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsignmentV2ICollectionBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsignmentV2ICollectionBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/consignments/returnConsignmentsByCarrierConsignmentId": {
      "post": {
        "tags": [
          "Consignments"
        ],
        "summary": "Get Consignment Details for a multiple consignments using the Carrier Consignment ID as the lookup. Maximum of 10 consignments per request",
        "parameters": [
          {
            "name": "includeDeleted",
            "in": "query",
            "description": "If true, will also return details for deleted consignments",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "companyId",
            "in": "query",
            "description": "Optional. Restricts the lookup to this company. Must be within the caller's accessible companies, otherwise a \"Company Not Found\" validation error is returned. When omitted the caller's base company is used.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "includeChildCompanies",
            "in": "query",
            "description": "Optional, defaults to true. When true the whole accessible company tree below companyId is searched. Set to false to restrict the lookup to companyId alone.",
            "schema": {
              "type": "boolean",
              "default": true
            }
          }
        ],
        "requestBody": {
          "description": "The Carrier Consignment ids of the consignments. Maximum of 10 consignments per request",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ConsignmentV2ICollectionBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsignmentV2ICollectionBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsignmentV2ICollectionBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/consignments/returnConsignmentsByReference1": {
      "post": {
        "tags": [
          "Consignments"
        ],
        "summary": "Get Consignment Details for a multiple consignments using Reference 1 as the lookup. Maximum of 10 consignments per request",
        "parameters": [
          {
            "name": "companyId",
            "in": "query",
            "description": "Optional. Restricts the lookup to this company. Must be within the caller's accessible companies, otherwise a \"Company Not Found\" validation error is returned. When omitted the caller's base company is used.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "includeChildCompanies",
            "in": "query",
            "description": "Optional, defaults to true. When true the whole accessible company tree below companyId is searched. Set to false to restrict the lookup to companyId alone.",
            "schema": {
              "type": "boolean",
              "default": true
            }
          }
        ],
        "requestBody": {
          "description": "The Reference 1's of the consignments. Maximum of 10 consignments per request",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ConsignmentV2ICollectionBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsignmentV2ICollectionBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsignmentV2ICollectionBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/consignments/returnConsignmentsByReference2": {
      "post": {
        "tags": [
          "Consignments"
        ],
        "summary": "Get Consignment Details for a multiple consignments using Reference 2 as the lookup. Maximum of 10 consignments per request",
        "parameters": [
          {
            "name": "companyId",
            "in": "query",
            "description": "Optional. Restricts the lookup to this company. Must be within the caller's accessible companies, otherwise a \"Company Not Found\" validation error is returned. When omitted the caller's base company is used.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "includeChildCompanies",
            "in": "query",
            "description": "Optional, defaults to true. When true the whole accessible company tree below companyId is searched. Set to false to restrict the lookup to companyId alone.",
            "schema": {
              "type": "boolean",
              "default": true
            }
          }
        ],
        "requestBody": {
          "description": "The Reference 2's of the consignments. Maximum of 10 consignments per request",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ConsignmentV2ICollectionBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsignmentV2ICollectionBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsignmentV2ICollectionBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/consignments/returnConsignmentStatuses": {
      "post": {
        "tags": [
          "Consignments"
        ],
        "summary": "Return all statuses recorded in the system with an option to specify a cutoff date to limit the statuses returned to ones saved in Machship\r\nafter a certain date. Maximum of 100 consignments",
        "parameters": [
          {
            "name": "sinceDateCreatedUtc",
            "in": "query",
            "description": "The (optional) date/time in UTC to limit statuses by. If supplied only statuses recorded that are newer or equal to the date will be returned.\r\n           When not suplied all statuses for each consignment are returned",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "requestBody": {
          "description": "The list of Machship consignment IDs to return statuses for",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/IdsContainer"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IdsContainer"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/IdsContainer"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/IdsContainer"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ConsignmentIdWithTrackingHistoryV2IEnumerableBaseDomainEntity"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsignmentIdWithTrackingHistoryV2IEnumerableBaseDomainEntity"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsignmentIdWithTrackingHistoryV2IEnumerableBaseDomainEntity"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/consignments/updateConsignmentStatuses": {
      "post": {
        "tags": [
          "Consignments"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ManualTrackingStatus"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ManualTrackingStatus"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ManualTrackingStatus"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ManualTrackingStatus"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/consignments/getUnmanifested": {
      "get": {
        "tags": [
          "Consignments"
        ],
        "summary": "Get all consignments for a company that are in an \"unmanifested\" state",
        "parameters": [
          {
            "name": "companyId",
            "in": "query",
            "description": "Optional - defaults to your company. Must be a valid company ID in MachShip",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "startIndex",
            "in": "query",
            "description": "Defaults to 1. Can be used to \"page\" through subsequent requests",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "retrieveSize",
            "in": "query",
            "description": "The number of consignments to return. Defaults to 40, will return a maximum of 200 rows",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 200
            }
          },
          {
            "name": "carrierId",
            "in": "query",
            "description": "Optional carrier ID to restrict consignments to those of this carrier",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "includeChildCompanies",
            "in": "query",
            "description": "Whether to include companies that are \"children\" below companyId",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "includeDgConsignments",
            "in": "query",
            "description": "Defaults to true. Set to false to leave out dangerous goods consignments",
            "schema": {
              "type": "boolean",
              "default": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/UnmanifestedConsignmentForListGridDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UnmanifestedConsignmentForListGridDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/UnmanifestedConsignmentForListGridDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/consignments/getActive": {
      "get": {
        "tags": [
          "Consignments"
        ],
        "summary": "Return all consignments for a company, regardless of status",
        "parameters": [
          {
            "name": "companyId",
            "in": "query",
            "description": "Optional - defaults to your company. Must be a valid company ID in MachShip",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "startIndex",
            "in": "query",
            "description": "Defaults to 1. Can be used to \"page\" through subsequent requests",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "retrieveSize",
            "in": "query",
            "description": "The number of consignments to return at one time.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 999999
            }
          },
          {
            "name": "carrierId",
            "in": "query",
            "description": "Optional carrier ID to restrict consignments to those of this carrier",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "includeChildCompanies",
            "in": "query",
            "description": "Whether to include companies that are \"children\" below companyId",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ConsignmentsForListGridDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsignmentsForListGridDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsignmentsForListGridDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/consignments/getAll": {
      "get": {
        "tags": [
          "Consignments"
        ],
        "summary": "Return all consignments for a company, regardless of status",
        "parameters": [
          {
            "name": "companyId",
            "in": "query",
            "description": "Optional - defaults to your company. Must be a valid company ID in MachShip",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "startIndex",
            "in": "query",
            "description": "Defaults to 1. Can be used to \"page\" through subsequent requests",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "retrieveSize",
            "in": "query",
            "description": "The number of consignments to return. Defaults to 40, will return a maximum of 200 rows",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 40
            }
          },
          {
            "name": "carrierId",
            "in": "query",
            "description": "Optional carrier ID to restrict consignments to those of this carrier",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "includeChildCompanies",
            "in": "query",
            "description": "Whether to include companies that are \"children\" below companyId",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "includeDeletedConsignments",
            "in": "query",
            "description": "Optional - when set to true consignments that have been deleted will return",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "fromDateTimeLocal",
            "in": "query",
            "description": "Optional - Local time to filter consignments on. Set filterByEtaCompletedOrDespatch to switch between despatch date and ETA/Completed date",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "toDateTimeLocal",
            "in": "query",
            "description": "Optional - Local time to filter consignments on. Set filterByEtaCompletedOrDespatch to switch between despatch date and ETA/Completed date",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "filterByEtaCompletedOrDespatch",
            "in": "query",
            "description": "Optional - if times are provided, false = Despatch Date, true = ETA/Completed Date. Defaults to despatch date if omitted",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ConsignmentsForListGridDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsignmentsForListGridDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsignmentsForListGridDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/consignments/getRecentlyCreatedOrUpdatedConsignments": {
      "get": {
        "tags": [
          "Consignments"
        ],
        "summary": "Return consignments for a company that have been created or updated within the timeframe specified",
        "parameters": [
          {
            "name": "companyId",
            "in": "query",
            "description": "Optional - The company id for the consignments that are being queried",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "fromDateUtc",
            "in": "query",
            "description": "Required - This time period from which the consignment updates are to be queried from",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "toDateUtc",
            "in": "query",
            "description": "Optional - This max time period which the consignment updates are to be queried from",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "startIndex",
            "in": "query",
            "description": "Defaults to 1 - MachShip will return a maximum of 200 entries per request. Should there be more than 200 updated or created consignments\r\nduring the requested time period then you can utilise this index to obtain the next 200 entries by setting this to be 201. This can be\r\nrepeated until all updates have been obtained.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "retrieveSize",
            "in": "query",
            "description": "This will be between 40 and 200 and will be the number of consignments returned in the request. If not provided the default returned will be 40.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 40
            }
          },
          {
            "name": "carrierId",
            "in": "query",
            "description": "Optional - If you wish to restrict the updates to a set carrier then you can set the id of that carrier in the request",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "includeChildCompanies",
            "in": "query",
            "description": "if the query is desired to be made for an organisation that has multiple companies you can set this field to be true",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "getNotes",
            "in": "query",
            "description": "whether the query should return notes for the consignments or not",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "getReconciliationData",
            "in": "query",
            "description": "whether the query should return reconciliation data for the consignments or not",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ConsignmentsForListWithPendingConsignmentIdsGridDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsignmentsForListWithPendingConsignmentIdsGridDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsignmentsForListWithPendingConsignmentIdsGridDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/consignments/getCompleted": {
      "get": {
        "tags": [
          "Consignments"
        ],
        "summary": "Returns consignments for the given company that were completed within the provided start and end date range. Limited to 2000 consignments at a time.",
        "parameters": [
          {
            "name": "companyId",
            "in": "query",
            "description": "Optional - defaults to your company. Must be a valid company ID in MachShip",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "description": "Start Date which is compared against the consignment's Completed Date (all date times are local to the delivery location)",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "description": "End Date which is compared against the consignment's Completed Date (all date times are local to the delivery location)",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "includeChildCompanies",
            "in": "query",
            "description": "Whether to include companies that are \"children\" below companyId",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ConsignmentsForListGridDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsignmentsForListGridDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsignmentsForListGridDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/consignments/createConsignment": {
      "post": {
        "tags": [
          "Consignments"
        ],
        "summary": "Creates an unmanifested consignment in Machship",
        "requestBody": {
          "description": "Details of the consignment to create",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateConsignmentV2"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateConsignmentV2"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateConsignmentV2"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateConsignmentV2"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CreateConsignmentResponseV2BaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateConsignmentResponseV2BaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateConsignmentResponseV2BaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/consignments/createExistingConsignment": {
      "post": {
        "tags": [
          "Consignments"
        ],
        "summary": "Creates an unmanifested consignment in Machship",
        "requestBody": {
          "description": "Details of the consignment to create",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateConsignmentExistingV2"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateConsignmentExistingV2"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateConsignmentExistingV2"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateConsignmentExistingV2"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Int32BaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Int32BaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Int32BaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/consignments/editUnmanifestedConsignment": {
      "post": {
        "tags": [
          "Consignments"
        ],
        "summary": "Edit a consignment - note that it must be in an \"unmanifested\" state for this to be a valid operation",
        "requestBody": {
          "description": "Details of the consignment to edit",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/EditConsignmentV2"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EditConsignmentV2"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/EditConsignmentV2"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/EditConsignmentV2"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CreateConsignmentResponseV2BaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateConsignmentResponseV2BaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateConsignmentResponseV2BaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/consignments/createConsignmentwithComplexItems": {
      "post": {
        "tags": [
          "Consignments"
        ],
        "summary": "Creates an unmanifested consignment in Machship",
        "requestBody": {
          "description": "Details of the consignment to create",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateConsignmentComplexItemsV2"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateConsignmentComplexItemsV2"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateConsignmentComplexItemsV2"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateConsignmentComplexItemsV2"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CreateConsignmentResponseV2BaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateConsignmentResponseV2BaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateConsignmentResponseV2BaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/consignments/deleteUnmanifestedConsignments": {
      "post": {
        "tags": [
          "Consignments"
        ],
        "summary": "Deletes the specified Unmanifested Consignments in Machship",
        "requestBody": {
          "description": "Ids of the consignments to be deleted",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/consignments/getAttachments": {
      "post": {
        "tags": [
          "Consignments"
        ],
        "summary": "Gets attachment information for a given consignment",
        "parameters": [
          {
            "name": "consignmentId",
            "in": "query",
            "description": "id of the consignment",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ConsignmentAttachmentDetailV2ICollectionBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsignmentAttachmentDetailV2ICollectionBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsignmentAttachmentDetailV2ICollectionBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/consignments/getConsignmentForClone": {
      "get": {
        "tags": [
          "Consignments"
        ],
        "summary": "Get the details of an existing consignment in a format that can be passed to the createConsignmentWithComplexItems endpoint",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "The MachShip ID of a consignment",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CreateConsignmentComplexItemsV2BaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateConsignmentComplexItemsV2BaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateConsignmentComplexItemsV2BaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/consignments/searchConsignments": {
      "post": {
        "tags": [
          "Consignments"
        ],
        "summary": "Get the details of related consignments based on the provided list of consignment or item references",
        "requestBody": {
          "description": "The list of references to use to search for the related consignments",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ConsignmentV2ICollectionBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsignmentV2ICollectionBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsignmentV2ICollectionBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/consignments/getConsignmentCreationSettings": {
      "get": {
        "tags": [
          "Consignments"
        ],
        "summary": "Get the creation settings for a new consignment",
        "parameters": [
          {
            "name": "companyId",
            "in": "query",
            "description": "The company ID to get the consignment creation settings for. If null, defaults to the user's company ID.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ConsignmentInitV2ModelBaseDomainEntity"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsignmentInitV2ModelBaseDomainEntity"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsignmentInitV2ModelBaseDomainEntity"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/consignments/updateDespatchDatesForManifest": {
      "post": {
        "tags": [
          "Consignments"
        ],
        "summary": "Update despatch dates and ETAs for consignments where the despatch date is in the past compared to the manifest pickup date.",
        "requestBody": {
          "description": "Array of consignment IDs to update",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateDespatchDateResponseBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateDespatchDateResponseBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateDespatchDateResponseBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/consolidation/groupConsignmentsForConsolidation": {
      "post": {
        "tags": [
          "Consolidation"
        ],
        "summary": "Perform automatic grouping on unmanifested and / or pending consignments/orders",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ConsolidationOptions"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConsolidationOptions"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ConsolidationOptions"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ConsolidationOptions"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ConsolidationResultsBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsolidationResultsBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsolidationResultsBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/consolidation/performConsolidation": {
      "post": {
        "tags": [
          "Consolidation"
        ],
        "summary": "Consolidate consignments from other consignments / pending consignments/orders into a combined\r\nunmanifested consignment",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ConsolidationRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConsolidationRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ConsolidationRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ConsolidationRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ConsolidationResultsBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsolidationResultsBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsolidationResultsBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/consolidation/groupAndPerformConsolidation": {
      "post": {
        "tags": [
          "Consolidation"
        ],
        "summary": "Do both the grouping into auto consolidation as well as the routing and updating of consolidated consignments",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ConsolidationOptions"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConsolidationOptions"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ConsolidationOptions"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ConsolidationOptions"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ConsolidationResultsBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsolidationResultsBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsolidationResultsBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/depots/getdepots": {
      "get": {
        "tags": [
          "Depots"
        ],
        "summary": "Returns all active depots. Optional filter by carrierId (depots that have that carrier in their Delivery list).",
        "parameters": [
          {
            "name": "carrierId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "startIndex",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "retrieveSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/apiv2/depots/getdepot/{id}": {
      "get": {
        "tags": [
          "Depots"
        ],
        "summary": "Returns a single depot by ID.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/apiv2/depots/savedepot": {
      "post": {
        "tags": [
          "Depots"
        ],
        "summary": "Creates or updates a depot. Pass id = null to create, or an existing id to update.",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/DepotV2"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DepotV2"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/DepotV2"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/DepotV2"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/apiv2/depots/deletedepot/{id}": {
      "delete": {
        "tags": [
          "Depots"
        ],
        "summary": "Soft-deletes a depot by ID.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/apiv2/depots/getdepotsnearlocation": {
      "get": {
        "tags": [
          "Depots"
        ],
        "summary": "Returns depots near a given location, sorted by distance ascending.\r\nUsed by the frontend depot picker when creating a consignment or composing a journey.",
        "parameters": [
          {
            "name": "locationId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "carrierId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "maxResults",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 10
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/apiv2/financialInvoice/getAllPosted": {
      "get": {
        "tags": [
          "FinancialInvoice"
        ],
        "summary": "Return the basic information about invoices that are in a posted state. It will return at most 100 records,\r\nin the order of most recently imported to oldest.",
        "parameters": [
          {
            "name": "startDate",
            "in": "query",
            "description": "Optional parameter - when supplied it will filter the results to invoices which have an invoice date which is greater or equal to the supplied date",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "description": "Optional parameter - when supplied it will filter the results to invoices which have an invoice date which is earlier or equal to the supplied date",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "startIndex",
            "in": "query",
            "description": "",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "retrieveSize",
            "in": "query",
            "description": "",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceV2LiteICollectionBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceV2LiteICollectionBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceV2LiteICollectionBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/financialInvoice/getPostedInvoiceByDocumentNumber": {
      "get": {
        "tags": [
          "FinancialInvoice"
        ],
        "summary": "Returns invoice details with the invoice pdf as a byte array",
        "parameters": [
          {
            "name": "documentNumber",
            "in": "query",
            "description": "Machship Invoice Document Number",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "returnPdfFileBytes",
            "in": "query",
            "description": "Optional parameter - When supplied and true, the invoice pdf as a byte array will be returned as the Pdf property",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceV2BaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceV2BaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceV2BaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/identities/getIdentities": {
      "get": {
        "tags": [
          "Identities"
        ],
        "summary": "Get all identities owned by an organisation, along with details on which company they are\r\nlinked to. You must be an administrator of the organisation in question to be able to access\r\nthis endpoint.",
        "parameters": [
          {
            "name": "organisationId",
            "in": "query",
            "description": "Optional. The ID in MachShip of the organisation.\r\nOnly relevant if you are an administrator of more than one organisation in MachShip. If omitted, your current organisation will be returned",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "onlyUnlinkedIdentities",
            "in": "query",
            "description": "Optional - whether or not to filter the results to identities that have not been linked to\r\nany companies in the system",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "identityProviderId",
            "in": "query",
            "description": "Optional - whether or not to filter by identities who are authenticated by a certain identity. If not provided, all identities will be returned\r\nprovider",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/IdentityV2ICollectionBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IdentityV2ICollectionBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/IdentityV2ICollectionBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/identities/returnIdentityPublicKeys": {
      "post": {
        "tags": [
          "Identities"
        ],
        "summary": "Get the \"public keys\" of the supplied identities that can be used by another organisation\r\n(that has been linked to the organisation owning the identity) to give that identity\r\naccess to a company in their organisation.\r\n\r\nYou must be an administrator of the organisation in question to be able to access\r\nthis endpoint.",
        "requestBody": {
          "description": "The IDs in MachShip of the identities",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/IdentityPublicKeyV2ICollectionBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IdentityPublicKeyV2ICollectionBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/IdentityPublicKeyV2ICollectionBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/identities/linkIdentitiesToCompanies": {
      "post": {
        "tags": [
          "Identities"
        ],
        "summary": "Assign companies and roles to identities to give them access to the system.\r\n\r\nYou must be an administrator of the organisation in question to be able to access\r\nthis endpoint.",
        "requestBody": {
          "description": "One or more identities to provision access for",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/IdentityCompanyLinkSetterRequestObject"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IdentityCompanyLinkSetterRequestObject"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/IdentityCompanyLinkSetterRequestObject"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/IdentityCompanyLinkSetterRequestObject"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/identities/createIdentities": {
      "post": {
        "tags": [
          "Identities"
        ],
        "summary": "Create Identities in MachShip and assign companies and roles to identities to give them access to the system. Note that all identities provided must belong to the same identityProvider and organisation\r\n\r\nYou must be an administrator of the organisation in question to be able to access\r\nthis endpoint.",
        "requestBody": {
          "description": "The identities to create",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/CreateIdentityV2"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/CreateIdentityV2"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/CreateIdentityV2"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/CreateIdentityV2"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/identities/getIdentity": {
      "get": {
        "tags": [
          "Identities"
        ],
        "summary": "Get the identity with the given ID",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "The identity to update",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/IdentityBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IdentityBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/IdentityBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/identities/updateIdentity": {
      "post": {
        "tags": [
          "Identities"
        ],
        "summary": "Updates properties on the identity. All fields (other than password) are required, otherwise those omitted fields will be set to null. If password is provided, it will update the password for the ientity.",
        "requestBody": {
          "description": "The identity to update",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateIdentityV2"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateIdentityV2"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateIdentityV2"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateIdentityV2"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/identities/deleteIdentities": {
      "post": {
        "tags": [
          "Identities"
        ],
        "summary": "Delete the identities with the given IDs.",
        "requestBody": {
          "description": "The identity ids to delete",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/identities/unlinkIdentitiesFromCompanies": {
      "post": {
        "tags": [
          "Identities"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/IdentityCompanyUnsetter"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/IdentityCompanyUnsetter"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/IdentityCompanyUnsetter"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/IdentityCompanyUnsetter"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/identities/disableIdentities": {
      "post": {
        "tags": [
          "Identities"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/identities/reenableIdentities": {
      "post": {
        "tags": [
          "Identities"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/identityproviders/GetIdentityProvidersForCompany": {
      "get": {
        "tags": [
          "Identity Providers"
        ],
        "parameters": [
          {
            "name": "companyId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/IdentityProviderV2ICollectionBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IdentityProviderV2ICollectionBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/IdentityProviderV2ICollectionBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/identityproviders/GetIdentityProvider": {
      "get": {
        "tags": [
          "Identity Providers"
        ],
        "parameters": [
          {
            "name": "identityProviderId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/IdentityProviderV2BaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IdentityProviderV2BaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/IdentityProviderV2BaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/identityproviders/GetIdentityProvidersForOrganisation": {
      "get": {
        "tags": [
          "Identity Providers"
        ],
        "summary": "Returns all the identity providers for the specified organisation",
        "parameters": [
          {
            "name": "organisationId",
            "in": "query",
            "description": "Id of the Organisation that you are requesting. Leave blank to use the organisation linked to the current user",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/IdentityProviderV2ICollectionBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IdentityProviderV2ICollectionBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/IdentityProviderV2ICollectionBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/identityproviders/GetIdentityProvidersForLoggedUser": {
      "get": {
        "tags": [
          "Identity Providers"
        ],
        "summary": "Returns all the identity providers for your current organisation",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/IdentityProviderV2ICollectionBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IdentityProviderV2ICollectionBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/IdentityProviderV2ICollectionBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/labels/getManifestPdf": {
      "get": {
        "tags": [
          "Labels"
        ],
        "parameters": [
          {
            "name": "manifestId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/apiv2/labels/getManifestPdfByConsignmentId": {
      "get": {
        "tags": [
          "Labels"
        ],
        "parameters": [
          {
            "name": "consignmentId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/apiv2/labels/getConsignmentPdf": {
      "get": {
        "tags": [
          "Labels"
        ],
        "parameters": [
          {
            "name": "consignmentId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/apiv2/labels/getCommercialInvoicePdf": {
      "get": {
        "tags": [
          "Labels"
        ],
        "parameters": [
          {
            "name": "consignmentId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/apiv2/labels/getItemPdf": {
      "get": {
        "tags": [
          "Labels"
        ],
        "parameters": [
          {
            "name": "consignmentId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "printA4",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/apiv2/labels/getItemPdfFileInfo": {
      "get": {
        "tags": [
          "Labels"
        ],
        "parameters": [
          {
            "name": "consignmentId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "printA4",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/FileInfoBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileInfoBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileInfoBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/labels/getSpecialInstructionsPdf": {
      "get": {
        "tags": [
          "Labels"
        ],
        "parameters": [
          {
            "name": "consignmentId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "printA4",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/apiv2/labels/getDangerousGoodsDocumentPdf": {
      "get": {
        "tags": [
          "Labels"
        ],
        "parameters": [
          {
            "name": "consignmentId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/apiv2/labels/getDangerousGoodsDocumentPdfFileInfo": {
      "get": {
        "tags": [
          "Labels"
        ],
        "parameters": [
          {
            "name": "consignmentId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/FileInfoBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileInfoBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileInfoBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/labels/getMO41DocumentPdf": {
      "get": {
        "tags": [
          "Labels"
        ],
        "parameters": [
          {
            "name": "consignmentId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/apiv2/labels/getMO41DocumentPdfFileInfo": {
      "get": {
        "tags": [
          "Labels"
        ],
        "parameters": [
          {
            "name": "consignmentId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/FileInfoBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileInfoBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileInfoBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/labels/getManifestPdfFileInfo": {
      "get": {
        "tags": [
          "Labels"
        ],
        "parameters": [
          {
            "name": "manifestId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/FileInfoBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileInfoBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileInfoBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/labels/getConsignmentPdfFileInfo": {
      "get": {
        "tags": [
          "Labels"
        ],
        "parameters": [
          {
            "name": "consignmentId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/FileInfoBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileInfoBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileInfoBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/labels/returnItemPdfsForConsignments": {
      "post": {
        "tags": [
          "Labels"
        ],
        "summary": "Returns item labels as a zip for up to 40 consignments",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ItemLabelRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ItemLabelRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ItemLabelRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ItemLabelRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/apiv2/labels/getItemPdfsForConsignments": {
      "get": {
        "tags": [
          "Labels"
        ],
        "summary": "Gets item labels as a zip for up to 40 consignments",
        "parameters": [
          {
            "name": "consignmentIds",
            "in": "query",
            "description": "",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          {
            "name": "printA4",
            "in": "query",
            "description": "",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "singlePdf",
            "in": "query",
            "description": "",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/apiv2/labels/groupConsignmentsForPrinting": {
      "post": {
        "tags": [
          "LabelsV2"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SendToPrinterModelBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SendToPrinterModelBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SendToPrinterModelBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/labels/sendLabelsToPrinter": {
      "post": {
        "tags": [
          "Labels"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/SendToPrinterRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/SendToPrinterRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/SendToPrinterRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/SendToPrinterRequest"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/locations/returnLocations": {
      "post": {
        "tags": [
          "Locations"
        ],
        "summary": "Returns all locations that exactly match the supplied suburb and postcode combination. Multiple locations can be provided",
        "requestBody": {
          "description": "A list of suburb and postcode combinations accompanied by the options to consider when searching locations",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/RawLocationsWithLocationSearchOptions"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RawLocationsWithLocationSearchOptions"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RawLocationsWithLocationSearchOptions"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RawLocationsWithLocationSearchOptions"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/LocationV2ICollectionBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LocationV2ICollectionBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/LocationV2ICollectionBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/locations/getLocationsWithSearchOptions": {
      "get": {
        "tags": [
          "Locations"
        ],
        "summary": "Returns the top 10 locations where the suburb or postcode match the search string",
        "parameters": [
          {
            "name": "s",
            "in": "query",
            "description": "Search string with space separated search terms. Eg. \"Mel 3000\" will return any locations that match \"Mel\" AND \"3000\"",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The options for getting locations",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/LocationSearchOptionsV2"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LocationSearchOptionsV2"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/LocationSearchOptionsV2"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/LocationSearchOptionsV2"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/LocationV2IEnumerableBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LocationV2IEnumerableBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/LocationV2IEnumerableBaseDomainEntityV2"
                }
              }
            }
          }
        },
        "deprecated": true
      }
    },
    "/apiv2/locations/returnLocationsWithSearchOptions": {
      "post": {
        "tags": [
          "Locations"
        ],
        "parameters": [
          {
            "name": "s",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/LocationSearchOptionsV2"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LocationSearchOptionsV2"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/LocationSearchOptionsV2"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/LocationSearchOptionsV2"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/LocationV2IEnumerableBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LocationV2IEnumerableBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/LocationV2IEnumerableBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/manifests/groupConsignmentsForManifest": {
      "post": {
        "tags": [
          "Manifests"
        ],
        "summary": "Groups a set of consignments into manifests.",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/BookedManifestV2ICollectionBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BookedManifestV2ICollectionBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/BookedManifestV2ICollectionBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/manifests/groupAllUnmanifestedConsignmentsForManifest": {
      "post": {
        "tags": [
          "Manifests"
        ],
        "summary": "Groups all unmanifested consignments for a company into manifests.",
        "requestBody": {
          "description": "Machship's company Id",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "integer",
                "format": "int32"
              }
            },
            "application/json": {
              "schema": {
                "type": "integer",
                "format": "int32"
              }
            },
            "text/json": {
              "schema": {
                "type": "integer",
                "format": "int32"
              }
            },
            "application/*+json": {
              "schema": {
                "type": "integer",
                "format": "int32"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/BookedManifestV2ICollectionBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BookedManifestV2ICollectionBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/BookedManifestV2ICollectionBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/manifests/manifest": {
      "post": {
        "tags": [
          "Manifests"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/BookedManifestV2"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/BookedManifestV2"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/BookedManifestV2"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/BookedManifestV2"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ReturnBookedManifestV2ICollectionBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReturnBookedManifestV2ICollectionBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReturnBookedManifestV2ICollectionBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/manifests/rebookPickup": {
      "post": {
        "tags": [
          "Manifests"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ManifestRebooking"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ManifestRebooking"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ManifestRebooking"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ManifestRebooking"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/RebookedPickupBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RebookedPickupBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/RebookedPickupBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/manifests/getAll": {
      "get": {
        "tags": [
          "Manifests"
        ],
        "summary": "Get a list of (up to 200) manifests for a company.",
        "parameters": [
          {
            "name": "companyId",
            "in": "query",
            "description": "Optional - defaults to your company. Must be a valid company ID in MachShip",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "startIndex",
            "in": "query",
            "description": "Defaults to 1. Can be used to \"page\" through subsequent requests",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "retrieveSize",
            "in": "query",
            "description": "The number of manifests to return. Defaults to 40, will return a maximum of 200 rows",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 40
            }
          },
          {
            "name": "carrierId",
            "in": "query",
            "description": "Optional to limit the results to manifests for that carrier",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "includeChildCompanies",
            "in": "query",
            "description": "Whether to include companies that are \"children\" below companyId",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "description": "Start Date which is compared against the manifest's creation date (all date times are local to the pickup location)",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "description": "End Date which is compared against the manifest's creation date (all date times are local to the pickup location)",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ManifestForListWithConsignmentsGridDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ManifestForListWithConsignmentsGridDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ManifestForListWithConsignmentsGridDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/marketingConsents/assert": {
      "post": {
        "tags": [
          "MarketingConsents"
        ],
        "summary": "Record a recipient's marketing decision against one merchant's brand.\r\n            \r\n<br>\r\nIdempotent in the sense that matters: re-sending the same assertion writes the same\r\nrow and answers the same way. It is NOT last-write-wins — a refusal the recipient made\r\nto us directly outranks any consent asserted here that does not postdate it, and that\r\nguard lives in the service, so a 200 means \"recorded\", not \"your value is now the\r\nstored value\". There is deliberately no response field distinguishing the two: telling\r\na merchant that a given address is already unsubscribed from its brand would answer a\r\nquestion about a person who has not agreed to be discussed with it.\r\n<br>\r\nStatus codes are real rather than the V2 habit of 200-with-an-error-body, because the\r\nonly caller is a server-side integration and the entire reason this endpoint exists is\r\nthat a success which recorded nothing is a lie. A 400 here always means the request\r\ncould not be acted on as sent; a 500 means it should be retried.\r\n",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/MarketingConsentAssertionRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MarketingConsentAssertionRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/MarketingConsentAssertionRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MarketingConsentAssertionRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/notes/getNotesForConsignment": {
      "get": {
        "tags": [
          "Notes"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/NoteModelV2IEnumerableBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NoteModelV2IEnumerableBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/NoteModelV2IEnumerableBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/organisationLinks/add": {
      "post": {
        "tags": [
          "OrganisationLinks"
        ],
        "summary": "Take the public key of an organisation and \"link it into\" an organisation you\r\nare an administrator of. Doing this allows you to assign users from the other\r\norganisation into companies in your organisation.",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/OrganisationLinkRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OrganisationLinkRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/OrganisationLinkRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/OrganisationLinkRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/organisationLinks/remove": {
      "post": {
        "tags": [
          "OrganisationLinks"
        ],
        "summary": "Remove an existing link between organisations. Note that doing this will remove access to the\r\n\"to\" organisation from any users of the \"from\" organisation, and that this is irreversable.",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/OrganisationUnlinkRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OrganisationUnlinkRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/OrganisationUnlinkRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/OrganisationUnlinkRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/organisationLinks/getForOrganisation": {
      "get": {
        "tags": [
          "OrganisationLinks"
        ],
        "summary": "Returns all the links that exist for the organisation",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "Organisation Id. Leave blank to use your current organisation",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/OrganisationLinkDetailICollectionBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrganisationLinkDetailICollectionBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrganisationLinkDetailICollectionBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/organisationLinks/getLinkedFromOrganisations": {
      "get": {
        "tags": [
          "OrganisationLinks"
        ],
        "summary": "Returns all the from linked organisations that exist for the organisation",
        "parameters": [
          {
            "name": "startIndex",
            "in": "query",
            "description": "",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "retrieveSize",
            "in": "query",
            "description": "",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 40
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "",
            "schema": {
              "type": "string",
              "default": ""
            }
          },
          {
            "name": "searchText",
            "in": "query",
            "description": "",
            "schema": {
              "type": "string",
              "default": ""
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/OrganisationDetailsForGridGridDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrganisationDetailsForGridGridDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrganisationDetailsForGridGridDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/organisationLinks/getLinkedToOrganisations": {
      "get": {
        "tags": [
          "OrganisationLinks"
        ],
        "summary": "Returns all the to linked organisations that exist for the organisation",
        "parameters": [
          {
            "name": "startIndex",
            "in": "query",
            "description": "",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "retrieveSize",
            "in": "query",
            "description": "",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 40
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "",
            "schema": {
              "type": "string",
              "default": ""
            }
          },
          {
            "name": "searchText",
            "in": "query",
            "description": "",
            "schema": {
              "type": "string",
              "default": ""
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/OrganisationDetailsForGridGridDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrganisationDetailsForGridGridDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrganisationDetailsForGridGridDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/organisationLinks/getPublicKeyForOrganisation": {
      "get": {
        "tags": [
          "OrganisationLinks"
        ],
        "summary": "Return this organisation's \"public key\" - which can be given to other organisations to link\r\nthe organisation \"into\" the other - meaning that users can be invited into the other organisation\r\nto access their data.",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "Id of the Organisation that you are requesting the public key for. Leave blank to use the organisation linked to the current user",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/StringBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StringBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/StringBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/organisationLinks/resetPublicKeyForOrganisation": {
      "get": {
        "tags": [
          "OrganisationLinks"
        ],
        "summary": "Resets the organisation's public key. Note that this will not reset any organisation links set up\r\nvia the old public key.",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "Id of the Organisation that you are requesting to reset the public key for. Leave blank to use the organisation linked to the current user",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/organisationLinks/getOrganisationDetailsByPublicKey": {
      "get": {
        "tags": [
          "OrganisationLinks"
        ],
        "summary": "Test a public key and, if it is correct, return details on which organisation it corresponds to",
        "parameters": [
          {
            "name": "publicKey",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/OrganisationDetailBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrganisationDetailBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrganisationDetailBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/pendingConsignments/getPendingConsignment": {
      "get": {
        "tags": [
          "PendingConsignments"
        ],
        "summary": "Get Pending Consignment Details for a single pending consignment",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PendingConsignmentV2BaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PendingConsignmentV2BaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PendingConsignmentV2BaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/pendingConsignments/returnPendingConsignments": {
      "post": {
        "tags": [
          "PendingConsignments"
        ],
        "summary": "Get Pending Consignment Details for multiple pending consignments. Maximum of 10 per request",
        "requestBody": {
          "description": "The Machship ids of the pending consignments. Maximum of 10 per request",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/IdsContainer"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IdsContainer"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/IdsContainer"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/IdsContainer"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PendingConsignmentV2ICollectionBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PendingConsignmentV2ICollectionBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PendingConsignmentV2ICollectionBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/pendingConsignments/returnPendingConsignmentsByReference1": {
      "post": {
        "tags": [
          "PendingConsignments"
        ],
        "summary": "Get Pending Consignment Details for multiple pending consignments using Reference 1 as the lookup. Maximum of 10 per request",
        "parameters": [
          {
            "name": "companyId",
            "in": "query",
            "description": "Optional. Restricts the lookup to this company. Must be within the caller's accessible companies, otherwise a \"Company Not Found\" validation error is returned. When omitted the caller's base company is used.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "includeChildCompanies",
            "in": "query",
            "description": "Optional, defaults to true. When true the whole accessible company tree below companyId is searched. Set to false to restrict the lookup to companyId alone.",
            "schema": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "name": "onlyPendingStatus",
            "in": "query",
            "description": "Optional, defaults to false. Filters on the pending consignment's `Status` field: when true only records whose status is `Pending` (the normal resting state) are returned, excluding those currently mid-consolidation (`Consolidating`). This matches what the pending consignments grid displays. The default returns any active record regardless of status.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The Reference 1's of the pending consignments. Maximum of 10 consignments per request",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PendingConsignmentV2ICollectionBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PendingConsignmentV2ICollectionBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PendingConsignmentV2ICollectionBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/pendingConsignments/returnPendingConsignmentsByReference2": {
      "post": {
        "tags": [
          "PendingConsignments"
        ],
        "summary": "Get Pending Consignment Details for multiple pending consignments using Reference 2 as the lookup. Maximum of 10 per request",
        "parameters": [
          {
            "name": "companyId",
            "in": "query",
            "description": "Optional. Restricts the lookup to this company. Must be within the caller's accessible companies, otherwise a \"Company Not Found\" validation error is returned. When omitted the caller's base company is used.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "includeChildCompanies",
            "in": "query",
            "description": "Optional, defaults to true. When true the whole accessible company tree below companyId is searched. Set to false to restrict the lookup to companyId alone.",
            "schema": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "name": "onlyPendingStatus",
            "in": "query",
            "description": "Optional, defaults to false. Filters on the pending consignment's `Status` field: when true only records whose status is `Pending` (the normal resting state) are returned, excluding those currently mid-consolidation (`Consolidating`). This matches what the pending consignments grid displays. The default returns any active record regardless of status.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The Reference 2's of the pending consignments. Maximum of 10 consignments per request",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PendingConsignmentV2ICollectionBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PendingConsignmentV2ICollectionBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PendingConsignmentV2ICollectionBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/pendingConsignments/returnPendingConsignmentsByCarrierConsignmentId": {
      "post": {
        "tags": [
          "PendingConsignments"
        ],
        "summary": "Get Pending Consignment Details for multiple pending consignments using the Carrier Consignment Id as the lookup. Maximum of 10 per request",
        "parameters": [
          {
            "name": "companyId",
            "in": "query",
            "description": "Optional. Restricts the lookup to this company. Must be within the caller's accessible companies, otherwise a \"Company Not Found\" validation error is returned. When omitted the caller's base company is used.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "includeChildCompanies",
            "in": "query",
            "description": "Optional, defaults to true. When true the whole accessible company tree below companyId is searched. Set to false to restrict the lookup to companyId alone.",
            "schema": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "name": "onlyPendingStatus",
            "in": "query",
            "description": "Optional, defaults to false. Filters on the pending consignment's `Status` field: when true only records whose status is `Pending` (the normal resting state) are returned, excluding those currently mid-consolidation (`Consolidating`). This matches what the pending consignments grid displays. The default returns any active record regardless of status.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The Carrier Consignment Ids of the pending consignments. Maximum of 10 pending consignments per request",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PendingConsignmentV2ICollectionBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PendingConsignmentV2ICollectionBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PendingConsignmentV2ICollectionBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/pendingConsignments/createPendingConsignment": {
      "post": {
        "tags": [
          "PendingConsignments"
        ],
        "summary": "Creates a pending consignment in Machship",
        "requestBody": {
          "description": "Details of the pending consignment to create",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePendingConsignmentV2"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePendingConsignmentV2"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePendingConsignmentV2"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePendingConsignmentV2"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CreatePendingConsignmentResponseBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreatePendingConsignmentResponseBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreatePendingConsignmentResponseBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/pendingConsignments/deletePendingConsignments": {
      "post": {
        "tags": [
          "PendingConsignments"
        ],
        "summary": "Deletes the specified Pending Consignments in Machship",
        "requestBody": {
          "description": "Ids of the pending consignments to be deleted",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/pendingConsignments/getRecentlyCreatedOrUpdatedPendingConsignments": {
      "get": {
        "tags": [
          "PendingConsignments"
        ],
        "parameters": [
          {
            "name": "companyId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "fromDateUtc",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "toDateUtc",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "startIndex",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "retrieveSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 40
            }
          },
          {
            "name": "carrierId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "includeChildCompanies",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "getDeleted",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PendingConsignmentV2ForListGridDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PendingConsignmentV2ForListGridDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PendingConsignmentV2ForListGridDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/quotes/createQuote": {
      "post": {
        "tags": [
          "Quotes"
        ],
        "summary": "Creates a quote in Machship",
        "requestBody": {
          "description": "Details of the quote to create",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateQuoteV2"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateQuoteV2"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateQuoteV2"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateQuoteV2"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CreateQuoteResponseV2BaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateQuoteResponseV2BaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateQuoteResponseV2BaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/quotes/createQuoteWithComplexItems": {
      "post": {
        "tags": [
          "Quotes"
        ],
        "summary": "Creates a quote in Machship",
        "requestBody": {
          "description": "Details of the quote to create",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateQuoteComplexItemsV2"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateQuoteComplexItemsV2"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateQuoteComplexItemsV2"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateQuoteComplexItemsV2"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CreateQuoteResponseV2BaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateQuoteResponseV2BaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateQuoteResponseV2BaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/quotes/getAll": {
      "get": {
        "tags": [
          "Quotes"
        ],
        "summary": "Get All quotes for the given company",
        "parameters": [
          {
            "name": "companyId",
            "in": "query",
            "description": "The selected company's id",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/QuoteForListGridDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuoteForListGridDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuoteForListGridDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/quotes/getQuote": {
      "get": {
        "tags": [
          "Quotes"
        ],
        "summary": "Get Quote Details for a single quote",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/QuoteV2BaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuoteV2BaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuoteV2BaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/identities/getAvailableRoles": {
      "get": {
        "tags": [
          "Roles"
        ],
        "summary": "Get all roles that are available to assign users of a certain company",
        "parameters": [
          {
            "name": "companyId",
            "in": "query",
            "description": "The ID of a company in MachShip",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/RoleV2ICollectionBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoleV2ICollectionBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoleV2ICollectionBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/routes/returnroutes": {
      "post": {
        "tags": [
          "Routes"
        ],
        "summary": "Returns a list of available routes corresponding to supplied the route request",
        "requestBody": {
          "description": "Detailed information for the request, including the items and from and to locations",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/RouteRequestV2"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RouteRequestV2"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RouteRequestV2"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RouteRequestV2"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/RoutesResponseV2BaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoutesResponseV2BaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoutesResponseV2BaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/routes/returnmultipleroutes": {
      "post": {
        "tags": [
          "Routes"
        ],
        "summary": "Returns a list of available routes corresponding to supplied the route requests",
        "requestBody": {
          "description": "Detailed information for the request, including the items and from and to locations",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/RouteRequestV2"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/RouteRequestV2"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/RouteRequestV2"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/RouteRequestV2"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/RoutesResponseV2ArrayBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoutesResponseV2ArrayBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoutesResponseV2ArrayBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/routes/returnrouteswithcomplexitems": {
      "post": {
        "tags": [
          "Routes"
        ],
        "summary": "Returns a list of available routes corresponding to supplied the route request",
        "requestBody": {
          "description": "Detailed information for the request, including the items and from and to locations",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/RouteRequestComplexItemsV2"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RouteRequestComplexItemsV2"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RouteRequestComplexItemsV2"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RouteRequestComplexItemsV2"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/RoutesResponseV2BaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoutesResponseV2BaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoutesResponseV2BaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/trackingPageTemplates/searchAll": {
      "get": {
        "tags": [
          "TrackingPageTemplates"
        ],
        "summary": "SysAdmin-only grid over every company's tracking page template. Cross-tenant by\r\ndesign (no accessible-companies scoping) — the sysAdmin gate is the boundary; see\r\ndocs/conventions/api/_concerns/accessible-companies.md exceptions.",
        "parameters": [
          {
            "name": "startIndex",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "retrieveSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 20
            }
          },
          {
            "name": "sort",
            "in": "query",
            "schema": {
              "type": "string",
              "default": ""
            }
          },
          {
            "name": "searchText",
            "in": "query",
            "schema": {
              "type": "string",
              "default": ""
            }
          },
          {
            "name": "companyId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TrackingPageTemplateForGridGridDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrackingPageTemplateForGridGridDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrackingPageTemplateForGridGridDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/trackingPageTemplates/searchAllForExport": {
      "get": {
        "tags": [
          "TrackingPageTemplates"
        ],
        "summary": "CSV export companion for M:Machship.WebApi.Controllers.v2.TrackingPageTemplatesV2Controller.SearchAll(System.Int32,System.Int32,System.String,System.String,System.Nullable{System.Int32}) (API-VIEWALL-002): same\r\nparameters, same permission gate, file result instead of a grid envelope.",
        "parameters": [
          {
            "name": "startIndex",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "retrieveSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 20
            }
          },
          {
            "name": "sort",
            "in": "query",
            "schema": {
              "type": "string",
              "default": ""
            }
          },
          {
            "name": "searchText",
            "in": "query",
            "schema": {
              "type": "string",
              "default": ""
            }
          },
          {
            "name": "companyId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/apiv2/trackingPageTemplates/getForCompany": {
      "get": {
        "tags": [
          "TrackingPageTemplates"
        ],
        "parameters": [
          {
            "name": "companyId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TrackingPageTemplateBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrackingPageTemplateBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrackingPageTemplateBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/trackingPageTemplates/notificationCoverage": {
      "get": {
        "tags": [
          "TrackingPageTemplates"
        ],
        "summary": "Which of the builder's notification events the company's own tracking-update\r\nnotifications cover, and on which channels, inherited templates included (EC-955). The\r\nbuilder's Notification settings panel shows a subscriber switch only where one exists.\r\nBooleans per event; never the templates themselves.",
        "description": "Gated exactly like M:Machship.WebApi.Controllers.v2.TrackingPageTemplatesV2Controller.GetForCompany(System.Int32), because its only consumer is the builder\r\nthat endpoint feeds: the TrackingPageTemplates View permission, the branded-tracking\r\ncapability for the company being edited, and the service refuses a company outside the\r\ncaller's accessible companies.",
        "parameters": [
          {
            "name": "companyId",
            "in": "query",
            "description": "The company whose template is being edited; 0 or absent means the acting company.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TrackingNotificationCoverageBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrackingNotificationCoverageBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrackingNotificationCoverageBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/trackingPageTemplates/builtInDefault": {
      "get": {
        "tags": [
          "TrackingPageTemplates"
        ],
        "summary": "The built-in default tracking page and order page configs (EC-936), so a new template\r\nstarts from exactly what a company without one is served. The same constant for every\r\ncaller: it carries no company data, and the definition lives in\r\nMachship.Common.Models.TrackingPageTemplates.Config.BuiltInTrackingPage, not here.",
        "description": "Gated like M:Machship.WebApi.Controllers.v2.TrackingPageTemplatesV2Controller.GetForCompany(System.Int32), because its only consumer is the builder that\r\nendpoint feeds. companyId is read by the capability gate alone — the\r\ncompany being edited, so a broker editing a client's template is asked about the client,\r\nas on getForCompany — and changes nothing in the response.",
        "parameters": [
          {
            "name": "companyId",
            "in": "query",
            "description": "The company whose template is being edited; 0 or absent means the acting company.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TrackingPageBuiltInDefaultBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrackingPageBuiltInDefaultBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrackingPageBuiltInDefaultBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/trackingPageTemplates/getCompanyFallbackLogo": {
      "get": {
        "tags": [
          "TrackingPageTemplates"
        ],
        "summary": "The company-level fallback BRANDING the live tracking page would show — logo and colour —\r\nso the builder preview shows the same header as the merchant's customers see.",
        "description": "Gated on the SAME triplet as M:Machship.WebApi.Controllers.v2.TrackingPageTemplatesV2Controller.GetForCompany(System.Int32) rather than\r\nSysAdmin.SysAdminCompanies.View (which gates FileController's company-logo endpoints):\r\nthe logo must be exactly as available as the page it previews, and a merchant who can\r\ndesign their tracking page without holding company-admin rights would otherwise 403 here\r\nand keep seeing the MachShip default — the very bug this closes.\r\nThe per-company scope check lives in the service; the attribute only decides whether the\r\ncaller may reach the endpoint at all.",
        "parameters": [
          {
            "name": "companyId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TrackingPageFallbackBrandingBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrackingPageFallbackBrandingBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrackingPageFallbackBrandingBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/trackingPageTemplates/getConsentDetailDefaults": {
      "get": {
        "tags": [
          "TrackingPageTemplates"
        ],
        "summary": "Suggested values for the builder's marketing consent details — legal name, trading name\r\nand unsubscribe email — read from the company's OWN row (EC-685). The builder offers\r\nthem behind \"Use company details\"; nothing here is saved, and the merchant accepts or\r\noverwrites each value before it can reach a customer.",
        "description": "Gated exactly as M:Machship.WebApi.Controllers.v2.TrackingPageTemplatesV2Controller.GetCompanyFallbackLogo(System.Int32) is — the same triplet, the same\r\nAdvanced Branded Tracking capability on the target company — because it serves the same\r\nbuilder. Unlike that endpoint it never walks the company tree: these values name the\r\nlegal entity asking for consent, and a parent's name must not be suggested for a child.\r\nThe per-company scope check lives in the service.",
        "parameters": [
          {
            "name": "companyId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MarketingConsentDetailsBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MarketingConsentDetailsBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MarketingConsentDetailsBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/trackingPageTemplates/createOrUpdate": {
      "post": {
        "tags": [
          "TrackingPageTemplates"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/TrackingPageTemplate"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TrackingPageTemplate"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/TrackingPageTemplate"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/TrackingPageTemplate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TrackingPageTemplateBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrackingPageTemplateBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrackingPageTemplateBaseDomainEntityV2"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          }
        }
      }
    },
    "/apiv2/trackingPageTemplates/saveDraft": {
      "post": {
        "tags": [
          "TrackingPageTemplates"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/TrackingPageTemplate"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TrackingPageTemplate"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/TrackingPageTemplate"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/TrackingPageTemplate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TrackingPageTemplateBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrackingPageTemplateBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrackingPageTemplateBaseDomainEntityV2"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          }
        }
      }
    },
    "/apiv2/trackingPageTemplates/publish": {
      "post": {
        "tags": [
          "TrackingPageTemplates"
        ],
        "parameters": [
          {
            "name": "companyId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/TrackingPagePublishRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TrackingPagePublishRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/TrackingPagePublishRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/TrackingPagePublishRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TrackingPageTemplateBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrackingPageTemplateBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrackingPageTemplateBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/trackingPageTemplates/unpublish": {
      "post": {
        "tags": [
          "TrackingPageTemplates"
        ],
        "parameters": [
          {
            "name": "companyId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TrackingPageTemplateBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrackingPageTemplateBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrackingPageTemplateBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/trackingPageTemplates/versionHistory": {
      "get": {
        "tags": [
          "TrackingPageTemplates"
        ],
        "parameters": [
          {
            "name": "companyId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TrackingPageTemplatePublishHistoryEntryListBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrackingPageTemplatePublishHistoryEntryListBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrackingPageTemplatePublishHistoryEntryListBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/trackingPageTemplates/restoreVersion": {
      "post": {
        "tags": [
          "TrackingPageTemplates"
        ],
        "parameters": [
          {
            "name": "companyId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "historyId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TrackingPageTemplateBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrackingPageTemplateBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrackingPageTemplateBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/trackingPageTemplates/updateVersionDetails": {
      "post": {
        "tags": [
          "TrackingPageTemplates"
        ],
        "summary": "Renames or re-describes one published version (EC-408), the live one included. Only the\r\nlabel changes: the version's content, dates and publisher are never touched.",
        "description": "Gated exactly like M:Machship.WebApi.Controllers.v2.TrackingPageTemplatesV2Controller.RestoreVersion(System.Int32,System.Int32): the CreateDelete triplet, the Advanced\r\nBranded Tracking capability on the company, and in the service the caller's accessible\r\ncompanies, the brand-owner rule, and the history row belonging to this company's template.",
        "parameters": [
          {
            "name": "companyId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/TrackingPageVersionDetailsUpdate"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TrackingPageVersionDetailsUpdate"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/TrackingPageVersionDetailsUpdate"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/TrackingPageVersionDetailsUpdate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TrackingPageTemplatePublishHistoryEntryBaseDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrackingPageTemplatePublishHistoryEntryBaseDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrackingPageTemplatePublishHistoryEntryBaseDomainEntityV2"
                }
              }
            }
          }
        }
      }
    },
    "/apiv2/trackingPageTemplates/delete/{id}": {
      "delete": {
        "tags": [
          "TrackingPageTemplates"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyDomainEntityV2"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Address": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the addresss",
            "nullable": true
          },
          "addressLine1": {
            "type": "string",
            "description": "The first line of the address",
            "nullable": true
          },
          "addressLine2": {
            "type": "string",
            "description": "The (optional) second line of the address",
            "nullable": true
          },
          "location": {
            "$ref": "#/components/schemas/Location"
          },
          "contact": {
            "type": "string",
            "description": "The contact name for this address",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "description": "The phone number associated with this address",
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "The email address associated with this addresss",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "An address"
      },
      "Attachment": {
        "type": "object",
        "properties": {
          "consignmentId": {
            "type": "integer",
            "description": "The integer ID of the consignment in MachShip",
            "format": "int32"
          },
          "fileName": {
            "type": "string",
            "nullable": true
          },
          "fileContentBase64": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AutoReconcileRequest": {
        "type": "object",
        "properties": {
          "consignmentIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          },
          "reason": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AutoconsolidateDangerousGoodsType": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "description": "0 = InheritFromParent, 1 = Yes, 2 = No",
        "format": "int32"
      },
      "BaseCarrierAccount": {
        "required": [
          "accountCode",
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          },
          "accountCode": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string"
          },
          "carrierId": {
            "type": "integer",
            "format": "int32"
          },
          "carrierIntegrationId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "carrierIntegration": {
            "$ref": "#/components/schemas/CarrierIntegrationLite"
          },
          "displayName": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "carrierAccountServices": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CarrierAccountServiceModel"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "BookedManifestV2": {
        "required": [
          "companyId",
          "consignmentIds"
        ],
        "type": "object",
        "properties": {
          "consignmentIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "All the consignment Ids that should be manifested together"
          },
          "companyId": {
            "type": "integer",
            "description": "The company's id in MachShip which is manifesting these consignments",
            "format": "int32"
          },
          "pickupDateTime": {
            "type": "string",
            "description": "Pickup Date of this manifest. Should be in the format 'YYYY-MM-DD HH:SS'",
            "format": "date-time",
            "nullable": true
          },
          "palletSpaces": {
            "type": "integer",
            "description": "How many pallet spaces are required for this manifest?",
            "format": "int32"
          },
          "pickupClosingTime": {
            "type": "string",
            "description": "What is the closing time for this pickup location?",
            "format": "date-time",
            "nullable": true
          },
          "pickupSpecialInstructions": {
            "type": "string",
            "description": "Pickup special instructions for the driver (Optional)",
            "nullable": true
          },
          "pickupAlreadyBooked": {
            "type": "boolean",
            "description": "Has a pickup already been booked? If a pickup has not been booked, MachShip will book it for you"
          },
          "carrierName": {
            "type": "string",
            "description": "The carrier that the manifest is for",
            "nullable": true
          },
          "dgsDeclaration": {
            "type": "boolean",
            "description": "Must be true if manifesting DG consignments. Setting this to true means you Agree this Manifest is Compatible and in accordance with the Australian Dangerous Goods (ADG) Code Edition 7.9",
            "nullable": true
          },
          "customValues": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomValue"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "BookedManifestV2ICollectionBaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BookedManifestV2"
            },
            "nullable": true
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "BooleanBaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "type": "boolean"
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CarrierAccountLite": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "accountCode": {
            "type": "string",
            "nullable": true
          },
          "carrierId": {
            "type": "integer",
            "format": "int32"
          },
          "carrier": {
            "$ref": "#/components/schemas/CarrierLite"
          },
          "isInTestMode": {
            "type": "boolean"
          },
          "displayName": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "CarrierAccountLiteWithServices": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "accountCode": {
            "type": "string",
            "nullable": true
          },
          "carrierId": {
            "type": "integer",
            "format": "int32"
          },
          "carrier": {
            "$ref": "#/components/schemas/CarrierLite"
          },
          "isInTestMode": {
            "type": "boolean"
          },
          "displayName": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "carrierServices": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CarrierServiceLiteWithSubServices"
            },
            "nullable": true
          },
          "carrierServiceGroups": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CarrierServiceGroupLite"
            },
            "nullable": true
          },
          "enableReceiverPays": {
            "type": "boolean"
          },
          "validServices": {
            "type": "boolean"
          },
          "carrierIntegrationCustomFieldSets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomFieldSet"
            },
            "nullable": true
          },
          "carrierIntegrationCustomFieldsDotNetClassId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "carrierIntegrationCustomFieldsClass": {
            "type": "string",
            "nullable": true
          },
          "country": {
            "$ref": "#/components/schemas/Country"
          },
          "countryId": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "CarrierAccountServiceModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "carrierAccount": {
            "$ref": "#/components/schemas/CarrierAccountLite"
          },
          "carrierAccountId": {
            "type": "integer",
            "format": "int32"
          },
          "carrierService": {
            "$ref": "#/components/schemas/CarrierServiceLite"
          },
          "carrierServiceId": {
            "type": "integer",
            "format": "int32"
          },
          "newFuelLevyMarkupPercentage": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "fuelSurchargeId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CarrierIntegrationLite": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "isInternational": {
            "type": "boolean"
          },
          "supportsSendingCommercialInvoice": {
            "type": "boolean"
          },
          "trackingConnectorSlug": {
            "type": "string",
            "description": "Mirrors `CarrierIntegrationEntity.TrackingConnectorSlug` — the slug of the\r\nexternal tracking connector the central post-manifest hook uses. Null/empty\r\nmeans this integration does not register tracking externally.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CarrierInvoiceEntryAmendmentV2ForGetEntriesEndpoint": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "carrierInvoiceEntryId": {
            "type": "integer",
            "format": "int32"
          },
          "carrierInvoiceEntry": {
            "nullable": true
          },
          "reasonId": {
            "type": "integer",
            "format": "int32"
          },
          "reason": {
            "nullable": true
          },
          "routePrice": {
            "type": "number",
            "format": "double"
          },
          "fuelSurcharge": {
            "type": "number",
            "format": "double"
          },
          "tax": {
            "type": "number",
            "format": "double"
          },
          "total": {
            "type": "number",
            "format": "double"
          },
          "comments": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CarrierInvoiceEntryInfo": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "reason": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/CarrierInvoiceEntryStatus"
          },
          "consignmentId": {
            "type": "integer",
            "format": "int32"
          },
          "total": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "CarrierInvoiceEntryReconciliationChargeDisplay": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "carrierInvoiceEntryId": {
            "type": "integer",
            "format": "int32"
          },
          "consignmentReconciliationChargeId": {
            "type": "integer",
            "format": "int32"
          },
          "carrierInvoiceId": {
            "type": "integer",
            "format": "int32"
          },
          "carrierInvoiceNumber": {
            "type": "string",
            "nullable": true
          },
          "dateTimeReconciledUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "baseCost": {
            "type": "number",
            "format": "double"
          },
          "taxCost": {
            "type": "number",
            "format": "double"
          },
          "fuelCost": {
            "type": "number",
            "format": "double"
          },
          "totalCost": {
            "type": "number",
            "format": "double"
          },
          "beforeTaxCost": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "automatic": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "CarrierInvoiceEntryRejectionReason": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "reasonType": {
            "$ref": "#/components/schemas/RejectionType"
          },
          "requiresComment": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "CarrierInvoiceEntryStatus": {
        "enum": [
          0,
          1,
          2,
          3
        ],
        "type": "integer",
        "description": "0 = Pending, 1 = Accepted, 2 = Rejected, 3 = External",
        "format": "int32"
      },
      "CarrierInvoiceEntryV2ForGetEntriesEndpoint": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "consignmentId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "consignment": {
            "nullable": true
          },
          "carrierInvoiceId": {
            "type": "integer",
            "description": "string representation of the carrier's invoice id",
            "format": "int32"
          },
          "senderReference": {
            "type": "string",
            "description": "string representation of the sender reference",
            "nullable": true
          },
          "carrierManifestReference": {
            "type": "string",
            "description": "string representation of the manifest reference",
            "nullable": true
          },
          "customerReference": {
            "type": "string",
            "nullable": true
          },
          "customerReference2": {
            "type": "string",
            "nullable": true
          },
          "carrierConsignmentReference": {
            "type": "string",
            "nullable": true
          },
          "date": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "carrierAccountAbbreviation": {
            "type": "string",
            "nullable": true
          },
          "carrierAccountName": {
            "type": "string",
            "nullable": true
          },
          "serviceName": {
            "type": "string",
            "nullable": true
          },
          "serviceAbbreviation": {
            "type": "string",
            "nullable": true
          },
          "fromZoneAbbreviation": {
            "type": "string",
            "nullable": true
          },
          "toZoneAbbreviation": {
            "type": "string",
            "nullable": true
          },
          "fromName": {
            "type": "string",
            "nullable": true
          },
          "fromAddress": {
            "type": "string",
            "nullable": true
          },
          "fromSuburb": {
            "type": "string",
            "nullable": true
          },
          "fromPostCode": {
            "type": "string",
            "nullable": true
          },
          "fromState": {
            "type": "string",
            "nullable": true
          },
          "toName": {
            "type": "string",
            "nullable": true
          },
          "toAddress": {
            "type": "string",
            "nullable": true
          },
          "toSuburb": {
            "type": "string",
            "nullable": true
          },
          "toPostCode": {
            "type": "string",
            "nullable": true
          },
          "toState": {
            "type": "string",
            "nullable": true
          },
          "cubicMetres": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "weight": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "volume": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "chargeWeight": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "quantity": {
            "type": "integer",
            "format": "int32"
          },
          "total": {
            "type": "number",
            "format": "double"
          },
          "routePrice": {
            "type": "number",
            "format": "double"
          },
          "fuelSurcharge": {
            "type": "number",
            "format": "double"
          },
          "fuelSurchargePercentage": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "tax": {
            "type": "number",
            "format": "double"
          },
          "totalBeforeTax": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "otherValues": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachKeyValuePair"
            },
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/CarrierInvoiceEntryStatus"
          },
          "comments": {
            "type": "string",
            "nullable": true
          },
          "isAdditionalCharge": {
            "type": "boolean",
            "description": "This is not a main charge, but an additional charge to the main charge. We should not try to auto create consignments from additional charges"
          },
          "reason": {
            "$ref": "#/components/schemas/CarrierInvoiceEntryRejectionReason"
          },
          "rejectionComments": {
            "type": "string",
            "nullable": true
          },
          "fromDisplay": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "toDisplay": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "serviceDisplay": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "carrierAccountDisplay": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "routePriceAndCharges": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "amendedRoutePriceTotal": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "amendedFuelSurchargeTotal": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "amendedTaxTotal": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "amendedTotal": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "amendedTotalBeforeTax": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "carrierInvoiceEntryCharges": {
            "type": "array",
            "items": { },
            "nullable": true
          },
          "amendments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CarrierInvoiceEntryAmendmentV2ForGetEntriesEndpoint"
            },
            "nullable": true
          },
          "carrierAccountId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "carrierServiceId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "companyId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "fromLocationId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "toLocationId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "dateTimeReconciledUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CarrierInvoiceEntryV2ForGetEntriesEndpointICollectionBaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CarrierInvoiceEntryV2ForGetEntriesEndpoint"
            },
            "nullable": true
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CarrierInvoiceInformation": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "carrier": {
            "$ref": "#/components/schemas/CarrierLite"
          },
          "company": {
            "$ref": "#/components/schemas/CompanyLite"
          },
          "fileName": {
            "type": "string",
            "nullable": true
          },
          "invoiceId": {
            "type": "string",
            "nullable": true
          },
          "invoiceDate": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "CarrierInvoiceInformationICollectionBaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CarrierInvoiceInformation"
            },
            "nullable": true
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CarrierLite": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "abbreviation": {
            "type": "string",
            "nullable": true
          },
          "displayName": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "CarrierLiteWithCustomFieldSets": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "abbreviation": {
            "type": "string",
            "nullable": true
          },
          "displayName": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "customFieldSets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomFieldSet"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CarrierPrintSettings": {
        "type": "object",
        "properties": {
          "printConsignmentLabels": {
            "type": "boolean"
          },
          "printItemLabels": {
            "type": "boolean"
          },
          "printSpecialInstructionsLabels": {
            "type": "boolean"
          },
          "hasLimberSpecialInstructionsOverride": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "CarrierRefPoolLite": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "poolName": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CarrierServiceGroupLite": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CarrierServiceLite": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "abbreviation": {
            "type": "string",
            "nullable": true
          },
          "displayName": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "CarrierServiceLiteWithSubServices": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "abbreviation": {
            "type": "string",
            "nullable": true
          },
          "displayName": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "enableReceiverPays": {
            "type": "boolean",
            "nullable": true
          },
          "subServices": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubService"
            },
            "nullable": true
          },
          "serviceGroupId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "carrierServiceGroupOrder": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "acceptsDespatchTimes": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CarrierServiceSubService": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "carrierServiceId": {
            "type": "integer",
            "format": "int32"
          },
          "carrierService": {
            "$ref": "#/components/schemas/CarrierServiceLite"
          },
          "subServiceId": {
            "type": "integer",
            "format": "int32"
          },
          "subService": {
            "$ref": "#/components/schemas/SubService"
          },
          "isDefault": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "CarrierServiceSubServiceLite": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "abbreviation": {
            "type": "string",
            "nullable": true
          },
          "serialisedSettings": {
            "type": "string",
            "nullable": true
          },
          "isDefault": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "CarrierWithAccountsAndServicesLite": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "abbreviation": {
            "type": "string",
            "nullable": true
          },
          "displayName": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "supportsReceiverAccounts": {
            "type": "boolean"
          },
          "splitManifestByReceiverAccount": {
            "type": "boolean"
          },
          "canTrackStatusForReceiverAccounts": {
            "type": "boolean"
          },
          "canTrackAttachmentsForReceiverAccounts": {
            "type": "boolean"
          },
          "carrierAccounts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CarrierAccountLiteWithServices"
            },
            "nullable": true
          },
          "customFieldSets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomFieldSet"
            },
            "nullable": true
          },
          "customFieldsDotNetClassId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "customFieldsClass": {
            "type": "string",
            "nullable": true
          },
          "acceptsDespatchTimes": {
            "type": "boolean"
          },
          "canDeliverToPostOfficeBoxes": {
            "type": "boolean"
          },
          "companyCarrierCustomFieldSets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CompanyCarrierCustomFieldSetList"
            },
            "nullable": true,
            "deprecated": true
          },
          "carrierLogoFileName": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CarrierWithAccountsAndServicesLiteIEnumerableBaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CarrierWithAccountsAndServicesLite"
            },
            "nullable": true
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CarrierZoneLite": {
        "type": "object",
        "properties": {
          "guid": {
            "type": "string",
            "format": "uuid"
          },
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "abbreviation": {
            "type": "string",
            "nullable": true
          },
          "carrierId": {
            "type": "integer",
            "format": "int32"
          },
          "displayName": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "Company": {
        "required": [
          "accountCode",
          "displayEmail",
          "email",
          "name"
        ],
        "type": "object",
        "properties": {
          "locationId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "location": {
            "$ref": "#/components/schemas/Location"
          },
          "parentCompanyId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "parentCompany": {
            "$ref": "#/components/schemas/CompanyLite"
          },
          "billingParentCompanyId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "billingParentCompany": {
            "$ref": "#/components/schemas/CompanyLite"
          },
          "notificationForwardingCompanyId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "notificationForwardingCompany": {
            "$ref": "#/components/schemas/CompanyLite"
          },
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "companyType": {
            "$ref": "#/components/schemas/CompanyType"
          },
          "enterpriseTier": {
            "$ref": "#/components/schemas/EnterpriseTier"
          },
          "name": {
            "minLength": 1,
            "type": "string"
          },
          "accountCode": {
            "minLength": 1,
            "type": "string"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "children": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CompanyLiteWithChildren"
            },
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "fax": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "minLength": 1,
            "type": "string"
          },
          "displayEmail": {
            "minLength": 1,
            "type": "string"
          },
          "addressLine1": {
            "maxLength": 60,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "addressLine2": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "abn": {
            "type": "string",
            "nullable": true
          },
          "invoiceTerms": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "invoiceDueDateType": {
            "$ref": "#/components/schemas/InvoiceDueDateType"
          },
          "invoiceDefaultSurcharge": {
            "type": "number",
            "format": "double"
          },
          "displayName": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "base64LogoString": {
            "type": "string",
            "nullable": true
          },
          "invoiceLogo": {
            "type": "string",
            "format": "byte",
            "nullable": true
          },
          "invoiceLogoMimeType": {
            "type": "string",
            "nullable": true
          },
          "invoiceLogoFileName": {
            "type": "string",
            "nullable": true
          },
          "paymentInstructions": {
            "type": "string",
            "nullable": true
          },
          "invoiceNumberPrefix": {
            "maxLength": 10,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "invoiceNumberNextNumber": {
            "type": "integer",
            "format": "int32"
          },
          "invoiceNumberTotalLength": {
            "type": "integer",
            "format": "int32"
          },
          "invoiceEmailAddress": {
            "type": "string",
            "nullable": true
          },
          "inheritableItems": {
            "type": "boolean"
          },
          "inheritableLocations": {
            "type": "boolean"
          },
          "inheritableReceiverAccounts": {
            "type": "boolean"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "salesPortfolio": {
            "maxLength": 64,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "accountManagementPortfolio": {
            "maxLength": 64,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "referralPortfolio": {
            "maxLength": 64,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "tier": {
            "maxLength": 64,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "companyTierId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "companyTier": {
            "$ref": "#/components/schemas/CompanyTier"
          },
          "brokerShowCarrierReferenceOnInvoice": {
            "type": "boolean"
          },
          "brokerHideMsNumberOnInvoice": {
            "type": "boolean"
          },
          "brokerHideAppliedRulesFromCustomers": {
            "type": "boolean"
          },
          "addressLinesFriendly": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "addressFriendly": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "defaultSortOrder": {
            "maxLength": 32,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "defaultItemType": {
            "$ref": "#/components/schemas/ItemType"
          },
          "brokerInvoiceNotes": {
            "type": "string",
            "nullable": true
          },
          "brokerInvoiceEmailSubject": {
            "type": "string",
            "nullable": true
          },
          "companyCarrierSettings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CompanyCarrierSetting"
            },
            "nullable": true
          },
          "trackingEmailType": {
            "$ref": "#/components/schemas/TrackingType"
          },
          "trackingSmsType": {
            "$ref": "#/components/schemas/TrackingType"
          },
          "supportCompanyName": {
            "type": "string",
            "nullable": true
          },
          "supportPhone": {
            "type": "string",
            "nullable": true
          },
          "supportEmail": {
            "type": "string",
            "nullable": true
          },
          "supportWebAddress": {
            "type": "string",
            "nullable": true
          },
          "publicCompanyDisplayName": {
            "type": "string",
            "nullable": true
          },
          "defaultDespatchTime": {
            "$ref": "#/components/schemas/TimeSpan"
          },
          "impersonationMessage": {
            "maxLength": 512,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "supportLogoFileInformationId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "supportLogoFileInformationIdStr": {
            "type": "string",
            "description": "The support logo file information id as a string, for clients that cannot hold a 64-bit integer exactly.",
            "nullable": true,
            "readOnly": true
          },
          "trackingShowCarrierReference": {
            "type": "boolean",
            "nullable": true
          },
          "trackingShowCustomerReference1": {
            "type": "boolean",
            "nullable": true
          },
          "trackingShowCustomerReference2": {
            "type": "boolean",
            "nullable": true
          },
          "trackingShowConsignmentNumber": {
            "type": "boolean",
            "nullable": true
          },
          "trackingShowWebsite": {
            "type": "boolean",
            "nullable": true
          },
          "trackingShowPhone": {
            "type": "boolean",
            "nullable": true
          },
          "trackingShowEmail": {
            "type": "boolean",
            "nullable": true
          },
          "trackingShowItems": {
            "type": "boolean",
            "nullable": true
          },
          "invoiceLogoFileInformationId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "invoiceLogoFileInformationIdStr": {
            "type": "string",
            "description": "The invoice logo file information id as a string, for clients that cannot hold a 64-bit integer exactly.",
            "nullable": true,
            "readOnly": true
          },
          "navigationLogoFileInformationId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "navigationLogoFileInformationIdStr": {
            "type": "string",
            "description": "The navigation logo file information id as a string, for clients that cannot hold a 64-bit integer exactly.",
            "nullable": true,
            "readOnly": true
          },
          "consignmentCreationType": {
            "$ref": "#/components/schemas/ConsignmentCreationType"
          },
          "defaultConsignmentCarrierSelection": {
            "$ref": "#/components/schemas/ConsignmentCarrierSelectionType"
          },
          "defaultCarrier": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "defaultService": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "consignmentCreatedOrUpdatedClassId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "consignmentCreatedOrUpdatedSerialisedSettings": {
            "type": "string",
            "nullable": true
          },
          "consignmentManifestedClassId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "consignmentManifestedSerialisedSettings": {
            "type": "string",
            "nullable": true
          },
          "dgEnabled": {
            "type": "boolean"
          },
          "manifestAllJourneyLegsAtOnce": {
            "type": "boolean"
          },
          "emergencyContactNumber": {
            "type": "string",
            "nullable": true
          },
          "inheritableItemTypes": {
            "type": "boolean"
          },
          "shouldHoldForInvoicing": {
            "type": "boolean",
            "nullable": true
          },
          "shouldHoldForReconciliation": {
            "type": "boolean",
            "nullable": true
          },
          "invoiceIntegrationType": {
            "$ref": "#/components/schemas/InvoiceIntegrationType"
          },
          "externalFinancePackageTrackingName": {
            "type": "string",
            "nullable": true
          },
          "allowAutoConsignmentConsolidation": {
            "type": "boolean"
          },
          "autoConsignmentConsolidationSettings": {
            "type": "string",
            "nullable": true
          },
          "invoiceSendingType": {
            "$ref": "#/components/schemas/InvoiceSendingType"
          },
          "tradingStartDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "organisationId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "organisation": {
            "$ref": "#/components/schemas/Organisation"
          },
          "quoteTotalDisplayType": {
            "$ref": "#/components/schemas/QuoteTotalDisplayType"
          },
          "quoteTotalDisplayTypeInheritable": {
            "type": "boolean"
          },
          "addManifestSummaryToManifestPaperwork": {
            "$ref": "#/components/schemas/ShowManifestSummaryType"
          },
          "showManifestSummaryInheritable": {
            "type": "boolean"
          },
          "addDgSummaryToManifestPaperwork": {
            "$ref": "#/components/schemas/ShowManifestSummaryType"
          },
          "showDgSummaryInheritable": {
            "type": "boolean"
          },
          "highValueThreshold": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "highValueThresholdInheritable": {
            "type": "boolean"
          },
          "gstNumber": {
            "type": "string",
            "nullable": true
          },
          "enableEmailNotifications": {
            "type": "boolean"
          },
          "notificationEmailAddress": {
            "maxLength": 200,
            "type": "string",
            "nullable": true
          },
          "defaultInvoiceWrappingType": {
            "$ref": "#/components/schemas/InvoiceWrappingType"
          },
          "defaultInvoiceConsolidation": {
            "$ref": "#/components/schemas/InvoiceConsolidationType"
          },
          "defaultInvoiceReferenceConsolidation": {
            "$ref": "#/components/schemas/InvoiceReferenceConsolidationType"
          },
          "isDisabled": {
            "type": "boolean"
          },
          "recurringBillingChargeDescription": {
            "type": "string",
            "nullable": true
          },
          "recurringBillingChargeAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "trackingUrl": {
            "type": "string",
            "nullable": true
          },
          "questionIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          },
          "trackingPageType": {
            "$ref": "#/components/schemas/TrackingPageType"
          },
          "trackingPageState": {
            "$ref": "#/components/schemas/CompanyTrackingPageState"
          },
          "trackingHexColour": {
            "type": "string",
            "nullable": true
          },
          "trackingPageExtraInformationTemplate": {
            "type": "string",
            "nullable": true
          },
          "trackingShowHexColour": {
            "type": "boolean",
            "nullable": true
          },
          "trackingShowTemplate": {
            "type": "boolean",
            "nullable": true
          },
          "internationalEnabled": {
            "$ref": "#/components/schemas/InternationalEnabledType"
          },
          "hideCarrierItemTypeOnInvoice": {
            "$ref": "#/components/schemas/HideCarrierItemTypeOnInvoiceType"
          },
          "autoConsolidateDgs": {
            "$ref": "#/components/schemas/AutoconsolidateDangerousGoodsType"
          },
          "specialInstructionsPdfOverrideWorkflowId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "specialInstructionsPdfOverrideConnectSlug": {
            "type": "string",
            "nullable": true
          },
          "invoicePdfOverrideWorkflowId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "invoiceCsvOverrideWorkflowId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "Custom field values, keyed by field key. A value is a string, number or boolean, as the field's type requires: dates are \"yyyy-MM-dd\" and date-times are \"yyyy-MM-ddTHH:mm:ssZ\" strings. On a save, an absent key keeps the stored value and null clears it. Left out when the record has no values.",
            "nullable": true,
            "example": {
              "po_number": "PO-12345",
              "pallet_count": 3,
              "fragile": true,
              "delivery_date": "2026-10-20"
            }
          }
        },
        "additionalProperties": false
      },
      "CompanyCarrierAccountLite": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "companyId": {
            "type": "integer",
            "format": "int32"
          },
          "carrierAccountId": {
            "type": "integer",
            "format": "int32"
          },
          "carrierAccount": {
            "$ref": "#/components/schemas/CarrierAccountLite"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "abbreviation": {
            "type": "string",
            "nullable": true
          },
          "displayName": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "Stripped back details of the Company Carrier Account"
      },
      "CompanyCarrierCustomFieldSetList": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "companyId": {
            "type": "integer",
            "format": "int32"
          },
          "carrierId": {
            "type": "integer",
            "format": "int32"
          },
          "customFieldName": {
            "type": "string",
            "nullable": true
          },
          "listOfValues": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CompanyCarrierSetting": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "carrierId": {
            "type": "integer",
            "format": "int32"
          },
          "carrier": {
            "$ref": "#/components/schemas/CarrierLite"
          },
          "companyId": {
            "type": "integer",
            "format": "int32"
          },
          "companyCarrierSettingType": {
            "$ref": "#/components/schemas/InvoiceWrappingType"
          },
          "serializedSettingValue": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CompanyCombinedItem": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "totalHeight": {
            "type": "number",
            "format": "double"
          },
          "totalLength": {
            "type": "number",
            "format": "double"
          },
          "totalWidth": {
            "type": "number",
            "format": "double"
          },
          "totalWeight": {
            "type": "number",
            "format": "double"
          },
          "heaviestIndividualItem": {
            "type": "number",
            "format": "double"
          },
          "numberOfPieces": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "CompanyItemComplexV2": {
        "required": [
          "itemType",
          "name",
          "quantity"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "The Machship Id for this item",
            "format": "int32"
          },
          "itemType": {
            "$ref": "#/components/schemas/ItemType"
          },
          "name": {
            "minLength": 1,
            "type": "string",
            "description": "Name or description of the goods you are sending"
          },
          "sku": {
            "type": "string",
            "description": "Optional: the SKU or code of the item you are sending",
            "nullable": true
          },
          "quantity": {
            "type": "integer",
            "description": "Number of items",
            "format": "int32"
          },
          "standardItem": {
            "$ref": "#/components/schemas/CreateConsignmentStandardItemV2"
          },
          "combinedItem": {
            "$ref": "#/components/schemas/CreateConsignmentCombinedItemV2"
          },
          "combinedLoadSize": {
            "$ref": "#/components/schemas/CreateConsignmentCombinedLoadSizeItemV2"
          },
          "veryFrequentItem": {
            "type": "boolean"
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "Custom field values, keyed by field key. A value is a string, number or boolean, as the field's type requires: dates are \"yyyy-MM-dd\" and date-times are \"yyyy-MM-ddTHH:mm:ssZ\" strings. On a save, an absent key keeps the stored value and null clears it. Left out when the record has no values.",
            "nullable": true,
            "example": {
              "po_number": "PO-12345",
              "pallet_count": 3,
              "fragile": true,
              "delivery_date": "2026-10-20"
            }
          }
        },
        "additionalProperties": false
      },
      "CompanyItemComplexV2BaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "$ref": "#/components/schemas/CompanyItemComplexV2"
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CompanyItemComplexV2GridDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CompanyItemComplexV2"
            },
            "nullable": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          },
          "totalItems": {
            "type": "integer",
            "format": "int32"
          },
          "startIndex": {
            "type": "integer",
            "format": "int32"
          },
          "retrievalSize": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "CompanyItemLite": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "companyId": {
            "type": "integer",
            "format": "int32"
          },
          "company": {
            "$ref": "#/components/schemas/CompanyLite"
          },
          "itemType": {
            "$ref": "#/components/schemas/ItemType"
          },
          "typeString": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "quantity": {
            "type": "integer",
            "format": "int32"
          },
          "sku": {
            "type": "string",
            "nullable": true
          },
          "nameAndSku": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "standardItemId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "standardItem": {
            "$ref": "#/components/schemas/CompanyStandardItem"
          },
          "combinedItemId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "combinedItem": {
            "$ref": "#/components/schemas/CompanyCombinedItem"
          },
          "veryFrequentItem": {
            "type": "boolean"
          },
          "palletSpaces": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CompanyItemV2": {
        "required": [
          "height",
          "itemType",
          "length",
          "name",
          "quantity",
          "weight",
          "width"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "The Machship Id for this item",
            "format": "int32"
          },
          "itemType": {
            "$ref": "#/components/schemas/ItemType"
          },
          "name": {
            "minLength": 1,
            "type": "string",
            "description": "Name or description of the goods you are sending"
          },
          "sku": {
            "type": "string",
            "description": "Optional: the SKU or code of the item you are sending",
            "nullable": true
          },
          "quantity": {
            "type": "integer",
            "description": "Number of items",
            "format": "int32"
          },
          "height": {
            "type": "number",
            "description": "Height of the item in cm",
            "format": "double"
          },
          "weight": {
            "type": "number",
            "description": "Weight of the item in kg",
            "format": "double"
          },
          "length": {
            "type": "number",
            "description": "Length of the item in cm",
            "format": "double"
          },
          "width": {
            "type": "number",
            "description": "Width of the item in cm",
            "format": "double"
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "Custom field values, keyed by field key. A value is a string, number or boolean, as the field's type requires: dates are \"yyyy-MM-dd\" and date-times are \"yyyy-MM-ddTHH:mm:ssZ\" strings. On a save, an absent key keeps the stored value and null clears it. Left out when the record has no values.",
            "nullable": true,
            "example": {
              "po_number": "PO-12345",
              "pallet_count": 3,
              "fragile": true,
              "delivery_date": "2026-10-20"
            }
          }
        },
        "additionalProperties": false
      },
      "CompanyItemV2BaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "$ref": "#/components/schemas/CompanyItemV2"
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CompanyItemV2GridDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CompanyItemV2"
            },
            "nullable": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          },
          "totalItems": {
            "type": "integer",
            "format": "int32"
          },
          "startIndex": {
            "type": "integer",
            "format": "int32"
          },
          "retrievalSize": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "CompanyItemV2ICollectionBaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CompanyItemV2"
            },
            "nullable": true
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CompanyLite": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "companyType": {
            "$ref": "#/components/schemas/CompanyType"
          },
          "enterpriseTier": {
            "$ref": "#/components/schemas/EnterpriseTier"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "accountCode": {
            "type": "string",
            "nullable": true
          },
          "displayName": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "isDisabled": {
            "type": "boolean"
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "effectiveHighValueThreshold": {
            "type": "number",
            "description": "Resolved high-value threshold for this company after walking the parent inheritance\r\nchain. Null = feature off (no ancestor has both a non-null threshold and Inheritable =\r\ntrue). Sourced from the company-structure cache (populated at cache-fill time via\r\nHighValueThresholdHelper) — cheap to read. Not set by raw DB repository reads; only\r\nservice-layer methods that intend to expose it (e.g. CompanyService.GetCompanyLite)\r\npopulate this field on the way out.\r\n<br>\r\nJSON-omitted when null so existing API consumers that have CompanyLite-shape snapshot\r\ntests don't fail across every shard for a benign optional-field addition. Null and\r\n\"field missing\" are functionally identical for FE consumers (both falsy in JS).\r\n",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CompanyLiteWithChildren": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "companyType": {
            "$ref": "#/components/schemas/CompanyType"
          },
          "enterpriseTier": {
            "$ref": "#/components/schemas/EnterpriseTier"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "accountCode": {
            "type": "string",
            "nullable": true
          },
          "displayName": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "isDisabled": {
            "type": "boolean"
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "effectiveHighValueThreshold": {
            "type": "number",
            "description": "Resolved high-value threshold for this company after walking the parent inheritance\r\nchain. Null = feature off (no ancestor has both a non-null threshold and Inheritable =\r\ntrue). Sourced from the company-structure cache (populated at cache-fill time via\r\nHighValueThresholdHelper) — cheap to read. Not set by raw DB repository reads; only\r\nservice-layer methods that intend to expose it (e.g. CompanyService.GetCompanyLite)\r\npopulate this field on the way out.\r\n<br>\r\nJSON-omitted when null so existing API consumers that have CompanyLite-shape snapshot\r\ntests don't fail across every shard for a benign optional-field addition. Null and\r\n\"field missing\" are functionally identical for FE consumers (both falsy in JS).\r\n",
            "format": "double",
            "nullable": true
          },
          "children": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CompanyLiteWithChildren"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CompanyLocation": {
        "required": [
          "addressLine1",
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "locationType": {
            "$ref": "#/components/schemas/CompanyLocationType"
          },
          "name": {
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          },
          "abbreviation": {
            "type": "string",
            "nullable": true
          },
          "displayName": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "contact": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "addressLine1": {
            "minLength": 1,
            "type": "string"
          },
          "addressLine2": {
            "type": "string",
            "nullable": true
          },
          "addressLinesFriendly": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "companyId": {
            "type": "integer",
            "format": "int32"
          },
          "locationId": {
            "type": "integer",
            "format": "int32"
          },
          "location": {
            "$ref": "#/components/schemas/Location"
          },
          "locationAsString": {
            "type": "string",
            "nullable": true
          },
          "isLocked": {
            "type": "boolean"
          },
          "specialInstructions": {
            "type": "string",
            "nullable": true
          },
          "carrierAccounts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BaseCarrierAccount"
            },
            "nullable": true
          },
          "permanentPickups": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PermanentPickup"
            },
            "nullable": true
          },
          "veryFrequentAddress": {
            "type": "boolean"
          },
          "totalRows": {
            "type": "integer",
            "format": "int32"
          },
          "company": {
            "$ref": "#/components/schemas/CompanyLite"
          },
          "insertionGuid": {
            "type": "string",
            "format": "uuid"
          },
          "companyLocationReceiverAccounts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CompanyLocationReceiverAccount"
            },
            "nullable": true
          },
          "reference1": {
            "type": "string",
            "nullable": true
          },
          "reference2": {
            "type": "string",
            "nullable": true
          },
          "defaultPickupTime": {
            "$ref": "#/components/schemas/TimeSpan"
          },
          "defaultClosingTime": {
            "$ref": "#/components/schemas/TimeSpan"
          },
          "defaultPickupInstructions": {
            "type": "string",
            "nullable": true
          },
          "pickupQuestionIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          },
          "deliveryQuestionIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          },
          "isInternational": {
            "type": "boolean"
          },
          "countryId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "country": {
            "$ref": "#/components/schemas/Country"
          },
          "internationalCity": {
            "type": "string",
            "nullable": true
          },
          "internationalProvince": {
            "type": "string",
            "nullable": true
          },
          "internationalPostcode": {
            "type": "string",
            "nullable": true
          },
          "locationDescription": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "tags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TagForRow"
            },
            "description": "The tags on this saved location that the requesting user may see. Populated only on the\r\nsaved-location grid, after its query, by `TagRetrievalService.SetTagsOnEntitiesAsync`.",
            "nullable": true
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "Custom field values, keyed by field key. A value is a string, number or boolean, as the field's type requires: dates are \"yyyy-MM-dd\" and date-times are \"yyyy-MM-ddTHH:mm:ssZ\" strings. On a save, an absent key keeps the stored value and null clears it. Left out when the record has no values.",
            "nullable": true,
            "example": {
              "po_number": "PO-12345",
              "pallet_count": 3,
              "fragile": true,
              "delivery_date": "2026-10-20"
            }
          }
        },
        "additionalProperties": false
      },
      "CompanyLocationReceiverAccount": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "companyLocationId": {
            "type": "integer",
            "format": "int32"
          },
          "companyLocation": {
            "$ref": "#/components/schemas/CompanyLocation"
          },
          "receiverAccountId": {
            "type": "integer",
            "format": "int32"
          },
          "receiverAccount": {
            "$ref": "#/components/schemas/ReceiverAccount"
          }
        },
        "additionalProperties": false
      },
      "CompanyLocationType": {
        "enum": [
          1,
          2,
          3
        ],
        "type": "integer",
        "description": "1 = FromLocation, 2 = ToLocation, 3 = BothFromAndToLocations",
        "format": "int32"
      },
      "CompanyLocationV2": {
        "required": [
          "addressLine1",
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "locationType": {
            "$ref": "#/components/schemas/CompanyLocationType"
          },
          "name": {
            "minLength": 1,
            "type": "string"
          },
          "abbreviation": {
            "type": "string",
            "nullable": true
          },
          "contact": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "addressLine1": {
            "minLength": 1,
            "type": "string"
          },
          "addressLine2": {
            "type": "string",
            "nullable": true
          },
          "addressLinesFriendly": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "companyId": {
            "type": "integer",
            "format": "int32"
          },
          "locationId": {
            "type": "integer",
            "format": "int32"
          },
          "location": {
            "$ref": "#/components/schemas/LocationV2"
          },
          "specialInstructions": {
            "type": "string",
            "nullable": true
          },
          "reference1": {
            "type": "string",
            "nullable": true
          },
          "reference2": {
            "type": "string",
            "nullable": true
          },
          "defaultPickupTime": {
            "$ref": "#/components/schemas/TimeSpan"
          },
          "defaultClosingTime": {
            "$ref": "#/components/schemas/TimeSpan"
          },
          "defaultPickupInstructions": {
            "type": "string",
            "nullable": true
          },
          "isInternational": {
            "type": "boolean"
          },
          "internationalCity": {
            "type": "string",
            "nullable": true
          },
          "internationalPostcode": {
            "type": "string",
            "nullable": true
          },
          "internationalProvince": {
            "type": "string",
            "nullable": true
          },
          "internationalCountryId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "internationalCountry": {
            "$ref": "#/components/schemas/Country"
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "Custom field values, keyed by field key. A value is a string, number or boolean, as the field's type requires: dates are \"yyyy-MM-dd\" and date-times are \"yyyy-MM-ddTHH:mm:ssZ\" strings. On a save, an absent key keeps the stored value and null clears it. Left out when the record has no values.",
            "nullable": true,
            "example": {
              "po_number": "PO-12345",
              "pallet_count": 3,
              "fragile": true,
              "delivery_date": "2026-10-20"
            }
          }
        },
        "additionalProperties": false
      },
      "CompanyLocationV2BaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "$ref": "#/components/schemas/CompanyLocationV2"
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CompanyLocationV2GridDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CompanyLocationV2"
            },
            "nullable": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          },
          "totalItems": {
            "type": "integer",
            "format": "int32"
          },
          "startIndex": {
            "type": "integer",
            "format": "int32"
          },
          "retrievalSize": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "CompanyLocationV2PermanentPickups": {
        "type": "object",
        "properties": {
          "companyLocationId": {
            "type": "integer",
            "description": "The ID of an existing company location in MachShip",
            "format": "int32"
          },
          "permanentPickups": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PermanentPickupV2"
            },
            "description": "Permanent pickups associated with the company location",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CompanyLocationV2PermanentPickupsBaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "$ref": "#/components/schemas/CompanyLocationV2PermanentPickups"
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CompanyQuestionGroupLink": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "companyId": {
            "type": "integer",
            "format": "int32"
          },
          "questionGroupId": {
            "type": "integer",
            "format": "int32"
          },
          "questionId": {
            "type": "integer",
            "format": "int32"
          },
          "ordering": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "CompanyStandardItem": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "length": {
            "type": "number",
            "format": "double"
          },
          "width": {
            "type": "number",
            "format": "double"
          },
          "height": {
            "type": "number",
            "format": "double"
          },
          "weight": {
            "type": "number",
            "format": "double"
          },
          "insertionGuid": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CompanyTier": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "companyId": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "abbreviation": {
            "type": "string",
            "nullable": true
          },
          "displayName": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "CompanyTrackingPageState": {
        "type": "object",
        "properties": {
          "pageShown": {
            "$ref": "#/components/schemas/TrackingPageShown"
          },
          "publishedAt": {
            "type": "string",
            "description": "When the served template was last published. Null unless Machship.Common.Models.Companies.CompanyTrackingPageState.PageShown is the template.",
            "format": "date-time",
            "nullable": true
          },
          "templateInherited": {
            "type": "boolean",
            "description": "The served template belongs to an ancestor company rather than this one."
          },
          "liveVersionName": {
            "type": "string",
            "description": "The live version's label of the served template (EC-408), owned or inherited: an inheriting\r\nchild sees the ancestor's label. Null when no template is served or the live version is unnamed.",
            "nullable": true
          },
          "advancedBrandedTrackingEnabled": {
            "type": "boolean",
            "description": "This company holds the Advanced Branded Tracking add-on: the page offers the builder\r\nrather than the add-ons page."
          },
          "logoSource": {
            "$ref": "#/components/schemas/TrackingPageFallbackSource"
          },
          "colourSource": {
            "$ref": "#/components/schemas/TrackingPageFallbackSource"
          }
        },
        "additionalProperties": false,
        "description": "What the company edit page shows in place of the Machship.Common.Enumerations.TrackingPageType dropdown\r\nwhile `legacy-tracking-page-cutover` is on (EC-939): the tracking page this company's\r\nrecipients are actually served, and where its branding comes from.\r\n<br>\r\nResolved server-side from the same pieces the live page uses, so the frontend never\r\nre-derives entitlement or publish state and the panel cannot disagree with the page.\r\n<br>\r\nCarries no ancestor company id or name, for the reason Machship.Common.Enumerations.TrackingPageFallbackSource\r\ngives: the walks read company rows above the caller's accessible scope.\r\n"
      },
      "CompanyType": {
        "enum": [
          1,
          2,
          3,
          4,
          5
        ],
        "type": "integer",
        "description": "1 = System, 2 = Reseller, 3 = Broker, 4 = Client, 5 = Enterprise",
        "format": "int32"
      },
      "CompanyV2": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "accountCode": {
            "type": "string",
            "nullable": true
          },
          "displayName": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "CompanyV2WithParentId": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "accountCode": {
            "type": "string",
            "nullable": true
          },
          "displayName": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "parentCompanyId": {
            "type": "integer",
            "description": "The MachShip ID of the company's parent in the company hierarchy",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CompanyV2WithParentIdIEnumerableBaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CompanyV2WithParentId"
            },
            "nullable": true
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Component": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "componentType": {
            "$ref": "#/components/schemas/ComponentType"
          },
          "name": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "description": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "subComponents": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubComponent"
            },
            "nullable": true
          },
          "permission": {
            "$ref": "#/components/schemas/PermissionType"
          }
        },
        "additionalProperties": false
      },
      "ComponentType": {
        "enum": [
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8
        ],
        "type": "integer",
        "description": "1 = SysAdmin, 2 = Consignments, 3 = Company, 4 = Broker, 5 = Financial, 6 = Dashboards, 7 = Reports, 8 = OrganisationBilling",
        "format": "int32"
      },
      "ConsignmentAttachmentDetailV2": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "fileName": {
            "type": "string",
            "nullable": true
          },
          "dateAdded": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "ConsignmentAttachmentDetailV2ICollectionBaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsignmentAttachmentDetailV2"
            },
            "nullable": true
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ConsignmentCarrierSelectionType": {
        "enum": [
          1,
          2,
          3
        ],
        "type": "integer",
        "description": "1 = ShortCarrierSelection, 2 = LongCarrierSelection, 3 = RouteCarrierSelection",
        "format": "int32"
      },
      "ConsignmentCreationType": {
        "enum": [
          1,
          2,
          3
        ],
        "type": "integer",
        "description": "1 = CreateConsignment, 2 = QuickConsignment, 3 = AllMethods",
        "format": "int32"
      },
      "ConsignmentCustomStatus": {
        "required": [
          "class",
          "companyId",
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "companyId": {
            "type": "integer",
            "format": "int32"
          },
          "company": {
            "$ref": "#/components/schemas/CompanyLite"
          },
          "isInheritable": {
            "type": "boolean"
          },
          "name": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string"
          },
          "class": {
            "maxLength": 255,
            "minLength": 1,
            "type": "string"
          },
          "shouldBlockManifesting": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "ConsignmentHourlyPricing": {
        "type": "object",
        "properties": {
          "consignmentId": {
            "type": "integer",
            "format": "int32"
          },
          "minimumPriceCost": {
            "type": "number",
            "format": "double"
          },
          "minimumPriceSell": {
            "type": "number",
            "format": "double"
          },
          "minimumMinutes": {
            "type": "number",
            "format": "double"
          },
          "hourlyBaseRateCost": {
            "type": "number",
            "format": "double"
          },
          "hourlyBaseRateSell": {
            "type": "number",
            "format": "double"
          },
          "hourlyFuelAmountCost": {
            "type": "number",
            "format": "double"
          },
          "hourlyFuelAmountSell": {
            "type": "number",
            "format": "double"
          },
          "hourlyTaxAmountCost": {
            "type": "number",
            "format": "double"
          },
          "hourlyTaxAmountSell": {
            "type": "number",
            "format": "double"
          },
          "hourlyTotalCost": {
            "type": "number",
            "format": "double"
          },
          "hourlyTotalSell": {
            "type": "number",
            "format": "double"
          },
          "sellPricesCleared": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "ConsignmentIdWithTrackingHistoryV2": {
        "type": "object",
        "properties": {
          "consignmentId": {
            "type": "integer",
            "format": "int32"
          },
          "statusHistory": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsignmentTrackingHistoryV2"
            },
            "nullable": true
          },
          "attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsignmentAttachmentDetailV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ConsignmentIdWithTrackingHistoryV2IEnumerableBaseDomainEntity": {
        "type": "object",
        "properties": {
          "object": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsignmentIdWithTrackingHistoryV2"
            },
            "nullable": true
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResult"
            },
            "nullable": true
          },
          "refreshSession": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "ConsignmentInitV2Model": {
        "type": "object",
        "properties": {
          "questions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QuestionModel"
            },
            "nullable": true
          },
          "questionGroups": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QuestionGroup"
            },
            "nullable": true
          },
          "veryFrequentLocations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CompanyLocation"
            },
            "nullable": true
          },
          "veryFrequentItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CompanyItemLite"
            },
            "nullable": true
          },
          "defaultSortOrder": {
            "type": "string",
            "nullable": true
          },
          "defaultItemType": {
            "$ref": "#/components/schemas/ItemType"
          },
          "cannotChangeItemType": {
            "type": "boolean"
          },
          "consignmentsOnlyOneItem": {
            "type": "boolean"
          },
          "consignmentQuantityAlwaysOne": {
            "type": "boolean"
          },
          "trackingEmailType": {
            "$ref": "#/components/schemas/TrackingType"
          },
          "trackingSmsType": {
            "$ref": "#/components/schemas/TrackingType"
          },
          "defaultDespatchTime": {
            "$ref": "#/components/schemas/TimeSpan"
          },
          "defaultCarrier": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "defaultService": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "defaultConsignmentCarrierSelection": {
            "$ref": "#/components/schemas/ConsignmentCarrierSelectionType"
          },
          "companyDgEnabled": {
            "type": "boolean"
          },
          "canDeliverToPostOfficeBoxes": {
            "type": "boolean"
          },
          "companyValidItemTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipItemType"
            },
            "nullable": true
          },
          "quoteTotalDisplayType": {
            "$ref": "#/components/schemas/QuoteTotalDisplayType"
          },
          "companyValidCountries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CountryType"
            },
            "nullable": true
          },
          "internationalEnabled": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "ConsignmentInitV2ModelBaseDomainEntity": {
        "type": "object",
        "properties": {
          "object": {
            "$ref": "#/components/schemas/ConsignmentInitV2Model"
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResult"
            },
            "nullable": true
          },
          "refreshSession": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "ConsignmentItemContent": {
        "required": [
          "description"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "consignmentItemId": {
            "type": "integer",
            "format": "int32"
          },
          "description": {
            "minLength": 1,
            "type": "string"
          },
          "reference1": {
            "type": "string",
            "nullable": true
          },
          "reference2": {
            "type": "string",
            "nullable": true
          },
          "reference3": {
            "type": "string",
            "nullable": true
          },
          "quantity": {
            "type": "integer",
            "format": "int32"
          },
          "dollarValue": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "ciMarksAndNumbers": {
            "type": "string",
            "nullable": true
          },
          "harmonizedCode": {
            "type": "string",
            "nullable": true
          },
          "partNumber": {
            "type": "string",
            "nullable": true
          },
          "purpose": {
            "type": "string",
            "nullable": true
          },
          "countryOfManufactureId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "countryOfManufacture": {
            "$ref": "#/components/schemas/Country"
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "Custom field values keyed by field key. Omitted from the payload when unset.",
            "nullable": true,
            "example": {
              "po_number": "PO-12345",
              "pallet_count": 3,
              "fragile": true,
              "delivery_date": "2026-10-20"
            }
          }
        },
        "additionalProperties": false
      },
      "ConsignmentItemDgItemV2": {
        "type": "object",
        "properties": {
          "guid": {
            "type": "string",
            "format": "uuid"
          },
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "unNumber": {
            "type": "integer",
            "format": "int32"
          },
          "consignmentItemId": {
            "type": "integer",
            "format": "int32"
          },
          "companyDgItemId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "packingGroup": {
            "$ref": "#/components/schemas/PackingGroup"
          },
          "containerType": {
            "$ref": "#/components/schemas/ContainerType"
          },
          "aggregateQuantity": {
            "type": "number",
            "format": "double"
          },
          "isAggregateQuantityWeight": {
            "type": "boolean"
          },
          "numberOfContainers": {
            "type": "integer",
            "format": "int32"
          },
          "dgClassType": {
            "$ref": "#/components/schemas/DgClassType"
          },
          "subDgClassTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DgClassType"
            },
            "nullable": true
          },
          "properShippingName": {
            "type": "string",
            "nullable": true
          },
          "technicalOrChemicalGroupNames": {
            "type": "string",
            "nullable": true
          },
          "isMarinePollutant": {
            "type": "boolean"
          },
          "isTemperatureControlled": {
            "type": "boolean"
          },
          "isEmptyDgContainer": {
            "type": "boolean"
          },
          "packingGroupStringValue": {
            "type": "string",
            "nullable": true
          },
          "containerTypeStringValue": {
            "type": "string",
            "nullable": true
          },
          "dgHazchemId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "dgHazchem": {
            "$ref": "#/components/schemas/DgHazchem"
          },
          "flashpoint": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "Custom field values keyed by field key. Omitted from the payload when unset.",
            "nullable": true,
            "example": {
              "po_number": "PO-12345",
              "pallet_count": 3,
              "fragile": true,
              "delivery_date": "2026-10-20"
            }
          }
        },
        "additionalProperties": false
      },
      "ConsignmentItemReferenceV2": {
        "type": "object",
        "properties": {
          "carrierCustomFields": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Carrier custom fields, returned when includeCarrierCustomFields=true (or 1) is requested.",
            "nullable": true
          },
          "carrierItemReference": {
            "type": "string",
            "nullable": true
          },
          "printed": {
            "type": "boolean"
          },
          "printedDateUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ConsignmentItemV2": {
        "required": [
          "height",
          "itemType",
          "length",
          "name",
          "quantity",
          "weight",
          "width"
        ],
        "type": "object",
        "properties": {
          "companyItemId": {
            "type": "integer",
            "description": "Optional: Links this item back up to a saved item in Machship",
            "format": "int32",
            "nullable": true
          },
          "itemType": {
            "$ref": "#/components/schemas/ItemType"
          },
          "name": {
            "minLength": 1,
            "type": "string",
            "description": "Name or description of the goods you are sending"
          },
          "sku": {
            "type": "string",
            "description": "Optional: the SKU or code of the item you are sending",
            "nullable": true
          },
          "quantity": {
            "type": "integer",
            "description": "Number of items",
            "format": "int32"
          },
          "height": {
            "type": "number",
            "description": "Height of the item in cm",
            "format": "double"
          },
          "weight": {
            "type": "number",
            "description": "Weight of the item in kg",
            "format": "double"
          },
          "length": {
            "type": "number",
            "description": "Length of the item in cm",
            "format": "double"
          },
          "width": {
            "type": "number",
            "description": "Width of the item in cm",
            "format": "double"
          },
          "palletSpaces": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "references": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "itemReferences": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsignmentItemReferenceV2"
            },
            "nullable": true
          },
          "consignmentItemDgItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsignmentItemDgItemV2"
            },
            "nullable": true
          },
          "consignmentItemContents": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsignmentItemContent"
            },
            "nullable": true
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "Custom field values keyed by field key. Omitted from the payload when unset.",
            "nullable": true,
            "example": {
              "po_number": "PO-12345",
              "pallet_count": 3,
              "fragile": true,
              "delivery_date": "2026-10-20"
            }
          }
        },
        "additionalProperties": false
      },
      "ConsignmentReconciliationChargeDisplay": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "consignmentId": {
            "type": "integer",
            "format": "int32"
          },
          "invoiceItemId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "insertionGuid": {
            "type": "string",
            "format": "uuid"
          },
          "chargeType": {
            "$ref": "#/components/schemas/ConsignmentReconciliationChargeType"
          },
          "baseSell": {
            "type": "number",
            "format": "double"
          },
          "taxSell": {
            "type": "number",
            "format": "double"
          },
          "fuelSell": {
            "type": "number",
            "format": "double"
          },
          "totalSell": {
            "type": "number",
            "format": "double"
          },
          "beforeTaxSell": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "baseCost": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "taxCost": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "fuelCost": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "totalCost": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "beforeTaxCost": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "reason": {
            "type": "string",
            "nullable": true
          },
          "carrierInvoiceEntryReconciliationCharges": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CarrierInvoiceEntryReconciliationChargeDisplay"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ConsignmentReconciliationChargeType": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5
        ],
        "type": "integer",
        "description": "0 = Unknown, 1 = Consignment, 2 = Reconciliation, 3 = Manual, 4 = Credit, 5 = Absorbed",
        "format": "int32"
      },
      "ConsignmentReconciliationData": {
        "type": "object",
        "properties": {
          "consignmentReconciliationCharges": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsignmentReconciliationChargeDisplay"
            },
            "nullable": true
          },
          "carrierInvoiceEntries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CarrierInvoiceEntryInfo"
            },
            "nullable": true
          },
          "costPriceBase": {
            "type": "number",
            "format": "double"
          },
          "costPriceFuel": {
            "type": "number",
            "format": "double"
          },
          "costPriceGst": {
            "type": "number",
            "format": "double"
          },
          "costPriceTotal": {
            "type": "number",
            "format": "double"
          },
          "sellPriceBase": {
            "type": "number",
            "format": "double"
          },
          "sellPriceFuel": {
            "type": "number",
            "format": "double"
          },
          "sellPriceGst": {
            "type": "number",
            "format": "double"
          },
          "sellPriceTotal": {
            "type": "number",
            "format": "double"
          },
          "closed": {
            "type": "boolean"
          },
          "reconciled": {
            "$ref": "#/components/schemas/CarrierInvoiceEntryStatus"
          },
          "isReconciled": {
            "type": "boolean",
            "readOnly": true
          },
          "reconciledCostPriceBase": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "reconciledCostPriceFuel": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "reconciledCostPriceGst": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "reconciledCostPriceTotal": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "reconciledSellPriceBase": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "reconciledSellPriceFuel": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "reconciledSellPriceGst": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "reconciledSellPriceTotal": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "reconciledCostDifference": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "reconciledSellDifference": {
            "type": "number",
            "format": "double",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "ConsignmentResponseV2": {
        "type": "object",
        "properties": {
          "pendingConsignmentId": {
            "type": "integer",
            "format": "int32"
          },
          "consignment": {
            "$ref": "#/components/schemas/ConsignmentV2"
          }
        },
        "additionalProperties": false
      },
      "ConsignmentResponseV2ICollectionBaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsignmentResponseV2"
            },
            "nullable": true
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ConsignmentStatusType": {
        "enum": [
          1,
          2,
          3,
          4,
          5,
          6
        ],
        "type": "integer",
        "description": "1 = Quote, 2 = Unmanifested, 3 = Active, 4 = Completed, 5 = Deleted, 6 = Cancelled",
        "format": "int32"
      },
      "ConsignmentSubDgClassTypes": {
        "type": "object",
        "properties": {
          "consignmentId": {
            "type": "integer",
            "format": "int32"
          },
          "dgClassType": {
            "$ref": "#/components/schemas/DgClassType"
          },
          "subDgClassTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DgClassType"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ConsignmentSurchargeV2": {
        "type": "object",
        "properties": {
          "costPrice": {
            "type": "number",
            "description": "Cost Price of the surcharge",
            "format": "double"
          },
          "sellPrice": {
            "type": "number",
            "description": "Sell Price of the surcharge",
            "format": "double"
          },
          "quantity": {
            "type": "integer",
            "description": "How many times this surcharge is being applied. Quantity has already been applied to the CostPrice and SellPrice",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "description": "Surcharge Name",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ConsignmentToConsolidate": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Machship's Consignment / Pending Consignment ID",
            "format": "int32"
          },
          "consignmentNumber": {
            "type": "string",
            "description": "Machship's Consignment (MS) or Pending Consignment (PS) number",
            "nullable": true
          },
          "carrier": {
            "$ref": "#/components/schemas/CarrierLite"
          },
          "service": {
            "$ref": "#/components/schemas/CarrierServiceLite"
          },
          "account": {
            "$ref": "#/components/schemas/CarrierAccountLite"
          },
          "companyCarrierAccount": {
            "$ref": "#/components/schemas/CompanyCarrierAccountLite"
          },
          "isPendingConsignment": {
            "type": "boolean"
          },
          "hasPrintedLabels": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ConsignmentTotal": {
        "type": "object",
        "properties": {
          "sellPricesCleared": {
            "type": "boolean"
          },
          "consignmentCarrierSurchargesCostPrice": {
            "type": "number",
            "format": "double"
          },
          "consignmentCarrierSurchargesSellPrice": {
            "type": "number",
            "format": "double"
          },
          "consignmentCarrierSurchargesFuelExemptCostPrice": {
            "type": "number",
            "format": "double"
          },
          "consignmentCarrierSurchargesFuelExemptSellPrice": {
            "type": "number",
            "format": "double"
          },
          "totalConsignmentCarrierSurchargesCostPrice": {
            "type": "number",
            "format": "double"
          },
          "totalConsignmentCarrierSurchargesSellPrice": {
            "type": "number",
            "format": "double"
          },
          "totalSellPrice": {
            "type": "number",
            "format": "double"
          },
          "totalCostPrice": {
            "type": "number",
            "format": "double"
          },
          "totalBaseSellPrice": {
            "type": "number",
            "format": "double"
          },
          "totalBaseCostPrice": {
            "type": "number",
            "format": "double"
          },
          "totalTaxSellPrice": {
            "type": "number",
            "format": "double"
          },
          "totalTaxCostPrice": {
            "type": "number",
            "format": "double"
          },
          "costFuelLevyPrice": {
            "type": "number",
            "format": "double"
          },
          "sellFuelLevyPrice": {
            "type": "number",
            "format": "double"
          },
          "consignmentRouteCostPrice": {
            "type": "number",
            "format": "double"
          },
          "consignmentRouteSellPrice": {
            "type": "number",
            "format": "double"
          },
          "totalCostBeforeTax": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "totalSellBeforeTax": {
            "type": "number",
            "format": "double",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "ConsignmentTrackingHistoryV2": {
        "type": "object",
        "properties": {
          "consignmentTrackingStatus": {
            "$ref": "#/components/schemas/ConsignmentTrackingStatusV2"
          },
          "statusDateLocal": {
            "type": "string",
            "format": "date-time"
          },
          "statusDateUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "carrierStatus": {
            "type": "string",
            "nullable": true
          },
          "carrierStatusDescription": {
            "type": "string",
            "nullable": true
          },
          "createdByUserId": {
            "type": "integer",
            "format": "int32"
          },
          "statusInformation": {
            "type": "string",
            "nullable": true
          },
          "consignmentId": {
            "type": "integer",
            "format": "int32"
          },
          "createdByName": {
            "type": "string",
            "nullable": true
          },
          "statusIsPartial": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "ConsignmentTrackingStatus": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "class": {
            "type": "string",
            "nullable": true
          },
          "shouldTrack": {
            "type": "boolean"
          },
          "consignmentTrackingGroup": {
            "type": "integer",
            "format": "int32"
          },
          "statusIsPartial": {
            "type": "boolean",
            "description": "Indicative of whether items on this consignment are in differing statuses, leading to a \"partial\" overall\r\nstatus on the consignment"
          }
        },
        "additionalProperties": false
      },
      "ConsignmentTrackingStatusV2": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ConsignmentUpdateFailure": {
        "type": "object",
        "properties": {
          "consignmentId": {
            "type": "integer",
            "description": "Consignment ID that failed to update",
            "format": "int32"
          },
          "reason": {
            "type": "string",
            "description": "Reason why the update failed",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Details about a consignment that could not be updated"
      },
      "ConsignmentV2": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "companyId": {
            "type": "integer",
            "format": "int32"
          },
          "company": {
            "$ref": "#/components/schemas/CompanyV2"
          },
          "carrierServiceId": {
            "type": "integer",
            "format": "int32"
          },
          "carrierService": {
            "$ref": "#/components/schemas/CarrierServiceLite"
          },
          "subServiceId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "subService": {
            "$ref": "#/components/schemas/CarrierServiceSubServiceLite"
          },
          "fromCarrierZoneId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "fromCarrierZone": {
            "$ref": "#/components/schemas/ZoneV2"
          },
          "toCarrierZoneId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "toCarrierZone": {
            "$ref": "#/components/schemas/ZoneV2"
          },
          "consignmentNumber": {
            "type": "string",
            "nullable": true
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "createdByUserId": {
            "type": "integer",
            "format": "int32"
          },
          "despatchDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "despatchDateUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "despatchDateLocal": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "eta": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "etaLocal": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "etaUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "fromCompanyLocationId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "fromName": {
            "type": "string",
            "nullable": true
          },
          "fromContact": {
            "type": "string",
            "nullable": true
          },
          "fromPhone": {
            "type": "string",
            "nullable": true
          },
          "fromEmail": {
            "type": "string",
            "nullable": true
          },
          "fromAddressLine1": {
            "type": "string",
            "nullable": true
          },
          "fromAddressLine2": {
            "type": "string",
            "nullable": true
          },
          "fromLocation": {
            "$ref": "#/components/schemas/LocationV2"
          },
          "toLocation": {
            "$ref": "#/components/schemas/LocationV2"
          },
          "toCompanyLocationId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "toName": {
            "type": "string",
            "nullable": true
          },
          "toContact": {
            "type": "string",
            "nullable": true
          },
          "toPhone": {
            "type": "string",
            "nullable": true
          },
          "toEmail": {
            "type": "string",
            "nullable": true
          },
          "toAddressLine1": {
            "type": "string",
            "nullable": true
          },
          "toAddressLine2": {
            "type": "string",
            "nullable": true
          },
          "specialInstructions": {
            "type": "string",
            "nullable": true
          },
          "customerReference": {
            "type": "string",
            "nullable": true
          },
          "customerReference2": {
            "type": "string",
            "nullable": true
          },
          "companyCarrierAccount": {
            "$ref": "#/components/schemas/CompanyCarrierAccountLite"
          },
          "consignmentTotal": {
            "$ref": "#/components/schemas/ConsignmentTotal"
          },
          "totalWeight": {
            "type": "number",
            "format": "double"
          },
          "totalCubic": {
            "type": "number",
            "format": "double"
          },
          "totalVolume": {
            "type": "number",
            "format": "double"
          },
          "heaviestWeight": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "totalItemCount": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "insertedBy": {
            "type": "integer",
            "format": "int32"
          },
          "insertedByUserName": {
            "type": "string",
            "nullable": true
          },
          "permanentPickup": {
            "type": "boolean"
          },
          "distance": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "isHourly": {
            "type": "boolean"
          },
          "isTest": {
            "type": "boolean"
          },
          "consignmentItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsignmentItemV2"
            },
            "nullable": true
          },
          "consignmentCustomStatusId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "isInternational": {
            "type": "boolean"
          },
          "isReturnConsignment": {
            "type": "boolean"
          },
          "internationalFromCity": {
            "type": "string",
            "nullable": true
          },
          "internationalFromPostcode": {
            "type": "string",
            "nullable": true
          },
          "internationalFromProvince": {
            "type": "string",
            "nullable": true
          },
          "fromCountryId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "fromCountry": {
            "$ref": "#/components/schemas/Country"
          },
          "internationalToCity": {
            "type": "string",
            "nullable": true
          },
          "internationalToPostcode": {
            "type": "string",
            "nullable": true
          },
          "internationalToProvince": {
            "type": "string",
            "nullable": true
          },
          "toCountryId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "toCountry": {
            "$ref": "#/components/schemas/Country"
          },
          "carrierCustomFields": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Carrier custom fields, returned when includeCarrierCustomFields=true (or 1) is requested.",
            "nullable": true
          },
          "carrierConsignmentId": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/ConsignmentTrackingStatusV2"
          },
          "manifestId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "bookedDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "completedDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "completedDateUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "attachmentCount": {
            "type": "integer",
            "format": "int32"
          },
          "important": {
            "type": "boolean"
          },
          "carrierName": {
            "type": "string",
            "nullable": true
          },
          "carrierAbbreviation": {
            "type": "string",
            "nullable": true
          },
          "statusHistory": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsignmentTrackingHistoryV2"
            },
            "nullable": true
          },
          "surcharges": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsignmentSurchargeV2"
            },
            "nullable": true
          },
          "trackingPageAccessToken": {
            "type": "string",
            "nullable": true
          },
          "carrierId": {
            "type": "integer",
            "format": "int32"
          },
          "pendingConsignmentIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          },
          "consignmentCustomStatus": {
            "$ref": "#/components/schemas/ConsignmentCustomStatus"
          },
          "staffMemberName": {
            "type": "string",
            "nullable": true
          },
          "consolidatedIntoConsignmentId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "isReceiverAccount": {
            "type": "boolean",
            "nullable": true
          },
          "receiverAccountCode": {
            "type": "string",
            "nullable": true
          },
          "allItemsPrinted": {
            "type": "boolean",
            "readOnly": true
          },
          "desiredDespatchDateUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "desiredDespatchDateLocal": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "initialPricingRouteRequestId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "createRouteRequestId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "consignmentStatusType": {
            "$ref": "#/components/schemas/ConsignmentStatusType"
          },
          "isBenign": {
            "type": "boolean",
            "nullable": true
          },
          "isDgConsignment": {
            "type": "boolean",
            "nullable": true
          },
          "isLimitedQuantityDgConsignment": {
            "type": "boolean",
            "description": "True for a limited-quantity DG consignment; OMITTED otherwise, never sent as false, so no\r\nother response gains a key. A reader treats an absent key as false.",
            "nullable": true
          },
          "manuallyTrack": {
            "type": "boolean",
            "nullable": true
          },
          "canPrintConsignmentLabelsBeforeManifesting": {
            "type": "boolean",
            "nullable": true
          },
          "canPrintItemLabelsBeforeManifesting": {
            "type": "boolean",
            "nullable": true
          },
          "canPrintItems": {
            "type": "boolean",
            "description": "Whether the carrier produces item labels at all (`CarrierEntity.PrintItemLabels`).\r\nNamed to match the sibling DTOs that already carry this flag (`ConsignmentsForList`,\r\n`ActiveConsignmentForList`, `LabelInformation`) rather than the entity property.",
            "nullable": true
          },
          "canManuallyTrackStatuses": {
            "type": "boolean",
            "nullable": true
          },
          "canManuallyTrackAttachments": {
            "type": "boolean",
            "nullable": true
          },
          "questionIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "The questions answered on this consignment — the active `ConsignmentQuestions` rows (BF-313).\r\n<br>\r\nNamed and typed to match Machship.Common.Models.ApiV2Models.Consignments.BaseCreateConsignmentV2.QuestionIds so a caller can echo a\r\nleg straight back on `POST /apiv2/journeys/{id}/update`. Without it the read publishes nothing\r\nabout answers, so a caller cannot restate them and a UI cannot pre-tick them (BF-314).\r\n<br>\r\nNull rather than empty when the consignment has no answers, so the JSON shape of every other\r\nendpoint returning a `ConsignmentV2` is unchanged.\r\n",
            "nullable": true
          },
          "journey": {
            "$ref": "#/components/schemas/JourneyDetails"
          },
          "messagingEnabled": {
            "type": "boolean",
            "description": "Whether two-way messaging is enabled on this consignment. The two arms of the feature gate\r\nread different things, so neither company alone accounts for this value: the product-row\r\narm reads the consignment's own company, Machship.Common.Models.ApiV2Models.Consignments.BaseConsignmentV2.CompanyId, while\r\nthe beta-flag arm reads the caller's session. A broker viewing a customer's consignment\r\ncan therefore see it enabled off their own beta access.\r\n<br>\r\nSet only by the single-consignment `getConsignment` controller action (the\r\nconsignment view-one screen's data source); left null (and omitted,\r\nNullValueHandling.Ignore) on every other endpoint that returns a\r\nMachship.Common.Models.ApiV2Models.Consignments.ConsignmentV2, so this doesn't change their JSON shape.\r\n",
            "nullable": true
          },
          "isActive": {
            "type": "boolean",
            "description": "Whether the consignment is still live. False means it has been deleted.\r\nReturned only on the reads that can include deleted consignments; omitted otherwise.",
            "nullable": true
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "Custom field values keyed by field key. Omitted from the payload when unset.",
            "nullable": true,
            "example": {
              "po_number": "PO-12345",
              "pallet_count": 3,
              "fragile": true,
              "delivery_date": "2026-10-20"
            }
          }
        },
        "additionalProperties": false
      },
      "ConsignmentV2BaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "$ref": "#/components/schemas/ConsignmentV2"
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ConsignmentV2ICollectionBaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsignmentV2"
            },
            "nullable": true
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ConsignmentsForList": {
        "type": "object",
        "properties": {
          "companyId": {
            "type": "integer",
            "format": "int32"
          },
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "consignmentNumber": {
            "type": "string",
            "nullable": true
          },
          "consignmentTrackingStatusId": {
            "type": "integer",
            "format": "int32"
          },
          "manifestId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "consignmentTrackingStatus": {
            "$ref": "#/components/schemas/ConsignmentTrackingStatus"
          },
          "consignmentStatusType": {
            "$ref": "#/components/schemas/ConsignmentStatusType"
          },
          "isBenign": {
            "type": "boolean"
          },
          "manuallyTrack": {
            "type": "boolean"
          },
          "hasNotes": {
            "type": "boolean",
            "nullable": true
          },
          "hasMessages": {
            "type": "boolean",
            "nullable": true
          },
          "totalRows": {
            "type": "integer",
            "format": "int32"
          },
          "heldReconciliation": {
            "type": "boolean"
          },
          "heldInvoicing": {
            "type": "boolean"
          },
          "canManuallyTrackStatuses": {
            "type": "boolean"
          },
          "canManuallyTrackAttachments": {
            "type": "boolean"
          },
          "automaticallyTracksStatuses": {
            "type": "boolean"
          },
          "automaticallyTracksAttachments": {
            "type": "boolean"
          },
          "heldReconciliationUserId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "heldInvoicingUserId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "showDespatchEtaTimes": {
            "type": "boolean"
          },
          "isInternational": {
            "type": "boolean"
          },
          "carrierReceivedCommercialInvoice": {
            "type": "boolean"
          },
          "hasCommercialInvoice": {
            "type": "boolean"
          },
          "isCommercialInvoiceMachshipGenerated": {
            "type": "boolean"
          },
          "fromLocation": {
            "$ref": "#/components/schemas/Location"
          },
          "fromName": {
            "type": "string",
            "nullable": true
          },
          "fromNameAndLocation": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "toLocation": {
            "$ref": "#/components/schemas/Location"
          },
          "toName": {
            "type": "string",
            "nullable": true
          },
          "toNameAndLocation": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "internationalFromCity": {
            "type": "string",
            "nullable": true
          },
          "internationalFromPostcode": {
            "type": "string",
            "nullable": true
          },
          "internationalFromProvince": {
            "type": "string",
            "nullable": true
          },
          "internationalFromAddressLine1": {
            "type": "string",
            "nullable": true
          },
          "internationalFromAddressLine2": {
            "type": "string",
            "nullable": true
          },
          "fromCountryId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "fromCountry": {
            "$ref": "#/components/schemas/Country"
          },
          "internationalToCity": {
            "type": "string",
            "nullable": true
          },
          "internationalToPostcode": {
            "type": "string",
            "nullable": true
          },
          "internationalToProvince": {
            "type": "string",
            "nullable": true
          },
          "internationalToAddressLine1": {
            "type": "string",
            "nullable": true
          },
          "internationalToAddressLine2": {
            "type": "string",
            "nullable": true
          },
          "toCountryId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "toCountry": {
            "$ref": "#/components/schemas/Country"
          },
          "carrierConsignmentId": {
            "type": "string",
            "nullable": true
          },
          "carrierAndServiceName": {
            "type": "string",
            "nullable": true
          },
          "total": {
            "type": "number",
            "format": "double"
          },
          "totalDisplay": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "despatchDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "eta": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "attachmentCount": {
            "type": "integer",
            "format": "int32"
          },
          "canPrintManifest": {
            "type": "boolean"
          },
          "canPrintConsignment": {
            "type": "boolean"
          },
          "canPrintItems": {
            "type": "boolean"
          },
          "canPrintConsignmentLabelsBeforeManifesting": {
            "type": "boolean"
          },
          "canPrintItemLabelsBeforeManifesting": {
            "type": "boolean"
          },
          "customerReference": {
            "type": "string",
            "nullable": true
          },
          "customerReference2": {
            "type": "string",
            "nullable": true
          },
          "important": {
            "type": "boolean"
          },
          "completedDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "createdDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "itemCount": {
            "type": "integer",
            "format": "int32"
          },
          "company": {
            "$ref": "#/components/schemas/CompanyLite"
          },
          "etaOrCompletedDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "isManifestPrinted": {
            "type": "boolean"
          },
          "isItemPrinted": {
            "type": "boolean"
          },
          "isConsignmentPrinted": {
            "type": "boolean"
          },
          "isDangerousGoodsDocumentsPrinted": {
            "type": "boolean"
          },
          "isM041DocumentPrinted": {
            "type": "boolean"
          },
          "isDgConsignment": {
            "type": "boolean",
            "nullable": true
          },
          "isLimitedQuantityDgConsignment": {
            "type": "boolean",
            "nullable": true
          },
          "distance": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "isHourly": {
            "type": "boolean"
          },
          "isTest": {
            "type": "boolean"
          },
          "consignmentSubDgClassTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsignmentSubDgClassTypes"
            },
            "nullable": true
          },
          "dgClassTypeAndSubClassTypeForConsignment": {
            "type": "string",
            "nullable": true
          },
          "carrier": {
            "$ref": "#/components/schemas/CarrierLite"
          },
          "carrierService": {
            "$ref": "#/components/schemas/CarrierServiceLite"
          },
          "companyCarrierAccount": {
            "$ref": "#/components/schemas/CompanyCarrierAccountLite"
          },
          "consignmentCustomStatusId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "consignmentCustomStatus": {
            "$ref": "#/components/schemas/ConsignmentCustomStatus"
          },
          "staffMemberName": {
            "type": "string",
            "nullable": true
          },
          "tags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TagForRow"
            },
            "description": "The tags on this consignment that the requesting user may see. Populated after the grid\r\nquery by `TagRetrievalService.SetTagsOnEntitiesAsync`, never selected by the query itself.",
            "nullable": true
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "The row's custom field values (spec §12.1), set after the grid query by `ICustomFieldGridService.HydrateAsync`.\r\nNull until populated and JSON-omitted while it is.",
            "nullable": true,
            "example": {
              "po_number": "PO-12345",
              "pallet_count": 3,
              "fragile": true,
              "delivery_date": "2026-10-20"
            }
          }
        },
        "additionalProperties": false
      },
      "ConsignmentsForListGridDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsignmentsForList"
            },
            "nullable": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          },
          "totalItems": {
            "type": "integer",
            "format": "int32"
          },
          "startIndex": {
            "type": "integer",
            "format": "int32"
          },
          "retrievalSize": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "ConsignmentsForListWithPendingConsignmentIds": {
        "type": "object",
        "properties": {
          "companyId": {
            "type": "integer",
            "format": "int32"
          },
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "consignmentNumber": {
            "type": "string",
            "nullable": true
          },
          "consignmentTrackingStatusId": {
            "type": "integer",
            "format": "int32"
          },
          "manifestId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "consignmentTrackingStatus": {
            "$ref": "#/components/schemas/ConsignmentTrackingStatus"
          },
          "consignmentStatusType": {
            "$ref": "#/components/schemas/ConsignmentStatusType"
          },
          "isBenign": {
            "type": "boolean"
          },
          "manuallyTrack": {
            "type": "boolean"
          },
          "hasNotes": {
            "type": "boolean",
            "nullable": true
          },
          "hasMessages": {
            "type": "boolean",
            "nullable": true
          },
          "totalRows": {
            "type": "integer",
            "format": "int32"
          },
          "heldReconciliation": {
            "type": "boolean"
          },
          "heldInvoicing": {
            "type": "boolean"
          },
          "canManuallyTrackStatuses": {
            "type": "boolean"
          },
          "canManuallyTrackAttachments": {
            "type": "boolean"
          },
          "automaticallyTracksStatuses": {
            "type": "boolean"
          },
          "automaticallyTracksAttachments": {
            "type": "boolean"
          },
          "heldReconciliationUserId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "heldInvoicingUserId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "showDespatchEtaTimes": {
            "type": "boolean"
          },
          "isInternational": {
            "type": "boolean"
          },
          "carrierReceivedCommercialInvoice": {
            "type": "boolean"
          },
          "hasCommercialInvoice": {
            "type": "boolean"
          },
          "isCommercialInvoiceMachshipGenerated": {
            "type": "boolean"
          },
          "fromLocation": {
            "$ref": "#/components/schemas/Location"
          },
          "fromName": {
            "type": "string",
            "nullable": true
          },
          "fromNameAndLocation": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "toLocation": {
            "$ref": "#/components/schemas/Location"
          },
          "toName": {
            "type": "string",
            "nullable": true
          },
          "toNameAndLocation": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "internationalFromCity": {
            "type": "string",
            "nullable": true
          },
          "internationalFromPostcode": {
            "type": "string",
            "nullable": true
          },
          "internationalFromProvince": {
            "type": "string",
            "nullable": true
          },
          "internationalFromAddressLine1": {
            "type": "string",
            "nullable": true
          },
          "internationalFromAddressLine2": {
            "type": "string",
            "nullable": true
          },
          "fromCountryId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "fromCountry": {
            "$ref": "#/components/schemas/Country"
          },
          "internationalToCity": {
            "type": "string",
            "nullable": true
          },
          "internationalToPostcode": {
            "type": "string",
            "nullable": true
          },
          "internationalToProvince": {
            "type": "string",
            "nullable": true
          },
          "internationalToAddressLine1": {
            "type": "string",
            "nullable": true
          },
          "internationalToAddressLine2": {
            "type": "string",
            "nullable": true
          },
          "toCountryId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "toCountry": {
            "$ref": "#/components/schemas/Country"
          },
          "carrierConsignmentId": {
            "type": "string",
            "nullable": true
          },
          "carrierAndServiceName": {
            "type": "string",
            "nullable": true
          },
          "total": {
            "type": "number",
            "format": "double"
          },
          "totalDisplay": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "despatchDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "eta": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "attachmentCount": {
            "type": "integer",
            "format": "int32"
          },
          "canPrintManifest": {
            "type": "boolean"
          },
          "canPrintConsignment": {
            "type": "boolean"
          },
          "canPrintItems": {
            "type": "boolean"
          },
          "canPrintConsignmentLabelsBeforeManifesting": {
            "type": "boolean"
          },
          "canPrintItemLabelsBeforeManifesting": {
            "type": "boolean"
          },
          "customerReference": {
            "type": "string",
            "nullable": true
          },
          "customerReference2": {
            "type": "string",
            "nullable": true
          },
          "important": {
            "type": "boolean"
          },
          "completedDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "createdDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "itemCount": {
            "type": "integer",
            "format": "int32"
          },
          "company": {
            "$ref": "#/components/schemas/CompanyLite"
          },
          "etaOrCompletedDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "isManifestPrinted": {
            "type": "boolean"
          },
          "isItemPrinted": {
            "type": "boolean"
          },
          "isConsignmentPrinted": {
            "type": "boolean"
          },
          "isDangerousGoodsDocumentsPrinted": {
            "type": "boolean"
          },
          "isM041DocumentPrinted": {
            "type": "boolean"
          },
          "isDgConsignment": {
            "type": "boolean",
            "nullable": true
          },
          "isLimitedQuantityDgConsignment": {
            "type": "boolean",
            "nullable": true
          },
          "distance": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "isHourly": {
            "type": "boolean"
          },
          "isTest": {
            "type": "boolean"
          },
          "consignmentSubDgClassTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsignmentSubDgClassTypes"
            },
            "nullable": true
          },
          "dgClassTypeAndSubClassTypeForConsignment": {
            "type": "string",
            "nullable": true
          },
          "carrier": {
            "$ref": "#/components/schemas/CarrierLite"
          },
          "carrierService": {
            "$ref": "#/components/schemas/CarrierServiceLite"
          },
          "companyCarrierAccount": {
            "$ref": "#/components/schemas/CompanyCarrierAccountLite"
          },
          "consignmentCustomStatusId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "consignmentCustomStatus": {
            "$ref": "#/components/schemas/ConsignmentCustomStatus"
          },
          "staffMemberName": {
            "type": "string",
            "nullable": true
          },
          "tags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TagForRow"
            },
            "description": "The tags on this consignment that the requesting user may see. Populated after the grid\r\nquery by `TagRetrievalService.SetTagsOnEntitiesAsync`, never selected by the query itself.",
            "nullable": true
          },
          "trackingPageAccessToken": {
            "type": "string",
            "nullable": true
          },
          "pendingConsignmentIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          },
          "consignmentTrackingHistories": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsignmentTrackingHistoryV2"
            },
            "nullable": true
          },
          "notes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SimpleNoteWithCreateData"
            },
            "nullable": true
          },
          "consignmentReconciliationData": {
            "$ref": "#/components/schemas/ConsignmentReconciliationData"
          },
          "consolidatedIntoConsignmentId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "isReceiverAccount": {
            "type": "boolean",
            "nullable": true
          },
          "receiverAccountCode": {
            "type": "string",
            "nullable": true
          },
          "desiredDespatchDateUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "desiredDespatchDateLocal": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "The row's custom field values (spec §12.1), set after the grid query by `ICustomFieldGridService.HydrateAsync`.\r\nNull until populated and JSON-omitted while it is.",
            "nullable": true,
            "example": {
              "po_number": "PO-12345",
              "pallet_count": 3,
              "fragile": true,
              "delivery_date": "2026-10-20"
            }
          }
        },
        "additionalProperties": false
      },
      "ConsignmentsForListWithPendingConsignmentIdsGridDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsignmentsForListWithPendingConsignmentIds"
            },
            "nullable": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          },
          "totalItems": {
            "type": "integer",
            "format": "int32"
          },
          "startIndex": {
            "type": "integer",
            "format": "int32"
          },
          "retrievalSize": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "ConsolidatedAddOnV2": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "outcome": {
            "type": "string",
            "description": "Merged, RequiresConfirmation or Refused.",
            "nullable": true
          },
          "reason": {
            "type": "string",
            "description": "Why the group was refused, or what the operator has to check. Null for a clean merge.",
            "nullable": true
          },
          "inputs": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/JToken"
            },
            "description": "The merged declaration. On the preview it is the provider's proposal. On commit it is\r\nwhat the operator wants recorded, which may differ from the proposal.",
            "nullable": true
          },
          "inputSchema": {
            "description": "The add-on's input schema, so a client can render Machship.Common.Models.ApiV2Models.AddOns.ConsolidatedAddOnV2.Inputs as a form for the\r\noperator to correct. The same document the consignments were quoted against.",
            "nullable": true
          },
          "carriedByCount": {
            "type": "integer",
            "description": "How many consignments in the group carry this add-on.",
            "format": "int32"
          },
          "isConfirmed": {
            "type": "boolean",
            "description": "Set by the client on commit to say the operator has checked Machship.Common.Models.ApiV2Models.AddOns.ConsolidatedAddOnV2.Inputs.\r\nRequired before a group whose outcome is RequiresConfirmation can be consolidated."
          },
          "refusalKind": {
            "type": "string",
            "description": "A short, fixed label for why a group was refused, for logs and analytics. Server-only.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "One add-on carried by a group of consignments being consolidated, and what happens to it.\r\nBF-608."
      },
      "ConsolidatedConsignment": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "uniqueIdentifier": {
            "type": "string",
            "description": "This is used when new consignments are being created and run through the consolidation engine - having a globally\r\nunique ID means we can match the consolidation result back up with the request",
            "format": "uuid"
          },
          "consignmentNumber": {
            "type": "string",
            "nullable": true
          },
          "isPendingConsignment": {
            "type": "boolean"
          },
          "despatchDateLocal": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "despatchDateUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dgsDeclared": {
            "type": "boolean"
          },
          "originalUnmanifestedConsignments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsignmentToConsolidate"
            },
            "nullable": true
          },
          "originalPendingConsignments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsignmentToConsolidate"
            },
            "nullable": true
          },
          "originalConsignments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsignmentToConsolidate"
            },
            "nullable": true,
            "readOnly": true
          },
          "fromCompanyLocationId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "fromAddress": {
            "$ref": "#/components/schemas/Address"
          },
          "toCompanyLocationId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "toAddress": {
            "$ref": "#/components/schemas/Address"
          },
          "carrier": {
            "$ref": "#/components/schemas/CarrierLite"
          },
          "account": {
            "$ref": "#/components/schemas/CarrierAccountLite"
          },
          "service": {
            "$ref": "#/components/schemas/CarrierServiceLite"
          },
          "companyCarrierAccount": {
            "$ref": "#/components/schemas/CompanyCarrierAccountLite"
          },
          "customerReferenceOne": {
            "type": "string",
            "nullable": true
          },
          "customerReferenceTwo": {
            "type": "string",
            "nullable": true
          },
          "staffMemberName": {
            "type": "string",
            "nullable": true
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreateConsignmentItemComplexV2"
            },
            "nullable": true
          },
          "companyId": {
            "type": "integer",
            "format": "int32"
          },
          "specialInstructions": {
            "type": "string",
            "nullable": true
          },
          "receiverAccountCode": {
            "type": "string",
            "nullable": true
          },
          "receiverAccountId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "isReceiverAccount": {
            "type": "boolean",
            "nullable": true
          },
          "sendingTrackingEmail": {
            "type": "boolean",
            "description": "Set this to true if you would like to send a tracking email to the receiver email address once this consignment is manifested"
          },
          "isTest": {
            "type": "boolean",
            "description": "When true then the consignment is never going to be sent to the carrier and exists in MachShip purely\r\nto test"
          },
          "printerToken": {
            "type": "string",
            "nullable": true
          },
          "questionIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          },
          "customValues": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomValue"
            },
            "nullable": true
          },
          "isInternational": {
            "type": "boolean"
          },
          "internationalFromCity": {
            "type": "string",
            "nullable": true
          },
          "internationalFromProvince": {
            "type": "string",
            "nullable": true
          },
          "internationalFromPostcode": {
            "type": "string",
            "nullable": true
          },
          "fromCountry": {
            "$ref": "#/components/schemas/Country"
          },
          "fromCountryId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "internationalToCity": {
            "type": "string",
            "nullable": true
          },
          "internationalToProvince": {
            "type": "string",
            "nullable": true
          },
          "internationalToPostcode": {
            "type": "string",
            "nullable": true
          },
          "toCountry": {
            "$ref": "#/components/schemas/Country"
          },
          "toCountryId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "isLimitedQuantityDgConsignment": {
            "type": "boolean"
          },
          "addOns": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsolidatedAddOnV2"
            },
            "description": "The add-ons the consignments in this group carry, and what consolidating does to each.\r\nBF-608.",
            "nullable": true
          },
          "mergedAddOnDeclarations": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "additionalProperties": {
                "$ref": "#/components/schemas/JToken"
              }
            },
            "description": "The merged declarations to record on the consolidated consignment, keyed by add-on code.\r\nServer-only, set when the merge was accepted.",
            "nullable": true
          },
          "mergedAddOnLineItemSelections": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "The add-on lines to keep on the consolidated consignment, keyed by add-on code.\r\nServer-only, set beside Machship.Common.Models.Consolidation.ConsolidatedConsignment.MergedAddOnDeclarations.",
            "nullable": true
          },
          "correctedAddOnCodes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The add-on codes whose merged inputs an operator changed before committing. Server-only,\r\nread to report the correction once the consolidation has gone ahead.",
            "nullable": true
          },
          "addOnGroupSize": {
            "type": "integer",
            "description": "How many consignments the add-on merge counted in this group. Server-only, for the\r\nanalytics events reported once the consolidation has gone ahead.",
            "format": "int32"
          },
          "autoConsolidationCandidateIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "When set, auto-consolidation may only consolidate onto the unmanifested consignments with these ids.\r\nNull means no restriction. Server-only, never bound from or written to JSON.",
            "nullable": true
          },
          "absorbedCustomFields": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": {
                "$ref": "#/components/schemas/JToken"
              }
            },
            "description": "Auto-consolidation only: the custom field values of each queued consignment folded onto this one, in file\r\norder. Merged into the survivor's values after them. Server-only, never bound from or written to JSON; manual\r\nconsolidation clears it at entry.",
            "nullable": true
          },
          "payloadItems": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreateConsignmentItemComplexV2"
            },
            "description": "Auto-consolidation only: the queued payload's item objects folded onto Machship.Common.Models.Consolidation.ConsolidatedConsignment.Items, by reference.\r\nMembership, never an item id, marks an item whose custom field values travel in its own maps (a payload\r\nitem may carry a client id equal to one of this consignment's items). Server-only, never bound from or\r\nwritten to JSON; manual consolidation clears it at entry.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Consolidation": {
        "type": "object",
        "properties": {
          "companyId": {
            "type": "integer",
            "description": "The Machship Company ID that consolidation should / has been performed against",
            "format": "int32"
          },
          "consignments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsolidatedConsignment"
            },
            "description": "The consolidated consignments and their details",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ConsolidationDefaultRouteSelection": {
        "enum": [
          0,
          1
        ],
        "type": "integer",
        "description": "0 = Cheapest, 1 = Fastest",
        "format": "int32"
      },
      "ConsolidationErrorHandling": {
        "enum": [
          0,
          1
        ],
        "type": "integer",
        "description": "0 = DoNotConsolidateOnAnyError, 1 = ConsolidateValidConsignments",
        "format": "int32"
      },
      "ConsolidationOptions": {
        "type": "object",
        "properties": {
          "doNotConsolidate": {
            "type": "boolean",
            "description": "Set this flag to true when you do not want to consolidate, rather you just want the consignments to be returned to be abl\r\nto perform a bulk update"
          },
          "companyId": {
            "type": "integer",
            "description": "The Machship Company ID that consolidation should be performed for - if omitted it will be performed against the company\r\nof the user performing consolidation",
            "format": "int32",
            "nullable": true
          },
          "consolidationTarget": {
            "$ref": "#/components/schemas/ConsolidationTarget"
          },
          "unmanifestedConsignmentIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Optional - list of unmanifested consignment IDs to attempt to consolidate. Will not be considered if Machship.Common.Models.Consolidation.ConsolidationOptions.ConsolidationTarget is set to Machship.Common.Models.Consolidation.Enums.ConsolidationTarget.Pending.\r\nIf omitted all unmanifested consignments will be used to attempt consolidation.",
            "nullable": true
          },
          "pendingConsignmentIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Optional - list of pending consignment IDs to attempt to consolidate. Will not be considered if Machship.Common.Models.Consolidation.ConsolidationOptions.ConsolidationTarget is set to Machship.Common.Models.Consolidation.Enums.ConsolidationTarget.Unmanifested.\r\nIf omitted all pending consignments will be used to attempt consolidation.",
            "nullable": true
          },
          "groupByCarrier": {
            "type": "boolean",
            "description": "Whether the carrier will be considered when consolidating consignments"
          },
          "groupByService": {
            "type": "boolean",
            "description": "Whether the service will be considered when consolidating consignments (only relevant when Machship.Common.Models.Consolidation.ConsolidationOptions.GroupByCarrier is also set to true)"
          },
          "groupByReferenceOne": {
            "type": "boolean",
            "description": "Whether the first customer reference be used when grouping consignments for consolidation"
          },
          "groupByReferenceTwo": {
            "type": "boolean",
            "description": "Whether the second customer reference be used when grouping consignments for consolidation"
          },
          "groupByDespatchDate": {
            "type": "boolean",
            "description": "Whether the despatch date be used when grouping consignments for consolidation"
          },
          "defaultRouteSelection": {
            "$ref": "#/components/schemas/ConsolidationDefaultRouteSelection"
          },
          "errorHandling": {
            "$ref": "#/components/schemas/ConsolidationErrorHandling"
          },
          "preventFutureDateConsoldation": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "ConsolidationRequest": {
        "type": "object",
        "properties": {
          "grouping": {
            "$ref": "#/components/schemas/Consolidation"
          },
          "options": {
            "$ref": "#/components/schemas/ConsolidationOptions"
          }
        },
        "additionalProperties": false
      },
      "ConsolidationResults": {
        "type": "object",
        "properties": {
          "companyId": {
            "type": "integer",
            "description": "The Machship Company ID that consolidation should / has been performed against",
            "format": "int32"
          },
          "consignments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsolidatedConsignment"
            },
            "description": "The consolidated consignments and their details",
            "nullable": true
          },
          "consolidationPerformed": {
            "type": "boolean",
            "description": "Whether or not consolidation has been performed and saved or if these results are merely indicative of\r\nwhat will occur"
          },
          "containsPendingConsignments": {
            "type": "boolean",
            "description": "Does the consolidation include any consignments that were pending consignments",
            "readOnly": true
          },
          "containsUnmanifestedConsignments": {
            "type": "boolean",
            "description": "Does the consolidation include any consignments that were unmanifested (not pending) consignments",
            "readOnly": true
          },
          "validationResults": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResult"
            },
            "description": "A list of validation results from the consolidation process",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "The results of consolidation, either to review consolidation before actually performing it\r\nor the results of consolidation that has actually been performed"
      },
      "ConsolidationResultsBaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "$ref": "#/components/schemas/ConsolidationResults"
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ConsolidationTarget": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "description": "Which type of consignments to target for consolidation0 = Unmanifested, 1 = Pending, 2 = Both",
        "format": "int32"
      },
      "ContainerType": {
        "enum": [
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          11
        ],
        "type": "integer",
        "description": "1 = Drum, 2 = Carton, 3 = IBC, 4 = Pail, 5 = DemountableTank, 6 = Bottle, 7 = PressureDrums, 8 = Tubes, 9 = MEGCs, 10 = Aerosol, 11 = Bag",
        "format": "int32"
      },
      "Country": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "code2": {
            "type": "string",
            "nullable": true
          },
          "code3": {
            "type": "string",
            "nullable": true
          },
          "numeric": {
            "type": "string",
            "nullable": true
          },
          "currencyCode": {
            "type": "string",
            "nullable": true
          },
          "taxPercentage": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "displayName": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "CountryType": {
        "enum": [
          1,
          2,
          3
        ],
        "type": "integer",
        "description": "1 = Australia, 2 = NewZealand, 3 = International",
        "format": "int32"
      },
      "CreateConsignmentCombinedItemV2": {
        "type": "object",
        "properties": {
          "totalHeight": {
            "type": "number",
            "description": "Total height in cm of the combined item",
            "format": "double",
            "nullable": true
          },
          "totalLength": {
            "type": "number",
            "description": "Total length in cm of the combined item",
            "format": "double",
            "nullable": true
          },
          "totalWidth": {
            "type": "number",
            "description": "Total width in cm of the combined item",
            "format": "double",
            "nullable": true
          },
          "totalWeight": {
            "type": "number",
            "description": "Total weight in kg of the combined item",
            "format": "double",
            "nullable": true
          },
          "heaviestIndividualItem": {
            "type": "number",
            "description": "Weight in kg of the heaviest individual item that comprises the combined item",
            "format": "double",
            "nullable": true
          },
          "numberOfPieces": {
            "type": "integer",
            "description": "Number of individual pieces that comprise the combined item",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateConsignmentCombinedLoadSizeItemV2": {
        "type": "object",
        "properties": {
          "length": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "height": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "weight": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "width": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateConsignmentComplexItemsV2": {
        "required": [
          "items"
        ],
        "type": "object",
        "properties": {
          "companyId": {
            "type": "integer",
            "description": "An (optional) Machship ID of a company. When supplied the routes will be those of the company specified, when left\r\nblank they will be routes for the company associated with the authorised user.",
            "format": "int32",
            "nullable": true
          },
          "despatchDateTimeUtc": {
            "type": "string",
            "description": "Optional: The UTC despatch datetime that was provided in the route. If the DespatchDateTimeLocal is provided, this does not need to be set. If no time is set, it will default to NOW (UTC)",
            "format": "date-time",
            "nullable": true
          },
          "despatchDateTimeLocal": {
            "type": "string",
            "description": "Optional: The local despatch datetime that was provided in the route. This datetime must be local to the pickup location. If the DespatchDateTimeUtc is provided, this does not need to be set. If no time is set, this will default to NOW (pickup local time)",
            "format": "date-time",
            "nullable": true
          },
          "customerReference": {
            "type": "string",
            "nullable": true
          },
          "customerReference2": {
            "type": "string",
            "nullable": true
          },
          "carrierId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "carrierServiceId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "subServiceId": {
            "type": "integer",
            "description": "The Machship ID of the sub-service under the carrier's service (if there are any). If there are sub-services and this field is left blank,\r\nthe default will be selected",
            "format": "int32",
            "nullable": true
          },
          "carrierAccountId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "companyCarrierAccountId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "defaultRouteSelection": {
            "$ref": "#/components/schemas/ConsolidationDefaultRouteSelection"
          },
          "fromCompanyLocationId": {
            "type": "integer",
            "description": "The Machship Id of the saved company location that you want to use. If this is provided, Machship will link this consignment to your saved location and you do not have to provide the delivery details",
            "format": "int32",
            "nullable": true
          },
          "fromName": {
            "type": "string",
            "nullable": true
          },
          "fromAbbreviation": {
            "type": "string",
            "nullable": true
          },
          "fromContact": {
            "type": "string",
            "nullable": true
          },
          "fromPhone": {
            "type": "string",
            "nullable": true
          },
          "fromEmail": {
            "type": "string",
            "nullable": true
          },
          "fromAddressLine1": {
            "type": "string",
            "nullable": true
          },
          "fromAddressLine2": {
            "type": "string",
            "nullable": true
          },
          "fromLocationId": {
            "type": "integer",
            "description": "The machship ID of the from (pickup) location. Can be left blank if supplying the suburb / postcode instead",
            "format": "int32",
            "nullable": true
          },
          "fromLocation": {
            "$ref": "#/components/schemas/SendLocationV2"
          },
          "toCompanyLocationId": {
            "type": "integer",
            "description": "The Machship Id of the saved company location that you want to use. If this is provided, Machship will link this consignment to your saved location and you do not have to provide the delivery details",
            "format": "int32",
            "nullable": true
          },
          "returnsDepotId": {
            "type": "integer",
            "description": "Optional. The returns drop-off depot the quoted option was priced from — echo the\r\n`returnsDepotId` of the chosen option from the returns quote response. When\r\nsupplied, the consignment's pickup is taken from that depot and any From fields\r\non this request are overridden. Requires `isReturn`.",
            "format": "int32",
            "nullable": true
          },
          "isReturn": {
            "type": "boolean",
            "description": "Optional, default false. Marks this consignment as a customer return, and is\r\nrequired on every return booking. On its own it books a pickup: the From address\r\non this request is the collection point and is left as supplied. Combined with\r\n`returnsDepotId` it books a drop-off and the From is taken from the depot.\r\nRequires the returns-dropoffs feature to be enabled for your account.",
            "default": false
          },
          "toName": {
            "type": "string",
            "nullable": true
          },
          "toAbbreviation": {
            "type": "string",
            "nullable": true
          },
          "toContact": {
            "type": "string",
            "nullable": true
          },
          "toPhone": {
            "type": "string",
            "nullable": true
          },
          "toEmail": {
            "type": "string",
            "nullable": true
          },
          "toAddressLine1": {
            "type": "string",
            "nullable": true
          },
          "toAddressLine2": {
            "type": "string",
            "nullable": true
          },
          "toLocationId": {
            "type": "integer",
            "description": "The machship ID of the to (receiver) location. Can be left blank if supplying the suburb / postcode instead",
            "format": "int32",
            "nullable": true
          },
          "toLocation": {
            "$ref": "#/components/schemas/SendLocationV2"
          },
          "specialInstructions": {
            "type": "string",
            "nullable": true
          },
          "questionIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "A collection of Machship IDs corresponding to questions who's result is true",
            "nullable": true
          },
          "receiverAccountCode": {
            "type": "string",
            "nullable": true
          },
          "receiverAccountId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "staffMemberName": {
            "type": "string",
            "nullable": true
          },
          "previousConsignmentId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "parentConsignmentId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "electiveSurchargeIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          },
          "consignmentOptions": {
            "type": "string",
            "nullable": true
          },
          "initialPricingRouteRequestId": {
            "type": "string",
            "description": "Optional: The route request ID from the initial pricing/route search performed in the UI.\r\nThis is used for tracing which route request the user was viewing when they created the consignment.",
            "format": "uuid",
            "nullable": true
          },
          "sendingTrackingEmail": {
            "type": "boolean",
            "description": "Set this to true if you would like to send a tracking email to the receiver email address once this consignment is manifested"
          },
          "dgsDeclaration": {
            "type": "boolean",
            "description": "This must be set to true if the consignment contains Dangerous Goods. If this consignment does not have Dangerous Goods, this must be set to false. Note this flag only needs to be set if you are setup to consign Dangerous Goods through Machship",
            "nullable": true
          },
          "customValues": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomValue"
            },
            "nullable": true
          },
          "linkedPendingConsignmentIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Optional list of Machship Pending Consignment ID(s) to link to this consignment - these pending consignment(s) will be linked to\r\nthis consignment and effectively be deleted from Machship",
            "nullable": true
          },
          "printerToken": {
            "type": "string",
            "nullable": true
          },
          "carrierIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "The (optional) listing of Machship Carrier IDs to restrict the returning routes for. When left blank all carriers\r\nyou have available will be queried for routes. Only used if CarrierId is not specified",
            "nullable": true
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreateConsignmentItemComplexV2"
            },
            "description": "A collection of the items being sent"
          },
          "isInternational": {
            "type": "boolean",
            "description": "Flag to indicate if this consignment is international."
          },
          "internationalFromCity": {
            "type": "string",
            "description": "International from city.",
            "nullable": true
          },
          "internationalFromPostcode": {
            "type": "string",
            "description": "International from postcode.",
            "nullable": true
          },
          "internationalFromProvince": {
            "type": "string",
            "description": "International from province.",
            "nullable": true
          },
          "fromCountryId": {
            "type": "integer",
            "description": "MachShip assigned ID of the country of origin.",
            "format": "int32",
            "nullable": true
          },
          "fromCountryCode": {
            "type": "string",
            "description": "Two or three letter ISO code of the country of origin.",
            "nullable": true
          },
          "fromCountry": {
            "$ref": "#/components/schemas/Country"
          },
          "internationalToCity": {
            "type": "string",
            "description": "International to city.",
            "nullable": true
          },
          "internationalToPostcode": {
            "type": "string",
            "description": "International to postcode.",
            "nullable": true
          },
          "internationalToProvince": {
            "type": "string",
            "description": "International to province.",
            "nullable": true
          },
          "toCountryId": {
            "type": "integer",
            "description": "MachShip assigned ID of the destination country.",
            "format": "int32",
            "nullable": true
          },
          "toCountryCode": {
            "type": "string",
            "description": "Two or three letter ISO code of the destination country.",
            "nullable": true
          },
          "toCountry": {
            "$ref": "#/components/schemas/Country"
          },
          "disableAutoConsolidation": {
            "type": "boolean",
            "description": "If set to true, this consignment will not be automatically consolidated with other consignments",
            "nullable": true
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "Custom field values keyed by field key. Omitted from the payload when unset.",
            "nullable": true,
            "example": {
              "po_number": "PO-12345",
              "pallet_count": 3,
              "fragile": true,
              "delivery_date": "2026-10-20"
            }
          }
        },
        "additionalProperties": false
      },
      "CreateConsignmentComplexItemsV2BaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "$ref": "#/components/schemas/CreateConsignmentComplexItemsV2"
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateConsignmentExistingV2": {
        "required": [
          "carrierAccountId",
          "carrierConsignmentId",
          "carrierId",
          "carrierServiceId",
          "items",
          "statusId"
        ],
        "type": "object",
        "properties": {
          "companyId": {
            "type": "integer",
            "description": "An (optional) Machship ID of a company. When supplied the routes will be those of the company specified, when left\r\nblank they will be routes for the company associated with the authorised user.",
            "format": "int32",
            "nullable": true
          },
          "despatchDateTimeUtc": {
            "type": "string",
            "description": "Optional: The UTC despatch datetime that was provided in the route. If the DespatchDateTimeLocal is provided, this does not need to be set. If no time is set, it will default to NOW (UTC)",
            "format": "date-time",
            "nullable": true
          },
          "despatchDateTimeLocal": {
            "type": "string",
            "description": "Optional: The local despatch datetime that was provided in the route. This datetime must be local to the pickup location. If the DespatchDateTimeUtc is provided, this does not need to be set. If no time is set, this will default to NOW (pickup local time)",
            "format": "date-time",
            "nullable": true
          },
          "customerReference": {
            "type": "string",
            "nullable": true
          },
          "customerReference2": {
            "type": "string",
            "nullable": true
          },
          "carrierId": {
            "type": "integer",
            "format": "int32"
          },
          "carrierServiceId": {
            "type": "integer",
            "format": "int32"
          },
          "subServiceId": {
            "type": "integer",
            "description": "The Machship ID of the sub-service under the carrier's service (if there are any). If there are sub-services and this field is left blank,\r\nthe default will be selected",
            "format": "int32",
            "nullable": true
          },
          "carrierAccountId": {
            "type": "integer",
            "format": "int32"
          },
          "companyCarrierAccountId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "defaultRouteSelection": {
            "$ref": "#/components/schemas/ConsolidationDefaultRouteSelection"
          },
          "fromCompanyLocationId": {
            "type": "integer",
            "description": "The Machship Id of the saved company location that you want to use. If this is provided, Machship will link this consignment to your saved location and you do not have to provide the delivery details",
            "format": "int32",
            "nullable": true
          },
          "fromName": {
            "type": "string",
            "nullable": true
          },
          "fromAbbreviation": {
            "type": "string",
            "nullable": true
          },
          "fromContact": {
            "type": "string",
            "nullable": true
          },
          "fromPhone": {
            "type": "string",
            "nullable": true
          },
          "fromEmail": {
            "type": "string",
            "nullable": true
          },
          "fromAddressLine1": {
            "type": "string",
            "nullable": true
          },
          "fromAddressLine2": {
            "type": "string",
            "nullable": true
          },
          "fromLocationId": {
            "type": "integer",
            "description": "The machship ID of the from (pickup) location. Can be left blank if supplying the suburb / postcode instead",
            "format": "int32",
            "nullable": true
          },
          "fromLocation": {
            "$ref": "#/components/schemas/SendLocationV2"
          },
          "toCompanyLocationId": {
            "type": "integer",
            "description": "The Machship Id of the saved company location that you want to use. If this is provided, Machship will link this consignment to your saved location and you do not have to provide the delivery details",
            "format": "int32",
            "nullable": true
          },
          "returnsDepotId": {
            "type": "integer",
            "description": "Optional. The returns drop-off depot the quoted option was priced from — echo the\r\n`returnsDepotId` of the chosen option from the returns quote response. When\r\nsupplied, the consignment's pickup is taken from that depot and any From fields\r\non this request are overridden. Requires `isReturn`.",
            "format": "int32",
            "nullable": true
          },
          "isReturn": {
            "type": "boolean",
            "description": "Optional, default false. Marks this consignment as a customer return, and is\r\nrequired on every return booking. On its own it books a pickup: the From address\r\non this request is the collection point and is left as supplied. Combined with\r\n`returnsDepotId` it books a drop-off and the From is taken from the depot.\r\nRequires the returns-dropoffs feature to be enabled for your account.",
            "default": false
          },
          "toName": {
            "type": "string",
            "nullable": true
          },
          "toAbbreviation": {
            "type": "string",
            "nullable": true
          },
          "toContact": {
            "type": "string",
            "nullable": true
          },
          "toPhone": {
            "type": "string",
            "nullable": true
          },
          "toEmail": {
            "type": "string",
            "nullable": true
          },
          "toAddressLine1": {
            "type": "string",
            "nullable": true
          },
          "toAddressLine2": {
            "type": "string",
            "nullable": true
          },
          "toLocationId": {
            "type": "integer",
            "description": "The machship ID of the to (receiver) location. Can be left blank if supplying the suburb / postcode instead",
            "format": "int32",
            "nullable": true
          },
          "toLocation": {
            "$ref": "#/components/schemas/SendLocationV2"
          },
          "specialInstructions": {
            "type": "string",
            "nullable": true
          },
          "questionIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "A collection of Machship IDs corresponding to questions who's result is true",
            "nullable": true
          },
          "receiverAccountCode": {
            "type": "string",
            "nullable": true
          },
          "receiverAccountId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "staffMemberName": {
            "type": "string",
            "nullable": true
          },
          "previousConsignmentId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "parentConsignmentId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "electiveSurchargeIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          },
          "consignmentOptions": {
            "type": "string",
            "nullable": true
          },
          "initialPricingRouteRequestId": {
            "type": "string",
            "description": "Optional: The route request ID from the initial pricing/route search performed in the UI.\r\nThis is used for tracing which route request the user was viewing when they created the consignment.",
            "format": "uuid",
            "nullable": true
          },
          "sendingTrackingEmail": {
            "type": "boolean",
            "description": "Set this to true if you would like to send a tracking email to the receiver email address once this consignment is manifested"
          },
          "dgsDeclaration": {
            "type": "boolean",
            "description": "This must be set to true if the consignment contains Dangerous Goods. If this consignment does not have Dangerous Goods, this must be set to false. Note this flag only needs to be set if you are setup to consign Dangerous Goods through Machship",
            "nullable": true
          },
          "customValues": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomValue"
            },
            "nullable": true
          },
          "linkedPendingConsignmentIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Optional list of Machship Pending Consignment ID(s) to link to this consignment - these pending consignment(s) will be linked to\r\nthis consignment and effectively be deleted from Machship",
            "nullable": true
          },
          "printerToken": {
            "type": "string",
            "nullable": true
          },
          "carrierIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "The (optional) listing of Machship Carrier IDs to restrict the returning routes for. When left blank all carriers\r\nyou have available will be queried for routes. Only used if CarrierId is not specified",
            "nullable": true
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreateConsignmentItemComplexV2"
            },
            "description": "A collection of the items being sent"
          },
          "isInternational": {
            "type": "boolean",
            "description": "Flag to indicate if this consignment is international."
          },
          "internationalFromCity": {
            "type": "string",
            "description": "International from city.",
            "nullable": true
          },
          "internationalFromPostcode": {
            "type": "string",
            "description": "International from postcode.",
            "nullable": true
          },
          "internationalFromProvince": {
            "type": "string",
            "description": "International from province.",
            "nullable": true
          },
          "fromCountryId": {
            "type": "integer",
            "description": "MachShip assigned ID of the country of origin.",
            "format": "int32",
            "nullable": true
          },
          "fromCountryCode": {
            "type": "string",
            "description": "Two or three letter ISO code of the country of origin.",
            "nullable": true
          },
          "fromCountry": {
            "$ref": "#/components/schemas/Country"
          },
          "internationalToCity": {
            "type": "string",
            "description": "International to city.",
            "nullable": true
          },
          "internationalToPostcode": {
            "type": "string",
            "description": "International to postcode.",
            "nullable": true
          },
          "internationalToProvince": {
            "type": "string",
            "description": "International to province.",
            "nullable": true
          },
          "toCountryId": {
            "type": "integer",
            "description": "MachShip assigned ID of the destination country.",
            "format": "int32",
            "nullable": true
          },
          "toCountryCode": {
            "type": "string",
            "description": "Two or three letter ISO code of the destination country.",
            "nullable": true
          },
          "toCountry": {
            "$ref": "#/components/schemas/Country"
          },
          "useMachshipPricing": {
            "type": "boolean",
            "description": "Set to true to run through MachShip's routing engine. Prices, surcharges and questions will be set from the price and route. If not route is found, the consignment will be saved with the figures below"
          },
          "statusId": {
            "$ref": "#/components/schemas/TrackingStatus"
          },
          "carrierConsignmentId": {
            "minLength": 1,
            "type": "string",
            "description": "The Carrier Reference for this consignment"
          },
          "completedDate": {
            "type": "string",
            "description": "CompletedDate for the consignment. This should only be set when the consignment is in a completed state",
            "format": "date-time",
            "nullable": true
          },
          "totalSellPrice": {
            "type": "number",
            "format": "double"
          },
          "totalCostPrice": {
            "type": "number",
            "format": "double"
          },
          "totalBaseSellPrice": {
            "type": "number",
            "format": "double"
          },
          "totalBaseCostPrice": {
            "type": "number",
            "format": "double"
          },
          "totalTaxSellPrice": {
            "type": "number",
            "format": "double"
          },
          "totalTaxCostPrice": {
            "type": "number",
            "format": "double"
          },
          "costFuelLevyPrice": {
            "type": "number",
            "format": "double"
          },
          "sellFuelLevyPrice": {
            "type": "number",
            "format": "double"
          },
          "consignmentRouteCostPrice": {
            "type": "number",
            "format": "double"
          },
          "consignmentRouteSellPrice": {
            "type": "number",
            "format": "double"
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "Custom field values keyed by field key. Omitted from the payload when unset.",
            "nullable": true,
            "example": {
              "po_number": "PO-12345",
              "pallet_count": 3,
              "fragile": true,
              "delivery_date": "2026-10-20"
            }
          }
        },
        "additionalProperties": false
      },
      "CreateConsignmentItemComplexV2": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "This is populated IF it is an existing unmanifested consignment's consignment item ID",
            "format": "int32"
          },
          "companyItemId": {
            "type": "integer",
            "description": "Optional: Links this item back up to a saved item in Machship",
            "format": "int32",
            "nullable": true
          },
          "itemType": {
            "$ref": "#/components/schemas/ItemType"
          },
          "name": {
            "type": "string",
            "description": "Name or description of the goods you are sending",
            "nullable": true
          },
          "sku": {
            "type": "string",
            "description": "Optional: the SKU or code of the item you are sending",
            "nullable": true
          },
          "quantity": {
            "type": "integer",
            "description": "Number of items",
            "format": "int32",
            "nullable": true
          },
          "palletSpaces": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "standardItem": {
            "$ref": "#/components/schemas/CreateConsignmentStandardItemV2"
          },
          "combinedItem": {
            "$ref": "#/components/schemas/CreateConsignmentCombinedItemV2"
          },
          "combinedLoadSize": {
            "$ref": "#/components/schemas/CreateConsignmentCombinedLoadSizeItemV2"
          },
          "consignmentItemDgItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreateConsignmentItemDgItemV2"
            },
            "nullable": true
          },
          "consignmentItemReferences": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreateConsignmentItemReferenceV2"
            },
            "nullable": true
          },
          "consignmentItemContents": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreateConsignmentItemContentV2"
            },
            "nullable": true
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "Custom field values keyed by field key. Omitted from the payload when unset.",
            "nullable": true,
            "example": {
              "po_number": "PO-12345",
              "pallet_count": 3,
              "fragile": true,
              "delivery_date": "2026-10-20"
            }
          }
        },
        "additionalProperties": false
      },
      "CreateConsignmentItemContentV2": {
        "required": [
          "description"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Optional id of an existing row to update in place. Omitted when null.",
            "format": "int32",
            "nullable": true
          },
          "description": {
            "minLength": 1,
            "type": "string"
          },
          "reference1": {
            "type": "string",
            "nullable": true
          },
          "reference2": {
            "type": "string",
            "nullable": true
          },
          "reference3": {
            "type": "string",
            "nullable": true
          },
          "quantity": {
            "type": "integer",
            "format": "int32"
          },
          "dollarValue": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "ciMarksAndNumbers": {
            "type": "string",
            "nullable": true
          },
          "harmonizedCode": {
            "type": "string",
            "nullable": true
          },
          "partNumber": {
            "type": "string",
            "nullable": true
          },
          "purpose": {
            "type": "string",
            "nullable": true
          },
          "countryOfManufactureId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "countryOfManufactureCode": {
            "type": "string",
            "nullable": true
          },
          "countryOfManufacture": {
            "$ref": "#/components/schemas/Country"
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "Custom field values keyed by field key. Omitted from the payload when unset.",
            "nullable": true,
            "example": {
              "po_number": "PO-12345",
              "pallet_count": 3,
              "fragile": true,
              "delivery_date": "2026-10-20"
            }
          }
        },
        "additionalProperties": false
      },
      "CreateConsignmentItemDgItemV2": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Optional id of an existing row to update in place. Omitted when null.",
            "format": "int32",
            "nullable": true
          },
          "companyDgItemId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "unNumber": {
            "type": "integer",
            "format": "int32"
          },
          "packingGroup": {
            "$ref": "#/components/schemas/PackingGroup"
          },
          "containerType": {
            "$ref": "#/components/schemas/ContainerType"
          },
          "aggregateQuantity": {
            "type": "number",
            "format": "double"
          },
          "isAggregateQuantityWeight": {
            "type": "boolean"
          },
          "numberOfContainers": {
            "type": "integer",
            "format": "int32"
          },
          "isMarinePollutant": {
            "type": "boolean"
          },
          "isTemperatureControlled": {
            "type": "boolean"
          },
          "isEmptyDgContainer": {
            "type": "boolean"
          },
          "technicalOrChemicalGroupNames": {
            "type": "string",
            "nullable": true
          },
          "dgClassType": {
            "$ref": "#/components/schemas/DgClassType"
          },
          "subDgClassTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DgClassType"
            },
            "nullable": true
          },
          "properShippingName": {
            "type": "string",
            "nullable": true
          },
          "hazchem": {
            "type": "string",
            "nullable": true
          },
          "dgHazchemId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "dgHazchem": {
            "$ref": "#/components/schemas/DgHazchem"
          },
          "flashpoint": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "unNumberInfo": {
            "$ref": "#/components/schemas/DgUnNumberFlat"
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "Custom field values keyed by field key. Omitted from the payload when unset.",
            "nullable": true,
            "example": {
              "po_number": "PO-12345",
              "pallet_count": 3,
              "fragile": true,
              "delivery_date": "2026-10-20"
            }
          }
        },
        "additionalProperties": false
      },
      "CreateConsignmentItemReferenceV2": {
        "type": "object",
        "properties": {
          "printed": {
            "type": "boolean"
          },
          "printedDateUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateConsignmentItemV2": {
        "type": "object",
        "properties": {
          "companyItemId": {
            "type": "integer",
            "description": "Optional: Links this item back up to a saved item in Machship",
            "format": "int32",
            "nullable": true
          },
          "itemType": {
            "$ref": "#/components/schemas/ItemType"
          },
          "name": {
            "type": "string",
            "description": "Name or description of the goods you are sending",
            "nullable": true
          },
          "sku": {
            "type": "string",
            "description": "Optional: the SKU or code of the item you are sending",
            "nullable": true
          },
          "quantity": {
            "type": "integer",
            "description": "Number of items",
            "format": "int32",
            "nullable": true
          },
          "height": {
            "type": "number",
            "description": "Height of the item in cm",
            "format": "double",
            "nullable": true
          },
          "weight": {
            "type": "number",
            "description": "Weight of the item in kg",
            "format": "double",
            "nullable": true
          },
          "length": {
            "type": "number",
            "description": "Length of the item in cm",
            "format": "double",
            "nullable": true
          },
          "width": {
            "type": "number",
            "description": "Width of the item in cm",
            "format": "double",
            "nullable": true
          },
          "palletSpaces": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "Custom field values keyed by field key. Omitted from the payload when unset.",
            "nullable": true,
            "example": {
              "po_number": "PO-12345",
              "pallet_count": 3,
              "fragile": true,
              "delivery_date": "2026-10-20"
            }
          }
        },
        "additionalProperties": false
      },
      "CreateConsignmentResponseConsignmentSurchargeV2": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "costPrice": {
            "type": "number",
            "description": "Cost Price of the surcharge",
            "format": "double"
          },
          "sellPrice": {
            "type": "number",
            "description": "Sell Price of the surcharge",
            "format": "double"
          },
          "quantity": {
            "type": "integer",
            "description": "How many times this surcharge is being applied. Quantity has already been applied to the CostPrice and SellPrice",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "description": "Surcharge Name",
            "nullable": true
          },
          "abbreviation": {
            "type": "string",
            "description": "Surcharge Abbreviation",
            "nullable": true
          },
          "surchargeId": {
            "type": "integer",
            "format": "int32"
          },
          "surcharge": {
            "$ref": "#/components/schemas/SurchargeV2"
          },
          "guid": {
            "type": "string",
            "format": "uuid"
          },
          "selected": {
            "type": "boolean"
          },
          "invoiceItemId": {
            "type": "integer",
            "format": "int32"
          },
          "markupPercentage": {
            "type": "number",
            "format": "double"
          },
          "originalPrice": {
            "type": "number",
            "format": "double"
          },
          "priceType": {
            "type": "integer",
            "format": "int32"
          },
          "percentageOfSellPrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateConsignmentResponseV2": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Machship's Id reference for this consignment. Use this id when interacting via the API",
            "format": "int32"
          },
          "consignmentNumber": {
            "type": "string",
            "description": "Machship's MS Number. This is the human friendly Machship consignment number that is sent to the carrier",
            "nullable": true
          },
          "despatchDateLocal": {
            "type": "string",
            "format": "date-time"
          },
          "despatchDateUtc": {
            "type": "string",
            "format": "date-time"
          },
          "etaLocal": {
            "type": "string",
            "format": "date-time"
          },
          "etaUtc": {
            "type": "string",
            "format": "date-time"
          },
          "carrier": {
            "$ref": "#/components/schemas/CarrierLite"
          },
          "carrierService": {
            "$ref": "#/components/schemas/CarrierServiceLite"
          },
          "companyCarrierAccount": {
            "$ref": "#/components/schemas/CompanyCarrierAccountLite"
          },
          "isTest": {
            "type": "boolean"
          },
          "isInternational": {
            "type": "boolean"
          },
          "carrierConsignmentId": {
            "type": "string",
            "description": "The carrier's reference for this consignment",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/ConsignmentTrackingStatusV2"
          },
          "trackingPageAccessToken": {
            "type": "string",
            "description": "Access Token for this consignment's tracking page.\r\nThis can be used by your customer to track their consignment using the url:\r\nhttps://live.machship.com/public/#/consignments/{TrackingPageAccessToken}",
            "nullable": true
          },
          "consignmentTotal": {
            "$ref": "#/components/schemas/ConsignmentTotal"
          },
          "consignmentHourlyPricing": {
            "$ref": "#/components/schemas/ConsignmentHourlyPricing"
          },
          "consignmentCarrierSurcharges": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreateConsignmentResponseConsignmentSurchargeV2"
            },
            "nullable": true
          },
          "printSettings": {
            "$ref": "#/components/schemas/CarrierPrintSettings"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsignmentItemV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateConsignmentResponseV2BaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "$ref": "#/components/schemas/CreateConsignmentResponseV2"
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateConsignmentStandardItemV2": {
        "type": "object",
        "properties": {
          "height": {
            "type": "number",
            "description": "Height of the item in cm",
            "format": "double",
            "nullable": true
          },
          "weight": {
            "type": "number",
            "description": "Weight of the item in kg",
            "format": "double",
            "nullable": true
          },
          "length": {
            "type": "number",
            "description": "Length of the item in cm",
            "format": "double",
            "nullable": true
          },
          "width": {
            "type": "number",
            "description": "Width of the item in cm",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateConsignmentV2": {
        "required": [
          "items"
        ],
        "type": "object",
        "properties": {
          "companyId": {
            "type": "integer",
            "description": "An (optional) Machship ID of a company. When supplied the routes will be those of the company specified, when left\r\nblank they will be routes for the company associated with the authorised user.",
            "format": "int32",
            "nullable": true
          },
          "despatchDateTimeUtc": {
            "type": "string",
            "description": "Optional: The UTC despatch datetime that was provided in the route. If the DespatchDateTimeLocal is provided, this does not need to be set. If no time is set, it will default to NOW (UTC)",
            "format": "date-time",
            "nullable": true
          },
          "despatchDateTimeLocal": {
            "type": "string",
            "description": "Optional: The local despatch datetime that was provided in the route. This datetime must be local to the pickup location. If the DespatchDateTimeUtc is provided, this does not need to be set. If no time is set, this will default to NOW (pickup local time)",
            "format": "date-time",
            "nullable": true
          },
          "customerReference": {
            "type": "string",
            "nullable": true
          },
          "customerReference2": {
            "type": "string",
            "nullable": true
          },
          "carrierId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "carrierServiceId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "subServiceId": {
            "type": "integer",
            "description": "The Machship ID of the sub-service under the carrier's service (if there are any). If there are sub-services and this field is left blank,\r\nthe default will be selected",
            "format": "int32",
            "nullable": true
          },
          "carrierAccountId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "companyCarrierAccountId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "defaultRouteSelection": {
            "$ref": "#/components/schemas/ConsolidationDefaultRouteSelection"
          },
          "fromCompanyLocationId": {
            "type": "integer",
            "description": "The Machship Id of the saved company location that you want to use. If this is provided, Machship will link this consignment to your saved location and you do not have to provide the delivery details",
            "format": "int32",
            "nullable": true
          },
          "fromName": {
            "type": "string",
            "nullable": true
          },
          "fromAbbreviation": {
            "type": "string",
            "nullable": true
          },
          "fromContact": {
            "type": "string",
            "nullable": true
          },
          "fromPhone": {
            "type": "string",
            "nullable": true
          },
          "fromEmail": {
            "type": "string",
            "nullable": true
          },
          "fromAddressLine1": {
            "type": "string",
            "nullable": true
          },
          "fromAddressLine2": {
            "type": "string",
            "nullable": true
          },
          "fromLocationId": {
            "type": "integer",
            "description": "The machship ID of the from (pickup) location. Can be left blank if supplying the suburb / postcode instead",
            "format": "int32",
            "nullable": true
          },
          "fromLocation": {
            "$ref": "#/components/schemas/SendLocationV2"
          },
          "toCompanyLocationId": {
            "type": "integer",
            "description": "The Machship Id of the saved company location that you want to use. If this is provided, Machship will link this consignment to your saved location and you do not have to provide the delivery details",
            "format": "int32",
            "nullable": true
          },
          "returnsDepotId": {
            "type": "integer",
            "description": "Optional. The returns drop-off depot the quoted option was priced from — echo the\r\n`returnsDepotId` of the chosen option from the returns quote response. When\r\nsupplied, the consignment's pickup is taken from that depot and any From fields\r\non this request are overridden. Requires `isReturn`.",
            "format": "int32",
            "nullable": true
          },
          "isReturn": {
            "type": "boolean",
            "description": "Optional, default false. Marks this consignment as a customer return, and is\r\nrequired on every return booking. On its own it books a pickup: the From address\r\non this request is the collection point and is left as supplied. Combined with\r\n`returnsDepotId` it books a drop-off and the From is taken from the depot.\r\nRequires the returns-dropoffs feature to be enabled for your account.",
            "default": false
          },
          "toName": {
            "type": "string",
            "nullable": true
          },
          "toAbbreviation": {
            "type": "string",
            "nullable": true
          },
          "toContact": {
            "type": "string",
            "nullable": true
          },
          "toPhone": {
            "type": "string",
            "nullable": true
          },
          "toEmail": {
            "type": "string",
            "nullable": true
          },
          "toAddressLine1": {
            "type": "string",
            "nullable": true
          },
          "toAddressLine2": {
            "type": "string",
            "nullable": true
          },
          "toLocationId": {
            "type": "integer",
            "description": "The machship ID of the to (receiver) location. Can be left blank if supplying the suburb / postcode instead",
            "format": "int32",
            "nullable": true
          },
          "toLocation": {
            "$ref": "#/components/schemas/SendLocationV2"
          },
          "specialInstructions": {
            "type": "string",
            "nullable": true
          },
          "questionIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "A collection of Machship IDs corresponding to questions who's result is true",
            "nullable": true
          },
          "receiverAccountCode": {
            "type": "string",
            "nullable": true
          },
          "receiverAccountId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "staffMemberName": {
            "type": "string",
            "nullable": true
          },
          "previousConsignmentId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "parentConsignmentId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "electiveSurchargeIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          },
          "consignmentOptions": {
            "type": "string",
            "nullable": true
          },
          "initialPricingRouteRequestId": {
            "type": "string",
            "description": "Optional: The route request ID from the initial pricing/route search performed in the UI.\r\nThis is used for tracing which route request the user was viewing when they created the consignment.",
            "format": "uuid",
            "nullable": true
          },
          "sendingTrackingEmail": {
            "type": "boolean",
            "description": "Set this to true if you would like to send a tracking email to the receiver email address once this consignment is manifested"
          },
          "customValues": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomValue"
            },
            "nullable": true
          },
          "linkedPendingConsignmentIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Optional list of Machship Pending Consignment ID(s) to link to this consignment - these pending consignment(s) will be linked to\r\nthis consignment and effectively be deleted from Machship",
            "nullable": true
          },
          "dgsDeclaration": {
            "type": "boolean",
            "description": "This must be set to true if the consignment contains Dangerous Goods. If this consignment does not have Dangerous Goods, this must be set to false. Note this flag only needs to be set if you are setup to consign Dangerous Goods through Machship",
            "nullable": true
          },
          "limitedQuantityDgsDeclaration": {
            "type": "boolean",
            "nullable": true
          },
          "printerToken": {
            "type": "string",
            "description": "If this corresponds to a printer token, will automatically print the consignment to the associated printer",
            "nullable": true
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreateConsignmentItemV2"
            },
            "description": "A collection of the items being sent"
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "Custom field values keyed by field key. Omitted from the payload when unset.",
            "nullable": true,
            "example": {
              "po_number": "PO-12345",
              "pallet_count": 3,
              "fragile": true,
              "delivery_date": "2026-10-20"
            }
          }
        },
        "additionalProperties": false
      },
      "CreateIdentityUserAndCompanyLink": {
        "required": [
          "companyId",
          "roles"
        ],
        "type": "object",
        "properties": {
          "companyId": {
            "type": "integer",
            "format": "int32"
          },
          "roles": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            }
          }
        },
        "additionalProperties": false
      },
      "CreateIdentityV2": {
        "required": [
          "displayName",
          "emailAddress",
          "familyName",
          "givenName",
          "identifyingClaim",
          "identityProviderId",
          "organisationId",
          "owningCompanyId"
        ],
        "type": "object",
        "properties": {
          "uniqueId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "givenName": {
            "maxLength": 256,
            "minLength": 1,
            "type": "string"
          },
          "familyName": {
            "maxLength": 256,
            "minLength": 1,
            "type": "string"
          },
          "displayName": {
            "maxLength": 256,
            "minLength": 1,
            "type": "string"
          },
          "emailAddress": {
            "maxLength": 512,
            "minLength": 1,
            "type": "string"
          },
          "identifyingClaim": {
            "maxLength": 256,
            "minLength": 1,
            "type": "string"
          },
          "password": {
            "maxLength": 255,
            "type": "string",
            "nullable": true
          },
          "phone": {
            "maxLength": 100,
            "type": "string",
            "nullable": true
          },
          "businessPhone": {
            "maxLength": 100,
            "type": "string",
            "nullable": true
          },
          "mobile": {
            "maxLength": 100,
            "type": "string",
            "nullable": true
          },
          "position": {
            "maxLength": 255,
            "type": "string",
            "nullable": true
          },
          "notes": {
            "type": "string",
            "nullable": true
          },
          "enableEmailNotifications": {
            "type": "boolean"
          },
          "userType": {
            "$ref": "#/components/schemas/UserType"
          },
          "testModeSetting": {
            "$ref": "#/components/schemas/UserTestModeSetting"
          },
          "organisationId": {
            "type": "integer",
            "format": "int32"
          },
          "identityProviderId": {
            "type": "integer",
            "format": "int32"
          },
          "owningCompanyId": {
            "type": "integer",
            "format": "int32"
          },
          "userAndCompanyLinks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreateIdentityUserAndCompanyLink"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreatePendingConsignmentResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "consignmentNumber": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreatePendingConsignmentResponseBaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "$ref": "#/components/schemas/CreatePendingConsignmentResponse"
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreatePendingConsignmentV2": {
        "type": "object",
        "properties": {
          "companyId": {
            "type": "integer",
            "description": "An (optional) Machship ID of a company. When supplied the routes will be those of the company specified, when left\r\nblank they will be routes for the company associated with the authorised user.",
            "format": "int32",
            "nullable": true
          },
          "despatchDateTimeLocal": {
            "type": "string",
            "description": "Optional: The local despatch datetime that was provided in the route. This datetime must be local to the pickup location. If the DespatchDateTimeUtc is provided, this does not need to be set. If no time is set, this will default to NOW (pickup local time)",
            "format": "date-time",
            "nullable": true
          },
          "customerReference": {
            "type": "string",
            "nullable": true
          },
          "customerReference2": {
            "type": "string",
            "nullable": true
          },
          "carrierConsignmentId": {
            "type": "string",
            "nullable": true
          },
          "carrierId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "carrier": {
            "type": "string",
            "nullable": true
          },
          "carrierServiceId": {
            "type": "integer",
            "description": "Abbreviation of the Carrier that you would like to create a consignment for. This should only be provided if carrier id could not be determined via routing",
            "format": "int32",
            "nullable": true
          },
          "carrierService": {
            "type": "string",
            "description": "Abbreviation of the CarrierService that you would like to create a consignment for. This should only be provided if carrier service id could not be determined via routing",
            "nullable": true
          },
          "carrierAccountId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "carrierAccount": {
            "type": "string",
            "description": "Abbreviation of the CarrierAccount that you would like to create a consignment for. This should only be provided if carrier account id could not be determined via routing",
            "nullable": true
          },
          "companyCarrierAccountId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "companyCarrierAccount": {
            "type": "string",
            "description": "Abbreviation of the CompanyCarrierAccount that you would like to create a consignment for. This should only be provided if company carrier account id could not be determined via routing",
            "nullable": true
          },
          "fromCompanyLocationId": {
            "type": "integer",
            "description": "The Machship Id of the saved company location that you want to use. If this is provided, Machship will link this consignment to your saved location and you do not have to provide the delivery details",
            "format": "int32",
            "nullable": true
          },
          "fromName": {
            "type": "string",
            "nullable": true
          },
          "fromAbbreviation": {
            "type": "string",
            "nullable": true
          },
          "fromContact": {
            "type": "string",
            "nullable": true
          },
          "fromPhone": {
            "type": "string",
            "nullable": true
          },
          "fromEmail": {
            "type": "string",
            "nullable": true
          },
          "fromAddressLine1": {
            "type": "string",
            "nullable": true
          },
          "fromAddressLine2": {
            "type": "string",
            "nullable": true
          },
          "fromLocationId": {
            "type": "integer",
            "description": "The machship ID of the from (pickup) location. Can be left blank if supplying the suburb / postcode instead",
            "format": "int32",
            "nullable": true
          },
          "fromLocation": {
            "$ref": "#/components/schemas/SendLocationV2"
          },
          "toCompanyLocationId": {
            "type": "integer",
            "description": "The Machship Id of the saved company location that you want to use. If this is provided, Machship will link this consignment to your saved location and you do not have to provide the delivery details",
            "format": "int32",
            "nullable": true
          },
          "toName": {
            "type": "string",
            "nullable": true
          },
          "toAbbreviation": {
            "type": "string",
            "nullable": true
          },
          "toContact": {
            "type": "string",
            "nullable": true
          },
          "toPhone": {
            "type": "string",
            "nullable": true
          },
          "toEmail": {
            "type": "string",
            "nullable": true
          },
          "toAddressLine1": {
            "type": "string",
            "nullable": true
          },
          "toAddressLine2": {
            "type": "string",
            "nullable": true
          },
          "toLocationId": {
            "type": "integer",
            "description": "The machship ID of the to (receiver) location. Can be left blank if supplying the suburb / postcode instead",
            "format": "int32",
            "nullable": true
          },
          "toLocation": {
            "$ref": "#/components/schemas/SendLocationV2"
          },
          "specialInstructions": {
            "type": "string",
            "nullable": true
          },
          "printerToken": {
            "type": "string",
            "nullable": true
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PendingConsignmentItemV2"
            },
            "nullable": true
          },
          "receiverAccountCode": {
            "type": "string",
            "nullable": true
          },
          "isReceiverAccount": {
            "type": "boolean",
            "nullable": true
          },
          "questionIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          },
          "staffMemberName": {
            "type": "string",
            "nullable": true
          },
          "sendTrackingEmail": {
            "type": "boolean",
            "nullable": true
          },
          "customValues": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomValue"
            },
            "nullable": true
          },
          "isLimitedQuantityDgConsignment": {
            "type": "boolean"
          },
          "isInternational": {
            "type": "boolean",
            "description": "Flag to indicate if this consignment is international."
          },
          "internationalFromCity": {
            "type": "string",
            "description": "International from city.",
            "nullable": true
          },
          "internationalFromPostcode": {
            "type": "string",
            "description": "International from postcode.",
            "nullable": true
          },
          "internationalFromProvince": {
            "type": "string",
            "description": "International from province.",
            "nullable": true
          },
          "fromCountryId": {
            "type": "integer",
            "description": "MachShip assigned ID of the country of origin.",
            "format": "int32",
            "nullable": true
          },
          "fromCountryCode": {
            "type": "string",
            "description": "Two or three letter ISO code of the country of origin.",
            "nullable": true
          },
          "fromCountry": {
            "$ref": "#/components/schemas/Country"
          },
          "internationalToCity": {
            "type": "string",
            "description": "International to city.",
            "nullable": true
          },
          "internationalToPostcode": {
            "type": "string",
            "description": "International to postcode.",
            "nullable": true
          },
          "internationalToProvince": {
            "type": "string",
            "description": "International to province.",
            "nullable": true
          },
          "toCountryId": {
            "type": "integer",
            "description": "MachShip assigned ID of the destination country.",
            "format": "int32",
            "nullable": true
          },
          "toCountryCode": {
            "type": "string",
            "description": "Two or three letter ISO code of the destination country.",
            "nullable": true
          },
          "toCountry": {
            "$ref": "#/components/schemas/Country"
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "Custom field values keyed by field key. Omitted from the payload when unset.",
            "nullable": true,
            "example": {
              "po_number": "PO-12345",
              "pallet_count": 3,
              "fragile": true,
              "delivery_date": "2026-10-20"
            }
          }
        },
        "additionalProperties": false
      },
      "CreateQuoteComplexItemsV2": {
        "required": [
          "items"
        ],
        "type": "object",
        "properties": {
          "companyId": {
            "type": "integer",
            "description": "An (optional) Machship ID of a company. When supplied the routes will be those of the company specified, when left\r\nblank they will be routes for the company associated with the authorised user.",
            "format": "int32",
            "nullable": true
          },
          "despatchDateTimeUtc": {
            "type": "string",
            "description": "Optional: The UTC despatch datetime that was provided in the route. If the DespatchDateTimeLocal is provided, this does not need to be set. If no time is set, it will default to NOW (UTC)",
            "format": "date-time",
            "nullable": true
          },
          "despatchDateTimeLocal": {
            "type": "string",
            "description": "Optional: The local despatch datetime that was provided in the route. This datetime must be local to the pickup location. If the DespatchDateTimeUtc is provided, this does not need to be set. If no time is set, this will default to NOW (pickup local time)",
            "format": "date-time",
            "nullable": true
          },
          "customerReference": {
            "type": "string",
            "nullable": true
          },
          "customerReference2": {
            "type": "string",
            "nullable": true
          },
          "carrierId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "carrierServiceId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "subServiceId": {
            "type": "integer",
            "description": "The Machship ID of the sub-service under the carrier's service (if there are any). If there are sub-services and this field is left blank,\r\nthe default will be selected",
            "format": "int32",
            "nullable": true
          },
          "carrierAccountId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "companyCarrierAccountId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "defaultRouteSelection": {
            "$ref": "#/components/schemas/ConsolidationDefaultRouteSelection"
          },
          "fromCompanyLocationId": {
            "type": "integer",
            "description": "The Machship Id of the saved company location that you want to use. If this is provided, Machship will link this consignment to your saved location and you do not have to provide the delivery details",
            "format": "int32",
            "nullable": true
          },
          "fromName": {
            "type": "string",
            "nullable": true
          },
          "fromAbbreviation": {
            "type": "string",
            "nullable": true
          },
          "fromContact": {
            "type": "string",
            "nullable": true
          },
          "fromPhone": {
            "type": "string",
            "nullable": true
          },
          "fromEmail": {
            "type": "string",
            "nullable": true
          },
          "fromAddressLine1": {
            "type": "string",
            "nullable": true
          },
          "fromAddressLine2": {
            "type": "string",
            "nullable": true
          },
          "fromLocationId": {
            "type": "integer",
            "description": "The machship ID of the from (pickup) location. Can be left blank if supplying the suburb / postcode instead",
            "format": "int32",
            "nullable": true
          },
          "fromLocation": {
            "$ref": "#/components/schemas/SendLocationV2"
          },
          "toCompanyLocationId": {
            "type": "integer",
            "description": "The Machship Id of the saved company location that you want to use. If this is provided, Machship will link this consignment to your saved location and you do not have to provide the delivery details",
            "format": "int32",
            "nullable": true
          },
          "returnsDepotId": {
            "type": "integer",
            "description": "Optional. The returns drop-off depot the quoted option was priced from — echo the\r\n`returnsDepotId` of the chosen option from the returns quote response. When\r\nsupplied, the consignment's pickup is taken from that depot and any From fields\r\non this request are overridden. Requires `isReturn`.",
            "format": "int32",
            "nullable": true
          },
          "isReturn": {
            "type": "boolean",
            "description": "Optional, default false. Marks this consignment as a customer return, and is\r\nrequired on every return booking. On its own it books a pickup: the From address\r\non this request is the collection point and is left as supplied. Combined with\r\n`returnsDepotId` it books a drop-off and the From is taken from the depot.\r\nRequires the returns-dropoffs feature to be enabled for your account.",
            "default": false
          },
          "toName": {
            "type": "string",
            "nullable": true
          },
          "toAbbreviation": {
            "type": "string",
            "nullable": true
          },
          "toContact": {
            "type": "string",
            "nullable": true
          },
          "toPhone": {
            "type": "string",
            "nullable": true
          },
          "toEmail": {
            "type": "string",
            "nullable": true
          },
          "toAddressLine1": {
            "type": "string",
            "nullable": true
          },
          "toAddressLine2": {
            "type": "string",
            "nullable": true
          },
          "toLocationId": {
            "type": "integer",
            "description": "The machship ID of the to (receiver) location. Can be left blank if supplying the suburb / postcode instead",
            "format": "int32",
            "nullable": true
          },
          "toLocation": {
            "$ref": "#/components/schemas/SendLocationV2"
          },
          "specialInstructions": {
            "type": "string",
            "nullable": true
          },
          "questionIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "A collection of Machship IDs corresponding to questions who's result is true",
            "nullable": true
          },
          "receiverAccountCode": {
            "type": "string",
            "nullable": true
          },
          "receiverAccountId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "staffMemberName": {
            "type": "string",
            "nullable": true
          },
          "previousConsignmentId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "parentConsignmentId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "electiveSurchargeIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          },
          "consignmentOptions": {
            "type": "string",
            "nullable": true
          },
          "initialPricingRouteRequestId": {
            "type": "string",
            "description": "Optional: The route request ID from the initial pricing/route search performed in the UI.\r\nThis is used for tracing which route request the user was viewing when they created the consignment.",
            "format": "uuid",
            "nullable": true
          },
          "dgsDeclaration": {
            "type": "boolean",
            "description": "This must be set to true if the consignment contains Dangerous Goods. If this consignment does not have Dangerous Goods, this must be set to false. Note this flag only needs to be set if you are setup to consign Dangerous Goods through Machship",
            "nullable": true
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreateConsignmentItemComplexV2"
            },
            "description": "A collection of the items being sent"
          },
          "isInternational": {
            "type": "boolean",
            "description": "Flag to indicate if quote is international."
          },
          "internationalFromPostcode": {
            "type": "string",
            "description": "The postcode of the origin.",
            "nullable": true
          },
          "fromCountryId": {
            "type": "integer",
            "description": "MachShip assigned ID of the country of origin.",
            "format": "int32",
            "nullable": true
          },
          "fromCountryCode": {
            "type": "string",
            "description": "Two or three letter ISO code of the country of origin.",
            "nullable": true
          },
          "fromCountry": {
            "$ref": "#/components/schemas/Country"
          },
          "internationalToPostcode": {
            "type": "string",
            "description": "The postcode of the destination.",
            "nullable": true
          },
          "toCountryId": {
            "type": "integer",
            "description": "MachShip assigned ID of the destination country.",
            "format": "int32",
            "nullable": true
          },
          "toCountryCode": {
            "type": "string",
            "description": "Two or three letter ISO code of the destination country.",
            "nullable": true
          },
          "toCountry": {
            "$ref": "#/components/schemas/Country"
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "Custom field values keyed by field key. Omitted from the payload when unset.",
            "nullable": true,
            "example": {
              "po_number": "PO-12345",
              "pallet_count": 3,
              "fragile": true,
              "delivery_date": "2026-10-20"
            }
          }
        },
        "additionalProperties": false
      },
      "CreateQuoteResponseV2": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Machship's Id reference for this consignment. Use this id when interacting via the API",
            "format": "int32"
          },
          "consignmentNumber": {
            "type": "string",
            "description": "Machship's MS Number. This is the human friendly Machship consignment number that is sent to the carrier",
            "nullable": true
          },
          "despatchDateLocal": {
            "type": "string",
            "format": "date-time"
          },
          "despatchDateUtc": {
            "type": "string",
            "format": "date-time"
          },
          "etaLocal": {
            "type": "string",
            "format": "date-time"
          },
          "etaUtc": {
            "type": "string",
            "format": "date-time"
          },
          "carrier": {
            "$ref": "#/components/schemas/CarrierLite"
          },
          "carrierService": {
            "$ref": "#/components/schemas/CarrierServiceLite"
          },
          "companyCarrierAccount": {
            "$ref": "#/components/schemas/CompanyCarrierAccountLite"
          },
          "isTest": {
            "type": "boolean"
          },
          "isInternational": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "CreateQuoteResponseV2BaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "$ref": "#/components/schemas/CreateQuoteResponseV2"
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateQuoteV2": {
        "required": [
          "items"
        ],
        "type": "object",
        "properties": {
          "companyId": {
            "type": "integer",
            "description": "An (optional) Machship ID of a company. When supplied the routes will be those of the company specified, when left\r\nblank they will be routes for the company associated with the authorised user.",
            "format": "int32",
            "nullable": true
          },
          "despatchDateTimeUtc": {
            "type": "string",
            "description": "Optional: The UTC despatch datetime that was provided in the route. If the DespatchDateTimeLocal is provided, this does not need to be set. If no time is set, it will default to NOW (UTC)",
            "format": "date-time",
            "nullable": true
          },
          "despatchDateTimeLocal": {
            "type": "string",
            "description": "Optional: The local despatch datetime that was provided in the route. This datetime must be local to the pickup location. If the DespatchDateTimeUtc is provided, this does not need to be set. If no time is set, this will default to NOW (pickup local time)",
            "format": "date-time",
            "nullable": true
          },
          "customerReference": {
            "type": "string",
            "nullable": true
          },
          "customerReference2": {
            "type": "string",
            "nullable": true
          },
          "carrierId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "carrierServiceId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "subServiceId": {
            "type": "integer",
            "description": "The Machship ID of the sub-service under the carrier's service (if there are any). If there are sub-services and this field is left blank,\r\nthe default will be selected",
            "format": "int32",
            "nullable": true
          },
          "carrierAccountId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "companyCarrierAccountId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "defaultRouteSelection": {
            "$ref": "#/components/schemas/ConsolidationDefaultRouteSelection"
          },
          "fromCompanyLocationId": {
            "type": "integer",
            "description": "The Machship Id of the saved company location that you want to use. If this is provided, Machship will link this consignment to your saved location and you do not have to provide the delivery details",
            "format": "int32",
            "nullable": true
          },
          "fromName": {
            "type": "string",
            "nullable": true
          },
          "fromAbbreviation": {
            "type": "string",
            "nullable": true
          },
          "fromContact": {
            "type": "string",
            "nullable": true
          },
          "fromPhone": {
            "type": "string",
            "nullable": true
          },
          "fromEmail": {
            "type": "string",
            "nullable": true
          },
          "fromAddressLine1": {
            "type": "string",
            "nullable": true
          },
          "fromAddressLine2": {
            "type": "string",
            "nullable": true
          },
          "fromLocationId": {
            "type": "integer",
            "description": "The machship ID of the from (pickup) location. Can be left blank if supplying the suburb / postcode instead",
            "format": "int32",
            "nullable": true
          },
          "fromLocation": {
            "$ref": "#/components/schemas/SendLocationV2"
          },
          "toCompanyLocationId": {
            "type": "integer",
            "description": "The Machship Id of the saved company location that you want to use. If this is provided, Machship will link this consignment to your saved location and you do not have to provide the delivery details",
            "format": "int32",
            "nullable": true
          },
          "returnsDepotId": {
            "type": "integer",
            "description": "Optional. The returns drop-off depot the quoted option was priced from — echo the\r\n`returnsDepotId` of the chosen option from the returns quote response. When\r\nsupplied, the consignment's pickup is taken from that depot and any From fields\r\non this request are overridden. Requires `isReturn`.",
            "format": "int32",
            "nullable": true
          },
          "isReturn": {
            "type": "boolean",
            "description": "Optional, default false. Marks this consignment as a customer return, and is\r\nrequired on every return booking. On its own it books a pickup: the From address\r\non this request is the collection point and is left as supplied. Combined with\r\n`returnsDepotId` it books a drop-off and the From is taken from the depot.\r\nRequires the returns-dropoffs feature to be enabled for your account.",
            "default": false
          },
          "toName": {
            "type": "string",
            "nullable": true
          },
          "toAbbreviation": {
            "type": "string",
            "nullable": true
          },
          "toContact": {
            "type": "string",
            "nullable": true
          },
          "toPhone": {
            "type": "string",
            "nullable": true
          },
          "toEmail": {
            "type": "string",
            "nullable": true
          },
          "toAddressLine1": {
            "type": "string",
            "nullable": true
          },
          "toAddressLine2": {
            "type": "string",
            "nullable": true
          },
          "toLocationId": {
            "type": "integer",
            "description": "The machship ID of the to (receiver) location. Can be left blank if supplying the suburb / postcode instead",
            "format": "int32",
            "nullable": true
          },
          "toLocation": {
            "$ref": "#/components/schemas/SendLocationV2"
          },
          "specialInstructions": {
            "type": "string",
            "nullable": true
          },
          "questionIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "A collection of Machship IDs corresponding to questions who's result is true",
            "nullable": true
          },
          "receiverAccountCode": {
            "type": "string",
            "nullable": true
          },
          "receiverAccountId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "staffMemberName": {
            "type": "string",
            "nullable": true
          },
          "previousConsignmentId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "parentConsignmentId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "electiveSurchargeIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          },
          "consignmentOptions": {
            "type": "string",
            "nullable": true
          },
          "initialPricingRouteRequestId": {
            "type": "string",
            "description": "Optional: The route request ID from the initial pricing/route search performed in the UI.\r\nThis is used for tracing which route request the user was viewing when they created the consignment.",
            "format": "uuid",
            "nullable": true
          },
          "dgsDeclaration": {
            "type": "boolean",
            "description": "This must be set to true if the consignment contains Dangerous Goods. If this consignment does not have Dangerous Goods, this must be set to false. Note this flag only needs to be set if you are setup to consign Dangerous Goods through Machship",
            "nullable": true
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreateConsignmentItemV2"
            },
            "description": "A collection of the items being sent"
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "Custom field values keyed by field key. Omitted from the payload when unset.",
            "nullable": true,
            "example": {
              "po_number": "PO-12345",
              "pallet_count": 3,
              "fragile": true,
              "delivery_date": "2026-10-20"
            }
          }
        },
        "additionalProperties": false
      },
      "CustomFieldEntityFieldType": {
        "enum": [
          0,
          22,
          23,
          24
        ],
        "type": "integer",
        "description": "0 = Unknown, 22 = CapTransCaller, 23 = CapTransPickupInstructions, 24 = CapTransDeliveryInstructions",
        "format": "int32"
      },
      "CustomFieldSet": {
        "type": "object",
        "properties": {
          "propertyName": {
            "type": "string",
            "nullable": true
          },
          "displayName": {
            "type": "string",
            "nullable": true
          },
          "isRequired": {
            "type": "boolean"
          },
          "customFieldType": {
            "$ref": "#/components/schemas/CustomFieldType"
          },
          "value": {
            "type": "string",
            "nullable": true
          },
          "defaultValue": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "displayToUser": {
            "type": "boolean"
          },
          "listOfAvailableValues": {
            "type": "string",
            "nullable": true
          },
          "entityFieldType": {
            "$ref": "#/components/schemas/CustomFieldEntityFieldType"
          },
          "carrierRefPools": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CarrierRefPoolLite"
            },
            "nullable": true
          },
          "shouldEnforceDefaultValueNull": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "CustomFieldType": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          11,
          12,
          13,
          14,
          15,
          16,
          17,
          18,
          19,
          20,
          21,
          22
        ],
        "type": "integer",
        "description": "0 = Unknown, 1 = Text, 2 = TextArea, 3 = Date, 4 = Time, 5 = Integer, 6 = Decimal, 7 = Boolean, 8 = Email, 9 = Password, 10 = Switch, 11 = Checkbox, 12 = DateTime, 13 = StringArray, 14 = RefPool, 15 = KeyValuePair, 16 = Location, 17 = SnowflakeID, 18 = Carrier, 19 = CarrierList, 20 = StaticText, 21 = AddOnOffer, 22 = Dropdown",
        "format": "int32"
      },
      "CustomValue": {
        "type": "object",
        "properties": {
          "propertyName": {
            "type": "string",
            "nullable": true
          },
          "value": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DayOfWeek": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6
        ],
        "type": "integer",
        "description": "0 = Sunday, 1 = Monday, 2 = Tuesday, 3 = Wednesday, 4 = Thursday, 5 = Friday, 6 = Saturday",
        "format": "int32"
      },
      "DepotAddressV2": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the addresss",
            "nullable": true
          },
          "location": {
            "$ref": "#/components/schemas/Location"
          },
          "contact": {
            "type": "string",
            "description": "The contact name for this address",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "description": "The phone number associated with this address",
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "The email address associated with this addresss",
            "nullable": true
          },
          "addressLine1": {
            "maxLength": 256,
            "minLength": 0,
            "type": "string",
            "description": "The first line of the depot address. Bounded to 256 characters (BF-170).",
            "nullable": true
          },
          "addressLine2": {
            "maxLength": 256,
            "minLength": 0,
            "type": "string",
            "description": "The (optional) second line of the depot address. Bounded to 256 characters (BF-170).",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Depot-specific Machship.Common.Models.Locations.Address that bounds the two address lines to the depot\r\ncolumn lengths (BF-170: `Depots.AddressLine1`/`AddressLine2` are\r\n`nvarchar(256)`). The constraint lives on this subclass — not the shared\r\nMachship.Common.Models.Locations.Address — so every other Machship.Common.Models.Locations.Address consumer (routes, carrier\r\nintegrations, tracking email, consolidation) stays unbounded.\r\n            \r\nThe shadowed properties use `new` (the established V2 idiom — see\r\n`CreateConsignmentExistingV2`). Newtonsoft resolves shadowed members to the\r\nmost-derived type, so the wire shape (property names) is unchanged; the only\r\nrequirement is that depot code references this property through the\r\n`DepotAddressV2` static type so the constrained backing field is the one read/written."
      },
      "DepotDetails": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "The depot's id — the value to echo back on a re-route so depot carrier-access rules re-apply.",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "description": "The depot's display name. Null when the depot falls outside the caller's accessible-and-inherited\r\ncompany closure: the id is still returned (its owning journey is already accessible, and the caller\r\nneeds it to round-trip an edit) but the label is withheld, matching the scope every other depot read\r\napplies. In practice this only happens for a journey whose depot sits on a company branch the current\r\ncaller can't reach — the same case where re-routing that leg would be refused anyway.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Minimal depot descriptor for embedding in another payload — the id a caller needs to send back plus\r\na label to render it with. Distinct from Machship.Common.Models.ApiV2Models.Depots.DepotV2, which is the full read/write depot\r\nmodel (address, operating hours, carrier, coordinates); this exists so a reference to a depot can be\r\nself-describing without dragging that graph along (speedy-ms r3745690943 on PR #6571)."
      },
      "DepotOperatingHoursV2": {
        "type": "object",
        "properties": {
          "dayOfWeek": {
            "$ref": "#/components/schemas/DayOfWeek"
          },
          "isOpen": {
            "type": "boolean",
            "description": "Whether the depot is open on this day."
          },
          "operatingTime": {
            "$ref": "#/components/schemas/OperatingTime"
          }
        },
        "additionalProperties": false
      },
      "DepotV2": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Depot ID. Null when creating a new depot.",
            "format": "int32",
            "nullable": true
          },
          "companyId": {
            "type": "integer",
            "description": "ID of the Root Company that owns this depot. On save: leave at 0 (the\r\n`int` default) to auto-populate from the caller's session; a\r\nnon-zero value that doesn't match the caller's session company throws.",
            "format": "int32"
          },
          "isDisabled": {
            "type": "boolean",
            "description": "When true the depot is hidden from the depot picker and unavailable for routing."
          },
          "carrierId": {
            "type": "integer",
            "description": "ID of the managing/owning carrier. Null for depots not tied to a specific carrier.",
            "format": "int32",
            "nullable": true
          },
          "carrierName": {
            "type": "string",
            "description": "Display name of the managing/owning carrier.",
            "nullable": true
          },
          "name": {
            "type": "string",
            "description": "Depot display name (e.g. \"Brisbane Depot\"). Distinct from `Address.Name`, which is the name of the address itself and is unused for depots.",
            "nullable": true
          },
          "address": {
            "$ref": "#/components/schemas/DepotAddressV2"
          },
          "specialInstructions": {
            "maxLength": 500,
            "minLength": 0,
            "type": "string",
            "description": "Any special instructions for deliveries to this depot. Bounded to 500 characters (BF-170).",
            "nullable": true
          },
          "deliveryCarrierIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "IDs of carriers allowed to route deliveries to this depot. Affects route generation.",
            "nullable": true
          },
          "pickupCarrierIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "IDs of carriers that use this depot for pickups. Stored only — no routing logic reads this in BF-5.",
            "nullable": true
          },
          "operatingHours": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DepotOperatingHoursV2"
            },
            "description": "Operating hours for the depot. Always contains exactly 7 entries — one per day of the week (Monday–Sunday).\r\nPublic holidays and exceptions are not supported in BF-5.\r\nStored only in BF-5; no routing logic reads this yet.",
            "nullable": true
          },
          "latitude": {
            "type": "number",
            "description": "Latitude of the depot's suburb centre point (from Locations.CentrePoint).\r\nAlready fetched during haversine distance calculation — returned at no extra cost.\r\nUsed by the frontend to render map pins in the depot picker map view.",
            "format": "double",
            "nullable": true
          },
          "longitude": {
            "type": "number",
            "description": "Longitude of the depot's suburb centre point. See Machship.Common.Models.ApiV2Models.Depots.DepotV2.Latitude.",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DgClass": {
        "type": "object",
        "properties": {
          "class": {
            "type": "string",
            "nullable": true
          },
          "classType": {
            "$ref": "#/components/schemas/DgClassType"
          },
          "division": {
            "type": "string",
            "nullable": true
          },
          "label": {
            "type": "string",
            "nullable": true
          },
          "subRisk": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "DgClassType": {
        "enum": [
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          11,
          12,
          13,
          14,
          15,
          16,
          17,
          18,
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28,
          29,
          30,
          31,
          32,
          33,
          34,
          35,
          36,
          37,
          38,
          39,
          40,
          41,
          42,
          43,
          44,
          45,
          46,
          47,
          48,
          49
        ],
        "type": "integer",
        "description": "2 = FlammableGas, 3 = OtherGas, 4 = ToxicGas, 5 = FlammableLiquid, 6 = FlammableSolid, 7 = SpontaneouslyCombustible, 8 = DangerousWhenWet, 9 = OxidizingAgent, 10 = OrganicPeroxide, 11 = ToxicSubstance, 12 = InfectiousSubstance, 13 = Radioactive, 14 = Corrosive, 15 = Miscellaneous, 16 = Explosive1A, 17 = Explosive1B, 18 = Explosive1C, 19 = Explosive1D, 20 = Explosive1E, 21 = Explosive1F, 22 = Explosive1G, 23 = Explosive1J, 24 = Explosive1L, 25 = Explosive2B, 26 = Explosive2C, 27 = Explosive2D, 28 = Explosive2E, 29 = Explosive2F, 30 = Explosive2G, 31 = Explosive2H, 32 = Explosive2J, 33 = Explosive2K, 34 = Explosive2L, 35 = Explosive3C, 36 = Explosive3G, 37 = Explosive3H, 38 = Explosive3J, 39 = Explosive3K, 40 = Explosive3L, 41 = Explosive4B, 42 = Explosive4C, 43 = Explosive4D, 44 = Explosive4E, 45 = Explosive4F, 46 = Explosive4G, 47 = Explosive4S, 48 = Explosive5D, 49 = Explosive6N",
        "format": "int32"
      },
      "DgHazchem": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "hazchem": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DgUnNumberFlat": {
        "type": "object",
        "properties": {
          "unNumber": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "packingGroupName": {
            "type": "string",
            "nullable": true
          },
          "packingGroup": {
            "$ref": "#/components/schemas/PackingGroup"
          },
          "classes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DgClass"
            },
            "nullable": true
          },
          "requiresTechnicalName": {
            "type": "boolean"
          },
          "hazchem": {
            "type": "string",
            "nullable": true
          },
          "hazchems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DgHazchem"
            },
            "nullable": true
          },
          "class": {
            "$ref": "#/components/schemas/DgClass"
          },
          "subClasses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DgClass"
            },
            "nullable": true,
            "readOnly": true
          },
          "classesForDisplay": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "subClassesForDisplay": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "EditConsignmentItemComplexV2": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "This is populated IF it is an existing unmanifested consignment's consignment item ID",
            "format": "int32"
          },
          "companyItemId": {
            "type": "integer",
            "description": "Optional: Links this item back up to a saved item in Machship",
            "format": "int32",
            "nullable": true
          },
          "itemType": {
            "$ref": "#/components/schemas/ItemType"
          },
          "name": {
            "type": "string",
            "description": "Name or description of the goods you are sending",
            "nullable": true
          },
          "sku": {
            "type": "string",
            "description": "Optional: the SKU or code of the item you are sending",
            "nullable": true
          },
          "quantity": {
            "type": "integer",
            "description": "Number of items",
            "format": "int32",
            "nullable": true
          },
          "palletSpaces": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "standardItem": {
            "$ref": "#/components/schemas/CreateConsignmentStandardItemV2"
          },
          "combinedItem": {
            "$ref": "#/components/schemas/CreateConsignmentCombinedItemV2"
          },
          "combinedLoadSize": {
            "$ref": "#/components/schemas/CreateConsignmentCombinedLoadSizeItemV2"
          },
          "consignmentItemDgItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreateConsignmentItemDgItemV2"
            },
            "nullable": true
          },
          "consignmentItemReferences": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreateConsignmentItemReferenceV2"
            },
            "nullable": true
          },
          "consignmentItemContents": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreateConsignmentItemContentV2"
            },
            "nullable": true
          },
          "standardItemId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "combinedItemId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "machshipItemType": {
            "$ref": "#/components/schemas/MachshipItemType"
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "Custom field values keyed by field key. Omitted from the payload when unset.",
            "nullable": true,
            "example": {
              "po_number": "PO-12345",
              "pallet_count": 3,
              "fragile": true,
              "delivery_date": "2026-10-20"
            }
          }
        },
        "additionalProperties": false
      },
      "EditConsignmentV2": {
        "required": [
          "items"
        ],
        "type": "object",
        "properties": {
          "companyId": {
            "type": "integer",
            "description": "An (optional) Machship ID of a company. When supplied the routes will be those of the company specified, when left\r\nblank they will be routes for the company associated with the authorised user.",
            "format": "int32",
            "nullable": true
          },
          "despatchDateTimeUtc": {
            "type": "string",
            "description": "Optional: The UTC despatch datetime that was provided in the route. If the DespatchDateTimeLocal is provided, this does not need to be set. If no time is set, it will default to NOW (UTC)",
            "format": "date-time",
            "nullable": true
          },
          "despatchDateTimeLocal": {
            "type": "string",
            "description": "Optional: The local despatch datetime that was provided in the route. This datetime must be local to the pickup location. If the DespatchDateTimeUtc is provided, this does not need to be set. If no time is set, this will default to NOW (pickup local time)",
            "format": "date-time",
            "nullable": true
          },
          "customerReference": {
            "type": "string",
            "nullable": true
          },
          "customerReference2": {
            "type": "string",
            "nullable": true
          },
          "carrierId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "carrierServiceId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "subServiceId": {
            "type": "integer",
            "description": "The Machship ID of the sub-service under the carrier's service (if there are any). If there are sub-services and this field is left blank,\r\nthe default will be selected",
            "format": "int32",
            "nullable": true
          },
          "carrierAccountId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "companyCarrierAccountId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "defaultRouteSelection": {
            "$ref": "#/components/schemas/ConsolidationDefaultRouteSelection"
          },
          "fromCompanyLocationId": {
            "type": "integer",
            "description": "The Machship Id of the saved company location that you want to use. If this is provided, Machship will link this consignment to your saved location and you do not have to provide the delivery details",
            "format": "int32",
            "nullable": true
          },
          "fromName": {
            "type": "string",
            "nullable": true
          },
          "fromAbbreviation": {
            "type": "string",
            "nullable": true
          },
          "fromContact": {
            "type": "string",
            "nullable": true
          },
          "fromPhone": {
            "type": "string",
            "nullable": true
          },
          "fromEmail": {
            "type": "string",
            "nullable": true
          },
          "fromAddressLine1": {
            "type": "string",
            "nullable": true
          },
          "fromAddressLine2": {
            "type": "string",
            "nullable": true
          },
          "fromLocationId": {
            "type": "integer",
            "description": "The machship ID of the from (pickup) location. Can be left blank if supplying the suburb / postcode instead",
            "format": "int32",
            "nullable": true
          },
          "fromLocation": {
            "$ref": "#/components/schemas/SendLocationV2"
          },
          "toCompanyLocationId": {
            "type": "integer",
            "description": "The Machship Id of the saved company location that you want to use. If this is provided, Machship will link this consignment to your saved location and you do not have to provide the delivery details",
            "format": "int32",
            "nullable": true
          },
          "returnsDepotId": {
            "type": "integer",
            "description": "Optional. The returns drop-off depot the quoted option was priced from — echo the\r\n`returnsDepotId` of the chosen option from the returns quote response. When\r\nsupplied, the consignment's pickup is taken from that depot and any From fields\r\non this request are overridden. Requires `isReturn`.",
            "format": "int32",
            "nullable": true
          },
          "isReturn": {
            "type": "boolean",
            "description": "Optional, default false. Marks this consignment as a customer return, and is\r\nrequired on every return booking. On its own it books a pickup: the From address\r\non this request is the collection point and is left as supplied. Combined with\r\n`returnsDepotId` it books a drop-off and the From is taken from the depot.\r\nRequires the returns-dropoffs feature to be enabled for your account.",
            "default": false
          },
          "toName": {
            "type": "string",
            "nullable": true
          },
          "toAbbreviation": {
            "type": "string",
            "nullable": true
          },
          "toContact": {
            "type": "string",
            "nullable": true
          },
          "toPhone": {
            "type": "string",
            "nullable": true
          },
          "toEmail": {
            "type": "string",
            "nullable": true
          },
          "toAddressLine1": {
            "type": "string",
            "nullable": true
          },
          "toAddressLine2": {
            "type": "string",
            "nullable": true
          },
          "toLocationId": {
            "type": "integer",
            "description": "The machship ID of the to (receiver) location. Can be left blank if supplying the suburb / postcode instead",
            "format": "int32",
            "nullable": true
          },
          "toLocation": {
            "$ref": "#/components/schemas/SendLocationV2"
          },
          "specialInstructions": {
            "type": "string",
            "nullable": true
          },
          "questionIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "A collection of Machship IDs corresponding to questions who's result is true",
            "nullable": true
          },
          "receiverAccountCode": {
            "type": "string",
            "nullable": true
          },
          "receiverAccountId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "staffMemberName": {
            "type": "string",
            "nullable": true
          },
          "previousConsignmentId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "parentConsignmentId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "electiveSurchargeIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          },
          "consignmentOptions": {
            "type": "string",
            "nullable": true
          },
          "initialPricingRouteRequestId": {
            "type": "string",
            "description": "Optional: The route request ID from the initial pricing/route search performed in the UI.\r\nThis is used for tracing which route request the user was viewing when they created the consignment.",
            "format": "uuid",
            "nullable": true
          },
          "sendingTrackingEmail": {
            "type": "boolean",
            "description": "Set this to true if you would like to send a tracking email to the receiver email address once this consignment is manifested"
          },
          "dgsDeclaration": {
            "type": "boolean",
            "description": "This must be set to true if the consignment contains Dangerous Goods. If this consignment does not have Dangerous Goods, this must be set to false. Note this flag only needs to be set if you are setup to consign Dangerous Goods through Machship",
            "nullable": true
          },
          "customValues": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomValue"
            },
            "nullable": true
          },
          "linkedPendingConsignmentIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Optional list of Machship Pending Consignment ID(s) to link to this consignment - these pending consignment(s) will be linked to\r\nthis consignment and effectively be deleted from Machship",
            "nullable": true
          },
          "printerToken": {
            "type": "string",
            "nullable": true
          },
          "carrierIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "The (optional) listing of Machship Carrier IDs to restrict the returning routes for. When left blank all carriers\r\nyou have available will be queried for routes. Only used if CarrierId is not specified",
            "nullable": true
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EditConsignmentItemComplexV2"
            },
            "description": "A collection of the items being sent"
          },
          "isInternational": {
            "type": "boolean",
            "description": "Flag to indicate if this consignment is international."
          },
          "internationalFromCity": {
            "type": "string",
            "description": "International from city.",
            "nullable": true
          },
          "internationalFromPostcode": {
            "type": "string",
            "description": "International from postcode.",
            "nullable": true
          },
          "internationalFromProvince": {
            "type": "string",
            "description": "International from province.",
            "nullable": true
          },
          "fromCountryId": {
            "type": "integer",
            "description": "MachShip assigned ID of the country of origin.",
            "format": "int32",
            "nullable": true
          },
          "fromCountryCode": {
            "type": "string",
            "description": "Two or three letter ISO code of the country of origin.",
            "nullable": true
          },
          "fromCountry": {
            "$ref": "#/components/schemas/Country"
          },
          "internationalToCity": {
            "type": "string",
            "description": "International to city.",
            "nullable": true
          },
          "internationalToPostcode": {
            "type": "string",
            "description": "International to postcode.",
            "nullable": true
          },
          "internationalToProvince": {
            "type": "string",
            "description": "International to province.",
            "nullable": true
          },
          "toCountryId": {
            "type": "integer",
            "description": "MachShip assigned ID of the destination country.",
            "format": "int32",
            "nullable": true
          },
          "toCountryCode": {
            "type": "string",
            "description": "Two or three letter ISO code of the destination country.",
            "nullable": true
          },
          "toCountry": {
            "$ref": "#/components/schemas/Country"
          },
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "setItemReferences": {
            "type": "boolean",
            "description": "When set to true the system will use the item references supplied, otherwise the item references\r\nwill be automatically generated by MachShip"
          },
          "consignmentStatusType": {
            "$ref": "#/components/schemas/ConsignmentStatusType"
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "Custom field values keyed by field key. Omitted from the payload when unset.",
            "nullable": true,
            "example": {
              "po_number": "PO-12345",
              "pallet_count": 3,
              "fragile": true,
              "delivery_date": "2026-10-20"
            }
          }
        },
        "additionalProperties": false,
        "description": "An edit of an existing, unmanifested consignment."
      },
      "EditConsignmentV2BaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "$ref": "#/components/schemas/EditConsignmentV2"
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "EmptyDomainEntityV2": {
        "type": "object",
        "properties": {
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          },
          "success": {
            "type": "boolean",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "EnterpriseTier": {
        "enum": [
          1,
          2,
          3,
          4,
          5
        ],
        "type": "integer",
        "description": "1 = TierOne, 2 = TierTwo, 3 = TierThree, 4 = TierFour, 5 = TierFive",
        "format": "int32"
      },
      "EntityType": {
        "enum": [
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          11,
          12,
          13,
          14,
          15,
          16,
          17,
          18,
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28
        ],
        "type": "integer",
        "description": "1 = Consignment, 2 = Company, 3 = Manifest, 4 = Carrier, 5 = CarrierAccount, 6 = CarrierService, 7 = CompanyCarrierAccount, 8 = Quote, 9 = FinanceInvoice, 10 = User, 11 = CarrierInvoice, 12 = Question, 13 = Printer, 14 = Location, 15 = CompanyLocations, 16 = CompanyFinancial, 17 = Workflow, 18 = WorkflowTask, 19 = PendingConsignment, 20 = OrgSystemSettings, 21 = ConsignmentItem, 22 = ConsignmentItemContent, 23 = ConsignmentItemDgItem, 24 = CompanyItem, 25 = CompanyDgItem, 26 = PendingConsignmentItem, 27 = PendingConsignmentItemContent, 28 = PendingConsignmentItemDgItem",
        "format": "int32"
      },
      "EntityValidationResult": {
        "type": "object",
        "properties": {
          "memberNames": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "readOnly": true
          },
          "errorMessage": {
            "type": "string",
            "nullable": true
          },
          "validationType": {
            "$ref": "#/components/schemas/MachshipValidationType"
          }
        },
        "additionalProperties": false
      },
      "FileInfo": {
        "type": "object",
        "properties": {
          "fileName": {
            "type": "string",
            "nullable": true
          },
          "contentType": {
            "type": "string",
            "nullable": true
          },
          "content": {
            "type": "string",
            "format": "byte",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FileInfoBaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "$ref": "#/components/schemas/FileInfo"
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Group": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "groupId": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "users": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/User"
            },
            "nullable": true
          },
          "roles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Group"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "HideCarrierItemTypeOnInvoiceType": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "description": "0 = InheritFromParent, 1 = Yes, 2 = No",
        "format": "int32"
      },
      "Identity": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "uniqueId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "givenName": {
            "type": "string",
            "nullable": true
          },
          "familyName": {
            "type": "string",
            "nullable": true
          },
          "displayName": {
            "type": "string",
            "nullable": true
          },
          "emailAddress": {
            "type": "string",
            "nullable": true
          },
          "identifyingClaim": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "businessPhone": {
            "type": "string",
            "nullable": true
          },
          "mobile": {
            "type": "string",
            "nullable": true
          },
          "position": {
            "type": "string",
            "nullable": true
          },
          "notes": {
            "type": "string",
            "nullable": true
          },
          "enableEmailNotifications": {
            "type": "boolean"
          },
          "userType": {
            "$ref": "#/components/schemas/UserType"
          },
          "testModeSetting": {
            "$ref": "#/components/schemas/UserTestModeSetting"
          },
          "invalidLoginAttempts": {
            "type": "integer",
            "format": "int32"
          },
          "organisationId": {
            "type": "integer",
            "format": "int32"
          },
          "organisation": {
            "$ref": "#/components/schemas/Organisation"
          },
          "identityProviderId": {
            "type": "integer",
            "format": "int32"
          },
          "provider": {
            "$ref": "#/components/schemas/IdentityProvider"
          },
          "owningCompanyId": {
            "type": "integer",
            "format": "int32"
          },
          "owningCompany": {
            "$ref": "#/components/schemas/CompanyLite"
          },
          "disabled": {
            "type": "boolean"
          },
          "userAndCompanyLinks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserAndCompanyLink"
            },
            "nullable": true
          },
          "users": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserWithOrgAdmin"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "IdentityBaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "$ref": "#/components/schemas/Identity"
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "IdentityCompanyLink": {
        "type": "object",
        "properties": {
          "company": {
            "$ref": "#/components/schemas/CompanyV2"
          },
          "roles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoleV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "IdentityCompanyLinkSetterRequest": {
        "required": [
          "companyId",
          "roles"
        ],
        "type": "object",
        "properties": {
          "identityId": {
            "type": "integer",
            "description": "The ID in MachShip of an identity owned by your Organisation. Either the IdentityId, IdentityPublicKey or IdentityClaimName must be provided",
            "format": "int32",
            "nullable": true
          },
          "identityPublicKey": {
            "type": "string",
            "description": "The \"public key\" of an identity from another organisation (who has been linked to your organisation). Either the IdentityId, IdentityPublicKey or IdentityClaimName must be provided",
            "nullable": true
          },
          "identityClaim": {
            "type": "string",
            "description": "The \"identity claim\" (usually email) of an identity from another organisation (who has been linked to your organisation). Either the IdentityId, IdentityPublicKey or IdentityClaimName must be provided",
            "nullable": true
          },
          "companyId": {
            "type": "integer",
            "description": "The ID in MachShip of a company within your organisation",
            "format": "int32"
          },
          "roles": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "One ore more role IDs to assign the identity"
          },
          "testModeSetting": {
            "$ref": "#/components/schemas/UserTestModeSetting"
          },
          "identityLinkType": {
            "$ref": "#/components/schemas/IdentityLinkType"
          }
        },
        "additionalProperties": false
      },
      "IdentityCompanyLinkSetterRequestObject": {
        "type": "object",
        "properties": {
          "links": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IdentityCompanyLinkSetterRequest"
            },
            "description": "One or more identities to provision access for",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "IdentityCompanyUnsetter": {
        "type": "object",
        "properties": {
          "identityId": {
            "type": "integer",
            "description": "The ID in MachShip of an identity linked to the company you are removing it access from",
            "format": "int32"
          },
          "companyId": {
            "type": "integer",
            "description": "The ID in MachShip of a company the identity is currently linked to",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "IdentityInformation": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "uniqueId": {
            "type": "string",
            "format": "uuid"
          },
          "isMachshipManaged": {
            "type": "boolean"
          },
          "superUser": {
            "type": "boolean"
          },
          "displayName": {
            "type": "string",
            "nullable": true
          },
          "givenName": {
            "type": "string",
            "nullable": true
          },
          "familyName": {
            "type": "string",
            "nullable": true
          },
          "emailAddress": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "businessPhone": {
            "type": "string",
            "nullable": true
          },
          "mobile": {
            "type": "string",
            "nullable": true
          },
          "identifyingClaim": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "IdentityLinkType": {
        "enum": [
          0,
          1,
          2,
          3
        ],
        "type": "integer",
        "description": "0 = Unknown, 1 = IdentityId, 2 = IdentityPublicKey, 3 = IdentityClaimName",
        "format": "int32"
      },
      "IdentityProvider": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "organisationId": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "providerIdentifier": {
            "type": "string",
            "nullable": true
          },
          "unknownIdentityTriggersCreation": {
            "type": "boolean"
          },
          "isMachshipManaged": {
            "type": "boolean"
          },
          "identifyingClaimName": {
            "type": "string",
            "nullable": true
          },
          "identifyingClaimDescription": {
            "type": "string",
            "nullable": true
          },
          "newUserDefaultCompanyId": {
            "type": "integer",
            "format": "int32"
          },
          "newUserDefaultRoleId": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "IdentityProviderV2": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "organisationId": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "identifyingClaimName": {
            "type": "string",
            "nullable": true
          },
          "identifyingClaimDescription": {
            "type": "string",
            "nullable": true
          },
          "isMachshipManaged": {
            "type": "boolean"
          },
          "providerIdentifier": {
            "type": "string",
            "nullable": true
          },
          "unknownIdentityTriggersCreation": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "IdentityProviderV2BaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "$ref": "#/components/schemas/IdentityProviderV2"
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "IdentityProviderV2ICollectionBaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IdentityProviderV2"
            },
            "nullable": true
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "IdentityPublicKeyV2": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "publicKey": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "IdentityPublicKeyV2ICollectionBaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IdentityPublicKeyV2"
            },
            "nullable": true
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "IdentityV2": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "uniqueId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "identifyingClaim": {
            "type": "string",
            "nullable": true
          },
          "givenName": {
            "type": "string",
            "nullable": true
          },
          "familyName": {
            "type": "string",
            "nullable": true
          },
          "displayName": {
            "type": "string",
            "nullable": true
          },
          "emailAddress": {
            "type": "string",
            "nullable": true
          },
          "provider": {
            "$ref": "#/components/schemas/IdentityProviderV2"
          },
          "companies": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IdentityCompanyLink"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "IdentityV2ICollectionBaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IdentityV2"
            },
            "nullable": true
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "IdsContainer": {
        "type": "object",
        "properties": {
          "ids": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Int32BaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "type": "integer",
            "format": "int32"
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "InternationalEnabledType": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "description": "0 = InheritFromParent, 1 = Yes, 2 = No",
        "format": "int32"
      },
      "InvoiceConsolidationType": {
        "enum": [
          0,
          1
        ],
        "type": "integer",
        "description": "Per-company grouping key for cross-consignment invoice-line consolidation (BF-172).\r\nA separate axis from Machship.Common.Enumerations.InvoiceWrappingType (which wraps a single consignment's\r\nlines); this chooses how a multi-leg shipment's charges are combined into one customer-invoice\r\nline. Inert until the consolidation engine consumes it. Display strings are provisional.0 = None, 1 = ByJourneyId",
        "format": "int32"
      },
      "InvoiceDueDateType": {
        "enum": [
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          11,
          12,
          13,
          14
        ],
        "type": "integer",
        "description": "1 = DaysFromInvoiceDate, 2 = DaysFromEndOfMonth, 3 = DaysFromEndOfNextMonth, 4 = DaysFromPostedDate, 5 = EndOfNextMonth, 6 = EndOfThisMonth, 7 = EndOfNextWeek, 8 = EndOfThisWeek, 11 = EndOfNextMonthFromPostedDate, 12 = EndOfThisMonthFromPostedDate, 13 = EndOfNextWeekFromPostedDate, 14 = EndOfThisWeekFromPostedDate",
        "format": "int32"
      },
      "InvoiceIntegrationType": {
        "enum": [
          1,
          2
        ],
        "type": "integer",
        "description": "1 = Machship, 2 = Xero",
        "format": "int32"
      },
      "InvoiceItemV2": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "quantity": {
            "type": "number",
            "format": "double"
          },
          "totalTax": {
            "type": "number",
            "format": "double"
          },
          "total": {
            "type": "number",
            "format": "double"
          },
          "consignmentId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "companyId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "InvoiceReferenceConsolidationType": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "description": "Per-company grouping key for consolidating invoice lines across consignments that share a\r\ncustomer-reference field (BF-193). A separate axis from Machship.Common.Enumerations.InvoiceConsolidationType\r\n(which groups a multi-leg shipment by journey); a company may set both. Inert until the\r\nconsolidation engine consumes it. Display strings are provisional.0 = None, 1 = ByCustomerReference, 2 = ByCustomerReference2",
        "format": "int32"
      },
      "InvoiceSendingType": {
        "enum": [
          1,
          2,
          3,
          4,
          5,
          6,
          7
        ],
        "type": "integer",
        "description": "1 = EmailPdfAndCsv, 2 = EmailPdfOnly, 3 = EmailCsvOnly, 4 = None, 5 = DownloadPdfAndCsv, 6 = DownloadPdfOnly, 7 = DownloadCsvOnly",
        "format": "int32"
      },
      "InvoiceV2": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "documentNumber": {
            "type": "string",
            "nullable": true
          },
          "companyId": {
            "type": "integer",
            "format": "int32"
          },
          "invoiceDate": {
            "type": "string",
            "format": "date-time"
          },
          "dateDue": {
            "type": "string",
            "format": "date-time"
          },
          "totalTax": {
            "type": "number",
            "format": "double"
          },
          "total": {
            "type": "number",
            "format": "double"
          },
          "lineItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceItemV2"
            },
            "nullable": true
          },
          "rowNumber": {
            "type": "integer",
            "format": "int32"
          },
          "totalRows": {
            "type": "integer",
            "format": "int32"
          },
          "pdf": {
            "type": "string",
            "format": "byte",
            "nullable": true
          },
          "invoicePdfFileInformationId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "invoicePdfFileInformationIdStr": {
            "type": "string",
            "description": "The invoice PDF file information id as a string, for clients that cannot hold a 64-bit integer exactly.",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "InvoiceV2BaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "$ref": "#/components/schemas/InvoiceV2"
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "InvoiceV2Lite": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "documentNumber": {
            "type": "string",
            "nullable": true
          },
          "companyId": {
            "type": "integer",
            "format": "int32"
          },
          "invoiceDate": {
            "type": "string",
            "format": "date-time"
          },
          "dateDue": {
            "type": "string",
            "format": "date-time"
          },
          "totalTax": {
            "type": "number",
            "format": "double"
          },
          "total": {
            "type": "number",
            "format": "double"
          },
          "lineItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceItemV2"
            },
            "nullable": true
          },
          "rowNumber": {
            "type": "integer",
            "format": "int32"
          },
          "totalRows": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "InvoiceV2LiteICollectionBaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceV2Lite"
            },
            "nullable": true
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "InvoiceWrappingType": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "description": "0 = NoWrapping, 1 = ShouldWrapInvoiceLines, 2 = ShouldWrapInvoiceLinesOnlyForBulkRecordAdditions",
        "format": "int32"
      },
      "ItemLabelRequest": {
        "type": "object",
        "properties": {
          "consignmentIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          },
          "printA4": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "ItemType": {
        "enum": [
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          11,
          12,
          13,
          14,
          15,
          16,
          17,
          18,
          19,
          20,
          21,
          22,
          23,
          24,
          26,
          27,
          28,
          29,
          30,
          31,
          32,
          33,
          34,
          35,
          36,
          37,
          38,
          39,
          40,
          41,
          42,
          43,
          44,
          45,
          46,
          47,
          48,
          49,
          50,
          51,
          52,
          53,
          54,
          55,
          56,
          57,
          58,
          59,
          60,
          61,
          62,
          63,
          64,
          65,
          66,
          67,
          68,
          69,
          70,
          71,
          72,
          73,
          74,
          75
        ],
        "type": "integer",
        "description": "1 = Carton, 2 = Skid, 3 = Pallet, 4 = Crate, 5 = Satchel, 6 = Roll, 7 = Panel, 8 = Bag, 9 = Tube, 10 = Stillage, 11 = Envelope, 12 = Pack, 13 = Rails, 14 = TimberLoose, 15 = Combined, 16 = TimberPack, 17 = Pipe, 18 = BDouble, 19 = Semi, 20 = TwentyFootContainer, 21 = FortyFootContainer, 22 = Bundle, 23 = Case, 24 = Volume, 26 = IBC, 27 = GLPallet, 28 = GLTrolley, 29 = GLCarton, 30 = Trolley, 31 = TotalVolume, 32 = Drum, 33 = Loscam, 34 = LoscamWood, 35 = LoscamPlastic, 36 = Chep, 37 = ChepWood, 38 = ChepPlastic, 39 = Tray, 40 = Pot, 41 = SeedlingRack, 42 = SilverTrolley, 43 = LightTruckTyre, 44 = PassengerTyre, 45 = AgriculturalTyre, 46 = MowerTyre, 47 = SolidTyre, 48 = TractorTyre, 49 = TrailerTyre, 50 = TruckTyre, 51 = Pallecon, 52 = Item, 53 = Machine, 54 = JiffyBag, 55 = Pot200mm, 56 = Pot250mm, 57 = Pot300mm, 58 = Flatpack, 59 = BrandedPallet, 60 = Disposable, 61 = Plastic, 62 = MhpItem, 63 = Length, 64 = ChepIbc, 65 = LoscamIbc, 66 = ChepDisplay, 67 = LoscamDisplay, 68 = ChepM3Palletcon, 69 = LoscamM3Palletcon, 70 = ChepUnicon, 71 = LoscamUnicon, 72 = ChepIbcI6, 73 = LoscamIbcI6, 74 = FortyEightFootContainer, 75 = Bottle",
        "format": "int32"
      },
      "JToken": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/JToken"
        }
      },
      "JourneyDetails": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "The id of the journey this consignment is a leg of.",
            "format": "int32"
          },
          "pickupDepot": {
            "$ref": "#/components/schemas/DepotDetails"
          },
          "deliveryDepot": {
            "$ref": "#/components/schemas/DepotDetails"
          }
        },
        "additionalProperties": false,
        "description": "A consignment's place in a journey — which journey it belongs to and, when it is an interior leg, the\r\ndepots at the ends it shares with its neighbours. Embedded on\r\nMachship.Common.Models.ApiV2Models.Consignments.ConsignmentV2.Journey and populated only by the journey read\r\n(`JourneyService.GetByIdAsync`), since the association lives on the `JourneyConsignments`\r\njunction rather than on the consignment itself."
      },
      "LabelType": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9
        ],
        "type": "integer",
        "description": "0 = None, 1 = Manifest, 2 = Consignment, 3 = Item, 4 = SpecialInstructions, 5 = DangerousGoodsDocument, 6 = MO41, 7 = MachshipGeneratedCommercialInvoice, 8 = UploadedCommercialInvoice, 9 = ErrorLabel",
        "format": "int32"
      },
      "Location": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "postcode": {
            "type": "string",
            "nullable": true
          },
          "state": {
            "$ref": "#/components/schemas/State"
          },
          "stateId": {
            "type": "integer",
            "format": "int32"
          },
          "timeZoneId": {
            "type": "integer",
            "format": "int32"
          },
          "timeZone": {
            "$ref": "#/components/schemas/TimeZoneModel"
          },
          "suburb": {
            "type": "string",
            "nullable": true
          },
          "searchStr": {
            "type": "string",
            "description": "used if the user only passed in a string for the location. Location Service will then try to find location based on str",
            "nullable": true
          },
          "countryCode": {
            "type": "string",
            "description": "The country code is used to determine the international location",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "descriptionShort": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "isFrom": {
            "type": "boolean"
          },
          "locationAliases": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LocationAlias"
            },
            "nullable": true
          },
          "locationType": {
            "$ref": "#/components/schemas/LocationType"
          },
          "countryId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "country": {
            "$ref": "#/components/schemas/Country"
          },
          "subLocality": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LocationAlias": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "location": {
            "$ref": "#/components/schemas/Location"
          },
          "locationId": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LocationSearchOptions": {
        "type": "object",
        "properties": {
          "companyId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "countries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CountryType"
            },
            "nullable": true
          },
          "includePostOfficeBoxes": {
            "type": "boolean",
            "nullable": true
          },
          "isFromLocation": {
            "type": "boolean",
            "nullable": true
          },
          "includeLocationAliases": {
            "type": "boolean",
            "description": "Load each location's alias spellings onto the result. Off by default so API response\r\npayloads keep serialising locationAliases as null; opt in only for internal matching\r\n(eg auto-consolidation) that needs to recognise alias-spelling input.\r\nJsonIgnore keeps this internal flag out of the public API contract entirely: it must not\r\nappear in serialised payloads (request or response) nor be settable by external callers."
          }
        },
        "additionalProperties": false
      },
      "LocationSearchOptionsV2": {
        "type": "object",
        "properties": {
          "companyId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "countries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CountryType"
            },
            "nullable": true
          },
          "includePostOfficeBoxes": {
            "type": "boolean",
            "nullable": true
          },
          "isFromLocation": {
            "type": "boolean",
            "nullable": true
          },
          "includeLocationAliases": {
            "type": "boolean",
            "description": "Load each location's alias spellings onto the result. Off by default so API response\r\npayloads keep serialising locationAliases as null; opt in only for internal matching\r\n(eg auto-consolidation) that needs to recognise alias-spelling input.\r\nJsonIgnore keeps this internal flag out of the public API contract entirely: it must not\r\nappear in serialised payloads (request or response) nor be settable by external callers."
          },
          "retrievalSize": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LocationType": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "description": "0 = Suburb, 1 = PostOfficeBox, 2 = International",
        "format": "int32"
      },
      "LocationV2": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Machship's Location Id",
            "format": "int32"
          },
          "postcode": {
            "type": "string",
            "nullable": true
          },
          "state": {
            "$ref": "#/components/schemas/State"
          },
          "timeZone": {
            "type": "string",
            "description": "Timezone for this location",
            "nullable": true
          },
          "suburb": {
            "type": "string",
            "nullable": true
          },
          "subLocality": {
            "type": "string",
            "nullable": true
          },
          "country": {
            "$ref": "#/components/schemas/Country"
          },
          "description": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "locationType": {
            "$ref": "#/components/schemas/LocationType"
          }
        },
        "additionalProperties": false
      },
      "LocationV2ICollectionBaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LocationV2"
            },
            "nullable": true
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LocationV2IEnumerableBaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LocationV2"
            },
            "nullable": true
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MachKeyValuePair": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "nullable": true
          },
          "value": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Use this when you need to store key value pairs that need to be rendered to json at some point"
      },
      "MachshipItemType": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "value": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "abbreviation": {
            "type": "string",
            "nullable": true
          },
          "hexColor": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "isUniversal": {
            "type": "boolean"
          },
          "exclude": {
            "type": "boolean"
          },
          "usePalletSpaces": {
            "type": "boolean"
          },
          "sourceCompanyId": {
            "type": "integer",
            "description": "The company whose CompanyItemTypes row produced this entry, or null when the entry came from\r\nuniversal membership. Used to resolve which row wins when a company and one of its ancestors\r\ndisagree about an item type. Never serialised - it is an internal resolution detail.",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MachshipValidationResult": {
        "type": "object",
        "properties": {
          "memberNames": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "readOnly": true
          },
          "errorMessage": {
            "type": "string",
            "nullable": true
          },
          "validationType": {
            "$ref": "#/components/schemas/MachshipValidationType"
          }
        },
        "additionalProperties": false
      },
      "MachshipValidationResultV2": {
        "type": "object",
        "properties": {
          "memberNames": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "readOnly": true
          },
          "errorMessage": {
            "type": "string",
            "nullable": true
          },
          "validationType": {
            "$ref": "#/components/schemas/MachshipValidationType"
          }
        },
        "additionalProperties": false
      },
      "MachshipValidationType": {
        "enum": [
          0,
          1,
          2,
          3
        ],
        "type": "integer",
        "description": "0 = Success, 1 = Error, 2 = Info, 3 = Warning",
        "format": "int32"
      },
      "ManifestForListConsignment": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "consignmentNumber": {
            "type": "string",
            "nullable": true
          },
          "carrierConsignmentId": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ManifestForListWithConsignments": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "pickupNameAndLocation": {
            "type": "string",
            "nullable": true
          },
          "despatchDateLocal": {
            "type": "string",
            "format": "date-time"
          },
          "total": {
            "type": "number",
            "format": "double"
          },
          "carrierName": {
            "type": "string",
            "nullable": true
          },
          "serviceNames": {
            "type": "string",
            "nullable": true
          },
          "carrierAndServiceName": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "consignmentCount": {
            "type": "integer",
            "format": "int32"
          },
          "pickupLocationDescription": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "pickupLocation": {
            "$ref": "#/components/schemas/Location"
          },
          "pickupName": {
            "type": "string",
            "nullable": true
          },
          "isDgManifest": {
            "type": "boolean",
            "nullable": true
          },
          "isLimitedQuantityDgManifest": {
            "type": "boolean",
            "nullable": true
          },
          "isTest": {
            "type": "boolean"
          },
          "consignmentSubDgClassTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsignmentSubDgClassTypes"
            },
            "nullable": true
          },
          "dgClassTypeAndSubClassTypeForConsignment": {
            "type": "string",
            "nullable": true
          },
          "totalRows": {
            "type": "integer",
            "format": "int64"
          },
          "canRemanifest": {
            "type": "boolean"
          },
          "carrierCanRemanifest": {
            "type": "boolean"
          },
          "carrierAccountId": {
            "type": "integer",
            "format": "int32"
          },
          "carrierCanRebookPickup": {
            "type": "boolean"
          },
          "isInternational": {
            "type": "boolean"
          },
          "internationalPickupCity": {
            "type": "string",
            "nullable": true
          },
          "internationalPickupProvince": {
            "type": "string",
            "nullable": true
          },
          "internationalPickupPostcode": {
            "type": "string",
            "nullable": true
          },
          "internationalPickupCountryId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "internationalPickupCountry": {
            "$ref": "#/components/schemas/Country"
          },
          "consignments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ManifestForListConsignment"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ManifestForListWithConsignmentsGridDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ManifestForListWithConsignments"
            },
            "nullable": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          },
          "totalItems": {
            "type": "integer",
            "format": "int32"
          },
          "startIndex": {
            "type": "integer",
            "format": "int32"
          },
          "retrievalSize": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "ManifestRebooking": {
        "required": [
          "manifestId"
        ],
        "type": "object",
        "properties": {
          "pickupDateTime": {
            "type": "string",
            "description": "Pickup Date of this manifest. Should be in the format 'YYYY-MM-DD HH:SS'",
            "format": "date-time",
            "nullable": true
          },
          "palletSpaces": {
            "type": "integer",
            "description": "How many pallet spaces are required for this manifest?",
            "format": "int32"
          },
          "pickupClosingTime": {
            "type": "string",
            "description": "What is the closing time for this pickup location?",
            "format": "date-time",
            "nullable": true
          },
          "pickupSpecialInstructions": {
            "type": "string",
            "description": "Pickup special instructions for the driver (Optional)",
            "nullable": true
          },
          "manifestId": {
            "type": "integer",
            "description": "The Machship ID of the manifest to have it's pickup rebooked\r\nNote: Must already be manifested prior to rebooking its pickup",
            "format": "int32"
          },
          "totalWeightKgs": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "customValues": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomValue"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ManualTrackingStatus": {
        "type": "object",
        "properties": {
          "consignmentId": {
            "type": "integer",
            "description": "The ID of the consignment in MachShip",
            "format": "int32"
          },
          "status": {
            "$ref": "#/components/schemas/TrackingStatus"
          },
          "statusDateTimeLocal": {
            "type": "string",
            "description": "Optional.",
            "format": "date-time",
            "nullable": true
          },
          "itemReference": {
            "type": "string",
            "description": "When present this tracking status relates to an item on the consignment. When absent it relates\r\nto the consignment as a whole.",
            "nullable": true
          },
          "extraInformation": {
            "type": "string",
            "description": "Any extra information about this status - this will be shown in MachShip when viewing the tracking history",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A \"manual\" status is one that is not triggered from an external carrier's system but rather one that\r\nhas come to MachShip from its own API"
      },
      "MarketingConsentAssertionRequest": {
        "required": [
          "consented"
        ],
        "type": "object",
        "properties": {
          "companyId": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "description": "The merchant whose brand the consent is against. NOT the caller's own company\r\nautomatically and NOT a consignment: a broker acting for its client names the client,\r\nand the brand the row is filed under is then resolved from it the same way the render\r\npath resolves it (nearest published tracking page walking child -> root).\r\n            \r\n<br>\r\nCaller-supplied, so it is confined to the caller's accessible companies before the\r\naction runs. Required: there is no \"my company\" default, because a consent recorded\r\nagainst the wrong brand is not a mistake the recipient can see or undo.\r\n",
            "format": "int32"
          },
          "email": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "The recipient's email address, if the assertion covers it. Each channel is recorded\r\nindependently, so sending one of the two is normal; sending neither is an error rather\r\nthan a no-op, because there is nothing the request could have meant.",
            "nullable": true
          },
          "phone": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "The recipient's mobile number, if the assertion covers it. See Machship.Common.Models.MarketingConsents.MarketingConsentAssertionRequest.Email.",
            "nullable": true
          },
          "consented": {
            "type": "boolean",
            "description": "True to assert consent, false to assert a withdrawal. Required — there is no default,\r\nbecause the two directions are not symmetric in consequence and a missing value\r\nsilently defaulting to one of them is exactly the accidental opt-in this endpoint was\r\nsplit out of the consignment payload to prevent."
          },
          "consentUpdatedAt": {
            "type": "string",
            "description": "When the recipient made the decision. UTC.\r\n            \r\n<br>\r\nSend it. A consent without one cannot overturn a refusal the recipient made directly\r\nto us, because we cannot tell a box ticked at checkout a minute ago from a CRM flag\r\nset years ago, and reviving an unsubscribe is the failure this field exists to\r\nprevent. Without a timestamp the consent still applies to anyone who has never refused.\r\n",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "EC-654. Body for the authenticated endpoint a merchant uses to assert one recipient's\r\nmarketing consent against its own brand.\r\n            \r\n<br>\r\nThis carries a contact value, where Machship.Common.Models.MarketingConsents.MarketingConsentOptInRequest deliberately\r\ndoes not, and the difference is the whole point of the two endpoints. The public one is\r\nthe RECIPIENT speaking for themselves from a tracking page they were sent, so it must not\r\nlet a caller name an address; this one is the MERCHANT speaking for a recipient it already\r\nholds a relationship with, which it can only do for a brand it owns — enforced by the\r\naccessible-companies confinement on Machship.Common.Models.MarketingConsents.MarketingConsentAssertionRequest.CompanyId, not by the payload shape.\r\n"
      },
      "MarketingConsentDetails": {
        "type": "object",
        "properties": {
          "legalName": {
            "type": "string",
            "nullable": true
          },
          "tradingName": {
            "type": "string",
            "nullable": true
          },
          "unsubscribeEmail": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "The merchant's own details, named in the marketing consent wording (EC-685):\r\n\"`LegalName` (trading as `TradingName`) would like to include marketing … or by\r\nemailing `UnsubscribeEmail`.\"\r\n            \r\n<br>\r\nA root-level setting, NOT a section: it never appears in `sectionOrder` and renders\r\nnothing on its own. It lives in the template config so the wording live at any moment\r\ntraces to a published snapshot, and it belongs to the template owner by construction.\r\n<br>\r\nFAIL CLOSED. All three must be non-blank in the PUBLISHED config before the tracking page\r\nmay invite consent or the server will record one — see\r\n`MarketingSectionStripper.ReadConsentDetails`, the one reader. Blank is allowed in a\r\nsaved draft, because the gate is on completeness, not on save.\r\n<br>\r\nDoubles as the preference-centre payload type (`RecipientPreferences.ConsentDetails`),\r\nso the two surfaces cannot describe the merchant in different shapes.\r\n"
      },
      "MarketingConsentDetailsBaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "$ref": "#/components/schemas/MarketingConsentDetails"
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "NoteModelV2": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "idStr": {
            "type": "string",
            "description": "The note's id as a string, for clients that cannot hold a 64-bit integer exactly.",
            "nullable": true,
            "readOnly": true
          },
          "entityId": {
            "type": "integer",
            "format": "int32"
          },
          "note": {
            "type": "string",
            "nullable": true
          },
          "showUser": {
            "type": "boolean",
            "description": "Indicates whether this note is visible to everyone including users or only brokers and higher"
          },
          "createdBySystem": {
            "type": "boolean",
            "description": "Note generated from a system event"
          },
          "createdBy": {
            "type": "string",
            "nullable": true
          },
          "createdDate": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "NoteModelV2IEnumerableBaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NoteModelV2"
            },
            "nullable": true
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "NotificationCoverageRow": {
        "type": "object",
        "properties": {
          "event": {
            "type": "string",
            "description": "The event's config key, e.g. `inTransit`.",
            "nullable": true
          },
          "email": {
            "type": "boolean"
          },
          "sms": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "OperatingTime": {
        "type": "object",
        "properties": {
          "open": {
            "$ref": "#/components/schemas/TimeOnly"
          },
          "close": {
            "$ref": "#/components/schemas/TimeOnly"
          }
        },
        "additionalProperties": false,
        "description": "A clock-time window (Open, Close) for a single day. Uses System.TimeOnly rather than\r\nSystem.TimeSpan because TimeSpan can exceed 24 hours; an operating window can't.\r\nBoth endpoints are required — callers represent \"no window\" (closed all day or open 24 hours)\r\nwith a null `OperatingTime?` instead, disambiguated by the surrounding `IsOpen` flag."
      },
      "Organisation": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "companyId": {
            "type": "integer",
            "format": "int32"
          },
          "company": {
            "$ref": "#/components/schemas/CompanyLite"
          },
          "timeZoneId": {
            "type": "integer",
            "format": "int32"
          },
          "timeZone": {
            "$ref": "#/components/schemas/TimeZoneModel"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "abbreviation": {
            "type": "string",
            "nullable": true
          },
          "displayName": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "tradingName": {
            "type": "string",
            "nullable": true
          },
          "primaryColour": {
            "type": "string",
            "nullable": true
          },
          "secondaryColour": {
            "type": "string",
            "nullable": true
          },
          "logoFileInformationId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "logoFileInformationIdStr": {
            "type": "string",
            "description": "The logo file information id as a string, for clients that cannot hold a 64-bit integer exactly.",
            "nullable": true,
            "readOnly": true
          },
          "countryId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "country": {
            "$ref": "#/components/schemas/Country"
          },
          "totalRows": {
            "type": "integer",
            "format": "int32"
          },
          "adminUsers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrganisationAdminUser"
            },
            "nullable": true
          },
          "organisationInformation": {
            "$ref": "#/components/schemas/OrganisationInformation"
          }
        },
        "additionalProperties": false
      },
      "OrganisationAdminUser": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "organisationId": {
            "type": "integer",
            "format": "int32"
          },
          "organisation": {
            "$ref": "#/components/schemas/Organisation"
          },
          "userId": {
            "type": "integer",
            "format": "int32"
          },
          "user": {
            "$ref": "#/components/schemas/UserWithIdentity"
          },
          "totalRows": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "OrganisationDeactivatedMode": {
        "enum": [
          0,
          1
        ],
        "type": "integer",
        "description": "0 = Demo, 1 = Blocked",
        "format": "int32"
      },
      "OrganisationDetail": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "The ID in MachShip of the organisation",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "description": "The name of the organisation",
            "nullable": true
          },
          "abbreviation": {
            "type": "string",
            "nullable": true
          },
          "displayName": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "Details of an organisation's information that matches\r\na public key"
      },
      "OrganisationDetailBaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "$ref": "#/components/schemas/OrganisationDetail"
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "OrganisationDetailsForGrid": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "The ID in MachShip of the organisation",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "description": "The name of the organisation",
            "nullable": true
          },
          "abbreviation": {
            "type": "string",
            "nullable": true
          },
          "displayName": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "totalRows": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Details of an organisation's information that matches\r\na public key"
      },
      "OrganisationDetailsForGridGridDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrganisationDetailsForGrid"
            },
            "nullable": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          },
          "totalItems": {
            "type": "integer",
            "format": "int32"
          },
          "startIndex": {
            "type": "integer",
            "format": "int32"
          },
          "retrievalSize": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "OrganisationInformation": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "The ID of the organisation in the MachShip database",
            "format": "int32"
          },
          "status": {
            "$ref": "#/components/schemas/OrganisationStatus"
          },
          "textMessagingDisabled": {
            "type": "boolean",
            "description": "When true text messages will never be queued, even in the live system"
          },
          "deactivatedMode": {
            "$ref": "#/components/schemas/OrganisationDeactivatedMode"
          },
          "companyId": {
            "type": "integer",
            "description": "The ID of the Root Company that this Organisation was created from\r\n(i.e. `OrganisationEntity.CompanyId`). Used by callers that need an\r\nimpersonation-aware identity for \"the caller's Root Company\" without an\r\nextra DB round-trip — the value is cached alongside the rest of this DTO\r\nin Redis via `GlobalOrganisationService`.",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "description": "The organisation's name (i.e. `OrganisationEntity.Name`), for callers that need to\r\nname the tenant in user-facing copy. This is the plain name only — deliberately not the\r\nbracketed `\"{Name} ({Abbreviation})\"` display form that the admin-side\r\n`Organisation` model exposes as `DisplayName`. Null when the mapper was handed\r\nan entity without its `Organisation` back-reference, and null on cache entries\r\nwritten before this property existed.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Basic information about the organisation (company immediately below MachShip in the company tree structure) to\r\nbe passed everywhere with Machship.Common.Models.UserInformation.IUserInformation"
      },
      "OrganisationLinkDetail": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "The ID of the link in MachShip",
            "format": "int32"
          },
          "fromOrganisationDetails": {
            "$ref": "#/components/schemas/OrganisationDetail"
          },
          "toOrganisationDetails": {
            "$ref": "#/components/schemas/OrganisationDetail"
          }
        },
        "additionalProperties": false
      },
      "OrganisationLinkDetailICollectionBaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrganisationLinkDetail"
            },
            "nullable": true
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "OrganisationLinkRequest": {
        "required": [
          "fromOrganisationsPublicKey"
        ],
        "type": "object",
        "properties": {
          "fromOrganisationsPublicKey": {
            "minLength": 1,
            "type": "string",
            "description": "The \"public key\" of another organisation in MachShip. To obtain one an administrator user of\r\nthat organisation will have to supply it to you"
          },
          "toOrganisationId": {
            "type": "integer",
            "description": "The ID in MachShip of an organisation that you are an administrator of. Leave blank to use the organisation that you are currently linked to",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "OrganisationStatus": {
        "enum": [
          1,
          2,
          3,
          4
        ],
        "type": "integer",
        "description": "1 = Demo, 2 = Trial, 3 = Active, 4 = Deactivated",
        "format": "int32"
      },
      "OrganisationUnlinkRequest": {
        "type": "object",
        "properties": {
          "fromOrganisationId": {
            "type": "integer",
            "description": "The ID in MachShip of an organisation that makes up the \"from\" organisation in an existing link",
            "format": "int32"
          },
          "toOrganisationId": {
            "type": "integer",
            "description": "The ID in MachShip of an organisation that makes up the \"to\" organisation in an existing link",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "PackingGroup": {
        "enum": [
          1,
          2,
          3,
          4
        ],
        "type": "integer",
        "description": "1 = One, 2 = Two, 3 = Three, 4 = None",
        "format": "int32"
      },
      "PendingConsignmentItemContentV2": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "pendingConsignmentItemId": {
            "type": "integer",
            "format": "int32"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "reference1": {
            "type": "string",
            "nullable": true
          },
          "reference2": {
            "type": "string",
            "nullable": true
          },
          "reference3": {
            "type": "string",
            "nullable": true
          },
          "quantity": {
            "type": "integer",
            "format": "int32"
          },
          "dollarValue": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "ciMarksAndNumbers": {
            "type": "string",
            "nullable": true
          },
          "harmonizedCode": {
            "type": "string",
            "nullable": true
          },
          "partNumber": {
            "type": "string",
            "nullable": true
          },
          "purpose": {
            "type": "string",
            "nullable": true
          },
          "countryOfManufactureId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "countryOfManufactureCode": {
            "type": "string",
            "nullable": true
          },
          "countryOfManufacture": {
            "$ref": "#/components/schemas/Country"
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "Custom field values keyed by field key. Omitted from the payload when unset.",
            "nullable": true,
            "example": {
              "po_number": "PO-12345",
              "pallet_count": 3,
              "fragile": true,
              "delivery_date": "2026-10-20"
            }
          }
        },
        "additionalProperties": false
      },
      "PendingConsignmentItemDgItemV2": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "pendingConsignmentItemId": {
            "type": "integer",
            "format": "int32"
          },
          "companyDgItemId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "unNumber": {
            "type": "integer",
            "format": "int32"
          },
          "packingGroup": {
            "$ref": "#/components/schemas/PackingGroup"
          },
          "containerType": {
            "$ref": "#/components/schemas/ContainerType"
          },
          "aggregateQuantity": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "isAggregateQuantityWeight": {
            "type": "boolean",
            "nullable": true
          },
          "numberOfContainers": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "dgClassType": {
            "$ref": "#/components/schemas/DgClassType"
          },
          "subDgClassTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DgClassType"
            },
            "nullable": true
          },
          "properShippingName": {
            "type": "string",
            "nullable": true
          },
          "technicalOrChemicalGroupNames": {
            "type": "string",
            "nullable": true
          },
          "isMarinePollutant": {
            "type": "boolean",
            "nullable": true
          },
          "isTemperatureControlled": {
            "type": "boolean",
            "nullable": true
          },
          "isEmptyDgContainer": {
            "type": "boolean",
            "nullable": true
          },
          "dgHazchemId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "dgHazchem": {
            "$ref": "#/components/schemas/DgHazchem"
          },
          "flashpoint": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "Custom field values keyed by field key. Omitted from the payload when unset.",
            "nullable": true,
            "example": {
              "po_number": "PO-12345",
              "pallet_count": 3,
              "fragile": true,
              "delivery_date": "2026-10-20"
            }
          }
        },
        "additionalProperties": false
      },
      "PendingConsignmentItemReference": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "pendingConsignmentItemId": {
            "type": "integer",
            "format": "int32"
          },
          "carrierItemReference": {
            "type": "string",
            "nullable": true
          },
          "itemNumber": {
            "type": "integer",
            "format": "int32"
          },
          "carrierReference": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PendingConsignmentItemV2": {
        "type": "object",
        "properties": {
          "companyItemId": {
            "type": "integer",
            "description": "Links this item back up to a saved item in Machship",
            "format": "int32",
            "nullable": true
          },
          "itemType": {
            "$ref": "#/components/schemas/ItemType"
          },
          "name": {
            "type": "string",
            "description": "Name or description of the goods you are sending",
            "nullable": true
          },
          "sku": {
            "type": "string",
            "description": "the SKU or code of the item you are sending",
            "nullable": true
          },
          "quantity": {
            "type": "integer",
            "description": "Number of items",
            "format": "int32",
            "nullable": true
          },
          "volume": {
            "type": "number",
            "description": "Volume of the item",
            "format": "double",
            "nullable": true
          },
          "height": {
            "type": "number",
            "description": "Height of the item in cm",
            "format": "double",
            "nullable": true
          },
          "weight": {
            "type": "number",
            "description": "Weight of the item in kg",
            "format": "double",
            "nullable": true
          },
          "length": {
            "type": "number",
            "description": "Length of the item in cm",
            "format": "double",
            "nullable": true
          },
          "width": {
            "type": "number",
            "description": "Width of the item in cm",
            "format": "double",
            "nullable": true
          },
          "carrierReference": {
            "type": "string",
            "description": "The carrier reference of the item",
            "nullable": true
          },
          "palletSpaces": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "pendingConsignmentItemDgItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PendingConsignmentItemDgItemV2"
            },
            "nullable": true
          },
          "pendingConsignmentItemReferences": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PendingConsignmentItemReference"
            },
            "nullable": true
          },
          "pendingConsignmentItemContents": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PendingConsignmentItemContentV2"
            },
            "nullable": true
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "Custom field values keyed by field key. Omitted from the payload when unset.",
            "nullable": true,
            "example": {
              "po_number": "PO-12345",
              "pallet_count": 3,
              "fragile": true,
              "delivery_date": "2026-10-20"
            }
          }
        },
        "additionalProperties": false
      },
      "PendingConsignmentV2": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "companyAbbreviation": {
            "type": "string",
            "nullable": true
          },
          "companyId": {
            "type": "integer",
            "format": "int32"
          },
          "company": {
            "$ref": "#/components/schemas/CompanyV2"
          },
          "carrierId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "carrier": {
            "$ref": "#/components/schemas/CarrierLite"
          },
          "carrierAccountId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "carrierAccount": {
            "$ref": "#/components/schemas/CarrierAccountLite"
          },
          "carrierServiceId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "carrierService": {
            "$ref": "#/components/schemas/CarrierServiceLite"
          },
          "companyCarrierAccountId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "companyCarrierAccount": {
            "$ref": "#/components/schemas/CompanyCarrierAccountLite"
          },
          "carrierConsignmentId": {
            "type": "string",
            "nullable": true
          },
          "carrierReference": {
            "type": "string",
            "nullable": true
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "despatchDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "fromCompanyLocationId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "fromName": {
            "type": "string",
            "nullable": true
          },
          "fromContact": {
            "type": "string",
            "nullable": true
          },
          "fromPhone": {
            "type": "string",
            "nullable": true
          },
          "fromEmail": {
            "type": "string",
            "nullable": true
          },
          "fromAddressLine1": {
            "type": "string",
            "nullable": true
          },
          "fromAddressLine2": {
            "type": "string",
            "nullable": true
          },
          "fromLocation": {
            "$ref": "#/components/schemas/LocationV2"
          },
          "fromLocationId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "fromCompanyLocation": {
            "$ref": "#/components/schemas/CompanyLocationV2"
          },
          "toLocation": {
            "$ref": "#/components/schemas/LocationV2"
          },
          "toLocationId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "toCompanyLocationId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "toCompanyLocation": {
            "$ref": "#/components/schemas/CompanyLocationV2"
          },
          "toName": {
            "type": "string",
            "nullable": true
          },
          "toContact": {
            "type": "string",
            "nullable": true
          },
          "toPhone": {
            "type": "string",
            "nullable": true
          },
          "toEmail": {
            "type": "string",
            "nullable": true
          },
          "toAddressLine1": {
            "type": "string",
            "nullable": true
          },
          "toAddressLine2": {
            "type": "string",
            "nullable": true
          },
          "specialInstructions": {
            "type": "string",
            "nullable": true
          },
          "customerReference": {
            "type": "string",
            "nullable": true
          },
          "customerReference2": {
            "type": "string",
            "nullable": true
          },
          "printerToken": {
            "type": "string",
            "nullable": true
          },
          "sendTrackingEmail": {
            "type": "boolean",
            "nullable": true
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PendingConsignmentItemV2"
            },
            "nullable": true
          },
          "pendingDetails": {
            "$ref": "#/components/schemas/RawPendingConsignmentDetailsV2"
          },
          "isTest": {
            "type": "boolean"
          },
          "isLimitedQuantityDgConsignment": {
            "type": "boolean"
          },
          "isInternational": {
            "type": "boolean"
          },
          "internationalFromCity": {
            "type": "string",
            "nullable": true
          },
          "internationalFromPostcode": {
            "type": "string",
            "nullable": true
          },
          "internationalFromProvince": {
            "type": "string",
            "nullable": true
          },
          "fromCountryId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "fromCountry": {
            "$ref": "#/components/schemas/Country"
          },
          "internationalToCity": {
            "type": "string",
            "nullable": true
          },
          "internationalToPostcode": {
            "type": "string",
            "nullable": true
          },
          "internationalToProvince": {
            "type": "string",
            "nullable": true
          },
          "toCountryId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "toCountry": {
            "$ref": "#/components/schemas/Country"
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "Custom field values keyed by field key. Omitted from the payload when unset.",
            "nullable": true,
            "example": {
              "po_number": "PO-12345",
              "pallet_count": 3,
              "fragile": true,
              "delivery_date": "2026-10-20"
            }
          }
        },
        "additionalProperties": false
      },
      "PendingConsignmentV2BaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "$ref": "#/components/schemas/PendingConsignmentV2"
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PendingConsignmentV2ForList": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "companyAbbreviation": {
            "type": "string",
            "nullable": true
          },
          "companyId": {
            "type": "integer",
            "format": "int32"
          },
          "company": {
            "$ref": "#/components/schemas/CompanyV2"
          },
          "carrierId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "carrier": {
            "$ref": "#/components/schemas/CarrierLite"
          },
          "carrierAccountId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "carrierAccount": {
            "$ref": "#/components/schemas/CarrierAccountLite"
          },
          "carrierServiceId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "carrierService": {
            "$ref": "#/components/schemas/CarrierServiceLite"
          },
          "companyCarrierAccountId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "companyCarrierAccount": {
            "$ref": "#/components/schemas/CompanyCarrierAccountLite"
          },
          "carrierConsignmentId": {
            "type": "string",
            "nullable": true
          },
          "carrierReference": {
            "type": "string",
            "nullable": true
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "despatchDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "fromCompanyLocationId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "fromName": {
            "type": "string",
            "nullable": true
          },
          "fromContact": {
            "type": "string",
            "nullable": true
          },
          "fromPhone": {
            "type": "string",
            "nullable": true
          },
          "fromEmail": {
            "type": "string",
            "nullable": true
          },
          "fromAddressLine1": {
            "type": "string",
            "nullable": true
          },
          "fromAddressLine2": {
            "type": "string",
            "nullable": true
          },
          "fromLocation": {
            "$ref": "#/components/schemas/LocationV2"
          },
          "fromLocationId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "fromCompanyLocation": {
            "$ref": "#/components/schemas/CompanyLocationV2"
          },
          "toLocation": {
            "$ref": "#/components/schemas/LocationV2"
          },
          "toLocationId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "toCompanyLocationId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "toCompanyLocation": {
            "$ref": "#/components/schemas/CompanyLocationV2"
          },
          "toName": {
            "type": "string",
            "nullable": true
          },
          "toContact": {
            "type": "string",
            "nullable": true
          },
          "toPhone": {
            "type": "string",
            "nullable": true
          },
          "toEmail": {
            "type": "string",
            "nullable": true
          },
          "toAddressLine1": {
            "type": "string",
            "nullable": true
          },
          "toAddressLine2": {
            "type": "string",
            "nullable": true
          },
          "specialInstructions": {
            "type": "string",
            "nullable": true
          },
          "customerReference": {
            "type": "string",
            "nullable": true
          },
          "customerReference2": {
            "type": "string",
            "nullable": true
          },
          "printerToken": {
            "type": "string",
            "nullable": true
          },
          "sendTrackingEmail": {
            "type": "boolean",
            "nullable": true
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PendingConsignmentItemV2"
            },
            "nullable": true
          },
          "pendingDetails": {
            "$ref": "#/components/schemas/RawPendingConsignmentDetailsV2"
          },
          "isTest": {
            "type": "boolean"
          },
          "isInternational": {
            "type": "boolean"
          },
          "internationalFromCity": {
            "type": "string",
            "nullable": true
          },
          "internationalFromPostcode": {
            "type": "string",
            "nullable": true
          },
          "internationalFromProvince": {
            "type": "string",
            "nullable": true
          },
          "fromCountryId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "fromCountry": {
            "$ref": "#/components/schemas/Country"
          },
          "internationalToCity": {
            "type": "string",
            "nullable": true
          },
          "internationalToPostcode": {
            "type": "string",
            "nullable": true
          },
          "internationalToProvince": {
            "type": "string",
            "nullable": true
          },
          "toCountryId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "toCountry": {
            "$ref": "#/components/schemas/Country"
          },
          "isActive": {
            "type": "boolean"
          },
          "isDgConsignment": {
            "type": "boolean",
            "nullable": true
          },
          "isLimitedQuantityDgConsignment": {
            "type": "boolean"
          },
          "consignmentNumber": {
            "type": "string",
            "nullable": true
          },
          "itemCount": {
            "type": "integer",
            "format": "int32"
          },
          "totalRows": {
            "type": "integer",
            "format": "int32"
          },
          "consignmentId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "consolidatedIntoPendingConsignmentId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "Custom field values keyed by field key. Omitted from the payload when unset.",
            "nullable": true,
            "example": {
              "po_number": "PO-12345",
              "pallet_count": 3,
              "fragile": true,
              "delivery_date": "2026-10-20"
            }
          }
        },
        "additionalProperties": false
      },
      "PendingConsignmentV2ForListGridDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PendingConsignmentV2ForList"
            },
            "nullable": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          },
          "totalItems": {
            "type": "integer",
            "format": "int32"
          },
          "startIndex": {
            "type": "integer",
            "format": "int32"
          },
          "retrievalSize": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "PendingConsignmentV2ICollectionBaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PendingConsignmentV2"
            },
            "nullable": true
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PermanentPickup": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "carrierId": {
            "type": "integer",
            "format": "int32"
          },
          "carrier": {
            "$ref": "#/components/schemas/CarrierLite"
          },
          "permanentPickupCarrierServices": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PermanentPickupCarrierService"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PermanentPickupCarrierService": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "carrierServiceId": {
            "type": "integer",
            "format": "int32"
          },
          "carrierService": {
            "$ref": "#/components/schemas/CarrierServiceLite"
          }
        },
        "additionalProperties": false
      },
      "PermanentPickupLink": {
        "enum": [
          0,
          1
        ],
        "type": "integer",
        "description": "0 = LinkToAllServices, 1 = LinkToSpecificServices",
        "format": "int32"
      },
      "PermanentPickupV2": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "The ID of this permanent pickup in MachShip",
            "format": "int32"
          },
          "carrierId": {
            "type": "integer",
            "description": "A carrier's ID in MachShip",
            "format": "int32"
          },
          "linkType": {
            "$ref": "#/components/schemas/PermanentPickupLink"
          },
          "serviceIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "When Machship.Common.Models.ApiV2Models.CompanyLocations.PermanentPickupV2.LinkType is set to Machship.Common.Models.ApiV2Models.CompanyLocations.PermanentPickupLink.LinkToSpecificServices then this\r\nis an array of the carrier's service IDs in MachShip",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PermissionType": {
        "enum": [
          0,
          1,
          2,
          3
        ],
        "type": "integer",
        "description": "0 = None, 1 = View, 2 = Edit, 3 = CreateDelete",
        "format": "int32"
      },
      "PrinterLite": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "companyId": {
            "type": "integer",
            "format": "int32"
          },
          "isInheritable": {
            "type": "boolean"
          },
          "disabled": {
            "type": "boolean"
          },
          "disabledForSendToPrinter": {
            "type": "boolean"
          },
          "handshakeSuccessfulUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "pubSubChannel": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "apiToken": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/PrinterStatus"
          },
          "isPreProcess": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "PrinterStatus": {
        "enum": [
          0,
          1,
          2,
          3
        ],
        "type": "integer",
        "description": "This enum is used by the \"Machship App\" to report on whether the printer is connected to it\r\nor not. Initially the app will likely just return unknown0 = Unknown, 1 = Online, 2 = Offline, 3 = NoHandshake",
        "format": "int32"
      },
      "QuestionGroup": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "companyId": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "heading": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "questionGroupingType": {
            "$ref": "#/components/schemas/QuestionGroupingType"
          },
          "ordering": {
            "type": "integer",
            "format": "int32"
          },
          "inheritable": {
            "type": "boolean"
          },
          "companyQuestionGroupLinks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CompanyQuestionGroupLink"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuestionGroupingType": {
        "enum": [
          1,
          2
        ],
        "type": "integer",
        "description": "1 = Checkboxes, 2 = RadioButtons",
        "format": "int32"
      },
      "QuestionModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "question": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "answer": {
            "type": "string",
            "nullable": true
          },
          "abbreviation": {
            "type": "string",
            "nullable": true
          },
          "selected": {
            "type": "boolean",
            "description": "Nullable. If this is null, it has not been explicitly set. if it is true or false, then it has been set by something",
            "nullable": true
          },
          "hideQuestion": {
            "type": "boolean"
          },
          "questionGroup": {
            "$ref": "#/components/schemas/QuestionGroup"
          },
          "questionOrder": {
            "type": "integer",
            "description": "The ordering that the question should appear on the form",
            "format": "int32"
          },
          "carriers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CarrierLite"
            },
            "description": "This is used to list which carriers this question refers to. Ie. if install required? is only relevant to capital transport then this will only list capital transport",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuoteForList": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "consignmentNumber": {
            "type": "string",
            "nullable": true
          },
          "carrierAndServiceName": {
            "type": "string",
            "nullable": true
          },
          "customerReference": {
            "type": "string",
            "nullable": true
          },
          "itemCount": {
            "type": "integer",
            "format": "int32"
          },
          "fromName": {
            "type": "string",
            "nullable": true
          },
          "fromLocation": {
            "$ref": "#/components/schemas/Location"
          },
          "fromNameAndLocation": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "toName": {
            "type": "string",
            "nullable": true
          },
          "toLocation": {
            "$ref": "#/components/schemas/Location"
          },
          "toNameAndLocation": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "expiryDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "createdDate": {
            "type": "string",
            "format": "date-time"
          },
          "isHourly": {
            "type": "boolean"
          },
          "total": {
            "type": "number",
            "format": "double"
          },
          "totalDisplay": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "isDgConsignment": {
            "type": "boolean",
            "nullable": true
          },
          "totalRows": {
            "type": "integer",
            "format": "int32"
          },
          "isInternational": {
            "type": "boolean"
          },
          "internationalFromCity": {
            "type": "string",
            "nullable": true
          },
          "internationalFromPostcode": {
            "type": "string",
            "nullable": true
          },
          "internationalFromProvince": {
            "type": "string",
            "nullable": true
          },
          "fromCountryId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "fromCountry": {
            "$ref": "#/components/schemas/Country"
          },
          "internationalToCity": {
            "type": "string",
            "nullable": true
          },
          "internationalToPostcode": {
            "type": "string",
            "nullable": true
          },
          "internationalToProvince": {
            "type": "string",
            "nullable": true
          },
          "toCountryId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "toCountry": {
            "$ref": "#/components/schemas/Country"
          }
        },
        "additionalProperties": false
      },
      "QuoteForListGridDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QuoteForList"
            },
            "nullable": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          },
          "totalItems": {
            "type": "integer",
            "format": "int32"
          },
          "startIndex": {
            "type": "integer",
            "format": "int32"
          },
          "retrievalSize": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "QuoteTotalDisplayType": {
        "enum": [
          0,
          1,
          2,
          3
        ],
        "type": "integer",
        "description": "0 = InheritFromParent, 1 = TotalIncTax, 2 = TotalExTax, 3 = TotalExTaxAndFuel",
        "format": "int32"
      },
      "QuoteV2": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "companyId": {
            "type": "integer",
            "format": "int32"
          },
          "company": {
            "$ref": "#/components/schemas/CompanyV2"
          },
          "carrierServiceId": {
            "type": "integer",
            "format": "int32"
          },
          "carrierService": {
            "$ref": "#/components/schemas/CarrierServiceLite"
          },
          "subServiceId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "subService": {
            "$ref": "#/components/schemas/CarrierServiceSubServiceLite"
          },
          "fromCarrierZoneId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "fromCarrierZone": {
            "$ref": "#/components/schemas/ZoneV2"
          },
          "toCarrierZoneId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "toCarrierZone": {
            "$ref": "#/components/schemas/ZoneV2"
          },
          "consignmentNumber": {
            "type": "string",
            "nullable": true
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "createdByUserId": {
            "type": "integer",
            "format": "int32"
          },
          "despatchDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "despatchDateUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "despatchDateLocal": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "eta": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "etaLocal": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "etaUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "fromCompanyLocationId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "fromName": {
            "type": "string",
            "nullable": true
          },
          "fromContact": {
            "type": "string",
            "nullable": true
          },
          "fromPhone": {
            "type": "string",
            "nullable": true
          },
          "fromEmail": {
            "type": "string",
            "nullable": true
          },
          "fromAddressLine1": {
            "type": "string",
            "nullable": true
          },
          "fromAddressLine2": {
            "type": "string",
            "nullable": true
          },
          "fromLocation": {
            "$ref": "#/components/schemas/LocationV2"
          },
          "toLocation": {
            "$ref": "#/components/schemas/LocationV2"
          },
          "toCompanyLocationId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "toName": {
            "type": "string",
            "nullable": true
          },
          "toContact": {
            "type": "string",
            "nullable": true
          },
          "toPhone": {
            "type": "string",
            "nullable": true
          },
          "toEmail": {
            "type": "string",
            "nullable": true
          },
          "toAddressLine1": {
            "type": "string",
            "nullable": true
          },
          "toAddressLine2": {
            "type": "string",
            "nullable": true
          },
          "specialInstructions": {
            "type": "string",
            "nullable": true
          },
          "customerReference": {
            "type": "string",
            "nullable": true
          },
          "customerReference2": {
            "type": "string",
            "nullable": true
          },
          "companyCarrierAccount": {
            "$ref": "#/components/schemas/CompanyCarrierAccountLite"
          },
          "consignmentTotal": {
            "$ref": "#/components/schemas/ConsignmentTotal"
          },
          "totalWeight": {
            "type": "number",
            "format": "double"
          },
          "totalCubic": {
            "type": "number",
            "format": "double"
          },
          "totalVolume": {
            "type": "number",
            "format": "double"
          },
          "heaviestWeight": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "totalItemCount": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "insertedBy": {
            "type": "integer",
            "format": "int32"
          },
          "insertedByUserName": {
            "type": "string",
            "nullable": true
          },
          "permanentPickup": {
            "type": "boolean"
          },
          "distance": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "isHourly": {
            "type": "boolean"
          },
          "isTest": {
            "type": "boolean"
          },
          "consignmentItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsignmentItemV2"
            },
            "nullable": true
          },
          "consignmentCustomStatusId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "isInternational": {
            "type": "boolean"
          },
          "isReturnConsignment": {
            "type": "boolean"
          },
          "internationalFromCity": {
            "type": "string",
            "nullable": true
          },
          "internationalFromPostcode": {
            "type": "string",
            "nullable": true
          },
          "internationalFromProvince": {
            "type": "string",
            "nullable": true
          },
          "fromCountryId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "fromCountry": {
            "$ref": "#/components/schemas/Country"
          },
          "internationalToCity": {
            "type": "string",
            "nullable": true
          },
          "internationalToPostcode": {
            "type": "string",
            "nullable": true
          },
          "internationalToProvince": {
            "type": "string",
            "nullable": true
          },
          "toCountryId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "toCountry": {
            "$ref": "#/components/schemas/Country"
          },
          "quoteExpiryDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "quoteCreatedDateUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "quoteCreatedDateLocal": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "Custom field values keyed by field key. Omitted from the payload when unset.",
            "nullable": true,
            "example": {
              "po_number": "PO-12345",
              "pallet_count": 3,
              "fragile": true,
              "delivery_date": "2026-10-20"
            }
          }
        },
        "additionalProperties": false
      },
      "QuoteV2BaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "$ref": "#/components/schemas/QuoteV2"
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RawLocation": {
        "type": "object",
        "properties": {
          "suburb": {
            "type": "string",
            "nullable": true
          },
          "postcode": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RawLocationsWithLocationSearchOptions": {
        "type": "object",
        "properties": {
          "rawLocations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RawLocation"
            },
            "nullable": true
          },
          "locationSearchOptions": {
            "$ref": "#/components/schemas/LocationSearchOptions"
          }
        },
        "additionalProperties": false
      },
      "RawPendingConsignmentDetailsV2": {
        "type": "object",
        "properties": {
          "fromLocationName": {
            "type": "string",
            "description": "If the abbreviation was set but no company location was found, this will be set",
            "nullable": true
          },
          "fromLocationAbbreviation": {
            "type": "string",
            "description": "If the abbreviation was set but no company location was found, this will be set",
            "nullable": true
          },
          "toLocationName": {
            "type": "string",
            "description": "If the abbreviation was set but no company location was found, this will be set",
            "nullable": true
          },
          "toLocationAbbreviation": {
            "type": "string",
            "description": "If the abbreviation was set but no company location was found, this will be set",
            "nullable": true
          },
          "carrier": {
            "type": "string",
            "nullable": true
          },
          "carrierService": {
            "type": "string",
            "nullable": true
          },
          "carrierAccount": {
            "type": "string",
            "nullable": true
          },
          "companyCarrierAccount": {
            "type": "string",
            "nullable": true
          },
          "toPostcode": {
            "type": "string",
            "nullable": true
          },
          "toSuburb": {
            "type": "string",
            "nullable": true
          },
          "fromPostcode": {
            "type": "string",
            "nullable": true
          },
          "fromSuburb": {
            "type": "string",
            "nullable": true
          },
          "fromCountryCode": {
            "type": "string",
            "nullable": true
          },
          "toCountryCode": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "This is a model that is passed on from the API to provide the raw details that could not be properly normalised / converted into\r\nvalidated data (locations, services etc) but can serve as a guide for a human to select valid items from."
      },
      "RebookedPickup": {
        "type": "object",
        "properties": {
          "successful": {
            "type": "boolean"
          },
          "bookingReference": {
            "type": "string",
            "nullable": true
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EntityValidationResult"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RebookedPickupBaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "$ref": "#/components/schemas/RebookedPickup"
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ReceiverAccount": {
        "required": [
          "accountCode",
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "companyId": {
            "type": "integer",
            "format": "int32"
          },
          "company": {
            "$ref": "#/components/schemas/CompanyLite"
          },
          "carrierId": {
            "type": "integer",
            "format": "int32"
          },
          "carrier": {
            "$ref": "#/components/schemas/CarrierLite"
          },
          "name": {
            "minLength": 1,
            "type": "string"
          },
          "accountCode": {
            "minLength": 1,
            "type": "string"
          },
          "displayName": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "RejectionType": {
        "enum": [
          1,
          2,
          3
        ],
        "type": "integer",
        "description": "1 = RejectOnly, 2 = AmendOnly, 3 = BothRejectAndAmend",
        "format": "int32"
      },
      "RepriceConsignmentV2Model": {
        "type": "object",
        "properties": {
          "consignmentId": {
            "type": "integer",
            "format": "int32"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreateConsignmentItemComplexV2"
            },
            "nullable": true
          },
          "carrierServiceId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ReturnBookedManifestV2": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Machship's Manifest Id",
            "format": "int32"
          },
          "consignmentIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "All the consignment Ids that should be manifested together",
            "nullable": true
          },
          "companyId": {
            "type": "integer",
            "description": "The company's id in Machship which is manifesting these consignments",
            "format": "int32"
          },
          "carrierReference": {
            "type": "string",
            "description": "Any reference information from the Carrier pertaining to the manifest",
            "nullable": true
          },
          "bookingSuccessful": {
            "type": "boolean",
            "description": "Whether or not the manifest was booked successfully"
          },
          "errorMessage": {
            "type": "string",
            "description": "The error message if the booking was not successful",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ReturnBookedManifestV2ICollectionBaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReturnBookedManifestV2"
            },
            "nullable": true
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Role": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string"
          },
          "company": {
            "$ref": "#/components/schemas/CompanyLite"
          },
          "users": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/User"
            },
            "nullable": true
          },
          "components": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Component"
            },
            "nullable": true
          },
          "userType": {
            "$ref": "#/components/schemas/UserType"
          },
          "appPermissions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoleAppPermission"
            },
            "description": "App-permission assignments (spec §5.2). Null ⇒ not submitted: save leaves existing\r\n            assignments untouched (older clients never send this). Empty ⇒ clear all. Omitted from\r\n            responses when the role has none, keeping existing snapshots byte-identical.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RoleAppPermission": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "clientId": {
            "type": "string",
            "nullable": true
          },
          "permissionKey": {
            "type": "string",
            "nullable": true
          },
          "clientDisplayName": {
            "type": "string",
            "description": "The owning application's display name, resolved from the client registry on read — NOT from\r\nthe catalog. That distinction is the point: the registry is configuration, so this survives\r\neven when every one of the app's permissions has been tombstoned and the app has therefore\r\ndropped out of `GetAppPermissionCatalog` entirely. Without it a retained assignment for\r\na fully-departed app has no renderable heading, and the UI is left to fall back to the raw\r\nMachship.Common.Models.Roles.RoleAppPermission.ClientId. Falls back to Machship.Common.Models.Roles.RoleAppPermission.ClientId only if the client is no longer\r\nregistered at all, matching what `GetAppPermissionCatalogAsync` does.",
            "nullable": true
          },
          "displayName": {
            "type": "string",
            "description": "The permission's display name, resolved from the catalog on read. Present even when\r\nMachship.Common.Models.Roles.RoleAppPermission.Available is false: the sync tombstones with `RemovedUtc` and never\r\ndeletes the row (see OAuthClientPermissionSyncService's TOMBSTONE CONTRACT), so the name\r\nsurvives removal from the app's manifest. Null only if the catalog row is genuinely\r\nabsent, which that contract is designed to prevent.",
            "nullable": true
          },
          "available": {
            "type": "boolean",
            "description": "False when the app no longer offers this permission — tombstoned, or recategorized out of\r\nthe `customer` category. Mirrors RoleAppPermissionReconciler's assignable predicate\r\nexactly, so it answers \"would re-adding this be accepted?\".\r\n<br>\r\nLoad-bearing for the roles page, not decoration. `GetAppPermissionCatalog` excludes\r\nthese rows, while the role read does NOT join the catalog — so without this flag the UI\r\nreceives an assignment it can neither find nor label. Worse, the reconciler DELETES any\r\nexisting row absent from the submitted set while deliberately keeping resubmitted ones, so\r\na UI that renders only catalog-backed rows and submits only what it rendered would silently\r\ndelete these on the next unrelated save. Render them, and echo them back.\r\nSee `docs/superpowers/plans/2026-07-26-oidc-app-permissions-fe6-handover.md`.\r\n"
          }
        },
        "additionalProperties": false,
        "description": "An app permission (from the synced sub-app catalog) assigned to a role."
      },
      "RoleV2": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RoleV2ICollectionBaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoleV2"
            },
            "nullable": true
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RouteDespatchOptionLite": {
        "type": "object",
        "properties": {
          "despatchDateLocal": {
            "type": "string",
            "description": "The despatch date in the local time of the point of despatch",
            "format": "date-time"
          },
          "despatchDateUtc": {
            "type": "string",
            "description": "The despatch date in UTC",
            "format": "date-time"
          },
          "etaLocal": {
            "type": "string",
            "description": "The Estimated Time of Arrival in the local time of the point of delivery",
            "format": "date-time"
          },
          "etaUtc": {
            "type": "string",
            "description": "The Estimated Time of Arrival in UTC",
            "format": "date-time"
          },
          "durationInMinutes": {
            "type": "number",
            "description": "The estimated duration of the service in minutes",
            "format": "double",
            "readOnly": true
          },
          "isTimeWindow": {
            "type": "boolean"
          },
          "totalDays": {
            "type": "integer",
            "format": "int32"
          },
          "totalHours": {
            "type": "integer",
            "format": "int32"
          },
          "totalBusinessDays": {
            "type": "integer",
            "format": "int32"
          },
          "etaAffectedByPublicHolidays": {
            "type": "boolean"
          },
          "despatchDateAffectedByPublicHolidays": {
            "type": "boolean"
          },
          "businessDaysOnly": {
            "type": "boolean"
          },
          "customEtaString": {
            "type": "string",
            "nullable": true
          },
          "carrierAcceptsDespatchTimes": {
            "type": "boolean"
          }
        },
        "additionalProperties": false,
        "description": "A lightweight representation of the route despatch options\r\nwith despatch date and ETA information"
      },
      "RouteRequestComplexItemsV2": {
        "required": [
          "items"
        ],
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "description": "Optional: This GUID can be used to match up responses to requests when requesting multiple routes in the same call",
            "format": "uuid"
          },
          "despatchDateTimeUtc": {
            "type": "string",
            "description": "Optional: The date time the items would be available to despatched, in UTC. If this is not provided, it will default to NOW (UTC)",
            "format": "date-time",
            "nullable": true
          },
          "despatchDateTimeLocal": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "isReturn": {
            "type": "boolean",
            "description": "Optional, default false. When true, this request prices a customer return.\r\nWithout `returnsDepotId` (discovery) the FROM fields describe the customer's\r\nlocation — used only to rank nearby drop-off depots by distance, never priced\r\nagainst — and the response carries one option per depot. With\r\n`returnsDepotId` (pinned) the FROM fields are optional and the origin is\r\ntaken from the depot. Requires the returns-dropoffs feature to be enabled for\r\nyour account.",
            "default": false
          },
          "explainRoutes": {
            "type": "boolean",
            "description": "Optional, default false. When true the reasons each carrier and service was\r\nincluded or excluded can be read back from `GET apiv2/routes/explain/{routeRequestId}`,\r\nusing the `routeRequestId` every route response carries (equal to Machship.Common.Models.ApiV2Models.Routes.BaseRouteRequestV2.RequestId\r\nwhen you supplied one).",
            "default": false
          },
          "returnsDepotId": {
            "type": "integer",
            "description": "Optional. Re-prices exactly one returns drop-off depot — echo the\r\n`returnsDepotId` of an option from a discovery response. Requires\r\n`isReturn`; supplying it alone is rejected.",
            "format": "int32",
            "nullable": true
          },
          "returnCustomerLatitude": {
            "type": "number",
            "description": "Returns pricing only (isReturn discovery mode): the customer's\r\ncoordinates, when the caller (e.g. a returns portal) has them. When null,\r\nthe request's from-location suburb centre-point is used to rank returns\r\ndrop-off depots by distance. Ignored by all other routes endpoints.",
            "format": "double",
            "nullable": true
          },
          "returnCustomerLongitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "fromCompanyLocationId": {
            "type": "integer",
            "description": "The machship ID of the saved company from (pickup) location. This only needs to be specified if this route is coming from a saved location",
            "format": "int32",
            "nullable": true
          },
          "fromLocationId": {
            "type": "integer",
            "description": "The machship ID of the from (pickup) location. Can be left blank if supplying the suburb / postcode instead",
            "format": "int32",
            "nullable": true
          },
          "fromName": {
            "type": "string",
            "description": "An optional Name field that can be filled. If present, a company location lookup by name will be attempted in order\r\nto ascertain the FromCompanyLocationId",
            "nullable": true
          },
          "fromAbbreviation": {
            "type": "string",
            "description": "An optional Abbreviation field that can be filled. If present, a company location lookup by abbreviation will be attempted in order\r\nto ascertain the FromCompanyLocationId",
            "nullable": true
          },
          "fromLocation": {
            "$ref": "#/components/schemas/SendLocationV2"
          },
          "toCompanyLocationId": {
            "type": "integer",
            "description": "The machship ID of the saved company to (delivery) location. This only needs to be specified if this route is going to a saved location",
            "format": "int32",
            "nullable": true
          },
          "toLocationId": {
            "type": "integer",
            "description": "The machship ID of the to (receiver) location. Can be left blank if supplying the suburb / postcode instead",
            "format": "int32",
            "nullable": true
          },
          "toName": {
            "type": "string",
            "description": "An optional Name field that can be filled. If present, a company location lookup by name will be attempted in order\r\nto ascertain the ToCompanyLocationId",
            "nullable": true
          },
          "toAbbreviation": {
            "type": "string",
            "description": "An optional Abbreviation field that can be filled. If present, a company location lookup by abbreviation will be attempted in order\r\nto ascertain the ToCompanyLocationId",
            "nullable": true
          },
          "toLocation": {
            "$ref": "#/components/schemas/SendLocationV2"
          },
          "questionIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "A collection of Machship IDs corresponding to questions who's result is true",
            "nullable": true
          },
          "carrierIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "The (optional) listing of Machship Carrier IDs to restrict the returning routes for. When left blank all carriers\r\nyou have available will be queried for routes.",
            "nullable": true
          },
          "carrierAccountId": {
            "type": "integer",
            "description": "An (optional) Carrier Account ID in Machship. When supplied routes returned will be restricted to those from this\r\ncarrier account.",
            "format": "int32",
            "nullable": true
          },
          "carrierServiceId": {
            "type": "integer",
            "description": "An (optional) Machship ID of the Carrier Service. When supplied routes returned will be restricted to those for this\r\nservice.",
            "format": "int32",
            "nullable": true
          },
          "companyCarrierAccountId": {
            "type": "integer",
            "description": "An (optional) Machship ID of the Company Carrier Account. When supplied routes returned will be restricted to those for this\r\ncompany carrier account.",
            "format": "int32",
            "nullable": true
          },
          "companyId": {
            "type": "integer",
            "description": "An (optional) Machship ID of a company. When supplied the routes will be those of the company specified, when left\r\nblank they will be routes for the company associated with the authorised user.",
            "format": "int32",
            "nullable": true
          },
          "customerReference": {
            "type": "string",
            "description": "Optional",
            "nullable": true
          },
          "customerReference2": {
            "type": "string",
            "description": "Optional",
            "nullable": true
          },
          "fromAddressLine1": {
            "type": "string",
            "nullable": true
          },
          "fromAddressLine2": {
            "type": "string",
            "nullable": true
          },
          "toAddressLine1": {
            "type": "string",
            "nullable": true
          },
          "toAddressLine2": {
            "type": "string",
            "nullable": true
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreateConsignmentItemComplexV2"
            },
            "description": "A collection of the items being sent"
          },
          "isInternational": {
            "type": "boolean",
            "description": "Flag to indicate if this consignment is international."
          },
          "internationalFromCity": {
            "type": "string",
            "description": "International from city.",
            "nullable": true
          },
          "internationalFromPostcode": {
            "type": "string",
            "description": "International from postcode.",
            "nullable": true
          },
          "internationalFromProvince": {
            "type": "string",
            "description": "International from province.",
            "nullable": true
          },
          "internationalFromAddressLine1": {
            "type": "string",
            "nullable": true
          },
          "internationalFromAddressLine2": {
            "type": "string",
            "nullable": true
          },
          "fromCountryId": {
            "type": "integer",
            "description": "MachShip assigned ID of the country of origin.",
            "format": "int32",
            "nullable": true
          },
          "fromCountryCode": {
            "type": "string",
            "description": "Two or three letter ISO code of the country of origin.",
            "nullable": true
          },
          "fromCountry": {
            "$ref": "#/components/schemas/Country"
          },
          "internationalToCity": {
            "type": "string",
            "description": "International to city.",
            "nullable": true
          },
          "internationalToPostcode": {
            "type": "string",
            "description": "International to postcode.",
            "nullable": true
          },
          "internationalToProvince": {
            "type": "string",
            "description": "International to province.",
            "nullable": true
          },
          "internationalToAddressLine1": {
            "type": "string",
            "nullable": true
          },
          "internationalToAddressLine2": {
            "type": "string",
            "nullable": true
          },
          "toCountryId": {
            "type": "integer",
            "description": "MachShip assigned ID of the destination country.",
            "format": "int32",
            "nullable": true
          },
          "toCountryCode": {
            "type": "string",
            "description": "Two or three letter ISO code of the destination country.",
            "nullable": true
          },
          "toCountry": {
            "$ref": "#/components/schemas/Country"
          }
        },
        "additionalProperties": false,
        "description": "Contains all the information required to return a list of routes for items sent from point A to point B at a particular\r\ntime."
      },
      "RouteRequestV2": {
        "required": [
          "items"
        ],
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "description": "Optional: This GUID can be used to match up responses to requests when requesting multiple routes in the same call",
            "format": "uuid"
          },
          "despatchDateTimeUtc": {
            "type": "string",
            "description": "Optional: The date time the items would be available to despatched, in UTC. If this is not provided, it will default to NOW (UTC)",
            "format": "date-time",
            "nullable": true
          },
          "despatchDateTimeLocal": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "isReturn": {
            "type": "boolean",
            "description": "Optional, default false. When true, this request prices a customer return.\r\nWithout `returnsDepotId` (discovery) the FROM fields describe the customer's\r\nlocation — used only to rank nearby drop-off depots by distance, never priced\r\nagainst — and the response carries one option per depot. With\r\n`returnsDepotId` (pinned) the FROM fields are optional and the origin is\r\ntaken from the depot. Requires the returns-dropoffs feature to be enabled for\r\nyour account.",
            "default": false
          },
          "explainRoutes": {
            "type": "boolean",
            "description": "Optional, default false. When true the reasons each carrier and service was\r\nincluded or excluded can be read back from `GET apiv2/routes/explain/{routeRequestId}`,\r\nusing the `routeRequestId` every route response carries (equal to Machship.Common.Models.ApiV2Models.Routes.BaseRouteRequestV2.RequestId\r\nwhen you supplied one).",
            "default": false
          },
          "returnsDepotId": {
            "type": "integer",
            "description": "Optional. Re-prices exactly one returns drop-off depot — echo the\r\n`returnsDepotId` of an option from a discovery response. Requires\r\n`isReturn`; supplying it alone is rejected.",
            "format": "int32",
            "nullable": true
          },
          "returnCustomerLatitude": {
            "type": "number",
            "description": "Returns pricing only (isReturn discovery mode): the customer's\r\ncoordinates, when the caller (e.g. a returns portal) has them. When null,\r\nthe request's from-location suburb centre-point is used to rank returns\r\ndrop-off depots by distance. Ignored by all other routes endpoints.",
            "format": "double",
            "nullable": true
          },
          "returnCustomerLongitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "fromCompanyLocationId": {
            "type": "integer",
            "description": "The machship ID of the saved company from (pickup) location. This only needs to be specified if this route is coming from a saved location",
            "format": "int32",
            "nullable": true
          },
          "fromLocationId": {
            "type": "integer",
            "description": "The machship ID of the from (pickup) location. Can be left blank if supplying the suburb / postcode instead",
            "format": "int32",
            "nullable": true
          },
          "fromName": {
            "type": "string",
            "description": "An optional Name field that can be filled. If present, a company location lookup by name will be attempted in order\r\nto ascertain the FromCompanyLocationId",
            "nullable": true
          },
          "fromAbbreviation": {
            "type": "string",
            "description": "An optional Abbreviation field that can be filled. If present, a company location lookup by abbreviation will be attempted in order\r\nto ascertain the FromCompanyLocationId",
            "nullable": true
          },
          "fromLocation": {
            "$ref": "#/components/schemas/SendLocationV2"
          },
          "toCompanyLocationId": {
            "type": "integer",
            "description": "The machship ID of the saved company to (delivery) location. This only needs to be specified if this route is going to a saved location",
            "format": "int32",
            "nullable": true
          },
          "toLocationId": {
            "type": "integer",
            "description": "The machship ID of the to (receiver) location. Can be left blank if supplying the suburb / postcode instead",
            "format": "int32",
            "nullable": true
          },
          "toName": {
            "type": "string",
            "description": "An optional Name field that can be filled. If present, a company location lookup by name will be attempted in order\r\nto ascertain the ToCompanyLocationId",
            "nullable": true
          },
          "toAbbreviation": {
            "type": "string",
            "description": "An optional Abbreviation field that can be filled. If present, a company location lookup by abbreviation will be attempted in order\r\nto ascertain the ToCompanyLocationId",
            "nullable": true
          },
          "toLocation": {
            "$ref": "#/components/schemas/SendLocationV2"
          },
          "questionIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "A collection of Machship IDs corresponding to questions who's result is true",
            "nullable": true
          },
          "carrierIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "The (optional) listing of Machship Carrier IDs to restrict the returning routes for. When left blank all carriers\r\nyou have available will be queried for routes.",
            "nullable": true
          },
          "carrierAccountId": {
            "type": "integer",
            "description": "An (optional) Carrier Account ID in Machship. When supplied routes returned will be restricted to those from this\r\ncarrier account.",
            "format": "int32",
            "nullable": true
          },
          "carrierServiceId": {
            "type": "integer",
            "description": "An (optional) Machship ID of the Carrier Service. When supplied routes returned will be restricted to those for this\r\nservice.",
            "format": "int32",
            "nullable": true
          },
          "companyCarrierAccountId": {
            "type": "integer",
            "description": "An (optional) Machship ID of the Company Carrier Account. When supplied routes returned will be restricted to those for this\r\ncompany carrier account.",
            "format": "int32",
            "nullable": true
          },
          "companyId": {
            "type": "integer",
            "description": "An (optional) Machship ID of a company. When supplied the routes will be those of the company specified, when left\r\nblank they will be routes for the company associated with the authorised user.",
            "format": "int32",
            "nullable": true
          },
          "customerReference": {
            "type": "string",
            "description": "Optional",
            "nullable": true
          },
          "customerReference2": {
            "type": "string",
            "description": "Optional",
            "nullable": true
          },
          "fromAddressLine1": {
            "type": "string",
            "nullable": true
          },
          "fromAddressLine2": {
            "type": "string",
            "nullable": true
          },
          "toAddressLine1": {
            "type": "string",
            "nullable": true
          },
          "toAddressLine2": {
            "type": "string",
            "nullable": true
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreateConsignmentItemV2"
            },
            "description": "A collection of the items being sent"
          }
        },
        "additionalProperties": false,
        "description": "Contains all the information required to return a list of routes for items sent from point A to point B at a particular\r\ntime."
      },
      "RouteReturnsDepotV2": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "The returns depot's id. Echo it back as ReturnsDepotId when booking this option.",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "description": "The depot's display name, as the carrier publishes it.",
            "nullable": true
          },
          "addressLine1": {
            "type": "string",
            "description": "First line of the depot's street address.",
            "nullable": true
          },
          "addressLine2": {
            "type": "string",
            "description": "Second line of the depot's street address, when it has one.",
            "nullable": true
          },
          "distanceKm": {
            "type": "number",
            "description": "Straight-line km from the customer's point to this depot.",
            "format": "double",
            "nullable": true
          },
          "operatingHours": {
            "type": "string",
            "description": "The carrier-published opening-hours summary for this drop-off point, exactly as the carrier supplied it (free text, never parsed or reformatted). Null when the carrier publishes none.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Drop-off depot summary on a returns route option."
      },
      "RoutesResponseV2": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "A unique ID for the routes response on the Machship server",
            "format": "uuid"
          },
          "routes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SimpleRouteV2"
            },
            "description": "The collection of routes that are returned from the request",
            "nullable": true
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResult"
            },
            "nullable": true
          },
          "routeRequestId": {
            "type": "string",
            "description": "The guid this request ran under; equal to the request's `requestId` when you supplied one.\r\nAlways present, including when no routes were found. With `explainRoutes: true`, read the\r\nexplanation back from `GET apiv2/routes/explain/{routeRequestId}`.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "The response object with a list of routes and a unique ID of the response\r\nfrom the server"
      },
      "RoutesResponseV2ArrayBaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoutesResponseV2"
            },
            "nullable": true
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RoutesResponseV2BaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "$ref": "#/components/schemas/RoutesResponseV2"
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SendLocationV2": {
        "type": "object",
        "properties": {
          "suburb": {
            "type": "string",
            "nullable": true
          },
          "postcode": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SendToPrinterGroup": {
        "type": "object",
        "properties": {
          "consignmentIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          },
          "carrier": {
            "$ref": "#/components/schemas/CarrierLite"
          },
          "company": {
            "$ref": "#/components/schemas/CompanyLite"
          },
          "isDg": {
            "type": "boolean"
          },
          "canPrintItemLabels": {
            "type": "boolean"
          },
          "canPrintConsignments": {
            "type": "boolean"
          },
          "canPrintManifests": {
            "type": "boolean"
          },
          "canPrintCommercialInvoice": {
            "type": "boolean"
          },
          "hasCommercialInvoice": {
            "type": "boolean"
          },
          "canPrintSpecialInstructions": {
            "type": "boolean"
          },
          "countryId": {
            "type": "integer",
            "format": "int32"
          },
          "printers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PrinterLite"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SendToPrinterModel": {
        "type": "object",
        "properties": {
          "anyGroupIsDg": {
            "type": "boolean",
            "readOnly": true
          },
          "anyGroupIsAu": {
            "type": "boolean",
            "readOnly": true
          },
          "canPrintItemLabels": {
            "type": "boolean",
            "readOnly": true
          },
          "canPrintConsignments": {
            "type": "boolean",
            "readOnly": true
          },
          "canPrintManifests": {
            "type": "boolean",
            "readOnly": true
          },
          "allGroupsAreDg": {
            "type": "boolean",
            "readOnly": true
          },
          "allGroupsCanPrintItemLabels": {
            "type": "boolean",
            "readOnly": true
          },
          "allGroupsCanPrintConsignments": {
            "type": "boolean",
            "readOnly": true
          },
          "allGroupsCanPrintManifests": {
            "type": "boolean",
            "readOnly": true
          },
          "allGroupsCanPrintCommercialInvoice": {
            "type": "boolean",
            "readOnly": true
          },
          "anyGroupHasCommercialInvoice": {
            "type": "boolean",
            "readOnly": true
          },
          "canPrintSpecialInstructions": {
            "type": "boolean",
            "readOnly": true
          },
          "allGroupsCanPrintSpecialInstructions": {
            "type": "boolean",
            "readOnly": true
          },
          "printers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PrinterLite"
            },
            "nullable": true
          },
          "groups": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SendToPrinterGroup"
            },
            "nullable": true
          },
          "defaultItemPrinter": {
            "$ref": "#/components/schemas/PrinterLite"
          },
          "defaultA4Printer": {
            "$ref": "#/components/schemas/PrinterLite"
          }
        },
        "additionalProperties": false
      },
      "SendToPrinterModelBaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "$ref": "#/components/schemas/SendToPrinterModel"
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SendToPrinterRequest": {
        "type": "object",
        "properties": {
          "consignmentIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          },
          "labelType": {
            "$ref": "#/components/schemas/LabelType"
          },
          "printerId": {
            "type": "integer",
            "format": "int32"
          },
          "printA4": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ShowManifestSummaryType": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "description": "0 = No, 1 = Yes, 2 = InheritFromParent",
        "format": "int32"
      },
      "SimpleNoteWithCreateData": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "idStr": {
            "type": "string",
            "description": "The note's id as a string, for clients that cannot hold a 64-bit integer exactly.",
            "nullable": true,
            "readOnly": true
          },
          "entityType": {
            "$ref": "#/components/schemas/EntityType"
          },
          "entityId": {
            "type": "integer",
            "format": "int32"
          },
          "note": {
            "type": "string",
            "nullable": true
          },
          "showUser": {
            "type": "boolean"
          },
          "createdBySystem": {
            "type": "boolean"
          },
          "createdBy": {
            "type": "string",
            "nullable": true
          },
          "createdById": {
            "type": "integer",
            "format": "int32"
          },
          "createdDate": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "SimpleRouteV2": {
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "description": "The GUID which can be used to match a response back to the request made for it",
            "format": "uuid"
          },
          "carrier": {
            "$ref": "#/components/schemas/CarrierLiteWithCustomFieldSets"
          },
          "carrierService": {
            "$ref": "#/components/schemas/CarrierServiceLite"
          },
          "carrierAccount": {
            "$ref": "#/components/schemas/CarrierAccountLite"
          },
          "companyCarrierAccountId": {
            "type": "integer",
            "description": "The Company Carrier Account for the route",
            "format": "int32"
          },
          "companyId": {
            "type": "integer",
            "description": "The Machship ID of the Company the route is connected to",
            "format": "int32"
          },
          "consignmentTotal": {
            "$ref": "#/components/schemas/ConsignmentTotal"
          },
          "fromCompanyLocationId": {
            "type": "integer",
            "description": "The Machship ID of the From Company Location",
            "format": "int32",
            "nullable": true
          },
          "fromAddress": {
            "$ref": "#/components/schemas/Address"
          },
          "fromLocation": {
            "$ref": "#/components/schemas/LocationV2"
          },
          "fromZone": {
            "$ref": "#/components/schemas/CarrierZoneLite"
          },
          "toCompanyLocationId": {
            "type": "integer",
            "description": "The Machship ID of the To Company Location",
            "format": "int32",
            "nullable": true
          },
          "toAddress": {
            "$ref": "#/components/schemas/Address"
          },
          "toLocation": {
            "$ref": "#/components/schemas/LocationV2"
          },
          "toZone": {
            "$ref": "#/components/schemas/CarrierZoneLite"
          },
          "despatchOptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RouteDespatchOptionLite"
            },
            "description": "The despatch options for this route",
            "nullable": true
          },
          "fuelLevyPercentage": {
            "type": "number",
            "format": "double"
          },
          "sellFuelLevyPercentage": {
            "type": "number",
            "format": "double"
          },
          "taxPercentage": {
            "type": "number",
            "format": "double"
          },
          "electiveSurcharges": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsignmentSurchargeV2"
            },
            "description": "Contains all Elective surcharges",
            "nullable": true
          },
          "automaticSurcharges": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsignmentSurchargeV2"
            },
            "description": "Contains all Automatic Surchanges",
            "nullable": true
          },
          "totalWeight": {
            "type": "number",
            "description": "The total weight of all items in the current consignment",
            "format": "double"
          },
          "totalCubic": {
            "type": "number",
            "description": "The total cubic weight of all items in the current consignment",
            "format": "double"
          },
          "totalVolume": {
            "type": "number",
            "description": "The total volume of all items in the current consignment",
            "format": "double"
          },
          "carrierLogoFileName": {
            "type": "string",
            "description": "the carrier's image filename. This file can be found at {machshipenvironment}/app/css/img/carrierLogos/{carrierLogoFileName}",
            "nullable": true
          },
          "priceDisplay": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "priceDisplayType": {
            "$ref": "#/components/schemas/QuoteTotalDisplayType"
          },
          "isHourly": {
            "type": "boolean"
          },
          "isReturnDropOff": {
            "type": "boolean",
            "description": "Returns quoting: true when this option is a depot DROP-OFF (the\r\nReturnsDepot block describes where). Absent/false on a returns quote means\r\na standard PICKUP from the caller's own From address. Omitted entirely on\r\nnon-returns quotes."
          },
          "returnsDepotId": {
            "type": "integer",
            "description": "Returns pricing only: the returns drop-off depot this option was priced from.\r\nNull for ordinary routes and for pickup-mode returns options. When booking a\r\ndrop-off option, echo ReturnsDepotId back on the create request so the\r\nconsignment is created from the depot.",
            "format": "int32",
            "nullable": true
          },
          "returnsDepot": {
            "$ref": "#/components/schemas/RouteReturnsDepotV2"
          }
        },
        "additionalProperties": false
      },
      "State": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "StringBaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "type": "string",
            "nullable": true
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SubComponent": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "subComponentType": {
            "$ref": "#/components/schemas/SubComponentType"
          },
          "name": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "description": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "allowedUserTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserType"
            },
            "nullable": true
          },
          "allowedEnterpriseTiers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EnterpriseTier"
            },
            "description": "These are only in effect if a) the user is of type \"Enterprise\" and b) the collection is not-null or empty",
            "nullable": true
          },
          "permission": {
            "$ref": "#/components/schemas/PermissionType"
          }
        },
        "additionalProperties": false
      },
      "SubComponentType": {
        "enum": [
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          11,
          12,
          13,
          14,
          15,
          16,
          17,
          18,
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          29,
          30,
          31,
          32,
          33,
          34,
          35,
          36,
          37,
          38,
          39,
          40,
          41,
          42,
          43,
          44,
          45,
          46,
          47,
          48,
          49,
          50,
          51,
          52,
          53,
          54,
          57,
          58,
          59,
          60,
          61,
          63,
          64,
          65,
          66,
          67,
          68,
          69,
          70,
          71,
          72,
          73,
          74,
          75,
          76,
          77,
          78,
          79,
          80,
          81,
          82,
          83,
          84,
          85,
          86,
          87,
          88,
          89,
          90,
          91,
          92,
          93,
          94,
          95,
          96,
          97,
          98,
          99,
          100,
          101,
          102,
          103,
          104,
          105,
          106,
          107,
          110,
          111,
          112,
          113,
          114,
          115,
          118,
          119,
          120,
          121,
          122,
          123,
          124
        ],
        "type": "integer",
        "description": "1 = SysAdminUsers, 2 = ConsignmentsQuote, 3 = ConsignmentsConsignment, 4 = ConsignmentsManifest, 5 = ConsignmentsTracking, 6 = SysAdminCompanies, 7 = CompanyLocations, 8 = CompanyItems, 9 = CompanyImpersonate, 10 = BrokerCompanyCarrierAccounts, 11 = ConsignmentsSetSellBelowCost, 12 = BrokerImportLaneRates, 13 = BrokerRoutes, 14 = BrokerCarriers, 15 = BrokerCarrierServices, 16 = BrokerCarrierAccounts, 17 = BrokerCarrierServiceSurcharges, 18 = BrokerCarrierZones, 19 = BrokerCarrierItemTypes, 20 = BrokerCarrierLaneRates, 21 = BrokerCarrierServiceTransitDurations, 22 = BrokerCarrierServiceGroups, 23 = ConsignmentsPrintLabels, 24 = ConsignmentsAttachments, 25 = BrokerCarrierInvoicesImport, 26 = BrokerCarrierInvoicesReconcile, 27 = FinancialInvoices, 29 = FinancialAdjustments, 30 = BrokerNotes, 31 = ConsignmentsChangeStatus, 32 = DashboardsOperations, 33 = DashboardsFinancial, 34 = DashboardsManagement, 35 = DashboardsUser, 36 = ConsignmentsCreateExisting, 37 = DashboardsClients, 38 = ConsignmentsImport, 39 = FuelSurcharges, 40 = ReportsReport, 41 = ReportsExportConsignments, 42 = BrokerRouteRestrictions, 43 = ConsignmentsCanSeeConsignmentSellPrices, 44 = FinancialReports, 45 = CompanyCanUseCompanyLocations, 46 = CompanyCanUseCompanyItems, 47 = DashboardsFloorStaff, 48 = BrokerRouteModifiers, 49 = ConsignmentsCancellation, 50 = BrokerTimeConfigurations, 51 = ConsignmentUndeleteConsignment, 52 = BrokerCustomFields, 53 = PrinterSettings, 54 = ConsignmentRepriceConsignment, 57 = Emails, 58 = IntegrationFiles, 59 = AdminReceiverAccounts, 60 = TextMessages, 61 = BrokerCustomNotifications, 63 = MachshipAppSettings, 64 = CompanyDgItems, 65 = CompanyCanUseCompanyDgItems, 66 = CanUseDgItems, 67 = AdminWorkflowTasks, 68 = UserApiTokens, 69 = PendingConsignments, 70 = RevenueByCarrier, 71 = DashboardsConsignmentStatus, 72 = DashboardsNotifications, 73 = DashboardsTierBreakdown, 74 = RevenueByCarrierExport, 75 = ConsignmentsExport, 76 = DashboardsConsignmentStatusExport, 77 = DashboardsTierBreakdownExport, 78 = ReportsBulkQuoteReport, 79 = Xero, 80 = Ratecards, 81 = Uprating, 82 = Notifications, 83 = EmailsExport, 84 = Organisations, 85 = ConsignmentsRemanifest, 86 = UsersExport, 87 = CompaniesExport, 88 = CarrierAccountsExport, 89 = PendingConsignmentsExport, 90 = CompanyCarrierAccountsExport, 91 = SurchargesExport, 92 = MyApiTokens, 93 = TagAdmin, 94 = TagAssign, 95 = ConsignmentStatusUpdate, 96 = SalesApproval, 97 = SupportApproval, 98 = DirectorApproval, 99 = OrderForm, 100 = CompanyIntegrations, 101 = BrokerCarrierInvoicesExport, 102 = FinancialInvoicesExport, 103 = ConsignmentsRebookPickup, 104 = SetConsignmentCustomStatus, 105 = ConsignmentCustomStatus, 106 = FuelSurchargeExport, 107 = BrokerShippingRules, 110 = SysAdminRoles, 111 = TrackingPageTemplates, 112 = CompanyDepots, 113 = ConsignmentsJourney, 114 = ConsignmentsJourneyExport, 115 = CompanyAutomations, 118 = BrokerAddOns, 119 = MyConnectedApps, 120 = ConnectedApps, 121 = ApplicationGrants, 122 = ConsignmentsExplainRoutes, 123 = MarketingConsentAssertion, 124 = CustomFieldDefinitions",
        "format": "int32"
      },
      "SubService": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "carrierId": {
            "type": "integer",
            "format": "int32"
          },
          "carrier": {
            "$ref": "#/components/schemas/CarrierLite"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "abbreviation": {
            "type": "string",
            "nullable": true
          },
          "serialisedSettings": {
            "type": "string",
            "nullable": true
          },
          "carrierServiceSubServices": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CarrierServiceSubService"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SurchargePriceType": {
        "enum": [
          0,
          1,
          2,
          3
        ],
        "type": "integer",
        "description": "0 = Dollar, 1 = PercentageOfRoutePrice, 2 = Ratecard, 3 = ExternallyPriced",
        "format": "int32"
      },
      "SurchargeV2": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "abbreviation": {
            "type": "string",
            "nullable": true
          },
          "companyId": {
            "type": "integer",
            "format": "int32"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "price": {
            "type": "number",
            "description": "This is the base price of the surcharge before markups have been applied",
            "format": "double"
          },
          "sellPrice": {
            "type": "number",
            "format": "double"
          },
          "hardSetSellPrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "percentageOfSellPrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "costMinimum": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "sellMinimum": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "markup": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "automatic": {
            "type": "boolean",
            "description": "Indicates this surcharge is mandatory"
          },
          "isFuelLevyExempt": {
            "type": "boolean",
            "description": "True if the fuel levy should not be applied to this surcharge"
          },
          "onlyApplySurchargeToDG": {
            "type": "boolean",
            "description": "True if the Surcharge should only apply to DGs"
          },
          "isConditional": {
            "type": "boolean"
          },
          "perLaneRate": {
            "type": "boolean"
          },
          "perMatchingItem": {
            "type": "boolean"
          },
          "priceType": {
            "$ref": "#/components/schemas/SurchargePriceType"
          },
          "specialInstructions": {
            "type": "string",
            "nullable": true
          },
          "sellRatecardId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "costRatecardId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TagForRow": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "hexColour": {
            "type": "string",
            "nullable": true
          },
          "isArchived": {
            "type": "boolean",
            "description": "Whether the tag is archived. The record keeps the chip either way; this only lets the\r\ntag picker mark an applied tag as archived."
          }
        },
        "additionalProperties": false,
        "description": "One tag as it appears on a grid row: enough to render a coloured chip, nothing more."
      },
      "TimeOnly": {
        "type": "object",
        "properties": {
          "hour": {
            "type": "integer",
            "format": "int32"
          },
          "minute": {
            "type": "integer",
            "format": "int32"
          },
          "second": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "millisecond": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "microsecond": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "nanosecond": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "ticks": {
            "type": "integer",
            "format": "int64",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "TimeSpan": {
        "type": "object",
        "properties": {
          "ticks": {
            "type": "integer",
            "format": "int64"
          },
          "days": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "hours": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "milliseconds": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "microseconds": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "nanoseconds": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "minutes": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "seconds": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "totalDays": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "totalHours": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "totalMilliseconds": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "totalMicroseconds": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "totalNanoseconds": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "totalMinutes": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "totalSeconds": {
            "type": "number",
            "format": "double",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "TimeZoneModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "jsName": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TrackingNotificationCoverage": {
        "type": "object",
        "properties": {
          "events": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NotificationCoverageRow"
            },
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Which of the builder's five events the company's own tracking-update notifications cover,\r\nand on which channels (EC-955). One row per event that has at least one active template,\r\nin event order. Inherited templates count, exactly as the send path counts them.\r\n            \r\n<br>\r\nBooleans only, never template rows: the builder needs to know where a switch can do\r\nanything, not what the templates say.\r\n"
      },
      "TrackingNotificationCoverageBaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "$ref": "#/components/schemas/TrackingNotificationCoverage"
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TrackingPageBuiltInDefault": {
        "type": "object",
        "properties": {
          "trackingPageConfig": {
            "description": "The built-in default tracking page config, camelCase JSON in the same shape as the\r\npublic payload's `trackingPageConfig`. Never null.",
            "nullable": true
          },
          "orderPageConfig": {
            "description": "The built-in default order page config, camelCase JSON in the same shape as the public\r\norder page's `orderPageConfig`. Never null.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "The built-in default tracking page and order page configs, for the builder (EC-936): a new\r\ntemplate starts from exactly what a company without one is served. Both are\r\nMachship.Common.Models.TrackingPageTemplates.Config.BuiltInTrackingPage — this carries them, it does not define them."
      },
      "TrackingPageBuiltInDefaultBaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "$ref": "#/components/schemas/TrackingPageBuiltInDefault"
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TrackingPageFallbackBranding": {
        "type": "object",
        "properties": {
          "supportLogoEncodedString": {
            "type": "string",
            "description": "Base64-encoded logo bytes, with NO data-URI prefix and no MIME type — byte-for-byte the\r\nsame contract as `SupportLogoEncodedString` on the public tracking payload, so the\r\nbuilder preview and the live page feed the identical value into the same renderer.\r\nNull when Machship.Common.Models.TrackingPageTemplates.TrackingPageFallbackBranding.LogoSource is Machship.Common.Enumerations.TrackingPageFallbackSource.None, and\r\nalso when the blob fetch failed (failures are logged and swallowed — the logo is\r\nnon-essential, and degrading to the MachShip default matches the live page's behaviour).",
            "nullable": true
          },
          "logoSource": {
            "$ref": "#/components/schemas/TrackingPageFallbackSource"
          },
          "source": {
            "$ref": "#/components/schemas/TrackingPageFallbackSource"
          },
          "trackingHexColour": {
            "type": "string",
            "description": "The resolved tracking colour, hash-prefixed, in the same form the public payload's\r\n`TrackingHexColour` carries. Null when nothing in the tree sets one, AND when the\r\ncompany has turned the colour off via `TrackingShowHexColour` — the public path\r\nnulls it for that case too, so null consistently means \"nothing to inherit\" rather than\r\n\"not looked up\".",
            "nullable": true
          },
          "colourSource": {
            "$ref": "#/components/schemas/TrackingPageFallbackSource"
          }
        },
        "additionalProperties": false,
        "description": "The company-level fallback BRANDING for the tracking page — logo and colour — each resolved\r\nup the company tree exactly as the anonymous public tracking page resolves it.\r\n<br>\r\nThis exists so the Advanced Tracking Page BUILDER preview can show the same header the\r\nmerchant's customers see. The builder has no consignment and no public token, so it cannot\r\nuse the public payload; without this it renders MachShip defaults while the live page\r\nrenders the company's own branding.\r\n<br>\r\nIntentionally carries NO company id and no company name — only the resolved values and a\r\ncoarse source discriminator each. See Machship.Common.Enumerations.TrackingPageFallbackSource.\r\n"
      },
      "TrackingPageFallbackBrandingBaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "$ref": "#/components/schemas/TrackingPageFallbackBranding"
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TrackingPageFallbackSource": {
        "enum": [
          1,
          2,
          3
        ],
        "type": "integer",
        "description": "Where one piece of the tracking page's fallback branding came from, once the company tree\r\nhas been walked. Surfaced to the Advanced Tracking Page builder so its preview can tell the\r\nmerchant WHY the header shows what it shows.\r\n<br>\r\nUsed SEPARATELY for the logo and the colour, which are resolved by independent walks and\r\ncan legitimately come from different companies — see\r\n`TrackingPageFallbackBranding.ColourSource`.\r\n<br>\r\nDeliberately does NOT identify the company the logo was inherited from. The walk reads\r\ncompany rows above the caller's accessible-companies scope (the same unscoped ancestor read\r\nthe anonymous public tracking page performs), so naming the owning company would disclose a\r\ncompany row field the caller cannot otherwise read. The builder only needs to distinguish\r\nthe three states.\r\n1 = None, 2 = OwnCompany, 3 = InheritedFromParent",
        "format": "int32"
      },
      "TrackingPagePublishRequest": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "companyId": {
            "type": "integer",
            "format": "int32"
          },
          "trackingPageConfigJson": {
            "type": "string",
            "nullable": true
          },
          "orderPageConfigJson": {
            "type": "string",
            "nullable": true
          },
          "publishedTrackingPageConfigJson": {
            "type": "string",
            "nullable": true
          },
          "publishedOrderPageConfigJson": {
            "type": "string",
            "nullable": true
          },
          "publishedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "publishedByUserId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "hasUnpublishedChanges": {
            "type": "boolean"
          },
          "publishedVersionName": {
            "type": "string",
            "description": "The live version's label (EC-408), read from the history row that is currently live.\r\nRead-only output on the builder responses; null when nothing is published or the live\r\nversion is unnamed. Never set on the public lookups.",
            "nullable": true
          },
          "orderPageToken": {
            "type": "string",
            "description": "Base64-encoded token used to identify this template's order page.\r\nEmbedded in the public order page URL (/order/:token).\r\nGenerated on first save and stable for the lifetime of the template.",
            "nullable": true
          },
          "versionName": {
            "type": "string",
            "description": "Optional. Trimmed; blank is stored as null. At most 100 characters.",
            "nullable": true
          },
          "versionDescription": {
            "type": "string",
            "description": "Optional. Trimmed; blank is stored as null. At most 1000 characters.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "The publish request body: the latest in-flight draft, exactly as before, plus an optional\r\nlabel for the version being published (EC-408). A subclass rather than a wrapper so the JSON\r\nis unchanged for a caller that sends no label, and \"a body was sent\" keeps meaning \"apply this\r\ndraft before snapshotting\"."
      },
      "TrackingPageShown": {
        "enum": [
          1,
          2,
          3
        ],
        "type": "integer",
        "description": "Which tracking page a recipient of a company's consignment is actually served, once the\r\nrender walk and the entitlement gate have both had their say (EC-939). Shown read-only on\r\nthe company edit page while `legacy-tracking-page-cutover` is on, in place of the\r\nMachship.Common.Enumerations.TrackingPageType dropdown.1 = BuiltInDefault, 2 = AdvancedTemplate, 3 = OwnTrackingPage",
        "format": "int32"
      },
      "TrackingPageTemplate": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "companyId": {
            "type": "integer",
            "format": "int32"
          },
          "trackingPageConfigJson": {
            "type": "string",
            "nullable": true
          },
          "orderPageConfigJson": {
            "type": "string",
            "nullable": true
          },
          "publishedTrackingPageConfigJson": {
            "type": "string",
            "nullable": true
          },
          "publishedOrderPageConfigJson": {
            "type": "string",
            "nullable": true
          },
          "publishedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "publishedByUserId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "hasUnpublishedChanges": {
            "type": "boolean"
          },
          "publishedVersionName": {
            "type": "string",
            "description": "The live version's label (EC-408), read from the history row that is currently live.\r\nRead-only output on the builder responses; null when nothing is published or the live\r\nversion is unnamed. Never set on the public lookups.",
            "nullable": true
          },
          "orderPageToken": {
            "type": "string",
            "description": "Base64-encoded token used to identify this template's order page.\r\nEmbedded in the public order page URL (/order/:token).\r\nGenerated on first save and stable for the lifetime of the template.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Carries the template state in both directions on the wire. After EC-125:\r\n            \r\n - `TrackingPageConfigJson` and `OrderPageConfigJson` now mean the **draft**\r\n   (the merchant's in-flight edits). Public lookups never receive these.\r\n - `PublishedTrackingPageConfigJson` and `PublishedOrderPageConfigJson` are the\r\n   snapshots customers see. Null when the template has not been published (or\r\n   has been unpublished); FE treats this as \"show the legacy page\".\r\n - `PublishedAt` / `PublishedByUserId` track the current published state.\r\n - `HasUnpublishedChanges` is server-computed (compares each draft to its\r\n   published snapshot using ordinal string equality); used by the builder\r\n   to decide between \"Published\" and \"Draft with unpublished changes\".\r\n            \r\nOn the SAVE direction (createOrUpdate / saveDraft) only the draft fields are\r\nhonoured. The published-state fields are read-only outputs."
      },
      "TrackingPageTemplateBaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "$ref": "#/components/schemas/TrackingPageTemplate"
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TrackingPageTemplateForGrid": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Template id.",
            "format": "int32"
          },
          "companyId": {
            "type": "integer",
            "description": "Company that owns the template (one active template per company).",
            "format": "int32"
          },
          "companyName": {
            "type": "string",
            "description": "Display name of the owning company.",
            "nullable": true
          },
          "isPublished": {
            "type": "boolean",
            "description": "True when the template is currently published (PublishedAt is set)."
          },
          "publishedAt": {
            "type": "string",
            "description": "When the current published snapshot went live. Null when unpublished.",
            "format": "date-time",
            "nullable": true
          },
          "hasTrackingPageConfig": {
            "type": "boolean",
            "description": "True when a tracking page draft config exists."
          },
          "hasOrderPageConfig": {
            "type": "boolean",
            "description": "True when an order page draft config exists."
          },
          "dateCreated": {
            "type": "string",
            "description": "When the template was created.",
            "format": "date-time"
          },
          "lastUpdated": {
            "type": "string",
            "description": "When the template was last touched: ISNULL(DateUpdated, DateCreated), computed in the\r\nquery so the grid's display and its sort (alias lu.LastUpdated) agree for\r\nnever-updated templates.",
            "format": "date-time"
          },
          "totalRows": {
            "type": "integer",
            "description": "Total row count for the grid pager (COUNT(*) OVER() from the paged query).",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Row model for the sysAdmin \"Tracking Page Templates\" admin grid. Deliberately\r\nexcludes the config JSON blobs — they can be large and the grid only needs to\r\nindicate whether each page has been configured."
      },
      "TrackingPageTemplateForGridGridDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TrackingPageTemplateForGrid"
            },
            "nullable": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          },
          "totalItems": {
            "type": "integer",
            "format": "int32"
          },
          "startIndex": {
            "type": "integer",
            "format": "int32"
          },
          "retrievalSize": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "TrackingPageTemplatePublishHistoryEntry": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "trackingPageTemplateId": {
            "type": "integer",
            "format": "int32"
          },
          "trackingPageConfigJsonSnapshot": {
            "type": "string",
            "nullable": true
          },
          "orderPageConfigJsonSnapshot": {
            "type": "string",
            "nullable": true
          },
          "publishedAt": {
            "type": "string",
            "format": "date-time"
          },
          "publishedByUserId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "unpublishedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "unpublishedByUserId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "versionName": {
            "type": "string",
            "description": "The merchant's label for this publish (EC-408). Null when unnamed; the builder then shows the publish date.",
            "nullable": true
          },
          "versionDescription": {
            "type": "string",
            "nullable": true
          },
          "publishedByName": {
            "type": "string",
            "description": "Display name of the user who published this version, only when that user belongs to the\r\ntemplate's own company. Null when Machship.Common.Models.TrackingPageTemplates.TrackingPageTemplatePublishHistoryEntry.PublishedByUserId is null (the deploy-time\r\nbackfill), the user no longer resolves, or the publisher is outside the company (a parent\r\nbroker's user, MachShip staff).",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "One entry in the publish history list returned to the builder. The current-live\r\nrow is the one whose Machship.Common.Models.TrackingPageTemplates.TrackingPageTemplatePublishHistoryEntry.UnpublishedAt is null; older rows have it set\r\nto the moment they were retired (either by a subsequent Publish or by Unpublish).\r\nThe full config snapshots travel on the wire so the FE can render a preview /\r\ndiff against the current draft without a second round-trip."
      },
      "TrackingPageTemplatePublishHistoryEntryBaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "$ref": "#/components/schemas/TrackingPageTemplatePublishHistoryEntry"
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TrackingPageTemplatePublishHistoryEntryListBaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TrackingPageTemplatePublishHistoryEntry"
            },
            "nullable": true
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TrackingPageType": {
        "enum": [
          1,
          2,
          3,
          4,
          5
        ],
        "type": "integer",
        "description": "1 = InheritFromParent, 2 = UpdatedTrackingPage, 3 = ModernTrackingPage, 4 = CustomTrackingPage, 5 = TemplateTrackingPage",
        "format": "int32"
      },
      "TrackingPageVersionDetailsUpdate": {
        "type": "object",
        "properties": {
          "historyId": {
            "type": "integer",
            "format": "int32"
          },
          "versionName": {
            "type": "string",
            "description": "Optional. Trimmed; blank is stored as null. At most 100 characters.",
            "nullable": true
          },
          "versionDescription": {
            "type": "string",
            "description": "Optional. Trimmed; blank is stored as null. At most 1000 characters.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Renames or re-describes one published version (EC-408). Only the label changes: the version's\r\ncontent, dates and publisher are never touched."
      },
      "TrackingStatus": {
        "enum": [
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          13,
          14,
          15,
          16,
          17,
          18,
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28,
          29,
          30
        ],
        "type": "integer",
        "description": "Note that this enum reflects the entries in the ConsignmentTrackingStatus table.\r\nThe Enums integer values should map to the id field of the status.\r\n\r\nAlso note that if any statuses are added in here, then they also may need to be added in the ConsignmentTrackingHistoryService.GetEligibleNewStatusesForConsignment()\r\nlogic when determining which statuses can be changed into a different status1 = Quote, 2 = Unmanifested, 3 = Manifested, 4 = Booked, 5 = InTransit, 6 = Delayed, 7 = Complete, 8 = Lost, 9 = Damaged, 10 = Cancelled, 13 = OnForDelivery, 14 = AddedToMachship, 15 = PickedUp, 16 = ScannedIntoDepot, 17 = DeliveryAttempted, 18 = SortedForDelivery, 19 = PartialDelivery, 20 = DeliveryTimeScheduled, 21 = Deleted, 22 = AtDelivery, 23 = PartialOnForDelivery, 24 = AtPickup, 25 = Manifesting, 26 = TrackingExpired, 27 = FailedPickup, 28 = FailedDelivery, 29 = AwaitingCollection, 30 = CompleteReturnedToSender",
        "format": "int32"
      },
      "TrackingType": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "description": "0 = Never, 1 = Prompt, 2 = Always",
        "format": "int32"
      },
      "UnmanifestedConsignmentForList": {
        "type": "object",
        "properties": {
          "companyId": {
            "type": "integer",
            "format": "int32"
          },
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "consignmentNumber": {
            "type": "string",
            "nullable": true
          },
          "consignmentTrackingStatusId": {
            "type": "integer",
            "format": "int32"
          },
          "manifestId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "consignmentTrackingStatus": {
            "$ref": "#/components/schemas/ConsignmentTrackingStatus"
          },
          "consignmentStatusType": {
            "$ref": "#/components/schemas/ConsignmentStatusType"
          },
          "isBenign": {
            "type": "boolean"
          },
          "manuallyTrack": {
            "type": "boolean"
          },
          "hasNotes": {
            "type": "boolean",
            "nullable": true
          },
          "hasMessages": {
            "type": "boolean",
            "nullable": true
          },
          "totalRows": {
            "type": "integer",
            "format": "int32"
          },
          "heldReconciliation": {
            "type": "boolean"
          },
          "heldInvoicing": {
            "type": "boolean"
          },
          "canManuallyTrackStatuses": {
            "type": "boolean"
          },
          "canManuallyTrackAttachments": {
            "type": "boolean"
          },
          "automaticallyTracksStatuses": {
            "type": "boolean"
          },
          "automaticallyTracksAttachments": {
            "type": "boolean"
          },
          "heldReconciliationUserId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "heldInvoicingUserId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "showDespatchEtaTimes": {
            "type": "boolean"
          },
          "isInternational": {
            "type": "boolean"
          },
          "carrierReceivedCommercialInvoice": {
            "type": "boolean"
          },
          "hasCommercialInvoice": {
            "type": "boolean"
          },
          "isCommercialInvoiceMachshipGenerated": {
            "type": "boolean"
          },
          "fromLocation": {
            "$ref": "#/components/schemas/Location"
          },
          "fromName": {
            "type": "string",
            "nullable": true
          },
          "fromNameAndLocation": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "toLocation": {
            "$ref": "#/components/schemas/Location"
          },
          "toName": {
            "type": "string",
            "nullable": true
          },
          "toNameAndLocation": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "internationalFromCity": {
            "type": "string",
            "nullable": true
          },
          "internationalFromPostcode": {
            "type": "string",
            "nullable": true
          },
          "internationalFromProvince": {
            "type": "string",
            "nullable": true
          },
          "internationalFromAddressLine1": {
            "type": "string",
            "nullable": true
          },
          "internationalFromAddressLine2": {
            "type": "string",
            "nullable": true
          },
          "fromCountryId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "fromCountry": {
            "$ref": "#/components/schemas/Country"
          },
          "internationalToCity": {
            "type": "string",
            "nullable": true
          },
          "internationalToPostcode": {
            "type": "string",
            "nullable": true
          },
          "internationalToProvince": {
            "type": "string",
            "nullable": true
          },
          "internationalToAddressLine1": {
            "type": "string",
            "nullable": true
          },
          "internationalToAddressLine2": {
            "type": "string",
            "nullable": true
          },
          "toCountryId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "toCountry": {
            "$ref": "#/components/schemas/Country"
          },
          "carrierAndServiceName": {
            "type": "string",
            "nullable": true
          },
          "customerReference": {
            "type": "string",
            "nullable": true
          },
          "total": {
            "type": "number",
            "format": "double"
          },
          "createdDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "despatchDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "eta": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "itemCount": {
            "type": "integer",
            "format": "int32"
          },
          "important": {
            "type": "boolean"
          },
          "canPrintItemLabelsBeforeManifesting": {
            "type": "boolean"
          },
          "canPrintConsignmentLabelsBeforeManifesting": {
            "type": "boolean"
          },
          "isDgConsignment": {
            "type": "boolean",
            "nullable": true
          },
          "isLimitedQuantityDgConsignment": {
            "type": "boolean",
            "description": "Set by getUnmanifested only. Omitted when null, so the other endpoints that reuse this model\r\n(the V1 deleted-consignments grid) do not gain a key.",
            "nullable": true
          },
          "isTest": {
            "type": "boolean"
          },
          "consignmentSubDgClassTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsignmentSubDgClassTypes"
            },
            "nullable": true
          },
          "dgClassTypeAndSubClassTypeForConsignment": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UnmanifestedConsignmentForListGridDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UnmanifestedConsignmentForList"
            },
            "nullable": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          },
          "totalItems": {
            "type": "integer",
            "format": "int32"
          },
          "startIndex": {
            "type": "integer",
            "format": "int32"
          },
          "retrievalSize": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "UpdateDespatchDateResponse": {
        "type": "object",
        "properties": {
          "successfullyUpdatedConsignmentIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "List of consignment IDs that were successfully updated",
            "nullable": true
          },
          "failedUpdates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsignmentUpdateFailure"
            },
            "description": "List of consignment IDs that were not updated with reasons",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Response model for the update despatch date operation"
      },
      "UpdateDespatchDateResponseBaseDomainEntityV2": {
        "type": "object",
        "properties": {
          "object": {
            "$ref": "#/components/schemas/UpdateDespatchDateResponse"
          },
          "objectStr": {
            "type": "string",
            "description": "The payload written as a string, for clients that cannot hold a 64-bit integer exactly.\r\nA bare 64-bit id is the whole payload here, so it has no property name of its own and no\r\nplace for a twin beside it. This is that twin. It is null, and absent from the response,\r\nfor every other payload: a model carries its own twin, and a narrower number needs none.",
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachshipValidationResultV2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdateIdentityV2": {
        "required": [
          "displayName",
          "emailAddress",
          "familyName",
          "givenName",
          "id",
          "owningCompanyId"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "givenName": {
            "maxLength": 256,
            "minLength": 1,
            "type": "string"
          },
          "familyName": {
            "maxLength": 256,
            "minLength": 1,
            "type": "string"
          },
          "displayName": {
            "maxLength": 256,
            "minLength": 1,
            "type": "string"
          },
          "emailAddress": {
            "maxLength": 512,
            "minLength": 1,
            "type": "string"
          },
          "password": {
            "maxLength": 255,
            "type": "string",
            "nullable": true
          },
          "phone": {
            "maxLength": 100,
            "type": "string",
            "nullable": true
          },
          "businessPhone": {
            "maxLength": 100,
            "type": "string",
            "nullable": true
          },
          "mobile": {
            "maxLength": 100,
            "type": "string",
            "nullable": true
          },
          "position": {
            "maxLength": 255,
            "type": "string",
            "nullable": true
          },
          "notes": {
            "type": "string",
            "nullable": true
          },
          "testModeSetting": {
            "$ref": "#/components/schemas/UserTestModeSetting"
          },
          "owningCompanyId": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "User": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "username": {
            "type": "string",
            "nullable": true
          },
          "emailAddress": {
            "type": "string",
            "nullable": true
          },
          "firstName": {
            "type": "string",
            "nullable": true
          },
          "surname": {
            "type": "string",
            "nullable": true
          },
          "password": {
            "maxLength": 256,
            "minLength": 8,
            "type": "string",
            "format": "password",
            "nullable": true
          },
          "confirmPassword": {
            "type": "string",
            "format": "password",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "businessPhone": {
            "type": "string",
            "nullable": true
          },
          "mobile": {
            "type": "string",
            "nullable": true
          },
          "isDeleted": {
            "type": "boolean"
          },
          "isActive": {
            "type": "boolean"
          },
          "lastLogin": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "invalidPasswordAttempts": {
            "type": "integer",
            "format": "int32"
          },
          "roles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Role"
            },
            "nullable": true
          },
          "groups": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Group"
            },
            "nullable": true
          },
          "companyId": {
            "type": "integer",
            "format": "int32"
          },
          "company": {
            "$ref": "#/components/schemas/Company"
          },
          "displayName": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "userType": {
            "$ref": "#/components/schemas/UserType"
          },
          "dashboardUserPreferences": {
            "type": "string",
            "nullable": true
          },
          "notes": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "sessionUpdaterGuid": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "testModeSetting": {
            "$ref": "#/components/schemas/UserTestModeSetting"
          },
          "enableEmailNotifications": {
            "type": "boolean"
          },
          "isLocalAccount": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "UserAndCompanyLink": {
        "required": [
          "roles",
          "userId"
        ],
        "type": "object",
        "properties": {
          "userId": {
            "type": "integer",
            "format": "int32"
          },
          "roles": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            }
          }
        },
        "additionalProperties": false
      },
      "UserTestModeSetting": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "description": "Indicator of a MachShip user's settings in relation to viewing \"test\" data in the live system -\r\neg test consignments, manifests, accounts0 = Disabled, 1 = Enabled, 2 = UserIsInTestMode",
        "format": "int32"
      },
      "UserType": {
        "enum": [
          1,
          2,
          3,
          4,
          5,
          6
        ],
        "type": "integer",
        "description": "1 = SystemAdmin, 2 = User, 3 = Broker, 4 = Reseller, 5 = System, 6 = Enterprise",
        "format": "int32"
      },
      "UserWithIdentity": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "username": {
            "type": "string",
            "nullable": true
          },
          "emailAddress": {
            "type": "string",
            "nullable": true
          },
          "firstName": {
            "type": "string",
            "nullable": true
          },
          "surname": {
            "type": "string",
            "nullable": true
          },
          "password": {
            "maxLength": 256,
            "minLength": 8,
            "type": "string",
            "format": "password",
            "nullable": true
          },
          "confirmPassword": {
            "type": "string",
            "format": "password",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "businessPhone": {
            "type": "string",
            "nullable": true
          },
          "mobile": {
            "type": "string",
            "nullable": true
          },
          "isDeleted": {
            "type": "boolean"
          },
          "isActive": {
            "type": "boolean"
          },
          "lastLogin": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "invalidPasswordAttempts": {
            "type": "integer",
            "format": "int32"
          },
          "roles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Role"
            },
            "nullable": true
          },
          "groups": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Group"
            },
            "nullable": true
          },
          "companyId": {
            "type": "integer",
            "format": "int32"
          },
          "company": {
            "$ref": "#/components/schemas/Company"
          },
          "displayName": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "userType": {
            "$ref": "#/components/schemas/UserType"
          },
          "dashboardUserPreferences": {
            "type": "string",
            "nullable": true
          },
          "notes": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "sessionUpdaterGuid": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "testModeSetting": {
            "$ref": "#/components/schemas/UserTestModeSetting"
          },
          "enableEmailNotifications": {
            "type": "boolean"
          },
          "isLocalAccount": {
            "type": "boolean"
          },
          "fromIdentity": {
            "type": "boolean"
          },
          "identity": {
            "$ref": "#/components/schemas/Identity"
          }
        },
        "additionalProperties": false
      },
      "UserWithOrgAdmin": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "username": {
            "type": "string",
            "nullable": true
          },
          "emailAddress": {
            "type": "string",
            "nullable": true
          },
          "firstName": {
            "type": "string",
            "nullable": true
          },
          "surname": {
            "type": "string",
            "nullable": true
          },
          "password": {
            "maxLength": 256,
            "minLength": 8,
            "type": "string",
            "format": "password",
            "nullable": true
          },
          "confirmPassword": {
            "type": "string",
            "format": "password",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "businessPhone": {
            "type": "string",
            "nullable": true
          },
          "mobile": {
            "type": "string",
            "nullable": true
          },
          "isDeleted": {
            "type": "boolean"
          },
          "isActive": {
            "type": "boolean"
          },
          "lastLogin": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "invalidPasswordAttempts": {
            "type": "integer",
            "format": "int32"
          },
          "roles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Role"
            },
            "nullable": true
          },
          "groups": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Group"
            },
            "nullable": true
          },
          "companyId": {
            "type": "integer",
            "format": "int32"
          },
          "company": {
            "$ref": "#/components/schemas/Company"
          },
          "displayName": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "userType": {
            "$ref": "#/components/schemas/UserType"
          },
          "dashboardUserPreferences": {
            "type": "string",
            "nullable": true
          },
          "notes": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "sessionUpdaterGuid": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "testModeSetting": {
            "$ref": "#/components/schemas/UserTestModeSetting"
          },
          "enableEmailNotifications": {
            "type": "boolean"
          },
          "isLocalAccount": {
            "type": "boolean"
          },
          "isOrganisationAdmin": {
            "type": "boolean"
          },
          "organisationAdminUserId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "eligibleForOrganisationAdmin": {
            "type": "boolean"
          },
          "identityInformation": {
            "$ref": "#/components/schemas/IdentityInformation"
          }
        },
        "additionalProperties": false
      },
      "ValidationProblemDetails": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "detail": {
            "type": "string",
            "nullable": true
          },
          "instance": {
            "type": "string",
            "nullable": true
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "nullable": true
          }
        },
        "additionalProperties": { }
      },
      "ZoneV2": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "abbreviation": {
            "type": "string",
            "nullable": true
          },
          "displayName": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "User API Token": {
        "type": "apiKey",
        "description": "An API token generated against a specific user",
        "name": "token",
        "in": "header"
      }
    }
  },
  "security": [
    {
      "User API Token": [ ]
    }
  ]
}