{
    "swagger": "2.0",
    "info": {
        "title": "PAXI API Documentation",
        "version": "1",
        "description": "\n**Property Naming Conventions**\n-----------------\n\n**dropLabelBarcode** We know this is a drop label (validated)\n\n**storageLocationBarcode** We know this is a storage location (validated)\n\n**parcelBarcode** We know this could be any one of the related parcel barcodes, which include drop label, courier parcel number, courier parcel waybill number, QR code (validated)\n\n**courierCollectionManifestBarcode** We know this is a courier collection manifest barcode (validated)\n\n**courierDeliveryManifestBarcode** We know this is a courier delivery manifest barcode (validated)\n\n**errorBarcode** We know this didn't match anything we were looking for client side (coming from the scanner in the UI)\n\n**barcode** We have no idea what kind of barcode we're dealing with yet (coming from the scanner in the UI)\n\n-----------------\n\n**Error Codes**\n-----------------\n\n\n**0001** - Unexpected Error: Runtime error only - never expected\n\n**1000** - Service offline\n\n**1008** - Login Error: Error with username or pin\n\n**1009** - Permissions Error\n\n**1010** - Old pin invalid\n\n**1011** - Drop Label Already In Use\n\n**1012** - Invalid Parcel State Transition\n\n**1013** - Storage location has been decommissioned\n\n**1015** - Create User Error: Staff number already in use\n\n**1016** - Delete User Error: User does not exist\n\n**1017** - Invalid pin used for existing user\n\n**1018** - Existing user is not a manager\n\n**1019** - Node is not assigned to a company\n\n\n\n-----------------\n\n**WSO2 Faults**\n-----------------\n\n\n**900901** - Invalid Credentials - Invalid Authentication information provided\n\n\n\n-----------------\n\n**WSO2 & OAuth2**\n-----------------\n\nThis API has been integrated with WSO2's API Manager and it's own OAuth2 implementation.\n\n**IMPORTANT NOTE:** WSO2 implements it's own error codes and error response format. The error codes can be found here: https://docs.wso2.com/display/AM1100/Error+Handling\n\nThe JSON error response can come back on any of the calls below and looks like this: {\"fault\":{\"code\":<errorCode>,\"message\":\"<message>\",\"description\":\"<Desciption>\"}}\n\n-----------------\n\n**Format: date-time**\n-----------------\n\nAll dates returned in this API must follow the format: Full ISO-8601  \n- Complete date plus hours, minutes, seconds and a decimal fraction of a second  \n- YYYY-MM-DDThh:mm:ss.sTZD (eg 1997-07-16T19:20:30.45+01:00)  \n- Please see: https://www.w3.org/TR/NOTE-datetime\n\n-----------------\n"
    },
    "paths": {
        "/startup/fetchStartupData": {
            "post": {
                "responses": {
                    "200": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/StartupData"
                        }
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "Returns the startup data required when the app starts.",
                "tags": [
                    "00 - Startup"
                ],
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "application/json",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "required": [
                                "uuid"
                            ],
                            "properties": {
                                "uuid": {
                                    "type": "string",
                                    "description": "The device's Universally Unique Identifier. On Android this will be the IMEI number. On iOS this will be the device UUID exposed by Cordova"
                                }
                            }
                        }
                    }
                ]
            }
        },
        "/startup/fetchCompanies": {
            "get": {
                "responses": {
                    "200": {
                        "description": "",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/Company"
                            }
                        }
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "Returns the companies supported",
                "tags": [
                    "00 - Startup"
                ]
            }
        },
        "/startup/fetchVersions": {
            "get": {
                "responses": {
                    "200": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/VersionHolder"
                        }
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "Returns the version of each server system component",
                "tags": [
                    "00 - Startup"
                ]
            }
        },
        "/auth/registerDevice": {
            "post": {
                "responses": {
                    "200": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/StartupData"
                        }
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n1017 - Invalid pin used for existing user\n\n1018 - Existing user is not a manager\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000",
                                        "1017",
                                        "1018"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n1017 - Invalid pin used for existing user\n\n1018 - Existing user is not a manager\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "Sends a request to register a new device and returns startup data.\n\nUpon calling register some validations will need to occur. If the staffNumber matches a user that is\nalready in the system 2 validations should occur. First the pin should be checked against that users pin\nand second if the user is not a STORE_MANAGER the request should be rejected.\n\nIf the request is successful - the data sent in this request should generate an admin console ticket, the admin console user will then\nuse this data to create the required user & register the device and link it to a node code.",
                "tags": [
                    "01 - Auth"
                ],
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "application/json",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "required": [
                                "uuid",
                                "firstName",
                                "lastName",
                                "cellNumber",
                                "storeNumber",
                                "staffNumber",
                                "pin",
                                "companyId"
                            ],
                            "properties": {
                                "uuid": {
                                    "type": "string",
                                    "description": "The device's Universally Unique Identifier. On Android this will be the IMEI number. On iOS this will be the device UUID exposed by Cordova"
                                },
                                "firstName": {
                                    "type": "string"
                                },
                                "lastName": {
                                    "type": "string"
                                },
                                "cellNumber": {
                                    "type": "string"
                                },
                                "storeNumber": {
                                    "type": "string"
                                },
                                "staffNumber": {
                                    "type": "string"
                                },
                                "pin": {
                                    "type": "string"
                                },
                                "companyId": {
                                    "type": "number"
                                },
                                "longitude": {
                                    "type": "number",
                                    "description": "The device's current longitude"
                                },
                                "latitude": {
                                    "type": "number",
                                    "description": "The device's current latitude"
                                }
                            }
                        }
                    }
                ]
            }
        },
        "/auth/validateLocation": {
            "post": {
                "responses": {
                    "200": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/LocationStatus"
                        }
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "Validates a location to check if it is within the radius of the registered location",
                "tags": [
                    "01 - Auth"
                ],
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "application/json",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "required": [
                                "nodeId",
                                "uuid",
                                "longitude",
                                "latitude"
                            ],
                            "properties": {
                                "nodeId": {
                                    "type": "number",
                                    "description": "The device's assigned nodeId"
                                },
                                "uuid": {
                                    "type": "string",
                                    "description": "The device's Universally Unique Identifier. On Android this will be the IMEI number. On iOS this will be the device UUID exposed by Cordova"
                                },
                                "longitude": {
                                    "type": "number",
                                    "description": "The device's current longitude"
                                },
                                "latitude": {
                                    "type": "number",
                                    "description": "The device's current latitude"
                                }
                            }
                        }
                    }
                ]
            }
        },
        "/auth/login": {
            "post": {
                "responses": {
                    "200": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/User"
                        }
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n1008 - Login Error: Error with username or pin\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000",
                                        "1008"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n1008 - Login Error: Error with username or pin\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "Logs in a user or returns an error. Server creates a sessions cookie that\nwill be sent with all requests",
                "tags": [
                    "01 - Auth"
                ],
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "application/json",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "required": [
                                "nodeId",
                                "deviceId",
                                "username",
                                "pin"
                            ],
                            "properties": {
                                "nodeId": {
                                    "type": "number",
                                    "description": "The device's assigned nodeId"
                                },
                                "deviceId": {
                                    "type": "string",
                                    "description": "The users device id string"
                                },
                                "username": {
                                    "type": "string"
                                },
                                "pin": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                ]
            }
        },
        "/auth/logout": {
            "post": {
                "responses": {
                    "200": {
                        "description": "Returned when the user has been sucessfully logged out"
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "Logs out the user. Server clears the session",
                "tags": [
                    "01 - Auth"
                ],
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "application/json",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "required": [
                                "nodeId",
                                "userId"
                            ],
                            "properties": {
                                "nodeId": {
                                    "type": "number",
                                    "description": "The device's assigned nodeId"
                                },
                                "userId": {
                                    "type": "number",
                                    "description": "The logged in user's id"
                                }
                            }
                        }
                    }
                ]
            }
        },
        "/parcel/fetchParcel": {
            "post": {
                "responses": {
                    "200": {
                        "description": "Returns null if nothing is found. Returns all the parcels found for the barcode or customerReferenceNumber (there may be duplicate customer reference numbers)",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/Parcel"
                            },
                            "x-isnullable": true
                        }
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "Returns the requested parcel",
                "tags": [
                    "02 - Parcel"
                ],
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "application/json",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "required": [
                                "nodeId",
                                "userId"
                            ],
                            "properties": {
                                "nodeId": {
                                    "type": "number",
                                    "description": "The device's assigned nodeId"
                                },
                                "userId": {
                                    "type": "number",
                                    "description": "The logged in user's id"
                                },
                                "barcode": {
                                    "type": "string"
                                },
                                "customerReferenceNumber": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                ]
            }
        },
        "/parcel/fetchParcelByCustomerCollectionCode": {
            "post": {
                "responses": {
                    "200": {
                        "description": "Returns null if nothing is found",
                        "schema": {
                            "$ref": "#/definitions/Parcel",
                            "x-isnullable": true
                        }
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "Returns the requested parcel",
                "tags": [
                    "02 - Parcel"
                ],
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "application/json",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "required": [
                                "nodeId",
                                "userId",
                                "customerCollectionCode"
                            ],
                            "properties": {
                                "nodeId": {
                                    "type": "number",
                                    "description": "The device's assigned nodeId"
                                },
                                "userId": {
                                    "type": "number",
                                    "description": "The logged in user's id"
                                },
                                "customerCollectionCode": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                ]
            }
        },
        "/parcel/validateBarcode": {
            "post": {
                "responses": {
                    "200": {
                        "description": "",
                        "schema": {
                            "type": "object",
                            "required": [
                                "valid"
                            ],
                            "properties": {
                                "valid": {
                                    "type": "boolean"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "Validates the supplied barcode number to make sure it's a legitimate parcel barcode in the system. Used in the PutAway process as an example.",
                "tags": [
                    "02 - Parcel"
                ],
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "application/json",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "required": [
                                "nodeId",
                                "userId",
                                "barcode"
                            ],
                            "properties": {
                                "nodeId": {
                                    "type": "number",
                                    "description": "The device's assigned nodeId"
                                },
                                "userId": {
                                    "type": "number",
                                    "description": "The logged in user's id"
                                },
                                "barcode": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                ]
            }
        },
        "/parcel/fetchStorageLocations": {
            "post": {
                "responses": {
                    "200": {
                        "description": "",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/StorageLocation"
                            },
                            "x-isnullable": true
                        }
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "This is used to fetch the applicable storage locations for the supplied parcel barcode number",
                "tags": [
                    "02 - Parcel"
                ],
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "application/json",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "required": [
                                "nodeId",
                                "userId",
                                "parcelId"
                            ],
                            "properties": {
                                "nodeId": {
                                    "type": "number",
                                    "description": "The device's assigned nodeId"
                                },
                                "userId": {
                                    "type": "number",
                                    "description": "The logged in user's id"
                                },
                                "parcelId": {
                                    "type": "number"
                                }
                            }
                        }
                    }
                ]
            }
        },
        "/parcel/fetchParcelTracking": {
            "post": {
                "responses": {
                    "200": {
                        "description": "",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/ParcelTrackingInfo"
                            },
                            "x-isnullable": true
                        }
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "Returns the tracking information for a parcel",
                "tags": [
                    "02 - Parcel"
                ],
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "application/json",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "required": [
                                "nodeId",
                                "userId",
                                "parcelId"
                            ],
                            "properties": {
                                "nodeId": {
                                    "type": "number",
                                    "description": "The device's assigned nodeId"
                                },
                                "userId": {
                                    "type": "number",
                                    "description": "The logged in user's id"
                                },
                                "parcelId": {
                                    "type": "number"
                                }
                            }
                        }
                    }
                ]
            }
        },
        "/parcel/fetchAllStorageLocations": {
            "post": {
                "responses": {
                    "200": {
                        "description": "",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/StorageLocation"
                            },
                            "x-isnullable": true
                        }
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "This is used to fetch all storage locations for management and activation in admin and settings",
                "tags": [
                    "02 - Parcel"
                ],
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "application/json",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "required": [
                                "nodeId",
                                "userId"
                            ],
                            "properties": {
                                "nodeId": {
                                    "type": "number",
                                    "description": "The device's assigned nodeId"
                                },
                                "userId": {
                                    "type": "number",
                                    "description": "The logged in user's id"
                                }
                            }
                        }
                    }
                ]
            }
        },
        "/parcel/markAsMissing": {
            "post": {
                "responses": {
                    "200": {
                        "description": "No response needed, 200 means passed"
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "This is used to flag a parcel as missing",
                "tags": [
                    "02 - Parcel"
                ],
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "application/json",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "required": [
                                "nodeId",
                                "userId",
                                "deviceId",
                                "parcelId",
                                "context"
                            ],
                            "properties": {
                                "nodeId": {
                                    "type": "number",
                                    "description": "The device's assigned nodeId"
                                },
                                "userId": {
                                    "type": "number",
                                    "description": "The logged in user's id"
                                },
                                "deviceId": {
                                    "type": "string",
                                    "description": "The users device id string"
                                },
                                "parcelId": {
                                    "type": "number"
                                },
                                "context": {
                                    "type": "string",
                                    "enum": [
                                        "NON_COLLECTION_RETURN",
                                        "PARCEL_TERMINATION"
                                    ]
                                }
                            }
                        }
                    }
                ]
            }
        },
        "/parcel/fetchStorageLocationParcelCounts": {
            "post": {
                "responses": {
                    "200": {
                        "description": "",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/StorageLocationParcelCount"
                            },
                            "x-isnullable": true
                        }
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "Returns a count of parcels in each storage location",
                "tags": [
                    "02 - Parcel"
                ],
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "application/json",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "required": [
                                "nodeId",
                                "userId"
                            ],
                            "properties": {
                                "nodeId": {
                                    "type": "number",
                                    "description": "The device's assigned nodeId"
                                },
                                "userId": {
                                    "type": "number",
                                    "description": "The logged in user's id"
                                }
                            }
                        }
                    }
                ]
            }
        },
        "/parcel/activateStorageLocation": {
            "post": {
                "responses": {
                    "200": {
                        "description": "",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/StorageLocation"
                            }
                        }
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "This is used to fetch all storage locations for management and activation in admin and settings",
                "tags": [
                    "02 - Parcel"
                ],
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "application/json",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "required": [
                                "nodeId",
                                "userId",
                                "deviceId",
                                "storageLocationId"
                            ],
                            "properties": {
                                "nodeId": {
                                    "type": "number",
                                    "description": "The device's assigned nodeId"
                                },
                                "userId": {
                                    "type": "number",
                                    "description": "The logged in user's id"
                                },
                                "deviceId": {
                                    "type": "string",
                                    "description": "The users device id string"
                                },
                                "storageLocationId": {
                                    "type": "number"
                                }
                            }
                        }
                    }
                ]
            }
        },
        "/customerDrop/fetchServiceTypePricePoints": {
            "post": {
                "responses": {
                    "200": {
                        "description": "",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/ServiceTypeGroup"
                            },
                            "x-isnullable": true
                        }
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "This call used to fetch the service types and price associations on all various levels, e.g. budget, economy, premium",
                "tags": [
                    "03 - CustomerDrop"
                ],
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "application/json",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "required": [
                                "nodeId",
                                "userId"
                            ],
                            "properties": {
                                "nodeId": {
                                    "type": "number",
                                    "description": "The device's assigned nodeId"
                                },
                                "userId": {
                                    "type": "number",
                                    "description": "The logged in user's id"
                                }
                            }
                        }
                    }
                ]
            }
        },
        "/customerDrop/issueDropToken": {
            "post": {
                "responses": {
                    "200": {
                        "description": "",
                        "schema": {
                            "type": "object",
                            "required": [
                                "dropToken"
                            ],
                            "properties": {
                                "dropToken": {
                                    "type": "string",
                                    "description": "The drop token to be issued to the customer immediately by sms"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "Issues a drop token for a new counter to counter customer. Should be smsed directly to the customer.",
                "tags": [
                    "03 - CustomerDrop"
                ],
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "application/json",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "required": [
                                "nodeId",
                                "userId",
                                "deviceId",
                                "cellPhoneNumber",
                                "boxType",
                                "serviceTypeId"
                            ],
                            "properties": {
                                "nodeId": {
                                    "type": "number",
                                    "description": "The device's assigned nodeId"
                                },
                                "userId": {
                                    "type": "number",
                                    "description": "The logged in user's id"
                                },
                                "deviceId": {
                                    "type": "string",
                                    "description": "The users device id string"
                                },
                                "cellPhoneNumber": {
                                    "type": "string"
                                },
                                "boxType": {
                                    "type": "string",
                                    "description": "\nThis will be the product type description that the user selects for the appropriate box type.  \nProduct types will be filtered on the client side so only box types that have products created for them.   \n"
                                },
                                "serviceTypeId": {
                                    "type": "number"
                                },
                                "destinationNodeId": {
                                    "type": "number"
                                }
                            }
                        }
                    }
                ]
            }
        },
        "/customerCollection/validateCustomerCollectionCode": {
            "post": {
                "responses": {
                    "200": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/CustomerCollectParcelMatch"
                        }
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "\nValidates the supplied customer collection code and returns a reason if not valid.\nIf valid the call should return the related parcel.\nIf multiple parcels associated (a recycled collection code) PMM will always assume the one in question is the most recent ordered by induction date.\n",
                "tags": [
                    "05 - CustomerCollection"
                ],
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "application/json",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "required": [
                                "nodeId",
                                "userId",
                                "customerCollectionCode"
                            ],
                            "properties": {
                                "nodeId": {
                                    "type": "number",
                                    "description": "The device's assigned nodeId"
                                },
                                "userId": {
                                    "type": "number",
                                    "description": "The logged in user's id"
                                },
                                "customerCollectionCode": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                ]
            }
        },
        "/customerCollection/fetchPreCollectionParcelsByProfileCode": {
            "post": {
                "responses": {
                    "200": {
                        "description": "",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/CustomerCollectParcel"
                            },
                            "x-isnullable": true
                        }
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "\nUsed to search for an initial set of parcels that are in a state before collection.  \nIf the user can't find his parcel /customerCollection/fetchPostCollectionParcelsByProfileCode will be used to expand search.  \n\nThis call should filter and only include parcels that are in the status of:  \nDELIVERY_TRIP, AWAITING_COLLECTION, undefined, MISSING, IN_TRANSIT    \n\nAdditionally, if a parcel was resent by a supplier the original parcel should not be returned here.\n\n**Note:**\n- Parcels must be sorted by inductionDate returning newest first\n- No parcels should ever be returned for suppliers that don't support alternate collection.  \n",
                "tags": [
                    "05 - CustomerCollection"
                ],
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "application/json",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "required": [
                                "nodeId",
                                "userId",
                                "supplierCode",
                                "customerProfileCode"
                            ],
                            "properties": {
                                "nodeId": {
                                    "type": "number",
                                    "description": "The device's assigned nodeId"
                                },
                                "userId": {
                                    "type": "number",
                                    "description": "The logged in user's id"
                                },
                                "supplierCode": {
                                    "type": "string"
                                },
                                "customerProfileCode": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                ]
            }
        },
        "/customerCollection/searchAndValidateCustomer": {
            "post": {
                "responses": {
                    "200": {
                        "description": "",
                        "schema": {
                            "type": "object",
                            "required": [
                                "valid"
                            ],
                            "properties": {
                                "valid": {
                                    "type": "boolean",
                                    "description": "\nfalse if the identification passed to the call failed against the product.\nThe product will either be setup to validate against a specific customer ID or not.\n"
                                },
                                "customer": {
                                    "$ref": "#/definitions/OneProfileCustomer_SearchAndValidate"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "**NOTE: The validation portion of this API has been removed temporarily & is not implemented**\n        \nThis call does 2 things:\n- it searches for an existing one profile entry  \n- it validates if the one profile entry is allowed to collect the parcel. (this will be configured per product)\n        ",
                "tags": [
                    "05 - CustomerCollection"
                ],
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "application/json",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "required": [
                                "nodeId",
                                "userId",
                                "parcelId",
                                "identificationCountry",
                                "identificationType",
                                "barcode",
                                "collectionType"
                            ],
                            "properties": {
                                "nodeId": {
                                    "type": "number",
                                    "description": "The device's assigned nodeId"
                                },
                                "userId": {
                                    "type": "number",
                                    "description": "The logged in user's id"
                                },
                                "parcelId": {
                                    "type": "number"
                                },
                                "identificationCountry": {
                                    "type": "string",
                                    "description": "ISO 3166-1 alpha-2 code"
                                },
                                "identificationType": {
                                    "type": "string",
                                    "enum": [
                                        "PEP_CARD",
                                        "ID_BOOK_OR_CARD",
                                        "PASSPORT"
                                    ]
                                },
                                "barcode": {
                                    "type": "string"
                                },
                                "collectionType": {
                                    "type": "string",
                                    "enum": [
                                        "STANDARD",
                                        "ALTERNATE"
                                    ]
                                }
                            }
                        }
                    }
                ]
            }
        },
        "/customerCollection/fetchCustomerCollectionParcelById": {
            "post": {
                "responses": {
                    "200": {
                        "description": "No response needed - 200 means passed",
                        "schema": {
                            "$ref": "#/definitions/CustomerCollectParcel"
                        }
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "Fetches a specific parcel for customer collection by ID. Used to refetch all the required data for a parcel when completing a POD",
                "tags": [
                    "05 - CustomerCollection"
                ],
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "application/json",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "required": [
                                "nodeId",
                                "userId",
                                "parcelId"
                            ],
                            "properties": {
                                "nodeId": {
                                    "type": "number",
                                    "description": "The device's assigned nodeId"
                                },
                                "userId": {
                                    "type": "number",
                                    "description": "The logged in user's id"
                                },
                                "parcelId": {
                                    "type": "number"
                                }
                            }
                        }
                    }
                ]
            }
        },
        "/customerCollection/saveProcess": {
            "post": {
                "responses": {
                    "200": {
                        "description": "No response needed - 200 means passed"
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "Used to persist a customer collection at the end of the process",
                "tags": [
                    "05 - CustomerCollection"
                ],
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "application/json",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "required": [
                                "nodeId",
                                "userId",
                                "deviceId",
                                "parcelId",
                                "parcelMissing",
                                "collectionType"
                            ],
                            "properties": {
                                "nodeId": {
                                    "type": "number",
                                    "description": "The device's assigned nodeId"
                                },
                                "userId": {
                                    "type": "number",
                                    "description": "The logged in user's id"
                                },
                                "deviceId": {
                                    "type": "string",
                                    "description": "The users device id string"
                                },
                                "parcelId": {
                                    "type": "number"
                                },
                                "parcelMissing": {
                                    "type": "boolean"
                                },
                                "customer": {
                                    "$ref": "#/definitions/OneProfileCustomer_SaveCustomerCollection",
                                    "description": "\nThis will only be populated when identificationRequired=true for\n'CustomerCollectParcel' returned in /customerCollection/validateCustomerReferenceNumber\n"
                                },
                                "collectionType": {
                                    "type": "string",
                                    "enum": [
                                        "STANDARD",
                                        "ALTERNATE"
                                    ]
                                }
                            }
                        }
                    }
                ]
            }
        },
        "/pod/upload": {
            "post": {
                "responses": {
                    "200": {
                        "description": "",
                        "schema": {
                            "type": "object",
                            "required": [
                                "imageId"
                            ],
                            "properties": {
                                "imageId": {
                                    "type": "number"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "This is an image upload method specifically to support the uploading of proof of delivery signatures.",
                "tags": [
                    "06 - POD"
                ],
                "consumes": [
                    "multipart/form-data"
                ],
                "parameters": [
                    {
                        "type": "number",
                        "in": "formData",
                        "name": "nodeId",
                        "required": true,
                        "description": "The device's assigned nodeId"
                    },
                    {
                        "type": "number",
                        "in": "formData",
                        "name": "userId ",
                        "required": true,
                        "description": "The logged in user's id"
                    },
                    {
                        "type": "string",
                        "in": "formData",
                        "name": "deviceId",
                        "required": true,
                        "description": "The users device id string"
                    },
                    {
                        "type": "file",
                        "in": "formData",
                        "name": "image",
                        "required": true
                    },
                    {
                        "type": "string",
                        "in": "formData",
                        "name": "type",
                        "required": true,
                        "enum": [
                            "PICTURE",
                            "SIGN_ON_GLASS"
                        ]
                    },
                    {
                        "type": "number",
                        "in": "formData",
                        "name": "parcelId",
                        "required": true
                    },
                    {
                        "type": "string",
                        "in": "formData",
                        "name": "processType",
                        "required": true,
                        "enum": [
                            "CUSTOMER_COLLECTION"
                        ],
                        "description": ""
                    },
                    {
                        "type": "string",
                        "in": "formData",
                        "name": "collectionType",
                        "required": false,
                        "enum": [
                            "STANDARD",
                            "ALTERNATE"
                        ]
                    }
                ]
            }
        },
        "/pod/link": {
            "post": {
                "responses": {
                    "200": {
                        "description": "No response needed - 200 means passed"
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "\nUsed to link a successfully uploaded POD image to a parcel.  \nThis will be used at the end of a customer collection process, a customer return process & a counter to counter process.  \nAdditionally this will be used to link an image when processing an incomplete collection / drop\n",
                "tags": [
                    "06 - POD"
                ],
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "application/json",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "required": [
                                "nodeId",
                                "userId",
                                "deviceId",
                                "parcelId",
                                "imageId",
                                "processType"
                            ],
                            "properties": {
                                "nodeId": {
                                    "type": "number",
                                    "description": "The device's assigned nodeId"
                                },
                                "userId": {
                                    "type": "number",
                                    "description": "The logged in user's id"
                                },
                                "deviceId": {
                                    "type": "string",
                                    "description": "The users device id string"
                                },
                                "parcelId": {
                                    "type": "number"
                                },
                                "imageId": {
                                    "type": "number"
                                },
                                "processType": {
                                    "type": "string",
                                    "enum": [
                                        "CUSTOMER_COLLECTION",
                                        "COUNTER_TO_COUNTER",
                                        "CUSTOMER_RETURN"
                                    ],
                                    "description": ""
                                }
                            }
                        }
                    }
                ]
            }
        },
        "/courierCollection/fetchPreCollectionSummary": {
            "post": {
                "responses": {
                    "200": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/PreCourierCollectionSummaryResult",
                            "x-isnullable": true
                        }
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "\nUsed to display collection information to the user regarding parcels in the store \nbefore a collection number is validated.  \nAdditionally when there are no parcels a courier collection completion number is generated\n",
                "tags": [
                    "07 - CourierCollection"
                ],
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "application/json",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "required": [
                                "nodeId",
                                "userId",
                                "courier"
                            ],
                            "properties": {
                                "nodeId": {
                                    "type": "number",
                                    "description": "The device's assigned nodeId"
                                },
                                "userId": {
                                    "type": "number",
                                    "description": "The logged in user's id"
                                },
                                "courier": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                ]
            }
        },
        "/courierCollection/fetchParcelsForCollection": {
            "post": {
                "responses": {
                    "200": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/ParcelsForCollectionResult",
                            "x-isnullable": true
                        }
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "\nValidates the supplied courier collection number and returns all parcels in AWAITING_UPLIFTMENT for the associated courier and node.  \n\n**NOTE:** This API will fail to respond with a valid response if executed outside of the app workflow.  \nThis API can only be used if /courierCollection/fetchPreCollectionSummary has returned a count > 0  \nThis is due to design decisions in the underlying PMM APIs\n",
                "tags": [
                    "07 - CourierCollection"
                ],
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "application/json",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "required": [
                                "nodeId",
                                "userId",
                                "barcode",
                                "courier"
                            ],
                            "properties": {
                                "nodeId": {
                                    "type": "number",
                                    "description": "The device's assigned nodeId"
                                },
                                "userId": {
                                    "type": "number",
                                    "description": "The logged in user's id"
                                },
                                "barcode": {
                                    "type": "string"
                                },
                                "courier": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                ]
            }
        },
        "/courierCollection/saveProcess": {
            "post": {
                "responses": {
                    "200": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/CourierCollectionSaveResult",
                            "x-isnullable": true
                        }
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n1012 - Invalid Parcel State Transition\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000",
                                        "1012"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n1012 - Invalid Parcel State Transition\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "\nSends through the list of barcodes scanned as well as whether the scan was successful or an error.  \nThis detail must be added as parcel events for tracking purposes.  \nERROR means the barcode didn't match anything in AWAITING_UPLIFTMENT.\n",
                "tags": [
                    "07 - CourierCollection"
                ],
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "application/json",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "required": [
                                "nodeId",
                                "userId",
                                "deviceId",
                                "courier",
                                "scannedBarcodes",
                                "missingParcelIds",
                                "courierCollectionNumber"
                            ],
                            "properties": {
                                "nodeId": {
                                    "type": "number",
                                    "description": "The device's assigned nodeId"
                                },
                                "userId": {
                                    "type": "number",
                                    "description": "The logged in user's id"
                                },
                                "deviceId": {
                                    "type": "string",
                                    "description": "The users device id string"
                                },
                                "courier": {
                                    "type": "string"
                                },
                                "scannedBarcodes": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/definitions/BarcodeScan"
                                    }
                                },
                                "missingParcelIds": {
                                    "type": "array",
                                    "items": {
                                        "type": "number"
                                    }
                                },
                                "courierCollectionNumber": {
                                    "type": "string",
                                    "description": "The courier collection number entered by the user, this may be different to the actual collection number as the validation is relaxed"
                                }
                            }
                        }
                    }
                ]
            }
        },
        "/courierDelivery/isParcelEligibleForDelivery": {
            "post": {
                "responses": {
                    "200": {
                        "description": "",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/CourierDeliveryParcelMatchResult"
                            },
                            "x-isnullable": true
                        }
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "\nUsed in a courier delivery to ensure parcel is eligible for delivery.  \nFor the returned parcel to be a MATCH, it must be in ANY state, other than statues that mean: collected/delivered/closed.  \nParcels matched, MUST be for the given nodeId and courier.  \nThere may be multiple parcels that match the barcode given so the server will always return an array of results.  \n",
                "tags": [
                    "08 - CourierDelivery"
                ],
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "application/json",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "required": [
                                "nodeId",
                                "userId",
                                "barcode",
                                "courier"
                            ],
                            "properties": {
                                "nodeId": {
                                    "type": "number",
                                    "description": "The device's assigned nodeId"
                                },
                                "userId": {
                                    "type": "number",
                                    "description": "The logged in user's id"
                                },
                                "barcode": {
                                    "type": "string",
                                    "description": "The parcel barcode scanned, this may be any of the barcodes on a parcel"
                                },
                                "courier": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                ]
            }
        },
        "/courierDelivery/fetchParcelsForDelivery": {
            "post": {
                "responses": {
                    "200": {
                        "description": "\nReturns null if nothing is found.\nThe CourierDeliveryProduct object is an abstract grouping based on source parcel properties from PMM.\nWhen returned no two CourierDeliveryProduct objects should have the same productType or supplier.\n",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/CourierDeliveryProduct"
                            },
                            "x-isnullable": true
                        }
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "Returns all parcels in DELIVERY_TRIP status for the node and courier in question.",
                "tags": [
                    "08 - CourierDelivery"
                ],
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "application/json",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "required": [
                                "nodeId",
                                "userId",
                                "courier"
                            ],
                            "properties": {
                                "nodeId": {
                                    "type": "number",
                                    "description": "The device's assigned nodeId"
                                },
                                "userId": {
                                    "type": "number",
                                    "description": "The logged in user's id"
                                },
                                "courier": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                ]
            }
        },
        "/courierDelivery/saveProcess": {
            "post": {
                "responses": {
                    "200": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/CourierDeliverySaveResult",
                            "x-isnullable": true
                        }
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "Saves the scanned parcels for a courier delivery",
                "tags": [
                    "08 - CourierDelivery"
                ],
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "application/json",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "required": [
                                "nodeId",
                                "userId",
                                "deviceId",
                                "courier",
                                "scannedBarcodes",
                                "missingParcelIds",
                                "damagedParcels"
                            ],
                            "properties": {
                                "nodeId": {
                                    "type": "number",
                                    "description": "The device's assigned nodeId"
                                },
                                "userId": {
                                    "type": "number",
                                    "description": "The logged in user's id"
                                },
                                "deviceId": {
                                    "type": "string",
                                    "description": "The users device id string"
                                },
                                "courier": {
                                    "type": "string"
                                },
                                "scannedBarcodes": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/definitions/BarcodeScan"
                                    }
                                },
                                "missingParcelIds": {
                                    "type": "array",
                                    "items": {
                                        "type": "number"
                                    }
                                },
                                "damagedParcels": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/definitions/DamagedParcel"
                                    }
                                }
                            }
                        }
                    }
                ]
            }
        },
        "/putAway/fetchParcel": {
            "post": {
                "responses": {
                    "200": {
                        "description": "Returns null if nothing is found. Returns all the parcels found for the barcode or customerReferenceNumber (there may be duplicate customer reference numbers)",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/Parcel"
                            },
                            "x-isnullable": true
                        }
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "Returns the requested parcel or parcels that match the barcode. This should call is used explicitly for put away and should only ever return parcels deemed 'active'.",
                "tags": [
                    "09 - PutAway"
                ],
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "application/json",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "required": [
                                "nodeId",
                                "userId"
                            ],
                            "properties": {
                                "nodeId": {
                                    "type": "number",
                                    "description": "The device's assigned nodeId"
                                },
                                "userId": {
                                    "type": "number",
                                    "description": "The logged in user's id"
                                },
                                "barcode": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                ]
            }
        },
        "/putAway/validateBarcode": {
            "post": {
                "responses": {
                    "200": {
                        "description": "",
                        "schema": {
                            "type": "object",
                            "required": [
                                "valid"
                            ],
                            "properties": {
                                "valid": {
                                    "type": "boolean"
                                },
                                "parcelStatus": {
                                    "type": "string",
                                    "enum": [
                                        "AWAITING_UPLIFTMENT",
                                        "IN_TRANSIT",
                                        "INCOMPLETE_COLLECTION",
                                        "COLLECTED",
                                        "DELIVERY_TRIP",
                                        "AWAITING_COLLECTION",
                                        "MISSING",
                                        "LOST",
                                        "DELIVERED",
                                        "AWAITING_PROCESSING",
                                        "SHORT_RECEIVED",
                                        "CANCELLED",
                                        "CLOSED",
                                        "DAMAGED"
                                    ],
                                    "description": "There are a number of statuses that a parcel may have, the descriptions for each are as follows:\n\n  \n\n|**Enum**|**Description**|\n|-|-|\n|AWAITING_UPLIFTMENT|Table Index:  1 - Inducted by supplier, customer drop, return processing or reroute processing. Upliftment Request has been sent to courier.|\n|IN_TRANSIT|Table Index:  2 - Parcel has been scanned out to courier from store, or upliftment confirmation has been received from courier after upliftment from supplier.|\n|INCOMPLETE_COLLECTION|Table Index: 16 - Parcel has been collected, no POD image has yet been uploaded|\n|COLLECTED|Table Index:  3 - Customer has collected forward logistics parcel from store.|\n|DELIVERY_TRIP|Table Index:  4 - Parcel is en route to the node for delivery|\n|AWAITING_COLLECTION|Table Index:  5 - Parcel has been scanned into delivery node to be collected by customer.|\n|MISSING|Table Index:  6 - Parcel scan was requested during customer collection, courier collection or stock take process but was flagged as missing.|\n|LOST|Table Index:  7 - Missing parcel was written off by product manager because it could not be found.|\n|DELIVERED|Table Index:  8 - Courier has delivered reverse logistics parcel to supplier and electronic POD has been received.|\n|AWAITING_PROCESSING|Table Index:  9 - In some cases parcels will require an action; either to be rerouted to a different store (if the courier company or the supplier screwed up) or returned to sender (when the customer didn't come to collect it)|\n|SHORT_RECEIVED|Table Index: 12 - Parcel has been decalred as missing during a courier delivery|\n|CANCELLED|Table Index: 14 - Parcel has been cancelled. This can only happen from the admin console with a status update|\n|CLOSED|Table Index: 15 - Parcel has been written off in a termination process due to non collection.|\n|DAMAGED|Table Index: 17 - Parcel has been marked as damaged in courier delivery process.|\n| | |"
                                },
                                "reason": {
                                    "type": "string",
                                    "enum": [
                                        "DOESNT_EXIST_IN_SYSTEM",
                                        "PARCEL_NOT_VALID_FOR_PUT_AWAY",
                                        "IS_STORE_DELIVERY"
                                    ],
                                    "description": "  \n\n|**Enum**|**Description**|\n|-|-|\n|DOESNT_EXIST_IN_SYSTEM|Parcel simply does not yet exist in the system|\n|PARCEL_NOT_VALID_FOR_PUT_AWAY|Parcel not valid for put away|\n|IS_STORE_DELIVERY|Parcel has been deemed a store delivery parcel and has been delivered|\n| | |"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "\nValidates the supplied barcode number to make sure it's a legitimate parcel barcode in the system. \nAdditionally, this call checks if the Parcel is in a status that is allowed to be Put Away.\n",
                "tags": [
                    "09 - PutAway"
                ],
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "application/json",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "required": [
                                "nodeId",
                                "userId",
                                "parcelId"
                            ],
                            "properties": {
                                "nodeId": {
                                    "type": "number",
                                    "description": "The device's assigned nodeId"
                                },
                                "userId": {
                                    "type": "number",
                                    "description": "The logged in user's id"
                                },
                                "parcelId": {
                                    "type": "number"
                                }
                            }
                        }
                    }
                ]
            }
        },
        "/putAway/saveProcess": {
            "post": {
                "responses": {
                    "200": {
                        "description": "",
                        "schema": {
                            "type": "object",
                            "required": [
                                "valid"
                            ],
                            "properties": {
                                "valid": {
                                    "type": "boolean"
                                },
                                "parcelStatus": {
                                    "type": "string",
                                    "enum": [
                                        "AWAITING_UPLIFTMENT",
                                        "IN_TRANSIT",
                                        "INCOMPLETE_COLLECTION",
                                        "COLLECTED",
                                        "DELIVERY_TRIP",
                                        "AWAITING_COLLECTION",
                                        "MISSING",
                                        "LOST",
                                        "DELIVERED",
                                        "AWAITING_PROCESSING",
                                        "SHORT_RECEIVED",
                                        "CANCELLED",
                                        "CLOSED",
                                        "DAMAGED"
                                    ],
                                    "description": "There are a number of statuses that a parcel may have, the descriptions for each are as follows:\n\n  \n\n|**Enum**|**Description**|\n|-|-|\n|AWAITING_UPLIFTMENT|Table Index:  1 - Inducted by supplier, customer drop, return processing or reroute processing. Upliftment Request has been sent to courier.|\n|IN_TRANSIT|Table Index:  2 - Parcel has been scanned out to courier from store, or upliftment confirmation has been received from courier after upliftment from supplier.|\n|INCOMPLETE_COLLECTION|Table Index: 16 - Parcel has been collected, no POD image has yet been uploaded|\n|COLLECTED|Table Index:  3 - Customer has collected forward logistics parcel from store.|\n|DELIVERY_TRIP|Table Index:  4 - Parcel is en route to the node for delivery|\n|AWAITING_COLLECTION|Table Index:  5 - Parcel has been scanned into delivery node to be collected by customer.|\n|MISSING|Table Index:  6 - Parcel scan was requested during customer collection, courier collection or stock take process but was flagged as missing.|\n|LOST|Table Index:  7 - Missing parcel was written off by product manager because it could not be found.|\n|DELIVERED|Table Index:  8 - Courier has delivered reverse logistics parcel to supplier and electronic POD has been received.|\n|AWAITING_PROCESSING|Table Index:  9 - In some cases parcels will require an action; either to be rerouted to a different store (if the courier company or the supplier screwed up) or returned to sender (when the customer didn't come to collect it)|\n|SHORT_RECEIVED|Table Index: 12 - Parcel has been decalred as missing during a courier delivery|\n|CANCELLED|Table Index: 14 - Parcel has been cancelled. This can only happen from the admin console with a status update|\n|CLOSED|Table Index: 15 - Parcel has been written off in a termination process due to non collection.|\n|DAMAGED|Table Index: 17 - Parcel has been marked as damaged in courier delivery process.|\n| | |"
                                },
                                "reason": {
                                    "type": "string",
                                    "enum": [
                                        "DOESNT_EXIST_IN_SYSTEM",
                                        "PARCEL_NOT_VALID_FOR_PUT_AWAY",
                                        "IS_STORE_DELIVERY"
                                    ],
                                    "description": "  \n\n|**Enum**|**Description**|\n|-|-|\n|DOESNT_EXIST_IN_SYSTEM|Parcel simply does not yet exist in the system|\n|PARCEL_NOT_VALID_FOR_PUT_AWAY|Parcel not valid for put away|\n|IS_STORE_DELIVERY|Parcel has been deemed a store delivery parcel and has been delivered|\n| | |"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n1013 - Storage location has been decommissioned\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000",
                                        "1013"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n1013 - Storage location has been decommissioned\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "\nRun at the end of the put away process to marry the supplied parcel to the supplied storage location. \nAdditionally, this call checks if the Parcel is in a status that is allowed to be Put Away.\n",
                "tags": [
                    "09 - PutAway"
                ],
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "application/json",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "required": [
                                "nodeId",
                                "userId",
                                "deviceId",
                                "parcelId",
                                "overrideNotValidStatus",
                                "storageLocationBarcode"
                            ],
                            "properties": {
                                "nodeId": {
                                    "type": "number",
                                    "description": "The device's assigned nodeId"
                                },
                                "userId": {
                                    "type": "number",
                                    "description": "The logged in user's id"
                                },
                                "deviceId": {
                                    "type": "string",
                                    "description": "The users device id string"
                                },
                                "parcelId": {
                                    "type": "number"
                                },
                                "overrideNotValidStatus": {
                                    "type": "boolean",
                                    "description": "This allows a manager to override the parcel status check"
                                },
                                "storageLocationBarcode": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                ]
            }
        },
        "/user/fetchAllUsers": {
            "post": {
                "responses": {
                    "200": {
                        "description": "Returns null if nothing is found",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/User"
                            },
                            "x-isnullable": true
                        }
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n1009 - Permissions Error\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000",
                                        "1009"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n1009 - Permissions Error\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "Returns a list of all users for the current device/node",
                "tags": [
                    "10 - UserManagement"
                ],
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "application/json",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "required": [
                                "nodeId",
                                "userId"
                            ],
                            "properties": {
                                "nodeId": {
                                    "type": "number",
                                    "description": "The device's assigned nodeId"
                                },
                                "userId": {
                                    "type": "number",
                                    "description": "The logged in user's id"
                                }
                            }
                        }
                    }
                ]
            }
        },
        "/user/fetchUser": {
            "post": {
                "responses": {
                    "200": {
                        "description": "Returns null if nothing is found",
                        "schema": {
                            "$ref": "#/definitions/User"
                        }
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n1009 - Permissions Error\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000",
                                        "1009"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n1009 - Permissions Error\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "Returns the requested user",
                "tags": [
                    "10 - UserManagement"
                ],
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "application/json",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "required": [
                                "nodeId",
                                "userId",
                                "userIdToFetch"
                            ],
                            "properties": {
                                "nodeId": {
                                    "type": "number",
                                    "description": "The device's assigned nodeId"
                                },
                                "userId": {
                                    "type": "number",
                                    "description": "The logged in user's id"
                                },
                                "userIdToFetch": {
                                    "type": "number"
                                }
                            }
                        }
                    }
                ]
            }
        },
        "/user/createUser": {
            "post": {
                "responses": {
                    "200": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/User"
                        }
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n1009 - Permissions Error\n\n1015 - Create User Error: Staff number already in use\n\n1019 - Node is not assigned to a company\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000",
                                        "1009",
                                        "1015",
                                        "1019"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n1009 - Permissions Error\n\n1015 - Create User Error: Staff number already in use\n\n1019 - Node is not assigned to a company\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "Creates a new user. N.B. The mobile app doesn't ask the user to input a username - this needs to be generated in the API layer",
                "tags": [
                    "10 - UserManagement"
                ],
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "application/json",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "required": [
                                "nodeId",
                                "userId",
                                "deviceId",
                                "user"
                            ],
                            "properties": {
                                "nodeId": {
                                    "type": "number",
                                    "description": "The device's assigned nodeId"
                                },
                                "userId": {
                                    "type": "number",
                                    "description": "The logged in user's id"
                                },
                                "deviceId": {
                                    "type": "string",
                                    "description": "The users device id string"
                                },
                                "user": {
                                    "$ref": "#/definitions/User"
                                }
                            }
                        }
                    }
                ]
            }
        },
        "/user/updateUser": {
            "post": {
                "responses": {
                    "200": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/User"
                        }
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n1009 - Permissions Error\n\n1015 - Create User Error: Staff number already in use\n\n1019 - Node is not assigned to a company\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000",
                                        "1009",
                                        "1015",
                                        "1019"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n1009 - Permissions Error\n\n1015 - Create User Error: Staff number already in use\n\n1019 - Node is not assigned to a company\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "Updates an existing user",
                "tags": [
                    "10 - UserManagement"
                ],
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "application/json",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "required": [
                                "nodeId",
                                "userId",
                                "deviceId",
                                "user"
                            ],
                            "properties": {
                                "nodeId": {
                                    "type": "number",
                                    "description": "The device's assigned nodeId"
                                },
                                "userId": {
                                    "type": "number",
                                    "description": "The logged in user's id"
                                },
                                "deviceId": {
                                    "type": "string",
                                    "description": "The users device id string"
                                },
                                "user": {
                                    "$ref": "#/definitions/UpdateUser"
                                }
                            }
                        }
                    }
                ]
            }
        },
        "/user/changePin": {
            "post": {
                "responses": {
                    "200": {
                        "description": "No response needed, 200 means passed"
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n1009 - Permissions Error\n\n1010 - Old pin invalid\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000",
                                        "1009",
                                        "1010"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n1009 - Permissions Error\n\n1010 - Old pin invalid\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "Changes the pin for the logged in user",
                "tags": [
                    "10 - UserManagement"
                ],
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "application/json",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "required": [
                                "nodeId",
                                "userId",
                                "deviceId",
                                "oldPin",
                                "newPin"
                            ],
                            "properties": {
                                "nodeId": {
                                    "type": "number",
                                    "description": "The device's assigned nodeId"
                                },
                                "userId": {
                                    "type": "number",
                                    "description": "The logged in user's id"
                                },
                                "deviceId": {
                                    "type": "string",
                                    "description": "The users device id string"
                                },
                                "oldPin": {
                                    "type": "string"
                                },
                                "newPin": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                ]
            }
        },
        "/user/resetPin": {
            "post": {
                "responses": {
                    "200": {
                        "description": "No response needed, 200 means passed"
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n1009 - Permissions Error\n\n1010 - Old pin invalid\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000",
                                        "1009",
                                        "1010"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n1009 - Permissions Error\n\n1010 - Old pin invalid\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "Resets the pin for the specified user",
                "tags": [
                    "10 - UserManagement"
                ],
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "application/json",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "required": [
                                "nodeId",
                                "userId",
                                "deviceId",
                                "userIdToResetPin",
                                "newPin"
                            ],
                            "properties": {
                                "nodeId": {
                                    "type": "number",
                                    "description": "The device's assigned nodeId"
                                },
                                "userId": {
                                    "type": "number",
                                    "description": "The logged in user's id"
                                },
                                "deviceId": {
                                    "type": "string",
                                    "description": "The users device id string"
                                },
                                "userIdToResetPin": {
                                    "type": "number"
                                },
                                "newPin": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                ]
            }
        },
        "/user/deleteUser": {
            "post": {
                "responses": {
                    "200": {
                        "description": "No response needed, 200 means passed"
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n1009 - Permissions Error\n\n1016 - Delete User Error: User does not exist\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000",
                                        "1009",
                                        "1016"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n1009 - Permissions Error\n\n1016 - Delete User Error: User does not exist\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "Deletes an existing user",
                "tags": [
                    "10 - UserManagement"
                ],
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "application/json",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "required": [
                                "nodeId",
                                "userId",
                                "deviceId",
                                "userIdToDelete"
                            ],
                            "properties": {
                                "nodeId": {
                                    "type": "number",
                                    "description": "The device's assigned nodeId"
                                },
                                "userId": {
                                    "type": "number",
                                    "description": "The logged in user's id"
                                },
                                "deviceId": {
                                    "type": "string",
                                    "description": "The users device id string"
                                },
                                "userIdToDelete": {
                                    "type": "number"
                                }
                            }
                        }
                    }
                ]
            }
        },
        "/alertsAndInstructions/fetchCount": {
            "post": {
                "responses": {
                    "200": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/AlertCount"
                        }
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "Should return a count of items to be displayed for the node.\nThis call will be periodically polled by the mobile app so it must be VERY\nefficient on the backend and shouldn't be doing any complex queries, these values should be cached.",
                "tags": [
                    "11 - AlertsAndInstructions"
                ],
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "application/json",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "required": [
                                "nodeId"
                            ],
                            "properties": {
                                "nodeId": {
                                    "type": "number",
                                    "description": "The device's assigned nodeId"
                                },
                                "userId": {
                                    "type": "number",
                                    "description": "The logged in user's id"
                                }
                            }
                        }
                    }
                ]
            }
        },
        "/alertsAndInstructions/fetchMessages": {
            "post": {
                "responses": {
                    "200": {
                        "description": "",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/Message"
                            },
                            "x-isnullable": true
                        }
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "This should return any generic messages to be displayed by the app for a specific node.\nAn example is one for the status of the next courier delivery.",
                "tags": [
                    "11 - AlertsAndInstructions"
                ],
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "application/json",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "required": [
                                "nodeId",
                                "userId"
                            ],
                            "properties": {
                                "nodeId": {
                                    "type": "number",
                                    "description": "The device's assigned nodeId"
                                },
                                "userId": {
                                    "type": "number",
                                    "description": "The logged in user's id"
                                }
                            }
                        }
                    }
                ]
            }
        },
        "/alertsAndInstructions/fetchMissingParcels": {
            "post": {
                "responses": {
                    "200": {
                        "description": "",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/SummaryParcel"
                            },
                            "x-isnullable": true
                        }
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "This should return all of the missing parcels currently assigned to the nodeId.",
                "tags": [
                    "11 - AlertsAndInstructions"
                ],
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "application/json",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "required": [
                                "nodeId",
                                "userId"
                            ],
                            "properties": {
                                "nodeId": {
                                    "type": "number",
                                    "description": "The device's assigned nodeId"
                                },
                                "userId": {
                                    "type": "number",
                                    "description": "The logged in user's id"
                                }
                            }
                        }
                    }
                ]
            }
        },
        "/alertsAndInstructions/fetchNonCollectionReturnParcels": {
            "post": {
                "responses": {
                    "200": {
                        "description": "",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/SummaryParcel"
                            },
                            "x-isnullable": true
                        }
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "This should return all of the non collection return parcels currently assigned to the nodeId.",
                "tags": [
                    "11 - AlertsAndInstructions"
                ],
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "application/json",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "required": [
                                "nodeId",
                                "userId"
                            ],
                            "properties": {
                                "nodeId": {
                                    "type": "number",
                                    "description": "The device's assigned nodeId"
                                },
                                "userId": {
                                    "type": "number",
                                    "description": "The logged in user's id"
                                }
                            }
                        }
                    }
                ]
            }
        },
        "/alertsAndInstructions/fetchIncompleteCollectionParcels": {
            "post": {
                "responses": {
                    "200": {
                        "description": "",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/SummaryParcel"
                            },
                            "x-isnullable": true
                        }
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "This should return all of the parcels that are in the state of INCOMPLETE_COLLECTION",
                "tags": [
                    "11 - AlertsAndInstructions"
                ],
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "application/json",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "required": [
                                "nodeId",
                                "userId"
                            ],
                            "properties": {
                                "nodeId": {
                                    "type": "number",
                                    "description": "The device's assigned nodeId"
                                },
                                "userId": {
                                    "type": "number",
                                    "description": "The logged in user's id"
                                }
                            }
                        }
                    }
                ]
            }
        },
        "/alertsAndInstructions/fetchNonCollectionCancelParcels": {
            "post": {
                "responses": {
                    "200": {
                        "description": "",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/SummaryParcel"
                            },
                            "x-isnullable": true
                        }
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "This should return all of the parcels to be cancelled",
                "tags": [
                    "11 - AlertsAndInstructions"
                ],
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "application/json",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "required": [
                                "nodeId",
                                "userId"
                            ],
                            "properties": {
                                "nodeId": {
                                    "type": "number",
                                    "description": "The device's assigned nodeId"
                                },
                                "userId": {
                                    "type": "number",
                                    "description": "The logged in user's id"
                                }
                            }
                        }
                    }
                ]
            }
        },
        "/nonCollectionReturn/saveProcess": {
            "post": {
                "responses": {
                    "200": {
                        "description": "",
                        "schema": {
                            "type": "object",
                            "required": [
                                "parcelId"
                            ],
                            "properties": {
                                "parcelId": {
                                    "type": "number"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "\nUsed to mark a parcel for non collection.  \n\nThis API clones the current parcel with all of its properties and uses \ncustom business logic to identify the return courier to use.  \n\nOnce cloned the new parcel's ID is returned for put away\n",
                "tags": [
                    "12 - NonCollectionReturns"
                ],
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "application/json",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "required": [
                                "nodeId",
                                "userId",
                                "parcelId"
                            ],
                            "properties": {
                                "nodeId": {
                                    "type": "number",
                                    "description": "The device's assigned nodeId"
                                },
                                "userId": {
                                    "type": "number",
                                    "description": "The logged in user's id"
                                },
                                "parcelId": {
                                    "type": "number"
                                }
                            }
                        }
                    }
                ]
            }
        },
        "/oneProfile/searchCustomers": {
            "post": {
                "responses": {
                    "200": {
                        "description": "Returns null if nothing is found",
                        "schema": {
                            "$ref": "#/definitions/OneProfileCustomer"
                        }
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "Searches the one profile system to find a customer that match the search criteria",
                "tags": [
                    "99 - OneProfile"
                ],
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "application/json",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "required": [
                                "nodeId",
                                "userId",
                                "identificationType",
                                "identificationCountry",
                                "barcode"
                            ],
                            "properties": {
                                "nodeId": {
                                    "type": "number",
                                    "description": "The device's assigned nodeId"
                                },
                                "userId": {
                                    "type": "number",
                                    "description": "The logged in user's id"
                                },
                                "identificationType": {
                                    "type": "string",
                                    "enum": [
                                        "PEP_CARD",
                                        "ID_BOOK_OR_CARD",
                                        "PASSPORT"
                                    ]
                                },
                                "identificationCountry": {
                                    "type": "string",
                                    "description": "ISO 3166-1 alpha-2 code"
                                },
                                "barcode": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                ]
            }
        },
        "/lookup/suppliers": {
            "get": {
                "responses": {
                    "200": {
                        "description": "",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/SupplierDetails"
                            }
                        }
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "Returns a list of suppliers",
                "tags": [
                    "14 - Lookup"
                ]
            }
        },
        "/lookup/nodes": {
            "post": {
                "responses": {
                    "200": {
                        "description": "",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/NodeCompact"
                            }
                        }
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "Returns a list of all nodes. Further filtering can be applied using the body parameters.",
                "tags": [
                    "14 - Lookup"
                ],
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "application/json",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "properties": {
                                "nodeTypeIds": {
                                    "type": "array",
                                    "items": {
                                        "type": "number"
                                    },
                                    "description": "\nWhen this is populated the resulting list should be filtered.  \nOnly nodes with the types passed should be returned.  \n\n\n|**ID**|**Description**|\n|-|-|\n|1|STORE|\n|2|SUPPLIER FACILITY|\n|3|LOGISTICS_SERVICE PROVIDER HUB|\n|4|DISTRIBUTION CENTRE|\n|5|TEST NODE|\n|6|ADMINISTRATIVE BUILDING|\n| | |\n"
                                },
                                "customerCollection": {
                                    "type": "boolean",
                                    "description": "If set to true, only nodes that are have the customer collection feature active should be returned."
                                }
                            }
                        }
                    }
                ]
            }
        },
        "/parcelCancellation/saveProcess": {
            "post": {
                "responses": {
                    "200": {
                        "description": "No response needed, 200 means passed"
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "Completes a parcel cancellation process",
                "tags": [
                    "13 - Parcel Cancellations"
                ],
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "application/json",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "required": [
                                "nodeId",
                                "userId",
                                "deviceId",
                                "parcelId"
                            ],
                            "properties": {
                                "nodeId": {
                                    "type": "number",
                                    "description": "The device's assigned nodeId"
                                },
                                "userId": {
                                    "type": "number",
                                    "description": "The logged in user's id"
                                },
                                "deviceId": {
                                    "type": "string",
                                    "description": "The users device id string"
                                },
                                "parcelId": {
                                    "type": "number"
                                }
                            }
                        }
                    }
                ]
            }
        },
        "/lookup/logisticsServiceProvider/getLogisticsServiceProviders": {
            "get": {
                "responses": {
                    "200": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/LogisticsServiceProviderPojoResults"
                        }
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "\nThis is a PMM passthrough for the same url.  \nThe 200 response object has been kept the same however any errors from the PMM API need to respond as per the standards for the Mobile API.\n",
                "tags": [
                    "98 - PMM"
                ]
            }
        },
        "/lookup/product/getProductBySupplier": {
            "post": {
                "responses": {
                    "200": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/ProductOutputResults"
                        }
                    },
                    "401": {
                        "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n",
                        "schema": {
                            "required": [
                                "fault",
                                "message"
                            ],
                            "properties": {
                                "fault": {
                                    "type": "string",
                                    "enum": [
                                        "900901"
                                    ],
                                    "description": "\n\n900901 - Invalid Credentials - Invalid Authentication information provided\n\n"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n",
                        "schema": {
                            "required": [
                                "responseCode",
                                "responseMessage"
                            ],
                            "properties": {
                                "responseCode": {
                                    "type": "string",
                                    "enum": [
                                        "0001",
                                        "1000"
                                    ],
                                    "description": "\n\n0001 - Unexpected Error: Runtime error only - never expected\n\n1000 - Service offline\n\n"
                                },
                                "responseMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "AccessToken": [
                            "s1"
                        ]
                    }
                ],
                "description": "\nThis is a PMM passthrough for the same url.  \nUnlinke the name suggests this call returns a list.  \nThe 200 response object has been kept the same however any errors from the PMM API need to respond as per the standards for the Mobile API.\n",
                "tags": [
                    "98 - PMM"
                ],
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "application/json",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "required": [
                                "supplierName"
                            ],
                            "properties": {
                                "supplierName": {
                                    "type": "string",
                                    "description": "The name of the supplier"
                                }
                            }
                        }
                    }
                ]
            }
        }
    },
    "definitions": {
        "StartupData": {
            "type": "object",
            "required": [
                "registrationStatus",
                "callCenterNumber",
                "staticCacheBuster",
                "relaxLocationCheck",
                "timeToRefreshLocation",
                "emptyCustomerDropContactNumber",
                "allowCustomerDropNoPutAway",
                "features",
                "pilotNode",
                "allowCourierDeliveryNoPutAway"
            ],
            "properties": {
                "registrationStatus": {
                    "type": "string",
                    "enum": [
                        "NOT_ADDED",
                        "NOT_REGISTERED",
                        "PENDING",
                        "REGISTERED",
                        "DECOMMISSIONED",
                        "UNDER_REPAIR",
                        "CONNECTION_PROBLEMS",
                        "LOST",
                        "BROKEN"
                    ],
                    "description": "There are a number of statuses that a device can be linked to, the descriptions for each are as follows:\n\n  \n\n|**Enum**|**Description**|\n|-|-|\n|NOT_ADDED|This means the device has not yet been created in the system|\n|NOT_REGISTERED|Device has been added to the system, this is the initial status that should be used|\n|PENDING|Device registration has been submitted, in order to move from this status an admin console user needs to change it manually|\n|REGISTERED|Device is in a registered and working state|\n|DECOMMISSIONED|Device has been decommissioned as it is no longer working or in use|\n|UNDER_REPAIR|Device has been decommissioned temporarily but will come online again at some point|\n|CONNECTION_PROBLEMS|Device has been reported to have connection problems|\n|LOST|Device has been lost / stolen / misplaced|\n|BROKEN|Device is physically broken|\n| | |",
                    "default": "NOT_ADDED"
                },
                "callCenterNumber": {
                    "type": "string"
                },
                "nodeCode": {
                    "type": "string"
                },
                "nodeShortName": {
                    "type": "string"
                },
                "nodeId": {
                    "type": "number"
                },
                "registrar": {
                    "$ref": "#/definitions/Registrar"
                },
                "users": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/StartupUser"
                    }
                },
                "staticCacheBuster": {
                    "type": "string",
                    "description": "\nThis is a basic incrementing string that can be changed at will on the\nserver side. This string will be appended in a query parameter to all\nstatic assets loaded from the server. This allows us to control the\ncaching on the server layer of all static assets and push changes when\nwe like.\n"
                },
                "relaxLocationCheck": {
                    "type": "boolean",
                    "description": "If set to true, the geo fence check will only be done if the phone can retrieve a GPS position."
                },
                "timeToRefreshLocation": {
                    "type": "number",
                    "description": "Amount of milliseconds between each geo location check"
                },
                "emptyCustomerDropContactNumber": {
                    "type": "boolean",
                    "description": "If set to true the contact number from one profile is not populated into the confirm contact number screen in customer drop. Otherwise it is populated if available."
                },
                "allowCustomerDropNoPutAway": {
                    "type": "boolean",
                    "description": "If set to true, after customer drop, the user does not have to immediately put away the parcel"
                },
                "features": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "enum": [
                            "LOGGING",
                            "UNISA_DROP",
                            "CUSTOMER_RETURNS",
                            "COUNTER_TO_COUNTER",
                            "CUSTOMER_COLLECT",
                            "COURIER_DELIVERY",
                            "COURIER_COLLECTION",
                            "ENABLE_TOKEN_PROCESS",
                            "NODE_SELECTION_IN_TOKEN",
                            "CUSTOMER_DROP"
                        ]
                    },
                    "description": "  \n\n|**Enum**|**Description**|\n|-|-|\n|LOGGING|Shows the admin and settings menu option: Device Logging|\n|UNISA_DROP|Shows the customer drop option: UNISA|\n|CUSTOMER_RETURNS|Shows the customer drop option: Customer Return|\n|COUNTER_TO_COUNTER|Shows the customer drop option: Counter to Counter|\n|CUSTOMER_COLLECT|Shows the dashboard button: Customer Collect|\n|COURIER_DELIVERY|Shows the dashboard button: Courier Delivery|\n|COURIER_COLLECTION|Shows the dashboard button: Courier Pick-Up|\n|ENABLE_TOKEN_PROCESS|Shows the launch token process button|\n|NODE_SELECTION_IN_TOKEN|Shows the node selection screen in the issue token process|\n|CUSTOMER_DROP|Hides or shows the dashboard customer drop menu button|\n| | |\n\n = ['LOGGING', 'UNISA_DROP', 'CUSTOMER_RETURNS', 'COUNTER_TO_COUNTER', 'CUSTOMER_COLLECT', 'COURIER_DELIVERY', 'COURIER_COLLECTION', 'ENABLE_TOKEN_PROCESS', 'NODE_SELECTION_IN_TOKEN', 'CUSTOMER_DROP']"
                },
                "pilotNode": {
                    "type": "boolean",
                    "description": "If set to true, the device will use the 'pilot' app update stream, allowing the business to roll out more frequent updates to pilot nodes."
                },
                "allowCourierDeliveryNoPutAway": {
                    "type": "boolean",
                    "description": "If set to true, after courier delivery, the user does not have to immediately put away the parcel"
                }
            }
        },
        "Registrar": {
            "type": "object",
            "required": [
                "firstName",
                "lastName",
                "cellNumber",
                "storeNumber",
                "staffNumber"
            ],
            "properties": {
                "firstName": {
                    "type": "string"
                },
                "lastName": {
                    "type": "string"
                },
                "cellNumber": {
                    "type": "string"
                },
                "storeNumber": {
                    "type": "string"
                },
                "staffNumber": {
                    "type": "string"
                }
            }
        },
        "StartupUser": {
            "type": "object",
            "required": [
                "id",
                "username",
                "firstName",
                "lastName",
                "role"
            ],
            "properties": {
                "id": {
                    "type": "number"
                },
                "username": {
                    "type": "string"
                },
                "firstName": {
                    "type": "string"
                },
                "lastName": {
                    "type": "string"
                },
                "role": {
                    "type": "string",
                    "enum": [
                        "STORE_MANAGER",
                        "ASSISTANT_MANAGER",
                        "SHOP_ASSISTANT",
                        "SUPPORT_ESCALATION"
                    ],
                    "description": "\n\n|**Enum**|**Description**|\n|-|-|\n|STORE_MANAGER|Main manager role, this user has full access to the app|\n|ASSISTANT_MANAGER|Secondary manager role, this user has exactly the same access to the app as the STORE_MANAGER. Just a different name|\n|SHOP_ASSISTANT|Shop assistant role has less access and in certain scenarios will require a manager override|\n|SUPPORT_ESCALATION||\n| | |"
                }
            }
        },
        "Company": {
            "type": "object",
            "required": [
                "id",
                "name"
            ],
            "properties": {
                "id": {
                    "type": "number"
                },
                "name": {
                    "type": "string"
                }
            }
        },
        "VersionHolder": {
            "type": "object",
            "required": [
                "pmm",
                "ac",
                "wso2",
                "imageproc"
            ],
            "properties": {
                "pmm": {
                    "type": "string",
                    "description": "The version of the PMM component returned directly from the PMM application"
                },
                "ac": {
                    "type": "string",
                    "description": "The version of the admin console component returned directly from the admin console application"
                },
                "wso2": {
                    "type": "string",
                    "description": "The version of the wso2 component returned directly from the deployed wso2 config"
                },
                "imageproc": {
                    "type": "string",
                    "description": "The version of the imageproc component returned directly from the deployed imageproc config"
                }
            }
        },
        "LocationStatus": {
            "type": "object",
            "required": [
                "registrationStatus",
                "insideLocation"
            ],
            "properties": {
                "registrationStatus": {
                    "type": "string",
                    "default": "NOT_REGISTERED",
                    "enum": [
                        "NOT_REGISTERED",
                        "PENDING",
                        "REGISTERED",
                        "DECOMMISSIONED",
                        "UNDER_REPAIR"
                    ]
                },
                "insideLocation": {
                    "type": "boolean",
                    "description": "This can only be true if the registrationStatus is equal to REGISTERED and the passed location is within the radius of the registered location"
                }
            }
        },
        "User": {
            "x-isnullable": true,
            "type": "object",
            "properties": {
                "id": {
                    "type": "number"
                },
                "role": {
                    "type": "string",
                    "enum": [
                        "STORE_MANAGER",
                        "ASSISTANT_MANAGER",
                        "SHOP_ASSISTANT",
                        "SUPPORT_ESCALATION"
                    ],
                    "description": "\n\n|**Enum**|**Description**|\n|-|-|\n|STORE_MANAGER|Main manager role, this user has full access to the app|\n|ASSISTANT_MANAGER|Secondary manager role, this user has exactly the same access to the app as the STORE_MANAGER. Just a different name|\n|SHOP_ASSISTANT|Shop assistant role has less access and in certain scenarios will require a manager override|\n|SUPPORT_ESCALATION||\n| | |"
                },
                "firstName": {
                    "type": "string"
                },
                "lastName": {
                    "type": "string"
                },
                "staffNumber": {
                    "type": "string"
                },
                "contactNumber": {
                    "type": "string"
                },
                "pin": {
                    "type": "string"
                },
                "username": {
                    "type": "string"
                },
                "nodeId": {
                    "type": "number"
                }
            },
            "required": [
                "role",
                "firstName",
                "lastName",
                "staffNumber",
                "contactNumber"
            ]
        },
        "Parcel": {
            "x-isnullable": true,
            "type": "object",
            "required": [
                "id",
                "productType",
                "supplier",
                "referenceNumber",
                "storageLocation",
                "courier",
                "originAddress",
                "destinationAddress",
                "parcelStatus",
                "senderDetails",
                "receiverDetails"
            ],
            "properties": {
                "id": {
                    "type": "number"
                },
                "productType": {
                    "type": "string",
                    "description": "Example: Assignment"
                },
                "supplier": {
                    "type": "string",
                    "description": "Example: Unisa"
                },
                "dropLabelBarcode": {
                    "type": "string"
                },
                "waybillNumber": {
                    "type": "string"
                },
                "courierNumber": {
                    "type": "string"
                },
                "supplierNumber": {
                    "type": "string"
                },
                "dropToken": {
                    "type": "string"
                },
                "referenceNumber": {
                    "type": "string"
                },
                "storageLocation": {
                    "type": "string",
                    "description": "\nThis may be returned as '_' which means there is no storage location (null).\nOccurs after customer drop when the parcel has not been put away.\n"
                },
                "courier": {
                    "type": "string"
                },
                "originAddress": {
                    "type": "string"
                },
                "destinationAddress": {
                    "type": "string"
                },
                "parcelStatus": {
                    "$ref": "#/definitions/ParcelStatus"
                },
                "senderDetails": {
                    "$ref": "#/definitions/ParcelUserSummary"
                },
                "receiverDetails": {
                    "$ref": "#/definitions/ParcelUserSummary"
                },
                "collectorDetails": {
                    "$ref": "#/definitions/ParcelUserSummary"
                }
            }
        },
        "ParcelStatus": {
            "type": "object",
            "required": [
                "status",
                "locationRestriction",
                "intoStoreDate",
                "daysInStore",
                "age",
                "lastActivity",
                "lastActivityDate"
            ],
            "properties": {
                "status": {
                    "type": "string",
                    "enum": [
                        "AWAITING_UPLIFTMENT",
                        "IN_TRANSIT",
                        "INCOMPLETE_COLLECTION",
                        "COLLECTED",
                        "DELIVERY_TRIP",
                        "AWAITING_COLLECTION",
                        "MISSING",
                        "LOST",
                        "DELIVERED",
                        "AWAITING_PROCESSING",
                        "SHORT_RECEIVED",
                        "CANCELLED",
                        "CLOSED",
                        "DAMAGED"
                    ],
                    "description": "There are a number of statuses that a parcel may have, the descriptions for each are as follows:\n\n  \n\n|**Enum**|**Description**|\n|-|-|\n|AWAITING_UPLIFTMENT|Table Index:  1 - Inducted by supplier, customer drop, return processing or reroute processing. Upliftment Request has been sent to courier.|\n|IN_TRANSIT|Table Index:  2 - Parcel has been scanned out to courier from store, or upliftment confirmation has been received from courier after upliftment from supplier.|\n|INCOMPLETE_COLLECTION|Table Index: 16 - Parcel has been collected, no POD image has yet been uploaded|\n|COLLECTED|Table Index:  3 - Customer has collected forward logistics parcel from store.|\n|DELIVERY_TRIP|Table Index:  4 - Parcel is en route to the node for delivery|\n|AWAITING_COLLECTION|Table Index:  5 - Parcel has been scanned into delivery node to be collected by customer.|\n|MISSING|Table Index:  6 - Parcel scan was requested during customer collection, courier collection or stock take process but was flagged as missing.|\n|LOST|Table Index:  7 - Missing parcel was written off by product manager because it could not be found.|\n|DELIVERED|Table Index:  8 - Courier has delivered reverse logistics parcel to supplier and electronic POD has been received.|\n|AWAITING_PROCESSING|Table Index:  9 - In some cases parcels will require an action; either to be rerouted to a different store (if the courier company or the supplier screwed up) or returned to sender (when the customer didn't come to collect it)|\n|SHORT_RECEIVED|Table Index: 12 - Parcel has been decalred as missing during a courier delivery|\n|CANCELLED|Table Index: 14 - Parcel has been cancelled. This can only happen from the admin console with a status update|\n|CLOSED|Table Index: 15 - Parcel has been written off in a termination process due to non collection.|\n|DAMAGED|Table Index: 17 - Parcel has been marked as damaged in courier delivery process.|\n| | |"
                },
                "locationRestriction": {
                    "type": "string",
                    "enum": [
                        "COURIER"
                    ]
                },
                "intoStoreDate": {
                    "type": "string",
                    "format": "date-time",
                    "description": "FORMAT: date-time, see document start. "
                },
                "daysInStore": {
                    "type": "number"
                },
                "age": {
                    "type": "number",
                    "description": "Days in the system"
                },
                "lastActivity": {
                    "type": "string",
                    "enum": [
                        "CUSTOMER_DROP",
                        "PUT_AWAY",
                        "COURIER_COLLECTION_D",
                        "COURIER_COLLECTION_B",
                        "COURIER_DELIVERY_D",
                        "COURIER_DELIVERY_B",
                        "SUPPLIER_INDUCTION",
                        "REROUTE_INSTRUCTION",
                        "REROUTE_PROCESSED",
                        "CUSTOMER_COLLECTION_S",
                        "CUSTOMER_COLLECTION_A",
                        "HUB_INSCAN",
                        "HUB_OUTSCAN",
                        "POD",
                        "MARKED_AS_MISSING",
                        "WRITE_OFF",
                        "PARCEL_STATUS_UPDATE",
                        "RETURN_INSTRUCTION",
                        "EMANIFEST_RECEIVED",
                        "SMS_SENT___ARRIVAL_NOTIFICATION_TO_RECEIVER",
                        "SMS_SENT___PICK_UP_NOTIFICATION",
                        "SMS_SENT___ARRIVAL_NOTIFICATION_TO_SENDER",
                        "SMS_SENT___SUPPLIER_DISPATCH_NOTIFICATION",
                        "REMINDER_SMS_SENT",
                        "MANUAL_SMS_SENT",
                        "RETURN_SMS_SENT",
                        "COLLECTED_SMS_SENT",
                        "NON_COLLECTION_INSTRUCTION",
                        "DROP_SMS_SENT",
                        "SMS_FAILED",
                        "DAMAGED_DELIVERY",
                        "MARKED_AS_SHORT_RECEIVED",
                        "COURIER_COLLECTION_SCAN",
                        "COURIER_DELIVERY_SCAN",
                        "HUB_DELIVERY_OUTSCAN",
                        "COURIER_COLLECTION_CONFIRMATION",
                        "COURIER_NON_DELIVERY_SCAN",
                        "NCR_INDUCTION"
                    ],
                    "description": "There are a number of parcel events, the descriptions for each are as follows:  \n\n|**Enum**|**Description**|\n|-|-|\n|CUSTOMER_DROP|Customer Drop Process|\n|PUT_AWAY|Put Away Process|\n|COURIER_COLLECTION_D|Courier Collection (D/Detail)|\n|COURIER_COLLECTION_B|Courier Collection (B/Bulk)|\n|COURIER_DELIVERY_D|Courier Delivery (D/Detail)|\n|COURIER_DELIVERY_B|Courier Delivery (B/Bulk)|\n|SUPPLIER_INDUCTION|Supplier Induction|\n|REROUTE_INSTRUCTION|When a parcel is rerouted|\n|REROUTE_PROCESSED|Reroute Processed|\n|CUSTOMER_COLLECTION_S|Customer Collection (Standard Collection)|\n|CUSTOMER_COLLECTION_A|Customer Collection (Alternate Collection)|\n|HUB_INSCAN|Hub Inscan|\n|HUB_OUTSCAN|Hub Outscan|\n|POD|Proof Of Delivery|\n|MARKED_AS_MISSING|Marked As Missing|\n|WRITE_OFF|Write Off|\n|PARCEL_STATUS_UPDATE|Used in the admin console when a user updates parcel data|\n|RETURN_INSTRUCTION|Used when a return is processed|\n|EMANIFEST_RECEIVED|The courier e-manifest has been received. Event will show the logistics service provider delivery manifest code in a parcel tracking|\n|SMS_SENT___ARRIVAL_NOTIFICATION_TO_RECEIVER|To let the customer know they must collect the parcel|\n|SMS_SENT___PICK_UP_NOTIFICATION||\n|SMS_SENT___ARRIVAL_NOTIFICATION_TO_SENDER||\n|SMS_SENT___SUPPLIER_DISPATCH_NOTIFICATION||\n|REMINDER_SMS_SENT|Follow up SMS to let the customer know they have a parcel to collect with a time limit|\n|MANUAL_SMS_SENT|A SMS was manually sent to the customer|\n|RETURN_SMS_SENT|To let the customer know it’s too late to collect, their parcel has been returned|\n|COLLECTED_SMS_SENT|To confirm with customer their parcel has been collected|\n|NON_COLLECTION_INSTRUCTION|Triggered as part of the CRON job that runs once a day to check expired parcels|\n|DROP_SMS_SENT|An SMS was sent to the customer confirming parcel induction|\n|SMS_FAILED|Indicates a failed sms|\n|DAMAGED_DELIVERY|Indicates a parcel arrived damaged in a courier delivery|\n|MARKED_AS_SHORT_RECEIVED|Indicates a parcel has been marked as not received in a courier delivery|\n|COURIER_COLLECTION_SCAN|The event type to be captured when the driver of the courier company does a collection scan for a parcel in their mobile app|\n|COURIER_DELIVERY_SCAN|The event type to be captured when the driver of the courier company does a delivery scan in their mobile app to a PAXI node|\n|HUB_DELIVERY_OUTSCAN|The event type to be captured when a parcel is scanned out of a courier hub for delivery to a PAXI node|\n|COURIER_COLLECTION_CONFIRMATION|Sent by a courier to add a parcel's courier collection number to a parcel|\n|COURIER_NON_DELIVERY_SCAN|Sent by a courier when they are unable to deliver a parcel|\n|NCR_INDUCTION|Non collection return induction|\n| | |"
                },
                "lastActivityDate": {
                    "type": "string",
                    "format": "date-time",
                    "description": "FORMAT: date-time, see document start. "
                }
            }
        },
        "ParcelUserSummary": {
            "type": "object",
            "required": [
                "isOrganisation"
            ],
            "properties": {
                "isOrganisation": {
                    "type": "boolean"
                },
                "organisationName": {
                    "type": "string"
                },
                "fullName": {
                    "type": "string"
                },
                "contactNumber": {
                    "type": "string"
                }
            }
        },
        "StorageLocation": {
            "type": "object",
            "required": [
                "id",
                "shortCode",
                "storageLocationBarcode",
                "category",
                "secure",
                "status"
            ],
            "properties": {
                "id": {
                    "type": "number"
                },
                "shortCode": {
                    "type": "string"
                },
                "storageLocationBarcode": {
                    "type": "string"
                },
                "category": {
                    "type": "string",
                    "enum": [
                        "CUSTOMER_COLLECTION",
                        "COURIER_COLLECTION",
                        "CUSTOMER_AND_COURIER_COLLECTION"
                    ]
                },
                "thirdParties": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/ThirdParty"
                    }
                },
                "couriers": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/Courier"
                    }
                },
                "secure": {
                    "type": "boolean"
                },
                "status": {
                    "type": "string",
                    "enum": [
                        "ACTIVE",
                        "NEW"
                    ]
                }
            }
        },
        "ThirdParty": {
            "type": "object",
            "required": [
                "id",
                "name"
            ],
            "properties": {
                "id": {
                    "type": "number"
                },
                "name": {
                    "type": "string"
                }
            }
        },
        "Courier": {
            "type": "object",
            "required": [
                "id",
                "name"
            ],
            "properties": {
                "id": {
                    "type": "number"
                },
                "name": {
                    "type": "string"
                }
            }
        },
        "ParcelTrackingInfo": {
            "type": "object",
            "required": [
                "date",
                "location",
                "event"
            ],
            "properties": {
                "date": {
                    "type": "string",
                    "format": "date-time",
                    "description": "FORMAT: date-time, see document start. "
                },
                "location": {
                    "type": "string"
                },
                "detail": {
                    "type": "string"
                },
                "event": {
                    "type": "string",
                    "enum": [
                        "CUSTOMER_DROP",
                        "PUT_AWAY",
                        "COURIER_COLLECTION_D",
                        "COURIER_COLLECTION_B",
                        "COURIER_DELIVERY_D",
                        "COURIER_DELIVERY_B",
                        "SUPPLIER_INDUCTION",
                        "REROUTE_INSTRUCTION",
                        "REROUTE_PROCESSED",
                        "CUSTOMER_COLLECTION_S",
                        "CUSTOMER_COLLECTION_A",
                        "HUB_INSCAN",
                        "HUB_OUTSCAN",
                        "POD",
                        "MARKED_AS_MISSING",
                        "WRITE_OFF",
                        "PARCEL_STATUS_UPDATE",
                        "RETURN_INSTRUCTION",
                        "EMANIFEST_RECEIVED",
                        "SMS_SENT___ARRIVAL_NOTIFICATION_TO_RECEIVER",
                        "SMS_SENT___PICK_UP_NOTIFICATION",
                        "SMS_SENT___ARRIVAL_NOTIFICATION_TO_SENDER",
                        "SMS_SENT___SUPPLIER_DISPATCH_NOTIFICATION",
                        "REMINDER_SMS_SENT",
                        "MANUAL_SMS_SENT",
                        "RETURN_SMS_SENT",
                        "COLLECTED_SMS_SENT",
                        "NON_COLLECTION_INSTRUCTION",
                        "DROP_SMS_SENT",
                        "SMS_FAILED",
                        "DAMAGED_DELIVERY",
                        "MARKED_AS_SHORT_RECEIVED",
                        "COURIER_COLLECTION_SCAN",
                        "COURIER_DELIVERY_SCAN",
                        "HUB_DELIVERY_OUTSCAN",
                        "COURIER_COLLECTION_CONFIRMATION",
                        "COURIER_NON_DELIVERY_SCAN",
                        "NCR_INDUCTION"
                    ],
                    "description": "There are a number of parcel events, the descriptions for each are as follows:  \n\n|**Enum**|**Description**|\n|-|-|\n|CUSTOMER_DROP|Customer Drop Process|\n|PUT_AWAY|Put Away Process|\n|COURIER_COLLECTION_D|Courier Collection (D/Detail)|\n|COURIER_COLLECTION_B|Courier Collection (B/Bulk)|\n|COURIER_DELIVERY_D|Courier Delivery (D/Detail)|\n|COURIER_DELIVERY_B|Courier Delivery (B/Bulk)|\n|SUPPLIER_INDUCTION|Supplier Induction|\n|REROUTE_INSTRUCTION|When a parcel is rerouted|\n|REROUTE_PROCESSED|Reroute Processed|\n|CUSTOMER_COLLECTION_S|Customer Collection (Standard Collection)|\n|CUSTOMER_COLLECTION_A|Customer Collection (Alternate Collection)|\n|HUB_INSCAN|Hub Inscan|\n|HUB_OUTSCAN|Hub Outscan|\n|POD|Proof Of Delivery|\n|MARKED_AS_MISSING|Marked As Missing|\n|WRITE_OFF|Write Off|\n|PARCEL_STATUS_UPDATE|Used in the admin console when a user updates parcel data|\n|RETURN_INSTRUCTION|Used when a return is processed|\n|EMANIFEST_RECEIVED|The courier e-manifest has been received. Event will show the logistics service provider delivery manifest code in a parcel tracking|\n|SMS_SENT___ARRIVAL_NOTIFICATION_TO_RECEIVER|To let the customer know they must collect the parcel|\n|SMS_SENT___PICK_UP_NOTIFICATION||\n|SMS_SENT___ARRIVAL_NOTIFICATION_TO_SENDER||\n|SMS_SENT___SUPPLIER_DISPATCH_NOTIFICATION||\n|REMINDER_SMS_SENT|Follow up SMS to let the customer know they have a parcel to collect with a time limit|\n|MANUAL_SMS_SENT|A SMS was manually sent to the customer|\n|RETURN_SMS_SENT|To let the customer know it’s too late to collect, their parcel has been returned|\n|COLLECTED_SMS_SENT|To confirm with customer their parcel has been collected|\n|NON_COLLECTION_INSTRUCTION|Triggered as part of the CRON job that runs once a day to check expired parcels|\n|DROP_SMS_SENT|An SMS was sent to the customer confirming parcel induction|\n|SMS_FAILED|Indicates a failed sms|\n|DAMAGED_DELIVERY|Indicates a parcel arrived damaged in a courier delivery|\n|MARKED_AS_SHORT_RECEIVED|Indicates a parcel has been marked as not received in a courier delivery|\n|COURIER_COLLECTION_SCAN|The event type to be captured when the driver of the courier company does a collection scan for a parcel in their mobile app|\n|COURIER_DELIVERY_SCAN|The event type to be captured when the driver of the courier company does a delivery scan in their mobile app to a PAXI node|\n|HUB_DELIVERY_OUTSCAN|The event type to be captured when a parcel is scanned out of a courier hub for delivery to a PAXI node|\n|COURIER_COLLECTION_CONFIRMATION|Sent by a courier to add a parcel's courier collection number to a parcel|\n|COURIER_NON_DELIVERY_SCAN|Sent by a courier when they are unable to deliver a parcel|\n|NCR_INDUCTION|Non collection return induction|\n| | |"
                },
                "userFullName": {
                    "type": "string"
                },
                "locationShortName": {
                    "type": "string"
                },
                "deviceId": {
                    "type": "string"
                }
            }
        },
        "StorageLocationParcelCount": {
            "type": "object",
            "required": [
                "shortCode",
                "category",
                "parcelCount"
            ],
            "properties": {
                "shortCode": {
                    "type": "string"
                },
                "category": {
                    "type": "string",
                    "enum": [
                        "NO_LOCATION",
                        "CUSTOMER_COLLECTION",
                        "COURIER_COLLECTION",
                        "CUSTOMER_AND_COURIER_COLLECTION"
                    ]
                },
                "parcelCount": {
                    "type": "number"
                }
            }
        },
        "ServiceTypeGroup": {
            "type": "object",
            "required": [
                "id",
                "name",
                "packages"
            ],
            "properties": {
                "id": {
                    "type": "number"
                },
                "name": {
                    "type": "string",
                    "description": "The name of this service type, e.g. Budget, Economy, Premium"
                },
                "packages": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/PackagePricePoint"
                    }
                }
            }
        },
        "PackagePricePoint": {
            "type": "object",
            "required": [
                "type",
                "label",
                "price"
            ],
            "properties": {
                "type": {
                    "type": "string",
                    "description": "The type in question, e.g. 'BOX_SMALL', 'MEDIUM_PAXI_BAG'. These change a lot so examples may be outdated"
                },
                "label": {
                    "type": "string",
                    "description": "The label shown in the UI for this box type"
                },
                "price": {
                    "type": "number",
                    "description": "The price for this package type"
                }
            }
        },
        "CustomerCollectParcelMatch": {
            "type": "object",
            "properties": {
                "parcel": {
                    "$ref": "#/definitions/CustomerCollectParcel"
                },
                "reason": {
                    "type": "string",
                    "enum": [
                        "NO_MATCH",
                        "WRONG_NODE",
                        "NOT_YET_DELIVERED",
                        "NOT_YET_DELIVERED_WRONG_NODE",
                        "ALREADY_COLLECTED",
                        "RETURNED_TO_SENDER",
                        "CLOSED",
                        "CANNOT_BE_COLLECTED"
                    ],
                    "description": "There are a number of rejection reasons associated with a customer reference number validation, they are as follows:  \n\n|**Enum**|**Description**|\n|-|-|\n|NO_MATCH|Customer collection code supplied matches no parcels|\n|WRONG_NODE|Related parcel is to be collected at a node other than the one provided|\n|NOT_YET_DELIVERED|Related parcel has not yet been delivered to the store|\n|NOT_YET_DELIVERED_WRONG_NODE|Related parcel has not yet been delivered to the store & to be collected at a node other than the one provided|\n|ALREADY_COLLECTED|Related parcel has already been collected|\n|RETURNED_TO_SENDER|Related parcel has been returned to the sender|\n|CLOSED|Related parcel has been closed|\n|CANNOT_BE_COLLECTED|This is a future proofing catch all if the related parcel does not fall into any of the other categories|\n| | |"
                },
                "nodeName": {
                    "type": "string",
                    "description": "The text based human readable name for the node. Will only need to be returned for WRONG_NODE & NOT_YET_DELIVERED_WRONG_NODE"
                },
                "nodeCode": {
                    "type": "string",
                    "description": "Will only need to be returned for WRONG_NODE & NOT_YET_DELIVERED_WRONG_NODE"
                },
                "collector": {
                    "$ref": "#/definitions/CollectorDetails",
                    "description": "Should be populated for reason ALREADY_COLLECTED if the collector details were captured for the parcel"
                }
            }
        },
        "CustomerCollectParcel": {
            "type": "object",
            "required": [
                "parcelId",
                "customerReferenceNumber",
                "customerCollectionCode",
                "courier",
                "productType",
                "supplier",
                "normalCollectionRequirements",
                "inductionDate",
                "destinationNodeCode"
            ],
            "properties": {
                "parcelId": {
                    "type": "number"
                },
                "dropLabelBarcode": {
                    "type": "string"
                },
                "waybillNumber": {
                    "type": "string"
                },
                "courierNumber": {
                    "type": "string"
                },
                "supplierNumber": {
                    "type": "string"
                },
                "customerReferenceNumber": {
                    "type": "string"
                },
                "customerCollectionCode": {
                    "type": "string"
                },
                "courier": {
                    "type": "string"
                },
                "productType": {
                    "type": "string"
                },
                "supplier": {
                    "type": "string"
                },
                "normalCollectionRequirements": {
                    "$ref": "#/definitions/CustomerCollectParcelProductRequirements"
                },
                "alternateCollectionRequirements": {
                    "$ref": "#/definitions/CustomerCollectParcelProductRequirements"
                },
                "receiverFullName": {
                    "type": "string",
                    "description": "The expected receiver full name as injected by the supplier"
                },
                "inductionDate": {
                    "type": "string",
                    "format": "date-time",
                    "description": "FORMAT: date-time, see document start. "
                },
                "destinationNodeCode": {
                    "type": "string",
                    "description": "The node code for the store where the parcel is set to be collected regardless of its state"
                },
                "collectionType": {
                    "type": "string",
                    "enum": [
                        "STANDARD",
                        "ALTERNATE"
                    ],
                    "description": "The collection type will only be populated after a customer collection save has been completed"
                }
            }
        },
        "CustomerCollectParcelProductRequirements": {
            "type": "object",
            "required": [
                "identificationRequired",
                "kycRequired",
                "signatureRequirement"
            ],
            "properties": {
                "identificationRequired": {
                    "type": "boolean",
                    "description": "\nDoes this supplier and productType require the customer to have an itentification supplied to collect.\nIf this is true collectorDetails will need to be populated if available.\n"
                },
                "kycRequired": {
                    "type": "boolean",
                    "description": "If true a know your customer screen will be displayed in the customer collection workflow"
                },
                "signatureRequirement": {
                    "type": "string",
                    "enum": [
                        "NONE",
                        "PICTURE",
                        "SIGN_ON_GLASS"
                    ]
                }
            }
        },
        "CollectorDetails": {
            "type": "object",
            "properties": {
                "firstName": {
                    "type": "string"
                },
                "lastName": {
                    "type": "string"
                }
            }
        },
        "OneProfileCustomer_SearchAndValidate": {
            "x-isnullable": true,
            "type": "object",
            "required": [
                "guid",
                "firstName",
                "lastName",
                "contactNumber"
            ],
            "properties": {
                "guid": {
                    "type": "string"
                },
                "firstName": {
                    "type": "string"
                },
                "lastName": {
                    "type": "string"
                },
                "idNumber": {
                    "type": "string"
                },
                "idCountry": {
                    "type": "string",
                    "description": "ISO 3166-1 alpha-2 code"
                },
                "passportNumber": {
                    "type": "string"
                },
                "passportCountry": {
                    "type": "string",
                    "description": "ISO 3166-1 alpha-2 code"
                },
                "contactNumber": {
                    "type": "string"
                },
                "studentNumber": {
                    "type": "string"
                }
            }
        },
        "OneProfileCustomer_SaveCustomerCollection": {
            "type": "object",
            "properties": {
                "guid": {
                    "type": "string"
                },
                "firstName": {
                    "type": "string"
                },
                "lastName": {
                    "type": "string"
                },
                "idNumber": {
                    "type": "string"
                },
                "idCountry": {
                    "type": "string",
                    "description": "ISO 3166-1 alpha-2 code"
                },
                "passportNumber": {
                    "type": "string"
                },
                "passportCountry": {
                    "type": "string",
                    "description": "ISO 3166-1 alpha-2 code"
                },
                "contactNumber": {
                    "type": "string"
                }
            },
            "required": [
                "firstName",
                "lastName",
                "contactNumber"
            ]
        },
        "PreCourierCollectionSummaryResult": {
            "type": "object",
            "required": [
                "parcelCount"
            ],
            "properties": {
                "parcelCount": {
                    "type": "number",
                    "description": "Total parcels ready for collection for the supplied courier"
                },
                "courierCollectionCompletionNumber": {
                    "type": "string",
                    "description": "This should only be generated & returned when there are no parcels for collection"
                }
            }
        },
        "ParcelsForCollectionResult": {
            "type": "object",
            "required": [
                "result"
            ],
            "properties": {
                "result": {
                    "type": "string",
                    "enum": [
                        "WRONG_COURIER",
                        "VALIDATION_FAILED",
                        "PARCELS_FOUND"
                    ],
                    "description": "  NOTE: This list is ordered in descending priority to avoid any overlap / conflicts  \n\n|**Enum**|**Description**|\n|-|-|\n|WRONG_COURIER|The specified courier collection number is accurate, but for a different courier|\n|VALIDATION_FAILED|Returned when there is no matching collection number in the system|\n|PARCELS_FOUND|Returned when parcels for the specified courier have been found|\n| | |"
                },
                "courier": {
                    "type": "string",
                    "description": "Should be populated for result WRONG_COURIER"
                },
                "parcelLocations": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/ParcelsForCollectionLocation"
                    },
                    "description": "Populated with the parcel locations when the 'result' enum is PARCELS_FOUND."
                }
            }
        },
        "ParcelsForCollectionLocation": {
            "type": "object",
            "required": [
                "id",
                "scanType",
                "storageLocationShortCode",
                "storageLocationBarcode",
                "parcels"
            ],
            "properties": {
                "id": {
                    "type": "number"
                },
                "scanType": {
                    "type": "string",
                    "enum": [
                        "SINGLE_SCAN",
                        "BULK_SCAN"
                    ]
                },
                "storageLocationShortCode": {
                    "type": "string",
                    "description": "\nThis may be returned as '_' which means there is no storage location (null).\nOccurs after customer drop when the parcel has not been put away.\n"
                },
                "storageLocationBarcode": {
                    "type": "string"
                },
                "parcels": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/CollectionParcel"
                    }
                }
            }
        },
        "CollectionParcel": {
            "type": "object",
            "required": [
                "id",
                "supplierName",
                "productType",
                "status"
            ],
            "properties": {
                "id": {
                    "type": "number"
                },
                "dropLabelBarcode": {
                    "type": "string"
                },
                "waybillNumber": {
                    "type": "string"
                },
                "courierNumber": {
                    "type": "string"
                },
                "supplierNumber": {
                    "type": "string"
                },
                "supplierName": {
                    "type": "string"
                },
                "productType": {
                    "type": "string"
                },
                "status": {
                    "type": "string",
                    "enum": [
                        "AWAITING_UPLIFTMENT",
                        "IN_TRANSIT",
                        "INCOMPLETE_COLLECTION",
                        "COLLECTED",
                        "DELIVERY_TRIP",
                        "AWAITING_COLLECTION",
                        "MISSING",
                        "LOST",
                        "DELIVERED",
                        "AWAITING_PROCESSING",
                        "SHORT_RECEIVED",
                        "CANCELLED",
                        "CLOSED",
                        "DAMAGED"
                    ],
                    "description": "There are a number of statuses that a parcel may have, the descriptions for each are as follows:\n\n  \n\n|**Enum**|**Description**|\n|-|-|\n|AWAITING_UPLIFTMENT|Table Index:  1 - Inducted by supplier, customer drop, return processing or reroute processing. Upliftment Request has been sent to courier.|\n|IN_TRANSIT|Table Index:  2 - Parcel has been scanned out to courier from store, or upliftment confirmation has been received from courier after upliftment from supplier.|\n|INCOMPLETE_COLLECTION|Table Index: 16 - Parcel has been collected, no POD image has yet been uploaded|\n|COLLECTED|Table Index:  3 - Customer has collected forward logistics parcel from store.|\n|DELIVERY_TRIP|Table Index:  4 - Parcel is en route to the node for delivery|\n|AWAITING_COLLECTION|Table Index:  5 - Parcel has been scanned into delivery node to be collected by customer.|\n|MISSING|Table Index:  6 - Parcel scan was requested during customer collection, courier collection or stock take process but was flagged as missing.|\n|LOST|Table Index:  7 - Missing parcel was written off by product manager because it could not be found.|\n|DELIVERED|Table Index:  8 - Courier has delivered reverse logistics parcel to supplier and electronic POD has been received.|\n|AWAITING_PROCESSING|Table Index:  9 - In some cases parcels will require an action; either to be rerouted to a different store (if the courier company or the supplier screwed up) or returned to sender (when the customer didn't come to collect it)|\n|SHORT_RECEIVED|Table Index: 12 - Parcel has been decalred as missing during a courier delivery|\n|CANCELLED|Table Index: 14 - Parcel has been cancelled. This can only happen from the admin console with a status update|\n|CLOSED|Table Index: 15 - Parcel has been written off in a termination process due to non collection.|\n|DAMAGED|Table Index: 17 - Parcel has been marked as damaged in courier delivery process.|\n| | |"
                }
            }
        },
        "BarcodeScan": {
            "type": "object",
            "required": [
                "barcode",
                "type",
                "dateTimeScanned"
            ],
            "properties": {
                "barcode": {
                    "type": "string"
                },
                "parcelId": {
                    "type": "number",
                    "description": "This is required for type == SUCCESSFUL to assert uniqueness of parcel"
                },
                "type": {
                    "type": "string",
                    "enum": [
                        "SUCCESSFUL",
                        "ERROR"
                    ],
                    "description": "\n\n|**Enum**|**Description**|\n|-|-|\n|SUCCESSFUL|Successful parcel scan|\n|ERROR|Something scanned that matches nothing we have|\n| | |"
                },
                "dateTimeScanned": {
                    "type": "string",
                    "format": "date-time",
                    "description": "FORMAT: date-time, see document start. "
                }
            }
        },
        "CourierCollectionSaveResult": {
            "type": "object",
            "required": [
                "courierCollectionCompletionNumber"
            ],
            "properties": {
                "courierCollectionCompletionNumber": {
                    "type": "string"
                }
            }
        },
        "CourierDeliveryParcelMatchResult": {
            "type": "object",
            "required": [
                "matchResult"
            ],
            "properties": {
                "matchResult": {
                    "type": "string",
                    "enum": [
                        "COLLECTION_NUMBER",
                        "WRONG_COURIER",
                        "WRONG_NODE",
                        "INVALID_STATUS",
                        "NO_MATCH",
                        "MATCH"
                    ],
                    "description": "NOTE: This list is ordered in descending priority to avoid any overlap / conflicts  \n\n|**Enum**|**Description**|\n|-|-|\n|COLLECTION_NUMBER|The scanned barcode is for a courier collection, not a courier delivery|\n|WRONG_COURIER|The scanned parcel barcode is accurate, but for a different courier|\n|WRONG_NODE|Returned when there is a parcel match but the node for delivery is incorrect.|\n|INVALID_STATUS|The scanned barcode matches a parcel but said parcel is in an invalid state for delivery|\n|NO_MATCH|Returned when there is no parcel in the system that matches the barcode.|\n|MATCH|Returned when the parcel is eligible for delivery.|\n| | |"
                },
                "parcel": {
                    "$ref": "#/definitions/Parcel",
                    "description": "\nShould be populated with the matched parcel when there is ANY kind of parcel match, not only for matchResult MATCH.  \nFor multiple parcel matches, multiple CourierDeliveryParcelMatchResult objects should be returned.\n"
                },
                "nodeName": {
                    "type": "string",
                    "description": "The text based human readable name for the node where the parcel should be delivered. Only for matchResult WRONG_NODE"
                },
                "nodeCode": {
                    "type": "string",
                    "description": "The node code where the parcel should be delivered. Only for matchResult WRONG_NODE"
                }
            }
        },
        "CourierDeliveryProduct": {
            "type": "object",
            "required": [
                "productType",
                "supplier",
                "parcels"
            ],
            "properties": {
                "productType": {
                    "type": "string"
                },
                "supplier": {
                    "type": "string"
                },
                "parcels": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/CourierDeliveryParcel"
                    }
                }
            }
        },
        "CourierDeliveryParcel": {
            "type": "object",
            "required": [
                "id",
                "senderFullName",
                "status"
            ],
            "properties": {
                "id": {
                    "type": "number"
                },
                "dropLabelBarcode": {
                    "type": "string"
                },
                "waybillNumber": {
                    "type": "string"
                },
                "courierNumber": {
                    "type": "string"
                },
                "supplierNumber": {
                    "type": "string"
                },
                "senderFullName": {
                    "type": "string"
                },
                "status": {
                    "type": "string",
                    "enum": [
                        "AWAITING_UPLIFTMENT",
                        "IN_TRANSIT",
                        "INCOMPLETE_COLLECTION",
                        "COLLECTED",
                        "DELIVERY_TRIP",
                        "AWAITING_COLLECTION",
                        "MISSING",
                        "LOST",
                        "DELIVERED",
                        "AWAITING_PROCESSING",
                        "SHORT_RECEIVED",
                        "CANCELLED",
                        "CLOSED",
                        "DAMAGED"
                    ],
                    "description": "There are a number of statuses that a parcel may have, the descriptions for each are as follows:\n\n  \n\n|**Enum**|**Description**|\n|-|-|\n|AWAITING_UPLIFTMENT|Table Index:  1 - Inducted by supplier, customer drop, return processing or reroute processing. Upliftment Request has been sent to courier.|\n|IN_TRANSIT|Table Index:  2 - Parcel has been scanned out to courier from store, or upliftment confirmation has been received from courier after upliftment from supplier.|\n|INCOMPLETE_COLLECTION|Table Index: 16 - Parcel has been collected, no POD image has yet been uploaded|\n|COLLECTED|Table Index:  3 - Customer has collected forward logistics parcel from store.|\n|DELIVERY_TRIP|Table Index:  4 - Parcel is en route to the node for delivery|\n|AWAITING_COLLECTION|Table Index:  5 - Parcel has been scanned into delivery node to be collected by customer.|\n|MISSING|Table Index:  6 - Parcel scan was requested during customer collection, courier collection or stock take process but was flagged as missing.|\n|LOST|Table Index:  7 - Missing parcel was written off by product manager because it could not be found.|\n|DELIVERED|Table Index:  8 - Courier has delivered reverse logistics parcel to supplier and electronic POD has been received.|\n|AWAITING_PROCESSING|Table Index:  9 - In some cases parcels will require an action; either to be rerouted to a different store (if the courier company or the supplier screwed up) or returned to sender (when the customer didn't come to collect it)|\n|SHORT_RECEIVED|Table Index: 12 - Parcel has been decalred as missing during a courier delivery|\n|CANCELLED|Table Index: 14 - Parcel has been cancelled. This can only happen from the admin console with a status update|\n|CLOSED|Table Index: 15 - Parcel has been written off in a termination process due to non collection.|\n|DAMAGED|Table Index: 17 - Parcel has been marked as damaged in courier delivery process.|\n| | |"
                }
            }
        },
        "DamagedParcel": {
            "type": "object",
            "required": [
                "parcelId",
                "damagedReason"
            ],
            "properties": {
                "parcelId": {
                    "type": "number"
                },
                "damagedReason": {
                    "type": "string"
                }
            }
        },
        "CourierDeliverySaveResult": {
            "type": "object",
            "required": [
                "totalStoreDeliveryParcels",
                "courierDeliveryCompletionNumber"
            ],
            "properties": {
                "totalStoreDeliveryParcels": {
                    "type": "number",
                    "description": "Total parcels in this delivery that were deemed store delivery parcels"
                },
                "courierDeliveryCompletionNumber": {
                    "type": "string"
                }
            }
        },
        "UpdateUser": {
            "x-isnullable": true,
            "type": "object",
            "properties": {
                "id": {
                    "type": "number"
                },
                "role": {
                    "type": "string",
                    "enum": [
                        "STORE_MANAGER",
                        "ASSISTANT_MANAGER",
                        "SHOP_ASSISTANT",
                        "SUPPORT_ESCALATION"
                    ],
                    "description": "\n\n|**Enum**|**Description**|\n|-|-|\n|STORE_MANAGER|Main manager role, this user has full access to the app|\n|ASSISTANT_MANAGER|Secondary manager role, this user has exactly the same access to the app as the STORE_MANAGER. Just a different name|\n|SHOP_ASSISTANT|Shop assistant role has less access and in certain scenarios will require a manager override|\n|SUPPORT_ESCALATION||\n| | |"
                },
                "firstName": {
                    "type": "string"
                },
                "lastName": {
                    "type": "string"
                },
                "contactNumber": {
                    "type": "string"
                }
            },
            "required": [
                "role",
                "firstName",
                "lastName",
                "contactNumber"
            ]
        },
        "AlertCount": {
            "type": "object",
            "required": [
                "messageCount",
                "missingParcelCount",
                "nonCollectionReturnCount",
                "incompleteCollectionCount",
                "nonCollectionCancelCount"
            ],
            "properties": {
                "messageCount": {
                    "type": "number"
                },
                "missingParcelCount": {
                    "type": "number"
                },
                "nonCollectionReturnCount": {
                    "type": "number"
                },
                "incompleteCollectionCount": {
                    "type": "number"
                },
                "nonCollectionCancelCount": {
                    "type": "number"
                }
            }
        },
        "Message": {
            "type": "object",
            "required": [
                "category",
                "message"
            ],
            "properties": {
                "category": {
                    "type": "string",
                    "description": "Will form the menu item label for a grouping of all messages that have this same category"
                },
                "title": {
                    "type": "string",
                    "description": "Basic message title shown above each message"
                },
                "message": {
                    "type": "string",
                    "description": "The message body that will be displayed by the user"
                },
                "dateCreated": {
                    "type": "string",
                    "format": "date-time",
                    "description": "FORMAT: date-time, see document start. "
                }
            }
        },
        "SummaryParcel": {
            "type": "object",
            "required": [
                "id",
                "productType",
                "supplier",
                "lastActivityDate"
            ],
            "properties": {
                "id": {
                    "type": "number"
                },
                "productType": {
                    "type": "string",
                    "description": "Example Assignment"
                },
                "supplier": {
                    "type": "string",
                    "description": "Example Unisa"
                },
                "lastActivityDate": {
                    "type": "string",
                    "format": "date-time",
                    "description": "FORMAT: date-time, see document start. "
                },
                "dropLabelBarcode": {
                    "type": "string"
                },
                "waybillNumber": {
                    "type": "string"
                },
                "courierNumber": {
                    "type": "string"
                },
                "supplierNumber": {
                    "type": "string"
                }
            }
        },
        "OneProfileCustomer": {
            "x-isnullable": true,
            "type": "object",
            "required": [
                "guid",
                "firstName",
                "lastName",
                "contactNumber"
            ],
            "properties": {
                "guid": {
                    "type": "string"
                },
                "firstName": {
                    "type": "string"
                },
                "lastName": {
                    "type": "string"
                },
                "idNumber": {
                    "type": "string"
                },
                "idCountry": {
                    "type": "string",
                    "description": "ISO 3166-1 alpha-2 code"
                },
                "passportNumber": {
                    "type": "string"
                },
                "passportCountry": {
                    "type": "string",
                    "description": "ISO 3166-1 alpha-2 code"
                },
                "contactNumber": {
                    "type": "string"
                },
                "unisaStudentNumber": {
                    "type": "string"
                }
            }
        },
        "SupplierDetails": {
            "type": "object",
            "required": [
                "code",
                "name",
                "alternateCollectionSupported",
                "isTestSupplier"
            ],
            "properties": {
                "code": {
                    "type": "string",
                    "description": "In PMM a unique and immutable string is used to identify suppliers."
                },
                "name": {
                    "type": "string",
                    "description": "This should be a human readible string for the name of the supplier. Not something like ALL_CAPS."
                },
                "customerProfileCodeLocale": {
                    "type": "string",
                    "description": "Text used to identify the customer profile code for a specific supplier. E.g. 'Student Number' or 'Patient Number'"
                },
                "alternateCollectionSupported": {
                    "type": "boolean",
                    "description": "Indicates if the supplier supports alternate collection."
                },
                "isTestSupplier": {
                    "type": "boolean",
                    "description": "Test suppliers are used for testing and not shown in the PROD build"
                }
            }
        },
        "NodeCompact": {
            "type": "object",
            "required": [
                "id",
                "nodeCode",
                "shortName",
                "nodeDesc",
                "latitude",
                "longitude",
                "nodeTypeId"
            ],
            "properties": {
                "id": {
                    "type": "number"
                },
                "nodeCode": {
                    "type": "string"
                },
                "shortName": {
                    "type": "string"
                },
                "nodeDesc": {
                    "type": "string"
                },
                "addressLine1": {
                    "description": "Building",
                    "type": "string"
                },
                "addressLine2": {
                    "description": "Street 1",
                    "type": "string"
                },
                "addressLine3": {
                    "description": "Street 2 it shop is on a corner - Use 'and' in UI",
                    "type": "string"
                },
                "addressLine4": {
                    "description": "Suburb",
                    "type": "string"
                },
                "addressLine5": {
                    "description": "City",
                    "type": "string"
                },
                "addressLine6": {
                    "description": "Province",
                    "type": "string"
                },
                "latitude": {
                    "type": "string"
                },
                "longitude": {
                    "type": "string"
                },
                "nodeTypeId": {
                    "type": "number",
                    "description": "\n\n|**ID**|**Description**|\n|-|-|\n|1|STORE|\n|2|SUPPLIER FACILITY|\n|3|LOGISTICS_SERVICE PROVIDER HUB|\n|4|DISTRIBUTION CENTRE|\n|5|TEST NODE|\n|6|ADMINISTRATIVE BUILDING|\n| | |"
                }
            }
        },
        "LogisticsServiceProviderPojo": {
            "type": "object",
            "required": [
                "logisticsServiceProviderCode",
                "logisticsServiceProviderIdNo",
                "logisticsServiceProviderName"
            ],
            "properties": {
                "logisticsServiceProviderCode": {
                    "type": "string",
                    "description": "The three character code used to identify the logistics service provider"
                },
                "logisticsServiceProviderIdNo": {
                    "type": "number",
                    "description": "The unique identifier for the logistics service provider"
                },
                "logisticsServiceProviderName": {
                    "type": "string",
                    "description": "The name of the logistics service provider"
                },
                "noOfMaxDaysBeforeCollect": {
                    "type": "number",
                    "description": "The maximum number of days the before collection"
                }
            }
        },
        "LogisticsServiceProviderPojoResults": {
            "type": "object",
            "properties": {
                "results": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/LogisticsServiceProviderPojo"
                    },
                    "x-isnullable": true
                }
            }
        },
        "ProductOutput": {
            "type": "object",
            "required": [
                "productIdNo",
                "productTypeDesc",
                "allowAlternativeCollectionInd",
                "secureLocationRequiredInd"
            ],
            "properties": {
                "productIdNo": {
                    "type": "integer",
                    "description": "Unique identifier for the product"
                },
                "productTypeIdNo": {
                    "type": "integer",
                    "description": "Unique identifier for the product type"
                },
                "productTypeDesc": {
                    "type": "string",
                    "description": "The description of the product type"
                },
                "supplierCode": {
                    "type": "string",
                    "description": "The code to identify the supplier"
                },
                "supplierName": {
                    "type": "string",
                    "description": "The name of the supplier"
                },
                "nodeGroupIdNo": {
                    "type": "integer",
                    "description": "Unique identifier for the node group where the product may be handled"
                },
                "nodeGroupDesc": {
                    "type": "string",
                    "description": "The description of the node group where the product may be handled"
                },
                "logisticsServiceProviderIdNo": {
                    "type": "integer",
                    "description": "Unique identifier for logistics service provider"
                },
                "logisticsServiceProviderCode": {
                    "type": "string",
                    "description": "The code of the logistics service provider"
                },
                "logisticsServiceProviderName": {
                    "type": "string",
                    "description": "The name of the logistics service provider"
                },
                "allowAlternativeCollectionInd": {
                    "type": "string",
                    "description": "Indicator to show whether this product may be collected by an alternative customer. Type is a PMM representation of a boolean. Booleans are represented as strings: 'Y' for true, 'N' for false."
                },
                "secureLocationRequiredInd": {
                    "type": "string",
                    "description": "Indicator to show whether it is required for this product to be kept in a secure location. Type is a PMM representation of a boolean. Booleans are represented as strings: 'Y' for true, 'N' for false."
                }
            }
        },
        "ProductOutputResults": {
            "type": "object",
            "properties": {
                "results": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/ProductOutput"
                    },
                    "x-isnullable": true
                }
            }
        }
    },
    "host": "dev-ws02.pdws.co.za:8253",
    "basePath": "/pepcollect/<version>",
    "schemes": [
        "https"
    ],
    "produces": [
        "application/json"
    ],
    "securityDefinitions": {
        "AccessToken": {
            "type": "oauth2",
            "flow": "password",
            "tokenUrl": "https://dev-ws02.pdws.co.za:8253/token",
            "scopes": {
                "s1": "device:SwaggerAPI"
            }
        }
    }
}