{
  "openapi": "3.0.1",
  "info": {
    "x-metadata": {
      "tags": [
        "Class Partner"
      ]
    },
    "title": "Tax Lodgment Status",
    "version": "1.0.0001",
    "description": "The Tax Lodgment Status API endpoints - temporary documentation as we transition these endpoints over to to our new API environment. The new developer portal will replace this documentation.\nEnsure that you use the new BASE url apigateway.class.com.au\n\n\n<div class=\"env-panel\" data-component-name=\"EnvPanel\"><div class=\"env-panel__header\">Servers</div><div class=\"env-panel__body\"><div class=\"env-row\"><div class=\"env-name\">Partner Integration Environment (Sandbox)</div><div class=\"env-url-row\"><span class=\"env-url\">https://apigateway.class-pie.com.au/api/1.0</span><button type=\"button\" class=\"copy-btn\" data-copy=\"https://apigateway.class-pie.com.au/api/1.0\" aria-label=\"Copy\"><svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5.16667 2.66667C5.16667 2.57462 5.24129 2.5 5.33333 2.5H12C12.092 2.5 12.1667 2.57462 12.1667 2.66667V10.6667C12.1667 10.7587 12.092 10.8333 12 10.8333H10H5.33333C5.24129 10.8333 5.16667 10.7587 5.16667 10.6667V4.66667V2.66667ZM4.16667 4.16667V2.66667C4.16667 2.02233 4.689 1.5 5.33333 1.5H12C12.6443 1.5 13.1667 2.02233 13.1667 2.66667V10.6667C13.1667 11.311 12.6443 11.8333 12 11.8333H10.5V13.3333C10.5 13.6428 10.3771 13.9395 10.1583 14.1583C9.9395 14.3771 9.64275 14.5 9.33333 14.5H2.66667C2.35725 14.5 2.0605 14.3771 1.84171 14.1583C1.62292 13.9395 1.5 13.6428 1.5 13.3333V5.33333C1.5 5.02391 1.62292 4.72717 1.84171 4.50838C2.0605 4.28958 2.35725 4.16667 2.66667 4.16667H4.16667ZM9.5 11.8333V13.3333C9.5 13.3775 9.48244 13.4199 9.45118 13.4512C9.41993 13.4824 9.37754 13.5 9.33333 13.5H2.66667C2.62246 13.5 2.58007 13.4824 2.54882 13.4512C2.51756 13.4199 2.5 13.3775 2.5 13.3333V5.33333C2.5 5.28913 2.51756 5.24674 2.54882 5.21548C2.58007 5.18423 2.62246 5.16667 2.66667 5.16667H4.16667V10.6667C4.16667 11.311 4.689 11.8333 5.33333 11.8333H9.5Z\" fill=\"currentColor\"/></svg></button></div></div><div class=\"env-row\"><div class=\"env-name\">Production Environment</div><div class=\"env-url-row\"><span class=\"env-url\">https://apigateway.class.com.au/api/1.0</span><button type=\"button\" class=\"copy-btn\" data-copy=\"https://apigateway.class.com.au/api/1.0\" aria-label=\"Copy\"><svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5.16667 2.66667C5.16667 2.57462 5.24129 2.5 5.33333 2.5H12C12.092 2.5 12.1667 2.57462 12.1667 2.66667V10.6667C12.1667 10.7587 12.092 10.8333 12 10.8333H10H5.33333C5.24129 10.8333 5.16667 10.7587 5.16667 10.6667V4.66667V2.66667ZM4.16667 4.16667V2.66667C4.16667 2.02233 4.689 1.5 5.33333 1.5H12C12.6443 1.5 13.1667 2.02233 13.1667 2.66667V10.6667C13.1667 11.311 12.6443 11.8333 12 11.8333H10.5V13.3333C10.5 13.6428 10.3771 13.9395 10.1583 14.1583C9.9395 14.3771 9.64275 14.5 9.33333 14.5H2.66667C2.35725 14.5 2.0605 14.3771 1.84171 14.1583C1.62292 13.9395 1.5 13.6428 1.5 13.3333V5.33333C1.5 5.02391 1.62292 4.72717 1.84171 4.50838C2.0605 4.28958 2.35725 4.16667 2.66667 4.16667H4.16667ZM9.5 11.8333V13.3333C9.5 13.3775 9.48244 13.4199 9.45118 13.4512C9.41993 13.4824 9.37754 13.5 9.33333 13.5H2.66667C2.62246 13.5 2.58007 13.4824 2.54882 13.4512C2.51756 13.4199 2.5 13.3775 2.5 13.3333V5.33333C2.5 5.28913 2.51756 5.24674 2.54882 5.21548C2.58007 5.18423 2.62246 5.16667 2.66667 5.16667H4.16667V10.6667C4.16667 11.311 4.689 11.8333 5.33333 11.8333H9.5Z\" fill=\"currentColor\"/></svg></button></div></div></div></div>",
    "contact": {
      "name": "Class Partners",
      "email": "partners@class.com.au"
    },
    "termsOfService": "https://www.class.com.au/api-terms"
  },
  "servers": [
    {
      "url": "https://apigateway.class-pie.com.au/api/1.0",
      "description": "Partner Integration Environment (Sandbox)"
    },
    {
      "url": "https://apigateway.class.com.au/api/1.0",
      "description": "Production Environment"
    }
  ],
  "tags": [
    {
      "name": "Business",
      "description": "Ability to obtain the tax lodgment status at a business level, either for a particular year or for a range of years. Allows you to filter by a specific status.\n"
    },
    {
      "name": "Fund",
      "description": "Ability to obtain the tax lodgment status at a fund level, either for a particular year or for a range of years. Allows you to filter by a specific status.\n"
    }
  ],
  "paths": {
    "/b/{businessCode}/tax-lodgments/status": {
      "get": {
        "tags": [
          "Business"
        ],
        "summary": "Tax lodgment status",
        "description": "Get all active records of fund tax lodgment status data at business level for the specified financialYear and status in the sequence of latest to earliest.",
        "operationId": "GetBusinessTaxLodgementStatus",
        "parameters": [
          {
            "$ref": "#/components/parameters/businessCodeParam"
          },
          {
            "$ref": "#/components/parameters/entityTypeParam"
          },
          {
            "$ref": "#/components/parameters/statusParam"
          },
          {
            "$ref": "#/components/parameters/financialYearParam"
          },
          {
            "name": "includeSuspended",
            "in": "query",
            "required": false,
            "description": "Indicates whether to include suspended entities in the results.",
            "schema": {
              "type": "boolean",
              "example": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success (Ok)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BusinessTaxLodgmentStatusResponse"
                }
              }
            }
          },
          "400": {
            "description": "Error Message",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "Errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/BusinessTaxLodgmentStatus_ParamError"
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "Errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/UnauthorizedErrorCommon"
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "Errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/ForbiddenErrorCommon"
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Resource Not Available",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "Errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/ResourceUnavailableErrorCommon"
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "Errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/InternalErrorCommon"
                      }
                    }
                  }
                }
              }
            }
          },
          "default": {
            "description": "Unexpected error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "Errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/InternalErrorCommon"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "Class_oAuth": [
              "fund.read"
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "Business"
        ],
        "summary": "Tax lodgment status",
        "description": "Get all active records of fund tax lodgment status data at business level for the specified financialYear and status in the sequence of latest to earliest.",
        "operationId": "PostBusinessTaxLodgementStatus",
        "parameters": [
          {
            "$ref": "#/components/parameters/businessCodeParam"
          },
          {
            "$ref": "#/components/parameters/statusParam"
          },
          {
            "$ref": "#/components/parameters/financialYearParam"
          },
          {
            "name": "entityType",
            "in": "query",
            "required": true,
            "description": "Currently we only support <b>SMSF</b>, we will update the additional entities when they become available in the future\"",
            "schema": {
              "type": "string",
              "example": "SMSF"
            }
          },
          {
            "name": "includeSuspended",
            "in": "query",
            "required": false,
            "description": "Indicates whether to include suspended entities in the results.",
            "schema": {
              "type": "boolean",
              "example": true
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TaxLodgmentPostRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success (Ok)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BusinessTaxLodgmentStatusResponse"
                }
              }
            }
          },
          "400": {
            "description": "Error Message",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "Errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/BusinessTaxLodgmentStatus_ParamError"
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "Errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/UnauthorizedErrorCommon"
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "Errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/ForbiddenErrorCommon"
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Resource Not Available",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "Errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/ResourceUnavailableErrorCommon"
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "Errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/InternalErrorCommon"
                      }
                    }
                  }
                }
              }
            }
          },
          "default": {
            "description": "Unexpected error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "Errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/InternalErrorCommon"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "Class_oAuth": [
              "fund.read"
            ]
          }
        ]
      }
    },
    "/b/{businessCode}/tax-lodgments/history": {
      "get": {
        "tags": [
          "Business"
        ],
        "summary": "Tax lodgment status history",
        "description": "Get all active records of tax lodgment status data at business level for from and to the specified financialYear and for the specified status in the sequence of latest to the earliest.",
        "operationId": "GetBusinessTaxLodgementStatusHistory",
        "parameters": [
          {
            "$ref": "#/components/parameters/businessCodeParam"
          },
          {
            "$ref": "#/components/parameters/entityTypeParam"
          },
          {
            "$ref": "#/components/parameters/statusParam"
          },
          {
            "$ref": "#/components/parameters/fromFinancialYearParam"
          },
          {
            "$ref": "#/components/parameters/toFinancialYearParam"
          },
          {
            "name": "includeSuspended",
            "in": "query",
            "required": false,
            "description": "Indicates whether to include suspended entities in the results.",
            "schema": {
              "type": "boolean",
              "example": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success (Ok)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BusinessTaxLodgmentStatusResponse"
                }
              }
            }
          },
          "400": {
            "description": "Error Message",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "Errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/BusinessTaxLodgmentHistory_ParamError"
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "Errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/UnauthorizedErrorCommon"
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "Errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/ForbiddenErrorCommon"
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Resource Not Available",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "Errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/ResourceUnavailableErrorCommon"
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "Errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/InternalErrorCommon"
                      }
                    }
                  }
                }
              }
            }
          },
          "default": {
            "description": "Unexpected error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "Errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/InternalErrorCommon"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "Class_oAuth": [
              "fund.read"
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "Business"
        ],
        "summary": "Tax lodgment status history",
        "description": "Get all active records of tax lodgment status data at business level for from and to the specified financialYear and for the specified status in the sequence of latest to the earliest.",
        "operationId": "PostBusinessTaxLodgementStatusHistory",
        "parameters": [
          {
            "$ref": "#/components/parameters/businessCodeParam"
          },
          {
            "$ref": "#/components/parameters/statusParam"
          },
          {
            "$ref": "#/components/parameters/fromFinancialYearParam"
          },
          {
            "$ref": "#/components/parameters/toFinancialYearParam"
          },
          {
            "name": "entityType",
            "in": "query",
            "required": true,
            "description": "Currently we only support <b>SMSF</b>, we will update the additional entities when they become available in the future\"",
            "schema": {
              "type": "string",
              "example": "SMSF"
            }
          },
          {
            "name": "includeSuspended",
            "in": "query",
            "required": false,
            "description": "Indicates whether to include suspended entities in the results.",
            "schema": {
              "type": "boolean",
              "example": true
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TaxLodgmentPostRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success (Ok)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BusinessTaxLodgmentStatusResponse"
                }
              }
            }
          },
          "400": {
            "description": "Error Message",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "Errors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "Code": {
                            "type": "string",
                            "example": "API_INVALID_PARAMETER"
                          },
                          "Message": {
                            "type": "string",
                            "example": "EntityType provided in both URL and body with different values."
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "Errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/UnauthorizedErrorCommon"
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "Errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/ForbiddenErrorCommon"
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Resource Not Available",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "Errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/ResourceUnavailableErrorCommon"
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "Errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/InternalErrorCommon"
                      }
                    }
                  }
                }
              }
            }
          },
          "default": {
            "description": "Unexpected error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "Errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/InternalErrorCommon"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "Class_oAuth": [
              "fund.read"
            ]
          }
        ]
      }
    },
    "/f/{businessCode}/{fundCode}/tax-lodgments/status": {
      "get": {
        "tags": [
          "Fund"
        ],
        "operationId": "getTaxLodgmentStatus",
        "summary": "Tax lodgment status",
        "description": "Returns the tax lodgement status for a fund for a specific financial year. It also returns the latest period update and latest year lodged for the fund. Lodgement status include tax agent, lodgement date, amount due or refundable and audit date if available.\n",
        "parameters": [
          {
            "$ref": "#/components/parameters/businessCodeParam"
          },
          {
            "$ref": "#/components/parameters/fundCodeParam"
          },
          {
            "$ref": "#/components/parameters/financialYearParam"
          },
          {
            "$ref": "#/components/parameters/statusParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Success (Ok)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaxLodgmentStatusGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Error Message",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "Errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/TaxLodgmentStatus_ParamError"
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "Errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/UnauthorizedErrorCommon"
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "Errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/ForbiddenErrorCommon"
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Resource not available or user does not have access to the fund",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "Errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/ResourceUnavailableErrorCommon"
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "Errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/InternalErrorCommon"
                      }
                    }
                  }
                }
              }
            }
          },
          "default": {
            "description": "Unexpected error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "Errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/InternalErrorCommon"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "Class_oAuth": [
              "fund.read"
            ]
          }
        ]
      }
    },
    "/f/{businessCode}/{fundCode}/tax-lodgments/history": {
      "get": {
        "tags": [
          "Fund"
        ],
        "operationId": "getTaxLodgmentStatusHistory",
        "summary": "Tax lodgment status history",
        "description": "Returns the tax lodgment status for a fund for a range of financial years. It also returns the latest period update and latest year lodged for the fund. Lodgment status include tax agent, lodgment date, amount due or refundable and audit date if available. History is provided from latest year through to earlier years.\n",
        "parameters": [
          {
            "$ref": "#/components/parameters/businessCodeParam"
          },
          {
            "$ref": "#/components/parameters/fundCodeParam"
          },
          {
            "$ref": "#/components/parameters/statusParam"
          },
          {
            "$ref": "#/components/parameters/fromFinancialYearParam"
          },
          {
            "$ref": "#/components/parameters/toFinancialYearParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Success (Ok)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaxLodgmentStatusGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Error Message",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "Errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/TaxLodgmentHistory_ParamError"
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "Errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/UnauthorizedErrorCommon"
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "Errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/ForbiddenErrorCommon"
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Resource not available or user does not have access to the fund",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "Errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/ResourceUnavailableErrorCommon"
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "Errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/InternalErrorCommon"
                      }
                    }
                  }
                }
              }
            }
          },
          "default": {
            "description": "Unexpected error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "Errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/InternalErrorCommon"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "Class_oAuth": [
              "fund.read"
            ]
          }
        ]
      }
    }
  },
  "components": {
    "securitySchemes": {
      "Class_oAuth": {
        "type": "oAuth2",
        "description": "Class uses oAuth2 and OpenID for authentication and authorisation",
        "flows": {
          "authorizationCode": {
            "authorizationUrl": "https://apigateway.class-pie.com.au/connect/authorize",
            "tokenUrl": "https://apigateway.class-pie.com.au/connect/token",
            "scopes": {
              "fund.read": "View all fund information",
              "fund.maintain": "View and maintain all fund information"
            }
          },
          "password": {
            "tokenUrl": "https://apigateway.class-pie.com.au/connect/token",
            "scopes": {
              "fund.read": "View all fund information",
              "fund.maintain": "View and maintain all fund information"
            }
          }
        }
      }
    },
    "parameters": {
      "businessCodeParam": {
        "name": "businessCode",
        "in": "path",
        "description": "Class business code",
        "required": true,
        "schema": {
          "type": "string",
          "example": "demo-business"
        }
      },
      "fundCodeParam": {
        "name": "fundCode",
        "description": "Class entity code",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string",
          "example": "demo-fund"
        }
      },
      "fromFinancialYearParam": {
        "name": "fromFinancialYear",
        "in": "query",
        "required": true,
        "description": "From Financial Year For The Tax Lodgment",
        "schema": {
          "maximum": 2147483647,
          "minimum": 1,
          "type": "integer",
          "format": "int32"
        }
      },
      "toFinancialYearParam": {
        "name": "toFinancialYear",
        "in": "query",
        "required": true,
        "description": "To Financial Year For The Tax Lodgment.",
        "schema": {
          "maximum": 2147483647,
          "minimum": 1,
          "type": "integer",
          "format": "int32"
        }
      },
      "statusParam": {
        "name": "status",
        "in": "query",
        "required": false,
        "description": "Tax lodgment status recevied for the financial year",
        "schema": {
          "type": "string",
          "enum": [
            "NotSubmitted",
            "SubmittedToTaxAgent",
            "SubmittedToATO",
            "LodgmentSucceeded",
            "LodgmentFailed",
            "RejectedByAgent",
            "None"
          ],
          "example": "SubmittedToTaxAgent"
        }
      },
      "financialYearParam": {
        "name": "financialYear",
        "in": "query",
        "required": false,
        "description": "Financial Year For The Tax Lodgment",
        "schema": {
          "maximum": 2147483647,
          "minimum": 1,
          "type": "integer",
          "format": "int32"
        }
      },
      "entityTypeParam": {
        "name": "entityType",
        "in": "query",
        "required": true,
        "description": "Currently we only support <b>SMSF</b>, we will update the additional entities when they become available in the future\n",
        "schema": {
          "type": "string",
          "example": "SMSF"
        }
      }
    },
    "schemas": {
      "ApiError": {
        "type": "object",
        "properties": {
          "Code": {
            "type": "string",
            "nullable": true,
            "description": "Error code identifying the type of error.",
            "example": "API_INVALID_PARAMETER"
          },
          "Message": {
            "type": "string",
            "nullable": true,
            "description": "Human-readable description of the error.",
            "example": "An error occurred while processing your request."
          }
        },
        "additionalProperties": false
      },
      "TaxLodgmentStatus_ParamError": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/FinancialYearError"
          },
          {
            "$ref": "#/components/schemas/StatusError"
          }
        ]
      },
      "TaxLodgmentHistory_ParamError": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/FromFinancialYearError"
          },
          {
            "$ref": "#/components/schemas/FinancialYearNonZeroError"
          }
        ]
      },
      "BusinessTaxLodgmentStatus_ParamError": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/FromFinancialYearError"
          },
          {
            "$ref": "#/components/schemas/RequiredEntityTypeError"
          },
          {
            "$ref": "#/components/schemas/StatusError"
          }
        ]
      },
      "BusinessTaxLodgmentHistory_ParamError": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/FromFinancialYearError"
          },
          {
            "$ref": "#/components/schemas/RequiredEntityTypeError"
          },
          {
            "$ref": "#/components/schemas/StatusError"
          }
        ]
      },
      "StatusError": {
        "type": "object",
        "properties": {
          "Code": {
            "type": "string",
            "example": "API_INVALID_PARAMETER"
          },
          "Message": {
            "type": "string",
            "example": "Invalid tax lodgement 'status'"
          }
        }
      },
      "RequiredEntityTypeError": {
        "type": "object",
        "properties": {
          "Code": {
            "type": "string",
            "example": "API_INVALID_PARAMETER"
          },
          "Message": {
            "type": "string",
            "example": "Legal entity type must be provided."
          }
        }
      },
      "FinancialYearError": {
        "type": "object",
        "properties": {
          "Code": {
            "type": "string",
            "example": "API_INVALID_PARAMETER"
          },
          "Message": {
            "type": "string",
            "example": "'financialYear' must be greater than 0."
          }
        }
      },
      "RequiredFinancialYearError": {
        "type": "object",
        "properties": {
          "Code": {
            "type": "string",
            "example": "API_INVALID_PARAMETER"
          },
          "Message": {
            "type": "string",
            "example": "'fromFinancialYear' and 'toFinancialYear' must be   provided."
          }
        }
      },
      "FromFinancialYearError": {
        "type": "object",
        "properties": {
          "Code": {
            "type": "string",
            "example": "API_INVALID_PARAMETER"
          },
          "Message": {
            "type": "string",
            "example": "'fromFinancialYear' must be earlier than   'toFinancialYear'."
          }
        }
      },
      "FinancialYearNonZeroError": {
        "type": "object",
        "properties": {
          "Code": {
            "type": "string",
            "example": "API_INVALID_PARAMETER"
          },
          "Message": {
            "type": "string",
            "example": "'fromFinancialYear' and 'toFinancialYear' must be   greater than 0"
          }
        }
      },
      "UnauthorizedErrorCommon": {
        "type": "object",
        "properties": {
          "Code": {
            "type": "string",
            "example": "API_NOT_AUTHORISED"
          },
          "Message": {
            "type": "string",
            "example": "Not authorised"
          }
        },
        "xml": {
          "name": "Error",
          "wrapped": false
        }
      },
      "InternalErrorCommon": {
        "type": "object",
        "properties": {
          "Code": {
            "type": "string",
            "example": "INTERNAL_SERVER_ERROR"
          },
          "Message": {
            "type": "string",
            "example": "An unexpected error occurred on the server. Please   try again later."
          }
        },
        "xml": {
          "name": "Error"
        }
      },
      "ForbiddenErrorCommon": {
        "type": "object",
        "properties": {
          "Code": {
            "type": "string",
            "example": "FORBIDDEN"
          },
          "Message": {
            "type": "string",
            "example": "You do not have permission to access this resource  ."
          }
        },
        "xml": {
          "name": "Error"
        }
      },
      "ResourceUnavailableErrorCommon": {
        "type": "object",
        "properties": {
          "Code": {
            "type": "string",
            "example": "API_NOT_FOUND"
          },
          "Message": {
            "type": "string",
            "example": "Resource not available or user does not have access   to the fund."
          }
        },
        "xml": {
          "name": "Error"
        }
      },
      "TaxLodgmentPostRequest": {
        "type": "object",
        "properties": {
          "brands": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "description": "List of brand codes to filter by.",
            "example": [
              "BRAND_VANGUARD",
              "BRAND_BLACKROCK",
              "BRAND_FIDELITY"
            ]
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "description": "List of tag codes to filter by.",
            "example": [
              "FY2023",
              "FY2024",
              "FY2025"
            ]
          },
          "whiteLabels": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "description": "List of white label codes to filter by.",
            "example": [
              "WL_AUS_INVEST_01",
              "WL_GLOBAL_GROWTH_02",
              "WL_TAX_EFFICIENT_03"
            ]
          },
          "entityType": {
            "type": "string",
            "nullable": true,
            "description": "Legal entity type to filter by.",
            "example": "SMSF"
          },
          "includeSuspended": {
            "type": "boolean",
            "nullable": true,
            "description": "Whether to include suspended entities.",
            "example": true
          }
        },
        "additionalProperties": false
      },
      "BusinessTaxLodgmentStatusResponse": {
        "type": "object",
        "properties": {
          "Errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiError"
            },
            "nullable": true,
            "readOnly": true,
            "description": "List of errors, if any."
          },
          "Data": {
            "$ref": "#/components/schemas/BusinessTaxLodgmentStatus",
            "description": "Business tax lodgment status data."
          }
        },
        "xml": {
          "name": "taxLodgementStatus xmlns:xsd=\"http://www.w3.org/2001  /XMLSchema\"",
          "wrapped": false
        }
      },
      "BusinessTaxLodgmentStatus": {
        "type": "object",
        "properties": {
          "total": {
            "type": "number",
            "nullable": false,
            "description": "Total number of records returned.",
            "example": 2
          },
          "pageSize": {
            "type": "number",
            "nullable": false,
            "description": "Number of records per page.",
            "example": 500
          },
          "pageNumber": {
            "type": "number",
            "nullable": false,
            "description": "Current page number.",
            "example": 1
          },
          "totalPages": {
            "type": "number",
            "nullable": false,
            "description": "Total number of pages available.",
            "example": 1
          },
          "funds": {
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/FundOne"
                },
                {
                  "$ref": "#/components/schemas/Fund"
                }
              ]
            },
            "nullable": false,
            "description": "List of funds with their tax lodgment status."
          }
        }
      },
      "Fund": {
        "type": "object",
        "properties": {
          "entityCode": {
            "type": "string",
            "nullable": true,
            "description": "Unique code identifying the entity.",
            "example": "demo-fund"
          },
          "entityName": {
            "type": "string",
            "nullable": true,
            "description": "Name of the entity.",
            "example": "DEMO_SMSF_2024"
          },
          "legalType": {
            "type": "string",
            "nullable": true,
            "description": "Legal type of the entity.",
            "example": "SMSF"
          },
          "status": {
            "type": "string",
            "nullable": true,
            "description": "Current status of the entity.",
            "example": "Active"
          },
          "latestPeriodUpdate": {
            "type": "string",
            "nullable": true,
            "description": "Date of the latest period update.",
            "example": "30/06/2024"
          },
          "latestYearLodged": {
            "type": "integer",
            "nullable": true,
            "description": "Most recent financial year lodged.",
            "example": 2024
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "description": "List of tags associated with the fund.",
            "example": [
              "FY2023",
              "FY2024",
              "FY2025"
            ]
          },
          "financialYears": {
            "type": "array",
            "items": {
              "type": "integer"
            },
            "nullable": true,
            "description": "List of financial years with lodgment data.",
            "example": []
          }
        }
      },
      "FundOne": {
        "type": "object",
        "properties": {
          "entityCode": {
            "type": "string",
            "nullable": true,
            "description": "Unique code identifying the entity.",
            "example": "001_ABC"
          },
          "entityName": {
            "type": "string",
            "nullable": true,
            "description": "Name of the entity.",
            "example": "Acme Super Fund"
          },
          "legalType": {
            "type": "string",
            "nullable": true,
            "description": "Legal type of the entity.",
            "example": "SMSF"
          },
          "status": {
            "type": "string",
            "nullable": true,
            "description": "Current status of the entity.",
            "example": "Active"
          },
          "latestPeriodUpdate": {
            "type": "string",
            "nullable": true,
            "description": "Date of the latest period update.",
            "example": "31/03/2023"
          },
          "latestYearLodged": {
            "type": "integer",
            "nullable": true,
            "description": "Most recent financial year lodged.",
            "example": 2022
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "description": "List of tags associated with the fund.",
            "example": [
              "FY2023",
              "FY2024",
              "FY2025"
            ]
          },
          "financialYears": {
            "type": "array",
            "items": {
              "type": "integer"
            },
            "nullable": true,
            "description": "List of financial years with lodgment data.",
            "example": []
          }
        }
      },
      "FinancialYear": {
        "type": "object",
        "properties": {
          "year": {
            "type": "integer",
            "description": "The financial year.",
            "example": 2023
          },
          "lodgments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Lodgment"
            },
            "nullable": true,
            "description": "List of lodgment records for the financial year."
          }
        },
        "additionalProperties": false
      },
      "TaxLodgmentStatusGetResponse": {
        "type": "object",
        "properties": {
          "Errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiError"
            },
            "nullable": true,
            "readOnly": true,
            "description": "List of errors, if any."
          },
          "Data": {
            "$ref": "#/components/schemas/TaxLodgmentStatus",
            "description": "Tax lodgment status data for the fund."
          }
        },
        "xml": {
          "name": "taxLodgementStatus xmlns:xsd=\"http://www.w3.org/2001  /XMLSchema\"",
          "wrapped": false
        }
      },
      "TaxLodgmentStatus": {
        "type": "object",
        "properties": {
          "entityCode": {
            "type": "string",
            "nullable": true,
            "description": "Unique code identifying the entity.",
            "example": "demo-fund"
          },
          "entityName": {
            "type": "string",
            "nullable": true,
            "description": "Name of the entity.",
            "example": "DEMO_SMSF_2024"
          },
          "legalType": {
            "type": "string",
            "nullable": true,
            "description": "Legal type of the entity.",
            "example": "SMSF"
          },
          "status": {
            "type": "string",
            "nullable": true,
            "description": "Current status of the entity.",
            "example": "Active"
          },
          "latestPeriodUpdate": {
            "type": "string",
            "nullable": true,
            "description": "Date of the latest period update.",
            "example": "30/06/2024"
          },
          "latestYearLodged": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Most recent financial year lodged.",
            "example": 2023
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "description": "List of tags associated with the fund.",
            "example": [
              "FY2025",
              "FY2024",
              "TAX2024",
              "SMSF Tag"
            ]
          },
          "financialYears": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FinancialYear"
            },
            "nullable": false,
            "description": "List of financial years with their lodgment details."
          }
        },
        "additionalProperties": false
      },
      "Lodgment": {
        "type": "object",
        "properties": {
          "lodgmentStatus": {
            "type": "string",
            "nullable": true,
            "description": "Current status of the tax lodgment.",
            "example": "LodgmentSucceeded"
          },
          "taxAgent": {
            "type": "string",
            "nullable": true,
            "description": "Name of the tax agent handling the lodgment.",
            "example": "Mr Bob Johnson"
          },
          "transmissionId": {
            "type": "string",
            "nullable": true,
            "description": "Unique transmission identifier for the lodgment.",
            "example": "KGYLX3GOFCMF5KWR"
          },
          "amountDue": {
            "type": "number",
            "format": "double",
            "nullable": true,
            "description": "Amount due or refundable for the lodgment.",
            "example": -3203.87
          },
          "lodgmentDate": {
            "type": "string",
            "nullable": true,
            "description": "Date when the lodgment was submitted.",
            "example": "18/04/2024"
          },
          "auditDate": {
            "type": "string",
            "nullable": true,
            "description": "Date of the audit, if applicable.",
            "example": "31/05/2023"
          }
        }
      }
    }
  }
}