{
  "openapi": "3.0.1",
  "info": {
    "title": "Prodigi.Api",
    "version": "v4.0"
  },
  "paths": {
    "/v4.0/micro-ui/bulk-resubmission/form-options": {
      "get": {
        "tags": [
          "BulkResubmission"
        ],
        "summary": "Returns labs, cancel options, and shipping methods for form dropdowns.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Order.FormOptionsResponseDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/v4.0/micro-ui/bulk-resubmission/spreadsheet-info": {
      "get": {
        "tags": [
          "BulkResubmission"
        ],
        "summary": "Returns row count and resubmittable count for a given Google Sheet.",
        "parameters": [
          {
            "name": "SpreadsheetId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "WorksheetName",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Order.BulkResubmissionSpreadsheetInfoResponseDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/v4.0/micro-ui/bulk-resubmission/spreadsheet-data": {
      "get": {
        "tags": [
          "BulkResubmission"
        ],
        "summary": "Returns parsed rows from the Google Sheet for UI display.",
        "parameters": [
          {
            "name": "SpreadsheetId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "WorksheetName",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Order.BulkResubmissionSpreadsheetDataResponseDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/v4.0/micro-ui/bulk-resubmission/review": {
      "post": {
        "tags": [
          "BulkResubmission"
        ],
        "summary": "Returns a pre-action summary of what will happen when the user submits.",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Order.BulkResubmissionReviewRequestDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Order.BulkResubmissionReviewRequestDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Order.BulkResubmissionReviewRequestDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Order.BulkResubmissionReviewRequestDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Order.BulkResubmissionReviewResponseDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/v4.0/micro-ui/bulk-resubmission/submit": {
      "post": {
        "tags": [
          "BulkResubmission"
        ],
        "summary": "Enqueues selected rows for background resubmission processing.",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Order.BulkResubmissionSubmitRequestDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Order.BulkResubmissionSubmitRequestDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Order.BulkResubmissionSubmitRequestDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Order.BulkResubmissionSubmitRequestDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Order.BulkResubmissionSubmitResponseDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/v4.0/fulfilmentLocations/{labCode}/capabilities": {
      "get": {
        "tags": [
          "LabCapabilities"
        ],
        "summary": "Returns all capabilities of a fulfilment location (lab) based on ILabFeatures.",
        "parameters": [
          {
            "name": "labCode",
            "in": "path",
            "description": "The code of the fulfilment location/lab",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The code of the fulfilment location/lab",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Order.LabCapabilitiesResultDto]"
                }
              }
            }
          }
        }
      }
    },
    "/v4.0/Orders": {
      "get": {
        "tags": [
          "Orders"
        ],
        "summary": "This endpoint returns a list of Orders for the given filtering options",
        "parameters": [
          {
            "name": "Top",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Skip",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Status",
            "in": "query",
            "schema": {
              "type": "string",
              "nullable": true
            }
          },
          {
            "name": "CreatedFrom",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "CreatedTo",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "OrderIds",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "nullable": true
            }
          },
          {
            "name": "MerchantReferences",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns list of orders matching the supplied criteria",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Order.OrdersResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Returns a bad request validation error"
          },
          "401": {
            "description": "Unauthorized response"
          }
        }
      },
      "post": {
        "tags": [
          "Orders"
        ],
        "summary": "This endpoint submits and creates your order in Prodigi",
        "parameters": [
          {
            "name": "validationOnly",
            "in": "query",
            "description": "Only validate the order data.",
            "schema": {
              "type": "boolean",
              "description": "Only validate the order data.",
              "nullable": true
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Order.CreateOrderDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Order.CreateOrderDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Order.CreateOrderDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Order.CreateOrderDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Returns the created order details with an outcome of created, createdWithIssues or alreadyExists",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Order.OrderResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Returns a bad request validation error"
          },
          "401": {
            "description": "Unauthorized response"
          },
          "500": {
            "description": "Will be returned in case of payment failure"
          }
        }
      }
    },
    "/v4.0/Orders/{orderId}": {
      "get": {
        "tags": [
          "Orders"
        ],
        "summary": "This endpoint returns an Order for a given Prodigi order ID",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the order corresponding to the specified id",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Order.OrderResponseDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized response"
          },
          "404": {
            "description": "Returns not found if the supplied Id doesn't match an existing order"
          }
        }
      }
    },
    "/v4.0/Orders/{orderId}/actions": {
      "get": {
        "tags": [
          "Orders"
        ],
        "summary": "This endpoint returns the availability of the actions you can take against an order: cancel, update shipping method, update recipient details and update metadata",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the availability of the four actions",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Order.OrderActionsDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized response"
          }
        }
      }
    },
    "/v4.0/Orders/{orderId}/actions/updateRecipient": {
      "post": {
        "tags": [
          "Orders"
        ],
        "summary": "This endpoint updates an orders recipient details",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Order.RecipientDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Order.RecipientDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Order.RecipientDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Order.RecipientDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Returns the updated order details with an outcome of updated, partiallyUpdated, failedToUpdate or actionNotAvailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Order.UpdateRecipientResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Returns a bad request validation error"
          },
          "401": {
            "description": "Unauthorized response"
          }
        }
      }
    },
    "/v4.0/Orders/{orderId}/actions/updateShippingMethod": {
      "post": {
        "tags": [
          "Orders"
        ],
        "summary": "This endpoint updates an orders shipping details",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Order.UpdateShipmentMethodRequestDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Order.UpdateShipmentMethodRequestDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Order.UpdateShipmentMethodRequestDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Order.UpdateShipmentMethodRequestDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Returns the updated order details with an outcome of updated, partiallyUpdated, failedToUpdate or actionNotAvailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Order.UpdateShipmentMethodResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Returns a bad request validation error"
          },
          "401": {
            "description": "Unauthorized response"
          }
        }
      }
    },
    "/v4.0/Orders/{orderId}/actions/updateMetadata": {
      "post": {
        "tags": [
          "Orders"
        ],
        "summary": "This endpoint updates an orders metadata",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Order.UpdateOrderMetadataDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Order.UpdateOrderMetadataDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Order.UpdateOrderMetadataDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Order.UpdateOrderMetadataDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Returns the updated order details with an outcome of updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Order.OrderResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Returns a bad request validation error"
          },
          "401": {
            "description": "Unauthorized response"
          }
        }
      }
    },
    "/v4.0/Orders/{orderId}/actions/cancel": {
      "post": {
        "tags": [
          "Orders"
        ],
        "summary": "This endpoint attempts to cancel an order",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the cancelled order details with an outcome of cancelled, failedToCancel or actionNotAvailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Order.OrderResponseDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized response"
          }
        }
      }
    },
    "/v4.0/Quotes": {
      "post": {
        "tags": [
          "Quotes"
        ],
        "summary": "Request a quote for given items",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Order.CreateQuotationDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Order.CreateQuotationDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Order.CreateQuotationDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Order.CreateQuotationDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Returns the quote response for the specified order",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Quotation.QuotationDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Quotation.QuotationDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Quotation.QuotationDto"
                }
              }
            }
          },
          "400": {
            "description": "Returns a bad request validation error"
          },
          "401": {
            "description": "Unauthorized response"
          }
        }
      }
    },
    "/v4.0/registration/complete": {
      "post": {
        "tags": [
          "Registration"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Order.CompleteRegistrationRequestDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Order.CompleteRegistrationRequestDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Order.CompleteRegistrationRequestDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Order.CompleteRegistrationRequestDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Order.CompleteRegistrationResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        }
      }
    },
    "/v4.0/orders/{orderId}/shipments/{shipmentId}/fulfilmentLocationCapabilities": {
      "get": {
        "tags": [
          "ShipmentCapabilities"
        ],
        "summary": "Return a list of capabilities for this fulfilment location and this shipment.",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "",
              "format": "int64"
            }
          },
          {
            "name": "shipmentId",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Order.ShipmentCapabilitiesResultDto]"
                }
              }
            }
          }
        }
      }
    },
    "/v4.0/orders/{orderId}/shipments/{shipmentId}/maptojson": {
      "get": {
        "tags": [
          "ShipmentOperations"
        ],
        "summary": "Maps a lab order into a json object",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "description": "Order id",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Order id",
              "format": "int64"
            }
          },
          {
            "name": "shipmentId",
            "in": "path",
            "description": "Shipment id",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Shipment id",
              "format": "int64"
            }
          },
          {
            "name": "includeNulls",
            "in": "query",
            "description": "",
            "schema": {
              "type": "boolean",
              "description": "",
              "default": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/v4.0/orders/{orderId}/shipments/{shipmentId}/cancel": {
      "post": {
        "tags": [
          "ShipmentOperations"
        ],
        "summary": "Attempts to cancel a lab order (shipment) if supported by the lab.",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "description": "Order ID",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Order ID",
              "format": "int64"
            }
          },
          {
            "name": "shipmentId",
            "in": "path",
            "description": "Shipment/LabOrder ID",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Shipment/LabOrder ID",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Order.LabFeaturesResponseDto"
                }
              }
            }
          }
        }
      }
    },
    "/v4.0/orders/{orderId}/shipments/{shipmentId}/hold": {
      "post": {
        "tags": [
          "ShipmentOperations"
        ],
        "summary": "Holds a lab order (shipment) if supported by the lab.",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "description": "Order ID",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Order ID",
              "format": "int64"
            }
          },
          {
            "name": "shipmentId",
            "in": "path",
            "description": "Shipment/LabOrder ID",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Shipment/LabOrder ID",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Order.LabFeaturesResponseDto"
                }
              }
            }
          }
        }
      }
    },
    "/v4.0/orders/{orderId}/shipments/{shipmentId}/unhold": {
      "post": {
        "tags": [
          "ShipmentOperations"
        ],
        "summary": "Unholds a lab order (shipment) if supported by the lab.",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "description": "Order ID",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Order ID",
              "format": "int64"
            }
          },
          {
            "name": "shipmentId",
            "in": "path",
            "description": "Shipment/LabOrder ID",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Shipment/LabOrder ID",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Order.LabFeaturesResponseDto"
                }
              }
            }
          }
        }
      }
    },
    "/v4.0/orders/{orderId}/shipments/{shipmentId}/updateAddress": {
      "post": {
        "tags": [
          "ShipmentOperations"
        ],
        "summary": "Updates the shipping address for a lab order (shipment) if supported by the lab.",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "description": "Order ID",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Order ID",
              "format": "int64"
            }
          },
          {
            "name": "shipmentId",
            "in": "path",
            "description": "Shipment/LabOrder ID",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Shipment/LabOrder ID",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Order.LabFeaturesResponseDto"
                }
              }
            }
          }
        }
      }
    },
    "/v4.0/orders/{orderId}/shipments/{shipmentId}/updateShippingMethod": {
      "post": {
        "tags": [
          "ShipmentOperations"
        ],
        "summary": "Updates the shipping method for a lab order (shipment) if supported by the lab.",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "description": "Order ID",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Order ID",
              "format": "int64"
            }
          },
          {
            "name": "shipmentId",
            "in": "path",
            "description": "Shipment/LabOrder ID",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Shipment/LabOrder ID",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Order.LabFeaturesResponseDto"
                }
              }
            }
          }
        }
      }
    },
    "/v4.0/micro-ui/siteflow-shipping/bulk-update": {
      "post": {
        "tags": [
          "ShippingUpdate"
        ],
        "summary": "Bulk-update SiteFlow shipping methods and PreferredGlobalShippingMethod for lab orders listed in a Google Sheet.",
        "requestBody": {
          "description": "The shipping update request containing sheet ID, worksheet name, shipping speed and SiteFlow carrier alias.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Order.ShippingUpdateRequestDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Order.ShippingUpdateRequestDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Order.ShippingUpdateRequestDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Order.ShippingUpdateRequestDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Returns the processing result with per-row status.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Order.ShippingUpdateResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized - requires PwintyAdmin role."
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Order.LabOptionDto": {
        "type": "object",
        "properties": {
          "alias": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Order.OptionDto": {
        "type": "object",
        "properties": {
          "value": {
            "type": "string",
            "nullable": true
          },
          "label": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Order.FormOptionsResponseDto": {
        "type": "object",
        "properties": {
          "labs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Order.LabOptionDto"
            },
            "nullable": true
          },
          "cancelOptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Order.OptionDto"
            },
            "nullable": true
          },
          "shippingMethods": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Order.OptionDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Order.BulkResubmissionSpreadsheetInfoResponseDto": {
        "type": "object",
        "properties": {
          "totalRowCount": {
            "type": "integer",
            "format": "int32"
          },
          "resubmittableRowCount": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Order.BulkResubmissionRowDto": {
        "type": "object",
        "properties": {
          "rowIndex": {
            "type": "integer",
            "format": "int32"
          },
          "labOrderId": {
            "type": "integer",
            "format": "int64"
          },
          "message": {
            "type": "string",
            "nullable": true
          },
          "newLabOrderId": {
            "type": "integer",
            "format": "int64"
          },
          "lastActivity": {
            "type": "string",
            "format": "date-time"
          },
          "labs": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "cancelOption": {
            "type": "string",
            "nullable": true
          },
          "skipRow": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "Order.BulkResubmissionSpreadsheetDataResponseDto": {
        "type": "object",
        "properties": {
          "rows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Order.BulkResubmissionRowDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Order.BulkResubmissionReviewRequestDto": {
        "required": [
          "spreadsheetId",
          "worksheetName"
        ],
        "type": "object",
        "properties": {
          "spreadsheetId": {
            "type": "string"
          },
          "worksheetName": {
            "type": "string"
          },
          "lab": {
            "type": "string",
            "nullable": true
          },
          "cancelOption": {
            "type": "string",
            "nullable": true
          },
          "preferredGlobalShippingMethod": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Order.BulkResubmissionReviewResponseDto": {
        "type": "object",
        "properties": {
          "isOk": {
            "type": "boolean"
          },
          "numberOfLabOrders": {
            "type": "integer",
            "format": "int32"
          },
          "sheetContainsNumberOfLabOrders": {
            "type": "integer",
            "format": "int32"
          },
          "lab": {
            "type": "string",
            "nullable": true
          },
          "cancelOption": {
            "type": "string",
            "nullable": true
          },
          "preferredGlobalShippingMethod": {
            "type": "string",
            "nullable": true
          },
          "statement": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Order.BulkResubmissionSubmitRequestDto": {
        "required": [
          "spreadsheetId",
          "worksheetName"
        ],
        "type": "object",
        "properties": {
          "spreadsheetId": {
            "type": "string"
          },
          "worksheetName": {
            "type": "string"
          },
          "lab": {
            "type": "string",
            "nullable": true
          },
          "cancelOption": {
            "type": "string",
            "nullable": true
          },
          "preferredGlobalShippingMethod": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Order.BulkResubmissionSubmitResponseDto": {
        "type": "object",
        "properties": {
          "accepted": {
            "type": "boolean"
          },
          "queuedRowCount": {
            "type": "integer",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Order.LabCapabilitiesResultDto": {
        "type": "object",
        "properties": {
          "capabilities": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Response model for lab capabilities (single property)."
      },
      "Order.LabCapabilitiesResultDto]": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "result": {
            "$ref": "#/components/schemas/Order.LabCapabilitiesResultDto"
          },
          "message": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Generic wrapper for lab features responses."
      },
      "Order.StatusDto+StageDescription": {
        "enum": [
          0,
          1,
          2,
          3,
          4
        ],
        "type": "integer",
        "format": "int32"
      },
      "Order.CostDto": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "format": "double"
          },
          "currency": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Order.AuthorisationDetailsDto": {
        "type": "object",
        "properties": {
          "authorisationUrl": {
            "type": "string",
            "nullable": true
          },
          "paymentDetails": {
            "$ref": "#/components/schemas/Order.CostDto"
          }
        },
        "additionalProperties": false
      },
      "Order.StatusIssueDto": {
        "type": "object",
        "properties": {
          "objectId": {
            "type": "string",
            "nullable": true
          },
          "errorCode": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "authorisationDetails": {
            "$ref": "#/components/schemas/Order.AuthorisationDetailsDto"
          }
        },
        "additionalProperties": false
      },
      "Order.StatusDetailsDto+StatusDescription": {
        "enum": [
          0,
          1,
          2,
          3
        ],
        "type": "integer",
        "format": "int32"
      },
      "Order.StatusDetailsDto": {
        "type": "object",
        "properties": {
          "downloadAssets": {
            "$ref": "#/components/schemas/Order.StatusDetailsDto+StatusDescription"
          },
          "printReadyAssetsPrepared": {
            "$ref": "#/components/schemas/Order.StatusDetailsDto+StatusDescription"
          },
          "allocateProductionLocation": {
            "$ref": "#/components/schemas/Order.StatusDetailsDto+StatusDescription"
          },
          "inProduction": {
            "$ref": "#/components/schemas/Order.StatusDetailsDto+StatusDescription"
          },
          "shipping": {
            "$ref": "#/components/schemas/Order.StatusDetailsDto+StatusDescription"
          }
        },
        "additionalProperties": false
      },
      "Order.StatusDto": {
        "type": "object",
        "properties": {
          "stage": {
            "$ref": "#/components/schemas/Order.StatusDto+StageDescription"
          },
          "issues": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Order.StatusIssueDto"
            },
            "nullable": true
          },
          "details": {
            "$ref": "#/components/schemas/Order.StatusDetailsDto"
          }
        },
        "additionalProperties": false
      },
      "Order.ChargeItemDtoType": {
        "enum": [
          0,
          1,
          2,
          3
        ],
        "type": "integer",
        "format": "int32"
      },
      "Order.ChargeItemDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "itemId": {
            "type": "string",
            "nullable": true
          },
          "cost": {
            "$ref": "#/components/schemas/Order.CostDto"
          },
          "shipmentId": {
            "type": "string",
            "nullable": true
          },
          "chargeType": {
            "$ref": "#/components/schemas/Order.ChargeItemDtoType"
          }
        },
        "additionalProperties": false
      },
      "Order.ChargeDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "prodigiInvoiceNumber": {
            "type": "string",
            "nullable": true
          },
          "totalCost": {
            "$ref": "#/components/schemas/Order.CostDto"
          },
          "totalTax": {
            "$ref": "#/components/schemas/Order.CostDto"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Order.ChargeItemDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Order.ShippingCarrierDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "service": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Order.FulfillmentLocationDto": {
        "type": "object",
        "properties": {
          "countryCode": {
            "type": "string",
            "nullable": true
          },
          "labCode": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Order.ShippingTrackingDto": {
        "type": "object",
        "properties": {
          "number": {
            "type": "string",
            "nullable": true
          },
          "url": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Order.ItemAvailability": {
        "enum": [
          0,
          1
        ],
        "type": "integer",
        "format": "int32"
      },
      "Order.ShipmentItemDto": {
        "type": "object",
        "properties": {
          "itemId": {
            "type": "string",
            "nullable": true
          },
          "availability": {
            "$ref": "#/components/schemas/Order.ItemAvailability"
          }
        },
        "additionalProperties": false
      },
      "Order.ShipmentStatus": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "format": "int32"
      },
      "Order.ShipmentDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "dispatchDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "carrier": {
            "$ref": "#/components/schemas/Order.ShippingCarrierDto"
          },
          "fulfillmentLocation": {
            "$ref": "#/components/schemas/Order.FulfillmentLocationDto"
          },
          "tracking": {
            "$ref": "#/components/schemas/Order.ShippingTrackingDto"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Order.ShipmentItemDto"
            },
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/Order.ShipmentStatus"
          }
        },
        "additionalProperties": false
      },
      "Order.AddressDto": {
        "type": "object",
        "properties": {
          "line1": {
            "type": "string",
            "nullable": true
          },
          "line2": {
            "type": "string",
            "nullable": true
          },
          "postalOrZipCode": {
            "type": "string",
            "nullable": true
          },
          "countryCode": {
            "type": "string",
            "nullable": true
          },
          "townOrCity": {
            "type": "string",
            "nullable": true
          },
          "stateOrCounty": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Order.RecipientDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "phoneNumber": {
            "type": "string",
            "nullable": true
          },
          "address": {
            "$ref": "#/components/schemas/Order.AddressDto"
          }
        },
        "additionalProperties": false
      },
      "Order.SpineDto": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "nullable": true
          },
          "backgroundColourHexCode": {
            "type": "string",
            "nullable": true
          },
          "textColourHexCode": {
            "type": "string",
            "nullable": true
          },
          "textSizePx": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "textFontFamily": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Order.OrderItemAssetDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "omsId": {
            "type": "string",
            "nullable": true
          },
          "printArea": {
            "type": "string",
            "nullable": true
          },
          "md5Hash": {
            "type": "string",
            "nullable": true
          },
          "url": {
            "type": "string",
            "nullable": true
          },
          "thumbnailUrl": {
            "type": "string",
            "nullable": true
          },
          "pageCount": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/Order.StatusDetailsDto+StatusDescription"
          }
        },
        "additionalProperties": false
      },
      "Order.OrderItemDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "omsId": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "merchantReference": {
            "type": "string",
            "nullable": true
          },
          "sku": {
            "type": "string",
            "nullable": true
          },
          "copies": {
            "type": "integer",
            "format": "int32"
          },
          "sizing": {
            "type": "string",
            "nullable": true
          },
          "thumbnailUrl": {
            "type": "string",
            "nullable": true
          },
          "attributes": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "nullable": true
          },
          "spine": {
            "$ref": "#/components/schemas/Order.SpineDto"
          },
          "assets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Order.OrderItemAssetDto"
            },
            "nullable": true
          },
          "recipientCost": {
            "$ref": "#/components/schemas/Order.CostDto"
          }
        },
        "additionalProperties": false
      },
      "Order.PackingSlipDto": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Order.BrandingItemDto": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Order.JToken": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/Order.JToken"
        }
      },
      "Order.OrderDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "omsId": {
            "type": "string",
            "nullable": true
          },
          "created": {
            "type": "string",
            "format": "date-time"
          },
          "lastUpdated": {
            "type": "string",
            "format": "date-time"
          },
          "callbackUrl": {
            "type": "string",
            "nullable": true
          },
          "merchantReference": {
            "type": "string",
            "nullable": true
          },
          "shippingMethod": {
            "type": "string",
            "nullable": true
          },
          "idempotencyKey": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/Order.StatusDto"
          },
          "charges": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Order.ChargeDto"
            },
            "nullable": true
          },
          "shipments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Order.ShipmentDto"
            },
            "nullable": true
          },
          "recipient": {
            "$ref": "#/components/schemas/Order.RecipientDto"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Order.OrderItemDto"
            },
            "nullable": true
          },
          "packingSlip": {
            "$ref": "#/components/schemas/Order.PackingSlipDto"
          },
          "branding": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/Order.BrandingItemDto"
            },
            "nullable": true
          },
          "metadata": {
            "$ref": "#/components/schemas/Order.JToken"
          },
          "tag": {
            "type": "string",
            "nullable": true
          },
          "usSalesTaxAlreadyCollected": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "Order.OrdersResponseDto": {
        "type": "object",
        "properties": {
          "outcome": {
            "type": "string",
            "nullable": true
          },
          "traceParent": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "hasMore": {
            "type": "boolean"
          },
          "nextUrl": {
            "type": "string",
            "nullable": true
          },
          "orders": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Order.OrderDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Order.CreateAddressDto": {
        "type": "object",
        "properties": {
          "line1": {
            "type": "string",
            "nullable": true
          },
          "line2": {
            "type": "string",
            "nullable": true
          },
          "postalOrZipCode": {
            "type": "string",
            "nullable": true
          },
          "countryCode": {
            "type": "string",
            "nullable": true
          },
          "townOrCity": {
            "type": "string",
            "nullable": true
          },
          "stateOrCounty": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Order.CreateRecipientDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "address": {
            "$ref": "#/components/schemas/Order.CreateAddressDto"
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "phoneNumber": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Order.CreateSpineDto": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "nullable": true
          },
          "backgroundColourHexCode": {
            "type": "string",
            "nullable": true
          },
          "textColourHexCode": {
            "type": "string",
            "nullable": true
          },
          "textSizePx": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "textFontFamily": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Order.CreateOrderItemAssetDto": {
        "type": "object",
        "properties": {
          "printArea": {
            "type": "string",
            "nullable": true
          },
          "md5Hash": {
            "type": "string",
            "nullable": true
          },
          "pageCount": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "url": {
            "type": "string",
            "format": "uri",
            "nullable": true
          },
          "omsId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Order.CreateCostDto": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "format": "double"
          },
          "currency": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Order.CreateOrderItemDto": {
        "type": "object",
        "properties": {
          "omsId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "sku": {
            "type": "string",
            "nullable": true
          },
          "merchantReference": {
            "type": "string",
            "nullable": true
          },
          "copies": {
            "type": "integer",
            "format": "int32"
          },
          "sizing": {
            "type": "string",
            "nullable": true
          },
          "attributes": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "nullable": true
          },
          "spine": {
            "$ref": "#/components/schemas/Order.CreateSpineDto"
          },
          "assets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Order.CreateOrderItemAssetDto"
            },
            "nullable": true
          },
          "recipientCost": {
            "$ref": "#/components/schemas/Order.CreateCostDto"
          }
        },
        "additionalProperties": false
      },
      "Order.CreatePackingSlipDto": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "description": "Gets or sets the optional URL for the packing slip.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Order.CreateOrderDto": {
        "type": "object",
        "properties": {
          "omsId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "callbackUrl": {
            "type": "string",
            "format": "uri",
            "nullable": true
          },
          "merchantReference": {
            "type": "string",
            "nullable": true
          },
          "idempotencyKey": {
            "type": "string",
            "nullable": true
          },
          "shippingMethod": {
            "type": "string",
            "nullable": true
          },
          "recipient": {
            "$ref": "#/components/schemas/Order.CreateRecipientDto"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Order.CreateOrderItemDto"
            },
            "nullable": true
          },
          "packingSlip": {
            "$ref": "#/components/schemas/Order.CreatePackingSlipDto"
          },
          "branding": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/Order.BrandingItemDto"
            },
            "nullable": true
          },
          "metadata": {
            "$ref": "#/components/schemas/Order.JToken"
          },
          "tag": {
            "type": "string",
            "nullable": true
          },
          "usSalesTaxAlreadyCollected": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "Order.OrderResponseDto": {
        "type": "object",
        "properties": {
          "outcome": {
            "type": "string",
            "nullable": true
          },
          "traceParent": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "order": {
            "$ref": "#/components/schemas/Order.OrderDto"
          }
        },
        "additionalProperties": false
      },
      "Order.ActionCapability": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "format": "int32"
      },
      "Order.ActionCapabilityDto": {
        "type": "object",
        "properties": {
          "isAvailable": {
            "$ref": "#/components/schemas/Order.ActionCapability"
          }
        },
        "additionalProperties": false
      },
      "Order.OrderActionsDto": {
        "type": "object",
        "properties": {
          "outcome": {
            "type": "string",
            "nullable": true
          },
          "traceParent": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "cancel": {
            "$ref": "#/components/schemas/Order.ActionCapabilityDto"
          },
          "changeRecipientDetails": {
            "$ref": "#/components/schemas/Order.ActionCapabilityDto"
          },
          "changeShippingMethod": {
            "$ref": "#/components/schemas/Order.ActionCapabilityDto"
          },
          "changeMetaData": {
            "$ref": "#/components/schemas/Order.ActionCapabilityDto"
          }
        },
        "additionalProperties": false
      },
      "Order.ShipmentChangeResultDetailsDto": {
        "type": "object",
        "properties": {
          "shipmentId": {
            "type": "string",
            "nullable": true
          },
          "successful": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "Order.UpdateRecipientResponseDto": {
        "type": "object",
        "properties": {
          "outcome": {
            "type": "string",
            "nullable": true
          },
          "traceParent": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "shipmentUpdateResult": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Order.ShipmentChangeResultDetailsDto"
            },
            "nullable": true
          },
          "order": {
            "$ref": "#/components/schemas/Order.OrderDto"
          }
        },
        "additionalProperties": false
      },
      "Order.UpdateShipmentMethodRequestDto": {
        "type": "object",
        "properties": {
          "shippingMethod": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Order.UpdateShipmentMethodResponseDto": {
        "type": "object",
        "properties": {
          "outcome": {
            "type": "string",
            "nullable": true
          },
          "traceParent": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "shipmentUpdateResults": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Order.ShipmentChangeResultDetailsDto"
            },
            "nullable": true
          },
          "order": {
            "$ref": "#/components/schemas/Order.OrderDto"
          }
        },
        "additionalProperties": false
      },
      "Order.UpdateOrderMetadataDto": {
        "type": "object",
        "properties": {
          "metadata": {
            "$ref": "#/components/schemas/Order.JToken"
          }
        },
        "additionalProperties": false
      },
      "Order.PreferredGlobalShippingMethod": {
        "enum": [
          0,
          1,
          2,
          3,
          4
        ],
        "type": "integer",
        "format": "int32"
      },
      "Order.QuotationItemAssetDto": {
        "type": "object",
        "properties": {
          "printArea": {
            "type": "string",
            "nullable": true
          },
          "pageCount": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Order.CreateQuotationItemDto": {
        "type": "object",
        "properties": {
          "copies": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "sku": {
            "type": "string",
            "nullable": true
          },
          "attributes": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "nullable": true
          },
          "assets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Order.QuotationItemAssetDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Order.CreateQuotationBranding": {
        "type": "object",
        "properties": {
          "inserts": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Order.CreateQuotationDto": {
        "type": "object",
        "properties": {
          "destinationCountryCode": {
            "type": "string",
            "nullable": true
          },
          "destinationPostCode": {
            "type": "string",
            "nullable": true
          },
          "currencyCode": {
            "type": "string",
            "nullable": true
          },
          "shippingMethod": {
            "$ref": "#/components/schemas/Order.PreferredGlobalShippingMethod"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Order.CreateQuotationItemDto"
            },
            "nullable": true
          },
          "branding": {
            "$ref": "#/components/schemas/Order.CreateQuotationBranding"
          }
        },
        "additionalProperties": false
      },
      "Quotation.CostDto": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "format": "double"
          },
          "currency": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Quotation.TotalsDto": {
        "type": "object",
        "properties": {
          "items": {
            "$ref": "#/components/schemas/Quotation.CostDto"
          },
          "shipping": {
            "$ref": "#/components/schemas/Quotation.CostDto"
          },
          "branding": {
            "$ref": "#/components/schemas/Quotation.CostDto"
          },
          "totalCost": {
            "$ref": "#/components/schemas/Quotation.CostDto"
          },
          "totalTax": {
            "$ref": "#/components/schemas/Quotation.CostDto"
          }
        },
        "additionalProperties": false
      },
      "Quotation.ShippingCarrierDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "service": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Quotation.FulfillmentLocationDto": {
        "type": "object",
        "properties": {
          "countryCode": {
            "type": "string",
            "nullable": true
          },
          "labCode": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Quotation.QuotationShipmentDto": {
        "type": "object",
        "properties": {
          "carrier": {
            "$ref": "#/components/schemas/Quotation.ShippingCarrierDto"
          },
          "fulfillmentLocation": {
            "$ref": "#/components/schemas/Quotation.FulfillmentLocationDto"
          },
          "cost": {
            "$ref": "#/components/schemas/Quotation.CostDto"
          },
          "items": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "brandingItems": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "tax": {
            "$ref": "#/components/schemas/Quotation.CostDto"
          }
        },
        "additionalProperties": false
      },
      "Quotation.QuotationItemAssetDto": {
        "type": "object",
        "properties": {
          "printArea": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Quotation.QuotationItemProCostsDto": {
        "type": "object",
        "properties": {
          "price": {
            "$ref": "#/components/schemas/Quotation.CostDto"
          },
          "discount": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "Quotation.AdditionalCost": {
        "type": "object",
        "properties": {
          "appliedTo": {
            "type": "string",
            "nullable": true
          },
          "unitCost": {
            "$ref": "#/components/schemas/Quotation.CostDto"
          },
          "taxUnitCost": {
            "$ref": "#/components/schemas/Quotation.CostDto"
          },
          "baseCount": {
            "type": "integer",
            "format": "int32"
          },
          "chargeableCount": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Quotation.QuotationItemDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "sku": {
            "type": "string",
            "nullable": true
          },
          "copies": {
            "type": "integer",
            "format": "int32"
          },
          "unitCost": {
            "$ref": "#/components/schemas/Quotation.CostDto"
          },
          "ourUnitCost": {
            "$ref": "#/components/schemas/Quotation.CostDto"
          },
          "attributes": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "nullable": true
          },
          "assets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Quotation.QuotationItemAssetDto"
            },
            "nullable": true
          },
          "taxUnitCost": {
            "$ref": "#/components/schemas/Quotation.CostDto"
          },
          "proCosts": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/Quotation.QuotationItemProCostsDto"
            },
            "nullable": true
          },
          "additionalCosts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Quotation.AdditionalCost"
            },
            "nullable": true
          },
          "labSpecificSku": {
            "type": "string",
            "nullable": true
          },
          "itemAvailability": {
            "$ref": "#/components/schemas/Order.ItemAvailability"
          }
        },
        "additionalProperties": false
      },
      "Quotation.QuotationInsertDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "cost": {
            "$ref": "#/components/schemas/Quotation.CostDto"
          },
          "tax": {
            "$ref": "#/components/schemas/Quotation.CostDto"
          }
        },
        "additionalProperties": false
      },
      "Quotation.QuotationBrandingDto": {
        "type": "object",
        "properties": {
          "inserts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Quotation.QuotationInsertDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Quotation.ShipmentSummaryDto": {
        "type": "object",
        "properties": {
          "shipmentMethod": {
            "$ref": "#/components/schemas/Order.PreferredGlobalShippingMethod"
          },
          "costSummary": {
            "$ref": "#/components/schemas/Quotation.TotalsDto"
          },
          "shipments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Quotation.QuotationShipmentDto"
            },
            "nullable": true
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Quotation.QuotationItemDto"
            },
            "nullable": true
          },
          "branding": {
            "$ref": "#/components/schemas/Quotation.QuotationBrandingDto"
          }
        },
        "additionalProperties": false
      },
      "Quotation.IssuesDto": {
        "type": "object",
        "properties": {
          "objectId": {
            "type": "string",
            "nullable": true
          },
          "errorCode": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Quotation.QuotationDto": {
        "type": "object",
        "properties": {
          "quotes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Quotation.ShipmentSummaryDto"
            },
            "nullable": true
          },
          "issues": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Quotation.IssuesDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Order.CompleteRegistrationRequestDto": {
        "required": [
          "billingCurrency",
          "countryCode",
          "fullName"
        ],
        "type": "object",
        "properties": {
          "fullName": {
            "type": "string"
          },
          "companyName": {
            "type": "string",
            "nullable": true
          },
          "billingCurrency": {
            "type": "string"
          },
          "countryCode": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string"
          },
          "whySigningUp": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Order.CompleteRegistrationResponseDto": {
        "type": "object",
        "properties": {
          "merchantId": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "Order.ShipmentCapabilitiesResultDto": {
        "type": "object",
        "properties": {
          "capabilities": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "capabilitiesExplanation": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Response model for shipment capabilities (capabilities and explanations)."
      },
      "Order.ShipmentCapabilitiesResultDto]": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "result": {
            "$ref": "#/components/schemas/Order.ShipmentCapabilitiesResultDto"
          },
          "message": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Generic wrapper for lab features responses."
      },
      "Order.LabFeaturesResponseDto": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Non-generic wrapper for lab features responses with message property."
      },
      "Order.ShippingUpdateRequestDto": {
        "type": "object",
        "properties": {
          "googleSheetsDocumentId": {
            "type": "string",
            "nullable": true
          },
          "worksheetName": {
            "type": "string",
            "nullable": true
          },
          "shippingSpeed": {
            "$ref": "#/components/schemas/Order.PreferredGlobalShippingMethod"
          },
          "siteFlowShipToMethod": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Order.ShippingUpdateRowResult": {
        "type": "object",
        "properties": {
          "labOrderId": {
            "type": "integer",
            "format": "int64"
          },
          "rowIndex": {
            "type": "integer",
            "format": "int32"
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "message": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Order.ShippingUpdateResult": {
        "type": "object",
        "properties": {
          "totalRows": {
            "type": "integer",
            "format": "int32"
          },
          "successCount": {
            "type": "integer",
            "format": "int32"
          },
          "failedCount": {
            "type": "integer",
            "format": "int32"
          },
          "skippedCount": {
            "type": "integer",
            "format": "int32"
          },
          "rowResults": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Order.ShippingUpdateRowResult"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "ApiKey": {
        "type": "apiKey",
        "name": "X-API-Key",
        "in": "header"
      }
    }
  },
  "security": [
    {
      "ApiKey": [ ]
    }
  ]
}