{
  "openapi": "3.0.0",
  "info": {
    "title": "Data Services API",
    "contact": {},
    "version": "3.0.0"
  },
  "paths": {
    "/v1/banking/acccounts/direct-debits": {
      "get": {
        "description": "Returns list of banking account direct debits available under the authorised consent",
        "tags": [
          "Direct Debits",
          "v1",
          "v2",
          "v3",
          "banking"
        ],
        "summary": "Get direct debits",
        "operationId": "getDirectDebits",
        "parameters": [
          {
            "example": "eu_12345",
            "description": "A unique identifier for the End User object.",
            "name": "end_user_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "When the page[before] is specified, backwards pagination is achieved",
            "name": "page[before]",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "When the page[after] is specified, forwards pagination is achieved",
            "name": "page[after]",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "When the page[size] is specified, no more than page[size] resources will be included in the response's data field. This parameter is set to a sensible default, which varies depending on the endpoint. It is capped at 1000.",
            "name": "page[size]",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/fiskil_banking.DirectDebitsBody"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_handler.ErrorBody"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_handler.ErrorBody"
                }
              }
            }
          }
        }
      }
    },
    "/v1/banking/accounts": {
      "get": {
        "description": "returns list of banking account Accounts available under the authorised consent",
        "tags": [
          "Accounts",
          "v2",
          "v3",
          "banking"
        ],
        "summary": "Handle Accounts",
        "operationId": "getBankingAccountsV2",
        "parameters": [
          {
            "example": "eu_12345",
            "description": "A unique identifier for the End User object.",
            "name": "end_user_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "example": "bank_account_asdf1234",
            "description": "When the page[before] is specified, backwards pagination is achieved",
            "name": "page[before]",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "example": "bank_account_asdf1234",
            "description": "When the page[after] is specified, forwards pagination is achieved",
            "name": "page[after]",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "example": 100,
            "description": "When the page[size] is specified, no more than page[size] resources will be included in the response's data field. This parameter is set to a sensible default, which varies depending on the endpoint. It is capped at 1000.",
            "name": "page[size]",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/fiskil_banking.AccountsBodyV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_handler.ErrorBody"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_handler.ErrorBody"
                }
              }
            }
          }
        }
      }
    },
    "/v1/banking/balances": {
      "get": {
        "description": "Returns list of banking account balances available under the authorised consent",
        "tags": [
          "Balances",
          "v1",
          "v2",
          "v3",
          "banking"
        ],
        "summary": "Get Balances",
        "operationId": "getBankingBalances",
        "parameters": [
          {
            "example": "eu_23451123",
            "description": "A unique identifier for the End User object.",
            "name": "end_user_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "example": "acc_12345",
            "description": "A unique identifier for the Account object.",
            "name": "account_id",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "When the page[before] is specified, backwards pagination is achieved",
            "name": "page[before]",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "When the page[after] is specified, forwards pagination is achieved",
            "name": "page[after]",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "When the page[size] is specified, no more than page[size] resources will be included in the response's data field. This parameter is set to a sensible default, which varies depending on the endpoint. It is capped at 1000.",
            "name": "page[size]",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "fetch=true, combined with account_id, retrieves balance from data holder in real-time",
            "name": "fetch",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Client IP address to indicate consumer present API requests. Used when fetch=true to forward to data holder.",
            "name": "x-fiskil-client-ip-address",
            "in": "header",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Client User-Agent header to indicate consumer present API requests. Used when fetch=true to forward to data holder.",
            "name": "x-fiskil-client-user-agent",
            "in": "header",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/fiskil_banking.BalancesBody"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_handler.ErrorBody"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_handler.ErrorBody"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_handler.ErrorBody"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_handler.ErrorBody"
                }
              }
            }
          }
        }
      }
    },
    "/v1/banking/income": {
      "get": {
        "description": "returns an income summary for the end-user. This is calculated over all consents associated with the end-user in real-time, and includes data from all connected bank accounts",
        "tags": [
          "Income",
          "v1",
          "v2",
          "v3",
          "banking"
        ],
        "summary": "Handle Income",
        "operationId": "getBankingIncome",
        "parameters": [
          {
            "example": "eu_12345",
            "description": "A unique identifier for the End User object.",
            "name": "end_user_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Start date (inclusive) in ISO-8601 date format (YYYY-MM-DD). Defaults to 6 months before today if omitted.",
            "name": "from",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "End date (inclusive) in ISO-8601 date format (YYYY-MM-DD). Defaults to today if omitted.",
            "name": "to",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "One or many income categories to include",
            "name": "categories",
            "in": "query",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "enum": [
                  "INCOME_SALARY",
                  "INCOME_BUSINESS",
                  "INCOME_TAX_REFUND",
                  "INCOME_GOVERNMENT_BENEFITS",
                  "INCOME_INVESTMENTS",
                  "INCOME_INTEREST_EARNED",
                  "INCOME_RENTAL",
                  "INCOME_CHILD_SUPPORT",
                  "INCOME_CASH_ADVANCES_AND_LOANS",
                  "INCOME_OTHER_INCOME"
                ],
                "type": "string"
              }
            }
          },
          {
            "description": "List of account IDs to include. Pass multiple instances of account_id to include multiple accounts. Defaults to all available accounts if omitted",
            "name": "account_id",
            "in": "query",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/fiskil_banking.IncomeBody"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_handler.ErrorBody"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_handler.ErrorBody"
                }
              }
            }
          }
        }
      }
    },
    "/v1/banking/payees": {
      "get": {
        "description": "Returns list of banking payees available under the authorised consent",
        "tags": [
          "Payees",
          "v1",
          "v2",
          "v3",
          "banking"
        ],
        "summary": "Get Payees",
        "operationId": "getBankingPayees",
        "parameters": [
          {
            "example": "eu_12345",
            "description": "A unique identifier for the End User object.",
            "name": "end_user_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "When the page[before] is specified, backwards pagination is achieved",
            "name": "page[before]",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "When the page[after] is specified, forwards pagination is achieved",
            "name": "page[after]",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "When the page[size] is specified, no more than page[size] resources will be included in the response's data field. This parameter is set to a sensible default, which varies depending on the endpoint. It is capped at 1000.",
            "name": "page[size]",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/fiskil_banking.PayeesBody"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_handler.ErrorBody"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_handler.ErrorBody"
                }
              }
            }
          }
        }
      }
    },
    "/v1/banking/payments/scheduled": {
      "get": {
        "description": "Returns list of banking scheduled payments available under the authorised consent",
        "tags": [
          "Scheduled Payments",
          "v1",
          "v2",
          "v3",
          "banking"
        ],
        "summary": "Get Scheduled Payments",
        "operationId": "getScheduledPayments",
        "parameters": [
          {
            "example": "eu_12345asdf",
            "description": "A unique identifier for the End User object.",
            "name": "end_user_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "When the page[after] is specified, backwards pagination is achieved",
            "name": "page[before]",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "When the page[after] is specified, forwards pagination is achieved",
            "name": "page[after]",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "When the page[size] is specified, no more than page[size] resources will be included in the response's data field. This parameter is set to a sensible default, which varies depending on the endpoint. It is capped at 1000.",
            "name": "page[size]",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/fiskil_banking.ScheduledPaymentsBody"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_handler.ErrorBody"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_handler.ErrorBody"
                }
              }
            }
          }
        }
      }
    },
    "/v1/banking/products": {
      "get": {
        "description": "Returns list of banking products for a given institution",
        "tags": [
          "Products",
          "v1",
          "v2",
          "v3",
          "banking"
        ],
        "summary": "List products products",
        "operationId": "listBankingProducts",
        "parameters": [
          {
            "example": "2",
            "description": "A unique identifier specifying institution.",
            "name": "institution_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "When the page[before] is specified, backwards pagination is achieved",
            "name": "page[before]",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "When the page[after] is specified, forwards pagination is achieved",
            "name": "page[after]",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "When the page[size] is specified, no more than page[size] resources will be included in the response's data field. This parameter is set to a sensible default, which varies depending on the endpoint. It is capped at 1000.",
            "name": "page[size]",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/fiskil_banking.ProductsBody"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_handler.ErrorBody"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_handler.ErrorBody"
                }
              }
            }
          }
        }
      }
    },
    "/v1/banking/products/{product_id}": {
      "get": {
        "description": "Returns detailed information about a banking product",
        "tags": [
          "Products",
          "v2",
          "v3",
          "banking"
        ],
        "summary": "Get product details",
        "operationId": "getBankingProductDetailV2",
        "parameters": [
          {
            "example": "up-everyday",
            "description": "A unique identifier specifying product.",
            "name": "product_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/fiskil_banking.ProductDetailsBodyV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_handler.ErrorBody"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_handler.ErrorBody"
                }
              }
            }
          }
        }
      }
    },
    "/v1/banking/transactions": {
      "get": {
        "description": "Returns list of banking transactions available under the authorised consent",
        "tags": [
          "Transactions",
          "v2",
          "v3",
          "banking"
        ],
        "summary": "Get Transactions",
        "operationId": "getBankingTransactionsV2",
        "parameters": [
          {
            "example": "eu_abcdef123",
            "description": "A unique identifier for the End User object.",
            "name": "end_user_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "example": "acc_123456",
            "description": "A unique identifier for the Account object.",
            "name": "account_id",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "example": "2024-09-23T12:00:00+10:00",
            "description": "The start datetime, in RFC3339 format, from which the transaction data is requested. It will first check for posted datetime, and fallback to execution datetime if empty. Transactions without an execution or posted datetime will be excluded from results.",
            "name": "from",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "example": "2024-09-23T12:00:00+10:00",
            "description": "The end datetime, in RFC3339 format, up to which the transaction data is requested. It will first check for posted datetime, and fallback to execution datetime if empty.",
            "name": "to",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "example": "\"PENDING\"",
            "description": "Filter to include only transactions with the given status. If unset, transactions of all statuses will be returned",
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "\"PENDING\"",
                "\"POSTED\""
              ]
            }
          },
          {
            "description": "Include only transactions with the specified secondary category code. Optional, but can be specified multiple times for or concatenation. Defaults to include all secondary category codes if omitted.",
            "name": "secondary_category",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "When the page[after] is specified, backwards pagination is achieved",
            "name": "page[before]",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "When the page[after] is specified, forwards pagination is achieved",
            "name": "page[after]",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "When the page[size] is specified, no more than page[size] resources will be included in the response's data field. This parameter is set to a sensible default, which varies depending on the endpoint. It is capped at 1000.",
            "name": "page[size]",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/fiskil_banking.TransactionsBodyV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_handler.ErrorBody"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_handler.ErrorBody"
                }
              }
            }
          }
        }
      }
    },
    "/v1/banking/transactions/category": {
      "post": {
        "description": "Overrides the Fiskil predicted category of a specific banking transaction.",
        "tags": [
          "Transactions",
          "v1",
          "v2",
          "v3",
          "banking"
        ],
        "summary": "Override Transaction Category",
        "operationId": "overrideTransactionCategory",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/fiskil_banking.CategoryOverride"
              }
            }
          },
          "description": "The override category with the fiskiltransaction ID",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_handler.MessageBody"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_handler.ErrorBody"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_handler.ErrorBody"
                }
              }
            }
          }
        }
      }
    },
    "/v1/common/identity": {
      "get": {
        "description": "Returns detailed information about the consumer identities from the most recent consent",
        "tags": [
          "Identity",
          "v2",
          "v3",
          "common"
        ],
        "summary": "Get customer details",
        "operationId": "getCustomerIdentity",
        "parameters": [
          {
            "example": "eu_abcdef1234",
            "description": "A unique identifier for the End User object.",
            "name": "end_user_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "example": "inst_abcdef1234",
            "description": "A unique identifier for the Institution object.",
            "name": "institution_id",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/fiskil_identity.IdentityBody_V2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_handler.ErrorBody"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_handler.ErrorBody"
                }
              }
            }
          }
        }
      }
    },
    "/v1/energy/accounts": {
      "get": {
        "description": "Returns list of energy accounts belonging to the provided end user",
        "tags": [
          "Accounts",
          "v1",
          "v2",
          "v3",
          "energy"
        ],
        "summary": "List energy accounts",
        "operationId": "getEnergyAccounts",
        "parameters": [
          {
            "example": "eu_12345",
            "description": "A unique identifier for the End User object.",
            "name": "end_user_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "When the page[after] is specified, backwards pagination is achieved",
            "name": "page[before]",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "When the page[after] is specified, forwards pagination is achieved",
            "name": "page[after]",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "When the page[size] is specified, no more than page[size] resources will be included in the response's data field. This parameter is set to a sensible default, which varies depending on the endpoint. It is capped at 1000.",
            "name": "page[size]",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/fiskil_energy.AccountsBody"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_handler.ErrorBody"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_handler.ErrorBody"
                }
              }
            }
          }
        }
      }
    },
    "/v1/energy/balances": {
      "get": {
        "description": "Returns list of energy account balances for accounts authorised by the end user",
        "tags": [
          "Balances",
          "v1",
          "v2",
          "v3",
          "energy"
        ],
        "summary": "List energy account balances",
        "operationId": "getEnergyBalances",
        "parameters": [
          {
            "description": "A unique identifier for the End User object.",
            "name": "end_user_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "When the page[before] is specified, backwards pagination is achieved",
            "name": "page[before]",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "When the page[after] is specified, forwards pagination is achieved",
            "name": "page[after]",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "When the page[size] is specified, no more than page[size] resources will be included in the response's data field. This parameter is set to a sensible default, which varies depending on the endpoint. It is capped at 1000.",
            "name": "page[size]",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/fiskil_energy.BalancesBody"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_handler.ErrorBody"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_handler.ErrorBody"
                }
              }
            }
          }
        }
      }
    },
    "/v1/energy/billing": {
      "get": {
        "description": "Returns billing transactions for all accounts authorised by the end user",
        "tags": [
          "Billing",
          "v1",
          "v2",
          "v3",
          "energy"
        ],
        "summary": "Get billing transactions",
        "operationId": "getEnergyBilling",
        "parameters": [
          {
            "description": "A unique identifier for the End User to fetch billing transactions for.",
            "name": "end_user_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The account_id from the Accounts API to fetch billing transactions for.",
            "name": "account_id",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The invoice_number from the invoices API to fetch billing transactions for.",
            "name": "invoice_number",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "When the page[before] is specified, backwards pagination is achieved",
            "name": "page[before]",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "When the page[after] is specified, forwards pagination is achieved",
            "name": "page[after]",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "When the page[size] is specified, no more than page[size] resources will be included in the response's data field. This parameter is set to a sensible default, which varies depending on the endpoint. It is capped at 1000.",
            "name": "page[size]",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/fiskil_energy.BillingBody"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_handler.ErrorBody"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_handler.ErrorBody"
                }
              }
            }
          }
        }
      }
    },
    "/v1/energy/concessions": {
      "get": {
        "description": "Returns the details of any concessions or arrangements applied to a energy accounts authorised by the end user",
        "tags": [
          "Concessions",
          "v1",
          "v2",
          "v3",
          "energy"
        ],
        "summary": "List concessions",
        "operationId": "getEnergyConcessions",
        "parameters": [
          {
            "description": "A unique identifier for the End User object.",
            "name": "end_user_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "When the page[before] is specified, backwards pagination is achieved",
            "name": "page[before]",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "When the page[after] is specified, forwards pagination is achieved",
            "name": "page[after]",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "When the page[size] is specified, no more than page[size] resources will be included in the response's data field. This parameter is set to a sensible default, which varies depending on the endpoint. It is capped at 1000.",
            "name": "page[size]",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/fiskil_energy.ConcessionsBody"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_handler.ErrorBody"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_handler.ErrorBody"
                }
              }
            }
          }
        }
      }
    },
    "/v1/energy/der": {
      "get": {
        "description": "Obtain DER data for all service points authorised by the end user",
        "tags": [
          "DER",
          "v1",
          "v2",
          "v3",
          "energy"
        ],
        "summary": "List DER (Distributed Energy Resources)",
        "operationId": "getEnergyDer",
        "parameters": [
          {
            "description": "A unique identifier for the End User object.",
            "name": "end_user_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "When the page[before] is specified, backwards pagination is achieved",
            "name": "page[before]",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "When the page[after] is specified, forwards pagination is achieved",
            "name": "page[after]",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "When the page[size] is specified, no more than page[size] resources will be included in the response's data field. This parameter is set to a sensible default, which varies depending on the endpoint. It is capped at 1000.",
            "name": "page[size]",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/fiskil_energy.DerBody"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_handler.ErrorBody"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_handler.ErrorBody"
                }
              }
            }
          }
        }
      }
    },
    "/v1/energy/invoice": {
      "get": {
        "description": "Returns the invoices for all accounts authorised by the end user",
        "tags": [
          "Invoices",
          "v1",
          "v2",
          "v3",
          "energy"
        ],
        "summary": "List invoices",
        "operationId": "getEnergyInvoices",
        "parameters": [
          {
            "description": "A unique identifier for the End User object.",
            "name": "end_user_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "(Optional) Account ID as returned by the Accounts API to fetch invoices for. If unset, invoices for all accounts will be returned",
            "name": "account_id",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "(Optional) Service point ID as returned by the Service Points API to fetch invoices for. If unset, invoices for all service points will be returned.",
            "name": "service_point_id",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "(Optional) Invoice Number for a specific invoice to fetch.",
            "name": "invoice_number",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "When the page[before] is specified, backwards pagination is achieved",
            "name": "page[before]",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "When the page[after] is specified, forwards pagination is achieved",
            "name": "page[after]",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "When the page[size] is specified, no more than page[size] resources will be included in the response's data field. This parameter is set to a sensible default, which varies depending on the endpoint. It is capped at 1000.",
            "name": "page[size]",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/fiskil_energy.InvoicesBody"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_handler.ErrorBody"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_handler.ErrorBody"
                }
              }
            }
          }
        }
      }
    },
    "/v1/energy/payment-schedules": {
      "get": {
        "description": "Returns the agreed payment schedule and details, if any, for energy accounts authorised by the end user.",
        "tags": [
          "PaymentSchedules",
          "v1",
          "v2",
          "v3",
          "energy"
        ],
        "summary": "List payment schedules",
        "operationId": "getEnergyPaymentSchedules",
        "parameters": [
          {
            "description": "A unique identifier for the End User object.",
            "name": "end_user_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "When the page[before] is specified, backwards pagination is achieved",
            "name": "page[before]",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "When the page[after] is specified, forwards pagination is achieved",
            "name": "page[after]",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "When the page[size] is specified, no more than page[size] resources will be included in the response's data field. This parameter is set to a sensible default, which varies depending on the endpoint. It is capped at 1000.",
            "name": "page[size]",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/fiskil_energy.PaymentScheduleBody"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_handler.ErrorBody"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_handler.ErrorBody"
                }
              }
            }
          }
        }
      }
    },
    "/v1/energy/plans": {
      "get": {
        "description": "Obtain a list of energy plans that are offered to the market.",
        "tags": [
          "Plans",
          "v1",
          "v2",
          "v3",
          "energy"
        ],
        "summary": "List Plans",
        "operationId": "getEnergyPlans",
        "parameters": [
          {
            "description": "A unique identifier for the Retailer object. It must be a valid CDR brand id, you can use AER website to know all available retailers. Exactly one of retailer_id or institution_id parameters is required.",
            "name": "retailer_id",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "A unique identifier for the Institution object. It must be a valid ID fetched from Institutions API. Exactly one of retailer_id or institution_id parameters is required.",
            "name": "institution_id",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "example": "\"active\"",
            "description": "Filter plans by status. Allowed values: active, all. Defaults to active.",
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "\"active\"",
                "\"all\""
              ]
            }
          },
          {
            "description": "When the page[before] is specified, backwards pagination is achieved",
            "name": "page[before]",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "When the page[after] is specified, forwards pagination is achieved",
            "name": "page[after]",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "When the page[size] is specified, no more than page[size] resources will be included in the response's data field. This parameter is set to a sensible default, which varies depending on the endpoint. It is capped at 1000.",
            "name": "page[size]",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/fiskil_energy.PlanBody"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_handler.ErrorBody"
                }
              }
            }
          }
        }
      }
    },
    "/v1/energy/plans/{plan_id}": {
      "get": {
        "description": "Get details of an energy plan using the plan's ID",
        "tags": [
          "Plans",
          "v1",
          "v2",
          "v3",
          "energy"
        ],
        "summary": "Get energy plan details",
        "operationId": "getEnergyPlanDetail",
        "parameters": [
          {
            "description": "A unique identifier for the plan object as returned by the List Plans API.",
            "name": "plan_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/fiskil_energy.PlanDetailResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_handler.ErrorBody"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_handler.ErrorBody"
                }
              }
            }
          }
        }
      }
    },
    "/v1/energy/service-points": {
      "get": {
        "description": "Returns detailed information about service points owned by the end user that has authorised the current session",
        "tags": [
          "ServicePoints",
          "v1",
          "v2",
          "v3",
          "energy"
        ],
        "summary": "Get service points",
        "operationId": "getEnergyServicePoints",
        "parameters": [
          {
            "description": "A unique identifier for the End User object.",
            "name": "end_user_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "When the page[before] is specified, backwards pagination is achieved",
            "name": "page[before]",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "When the page[after] is specified, forwards pagination is achieved",
            "name": "page[after]",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "When the page[size] is specified, no more than page[size] resources will be included in the response's data field. This parameter is set to a sensible default, which varies depending on the endpoint. It is capped at 1000.",
            "name": "page[size]",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/fiskil_energy.ServicePointBody"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_handler.ErrorBody"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_handler.ErrorBody"
                }
              }
            }
          }
        }
      }
    },
    "/v1/energy/usage": {
      "get": {
        "description": "Returns usage data for all service points associated with the end user",
        "tags": [
          "Usage",
          "v1",
          "v2",
          "v3",
          "energy"
        ],
        "summary": "Get usage",
        "operationId": "getEnergyUsage",
        "parameters": [
          {
            "example": "eu_1234",
            "description": "A unique identifier for the End User object.",
            "name": "end_user_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "example": "31607226-23bb-4544-8e28-da007fda3d29",
            "description": "A unique identifier for the Service Point object.",
            "name": "service_point_id",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "example": "2024-09-01",
            "description": "The start date, in yyyy-mm-dd format, from which the usage data is requested.",
            "name": "read_start_date.oldest",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "example": "2024-09-30",
            "description": "The end date, in yyyy-mm-dd format, up to which the usage data is requested.",
            "name": "read_start_date.newest",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "When the page[before] is specified, backwards pagination is achieved",
            "name": "page[before]",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "When the page[after] is specified, forwards pagination is achieved",
            "name": "page[after]",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "When the page[size] is specified, no more than page[size] resources will be included in the response's data field. This parameter is set to a sensible default, which varies depending on the endpoint. It is capped at 1000.",
            "name": "page[size]",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/fiskil_energy.UsageBody"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_handler.ErrorBody"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_handler.ErrorBody"
                }
              }
            }
          }
        }
      }
    }
  },
  "servers": [
    {
      "url": "https://api.fiskil.com"
    }
  ],
  "components": {
    "schemas": {
      "banking.IncomeFrequency": {
        "type": "string",
        "enum": [
          "UNKNOWN",
          "WEEKLY",
          "BIWEEKLY",
          "MONTHLY"
        ],
        "x-enum-varnames": [
          "IncomeFrequencyUnknown",
          "IncomeFrequencyWeekly",
          "IncomeFrequencyBiWeekly",
          "IncomeFrequencyMonthly"
        ]
      },
      "banking.IncomeMonthlyAvg": {
        "type": "object",
        "properties": {
          "currency": {
            "description": "The currency",
            "type": "string",
            "example": "AUD"
          },
          "income_monthly": {
            "description": "The monthly income value",
            "type": "string",
            "example": "5883.33"
          }
        }
      },
      "banking.IncomeMonthlyMedian": {
        "type": "object",
        "properties": {
          "currency": {
            "description": "The currency",
            "type": "string",
            "example": "AUD"
          },
          "income_monthly": {
            "description": "The monthly income value",
            "type": "string",
            "example": "5883.33"
          }
        }
      },
      "fiskil_banking.AccountV2": {
        "type": "object",
        "required": [
          "account_id",
          "arrangement_id",
          "fiskil_id",
          "institution_id"
        ],
        "properties": {
          "account_id": {
            "description": "The ID of the account as defined by the Institution",
            "type": "string",
            "example": "262c6cc1-1b35-4f3f-b3d0-98976a86c6ee"
          },
          "account_number": {
            "description": "The unmasked account number for the account. Will not be supplied if the account number is a PAN requiring PCI compliance. Is expected to be formatted as digits only with leading zeros included and no punctuation or spaces.",
            "type": "string",
            "example": "1234567890"
          },
          "account_ownership": {
            "description": "Value indicating the number of customers that have ownership of the account, according to the data holder's definition of account ownership. Does not indicate that all account owners are eligible consumers.",
            "type": "string",
            "enum": [
              "ONE_PARTY",
              "TWO_PARTY",
              "MANY_PARTY",
              "OTHER",
              "UNKNOWN"
            ]
          },
          "addresses": {
            "description": "The addresses for the account to be used for correspondence.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_banking.CommonPhysicalAddress"
            }
          },
          "arrangement_id": {
            "description": "The CDR Arrangement that this data has been fetched under",
            "type": "string",
            "example": "9fafd2ac-5f75-47b6-8287-8046df65b8ff"
          },
          "bsb": {
            "description": "The unmasked BSB for the account. Is expected to be formatted as digits only with leading zeros included and no punctuation or spaces.",
            "type": "string"
          },
          "bundle_name": {
            "description": "Optional field to indicate if this account is part of a bundle that is providing additional benefit to the customer.",
            "type": "string"
          },
          "creation_date": {
            "description": "Date that the account was created (if known).",
            "type": "string"
          },
          "credit_card": {
            "description": "Mandatory if the _specificAccountUType_ value is `creditCard`.",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_banking.BankingCreditCardAccount"
              }
            ]
          },
          "deposit_rate": {
            "description": "Current rate to calculate interest earned being applied to deposit balances as it stands at the time of the API call.",
            "type": "string"
          },
          "deposit_rates": {
            "description": "Fully described deposit rates for this account based on the equivalent structure in Product Reference.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_banking.BankingProductV6DepositRate"
            }
          },
          "display_name": {
            "description": "The display name of the account as defined by the bank. This should not incorporate account numbers or PANs. If it does the values should be masked according to the rules of the [MaskedAccountString](#common-field-types) common type.",
            "type": "string"
          },
          "features": {
            "description": "Array of features of the account based on the equivalent structure in Product Reference with the following additional field.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_banking.BankingAccountV4Feature"
            }
          },
          "fees": {
            "description": "Fees and charges applicable to the account based on the equivalent structure in Product Reference.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_banking.BankingProductV6Fee"
            }
          },
          "fiskil_id": {
            "description": "The Fiskil identifier for this bank account",
            "type": "string",
            "example": "bank_account_12345"
          },
          "institution_id": {
            "description": "The Fiskil identifier for the Institution that holds this account",
            "type": "string",
            "example": "2"
          },
          "is_owned": {
            "description": "Flag indicating that the customer associated with the authorisation is an owner of the account. Does not indicate sole ownership, however. If not present then `true` is assumed.",
            "type": "boolean"
          },
          "lending_rate": {
            "description": "The current rate to calculate interest payable being applied to lending balances as it stands at the time of the API call.",
            "type": "string"
          },
          "lending_rates": {
            "description": "Fully described lending rates for this account based on the equivalent structure in Product Reference.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_banking.BankingProductV6LendingRate"
            }
          },
          "loan": {
            "description": "Mandatory if the _specificAccountUType_ value is `loan`.",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_banking.BankingAccountV4Loan"
              }
            ]
          },
          "masked_number": {
            "description": "A masked version of the account. Whether BSB/Account Number, Credit Card PAN or another number.",
            "type": "string"
          },
          "nickname": {
            "description": "A customer supplied nickname for the account.",
            "type": "string"
          },
          "open_status": {
            "description": "Open or closed status for the account. If not present then `OPEN` is assumed.",
            "type": "string",
            "enum": [
              "OPEN",
              "CLOSED"
            ]
          },
          "product_category": {
            "description": "The category to which a product or account belongs. See [here](#product-categories) for more details.",
            "type": "string",
            "enum": [
              "BUSINESS_LOANS",
              "CRED_AND_CHRG_CARDS",
              "LEASES",
              "MARGIN_LOANS",
              "OVERDRAFTS",
              "PERS_LOANS",
              "REGULATED_TRUST_ACCOUNTS",
              "RESIDENTIAL_MORTGAGES",
              "TERM_DEPOSITS",
              "TRADE_FINANCE",
              "TRANS_AND_SAVINGS_ACCOUNTS",
              "TRAVEL_CARDS"
            ]
          },
          "product_name": {
            "description": "The unique identifier of the account as defined by the data holder (akin to model number for the account).",
            "type": "string"
          },
          "specific_account_u_type": {
            "description": "The type of structure to present account specific fields.",
            "type": "string",
            "enum": [
              "creditCard",
              "loan",
              "termDeposit"
            ]
          },
          "term_deposit": {
            "description": "Mandatory if the _specificAccountUType_ value is `termDeposit`.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_banking.BankingTermDepositAccount"
            }
          }
        }
      },
      "fiskil_banking.AccountsBodyV2": {
        "type": "object",
        "required": [
          "accounts"
        ],
        "properties": {
          "accounts": {
            "description": "A list of accounts for the end user",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_banking.AccountV2"
            }
          },
          "links": {
            "description": "Links to be used for pagination",
            "allOf": [
              {
                "$ref": "#/components/schemas/httputil.Links"
              }
            ]
          }
        }
      },
      "fiskil_banking.Balance": {
        "type": "object",
        "required": [
          "account_id",
          "arrangement_id",
          "available_balance",
          "current_balance",
          "fiskil_id",
          "institution_id"
        ],
        "properties": {
          "account_id": {
            "description": "A unique ID of the account set by the institution",
            "type": "string",
            "example": "123456789"
          },
          "amortised_limit": {
            "description": "Object representing the available limit amortised according to payment schedule. Assumed to be zero if absent.",
            "type": "string",
            "example": "5000.00"
          },
          "arrangement_id": {
            "description": "The ID of the CDR Arrangement that was used to fetch this direct debit",
            "type": "string",
            "example": "90bfd779-e8eb-4e9f-87b3-5191ba7332c2"
          },
          "available_balance": {
            "description": "Balance representing the amount of funds available for transfer. Assumed to be zero or positive.",
            "type": "string",
            "example": "1500.00"
          },
          "credit_limit": {
            "description": "Object representing the maximum amount of credit that is available for this account. Assumed to be zero if absent.",
            "type": "string",
            "example": "10000.00"
          },
          "currency": {
            "description": "The currency for the balance amounts. If absent assumed to be `AUD`.",
            "type": "string",
            "example": "AUD"
          },
          "current_balance": {
            "description": "The balance of the account at this time. Should align to the balance available via other channels such as Internet Banking. Assumed to be negative if the customer has money owing.",
            "type": "string",
            "example": "-250.00"
          },
          "fiskil_id": {
            "description": "The Fiskil identifier for this balance record",
            "type": "string",
            "example": "bank_balance_12345abcdef"
          },
          "institution_id": {
            "description": "The Fiskil identifier for the institution that this direct debit is from",
            "type": "string",
            "example": "40"
          },
          "purses": {
            "description": "Optional array of balances for the account in other currencies. Included to support accounts that support multi-currency purses such as Travel Cards.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_banking.BankingBalancePurse"
            }
          }
        }
      },
      "fiskil_banking.BalancesBody": {
        "type": "object",
        "required": [
          "balances"
        ],
        "properties": {
          "balances": {
            "description": "A list of bank account balances for the end user",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_banking.Balance"
            }
          },
          "links": {
            "description": "Links to be used for pagination",
            "allOf": [
              {
                "$ref": "#/components/schemas/httputil.Links"
              }
            ]
          }
        }
      },
      "fiskil_banking.BankingAccountV4Feature": {
        "type": "object",
        "properties": {
          "additional_info": {
            "description": "Display text providing more information on the feature. Mandatory if [_featureType_](#tocSproductfeaturetypedoc) is set to `OTHER`.",
            "type": "string"
          },
          "additional_info_uri": {
            "description": "Link to a web page with more information on this feature.",
            "type": "string"
          },
          "additional_value": {
            "description": "Generic field containing additional information relevant to the [_featureType_](#tocSproductfeaturetypedoc) specified. Whether mandatory or not is dependent on the value of the [_featureType_](#tocSproductfeaturetypedoc).",
            "type": "string"
          },
          "feature_type": {
            "description": "The type of feature described. For further details, refer to [Product Feature Types](#tocSproductfeaturetypedoc).",
            "type": "string"
          },
          "is_activated": {
            "description": "`ACTIVATED` if the feature has been activated by the customer or is a standard feature of the product, `NOT_ACTIVATED` if the feature is not activated but is available for activation, `UNKNOWN` or absent if the activation state is unknown.",
            "type": "string",
            "enum": [
              "ACTIVATED",
              "NOT_ACTIVATED",
              "UNKNOWN"
            ]
          }
        }
      },
      "fiskil_banking.BankingAccountV4Loan": {
        "type": "object",
        "properties": {
          "loan_end_date": {
            "description": "Date that the loan is due to be repaid in full.",
            "type": "string"
          },
          "max_redraw": {
            "description": "Maximum amount of funds that can be redrawn. If not present redraw is not available even if the feature exists for the account.",
            "type": "string"
          },
          "max_redraw_currency": {
            "description": "If absent assumes `AUD`.",
            "type": "string"
          },
          "min_instalment_amount": {
            "description": "Minimum amount of next instalment.",
            "type": "string"
          },
          "min_instalment_currency": {
            "description": "If absent assumes `AUD`.",
            "type": "string"
          },
          "min_redraw": {
            "description": "Minimum redraw amount.",
            "type": "string"
          },
          "min_redraw_currency": {
            "description": "If absent assumes `AUD`.",
            "type": "string"
          },
          "next_instalment_date": {
            "description": "Next date that an instalment is required.",
            "type": "string"
          },
          "offset_account_enabled": {
            "description": "Set to `true` if one or more offset accounts are configured for this loan account.",
            "type": "boolean"
          },
          "offset_account_ids": {
            "description": "The _accountId_ values of the configured offset accounts attached to this loan. Only offset accounts that can be accessed under the current authorisation should be included. It is expected behaviour that _offsetAccountEnabled_ is set to `true` but the _offsetAccountIds_ field is absent or empty. This represents a situation where an offset account exists but details can not be accessed under the current authorisation.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "original_loan_amount": {
            "description": "Optional original loan value.",
            "type": "string"
          },
          "original_loan_currency": {
            "description": "If absent assumes `AUD`.",
            "type": "string"
          },
          "original_start_date": {
            "description": "Optional original start date for the loan.",
            "type": "string"
          },
          "repayment_frequency": {
            "description": "The expected or required repayment frequency. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax).",
            "type": "string"
          },
          "repayment_type": {
            "description": "Option in place for repayments.",
            "type": "string",
            "enum": [
              "INTEREST_ONLY",
              "OTHER",
              "PRINCIPAL_AND_INTEREST",
              "UNCONSTRAINED"
            ]
          }
        }
      },
      "fiskil_banking.BankingAuthorisedEntity": {
        "type": "object",
        "properties": {
          "abn": {
            "description": "Australian Business Number for the authorised entity.",
            "type": "string",
            "example": "12345678901"
          },
          "acn": {
            "description": "Australian Company Number for the authorised entity.",
            "type": "string",
            "example": "123456789"
          },
          "arbn": {
            "description": "Australian Registered Body Number for the authorised entity.",
            "type": "string",
            "example": "123456789"
          },
          "description": {
            "description": "Description of the authorised entity derived from previously executed direct debits.",
            "type": "string",
            "example": "Payment for utilities"
          },
          "financial_institution": {
            "description": "Name of the financial institution through which the direct debit will be executed. Is required unless the payment is made via a credit card scheme.",
            "type": "string",
            "example": "Bank of Example"
          }
        }
      },
      "fiskil_banking.BankingBalancePurse": {
        "type": "object",
        "properties": {
          "amount": {
            "description": "The balance available for this additional currency purse.",
            "type": "string",
            "example": "100.00"
          },
          "currency": {
            "description": "The currency for the purse.",
            "type": "string",
            "example": "USD"
          }
        }
      },
      "fiskil_banking.BankingBillerPayee": {
        "type": "object",
        "required": [
          "biller_code",
          "biller_name"
        ],
        "properties": {
          "biller_code": {
            "description": "BPAY Biller Code of the Biller.",
            "type": "string",
            "example": "123456"
          },
          "biller_name": {
            "description": "Name of the Biller.",
            "type": "string",
            "example": "Electricity Co."
          },
          "crn": {
            "description": "BPAY CRN of the Biller (if available). Where the CRN contains sensitive information, it should be masked in line with how the institution currently displays account identifiers in their existing online banking channels. If the contents of the CRN match the format of a Credit Card PAN they should be masked.",
            "type": "string",
            "example": "987654321"
          }
        }
      },
      "fiskil_banking.BankingCreditCardAccount": {
        "type": "object",
        "required": [
          "min_payment_amount",
          "payment_due_amount",
          "payment_due_date"
        ],
        "properties": {
          "min_payment_amount": {
            "description": "The minimum payment amount due for the next card payment.",
            "type": "string",
            "example": "20.00"
          },
          "payment_currency": {
            "description": "If absent assumes `AUD`.",
            "type": "string",
            "example": "AUD"
          },
          "payment_due_amount": {
            "description": "The amount due for the next card payment.",
            "type": "string",
            "example": "92.14"
          },
          "payment_due_date": {
            "description": "Date that the next payment for the card is due. Formatted as an RFC3339 Date.",
            "type": "string",
            "example": "2024-09-09"
          }
        }
      },
      "fiskil_banking.BankingDigitalWalletPayee": {
        "type": "object",
        "required": [
          "identifier",
          "name",
          "provider",
          "type"
        ],
        "properties": {
          "identifier": {
            "description": "The identifier of the digital wallet (dependent on type).",
            "type": "string",
            "example": "user@example.com"
          },
          "name": {
            "description": "The display name of the wallet as given by the customer, else a default value defined by the institution.",
            "type": "string",
            "example": "John Doe"
          },
          "provider": {
            "description": "The provider of the digital wallet.",
            "type": "string",
            "enum": [
              "OTHER",
              "PAYPAL_AU"
            ],
            "example": "PAYPAL_AU"
          },
          "type": {
            "description": "The type of the digital wallet identifier.",
            "type": "string",
            "enum": [
              "CONTACT_NAME",
              "EMAIL",
              "TELEPHONE"
            ],
            "example": "EMAIL"
          }
        }
      },
      "fiskil_banking.BankingDomesticPayee": {
        "type": "object",
        "required": [
          "payee_account_u_type"
        ],
        "properties": {
          "account": {
            "description": "The Bank account details for the payee for payment as bank transfer",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_banking.BankingDomesticPayeeAccount"
              }
            ]
          },
          "card": {
            "description": "The details for payment to a credit card",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_banking.BankingDomesticPayeeCard"
              }
            ]
          },
          "pay_id": {
            "description": "Details for payment via PayID/NPP",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_banking.BankingDomesticPayeePayId"
              }
            ]
          },
          "payee_account_u_type": {
            "description": "Type of account object included. Valid values are: `account` A standard Australian account defined by BSB/Account Number. `card` A credit or charge card to pay to (note that PANs are masked). `payId` A PayID recognised by NPP. This value determines the field where you can find more information e.g. if the value is payId you will find more info in the pay_id field.",
            "type": "string",
            "enum": [
              "account",
              "card",
              "payId"
            ],
            "example": "account"
          }
        }
      },
      "fiskil_banking.BankingDomesticPayeeAccount": {
        "type": "object",
        "properties": {
          "account_name": {
            "description": "Name of the account to pay to.",
            "type": "string",
            "example": "John Doe"
          },
          "account_number": {
            "description": "Number of the account to pay to.",
            "type": "string",
            "example": "12345678"
          },
          "bsb": {
            "description": "BSB of the account to pay to.",
            "type": "string",
            "example": "062000"
          }
        }
      },
      "fiskil_banking.BankingDomesticPayeeCard": {
        "type": "object",
        "required": [
          "card_number"
        ],
        "properties": {
          "card_number": {
            "description": "Number of the card account being paid to.",
            "type": "string",
            "example": "4111111111111111"
          }
        }
      },
      "fiskil_banking.BankingDomesticPayeePayId": {
        "type": "object",
        "required": [
          "identifier",
          "type"
        ],
        "properties": {
          "identifier": {
            "description": "The identifier of the PayID (dependent on type).",
            "type": "string",
            "example": "user@example.com"
          },
          "name": {
            "description": "The name assigned to the PayID by the owner of the PayID.",
            "type": "string",
            "example": "John Doe"
          },
          "type": {
            "description": "The type of the PayID.",
            "type": "string",
            "enum": [
              "ABN",
              "EMAIL",
              "ORG_IDENTIFIER",
              "TELEPHONE"
            ],
            "example": "EMAIL"
          }
        }
      },
      "fiskil_banking.BankingFeeAmountV2": {
        "type": "object",
        "properties": {
          "amount": {
            "description": "The specific amount charged for the fee each time it is incurred.",
            "type": "string"
          }
        }
      },
      "fiskil_banking.BankingFeeDiscountAmountV2": {
        "type": "object",
        "properties": {
          "amount": {
            "description": "The specific amount discounted from the fee each time it is incurred.",
            "type": "string"
          }
        }
      },
      "fiskil_banking.BankingFeeDiscountRangeV2": {
        "type": "object",
        "properties": {
          "discount_maximum": {
            "description": "The maximum fee discount that will be applied per occurrence.",
            "type": "string"
          },
          "discount_minimum": {
            "description": "The minimum fee discount that will be applied per occurrence.",
            "type": "string"
          }
        }
      },
      "fiskil_banking.BankingFeeDiscountRateV2": {
        "type": "object",
        "properties": {
          "amount_range": {
            "description": "A minimum or maximum fee discount amount where a specific fixed amount is not known until the fee is incurred.",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_banking.BankingFeeDiscountRangeV2"
              }
            ]
          },
          "rate": {
            "description": "The fee rate discount calculated according to the _rateType_.",
            "type": "string"
          },
          "rate_type": {
            "description": "Type of fee rate discount calculation.<ul><li>`BALANCE` A fee rate discount based on a balance</li><li>`FEE` A fee rate discount based on the fee to which the discount is attached</li><li>`INTEREST_ACCRUED` A fee rate discount based on interest accrued</li><li>`TRANSACTION` A fee rate discount based on a transaction.</li></ul>",
            "type": "string"
          }
        }
      },
      "fiskil_banking.BankingFeeRangeV2": {
        "type": "object",
        "properties": {
          "fee_maximum": {
            "description": "The maximum fee that will be charged per occurrence.",
            "type": "string"
          },
          "fee_minimum": {
            "description": "The minimum fee that will be charged per occurrence.",
            "type": "string"
          }
        }
      },
      "fiskil_banking.BankingFeeRateV2": {
        "type": "object",
        "properties": {
          "accrual_frequency": {
            "description": "The indicative frequency with which the fee is calculated on the account if applicable. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax).",
            "type": "string"
          },
          "amount_range": {
            "description": "A minimum or maximum fee amount where a specific fixed amount is not known until the fee is incurred.",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_banking.BankingFeeRangeV2"
              }
            ]
          },
          "rate": {
            "description": "The fee rate calculated according to the _rateType_.",
            "type": "string"
          },
          "rate_type": {
            "description": "Type of fee rate calculation.<ul><li>`BALANCE` A fee rate based on a balance</li><li>`INTEREST_ACCRUED` A fee rate based on interest accrued</li><li>`TRANSACTION` A fee rate based on a transaction.</li></ul>",
            "type": "string"
          }
        }
      },
      "fiskil_banking.BankingInternationalPayee": {
        "type": "object",
        "required": [
          "bank_details",
          "beneficiary_details"
        ],
        "properties": {
          "bank_details": {
            "$ref": "#/components/schemas/fiskil_banking.BankingInternationalPayeeBankDetails"
          },
          "beneficiary_details": {
            "$ref": "#/components/schemas/fiskil_banking.BankingInternationalPayeeBeneficiaryDetails"
          }
        }
      },
      "fiskil_banking.BankingInternationalPayeeBankDetails": {
        "type": "object",
        "required": [
          "account_number",
          "country"
        ],
        "properties": {
          "account_number": {
            "description": "Account Targeted for payment.",
            "type": "string",
            "example": "1234567890"
          },
          "bank_address": {
            "$ref": "#/components/schemas/fiskil_banking.BankingInternationalPayeeBankDetailsBankAddress"
          },
          "beneficiary_bank_bic": {
            "description": "Swift bank code. Aligns with standard [ISO 9362](https://www.iso.org/standard/60390.html).",
            "type": "string",
            "example": "BOFAUS3N"
          },
          "chip_number": {
            "description": "Number for the Clearing House Interbank Payments System.",
            "type": "string",
            "example": "987654321"
          },
          "country": {
            "description": "Country of the recipient institution. A valid [ISO 3166 Alpha-3](https://www.iso.org/iso-3166-country-codes.html) country code.",
            "type": "string",
            "example": "USA"
          },
          "fed_wire_number": {
            "description": "Number for Fedwire payment (Federal Reserve Wire Network).",
            "type": "string",
            "example": "123456789"
          },
          "legal_entity_identifier": {
            "description": "The legal entity identifier (LEI) for the beneficiary. Aligns with [ISO 17442](https://www.iso.org/standard/59771.html).",
            "type": "string",
            "example": "5493001KJTIIGC8Y1R12"
          },
          "routing_number": {
            "description": "International bank routing number.",
            "type": "string",
            "example": "021000021"
          },
          "sort_code": {
            "description": "Sort code used for account identification in some jurisdictions.",
            "type": "string",
            "example": "404040"
          }
        }
      },
      "fiskil_banking.BankingInternationalPayeeBankDetailsBankAddress": {
        "type": "object",
        "required": [
          "address",
          "name"
        ],
        "properties": {
          "address": {
            "description": "Address of the recipient Bank.",
            "type": "string",
            "example": "123 Bank St"
          },
          "name": {
            "description": "Name of the recipient Bank.",
            "type": "string",
            "example": "Bank of America"
          }
        }
      },
      "fiskil_banking.BankingInternationalPayeeBeneficiaryDetails": {
        "type": "object",
        "required": [
          "country"
        ],
        "properties": {
          "country": {
            "description": "Country where the beneficiary resides. A valid [ISO 3166 Alpha-3](https://www.iso.org/iso-3166-country-codes.html) country code.",
            "type": "string",
            "example": "USA"
          },
          "message": {
            "description": "Response message for the payment.",
            "type": "string",
            "example": "Payment for invoice #12345"
          },
          "name": {
            "description": "Name of the beneficiary.",
            "type": "string",
            "example": "Jane Doe"
          }
        }
      },
      "fiskil_banking.BankingProductAdditionalInformationV2": {
        "type": "object",
        "properties": {
          "additional_bundle_uris": {
            "description": "An array of additional bundles for the product, if applicable. To be treated as secondary documents to the _bundle_uri_. Only to be used if there is a primary _bundle_uri_.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_banking.BankingProductAdditionalInformationV2AdditionalInformationUris"
            }
          },
          "additional_eligibility_uris": {
            "description": "An array of additional eligibility rules and criteria for the product, if applicable. To be treated as secondary documents to the _eligibility_uri_. Only to be used if there is a primary _eligibility_uri_.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_banking.BankingProductAdditionalInformationV2AdditionalInformationUris"
            }
          },
          "additional_fees_and_pricing_uris": {
            "description": "An array of additional fees, pricing, discounts, exemptions and bonuses for the product, if applicable. To be treated as secondary documents to the _fees_and_pricing_uri_. Only to be used if there is a primary _fees_and_pricing_uri_.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_banking.BankingProductAdditionalInformationV2AdditionalInformationUris"
            }
          },
          "additional_overview_uris": {
            "description": "An array of additional general overviews for the product or features of the product, if applicable. To be treated as secondary documents to the _overview_uri_. Only to be used if there is a primary _overview_uri_.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_banking.BankingProductAdditionalInformationV2AdditionalInformationUris"
            }
          },
          "additional_terms_uris": {
            "description": "An array of additional terms and conditions for the product, if applicable. To be treated as secondary documents to the _terms_uri_. Only to be used if there is a primary _terms_uri_.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_banking.BankingProductAdditionalInformationV2AdditionalInformationUris"
            }
          },
          "bundle_uri": {
            "description": "Description of a bundle that this product can be part of. Mandatory if _additional_bundle_uris_ includes one or more supporting documents.",
            "type": "string",
            "example": "https://bank.com/bundles"
          },
          "eligibility_uri": {
            "description": "Eligibility rules and criteria for the product. Mandatory if _additional_eligibility_uris_ includes one or more supporting documents.",
            "type": "string",
            "example": "https://bank.com/eligibility"
          },
          "fees_and_pricing_uri": {
            "description": "Description of fees, pricing, discounts, exemptions and bonuses for the product. Mandatory if _additional_fees_and_pricing_uris_ includes one or more supporting documents.",
            "type": "string",
            "example": "https://bank.com/fees"
          },
          "overview_uri": {
            "description": "General overview of the product. Mandatory if _additional_overview_uris_ includes one or more supporting documents.",
            "type": "string",
            "example": "https://bank.com/overview"
          },
          "terms_uri": {
            "description": "Terms and conditions for the product. Mandatory if _additional_terms_uris_ includes one or more supporting documents.",
            "type": "string",
            "example": "https://bank.com/terms"
          }
        }
      },
      "fiskil_banking.BankingProductAdditionalInformationV2AdditionalInformationUris": {
        "type": "object",
        "properties": {
          "additional_info_uri": {
            "description": "The URI describing the additional information.",
            "type": "string",
            "example": "https://bank.com/additional-info"
          },
          "description": {
            "description": "Display text providing more information about the document URI.",
            "type": "string",
            "example": "View more details"
          }
        }
      },
      "fiskil_banking.BankingProductBundle": {
        "type": "object",
        "required": [
          "description",
          "name"
        ],
        "properties": {
          "additional_info": {
            "description": "Display text providing more information on the bundle.",
            "type": "string",
            "example": "Bundle includes a credit card and savings account with discounted fees."
          },
          "additional_info_uri": {
            "description": "Link to a web page with more information on the bundle criteria and benefits.",
            "type": "string",
            "example": "https://bank.com/bundle-info"
          },
          "description": {
            "description": "Description of the bundle.",
            "type": "string",
            "example": "A bundle of products with special discounts"
          },
          "name": {
            "description": "Name of the bundle.",
            "type": "string",
            "example": "Premium Bundle"
          },
          "product_ids": {
            "description": "Array of product IDs for products included in the bundle that are available via the product endpoints. Note that this array is not intended to represent a comprehensive model of the products included in the bundle and some products available for the bundle may not be available via the product reference endpoints.",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "fiskil_banking.BankingProductDiscountEligibilityV2": {
        "type": "object",
        "properties": {
          "additional_info": {
            "description": "Display text providing more information on this eligibility constraint. Whether mandatory or not is dependent on the value of [_discountEligibilityType_](#tocSproductdiscounteligibilitydoc).",
            "type": "string"
          },
          "additional_info_uri": {
            "description": "Link to a web page with more information on this eligibility constraint.",
            "type": "string"
          },
          "additional_value": {
            "description": "Generic field containing additional information relevant to the [_discountEligibilityType_](#tocSproductdiscounteligibilitydoc) specified. Whether mandatory or not is dependent on the value of [_discountEligibilityType_](#tocSproductdiscounteligibilitydoc).",
            "type": "string"
          },
          "discount_eligibility_type": {
            "description": "The type of the specific eligibility constraint for a discount. For further details, refer to [Product Discount Eligibility Types](#tocSproductdiscounteligibilitydoc).",
            "type": "string"
          }
        }
      },
      "fiskil_banking.BankingProductEligibility": {
        "type": "object",
        "required": [
          "eligibility_type"
        ],
        "properties": {
          "additional_info": {
            "description": "Display text providing more information on the eligibility criteria. Mandatory if the field is set to `OTHER`.",
            "type": "string",
            "example": "Only available to individuals with an income greater than $50,000."
          },
          "additional_info_uri": {
            "description": "Link to a web page with more information on this eligibility criteria.",
            "type": "string",
            "example": "https://bank.com/eligibility-info"
          },
          "additional_value": {
            "description": "Generic field containing additional information relevant to the _eligibility_type_ specified. Whether mandatory or not is dependent on the value of _eligibility_type_. For details of different meanings see [Product Eligibility Types](https://consumerdatastandardsaustralia.github.io/standards/#tocSproducteligibilitytypedoc).",
            "type": "string",
            "example": "50000.00"
          },
          "eligibility_type": {
            "description": "The type of eligibility criteria described.",
            "type": "string",
            "enum": [
              "BUSINESS",
              "EMPLOYMENT_STATUS",
              "MAX_AGE",
              "MIN_AGE",
              "MIN_INCOME",
              "MIN_TURNOVER",
              "NATURAL_PERSON",
              "OTHER",
              "PENSION_RECIPIENT",
              "RESIDENCY_STATUS",
              "STAFF",
              "STUDENT"
            ],
            "example": "MIN_INCOME"
          }
        }
      },
      "fiskil_banking.BankingProductV4CardArt": {
        "type": "object",
        "required": [
          "image_uri"
        ],
        "properties": {
          "image_uri": {
            "description": "URI reference to a PNG, JPG or GIF image with proportions defined by ISO 7810 ID-1 and width no greater than 512 pixels. The URI reference may be a link or url-encoded data URI according to [RFC2397](https://www.rfc-editor.org/rfc/rfc2397).",
            "type": "string",
            "example": "https://bank.com/card-art.png"
          },
          "title": {
            "description": "Display label for the specific image.",
            "type": "string",
            "example": "Gold Card Image"
          }
        }
      },
      "fiskil_banking.BankingProductV6CardArt": {
        "type": "object",
        "properties": {
          "card_scheme": {
            "description": "Card scheme available with the account.",
            "type": "string"
          },
          "card_type": {
            "description": "Card type available with the account.",
            "type": "string"
          },
          "image_uri": {
            "description": "URI reference to a PNG, JPG or GIF image with proportions defined by ISO 7810 ID-1 and width no greater than 512 pixels. The URI reference may be a link or url-encoded data URI according to **[[RFC2397]](#nref-RFC2397)**.",
            "type": "string"
          },
          "title": {
            "description": "Display label for the specific image.",
            "type": "string"
          }
        }
      },
      "fiskil_banking.BankingProductV6Constraint": {
        "type": "object",
        "properties": {
          "additional_info": {
            "description": "Display text providing more information on the constraint. Mandatory if the [_constraintType_](#tocSproductconstrainttypedoc) value is `OTHER`.",
            "type": "string"
          },
          "additional_info_uri": {
            "description": "Link to a web page with more information on the constraint.",
            "type": "string"
          },
          "additional_value": {
            "description": "Generic field containing additional information relevant to the [_constraintType_](#tocSproductconstrainttypedoc) specified. Whether mandatory or not is dependent on the value of [_constraintType_](#tocSproductconstrainttypedoc).",
            "type": "string"
          },
          "constraint_type": {
            "description": "The type of constraint described. For further details, refer to [Product Constraint Types](#tocSproductconstrainttypedoc).",
            "type": "string"
          }
        }
      },
      "fiskil_banking.BankingProductV6DepositRate": {
        "type": "object",
        "properties": {
          "additional_info": {
            "description": "Display text providing more information on the rate.",
            "type": "string"
          },
          "additional_info_uri": {
            "description": "Link to a web page with more information on this rate.",
            "type": "string"
          },
          "additional_value": {
            "description": "Generic field containing additional information relevant to the [_depositRateType_](#tocSproductdepositratetypedoc) specified. Whether mandatory or not is dependent on the value of [_depositRateType_](#tocSproductdepositratetypedoc).",
            "type": "string"
          },
          "applicability_conditions": {
            "description": "Applicability conditions for the rate.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_banking.BankingProductV6RateCondition"
            }
          },
          "application_frequency": {
            "description": "The period after which the calculated amount(s) (see _calculationFrequency_) are 'applied' (i.e. debited or credited) to the account. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax). Mandatory if the _applicationType_ value is `PERIODIC`.",
            "type": "string"
          },
          "application_type": {
            "description": "The type of approach used to apply the rate to the account.",
            "type": "string"
          },
          "calculation_frequency": {
            "description": "The period after which the rate is applied to the balance to calculate the amount due for the period. Calculation of the amount is often daily (as balances may change) but accumulated until the total amount is 'applied' to the account (see _applicationFrequency_). Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax).",
            "type": "string"
          },
          "deposit_rate_type": {
            "description": "The type of rate (`FIXED`, `VARIABLE`, `BONUS`, etc.) For further details, refer to [Product Deposit Rate Types](#tocSproductdepositratetypedoc).",
            "type": "string"
          },
          "rate": {
            "description": "The rate to be applied.",
            "type": "string"
          },
          "tiers": {
            "description": "Applicable tiers for this rate.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_banking.BankingProductV6RateTier"
            }
          }
        }
      },
      "fiskil_banking.BankingProductV6Discount": {
        "type": "object",
        "properties": {
          "additional_info": {
            "description": "Display text providing more information on the discount.",
            "type": "string"
          },
          "additional_info_uri": {
            "description": "Link to a web page with more information on this discount.",
            "type": "string"
          },
          "additional_value": {
            "description": "Generic field containing additional information relevant to the [_discountType_](#tocSproductdiscounttypedoc) specified. Whether mandatory or not is dependent on the value of [_discountType_](#tocSproductdiscounttypedoc).",
            "type": "string"
          },
          "description": {
            "description": "A description of the discount.",
            "type": "string"
          },
          "discount_method_u_type": {
            "description": "Reference to the applicable fee discount method structure.",
            "type": "string"
          },
          "discount_type": {
            "description": "The type of discount. For further details, refer to [Product Discount Types](#tocSproductdiscounttypedoc).",
            "type": "string"
          },
          "eligibility": {
            "description": "Constraints that apply to discount eligibility. Mandatory if _discountType_ is `ELIGIBILITY_ONLY`.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_banking.BankingProductDiscountEligibilityV2"
            }
          },
          "fixed_amount": {
            "description": "Mandatory if the _discountMethodUType_ value is `fixedAmount`. Where the discount is a specific amount.",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_banking.BankingFeeDiscountAmountV2"
              }
            ]
          },
          "rate_based": {
            "description": "Mandatory if the _discountMethodUType_ value is `rateBased`. Where the discount is based on a type of rate. Unless noted in _additionalInfo_, assumes the application and calculation frequency are the same as the corresponding fee.",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_banking.BankingFeeDiscountRateV2"
              }
            ]
          }
        }
      },
      "fiskil_banking.BankingProductV6Feature": {
        "type": "object",
        "properties": {
          "additional_info": {
            "description": "Display text providing more information on the feature. Mandatory if [_featureType_](#tocSproductfeaturetypedoc) is set to `OTHER`.",
            "type": "string"
          },
          "additional_info_uri": {
            "description": "Link to a web page with more information on this feature.",
            "type": "string"
          },
          "additional_value": {
            "description": "Generic field containing additional information relevant to the [_featureType_](#tocSproductfeaturetypedoc) specified. Whether mandatory or not is dependent on the value of the [_featureType_](#tocSproductfeaturetypedoc).",
            "type": "string"
          },
          "feature_type": {
            "description": "The type of feature described. For further details, refer to [Product Feature Types](#tocSproductfeaturetypedoc).",
            "type": "string"
          }
        }
      },
      "fiskil_banking.BankingProductV6Fee": {
        "type": "object",
        "properties": {
          "additional_info": {
            "description": "Display text providing more information on the fee. Mandatory if the [_feeType_](#tocSproductfeetypedoc) value is `OTHER`.",
            "type": "string"
          },
          "additional_info_uri": {
            "description": "Link to a web page with more information on this fee.",
            "type": "string"
          },
          "additional_value": {
            "description": "Generic field containing additional information relevant to the [_feeType_](#tocSproductfeetypedoc) specified. Whether mandatory or not is dependent on the value of [_feeType_](#tocSproductfeetypedoc).",
            "type": "string"
          },
          "currency": {
            "description": "The currency the fee will be charged in. Assumes `AUD` if absent.",
            "type": "string"
          },
          "discounts": {
            "description": "An optional list of discounts to this fee that may be available.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_banking.BankingProductV6Discount"
            }
          },
          "fee_cap": {
            "description": "The cap amount if multiple occurrences of the fee are capped to a limit.",
            "type": "string"
          },
          "fee_cap_period": {
            "description": "Specifies a duration over which multiple occurrences of the fee will be capped. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax).",
            "type": "string"
          },
          "fee_method_u_type": {
            "description": "Reference to the applicable fee charging method structure.",
            "type": "string"
          },
          "fee_type": {
            "description": "The type of fee. For further details, refer to [Product Fee Types](#tocSproductfeetypedoc).",
            "type": "string"
          },
          "fixed_amount": {
            "description": "Mandatory if the _feeMethodUType_ value is `fixedAmount`. Where the fee is a specific amount.",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_banking.BankingFeeAmountV2"
              }
            ]
          },
          "name": {
            "description": "The fee name.",
            "type": "string"
          },
          "rate_based": {
            "description": "Mandatory if the _feeMethodUType_ value is `rateBased`. Where the fee is based on a type of rate.",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_banking.BankingFeeRateV2"
              }
            ]
          },
          "variable": {
            "description": "Mandatory if the _feeMethodUType_ value is `variable`. Where the amount or rate may not be known until the fee is incurred.",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_banking.BankingFeeRangeV2"
              }
            ]
          }
        }
      },
      "fiskil_banking.BankingProductV6LendingRate": {
        "type": "object",
        "properties": {
          "additional_info": {
            "description": "Display text providing more information on the rate.",
            "type": "string"
          },
          "additional_info_uri": {
            "description": "Link to a web page with more information on this rate.",
            "type": "string"
          },
          "additional_value": {
            "description": "Generic field containing additional information relevant to the [_lendingRateType_](#tocSproductlendingratetypedoc) specified. Whether mandatory or not is dependent on the value of [_lendingRateType_](#tocSproductlendingratetypedoc).",
            "type": "string"
          },
          "applicability_conditions": {
            "description": "Applicability conditions for the rate.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_banking.BankingProductV6RateCondition"
            }
          },
          "application_frequency": {
            "description": "The period after which the calculated amount(s) (see _calculationFrequency_) are 'applied' (i.e. debited or credited) to the account. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax). Mandatory if the _applicationType_ value is `PERIODIC`.",
            "type": "string"
          },
          "application_type": {
            "description": "The type of approach used to apply the rate to the account.",
            "type": "string"
          },
          "calculation_frequency": {
            "description": "The period after which the rate is applied to the balance to calculate the amount due for the period. Calculation of the amount is often daily (as balances may change) but accumulated until the total amount is 'applied' to the account (see _applicationFrequency_). Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax).",
            "type": "string"
          },
          "comparison_rate": {
            "description": "A comparison rate equivalent for this rate.",
            "type": "string"
          },
          "interest_payment_due": {
            "description": "When loan payments are due to be paid within each period. The investment benefit of earlier payments affect the rate that can be offered.",
            "type": "string"
          },
          "lending_rate_type": {
            "description": "The type of rate (`FIXED`, `VARIABLE`, etc.) For further details, refer to [Product Lending Rate Types](#tocSproductlendingratetypedoc).",
            "type": "string"
          },
          "loan_purpose": {
            "description": "The reason for taking out the loan.",
            "type": "string"
          },
          "rate": {
            "description": "The rate to be applied.",
            "type": "string"
          },
          "repayment_type": {
            "description": "Option in place for repayments.",
            "type": "string"
          },
          "tiers": {
            "description": "Applicable tiers for this rate.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_banking.BankingProductV6RateTier"
            }
          }
        }
      },
      "fiskil_banking.BankingProductV6RateCondition": {
        "type": "object",
        "properties": {
          "additional_info": {
            "description": "Display text providing more information on the condition. Mandatory if the [_rateApplicabilityType_](#tocSbankingproductrateconditiondoc) value is `OTHER`.",
            "type": "string"
          },
          "additional_info_uri": {
            "description": "Link to a web page with more information on this condition.",
            "type": "string"
          },
          "additional_value": {
            "description": "Generic field containing additional information relevant to the _rateApplicabilityType_ specified. Whether mandatory or not is dependent on the value of [_rateApplicabilityType_](#tocSbankingproductrateconditiondoc).",
            "type": "string"
          },
          "rate_applicability_type": {
            "description": "Category of applicability condition associated with the rate. For more information refer to [Rate and Tier Applicability Types](#tocSbankingproductrateconditiondoc).",
            "type": "string"
          }
        }
      },
      "fiskil_banking.BankingProductV6RateTier": {
        "type": "object",
        "properties": {
          "additional_info": {
            "description": "Display text providing more information on the rate tier.",
            "type": "string"
          },
          "additional_info_uri": {
            "description": "Link to a web page with more information on this rate tier.",
            "type": "string"
          },
          "applicability_conditions": {
            "description": "Applicability conditions for the rate tier.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_banking.BankingProductV6RateCondition"
            }
          },
          "maximum_value": {
            "description": "The number of _unitOfMeasure_ units that form the upper bound of the tier or band. For a tier with a discrete value (as opposed to a range of values e.g., 1 month) this must be the same as _minimumValue_. Where this is the same as the _minimumValue_ value of the next-higher tier the referenced tier should be exclusive of this value. For example a term deposit of 2 months falls into the upper tier of the following tiers: (1 – 2 months, 2 – 3 months). If absent the tier's range has no upper bound.",
            "type": "string"
          },
          "minimum_value": {
            "description": "The number of _unitOfMeasure_ units that form the lower bound of the tier. The tier should be inclusive of this value.",
            "type": "string"
          },
          "name": {
            "description": "A display name for the tier.",
            "type": "string"
          },
          "rate_application_method": {
            "description": "The method used to calculate the amount to be applied using one or more tiers. A single rate may be applied to the entire balance or each applicable tier rate is applied to the portion of the balance that falls into that tier (referred to as 'bands' or 'steps').",
            "type": "string"
          },
          "unit_of_measure": {
            "description": "The unit of measure that applies to the _minimumValue_ and _maximumValue_ values, e.g.,<ul><li>`DOLLAR` for a dollar amount (with values in AmountString format)<li>`PERCENT` for Loan-to-Value Ratio or LVR (with values in RateString format)<li>`MONTH` or `DAY` for a period representing a discrete number of months or days for a fixed-term deposit or loan (with values as a string containing a positive integer).</ul>",
            "type": "string"
          }
        }
      },
      "fiskil_banking.BankingScheduledPaymentFrom": {
        "type": "object",
        "required": [
          "account_id"
        ],
        "properties": {
          "account_id": {
            "description": "ID of the account that is the source of funds for the payment.",
            "type": "string",
            "example": "123456789"
          }
        }
      },
      "fiskil_banking.BankingScheduledPaymentInterval": {
        "type": "object",
        "required": [
          "interval"
        ],
        "properties": {
          "day_in_interval": {
            "description": "Uses an interval to define the ordinal day within the interval defined by the interval field on which the payment occurs. If the resulting duration is 0 days in length or larger than the number of days in the interval then the payment will occur on the last day of the interval. A duration of 1 day indicates the first day of the interval. If absent the assumed value is `P1D`. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax) with components less than a day in length ignored. The first day of a week is considered to be Monday.",
            "type": "string",
            "example": "P1D"
          },
          "interval": {
            "description": "An interval for the payment. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax) with components less than a day in length ignored. This duration defines the period between payments starting with _next_payment_date_.",
            "type": "string",
            "example": "P1W"
          }
        }
      },
      "fiskil_banking.BankingScheduledPaymentRecurrence": {
        "type": "object",
        "required": [
          "recurrence_utype"
        ],
        "properties": {
          "event_based": {
            "description": "Indicates that the schedule of payments is defined according to an external event that cannot be predetermined. Mandatory if `recurrence_utype` is set to `eventBased`.",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_banking.BankingScheduledPaymentRecurrenceEventBased"
              }
            ]
          },
          "interval_schedule": {
            "description": "Indicates that the schedule of payments is defined by a series of intervals. Mandatory if `recurrence_utype` is set to `intervalSchedule`.",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_banking.BankingScheduledPaymentRecurrenceIntervalSchedule"
              }
            ]
          },
          "last_week_day": {
            "description": "Indicates that the schedule of payments is defined according to the last occurrence of a specific weekday in an interval. Mandatory if `recurrence_utype` is set to `lastWeekDay`.",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_banking.BankingScheduledPaymentRecurrenceLastWeekday"
              }
            ]
          },
          "next_payment_date": {
            "description": "The date of the next payment under the recurrence schedule.",
            "type": "string",
            "example": "2024-09-30"
          },
          "once_off": {
            "description": "Indicates that the payment is a once off payment on a specific future date. Mandatory if `recurrence_utype` is set to `onceOff`.",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_banking.BankingScheduledPaymentRecurrenceOnceOff"
              }
            ]
          },
          "recurrence_utype": {
            "description": "The type of recurrence used to define the schedule.",
            "type": "string",
            "enum": [
              "eventBased",
              "intervalSchedule",
              "lastWeekDay",
              "onceOff"
            ],
            "example": "intervalSchedule"
          }
        }
      },
      "fiskil_banking.BankingScheduledPaymentRecurrenceEventBased": {
        "type": "object",
        "required": [
          "description"
        ],
        "properties": {
          "description": {
            "description": "Description of the event and conditions that will result in the payment. Expected to be formatted for display to a customer.",
            "type": "string",
            "example": "Payment due when invoice received"
          }
        }
      },
      "fiskil_banking.BankingScheduledPaymentRecurrenceIntervalSchedule": {
        "type": "object",
        "required": [
          "intervals"
        ],
        "properties": {
          "final_payment_date": {
            "description": "The limit date after which no more payments should be made using this schedule. If both _final_payment_date_ and _payments_remaining_ are present then payments will stop according to the most constraining value. If neither field is present the payments will continue indefinitely.",
            "type": "string",
            "example": "2025-12-31"
          },
          "intervals": {
            "description": "An array of interval objects defining the payment schedule. Each entry in the array is additive, in that it adds payments to the overall payment schedule. If multiple intervals result in a payment on the same day then only one payment will be made. Must have at least one entry.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_banking.BankingScheduledPaymentInterval"
            }
          },
          "non_business_day_treatment": {
            "description": "Enumerated field giving the treatment where a scheduled payment date is not a business day. If absent assumed to be `ON`.<ul><li>`AFTER` - If a scheduled payment date is a non-business day the payment will be made on the first business day after the scheduled payment date.<li>`BEFORE` - If a scheduled payment date is a non-business day the payment will be made on the first business day before the scheduled payment date.<li>`ON` - If a scheduled payment date is a non-business day the payment will be made on that day regardless.<li>`ONLY` - Payments only occur on business days. If a scheduled payment date is a non-business day the payment will be ignored.</ul>",
            "type": "string",
            "enum": [
              "AFTER",
              "BEFORE",
              "ON",
              "ONLY"
            ],
            "example": "AFTER"
          },
          "payments_remaining": {
            "description": "Indicates the number of payments remaining in the schedule. If both _final_payment_date_ and _payments_remaining_ are present then payments will stop according to the most constraining value, If neither field is present the payments will continue indefinitely.",
            "type": "integer",
            "example": 5
          }
        }
      },
      "fiskil_banking.BankingScheduledPaymentRecurrenceLastWeekday": {
        "type": "object",
        "required": [
          "interval",
          "last_week_day"
        ],
        "properties": {
          "final_payment_date": {
            "description": "The limit date after which no more payments should be made using this schedule. If both _final_payment_date_ and _payments_remaining_ are present then payments will stop according to the most constraining value. If neither field is present the payments will continue indefinitely.",
            "type": "string",
            "example": "2025-12-31"
          },
          "interval": {
            "description": "The interval for the payment. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax) with components less than a day in length ignored. This duration defines the period between payments starting with _next_payment_date_.",
            "type": "string",
            "example": "P1M"
          },
          "last_week_day": {
            "description": "The weekDay specified. The payment will occur on the last occurrence of this weekday in the interval.",
            "type": "string",
            "enum": [
              "FRI",
              "MON",
              "SAT",
              "SUN",
              "THU",
              "TUE",
              "WED"
            ],
            "example": "FRI"
          },
          "non_business_day_treatment": {
            "description": "Enumerated field giving the treatment where a scheduled payment date is not a business day. If absent assumed to be `ON`.<ul><li>`AFTER` - If a scheduled payment date is a non-business day the payment will be made on the first business day after the scheduled payment date.<li>`BEFORE` - If a scheduled payment date is a non-business day the payment will be made on the first business day before the scheduled payment date.<li>`ON` - If a scheduled payment date is a non-business day the payment will be made on that day regardless.<li>`ONLY` - Payments only occur on business days. If a scheduled payment date is a non-business day the payment will be ignored.</ul>",
            "type": "string",
            "enum": [
              "AFTER",
              "BEFORE",
              "ON",
              "ONLY"
            ],
            "example": "ON"
          },
          "payments_remaining": {
            "description": "Indicates the number of payments remaining in the schedule. If both _final_payment_date_ and _payments_remaining_ are present then payments will stop according to the most constraining value. If neither field is present the payments will continue indefinitely.",
            "type": "integer",
            "example": 10
          }
        }
      },
      "fiskil_banking.BankingScheduledPaymentRecurrenceOnceOff": {
        "type": "object",
        "required": [
          "payment_date"
        ],
        "properties": {
          "payment_date": {
            "description": "The scheduled date for the once off payment.",
            "type": "string",
            "example": "2024-12-25"
          }
        }
      },
      "fiskil_banking.BankingScheduledPaymentSetV2": {
        "type": "object",
        "required": [
          "to"
        ],
        "properties": {
          "amount": {
            "description": "The amount of the next payment if known. Mandatory unless the _is_amount_calculated_ field is set to `true`. Must be zero or positive if present.",
            "type": "string",
            "example": "100.00"
          },
          "currency": {
            "description": "The currency for the payment. `AUD` assumed if not present.",
            "type": "string",
            "example": "AUD"
          },
          "is_amount_calculated": {
            "description": "Flag indicating whether the amount of the payment is calculated based on the context of the event. For instance a payment to reduce the balance of a credit card to zero. If absent then `false` is assumed.",
            "type": "boolean",
            "example": false
          },
          "to": {
            "description": "Object containing details of the destination of the payment. Used to specify a variety of payment destination types.",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_banking.BankingScheduledPaymentToV2"
              }
            ]
          }
        }
      },
      "fiskil_banking.BankingScheduledPaymentToV2": {
        "type": "object",
        "required": [
          "to_utype"
        ],
        "properties": {
          "account_id": {
            "description": "Present if _to_utype_ is set to `account_id`. Indicates that the payment is to another account that is accessible under the current consent.",
            "type": "string",
            "example": "987654321"
          },
          "biller": {
            "$ref": "#/components/schemas/fiskil_banking.BankingBillerPayee"
          },
          "digital_wallet": {
            "$ref": "#/components/schemas/fiskil_banking.BankingDigitalWalletPayee"
          },
          "domestic": {
            "$ref": "#/components/schemas/fiskil_banking.BankingDomesticPayee"
          },
          "international": {
            "$ref": "#/components/schemas/fiskil_banking.BankingInternationalPayee"
          },
          "nickname": {
            "description": "The short display name of the payee as provided by the customer unless _to_utype_ is set to `payee_id`. Where a customer has not provided a nickname, a display name derived by the bank for payee should be provided that is consistent with existing digital banking channels.",
            "type": "string",
            "example": "John Doe"
          },
          "payee_id": {
            "description": "Present if _to_utype_ is set to `payee_id`. Indicates that the payment is to registered payee that can be accessed using the payee endpoint. If the Bank Payees scope has not been consented to then a _payee_id_ should not be provided and the full payee details should be provided instead.",
            "type": "string",
            "example": "PAYEE123456"
          },
          "payee_reference": {
            "description": "The reference for the transaction, if applicable, that will be provided by the originating institution for the specific payment. If not empty, it overrides the value provided at the BankingScheduledPayment level.",
            "type": "string",
            "example": "PAYEE_REF123"
          },
          "to_utype": {
            "description": "The type of object provided that specifies the destination of the funds for the payment.",
            "type": "string",
            "enum": [
              "accountId",
              "biller",
              "digitalWallet",
              "domestic",
              "international",
              "payeeId"
            ],
            "example": "accountId"
          }
        }
      },
      "fiskil_banking.BankingTermDepositAccount": {
        "type": "object",
        "required": [
          "lodgement_date",
          "maturity_date",
          "maturity_instructions"
        ],
        "properties": {
          "lodgement_date": {
            "description": "The lodgement date of the original deposit. Formatted as a RFC3339 Date",
            "type": "string",
            "example": "2024-09-09"
          },
          "maturity_amount": {
            "description": "Amount to be paid upon maturity. If absent it implies the amount to paid is variable and cannot currently be calculated.",
            "type": "string",
            "example": "500.00"
          },
          "maturity_currency": {
            "description": "If absent assumes `AUD`.",
            "type": "string",
            "default": "AUD",
            "example": "AUD"
          },
          "maturity_date": {
            "description": "Maturity date for the term deposit. Formatted as a RFC3339 Date",
            "type": "string",
            "example": "2025-09-09"
          },
          "maturity_instructions": {
            "description": "Current instructions on action to be taken at maturity. This includes default actions that may be specified in the terms and conditions for the product e.g., roll-over to the same term and frequency of interest payments.",
            "type": "string",
            "enum": [
              "HOLD_ON_MATURITY",
              "PAID_OUT_AT_MATURITY",
              "ROLLED_OVER"
            ],
            "example": "ROLLED_OVER"
          }
        }
      },
      "fiskil_banking.BankingTransactionDetailAllOfExtendedDataV2": {
        "type": "object",
        "properties": {
          "extension_u_type": {
            "description": "Optional extended data specific to transactions originated via NPP.",
            "type": "string",
            "enum": [
              "x2p101Payload",
              "nppPayload"
            ],
            "example": "x2p101Payload"
          },
          "npp_payload": {
            "description": "Payload specific to NPP overlay service.",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_banking.BankingTransactionDetailV2AllOfExtendedDataNppPayload"
              }
            ]
          },
          "payee": {
            "description": "Label of the target PayID. Mandatory for an outbound payment. The name assigned to the BSB/Account Number or PayID (by the owner of the PayID).",
            "type": "string",
            "example": "PayID123"
          },
          "payer": {
            "description": "Label of the originating payer. Mandatory for inbound payment.",
            "type": "string",
            "example": "John Doe"
          }
        }
      },
      "fiskil_banking.BankingTransactionDetailV2AllOfExtendedDataNppPayload": {
        "type": "object",
        "required": [
          "service"
        ],
        "properties": {
          "end_to_end_id": {
            "description": "EndToEndId An end to end ID for the payment created at initiation.",
            "type": "string"
          },
          "extended_description": {
            "description": "ExtendedDescription An extended string description. Required if the _extensionUType_ value is `nppPayload`.",
            "type": "string"
          },
          "purpose_code": {
            "description": "PurposeCode Purpose of the payment. Format is defined by the NPP standards for the NPP overlay services including Osko (X2P1).",
            "type": "string"
          },
          "service": {
            "description": "Service Identifier of the applicable overlay service. The _service_ is used in conjunction with the _serviceVersion_. See [here](#npp-services) for more details.",
            "type": "string",
            "enum": [
              "X2P1",
              "IFTI",
              "BSCT",
              "CATSCT"
            ],
            "example": "X2P1"
          },
          "service_version": {
            "description": "ServiceVersion Two-digit NPP service overlay version with leading zero.",
            "type": "string",
            "example": "01"
          }
        }
      },
      "fiskil_banking.CategoryOverride": {
        "type": "object",
        "properties": {
          "fiskil_transaction_id": {
            "description": "the unique identifier (fiskil_id) of the transaction.",
            "type": "string",
            "example": "bank_tx_abcdef1234"
          },
          "secondary_category": {
            "description": "secondary category to override the transaction with. Must be a valid secondary category from the Fiskil taxonomy.",
            "type": "string",
            "example": "INCOME_BUSINESS"
          }
        }
      },
      "fiskil_banking.CommonPAFAddress": {
        "type": "object",
        "required": [
          "locality_name",
          "postcode",
          "state"
        ],
        "properties": {
          "building_name_1": {
            "description": "Building/Property name 1.",
            "type": "string",
            "example": "Castle"
          },
          "building_name_2": {
            "description": "Building/Property name 2.",
            "type": "string"
          },
          "dpid": {
            "description": "Unique identifier for an address as defined by Australia Post. Also known as Delivery Point Identifier.",
            "type": "string",
            "example": "34567890"
          },
          "flat_unit_number": {
            "description": "Unit number (including suffix, if applicable).",
            "type": "string",
            "example": "12B"
          },
          "flat_unit_type": {
            "description": "Type of flat or unit for the address.",
            "type": "string",
            "example": "U"
          },
          "floor_level_number": {
            "description": "Floor or level number (including alpha characters).",
            "type": "string",
            "example": "7"
          },
          "floor_level_type": {
            "description": "Type of floor or level for the address.",
            "type": "string",
            "example": "FL"
          },
          "locality_name": {
            "description": "Full name of locality.",
            "type": "string",
            "example": "SYDNEY"
          },
          "lot_number": {
            "description": "Allotment number for the address.",
            "type": "string",
            "example": "42"
          },
          "postal_delivery_number": {
            "description": "Postal delivery number if the address is a postal delivery type.",
            "type": "integer",
            "example": 2
          },
          "postal_delivery_number_prefix": {
            "description": "Postal delivery number prefix related to the postal delivery number.",
            "type": "string",
            "example": "N"
          },
          "postal_delivery_number_suffix": {
            "description": "Postal delivery number suffix related to the postal delivery number.",
            "type": "string",
            "example": "A"
          },
          "postal_delivery_type": {
            "description": "Postal delivery type. (e.g., PO BOX). Valid enumeration defined by Australia Post PAF code file.",
            "type": "string",
            "example": "PO BOX"
          },
          "postcode": {
            "description": "Postcode for the locality.",
            "type": "string",
            "example": "2000"
          },
          "state": {
            "description": "State in which the address belongs. Valid enumeration defined by Australia Post PAF code file [State Type Abbreviation](https://auspost.com.au/content/dam/auspost_corp/media/documents/australia-post-data-guide.pdf). `NSW`, `QLD`, `VIC`, `NT`, `WA`, `SA`, `TAS`, `ACT`, `AAT`.",
            "type": "string",
            "example": "NSW"
          },
          "street_name": {
            "description": "The name of the street.",
            "type": "string",
            "example": "WALLABY"
          },
          "street_suffix": {
            "description": "The street type suffix. Valid enumeration defined by Australia Post PAF code file.",
            "type": "string",
            "example": "S"
          },
          "street_type": {
            "description": "The street type. Valid enumeration defined by Australia Post PAF code file.",
            "type": "string",
            "example": "WAY"
          },
          "thoroughfare_number1": {
            "description": "Thoroughfare number for a property (first number in a property ranged address).",
            "type": "integer",
            "example": 40
          },
          "thoroughfare_number1_suffix": {
            "description": "Suffix for the thoroughfare number. Only relevant is _thoroughfareNumber1_ is populated.",
            "type": "string",
            "example": "A"
          },
          "thoroughfare_number2": {
            "description": "Second thoroughfare number (only used if the property has a ranged address, e.g., 23-25).",
            "type": "integer",
            "example": 44
          },
          "thoroughfare_number2_suffix": {
            "description": "Suffix for the second thoroughfare number. Only relevant is _thoroughfareNumber2_ is populated.",
            "type": "string",
            "example": "A"
          }
        }
      },
      "fiskil_banking.CommonPhysicalAddress": {
        "type": "object",
        "required": [
          "address_u_type"
        ],
        "properties": {
          "address_u_type": {
            "description": "The type of address object present.",
            "type": "string",
            "enum": [
              "simple",
              "paf"
            ],
            "example": "simple"
          },
          "paf": {
            "description": "Australian address formatted according to the file format defined by the [PAF file format](https://auspost.com.au/content/dam/auspost_corp/media/documents/australia-post-data-guide.pdf).",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_banking.CommonPAFAddress"
              }
            ]
          },
          "simple": {
            "description": "A structure with a basic definition of the address",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_banking.CommonSimpleAddress"
              }
            ]
          }
        }
      },
      "fiskil_banking.CommonSimpleAddress": {
        "type": "object",
        "required": [
          "address_line1",
          "city",
          "state"
        ],
        "properties": {
          "address_line1": {
            "description": "First line of the standard address object.",
            "type": "string",
            "example": "42 Wallaby Way"
          },
          "address_line2": {
            "description": "Second line of the standard address object.",
            "type": "string"
          },
          "address_line3": {
            "description": "Third line of the standard address object.",
            "type": "string"
          },
          "city": {
            "description": "Name of the city or locality.",
            "type": "string",
            "example": "SYDNEY"
          },
          "country": {
            "description": "A valid [ISO 3166 Alpha-3](https://www.iso.org/iso-3166-country-codes.html) country code. Australia (`AUS`) is assumed if country is not present.",
            "type": "string",
            "example": "AUS"
          },
          "mailing_name": {
            "description": "Name of the individual or business formatted for inclusion in an address used for physical mail.",
            "type": "string",
            "example": "Shiny Dental"
          },
          "postcode": {
            "description": "Mandatory for Australian addresses.",
            "type": "string",
            "example": "2000"
          },
          "state": {
            "description": "Free text if the country is not Australia. If country is Australia then must be one of the values defined by the [State Type Abbreviation](https://auspost.com.au/content/dam/auspost_corp/media/documents/australia-post-data-guide.pdf) in the PAF file format. `NSW`, `QLD`, `VIC`, `NT`, `WA`, `SA`, `TAS`, `ACT`, `AAT`.",
            "type": "string",
            "example": "NSW"
          }
        }
      },
      "fiskil_banking.DirectDebit": {
        "type": "object",
        "required": [
          "account_id",
          "arrangement_id",
          "authorised_entity",
          "fiskil_id",
          "institution_id"
        ],
        "properties": {
          "account_id": {
            "description": "A unique ID of the bank account that this debit draws from.",
            "type": "string",
            "example": "123456789"
          },
          "arrangement_id": {
            "description": "The ID of the CDR Arrangement that was used to fetch this direct debit",
            "type": "string",
            "example": "90bfd779-e8eb-4e9f-87b3-5191ba7332c2"
          },
          "authorised_entity": {
            "description": "The entity authorized for this direct debit.",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_banking.BankingAuthorisedEntity"
              }
            ]
          },
          "fiskil_id": {
            "description": "The Fiskil identifier for this direct debit",
            "type": "string",
            "example": "bank_dd_12345abcdef"
          },
          "institution_id": {
            "description": "The Fiskil identifier for the institution that this direct debit is from",
            "type": "string",
            "example": "40"
          },
          "last_debit_amount": {
            "description": "The amount of the last debit executed under this authorisation.",
            "type": "string",
            "example": "100.00"
          },
          "last_debit_date_time": {
            "description": "The date and time of the last debit executed under this authorisation.",
            "type": "string",
            "example": "2024-09-10T15:30:00Z"
          }
        }
      },
      "fiskil_banking.DirectDebitsBody": {
        "type": "object",
        "required": [
          "direct_debits"
        ],
        "properties": {
          "direct_debits": {
            "description": "A list of direct debits the end user has set up",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_banking.DirectDebit"
            }
          },
          "links": {
            "description": "Links to be used for pagination",
            "allOf": [
              {
                "$ref": "#/components/schemas/httputil.Links"
              }
            ]
          }
        }
      },
      "fiskil_banking.IncomeBody": {
        "type": "object",
        "properties": {
          "income_sources": {
            "description": "A list of income sources",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_banking.IncomeSource"
            }
          },
          "income_summary": {
            "description": "The income summary",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_banking.IncomeSummary"
              }
            ]
          }
        }
      },
      "fiskil_banking.IncomeSource": {
        "type": "object",
        "properties": {
          "account_id": {
            "description": "The account identifier for the associated bank account",
            "type": "string",
            "example": "acc_1234"
          },
          "category": {
            "description": "The income category. For a full list of categories, see the values for secondary_category in the Fiskil taxonomy",
            "type": "string",
            "example": "INCOME_SALARY"
          },
          "currency": {
            "description": "The currency",
            "type": "string",
            "example": "AUD"
          },
          "income_frequency": {
            "description": "The income frequency as determined by time series analysis of all payments for an income source.",
            "allOf": [
              {
                "$ref": "#/components/schemas/banking.IncomeFrequency"
              }
            ],
            "example": "MONTHLY"
          },
          "income_total": {
            "description": "The total income value",
            "type": "string",
            "example": "17650.00"
          },
          "institution_id": {
            "description": "The institution identifier for the associated bank account",
            "type": "string",
            "example": "1"
          },
          "period_from": {
            "description": "The date of the earliest income payment for this income source",
            "type": "string",
            "example": "2025-05-08"
          },
          "period_to": {
            "description": "The date of the most recent income payment for this income source",
            "type": "string",
            "example": "2025-07-08"
          },
          "total_transactions": {
            "description": "The total number of transactions",
            "type": "integer",
            "example": 3
          },
          "transactions": {
            "description": "A complete list of bank transactions for this income source",
            "type": "array",
            "items": {}
          }
        }
      },
      "fiskil_banking.IncomeSummary": {
        "type": "object",
        "properties": {
          "monthly_avg": {
            "description": "A list of monthly average, or mean, income also per currency",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/banking.IncomeMonthlyAvg"
            }
          },
          "monthly_median": {
            "description": "A list of monthly median income per currency",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/banking.IncomeMonthlyMedian"
            }
          },
          "period_from": {
            "description": "The date of the earliest income payment",
            "type": "string",
            "example": "2025-05-08"
          },
          "period_to": {
            "description": "The date of the most recent income payment",
            "type": "string",
            "example": "2025-07-08"
          },
          "total": {
            "description": "A list of income totals per currency",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_banking.IncomeTotal"
            }
          },
          "total_transactions": {
            "description": "The total number of transactions",
            "type": "integer",
            "example": 3
          }
        }
      },
      "fiskil_banking.IncomeTotal": {
        "type": "object",
        "properties": {
          "currency": {
            "description": "The currency",
            "type": "string",
            "example": "AUD"
          },
          "income_total": {
            "description": "The total income value",
            "type": "string",
            "example": "17650.00"
          }
        }
      },
      "fiskil_banking.LastUpdatedEntry": {
        "type": "object",
        "properties": {
          "account_id": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        }
      },
      "fiskil_banking.Meta": {
        "type": "object",
        "properties": {
          "last_updated": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_banking.LastUpdatedEntry"
            }
          }
        }
      },
      "fiskil_banking.Payee": {
        "type": "object",
        "required": [
          "arrangement_id",
          "fiskil_id",
          "institution_id",
          "nickname",
          "payee_id",
          "payee_u_type",
          "type"
        ],
        "properties": {
          "arrangement_id": {
            "description": "The ID of the CDR arrangement this payee was fetched under",
            "type": "string",
            "example": "70c90432-e8f4-40e0-b1a6-4f2b52a439a7"
          },
          "biller": {
            "description": "BPay details for the payee",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_banking.BankingBillerPayee"
              }
            ]
          },
          "creation_date": {
            "description": "The date the payee was created by the customer.",
            "type": "string",
            "example": "2023-09-10"
          },
          "description": {
            "description": "A description of the payee provided by the customer.",
            "type": "string",
            "example": "Monthly rent payment"
          },
          "digital_wallet": {
            "description": "Digital Wallet details for the payee",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_banking.BankingDigitalWalletPayee"
              }
            ]
          },
          "domestic": {
            "description": "Domestic bank transfer details for the payee",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_banking.BankingDomesticPayee"
              }
            ]
          },
          "fiskil_id": {
            "description": "The Fiskil identifier for this payee",
            "type": "string",
            "example": "bank_payee_abcdef"
          },
          "institution_id": {
            "description": "The Fiskil identifier for the institution providing this data",
            "type": "string",
            "example": "2"
          },
          "international": {
            "description": "International bank transfer details for the payee",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_banking.BankingInternationalPayee"
              }
            ]
          },
          "nickname": {
            "description": "The short display name of the payee as provided by the customer. Where a customer has not provided a nickname, a display name derived by the bank for the payee consistent with existing digital banking channels.",
            "type": "string",
            "example": "Flatmate"
          },
          "payee_id": {
            "description": "The institution provided ID for the payee",
            "type": "string",
            "example": "payee-123"
          },
          "payee_u_type": {
            "description": "Defines the kind of payee this payee is. Depending on the value, you will find further details in the corresponding field. i.e. a value of digitalWallet implies the digital_wallet field will contain more information",
            "type": "string",
            "enum": [
              "biller",
              "digitalWallet",
              "domestic",
              "international"
            ],
            "example": "domestic"
          },
          "type": {
            "description": "The type of payee. DOMESTIC means a registered payee for domestic payments including NPP. INTERNATIONAL means a registered payee for international payments. BILLER means a registered payee for BPAY. DIGITAL_WALLET means a registered payee for a bank's digital wallet.",
            "type": "string",
            "enum": [
              "DOMESTIC",
              "INTERNATIONAL",
              "BILLER",
              "DIGITAL_WALLET"
            ],
            "example": "DOMESTIC"
          }
        }
      },
      "fiskil_banking.PayeesBody": {
        "type": "object",
        "required": [
          "payees"
        ],
        "properties": {
          "payees": {
            "description": "A list of Payees for the given end user",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_banking.Payee"
            },
            "x-order": "1"
          },
          "links": {
            "description": "Links to be used for pagination",
            "allOf": [
              {
                "$ref": "#/components/schemas/httputil.Links"
              }
            ],
            "x-order": "2"
          }
        }
      },
      "fiskil_banking.Product": {
        "type": "object",
        "required": [
          "brand",
          "description",
          "is_tailored",
          "last_updated",
          "name",
          "product_category",
          "product_id"
        ],
        "properties": {
          "additional_information": {
            "description": "Object that contains links to additional information on specific topics.",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_banking.BankingProductAdditionalInformationV2"
              }
            ]
          },
          "application_uri": {
            "description": "A link to an application web page where this product can be applied for.",
            "type": "string",
            "example": "https://bank.com/apply"
          },
          "brand": {
            "description": "A label of the brand for the product. Able to be used for filtering. For institutions with single brands this value is still required.",
            "type": "string",
            "example": "BankX"
          },
          "brand_name": {
            "description": "An optional display name of the brand.",
            "type": "string",
            "example": "BankX Gold"
          },
          "card_art": {
            "description": "An array of card art images.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_banking.BankingProductV4CardArt"
            }
          },
          "description": {
            "description": "A description of the product.",
            "type": "string",
            "example": "A premium savings account with no monthly fees"
          },
          "effective_from": {
            "description": "The date and time from which this product is effective (i.e. is available for origination). Used to enable the articulation of products to the regime before they are available for customers to originate.",
            "type": "string",
            "example": "2023-01-01T00:00:00Z"
          },
          "effective_to": {
            "description": "The date and time at which this product will be retired and will no longer be offered. Used to enable the managed deprecation of products.",
            "type": "string",
            "example": "2024-12-31T23:59:59Z"
          },
          "is_tailored": {
            "description": "Indicates whether the product is specifically tailored to a circumstance. In this case fees and prices are significantly negotiated depending on context. While all products are open to a degree of tailoring this flag indicates that tailoring is expected and thus that the provision of specific fees and rates is not applicable.",
            "type": "boolean",
            "example": false
          },
          "last_updated": {
            "description": "The last date and time that the information for this product was changed (or the creation date for the product if it has never been altered).",
            "type": "string",
            "example": "2023-07-15T10:30:00Z"
          },
          "name": {
            "description": "The display name of the product.",
            "type": "string",
            "example": "Premium Savings Account"
          },
          "product_category": {
            "description": "The category to which a product or account belongs.",
            "type": "string",
            "enum": [
              "BUSINESS_LOANS",
              "CRED_AND_CHRG_CARDS",
              "LEASES",
              "MARGIN_LOANS",
              "OVERDRAFTS",
              "PERS_LOANS",
              "REGULATED_TRUST_ACCOUNTS",
              "RESIDENTIAL_MORTGAGES",
              "TERM_DEPOSITS",
              "TRADE_FINANCE",
              "TRANS_AND_SAVINGS_ACCOUNTS",
              "TRAVEL_CARDS"
            ],
            "example": "TRANS_AND_SAVINGS_ACCOUNTS"
          },
          "product_id": {
            "description": "Unique identifier for this product specific to the Institution.",
            "type": "string",
            "example": "prod-001"
          }
        }
      },
      "fiskil_banking.ProductDetailV2": {
        "type": "object",
        "required": [
          "brand",
          "description",
          "fiskil_id",
          "institution_id",
          "is_tailored",
          "last_updated",
          "name",
          "product_category",
          "product_id"
        ],
        "properties": {
          "additional_information": {
            "description": "Object that contains links to additional information on specific topics.",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_banking.BankingProductAdditionalInformationV2"
              }
            ]
          },
          "application_uri": {
            "description": "A link to an application web page where this product can be applied for.",
            "type": "string",
            "example": "https://bank.com/apply"
          },
          "brand": {
            "description": "A label of the brand for the product. Able to be used for filtering. For institutions with single brands this value is still required.",
            "type": "string",
            "example": "BankX"
          },
          "brand_name": {
            "description": "An optional display name of the brand.",
            "type": "string",
            "example": "BankX Gold"
          },
          "bundles": {
            "description": "An array of bundles that this product participates in. Each bundle is described by free form information but also by a list of _productID_ values of the other products that are included in the bundle. It is assumed that the current product is included in the bundle also.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_banking.BankingProductBundle"
            }
          },
          "card_art": {
            "description": "Information about any cards available with the account.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_banking.BankingProductV6CardArt"
            }
          },
          "constraints": {
            "description": "Application limits for the product such as minimum balances or threshold constraints.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_banking.BankingProductV6Constraint"
            }
          },
          "deposit_rates": {
            "description": "Interest rates available for deposits.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_banking.BankingProductV6DepositRate"
            }
          },
          "description": {
            "description": "A description of the product.",
            "type": "string",
            "example": "A premium savings account with no monthly fees"
          },
          "effective_from": {
            "description": "The date and time from which this product is effective (i.e. is available for origination). Used to enable the articulation of products to the regime before they are available for customers to originate.",
            "type": "string",
            "example": "2023-01-01T00:00:00Z"
          },
          "effective_to": {
            "description": "The date and time at which this product will be retired and will no longer be offered. Used to enable the managed deprecation of products.",
            "type": "string",
            "example": "2024-12-31T23:59:59Z"
          },
          "eligibility": {
            "description": "Criteria required to be eligible for the product.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_banking.BankingProductEligibility"
            }
          },
          "features": {
            "description": "Array of features and limitations of the product.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_banking.BankingProductV6Feature"
            }
          },
          "fees": {
            "description": "Charges applicable to the product.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_banking.BankingProductV6Fee"
            }
          },
          "fiskil_id": {
            "description": "The Fiskil identifier for this product",
            "type": "string",
            "example": "bank_product_abdef1234"
          },
          "institution_id": {
            "description": "The Fiskil identifier for the institution this product belongs to",
            "type": "string",
            "example": "112"
          },
          "is_tailored": {
            "description": "Indicates whether the product is specifically tailored to a circumstance. In this case fees and prices are significantly negotiated depending on context. While all products are open to a degree of tailoring this flag indicates that tailoring is expected and thus that the provision of specific fees and rates is not applicable.",
            "type": "boolean",
            "example": false
          },
          "last_updated": {
            "description": "The last date and time that the information for this product was changed (or the creation date for the product if it has never been altered).",
            "type": "string",
            "example": "2023-07-15T10:30:00Z"
          },
          "lending_rates": {
            "description": "Interest rates charged against lending balances.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_banking.BankingProductV6LendingRate"
            }
          },
          "name": {
            "description": "The display name of the product.",
            "type": "string",
            "example": "Premium Savings Account"
          },
          "product_category": {
            "description": "The category to which a product or account belongs.",
            "type": "string",
            "enum": [
              "BUSINESS_LOANS",
              "CRED_AND_CHRG_CARDS",
              "LEASES",
              "MARGIN_LOANS",
              "OVERDRAFTS",
              "PERS_LOANS",
              "REGULATED_TRUST_ACCOUNTS",
              "RESIDENTIAL_MORTGAGES",
              "TERM_DEPOSITS",
              "TRADE_FINANCE",
              "TRANS_AND_SAVINGS_ACCOUNTS",
              "TRAVEL_CARDS"
            ],
            "example": "TRANS_AND_SAVINGS_ACCOUNTS"
          },
          "product_id": {
            "description": "Unique identifier for this product specific to the Institution.",
            "type": "string",
            "example": "prod-001"
          }
        }
      },
      "fiskil_banking.ProductDetailsBodyV2": {
        "type": "object",
        "required": [
          "product"
        ],
        "properties": {
          "product": {
            "description": "Details of the requested product",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_banking.ProductDetailV2"
              }
            ]
          }
        }
      },
      "fiskil_banking.ProductsBody": {
        "type": "object",
        "required": [
          "products"
        ],
        "properties": {
          "products": {
            "description": "A list of banking products",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_banking.Product"
            },
            "x-order": "1"
          },
          "links": {
            "description": "Links to be used for pagination",
            "allOf": [
              {
                "$ref": "#/components/schemas/httputil.Links"
              }
            ],
            "x-order": "2"
          }
        }
      },
      "fiskil_banking.ScheduledPayment": {
        "type": "object",
        "required": [
          "arrangement_id",
          "fiskil_id",
          "from",
          "institution_id",
          "payer_reference",
          "payment_set",
          "recurrence",
          "scheduled_payment_id",
          "status"
        ],
        "properties": {
          "arrangement_id": {
            "description": "The CDR Arrangement ID that this scheduled payment was fetched under",
            "type": "string",
            "example": "90bfd779-e8eb-4e9f-87b3-5191ba7332c2"
          },
          "fiskil_id": {
            "description": "The Fiskil Identifier for this transaction",
            "type": "string",
            "example": "bank_sp_abcdef1234"
          },
          "from": {
            "description": "Object containing details of the source of the payment. Currently only specifies an account ID but provided as an object to facilitate future extensibility and consistency with the _to_ object.",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_banking.BankingScheduledPaymentFrom"
              }
            ]
          },
          "institution_id": {
            "description": "The Fiskil identifier for the institution that manages this transaction",
            "type": "string",
            "example": "40"
          },
          "nickname": {
            "description": "The short display name of the scheduled payment as provided by the customer if provided. Where a customer has not provided a nickname, a display name derived by the bank for the scheduled payment should be provided that is consistent with existing digital banking channels.",
            "type": "string",
            "example": "Monthly Rent"
          },
          "payee_reference": {
            "description": "The reference for the transaction, if applicable, that will be provided by the originating institution for all payments in the payment set. Empty string if no data provided.",
            "type": "string",
            "example": "REF123456"
          },
          "payer_reference": {
            "description": "The reference for the transaction that will be used by the originating institution for the purposes of constructing a statement narrative on the payer’s account. Empty string if no data provided.",
            "type": "string",
            "example": "PAY123456"
          },
          "payment_set": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_banking.BankingScheduledPaymentSetV2"
            }
          },
          "recurrence": {
            "description": "Object containing the detail of the schedule for the payment.",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_banking.BankingScheduledPaymentRecurrence"
              }
            ]
          },
          "scheduled_payment_id": {
            "description": "A unique ID of the scheduled payment.",
            "type": "string",
            "example": "SP123456"
          },
          "status": {
            "description": "Indicates whether the schedule is currently active. The value `SKIP` is equivalent to `ACTIVE` except that the customer has requested the next normal occurrence to be skipped.",
            "type": "string",
            "enum": [
              "ACTIVE",
              "INACTIVE",
              "SKIP"
            ],
            "example": "ACTIVE"
          }
        }
      },
      "fiskil_banking.ScheduledPaymentsBody": {
        "type": "object",
        "required": [
          "scheduled_payments"
        ],
        "properties": {
          "scheduled_payments": {
            "description": "A list of scheduled payments that the end user has set up",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_banking.ScheduledPayment"
            },
            "x-order": "1"
          },
          "links": {
            "description": "Links to be used for pagination",
            "allOf": [
              {
                "$ref": "#/components/schemas/httputil.Links"
              }
            ],
            "x-order": "2"
          }
        }
      },
      "fiskil_banking.TransactionCategory": {
        "type": "object",
        "properties": {
          "confidence_level": {
            "description": "ConfidenceLevel is the confidence level for the categories.",
            "type": "string",
            "example": "VERY_HIGH"
          },
          "primary_category": {
            "description": "PrimaryCategory is the primary category for the transaction.",
            "type": "string",
            "example": "FOOD_AND_DRINK"
          },
          "secondary_category": {
            "description": "SecondaryCategory is the secondary category for the transaction.",
            "type": "string",
            "example": "FOOD_AND_DRINK_GROCERIES"
          }
        }
      },
      "fiskil_banking.TransactionV2": {
        "type": "object",
        "required": [
          "account_id",
          "amount",
          "arrangement_id",
          "description",
          "extended_data",
          "fiskil_id",
          "institution_id",
          "reference",
          "status",
          "type"
        ],
        "properties": {
          "account_id": {
            "description": "ID of the account for which transactions are provided.",
            "type": "string",
            "example": "123456789"
          },
          "amount": {
            "description": "The value of the transaction. Negative values mean money was outgoing from the account.",
            "type": "string",
            "example": "100.00"
          },
          "apca_number": {
            "description": "6 Digit APCA number for the initiating institution. The field is fixed-width and padded with leading zeros if applicable.",
            "type": "string",
            "example": "012345"
          },
          "arrangement_id": {
            "description": "The CDR Arrangement ID that this transaction was fetched under",
            "type": "string",
            "example": "90bfd779-e8eb-4e9f-87b3-5191ba7332c2"
          },
          "biller_code": {
            "description": "BPAY Biller Code for the transaction (if available).",
            "type": "string",
            "example": "123456"
          },
          "biller_name": {
            "description": "Name of the BPAY biller for the transaction (if available).",
            "type": "string",
            "example": "Electricity Provider"
          },
          "category": {
            "description": "Category contains the enriched categories for the transaction. This field is optional and may be empty.",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_banking.TransactionCategory"
              }
            ]
          },
          "crn": {
            "description": "BPAY CRN for the transaction (if available). Where the CRN contains sensitive information, it should be masked in line with how the institution currently displays account identifiers in their existing online banking channels.",
            "type": "string",
            "example": "123456789012"
          },
          "currency": {
            "description": "The currency for the transaction amount. `AUD` assumed if not present.",
            "type": "string",
            "example": "AUD"
          },
          "description": {
            "description": "The transaction description as applied by the financial institution.",
            "type": "string",
            "example": "Payment for Invoice #1234"
          },
          "execution_date_time": {
            "description": "The time the transaction was executed by the originating customer, if available.",
            "type": "string",
            "example": "2024-09-10T15:30:00Z"
          },
          "extended_data": {
            "description": "Extended data specific to the transaction.",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_banking.BankingTransactionDetailAllOfExtendedDataV2"
              }
            ]
          },
          "fiskil_id": {
            "description": "The Fiskil Identifier for this transaction",
            "type": "string",
            "example": "bank_tx_abcdef1234"
          },
          "institution_id": {
            "description": "The Fiskil identifier for the institution that manages this transaction",
            "type": "string",
            "example": "40"
          },
          "is_detail_available": {
            "description": "Denotes if detailed information has been fetched for this transaction. If `true`, this response will also contain the details.",
            "type": "boolean",
            "example": true
          },
          "merchant_category_code": {
            "description": "The merchant category code (or MCC) for an outgoing payment to a merchant.",
            "type": "string",
            "example": "5411"
          },
          "merchant_name": {
            "description": "Name of the merchant for an outgoing payment to a merchant.",
            "type": "string",
            "example": "Supermarket"
          },
          "posting_date_time": {
            "description": "The time the transaction was posted. This field is Mandatory if the transaction has status `POSTED`. This is the time that appears on a standard statement.",
            "type": "string",
            "example": "2024-09-11T09:00:00Z"
          },
          "reference": {
            "description": "The reference for the transaction provided by the originating institution. Empty string if no data provided.",
            "type": "string",
            "example": "REF123456"
          },
          "status": {
            "description": "Status of the transaction whether pending or posted. Note that there is currently no provision in the standards to guarantee the ability to correlate a pending transaction with an associated posted transaction. Sometimes institutions will update a transaction from PENDING to POSTED so make sure you continue to fetch older transactions if you want to observe them becoming posted.",
            "type": "string",
            "enum": [
              "PENDING",
              "POSTED"
            ],
            "example": "POSTED"
          },
          "transaction_id": {
            "description": "A unique ID of the transaction set by the bank. Most institutions will provide a transaction ID. Note that the same payment may be represented as two different transactions (one `PENDING` and one `POSTED`).",
            "type": "string",
            "example": "txn-1234567890"
          },
          "type": {
            "description": "The type of the transaction.",
            "type": "string",
            "enum": [
              "DIRECT_DEBIT",
              "FEE",
              "INTEREST_CHARGED",
              "INTEREST_PAID",
              "OTHER",
              "PAYMENT",
              "TRANSFER_INCOMING",
              "TRANSFER_OUTGOING"
            ],
            "example": "PAYMENT"
          },
          "value_date_time": {
            "description": "Date and time at which assets become available to the account owner in case of a credit entry, or cease to be available to the account owner in case of a debit transaction entry.",
            "type": "string",
            "example": "2024-09-11T09:00:00Z"
          }
        }
      },
      "fiskil_banking.TransactionsBodyV2": {
        "type": "object",
        "required": [
          "transactions"
        ],
        "properties": {
          "transactions": {
            "description": "A list of transactions involving the end user",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_banking.TransactionV2"
            },
            "x-order": "1"
          },
          "links": {
            "description": "Links to be used for pagination",
            "allOf": [
              {
                "$ref": "#/components/schemas/httputil.Links"
              }
            ],
            "x-order": "2"
          },
          "meta": {
            "description": "Meta contains metadata about the response",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_banking.Meta"
              }
            ],
            "x-order": "3"
          }
        }
      },
      "fiskil_energy.Account": {
        "type": "object",
        "required": [
          "account_id",
          "arrangement_id",
          "fiskil_id",
          "institution_id",
          "plans"
        ],
        "properties": {
          "account_id": {
            "description": "The ID of the account.  To be created in accordance with CDR ID permanence requirements",
            "type": "string",
            "example": "9ccb2d66-bd77-4909-bd8a-bf0e73ef1f59"
          },
          "account_number": {
            "description": "Optional identifier of the account as defined by the data holder.  This must be the value presented on physical statements (if it exists) and must not be used for the value of accountId",
            "type": "string",
            "example": "41100022"
          },
          "arrangement_id": {
            "description": "The ID of the CDR arrangement that was used to fetch this account",
            "type": "string",
            "example": "arr678"
          },
          "creation_date": {
            "description": "The date that the account was created or opened. Mandatory if openStatus is OPEN",
            "type": "string",
            "example": "2024-09-13"
          },
          "display_name": {
            "description": "An optional display name for the account if one exists or can be derived.  The content of this field is at the discretion of the data holder",
            "type": "string",
            "example": "Peter's Energy Account"
          },
          "fiskil_id": {
            "description": "The Fiskil ID for this energy account",
            "type": "string",
            "example": "energy_account_abcdef123"
          },
          "institution_id": {
            "description": "The Fiskil internal identifier for the institution this account belongs to",
            "type": "string",
            "example": "12345"
          },
          "open_status": {
            "description": "Open or closed status for the account. If not present then OPEN is assumed",
            "type": "string",
            "enum": [
              "CLOSED",
              "OPEN"
            ],
            "example": "OPEN"
          },
          "plans": {
            "description": "The array of plans containing service points and associated plan details",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.EnergyAccountDetailV4AllOfPlans"
            }
          }
        }
      },
      "fiskil_energy.AccountsBody": {
        "type": "object",
        "required": [
          "accounts"
        ],
        "properties": {
          "accounts": {
            "description": "A list of energy accounts belonging to the requested end user",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.Account"
            }
          },
          "links": {
            "description": "Links to be used for pagination",
            "allOf": [
              {
                "$ref": "#/components/schemas/httputil.Links"
              }
            ]
          }
        }
      },
      "fiskil_energy.Balance": {
        "type": "object",
        "required": [
          "account_id",
          "arrangement_id",
          "balance",
          "fiskil_id",
          "institution_id"
        ],
        "properties": {
          "account_id": {
            "description": "The ID of the energy account the balance is for as provided by the Accounts API",
            "type": "string",
            "example": "448b17f8-1937-4f41-8664-da1dfae7ec16"
          },
          "arrangement_id": {
            "description": "The ID of the CDR arrangement that was used to fetch this balance record",
            "type": "string",
            "example": "arr678"
          },
          "balance": {
            "description": "The balance of the energy account in dollars. Positive indicates that the account holder owes money. Negative indicates that the account is in credit",
            "type": "string",
            "example": "242.89"
          },
          "fiskil_id": {
            "description": "The Fiskil identifier for this balance record",
            "type": "string",
            "example": "energy_balance_abcdef"
          },
          "institution_id": {
            "description": "The Fiskil identifier for the institution that provides this balance",
            "type": "string",
            "example": "140"
          }
        }
      },
      "fiskil_energy.BalancesBody": {
        "type": "object",
        "required": [
          "balances"
        ],
        "properties": {
          "balances": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.Balance"
            }
          },
          "links": {
            "$ref": "#/components/schemas/httputil.Links"
          }
        }
      },
      "fiskil_energy.Billing": {
        "type": "object",
        "required": [
          "account_id",
          "arrangement_id",
          "execution_date_time",
          "fiskil_id",
          "institution_id",
          "transaction_u_type"
        ],
        "properties": {
          "account_id": {
            "description": "The ID of the account for which transaction applies as returned by the Accounts API",
            "type": "string",
            "example": "A123"
          },
          "arrangement_id": {
            "description": "The ID of the CDR arrangement that was used to fetch this billing transaction",
            "type": "string",
            "example": "arr678"
          },
          "demand": {
            "description": "Details of the demand charges being applied to the account in this transaction. Only present if `transaction_u_type` is `demand`",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_energy.EnergyBillingDemandTransaction"
              }
            ]
          },
          "execution_date_time": {
            "description": "The date and time that the transaction occurred",
            "type": "string",
            "example": "2023-09-18T12:34:56Z"
          },
          "fiskil_id": {
            "description": "The Fiskil ID for this specific billing transaction",
            "type": "string",
            "example": "energy_billing_abcdef123"
          },
          "gst": {
            "description": "The GST incurred in the transaction. Should not be included for credits or payments. If absent zero is assumed",
            "type": "string",
            "example": "10.00"
          },
          "institution_id": {
            "description": "The Fiskil ID for the energy institution this billing transaction is from",
            "type": "string",
            "example": "150"
          },
          "once_off": {
            "description": "Details of once-off charges being applied to the account in this transaction. Only present if `transaction_u_type` is `onceOff`",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_energy.EnergyBillingOnceOffTransaction"
              }
            ]
          },
          "other_charges": {
            "description": "Details of other charges being applied to the account in this transaction. Only present if `transaction_u_type` is `otherCharges`",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_energy.EnergyBillingOtherTransaction"
              }
            ]
          },
          "payment": {
            "description": "Details of a payment by the account holder on thie account in this transaction. Only present if `transaction_u_type` is `payment`",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_energy.EnergyBillingPaymentTransaction"
              }
            ]
          },
          "transaction_u_type": {
            "description": "Indicator of the type of transaction object present in this record",
            "type": "string",
            "enum": [
              "demand",
              "onceOff",
              "otherCharges",
              "payment",
              "usage"
            ],
            "example": "demand"
          },
          "usage": {
            "description": "Details of usage charges being applied to the account in this transaction. Only present if `transaction_u_type` is `usage`",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_energy.EnergyBillingUsageTransaction"
              }
            ]
          }
        }
      },
      "fiskil_energy.BillingBody": {
        "type": "object",
        "required": [
          "billing"
        ],
        "properties": {
          "billing": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.Billing"
            }
          },
          "links": {
            "$ref": "#/components/schemas/httputil.Links"
          }
        }
      },
      "fiskil_energy.Concession": {
        "type": "object",
        "required": [
          "account_id",
          "arrangement_id",
          "display_name",
          "fiskil_id",
          "institution_id",
          "type"
        ],
        "properties": {
          "account_id": {
            "description": "Account ID of the account that the concession applies to",
            "type": "string",
            "example": "acc123"
          },
          "additional_info": {
            "description": "Display text providing more information on the concession. Mandatory if `type` is `VARIABLE`",
            "type": "string",
            "example": "The government issued a one-off rebate for electricity plans"
          },
          "additional_info_uri": {
            "description": "Link to additional information regarding the concession",
            "type": "string",
            "example": "https://www.energy.com/rebate"
          },
          "amount": {
            "description": "Conditional attribute for the amount of discount for the concession - required if type is `FIXED_AMOUNT`",
            "type": "string",
            "example": "40.00"
          },
          "applied_to": {
            "description": "Array of ENUM's to specify what the concession applies to. Multiple ENUM values can be provided. If absent, `USAGE `is assumed",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "CONTROLLED_LOAD",
                "INVOICE",
                "SERVICE_CHARGE",
                "USAGE"
              ]
            },
            "example": [
              "CONTROLLED_LOAD",
              "INVOICE"
            ]
          },
          "arrangement_id": {
            "description": "The ID of the CDR arrangement that was used to fetch this Concession record",
            "type": "string",
            "example": "arr678"
          },
          "discount_frequency": {
            "description": "Conditional attribute for frequency at which a concession is applied. Required if type is `FIXED_AMOUNT` or `FIXED_PERCENTAGE`. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)",
            "type": "string",
            "example": "P1Y"
          },
          "display_name": {
            "description": "The display name of the concession",
            "type": "string",
            "example": "Government Rebate"
          },
          "end_date": {
            "description": "Optional end date for the application of the concession",
            "type": "string",
            "example": "2024-12-31"
          },
          "fiskil_id": {
            "description": "The Fiskil identifier for this concessionr record",
            "type": "string",
            "example": "energy_concession_abcdef123"
          },
          "institution_id": {
            "description": "The Fiskil identifier for the institution that provided the concession data",
            "type": "string",
            "example": "140"
          },
          "percentage": {
            "description": "Conditional attribute for the percentage of discount of concession - required if type is `FIXED_PERCENTAGE`. Expressed as a fraction.",
            "type": "string",
            "example": "0.05"
          },
          "start_date": {
            "description": "Optional start date for the application of the concession",
            "type": "string",
            "example": "2024-01-01"
          },
          "type": {
            "description": "Indicator of the method of concession calculation",
            "type": "string",
            "enum": [
              "FIXED_AMOUNT",
              "FIXED_PERCENTAGE",
              "VARIABLE"
            ],
            "example": "FIXED_AMOUNT"
          }
        }
      },
      "fiskil_energy.ConcessionsBody": {
        "type": "object",
        "required": [
          "concessions"
        ],
        "properties": {
          "concessions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.Concession"
            }
          },
          "links": {
            "$ref": "#/components/schemas/httputil.Links"
          }
        }
      },
      "fiskil_energy.Der": {
        "type": "object",
        "required": [
          "ac_connections",
          "approved_capacity",
          "arrangement_id",
          "available_phases_count",
          "fiskil_id",
          "installed_phases_count",
          "institution_id",
          "islandable_installation",
          "service_point_id"
        ],
        "properties": {
          "ac_connections": {
            "description": "List of AC connections associated with the DER",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.EnergyDerRecordAcConnections"
            }
          },
          "approved_capacity": {
            "description": "Approved small generating unit capacity as agreed with NSP in the connection agreement, expressed in kVA.",
            "type": "number",
            "example": 10.5
          },
          "arrangement_id": {
            "description": "The ID of the CDR arrangement that was used to fetch this DER record",
            "type": "string",
            "example": "arr678"
          },
          "available_phases_count": {
            "description": "The number of phases available for the installation of DER. Value of 0 indicates no DER record exists.",
            "type": "integer",
            "example": 3
          },
          "fiskil_id": {
            "description": "The unique Fiskil ID for this DER record",
            "type": "string",
            "example": "energy_der_abcdef1234"
          },
          "has_central_protection_control": {
            "description": "Additional forms of protection above those inbuilt in an inverter.",
            "type": "boolean",
            "example": false
          },
          "installed_phases_count": {
            "description": "The number of phases that DER is connected to.",
            "type": "integer",
            "example": 3
          },
          "institution_id": {
            "description": "The Fiskil ID for the institution that provided this DER data",
            "type": "string",
            "example": "140"
          },
          "islandable_installation": {
            "description": "Identifies small generating units designed with islanding ability.",
            "type": "boolean",
            "example": true
          },
          "protection_mode": {
            "description": "Describes protection modes in place.",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_energy.EnergyDerRecordProtectionMode"
              }
            ]
          },
          "service_point_id": {
            "description": "ID of the service point (as returned from the ServicePoints API)",
            "type": "string",
            "example": "SP123"
          }
        }
      },
      "fiskil_energy.DerBody": {
        "type": "object",
        "required": [
          "der_records"
        ],
        "properties": {
          "der_records": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.Der"
            }
          },
          "links": {
            "$ref": "#/components/schemas/httputil.Links"
          }
        }
      },
      "fiskil_energy.EnergyAccountDetailV3AllOfAuthorisedContacts": {
        "type": "object",
        "required": [
          "last_name",
          "middle_names"
        ],
        "properties": {
          "first_name": {
            "description": "For people with single names this field need not be present. The single name should be in the `last_name` field",
            "type": "string",
            "example": "Mary"
          },
          "last_name": {
            "description": "For people with single names the single name should be in this field",
            "type": "string",
            "example": "Sherman"
          },
          "middle_names": {
            "description": "Field is mandatory but array may be empty",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "prefix": {
            "description": "Also known as title or salutation. The prefix to the name (e.g. Mr, Mrs, Ms, Miss, Sir, etc)",
            "type": "string",
            "example": "Mrs"
          },
          "suffix": {
            "description": "Used for a trailing suffix to the name (e.g. Jr)",
            "type": "string",
            "example": "Sr"
          }
        }
      },
      "fiskil_energy.EnergyAccountDetailV3AllOfPlanDetail": {
        "type": "object",
        "required": [
          "fuel_type"
        ],
        "properties": {
          "electricity_contract": {
            "description": "Details of the electricity supply agreement for this plan",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_energy.EnergyPlanContractV2"
              }
            ]
          },
          "fuel_type": {
            "description": "The fuel types covered by the plan",
            "type": "string",
            "enum": [
              "DUAL",
              "ELECTRICITY",
              "GAS"
            ],
            "example": "DUAL"
          },
          "gas_contract": {
            "description": "Details of the gas supply agreement for this plan",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_energy.EnergyPlanContractV2"
              }
            ]
          },
          "is_contingent_plan": {
            "description": "Flag that indicates that the plan is contingent on the customer taking up an alternate fuel plan from the same retailer (for instance, if the fuelType is `ELECTRICITY` then a `GAS` plan from the same retailer must be taken up). Has no meaning if the plan has a `fuel_type` of DUAL. If absent the value is assumed to be false",
            "type": "boolean",
            "example": false
          },
          "metering_charges": {
            "description": "Charges for metering included in the plan",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.EnergyPlanDetailV2AllOfMeteringCharges"
            }
          }
        }
      },
      "fiskil_energy.EnergyAccountDetailV4AllOfPlans": {
        "type": "object",
        "required": [
          "service_point_ids"
        ],
        "properties": {
          "authorised_contacts": {
            "description": "An array of additional contacts that are authorised to act on this account",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.EnergyAccountDetailV3AllOfAuthorisedContacts"
            }
          },
          "nickname": {
            "description": "Optional display name for the plan provided by the customer to help differentiate multiple plans",
            "type": "string",
            "example": "Home address"
          },
          "plan_detail": {
            "description": "Detail on the plan applicable to this account. Mandatory if `open_status` is OPEN",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_energy.EnergyAccountDetailV3AllOfPlanDetail"
              }
            ]
          },
          "plan_overview": {
            "description": "A basic overview of the energy plan. Mandatory if `open_status` is OPEN",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_energy.EnergyAccountV2AllOfPlanOverview"
              }
            ]
          },
          "service_point_ids": {
            "description": "An array of `service_point_id`s, representing NMIs, that this account is linked to",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "fiskil_energy.EnergyAccountV2AllOfPlanOverview": {
        "type": "object",
        "required": [
          "start_date"
        ],
        "properties": {
          "display_name": {
            "description": "The name of the plan if one exists",
            "type": "string",
            "example": "Simple Residential"
          },
          "end_date": {
            "description": "The end date of the applicability of this plan",
            "type": "string",
            "example": "2025-09-13"
          },
          "start_date": {
            "description": "The start date of the applicability of this plan",
            "type": "string",
            "example": "2024-09-13"
          }
        }
      },
      "fiskil_energy.EnergyBillingDemandTransaction": {
        "type": "object",
        "required": [
          "amount",
          "end_date",
          "rate",
          "start_date",
          "time_of_use_type"
        ],
        "properties": {
          "adjustments": {
            "description": "Optional array of adjustments arising for this transaction",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.EnergyBillingUsageTransactionAdjustments"
            }
          },
          "amount": {
            "description": "The amount charged or credited for this transaction prior to any adjustments being applied. A negative value indicates a credit",
            "type": "string",
            "example": "100.00"
          },
          "calculation_factors": {
            "description": "Optional, additional calculation factors that inform the transaction",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.EnergyBillingUsageTransactionCalculationFactors"
            }
          },
          "description": {
            "description": "Optional description of the transaction that can be used for display purposes",
            "type": "string",
            "example": "Energy usage"
          },
          "end_date": {
            "description": "Date and time when the demand period ends in [RFC3339 date-time](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) format",
            "type": "string",
            "example": "2023-09-19T12:34:56Z"
          },
          "invoice_number": {
            "description": "The number of the invoice (as returned by the Invoices API) in which this transaction is included if it has been issued",
            "type": "string",
            "example": "INV123456"
          },
          "is_estimate": {
            "description": "Flag indicating if the usage is estimated or actual. True indicates estimate. False or absent indicates actual",
            "type": "boolean",
            "example": false
          },
          "measure_unit": {
            "description": "The measurement unit of rate. Assumed to be KVA if absent.",
            "type": "string",
            "enum": [
              "KWH",
              "KVA",
              "KVAR",
              "KVARH",
              "KW",
              "DAYS",
              "METER",
              "MONTH"
            ],
            "example": "KVA"
          },
          "rate": {
            "description": "The rate for the demand charge in kVA. A negative value indicates power generated",
            "type": "number",
            "example": 0.95
          },
          "service_point_id": {
            "description": "The ID of the service point to which this transaction applies if any",
            "type": "string",
            "example": "SP123"
          },
          "start_date": {
            "description": "Date and time when the demand period starts",
            "type": "string",
            "example": "2023-09-18T12:34:56Z"
          },
          "time_of_use_type": {
            "description": "The time of use type that the transaction applies to. If no time of use period applies then the value will be `AGGREGATE`",
            "type": "string",
            "enum": [
              "AGGREGATE",
              "CONTROLLED_LOAD",
              "OFF_PEAK",
              "OFF_PEAK_DEMAND_CHARGE",
              "PEAK",
              "SHOULDER",
              "SHOULDER1",
              "SHOULDER2",
              "SOLAR"
            ],
            "example": "PEAK"
          }
        }
      },
      "fiskil_energy.EnergyBillingOnceOffTransaction": {
        "type": "object",
        "required": [
          "amount",
          "description"
        ],
        "properties": {
          "amount": {
            "description": "The amount of the charge or credit. A positive value indicates a charge and a negative value indicates a credit",
            "type": "string",
            "example": "50.00"
          },
          "description": {
            "description": "A free text description of the item",
            "type": "string",
            "example": "Connection fee"
          },
          "invoice_number": {
            "description": "The number of the invoice (as returned by the Invoices API) in which this transaction is included if it has been issued",
            "type": "string",
            "example": "INV123456"
          },
          "service_point_id": {
            "description": "The ID of the service point to which this transaction applies if any",
            "type": "string",
            "example": "SP123"
          }
        }
      },
      "fiskil_energy.EnergyBillingOtherTransaction": {
        "type": "object",
        "required": [
          "amount",
          "description"
        ],
        "properties": {
          "adjustments": {
            "description": "Optional array of adjustments arising for this transaction",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.EnergyBillingUsageTransactionAdjustments"
            }
          },
          "amount": {
            "description": "The amount of the charge",
            "type": "string",
            "example": "20.00"
          },
          "calculation_factors": {
            "description": "Additional calculation factors that inform the transaction",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.EnergyBillingUsageTransactionCalculationFactors"
            }
          },
          "description": {
            "description": "A free text description of the item",
            "type": "string",
            "example": "Green power charges"
          },
          "end_date": {
            "description": "Optional end date for the application of the charge in [RFC3339 full-date](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) format",
            "type": "string",
            "example": "2023-09-30"
          },
          "invoice_number": {
            "description": "The number of the invoice (as returned by the Invoices API) in which this transaction is included if it has been issued",
            "type": "string",
            "example": "INV123456"
          },
          "service_point_id": {
            "description": "The ID of the service point to which this transaction applies if any",
            "type": "string",
            "example": "SP123"
          },
          "start_date": {
            "description": "Optional start date for the application of the charge",
            "type": "string",
            "example": "2023-09-01"
          },
          "type": {
            "description": "Type of charge. Assumed to be other if absent",
            "type": "string",
            "enum": [
              "ENVIRONMENTAL",
              "METERING",
              "NETWORK",
              "OTHER",
              "RCTI",
              "REGULATED",
              "RETAIL_SERVICE"
            ],
            "example": "ENVIRONMENTAL"
          }
        }
      },
      "fiskil_energy.EnergyBillingPaymentTransaction": {
        "type": "object",
        "required": [
          "amount",
          "method"
        ],
        "properties": {
          "amount": {
            "description": "The amount paid",
            "type": "string",
            "example": "300.00"
          },
          "method": {
            "description": "The method of payment",
            "type": "string",
            "enum": [
              "BPAY",
              "CARD",
              "CASH",
              "CHEQUE",
              "DIRECT_DEBIT",
              "OTHER",
              "TRANSFER"
            ],
            "example": "DIRECT_DEBIT"
          }
        }
      },
      "fiskil_energy.EnergyBillingUsageTransaction": {
        "type": "object",
        "required": [
          "amount",
          "end_date",
          "start_date",
          "time_of_use_type",
          "usage"
        ],
        "properties": {
          "adjustments": {
            "description": "Optional array of adjustments arising for this transaction",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.EnergyBillingUsageTransactionAdjustments"
            }
          },
          "amount": {
            "description": "The amount charged or credited for this transaction prior to any adjustments being applied. A negative value indicates a credit",
            "type": "string",
            "example": "200.00"
          },
          "calculation_factors": {
            "description": "Additional calculation factors that inform the transaction",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.EnergyBillingUsageTransactionCalculationFactors"
            }
          },
          "description": {
            "description": "Optional description of the transaction that can be used for display purposes",
            "type": "string",
            "example": "Usage fee"
          },
          "end_date": {
            "description": "Date and time when the usage period ends",
            "type": "string",
            "example": "2023-09-19T12:34:56Z"
          },
          "invoice_number": {
            "description": "The number of the invoice (as returned by the Invoices API) in which this transaction is included if it has been issued",
            "type": "string",
            "example": "INV123456"
          },
          "is_estimate": {
            "description": "Flag indicating if the usage is estimated or actual. True indicates estimate. False or absent indicates actual",
            "type": "boolean",
            "example": false
          },
          "measure_unit": {
            "description": "The measurement unit of rate. Assumed to be KWH if absent",
            "type": "string",
            "enum": [
              "DAYS",
              "KVA",
              "KVAR",
              "KVARH",
              "KW",
              "KWH",
              "METER",
              "MONTH"
            ],
            "example": "KWH"
          },
          "service_point_id": {
            "description": "The ID of the service point to which this transaction applies if any",
            "type": "string",
            "example": "SP123"
          },
          "start_date": {
            "description": "Date and time when the usage period starts",
            "type": "string",
            "example": "2023-06-20T12:34:56Z"
          },
          "time_of_use_type": {
            "description": "The time of use type that the transaction applies to. If no time of use period applies to the charge then the value will be `AGGREGATE`",
            "type": "string",
            "enum": [
              "AGGREGATE",
              "ALL_DAY",
              "CONTROLLED_LOAD",
              "OFF_PEAK",
              "OFF_PEAK_DEMAND_CHARGE",
              "PEAK",
              "SHOULDER",
              "SHOULDER1",
              "SHOULDER2",
              "SOLAR"
            ],
            "example": "PEAK"
          },
          "usage": {
            "description": "The usage for the period in measure unit. A negative value indicates power generated",
            "type": "number",
            "example": 150
          }
        }
      },
      "fiskil_energy.EnergyBillingUsageTransactionAdjustments": {
        "type": "object",
        "required": [
          "amount",
          "description"
        ],
        "properties": {
          "amount": {
            "description": "The amount of the adjustment",
            "type": "string",
            "example": "-5.00"
          },
          "description": {
            "description": "A free text description of the adjustment",
            "type": "string",
            "example": "Discount"
          }
        }
      },
      "fiskil_energy.EnergyBillingUsageTransactionCalculationFactors": {
        "type": "object",
        "required": [
          "type",
          "value"
        ],
        "properties": {
          "type": {
            "description": "The type of the calculation factor. DLF = \"Distribution Loss Factor\", MLF = \"Marginal Loss Factor\"",
            "type": "string",
            "enum": [
              "DLF",
              "MLF"
            ],
            "example": "DLF"
          },
          "value": {
            "description": "The value of the calculation factor",
            "type": "number",
            "example": 1.15
          }
        }
      },
      "fiskil_energy.EnergyDerRecordAcConnections": {
        "type": "object",
        "required": [
          "commissioning_date",
          "connection_identifier",
          "count",
          "der_devices",
          "status"
        ],
        "properties": {
          "commissioning_date": {
            "description": "The date that the DER installation is commissioned.",
            "type": "string",
            "example": "2023-09-18"
          },
          "connection_identifier": {
            "description": "AC Connection ID as defined in the DER register.",
            "type": "number",
            "example": 123456
          },
          "count": {
            "description": "Count Number of AC Connections in the group.",
            "type": "integer",
            "example": 2
          },
          "der_devices": {
            "description": "List of connected DER devices",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.EnergyDerRecordDerDevices"
            }
          },
          "equipment_type": {
            "description": "Indicates whether the DER device is connected via an inverter or not.",
            "type": "string",
            "enum": [
              "INVERTER",
              "OTHER"
            ],
            "example": "INVERTER"
          },
          "inverter_device_capacity": {
            "description": "Rated AC output power of the inverter device.",
            "type": "number",
            "example": 5
          },
          "inverter_model_number": {
            "description": "The inverter model number.",
            "type": "string",
            "example": "XYZ123"
          },
          "inverter_series": {
            "description": "The inverter series.",
            "type": "string",
            "example": "SeriesX"
          },
          "manufacturer_name": {
            "description": "The name of the inverter manufacturer.",
            "type": "string",
            "example": "InverterCorp"
          },
          "status": {
            "description": "The status of the inverter.",
            "type": "string",
            "enum": [
              "ACTIVE",
              "INACTIVE",
              "DECOMMISSIONED"
            ],
            "example": "ACTIVE"
          }
        }
      },
      "fiskil_energy.EnergyDerRecordDerDevices": {
        "type": "object",
        "required": [
          "count",
          "device_identifier",
          "nominal_rated_capacity",
          "type"
        ],
        "properties": {
          "count": {
            "description": "Number of devices in the group of DER devices.",
            "type": "integer",
            "example": 5
          },
          "device_identifier": {
            "description": "Unique identifier for a single DER device.",
            "type": "number",
            "example": 654321
          },
          "manufacturer": {
            "description": "The name of the device manufacturer.",
            "type": "string",
            "example": "DeviceCorp"
          },
          "model_number": {
            "description": "The model number of the device.",
            "type": "string",
            "example": "ModelX"
          },
          "nominal_rated_capacity": {
            "description": "Maximum output in kVA.",
            "type": "number",
            "example": 7.5
          },
          "nominal_storage_capacity": {
            "description": "Maximum storage capacity in kVAh.",
            "type": "number",
            "example": 10
          },
          "status": {
            "description": "Status of the device (active, inactive, or decommissioned).",
            "type": "string",
            "enum": [
              "ACTIVE",
              "INACTIVE",
              "DECOMMISSIONED"
            ],
            "example": "ACTIVE"
          },
          "subtype": {
            "description": "The primary technology used in the DER device.",
            "type": "string",
            "example": "Lithium-ion battery"
          },
          "type": {
            "description": "Indicates the primary technology used in the DER device.",
            "type": "string",
            "enum": [
              "FOSSIL",
              "GEOTHERMAL",
              "HYDRO",
              "OTHER",
              "RENEWABLE",
              "SOLAR_PV",
              "STORAGE",
              "WIND"
            ],
            "example": "SOLAR_PV"
          }
        }
      },
      "fiskil_energy.EnergyDerRecordProtectionMode": {
        "type": "object",
        "properties": {
          "export_limit_kva": {
            "description": "Maximum amount of power that may be exported (kVA).",
            "type": "number",
            "example": 50
          },
          "frequency_rate_of_change": {
            "description": "Rate of change of frequency trip point (Hz/s).",
            "type": "number",
            "example": 0.2
          },
          "inter_trip_scheme": {
            "description": "Description of the form of inter-trip.",
            "type": "string",
            "example": "local substation"
          },
          "neutral_voltage_displacement": {
            "description": "Trip voltage.",
            "type": "number",
            "example": 240
          },
          "over_frequency_protection": {
            "description": "Over-frequency trip limit (Hz).",
            "type": "number",
            "example": 50
          },
          "over_frequency_protection_delay": {
            "description": "Over-frequency trip delay time (seconds).",
            "type": "number",
            "example": 0.5
          },
          "over_voltage_protection": {
            "description": "Over-voltage trip limit (V).",
            "type": "number",
            "example": 250
          },
          "over_voltage_protection_delay": {
            "description": "Over-voltage trip delay time (seconds).",
            "type": "number",
            "example": 0.3
          },
          "sustained_over_voltage": {
            "description": "Sustained over voltage (V).",
            "type": "number",
            "example": 255
          },
          "sustained_over_voltage_delay": {
            "description": "Sustained over voltage trip delay time (seconds).",
            "type": "number",
            "example": 0.6
          },
          "under_frequency_protection": {
            "description": "Under-frequency trip limit (Hz).",
            "type": "number",
            "example": 48.5
          },
          "under_frequency_protection_delay": {
            "description": "Under-frequency trip delay time (seconds).",
            "type": "number",
            "example": 0.4
          },
          "under_voltage_protection": {
            "description": "Under-voltage trip limit (V).",
            "type": "number",
            "example": 220
          },
          "under_voltage_protection_delay": {
            "description": "Under-voltage trip delay time (seconds).",
            "type": "number",
            "example": 0.7
          },
          "voltage_vector_shift": {
            "description": "Trip angle in degrees.",
            "type": "number",
            "example": 30
          }
        }
      },
      "fiskil_energy.EnergyInvoiceAccountCharges": {
        "type": "object",
        "properties": {
          "total_charges": {
            "description": "The aggregate total of account level charges for the period covered by the invoice",
            "type": "string",
            "example": "150.00"
          },
          "total_discounts": {
            "description": "The aggregate total of account level discounts or credits for the period covered by the invoice",
            "type": "string",
            "example": "20.00"
          },
          "total_gst": {
            "description": "The total GST for all account level charges. If absent then zero is assumed",
            "type": "string",
            "example": "5.00"
          }
        }
      },
      "fiskil_energy.EnergyInvoiceElectricityUsageCharges": {
        "type": "object",
        "properties": {
          "other_charges": {
            "description": "Optional array of charges that may be part of the invoice (for e.g. environmental charges for C&I consumers) (exclusive of GST)",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.EnergyInvoiceUsageOtherCharges"
            }
          },
          "total_generation_credits": {
            "description": "The aggregate total of generation credits for the period covered by the invoice (exclusive of GST)",
            "type": "string",
            "example": "20.00"
          },
          "total_gst": {
            "description": "The total GST for all electricity usage charges. If absent then zero is assumed",
            "type": "string",
            "example": "2.00"
          },
          "total_once_off_charges": {
            "description": "The aggregate total of any once off charges arising from electricity usage for the period covered by the invoice (exclusive of GST)",
            "type": "string",
            "example": "6.00"
          },
          "total_once_off_discounts": {
            "description": "The aggregate total of any once off discounts or credits arising from electricity usage for the period covered by the invoice (exclusive of GST)",
            "type": "string",
            "example": "4.00"
          },
          "total_usage_charges": {
            "description": "The aggregate total of usage charges for the period covered by the invoice (exclusive of GST)",
            "type": "string",
            "example": "120.00"
          }
        }
      },
      "fiskil_energy.EnergyInvoiceGasUsageCharges": {
        "type": "object",
        "properties": {
          "other_charges": {
            "description": "Optional array of charges that may be part of the invoice (for e.g. environmental charges for C&I consumers) (exclusive of GST)",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.EnergyInvoiceUsageOtherCharges"
            }
          },
          "total_generation_credits": {
            "description": "The aggregate total of generation credits for the period covered by the invoice (exclusive of GST)",
            "type": "string",
            "example": "15.00"
          },
          "total_gst": {
            "description": "The total GST for all electricity usage charges. If absent then zero is assumed",
            "type": "string",
            "example": "1.50"
          },
          "total_once_off_charges": {
            "description": "The aggregate total of any once off charges arising from gas usage for the period covered by the invoice (exclusive of GST)",
            "type": "string",
            "example": "5.00"
          },
          "total_once_off_discounts": {
            "description": "The aggregate total of any once off discounts or credits arising from gas usage for the period covered by the invoice (exclusive of GST)",
            "type": "string",
            "example": "3.00"
          },
          "total_usage_charges": {
            "description": "The aggregate total of usage charges for the period covered by the invoice (exclusive of GST)",
            "type": "string",
            "example": "100.00"
          }
        }
      },
      "fiskil_energy.EnergyInvoicePayOnTimeDiscount": {
        "type": "object",
        "required": [
          "date",
          "discount_amount"
        ],
        "properties": {
          "date": {
            "description": "The date by which the invoice must be paid to receive the pay on time discount",
            "type": "string",
            "example": "2023-09-20"
          },
          "discount_amount": {
            "description": "The amount that will be discounted if the invoice is paid by the date specified",
            "type": "string",
            "example": "10.00"
          },
          "gst_amount": {
            "description": "The GST amount that will be discounted if the invoice is paid by the date specified. If absent then zero is assumed",
            "type": "string",
            "example": "1.00"
          }
        }
      },
      "fiskil_energy.EnergyInvoicePeriod": {
        "type": "object",
        "required": [
          "end_date",
          "start_date"
        ],
        "properties": {
          "end_date": {
            "description": "The end date of the period covered by this invoice",
            "type": "string",
            "example": "2023-09-30"
          },
          "start_date": {
            "description": "The start date of the period covered by this invoice",
            "type": "string",
            "example": "2023-09-01"
          }
        }
      },
      "fiskil_energy.EnergyInvoiceUsageOtherCharges": {
        "type": "object",
        "properties": {
          "amount": {
            "description": "The aggregate total of charges for this item (exclusive of GST)",
            "type": "string",
            "example": "5.00"
          },
          "description": {
            "description": "A free text description of the type of charge",
            "type": "string",
            "example": "Environmental charges"
          },
          "type": {
            "description": "Type of charge. Assumed to be other if absent",
            "type": "string",
            "enum": [
              "ENVIRONMENTAL",
              "METERING",
              "NETWORK",
              "OTHER",
              "RCTI",
              "REGULATED",
              "RETAIL_SERVICE"
            ],
            "example": "NETWORK"
          }
        }
      },
      "fiskil_energy.EnergyPaymentScheduleCardDebit": {
        "type": "object",
        "required": [
          "calculation_type",
          "card_scheme",
          "payment_frequency"
        ],
        "properties": {
          "calculation_type": {
            "description": "The mechanism by which the payment amount is calculated.",
            "type": "string",
            "enum": [
              "STATIC",
              "BALANCE",
              "CALCULATED"
            ],
            "example": "STATIC"
          },
          "card_scheme": {
            "description": "The type of credit card held on file",
            "type": "string",
            "enum": [
              "AMEX",
              "DINERS",
              "MASTERCARD",
              "OTHER",
              "UNKNOWN",
              "VISA"
            ],
            "example": "VISA"
          },
          "payment_frequency": {
            "description": "The frequency that payments will occur, formatted according to ISO 8601 Durations.",
            "type": "string",
            "example": "P1M"
          }
        }
      },
      "fiskil_energy.EnergyPaymentScheduleDigitalWallet": {
        "type": "object",
        "required": [
          "calculation_type",
          "identifier",
          "name",
          "payment_frequency",
          "provider",
          "type"
        ],
        "properties": {
          "calculation_type": {
            "description": "The mechanism by which the payment amount is calculated.",
            "type": "string",
            "enum": [
              "STATIC",
              "BALANCE",
              "CALCULATED"
            ],
            "example": "STATIC"
          },
          "identifier": {
            "description": "The identifier of the digital wallet (dependent on wallet type)",
            "type": "string",
            "example": "hello@example.com"
          },
          "name": {
            "description": "The name assigned to the digital wallet by the owner of the wallet",
            "type": "string",
            "example": "Main Account Card"
          },
          "payment_frequency": {
            "description": "The frequency that payments will occur, formatted according to ISO 8601 Durations.",
            "type": "string",
            "example": "P1M"
          },
          "provider": {
            "description": "The provider of the digital wallet",
            "type": "string",
            "enum": [
              "OTHER",
              "PAYPAL_AU"
            ],
            "example": "PAYPAL_AU"
          },
          "type": {
            "description": "The type of the digital wallet identifier",
            "type": "string",
            "enum": [
              "CONTACT_NAME",
              "EMAIL",
              "TELEPHONE"
            ],
            "example": "EMAIL"
          }
        }
      },
      "fiskil_energy.EnergyPaymentScheduleDirectDebit": {
        "type": "object",
        "required": [
          "calculation_type",
          "payment_frequency"
        ],
        "properties": {
          "account_number": {
            "description": "The unmasked account number for the account to be debited.",
            "type": "string",
            "example": "123456789"
          },
          "bsb": {
            "description": "The unmasked BSB for the account to be debited",
            "type": "string",
            "example": "062000"
          },
          "calculation_type": {
            "description": "The mechanism by which the payment amount is calculated.",
            "type": "string",
            "enum": [
              "STATIC",
              "BALANCE",
              "CALCULATED"
            ],
            "example": "BALANCE"
          },
          "is_tokenised": {
            "description": "Flag indicating that the account details are tokenised (i.e obfuscated)",
            "type": "boolean",
            "example": false
          },
          "payment_frequency": {
            "description": "The frequency that payments will occur, formatted according to ISO 8601 Durations.",
            "type": "string",
            "example": "P1M"
          }
        }
      },
      "fiskil_energy.EnergyPaymentScheduleManualPayment": {
        "type": "object",
        "required": [
          "bill_frequency"
        ],
        "properties": {
          "bill_frequency": {
            "description": "The frequency with which a bill will be issued, formatted according to ISO 8601 Durations.",
            "type": "string",
            "example": "P1M"
          }
        }
      },
      "fiskil_energy.EnergyPlanAdditionalInformation": {
        "type": "object",
        "properties": {
          "bundle_uri": {
            "description": "A link to detail on bundles that this plan can be a part of",
            "type": "string",
            "example": "https://example.com/bundles"
          },
          "eligibility_uri": {
            "description": "A link to detail on eligibility criteria for the plan",
            "type": "string",
            "example": "https://example.com/eligibility"
          },
          "overview_uri": {
            "description": "A link to a general overview of the plan",
            "type": "string",
            "example": "https://example.com/overview"
          },
          "pricing_uri": {
            "description": "A link to detail on pricing for the plan",
            "type": "string",
            "example": "https://example.com/pricing"
          },
          "terms_uri": {
            "description": "A link to terms and conditions for the plan",
            "type": "string",
            "example": "https://example.com/terms"
          }
        }
      },
      "fiskil_energy.EnergyPlanContractFullV2": {
        "type": "object",
        "properties": {
          "additional_fee_information": {
            "description": "Free text field containing additional information of the fees for this contract",
            "type": "string",
            "example": "This is a great value energy plan for households with basic meters"
          },
          "benefit_period": {
            "description": "Description of the benefit period. Should only be present if `term_type` has the value `ONGOING`",
            "type": "string",
            "example": "You'll receieve 20% off the market rate for the first 6 months"
          },
          "bill_frequency": {
            "description": "An array of the available billing schedules for this contract. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)",
            "type": "array",
            "items": {
              "type": "string"
            },
            "example": [
              "P3M",
              "P1Y",
              "P1M"
            ]
          },
          "controlled_load": {
            "description": "Required if pricing model is `SINGLE_RATE_CONT_LOAD` or `TIME_OF_USE_CONT_LOAD` or `FLEXIBLE_CONT_LOAD`",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.EnergyPlanControlledLoad"
            }
          },
          "cooling_off_days": {
            "description": "Number of days in the cooling off period for the contract. Mandatory for plans with type of `MARKET`",
            "type": "integer",
            "example": 14
          },
          "discounts": {
            "description": "Optional list of discounts available for the contract",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.EnergyPlanDiscount"
            }
          },
          "eligibility": {
            "description": "Eligibility restrictions or requirements",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.EnergyPlanEligibility"
            }
          },
          "fees": {
            "description": "An array of fees applicable to the plan",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.EnergyPlanFee"
            }
          },
          "green_power_charges": {
            "description": "Optional list of charges applicable to green power options available for the plan",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.EnergyPlanGreenPowerCharge"
            }
          },
          "incentives": {
            "description": "Optional list of incentives available for the contract",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.EnergyPlanIncentive"
            }
          },
          "intrinsic_green_power": {
            "description": "Describes intrinsic green power for the plan. If present then the plan includes a percentage of green power in the base plan. Should not be present for gas contracts",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_energy.EnergyPlanContractV2IntrinsicGreenPower"
              }
            ]
          },
          "is_fixed": {
            "description": "Flag indicating whether prices are fixed or variable",
            "type": "boolean",
            "example": false
          },
          "meter_types": {
            "description": "An array of the meter types that this contract is available for",
            "type": "array",
            "items": {
              "type": "string"
            },
            "example": [
              "Type 4",
              "Type 4a",
              "Type 5",
              "Type 6"
            ]
          },
          "on_expiry_description": {
            "description": "Free text field that describes what will occur on or prior to expiry of the fixed contract term or benefit period",
            "type": "string",
            "example": "After 6 months you will revert to the market plan"
          },
          "payment_option": {
            "description": "Payment options for this contract",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "BPAY",
                "CREDIT_CARD",
                "DIRECT_DEBIT",
                "OTHER",
                "PAPER_BILL"
              ]
            },
            "example": [
              "CREDIT_CARD",
              "DIRECT_DEBIT"
            ]
          },
          "pricing_model": {
            "description": "The pricing model for the contract. Contracts for gas must use `SINGLE_RATE`. Note that the detail for the enumeration values are:<ul><li>**SINGLE_RATE** - all energy usage is charged at a single unit rate no matter when it is consumed. Multiple unit rates may exist that correspond to varying volumes of usage i.e. a ‘block’ or ‘step’ tariff (first 50kWh @ X cents, next 50kWh at Y cents etc.</li><li>**SINGLE_RATE_CONT_LOAD** - as above, but with an additional, separate unit rate charged for all energy usage from a controlled load i.e. separately metered appliance like hot water service, pool pump etc.</li><li>**TIME_OF_USE** - energy usage is charged at unit rates that vary dependent on time of day and day of week that the energy is consumed</li><li>**TIME_OF_USE_CONT_LOAD** - as above, but with an additional, separate unit rate charged for all energy usage from a controlled load i.e. separately metered appliance like hot water service, pool pump etc.</li><li>**FLEXIBLE** - energy usage is charged at unit rates that vary based on external factors</li><li>**FLEXIBLE_CONT_LOAD** - as above, but with an additional, separate unit rate charged for all energy usage from a controlled load i.e. separately metered appliance like hot water service, pool pump etc.</li><li>**QUOTA** - all energy usage is charged at a single fixed rate, up to a specified usage quota/allowance. All excess usage beyond the allowance is then charged at a single unit rate (may not be the best way to explain it but it is essentially a ‘subscription’ or telco style product i.e. $50/month for up to 150kWh included usage</li></ul>",
            "type": "string",
            "enum": [
              "FLEXIBLE",
              "FLEXIBLE_CONT_LOAD",
              "QUOTA",
              "SINGLE_RATE",
              "SINGLE_RATE_CONT_LOAD",
              "TIME_OF_USE",
              "TIME_OF_USE_CONT_LOAD"
            ],
            "example": "SINGLE_RATE"
          },
          "solar_feed_in_tariff": {
            "description": "Array of feed in tariffs for solar power",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.EnergyPlanSolarFeedInTariff"
            }
          },
          "tariff_period": {
            "description": "Array of tariff periods",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.EnergyPlanTariffPeriod"
            }
          },
          "term_type": {
            "description": "The term for the contract. If absent assumes no specified term",
            "type": "string",
            "enum": [
              "1_YEAR",
              "2_YEAR",
              "3_YEAR",
              "4_YEAR",
              "5_YEAR",
              "ONGOING",
              "OTHER"
            ],
            "example": "ONGOING"
          },
          "terms": {
            "description": "Free text description of the terms for the contract",
            "type": "string",
            "example": "You must pay all bills on time to be eligible for your 20% discount"
          },
          "time_zone": {
            "description": "Required if `pricing_model` is set to `TIME_OF_USE`. Defines the time zone to use for calculation of the time of use thresholds. Defaults to `AEST` if absent",
            "type": "string",
            "enum": [
              "AEST",
              "LOCAL"
            ],
            "example": "AEST"
          },
          "variation": {
            "description": "Free text description of price variation policy and conditions for the contract.  Mandatory if `is_fixed` is false",
            "type": "string",
            "example": "From time-to-time we may vary the cost of your plan as the energy market changes. You will receive 14 days notice via your contact email address."
          }
        }
      },
      "fiskil_energy.EnergyPlanContractV2": {
        "type": "object",
        "required": [
          "is_fixed",
          "payment_option",
          "pricing_model",
          "tariff_period"
        ],
        "properties": {
          "additional_fee_information": {
            "description": "Free text field containing additional information of the fees for this contract",
            "type": "string",
            "example": "We charge additional fees in specific circumstances."
          },
          "controlled_load": {
            "description": "Required if pricing model is `SINGLE_RATE_CONT_LOAD` or `TIME_OF_USE_CONT_LOAD` or `FLEXIBLE_CONT_LOAD`",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.EnergyPlanControlledLoad"
            }
          },
          "discounts": {
            "description": "Optional list of discounts available for the contract",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.EnergyPlanDiscount"
            }
          },
          "eligibility": {
            "description": "Eligibility restrictions or requirements",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.EnergyPlanEligibility"
            }
          },
          "fees": {
            "description": "An array of fees applicable to the plan",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.EnergyPlanFee"
            }
          },
          "green_power_charges": {
            "description": "Optional list of charges applicable to green power",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.EnergyPlanGreenPowerCharge"
            }
          },
          "incentives": {
            "description": "Optional list of incentives available for the contract",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.EnergyPlanIncentive"
            }
          },
          "intrinsic_green_power": {
            "description": "Describes intrinsic green power for the plan. If present then the plan includes a percentage of green power in the base plan. Should not be present for gas contracts",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_energy.EnergyPlanContractV2IntrinsicGreenPower"
              }
            ]
          },
          "is_fixed": {
            "description": "Flag indicating whether prices are fixed or variable",
            "type": "boolean",
            "example": false
          },
          "on_expiry_description": {
            "description": "Free text field that describes what will occur on or prior to expiry of the fixed contract term or benefit period",
            "type": "string",
            "example": "At the end of the contract period you will revert to the market offering plan"
          },
          "payment_option": {
            "description": "Payment options for this contract",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "BPAY",
                "CREDIT_CARD",
                "DIRECT_DEBIT",
                "OTHER",
                "PAPER_BILL"
              ]
            }
          },
          "pricing_model": {
            "description": "The pricing model for the contract.  Contracts for gas must use `SINGLE_RATE`.  Note that the detail for the enumeration values are:<ul><li>**SINGLE_RATE** - all energy usage is charged at a single unit rate no matter when it is consumed. Multiple unit rates may exist that correspond to varying volumes of usage i.e. a ‘block’ or ‘step’ tariff (first 50kWh @ X cents, next 50kWh at Y cents etc.</li><li>**SINGLE_RATE_CONT_LOAD** - as above, but with an additional, separate unit rate charged for all energy usage from a controlled load i.e. separately metered appliance like hot water service, pool pump etc.</li><li>**TIME_OF_USE** - energy usage is charged at unit rates that vary dependent on time of day and day of week that the energy is consumed</li><li>**TIME_OF_USE_CONT_LOAD** - as above, but with an additional, separate unit rate charged for all energy usage from a controlled load i.e. separately metered appliance like hot water service, pool pump etc.</li><li>**FLEXIBLE** - energy usage is charged at unit rates that vary based on external factors</li><li>**FLEXIBLE_CONT_LOAD** - as above, but with an additional, separate unit rate charged for all energy usage from a controlled load i.e. separately metered appliance like hot water service, pool pump etc.</li><li>**QUOTA** - all energy usage is charged at a single fixed rate, up to a specified usage quota/allowance. All excess usage beyond the allowance is then charged at a single unit rate (may not be the best way to explain it but it is essentially a ‘subscription’ or telco style product i.e. $50/month for up to 150kWh included usage</li></ul>",
            "type": "string",
            "enum": [
              "FLEXIBLE",
              "FLEXIBLE_CONT_LOAD",
              "QUOTA",
              "SINGLE_RATE",
              "SINGLE_RATE_CONT_LOAD",
              "TIME_OF_USE",
              "TIME_OF_USE_CONT_LOAD"
            ],
            "example": "TIME_OF_USE_CONT_LOAD"
          },
          "solar_feed_in_tariff": {
            "description": "Array of feed in tariffs for solar power",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.EnergyPlanSolarFeedInTariff"
            }
          },
          "tariff_period": {
            "description": "Array of tariff periods",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.EnergyPlanTariffPeriod"
            }
          },
          "time_zone": {
            "description": "Required if `pricing_model` is set to `TIME_OF_USE`.  Defines the time zone to use for calculation of the time of use thresholds. Defaults to `AEST` if absent",
            "type": "string",
            "enum": [
              "AEST",
              "LOCAL"
            ],
            "example": "AEST"
          },
          "variation": {
            "description": "Free text description of price variation policy and conditions for the contract. Mandatory if `is_fixed` is false",
            "type": "string",
            "example": "Pricing may vary from time to time. We will provide two weeks notice via email."
          }
        }
      },
      "fiskil_energy.EnergyPlanContractV2IntrinsicGreenPower": {
        "type": "object",
        "required": [
          "green_percentage"
        ],
        "properties": {
          "green_percentage": {
            "description": "Percentage of green power intrinsically included in the plan expressed as a fraction",
            "type": "string",
            "example": "0.3"
          }
        }
      },
      "fiskil_energy.EnergyPlanControlledLoad": {
        "type": "object",
        "required": [
          "display_name",
          "rate_block_u_type"
        ],
        "properties": {
          "display_name": {
            "description": "A display name for the controlled load",
            "type": "string",
            "example": "Fixed controlled load"
          },
          "end_date": {
            "description": "Optional end date of the application of the controlled load rate in [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339) date format",
            "type": "string",
            "example": "2025-01-01"
          },
          "rate_block_u_type": {
            "description": "Specifies the type of controlloed load rate",
            "type": "string",
            "enum": [
              "singleRate",
              "timeOfUseRates"
            ],
            "example": "singleRate"
          },
          "single_rate": {
            "description": "Object representing a single controlled load rate.  Required if `rate_block_u_type` is `single_rate`",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_energy.EnergyPlanControlledLoadSingleRate"
              }
            ]
          },
          "start_date": {
            "description": "Optional start date of the application of the controlled load rate",
            "type": "string",
            "example": "2024-06-01"
          },
          "time_of_use_rates": {
            "description": "Array of objects representing time of use rates.  Required if `rate_block_u_type` is `time_of_use_rates`",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.EnergyPlanControlledLoadTimeOfUseRate"
            }
          }
        }
      },
      "fiskil_energy.EnergyPlanControlledLoadSingleRate": {
        "type": "object",
        "required": [
          "display_name",
          "rates"
        ],
        "properties": {
          "daily_supply_charge": {
            "description": "The daily supply charge (exclusive of GST) for this controlled load tier in dollars",
            "type": "string",
            "example": "0.45"
          },
          "description": {
            "description": "Description of the controlled load rate",
            "type": "string",
            "example": "First 100 KWH usage"
          },
          "display_name": {
            "description": "Display name of the controlled load rate",
            "type": "string",
            "example": "Band 1"
          },
          "period": {
            "description": "The charges that occur on a schedule indicates the frequency. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)",
            "type": "string",
            "example": "P3M"
          },
          "rates": {
            "description": "Array of controlled load rates in order of usage volume",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.Rate"
            }
          }
        }
      },
      "fiskil_energy.EnergyPlanControlledLoadTimeOfUse": {
        "type": "object",
        "required": [
          "days",
          "end_time",
          "start_time"
        ],
        "properties": {
          "additional_info": {
            "description": "Display text providing more information on the contrlled load, for e.g. controlled load availability if specific day/time is not known. Required if `start_time` and `end_time` absent or if `additional_info_uri` provided",
            "type": "string",
            "example": "This is our simplest controlled load plan"
          },
          "additional_info_uri": {
            "description": "Optional link to additional information regarding the controlled load",
            "type": "string",
            "example": "https://www.acme-energy.com.au/controlled-load"
          },
          "days": {
            "description": "The days that the rate applies to",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "FRI",
                "MON",
                "PUBLIC_HOLIDAYS",
                "SAT",
                "SUN",
                "THU",
                "TUE",
                "WED"
              ]
            }
          },
          "end_time": {
            "description": "The end of the time period per day for which the rate applies. Formatted as an [ISO8601 time](https://en.wikipedia.org/wiki/ISO_8601#Times)",
            "type": "string",
            "example": "T19:00:00"
          },
          "start_time": {
            "description": "The beginning of the time period per day for which rate applies. Formatted as an [ISO8601 time](https://en.wikipedia.org/wiki/ISO_8601#Times)",
            "type": "string",
            "example": "T05:30:00"
          }
        }
      },
      "fiskil_energy.EnergyPlanControlledLoadTimeOfUseRate": {
        "type": "object",
        "required": [
          "display_name",
          "rates",
          "time_of_use",
          "type"
        ],
        "properties": {
          "daily_supply_charge": {
            "description": "The daily supply charge (exclusive of GST) for this controlled load tier",
            "type": "string",
            "example": "0.45"
          },
          "description": {
            "description": "Description of the controlled load rate",
            "type": "string",
            "example": "Your first 100KWH of usage"
          },
          "display_name": {
            "description": "Display name of the controlled load rate",
            "type": "string",
            "example": "First tier"
          },
          "period": {
            "description": "Usage period for which the block rate applies. Formatted according to ISO 8601 Durations (excludes recurrence syntax). Defaults to P1Y if absent.",
            "type": "string",
            "example": "P1Y"
          },
          "rates": {
            "description": "Array of controlled load rates in order of usage volume",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.Rate"
            }
          },
          "time_of_use": {
            "description": "Array of times of use.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.EnergyPlanControlledLoadTimeOfUse"
            }
          },
          "type": {
            "description": "The type of usage that the rate applies to",
            "type": "string",
            "enum": [
              "OFF_PEAK",
              "PEAK",
              "SHOULDER",
              "SOLAR_SPONGE"
            ],
            "example": "PEAK"
          }
        }
      },
      "fiskil_energy.EnergyPlanDemandTariff": {
        "type": "object",
        "required": [
          "amount",
          "charge_period",
          "display_name",
          "end_time",
          "measurement_period",
          "start_time"
        ],
        "properties": {
          "amount": {
            "description": "The charge amount per measure unit exclusive of GST",
            "type": "string",
            "example": "0.812"
          },
          "charge_period": {
            "description": "Charge period for the demand tariff",
            "type": "string",
            "enum": [
              "DAY",
              "MONTH",
              "TARIFF_PERIOD"
            ],
            "example": "TARIFF_PERIOD"
          },
          "days": {
            "description": "The days that the demand tariff applies to",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "FRI",
                "MON",
                "PUBLIC_HOLIDAYS",
                "SAT",
                "SUN",
                "THU",
                "TUE",
                "WED"
              ]
            },
            "example": [
              "FRI",
              "MON",
              "TUE",
              "WED",
              "THU"
            ]
          },
          "description": {
            "description": "Description of the charge",
            "type": "string",
            "example": "Additional tariffs apply if usage exceeds a specific demand threshold"
          },
          "display_name": {
            "description": "Display name of the charge",
            "type": "string",
            "example": "Demand charges"
          },
          "end_time": {
            "description": "End of the period. Formatted according to ISO 8601 Times. If the time is provided without a UTC offset",
            "type": "string",
            "example": "T19:00:00"
          },
          "max_demand": {
            "description": "Maximum demand for this demand tariff in kW.  If present, must be higher than the value of the minDemand field. If absent, it is assumed the tariff applies for all usage above MinDemand.",
            "type": "string",
            "example": "10.00"
          },
          "measure_unit": {
            "description": "The measurement unit of charge amount. Assumed to be KWH if absent",
            "type": "string",
            "enum": [
              "DAYS",
              "KVA",
              "KVAR",
              "KVARH",
              "KW",
              "KWH",
              "METER",
              "MONTH"
            ],
            "example": "KVA"
          },
          "measurement_period": {
            "description": "Application period for the demand tariff",
            "type": "string",
            "enum": [
              "DAY",
              "MONTH",
              "TARIFF_PERIOD"
            ],
            "example": "DAY"
          },
          "min_demand": {
            "description": "Minimum demand for this demand tariff in kW.  If absent then 0 is assumed",
            "type": "string",
            "example": "5.00"
          },
          "start_time": {
            "description": "Start of the period for which this tariff applies. Formatted as an [ISO8601 time](https://en.wikipedia.org/wiki/ISO_8601#Times)",
            "type": "string",
            "example": "T08:00:00"
          }
        }
      },
      "fiskil_energy.EnergyPlanDetailV2AllOfMeteringCharges": {
        "type": "object",
        "required": [
          "display_name",
          "minimum_value"
        ],
        "properties": {
          "description": {
            "description": "Description of the charge",
            "type": "string",
            "example": "A charge that applies of the technician is unable to read the meter due to failed access"
          },
          "display_name": {
            "description": "Display name of the charge",
            "type": "string",
            "example": "Read retry fee"
          },
          "maximum_value": {
            "description": "The upper limit of the charge if the charge could occur in a range",
            "type": "string",
            "example": "15.00"
          },
          "minimum_value": {
            "description": "Minimum value of the charge if the charge is a range or the absolute value of the charge if no range is specified",
            "type": "string",
            "example": "0.00"
          },
          "period": {
            "description": "The charges that occur on a schedule indicates the frequency. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)",
            "type": "string",
            "example": "P3M"
          }
        }
      },
      "fiskil_energy.EnergyPlanDiscount": {
        "type": "object",
        "required": [
          "display_name",
          "method_u_type",
          "type"
        ],
        "properties": {
          "category": {
            "description": "The type of the discount.  Mandatory if the discount `type` is `CONDITIONAL`",
            "type": "string",
            "enum": [
              "DIRECT_DEBIT",
              "GUARANTEED_DISCOUNT",
              "OTHER",
              "PAY_ON_TIME"
            ],
            "example": "PAY_ON_TIME"
          },
          "description": {
            "description": "The description of the discount",
            "type": "string",
            "example": "Save 2% of your bill if you pay on time"
          },
          "display_name": {
            "description": "The display name of the discount",
            "type": "string",
            "example": "Pay on time discount"
          },
          "end_date": {
            "description": "Optional end date for the discount after which the discount is no longer available expressed as [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339) date",
            "type": "string",
            "example": "2025-01-01"
          },
          "fixed_amount": {
            "description": "Required if `method_u_type` is `fixedAmount`",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_energy.EnergyPlanDiscountFixedAmount"
              }
            ]
          },
          "method_u_type": {
            "description": "The method of calculation of the discount",
            "type": "string",
            "enum": [
              "fixedAmount",
              "percentOfBill",
              "percentOfUse",
              "percentOverThreshold"
            ],
            "example": "percentOfBill"
          },
          "percent_of_bill": {
            "description": "Required if `method_u_type` is `percentOfBill`",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_energy.EnergyPlanDiscountPercentOfBill"
              }
            ]
          },
          "percent_of_use": {
            "description": "Required if `method_u_type` is `percentOfUse`",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_energy.EnergyPlanDiscountPercentOfUse"
              }
            ]
          },
          "percent_over_threshold": {
            "description": "Required if `method_u_type` is `percentOverThreshold`",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_energy.EnergyPlanDiscountPercentOverThreshold"
              }
            ]
          },
          "type": {
            "description": "The type of the discount",
            "type": "string",
            "enum": [
              "CONDITIONAL",
              "GUARANTEED",
              "OTHER"
            ],
            "example": "CONDITIONAL"
          }
        }
      },
      "fiskil_energy.EnergyPlanDiscountFixedAmount": {
        "type": "object",
        "required": [
          "amount"
        ],
        "properties": {
          "amount": {
            "description": "The amount of the discount",
            "type": "string",
            "example": "15.00"
          }
        }
      },
      "fiskil_energy.EnergyPlanDiscountPercentOfBill": {
        "type": "object",
        "required": [
          "rate"
        ],
        "properties": {
          "rate": {
            "description": "The rate of the discount applied to the bill amount expressed as a fraction",
            "type": "string",
            "example": "0.02"
          }
        }
      },
      "fiskil_energy.EnergyPlanDiscountPercentOfUse": {
        "type": "object",
        "required": [
          "rate"
        ],
        "properties": {
          "rate": {
            "description": "The rate of the discount applied to the usage amount expressed as a fraction",
            "type": "string",
            "example": "0.1"
          }
        }
      },
      "fiskil_energy.EnergyPlanDiscountPercentOverThreshold": {
        "type": "object",
        "required": [
          "rate",
          "usage_amount"
        ],
        "properties": {
          "rate": {
            "description": "The rate of the discount over the usage amount expressed as a fraction",
            "type": "string",
            "example": "0.50"
          },
          "usage_amount": {
            "description": "The usage amount threshold above which the discount applies",
            "type": "string",
            "example": "150.00"
          }
        }
      },
      "fiskil_energy.EnergyPlanEligibility": {
        "type": "object",
        "required": [
          "information",
          "type"
        ],
        "properties": {
          "description": {
            "description": "A description of the eligibility restriction",
            "type": "string",
            "example": "To be eligible for this plan you need to purchase a bundle plan of electricity and gas"
          },
          "information": {
            "description": "Information of the eligibility restriction specific to the type of the restriction",
            "type": "string",
            "example": "You must also take up a gas plan with us"
          },
          "type": {
            "description": "The type of the eligibility restriction.<br/>The CONTINGENT_PLAN value indicates that the plan is contingent on the customer taking up an alternate fuel plan from the same retailer (for instance, if the `fuel_type` is `ELECTRICITY` then a `GAS` plan from the same retailer must be taken up)",
            "type": "string",
            "enum": [
              "CONTINGENT_PLAN",
              "EXISTING_BASIC_METER",
              "EXISTING_BATTERY",
              "EXISTING_CUST",
              "EXISTING_POOL",
              "EXISTING_SMART_METER",
              "EXISTING_SOLAR",
              "GROUP_BUY_MEMBER",
              "LOYALTY_MEMBER",
              "MINIMUM_USAGE",
              "NEW_CUSTOMER",
              "NO_SOLAR_FIT",
              "ONLINE_ONLY",
              "ORG_MEMBER",
              "OTHER",
              "REQ_EQUIP_SUPPLIER",
              "SENIOR_CARD",
              "SMALL_BUSINESS",
              "SPECIFIC_LOCATION",
              "SPORT_CLUB_MEMBER",
              "THIRD_PARTY_ONLY"
            ],
            "example": "CONTINGENT_PLAN"
          }
        }
      },
      "fiskil_energy.EnergyPlanFee": {
        "type": "object",
        "required": [
          "term",
          "type"
        ],
        "properties": {
          "amount": {
            "description": "The fee amount. Required if term is not `PERCENT_OF_BILL`",
            "type": "string",
            "example": "17.50"
          },
          "description": {
            "description": "A description of the fee",
            "type": "string",
            "example": "A fixed fee applies for new connections where a technician must attend the site"
          },
          "rate": {
            "description": "The fee rate expressed as a fraction. Required if term is `PERCENT_OF_BILL`",
            "type": "string",
            "example": "0.05"
          },
          "term": {
            "description": "The term of the fee",
            "type": "string",
            "enum": [
              "ANNUAL",
              "BIANNUAL",
              "DAILY",
              "FIXED",
              "MONTHLY",
              "1_YEAR",
              "2_YEAR",
              "3_YEAR",
              "4_YEAR",
              "5_YEAR",
              "PERCENT_OF_BILL",
              "VARIABLE",
              "WEEKLY"
            ],
            "example": "VARIABLE"
          },
          "type": {
            "description": "The type of the fee",
            "type": "string",
            "enum": [
              "CC_PROCESSING",
              "CHEQUE_DISHONOUR",
              "CONNECTION",
              "CONTRIBUTION",
              "DD_DISHONOUR",
              "DISCONNECTION",
              "DISCONNECT_MOVE_OUT",
              "DISCONNECT_NON_PAY",
              "ESTABLISHMENT",
              "EXIT",
              "LATE_PAYMENT",
              "MEMBERSHIP",
              "OTHER",
              "PAPER_BILL",
              "PAYMENT_PROCESSING",
              "RECONNECTION"
            ],
            "example": "CONNECTION"
          }
        }
      },
      "fiskil_energy.EnergyPlanGeography": {
        "type": "object",
        "required": [
          "distributors"
        ],
        "properties": {
          "distributors": {
            "description": "Array of distributors for the plan",
            "type": "array",
            "items": {
              "type": "string"
            },
            "example": [
              "Ausgrid"
            ]
          },
          "excluded_postcodes": {
            "description": "Array of valid Australian postcodes that are specifically excluded from the plan",
            "type": "array",
            "items": {
              "type": "string"
            },
            "example": [
              "3000",
              "3001"
            ]
          },
          "included_postcodes": {
            "description": "Array of valid Australian postcodes that are included in the plan",
            "type": "array",
            "items": {
              "type": "string"
            },
            "example": [
              "4000",
              "4001"
            ]
          }
        }
      },
      "fiskil_energy.EnergyPlanGreenPowerCharge": {
        "type": "object",
        "required": [
          "display_name",
          "scheme",
          "tiers",
          "type"
        ],
        "properties": {
          "description": {
            "description": "The description of the charge",
            "type": "string",
            "example": "For an additional fee you can guarantee you're using renewable energy"
          },
          "display_name": {
            "description": "The display name of the charge",
            "type": "string",
            "example": "Green power guarantee"
          },
          "scheme": {
            "description": "The applicable green power scheme",
            "type": "string",
            "enum": [
              "GREENPOWER",
              "OTHER"
            ],
            "example": "GREENPOWER"
          },
          "tiers": {
            "description": "Array of charge tiers based on the percentage of green power used for the period implied by the type.  Array is in order of increasing percentage of green power",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.EnergyPlanGreenPowerChargeTier"
            }
          },
          "type": {
            "description": "The type of charge",
            "type": "string",
            "enum": [
              "FIXED_PER_DAY",
              "FIXED_PER_MONTH",
              "FIXED_PER_UNIT",
              "FIXED_PER_WEEK",
              "PERCENT_OF_BILL",
              "PERCENT_OF_USE"
            ],
            "example": "FIXED_PER_UNIT"
          }
        }
      },
      "fiskil_energy.EnergyPlanGreenPowerChargeTier": {
        "type": "object",
        "required": [
          "percent_green"
        ],
        "properties": {
          "amount": {
            "description": "The amount of the charge in dollars if the type implies the application of a fixed amount",
            "type": "string",
            "example": "0.10"
          },
          "percent_green": {
            "description": "The upper percentage of green power used applicable for this tier expressed as a fraction",
            "type": "string",
            "example": "1.0"
          },
          "rate": {
            "description": "The rate of the charge if the type implies the application of a rate expressed as a fraction",
            "type": "string",
            "example": "0.1"
          }
        }
      },
      "fiskil_energy.EnergyPlanIncentive": {
        "type": "object",
        "required": [
          "category",
          "description",
          "display_name"
        ],
        "properties": {
          "category": {
            "description": "The type of the incentive",
            "type": "string",
            "enum": [
              "ACCOUNT_CREDIT",
              "GIFT",
              "OTHER"
            ],
            "example": "OTHER"
          },
          "description": {
            "description": "The description of the incentive",
            "type": "string",
            "example": "100 Mega Points are credited to your account 6 months after signup"
          },
          "display_name": {
            "description": "The display name of the incentive",
            "type": "string",
            "example": "Mega Points"
          },
          "eligibility": {
            "description": "A display message outlining an eligibility criteria that may apply",
            "type": "string",
            "example": "You must have a valid mega points customer number and pass it to us when you sign up"
          }
        }
      },
      "fiskil_energy.EnergyPlanSingleRateTariff": {
        "type": "object",
        "required": [
          "display_name",
          "rates"
        ],
        "properties": {
          "description": {
            "description": "Description of the rate",
            "type": "string",
            "example": "This rate applies to your usage at any time of day"
          },
          "display_name": {
            "description": "Display name of the rate",
            "type": "string",
            "example": "Anytime Basic"
          },
          "general_unit_price": {
            "description": "The block rate (unit price) for any usage above the included fixed usage, in dollars per kWh inclusive of GST. Only required if pricingModel field is ‘QUOTA’",
            "type": "string",
            "example": "0.355"
          },
          "period": {
            "description": "Usage period for which the block rate applies. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)",
            "type": "string",
            "example": "P1Y"
          },
          "rates": {
            "description": "Array of controlled load rates in order of usage volume",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.Rate"
            }
          }
        }
      },
      "fiskil_energy.EnergyPlanSolarFeedInTariff": {
        "type": "object",
        "required": [
          "display_name",
          "payer_type",
          "scheme",
          "tariff_u_type"
        ],
        "properties": {
          "description": {
            "description": "A description of the tariff",
            "type": "string",
            "example": "10c per kWH will be credited to your bill"
          },
          "display_name": {
            "description": "The name of the tariff",
            "type": "string",
            "example": "Anytime Solar FIT"
          },
          "end_date": {
            "description": "The end date of the application of the feed in tariff as an [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339) date",
            "type": "string",
            "example": "2025-09-01"
          },
          "payer_type": {
            "description": "The party paying for the tariff",
            "type": "string",
            "enum": [
              "GOVERNMENT",
              "RETAILER"
            ],
            "example": "RETAILER"
          },
          "scheme": {
            "description": "The applicable scheme",
            "type": "string",
            "enum": [
              "OTHER",
              "PREMIUM",
              "CURRENT",
              "VARIABLE"
            ],
            "example": "OTHER"
          },
          "single_tariff": {
            "description": "Represents a constant tariff.  Mandatory if `tariff_u_type` is set to `singleTariff`",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_energy.EnergyPlanSolarFeedInTariffSingleTariff"
              }
            ]
          },
          "start_date": {
            "description": "The start date of the application of the feed in tariff formatted as an [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339) date",
            "type": "string",
            "example": "2024-09-01"
          },
          "tariff_u_type": {
            "description": "The type of tariff",
            "type": "string",
            "enum": [
              "singleTariff",
              "timeVaryingTariffs"
            ],
            "example": "singleTariff"
          },
          "time_varying_tariffs": {
            "description": "TimeVaryingTariffs Represents a tariff based on time.  Mandatory if `tariff_u_type` is set to `timeVaryingTariffs`. DEPRECATED: Use time_varying_tariffs_v2 instead",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_energy.EnergyPlanSolarFeedInTariffTimeVaryingTariff"
              }
            ],
            "x-deprecated": true
          },
          "time_varying_tariffs_v2": {
            "description": "TimeVaryingTariffsV2 Shows tariffs for different times of day and days of the week",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.EnergyPlanSolarFeedInTariffTimeVaryingTariff"
            }
          }
        }
      },
      "fiskil_energy.EnergyPlanSolarFeedInTariffSingleTariff": {
        "type": "object",
        "required": [
          "rates"
        ],
        "properties": {
          "period": {
            "description": "Usage period for which the block rate applies. Formatted according to ISO 8601 Durations (excludes recurrence syntax). Defaults to P1Y if absent.",
            "type": "string",
            "example": "P1Y"
          },
          "rates": {
            "description": "Array of feed in rates",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.Rate"
            }
          }
        }
      },
      "fiskil_energy.EnergyPlanSolarFeedInTariffTimeVaryingTariff": {
        "type": "object",
        "required": [
          "time_variations"
        ],
        "properties": {
          "display_name": {
            "description": "Display name of the tariff.",
            "type": "string",
            "example": "Basic Solar FIT"
          },
          "period": {
            "description": "Usage period for which the block rate applies. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax). Defaults to `P1Y` if absent.",
            "type": "string"
          },
          "rates": {
            "description": "Array of feed in rates",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.Rate"
            }
          },
          "time_variations": {
            "description": "Array of time periods for which this tariff is applicable",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.EnergyPlanSolarFeedInTariffTimeVaryingTariffVariations"
            }
          },
          "type": {
            "description": "The type of the charging time period. If absent applies to all periods",
            "type": "string",
            "enum": [
              "PEAK",
              "OFF_PEAK",
              "SHOULDER"
            ],
            "example": "PEAK"
          }
        }
      },
      "fiskil_energy.EnergyPlanSolarFeedInTariffTimeVaryingTariffVariations": {
        "type": "object",
        "required": [
          "days"
        ],
        "properties": {
          "days": {
            "description": "The days that the tariff applies to. At least one entry required",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "FRI",
                "MON",
                "PUBLIC_HOLIDAYS",
                "SAT",
                "SUN",
                "THU",
                "TUE",
                "WED"
              ]
            }
          },
          "end_time": {
            "description": "The end of the time period per day for which the tariff applies. If absent assumes end of day (ie. one second before midnight)",
            "type": "string",
            "example": "T22:00:00"
          },
          "start_time": {
            "description": "The beginning of the time period per day for which the tariff applies.  If absent assumes start of day (ie. midnight)",
            "type": "string",
            "example": "T05:00:00"
          }
        }
      },
      "fiskil_energy.EnergyPlanTariffPeriod": {
        "type": "object",
        "required": [
          "display_name",
          "end_date",
          "rate_block_u_type",
          "start_date"
        ],
        "properties": {
          "banded_daily_supply_charges": {
            "description": "BandedDailySupplyCharges Array representing banded daily supply charge rates. Mandatory if _daily_supply_charge_type_ is `BAND`.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.Rate"
            }
          },
          "daily_supply_charge": {
            "description": "DailySupplyCharge The amount of access charge for the tariff period, in dollars per day exclusive of GST. Mandatory if _daily_supply_charge_type_ is `SINGLE`.",
            "type": "string",
            "example": "0.54"
          },
          "daily_supply_charge_type": {
            "description": "DailySupplyChargeType Specifies if daily supply charge is single or banded. Unset if the tariff period has no daily supply charges",
            "type": "string",
            "enum": [
              "BAND",
              "SINGLE"
            ],
            "example": "SINGLE"
          },
          "daily_supply_charges": {
            "description": "The amount of access charge for the tariff period, in dollars per day exclusive of GST. DEPRECATED: Use daily_supply_charge or banded_daily_supply_charges instead",
            "type": "string",
            "x-deprecated": true,
            "example": "0.54"
          },
          "demand_charges": {
            "description": "Array of demand charges.  Required if `rate_block_u_type` is demandCharges",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.EnergyPlanDemandTariff"
            }
          },
          "display_name": {
            "description": "The name of the tariff period",
            "type": "string",
            "example": "Basic Any Time"
          },
          "end_date": {
            "description": "The end date of the tariff period in a calendar year.  Formatted in mm-dd format",
            "type": "string",
            "example": "31-12"
          },
          "rate_block_u_type": {
            "description": "Specifies the type of rate applicable to this tariff period",
            "type": "string",
            "enum": [
              "demandCharges",
              "singleRate",
              "timeOfUseRates"
            ],
            "example": "singleRate"
          },
          "single_rate": {
            "description": "Object representing a single rate.  Required if `rate_block_u_type` is `singleRate`",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_energy.EnergyPlanSingleRateTariff"
              }
            ]
          },
          "start_date": {
            "description": "The start date of the tariff period in a calendar year.  Formatted in mm-dd format",
            "type": "string",
            "example": "01-01"
          },
          "time_of_use_rates": {
            "description": "Array of objects representing time of use rates. Required if rate_block_u_type is `timeOfUseRates`",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.EnergyPlanTimeOfUseTariff"
            }
          },
          "time_zone": {
            "description": "Specifies the charge specific time zone for calculation of the time of use thresholds. If absent, timezone value in EnergyPlanContract is assumed.",
            "type": "string",
            "enum": [
              "AEST",
              "LOCAL"
            ],
            "example": "AEST"
          },
          "type": {
            "description": "Type of charge. Assumed to be `OTHER` if absent",
            "type": "string",
            "enum": [
              "ENVIRONMENTAL",
              "METERING",
              "NETWORK",
              "OTHER",
              "RCTI",
              "REGULATED",
              "RETAIL_SERVICE"
            ],
            "example": "RETAIL_SERVICE"
          }
        }
      },
      "fiskil_energy.EnergyPlanTimeOfUse": {
        "type": "object",
        "required": [
          "days",
          "end_time",
          "start_time"
        ],
        "properties": {
          "days": {
            "description": "The days that the rate applies to",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "FRI",
                "MON",
                "PUBLIC_HOLIDAYS",
                "SAT",
                "SUN",
                "THU",
                "TUE",
                "WED"
              ]
            }
          },
          "end_time": {
            "description": "The end of the time period per day for which the rate applies. Formatted as an [ISO8601 time](https://en.wikipedia.org/wiki/ISO_8601#Times)",
            "type": "string",
            "example": "T19:00:00"
          },
          "start_time": {
            "description": "The beginning of the time period per day for which rate applies. Formatted as an [ISO8601 time](https://en.wikipedia.org/wiki/ISO_8601#Times)",
            "type": "string",
            "example": "T05:30:00"
          }
        }
      },
      "fiskil_energy.EnergyPlanTimeOfUseTariff": {
        "type": "object",
        "required": [
          "display_name",
          "rates",
          "time_of_use",
          "type"
        ],
        "properties": {
          "description": {
            "description": "Description of the rate",
            "type": "string",
            "example": "The standard Time-Of-Use rates applying to your usage"
          },
          "display_name": {
            "description": "Display name of the rate",
            "type": "string",
            "example": "ToU rate"
          },
          "period": {
            "description": "Usage period for which the block rate applies. Formatted according to ISO 8601 Durations (excludes recurrence syntax). Defaults to P1Y if absent.",
            "type": "string",
            "example": "P1Y"
          },
          "rates": {
            "description": "Array of rates in order of usage volume",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.Rate"
            }
          },
          "time_of_use": {
            "description": "Array of times of use",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.EnergyPlanTimeOfUse"
            }
          },
          "type": {
            "description": "The type of usage that the rate applies to",
            "type": "string",
            "enum": [
              "OFF_PEAK",
              "PEAK",
              "SHOULDER",
              "SHOULDER1",
              "SHOULDER2"
            ],
            "example": "PEAK"
          }
        }
      },
      "fiskil_energy.EnergyServicePointConsumerProfile": {
        "type": "object",
        "properties": {
          "classification": {
            "description": "A code that defines the consumer class as defined in the National Energy Retail Regulations, or in overriding Jurisdictional instruments",
            "type": "string",
            "enum": [
              "BUSINESS",
              "RESIDENTIAL"
            ],
            "example": "RESIDENTIAL"
          },
          "threshold": {
            "description": "A code that defines the consumption threshold as defined in the National Energy Retail Regulations, or in overriding Jurisdictional instruments. Note the details of enumeration values below: <ul><li>**LOW** - Consumption is less than the ‘lower consumption threshold’ as defined in the National Energy Retail Regulations</li><li>**MEDIUM** - Consumption is equal to or greater than the ‘lower consumption threshold’, but less than the ‘upper consumption threshold’, as defined in the National Energy Retail Regulations</li><li>**HIGH** - Consumption is equal to or greater than the ‘upper consumption threshold’ as defined in the National Energy Retail Regulations</li></ul>",
            "type": "string",
            "enum": [
              "HIGH",
              "LOW",
              "MEDIUM"
            ],
            "example": "LOW"
          }
        }
      },
      "fiskil_energy.EnergyServicePointDetailDistributionLossFactor": {
        "type": "object",
        "required": [
          "code",
          "description",
          "loss_value"
        ],
        "properties": {
          "code": {
            "description": "A code used to identify data loss factor for the service point values. Refer to [AEMO distribution loss factor documents](https://aemo.com.au/en/energy-systems/electricity/national-electricity-market-nem/market-operations/loss-factors-and-regional-boundaries) for each financial year to interpret",
            "type": "string",
            "example": "HSTL"
          },
          "description": {
            "description": "Description of the data loss factor code and value",
            "type": "string",
            "example": "Subtransmission network"
          },
          "loss_value": {
            "description": "The value associated with the loss factor code",
            "type": "string",
            "example": "1.0116"
          }
        }
      },
      "fiskil_energy.EnergyServicePointDetailMeter": {
        "type": "object",
        "required": [
          "meter_id",
          "specifications"
        ],
        "properties": {
          "meter_id": {
            "description": "The meter ID uniquely identifies a meter for a given service point.  It is unique in the context of the service point.  It is not globally unique",
            "type": "string",
            "example": "ERFC1239302"
          },
          "registers": {
            "description": "Usage data registers available from the meter. This may be empty where there are no meters physically installed at the service point",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.EnergyServicePointDetailRegisters"
            }
          },
          "specifications": {
            "description": "Technical characteristics of the meter",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_energy.EnergyServicePointDetailSpecifications"
              }
            ]
          }
        }
      },
      "fiskil_energy.EnergyServicePointDetailRegisters": {
        "type": "object",
        "required": [
          "register_consumption_type",
          "register_id"
        ],
        "properties": {
          "averaged_daily_load": {
            "description": "The energy delivered through a connection point or metering point over an extended period normalised to a 'per day' basis (kWh). This value is calculated annually.",
            "type": "number",
            "example": 18.32
          },
          "consumption_type": {
            "description": "Actual/Subtractive Indicator. Note the details of enumeration values below: <ul><li>**ACTUAL** implies volume of energy actually metered between two dates</li><li>**CUMULATIVE** indicates a meter reading for a specific date. A second Meter Reading is required to determine the consumption between those two Meter Reading dates</li></ul>",
            "type": "string",
            "enum": [
              "ACTUAL",
              "CUMULATIVE"
            ],
            "example": "CUMULATIVE"
          },
          "controlled_load": {
            "description": "Indicates whether the energy recorded by this register is created under a Controlled Load regime",
            "type": "boolean",
            "example": true
          },
          "multiplier": {
            "description": "Multiplier required to take a register value and turn it into a value representing billable energy",
            "type": "number",
            "example": 1.8
          },
          "network_tariff_code": {
            "description": "The Network Tariff Code is a free text field containing a code supplied and published by the local network service provider",
            "type": "string",
            "example": "NTC100"
          },
          "register_consumption_type": {
            "description": "Indicates the consumption type of register",
            "type": "string",
            "enum": [
              "ACTIVE",
              "ACTIVE_IMPORT",
              "BASIC",
              "INTERVAL",
              "PROFILE_DATA",
              "REACTIVE",
              "REACTIVE_IMPORT"
            ],
            "example": "ACTIVE"
          },
          "register_id": {
            "description": "Unique identifier of the register within this service point. Is not globally unique",
            "type": "string",
            "example": "S1"
          },
          "register_suffix": {
            "description": "Register suffix of the meter register where the meter reads are obtained",
            "type": "string",
            "example": "S1"
          },
          "time_of_day": {
            "description": "Code to identify the time validity of register contents",
            "type": "string",
            "enum": [
              "ALLDAY",
              "BUSINESS",
              "CONTROLLED",
              "DEMAND",
              "EVENING",
              "INTERVAL",
              "OFFPEAK",
              "PEAK",
              "SHOULDER"
            ],
            "example": "CONTROLLED"
          },
          "unit_of_measure": {
            "description": "UnitOfMeasure The unit of measure for data held in this register",
            "type": "string",
            "example": "KWH"
          }
        }
      },
      "fiskil_energy.EnergyServicePointDetailRelatedParticipants": {
        "type": "object",
        "required": [
          "party",
          "role"
        ],
        "properties": {
          "party": {
            "description": "The name of the party/organisation related to this service point",
            "type": "string",
            "example": "ACME CO"
          },
          "role": {
            "description": "Role The role performed by this participant in relation to the service point. Note the details of enumeration values below: <ul><li>**FRMP** - Financially Responsible Market Participant</li><li>**LNSP** - Local Network Service Provider or Embedded Network Manager for child connection points</li><li>**DRSP** - wholesale Demand Response and/or market ancillary Service Provider and note that where it is not relevant for a NMI it will not be included</li></ul>",
            "type": "string",
            "enum": [
              "DRSP",
              "FRMP",
              "LNSP"
            ],
            "example": "FRMP"
          }
        }
      },
      "fiskil_energy.EnergyServicePointDetailSpecifications": {
        "type": "object",
        "required": [
          "installation_type",
          "status"
        ],
        "properties": {
          "installation_type": {
            "description": "The metering Installation type code indicates whether the metering installation has to be manually read. Note the details of enumeration values below: <ul><li>**BASIC** - Accumulation Meter – Type 6</li><li>**COMMS1** - Interval Meter with communications – Type 1</li><li>**COMMS2** - Interval Meter with communications – Type 2</li><li>**COMMS3** - Interval Meter with communications – Type 3</li><li>**COMMS4** - Interval Meter with communications – Type 4</li><li>**COMMS4C** - CT connected metering installation that meets the minimum services specifications</li><li>**COMMS4D** - Whole current metering installation that meets the minimum services specifications</li><li>**MRAM** - Small customer metering installation – Type 4A</li><li>**MRIM** - Manually Read Interval Meter – Type 5</li><li>**UMCP** - Unmetered Supply – Type 7</li><li>**VICAMI** - A relevant metering installation as defined in clause 9.9C of the NER</li><li>**NCONUML** - Non-contestable unmeter load - Introduced as part of Global Settlement</li></ul>",
            "type": "string",
            "enum": [
              "BASIC",
              "COMMS1",
              "COMMS2",
              "COMMS3",
              "COMMS4",
              "COMMS4C",
              "COMMS4D",
              "MRAM",
              "MRIM",
              "NCOLNUML",
              "PROF",
              "SAMPLE",
              "UMCP",
              "VICAMI"
            ],
            "example": "BASIC"
          },
          "manufacturer": {
            "description": "Free text field to identify the manufacturer of the installed meter",
            "type": "string",
            "example": "Metering Company"
          },
          "model": {
            "description": "Free text field to identify the meter manufacturer’s designation for the meter model",
            "type": "string",
            "example": "MeasureTec"
          },
          "next_scheduled_read_date": {
            "description": "This date is the next scheduled meter read date (NSRD) if a manual Meter Reading is required",
            "type": "string",
            "example": "2024-12-05"
          },
          "read_type": {
            "description": "Code to denote the method and frequency of Meter Reading. The value is formatted as follows: <ul><li>First Character = Remote (R) or Manual (M)</li><li>Second Character = Mode: T = telephone W = wireless P = powerline I = infra-red G = galvanic V = visual </li><li>Third Character = Frequency of Scheduled Meter Readings: 1 = Twelve times per year 2 = Six times per year 3 = Four times per year D = Daily or weekly</li><li>Optional Fourth Character = to identify what interval length the meter is capable of reading. This includes five, 15 and 30 minute granularity as the following: A – 5 minute B – 15 minute C – 30 minute D – Cannot convert to 5 minute (i.e. due to metering installation de-energised) M - Manually Read Accumulation Meter</li></ul> For example, <ul><li>MV3 = Manual, Visual, Quarterly</li> <li>MV3M = Manual, Visual, Quarterly, Manually Read Accumulation Meter</li> <li>RWDC = Remote, Wireless, Daily, 30 minutes interval</li></ul>",
            "type": "string",
            "example": "MV3"
          },
          "status": {
            "description": "A code to denote the status of the meter. Note the details of enumeration values below: <ul><li>**CURRENT** -Applies when a meter is current and not disconnected</li><li>**DISCONNECTED** - Applies when a meter is present but has been remotely disconnected</li></ul>",
            "type": "string",
            "enum": [
              "CURRENT",
              "DISCONNECTED"
            ]
          }
        }
      },
      "fiskil_energy.EnergyUsageReadBasicRead": {
        "type": "object",
        "required": [
          "value"
        ],
        "properties": {
          "quality": {
            "description": "The quality of the read taken.  If absent then assumed to be ACTUAL",
            "type": "string",
            "enum": [
              "ACTUAL",
              "FINAL_SUBSTITUTE",
              "SUBSTITUTE"
            ],
            "example": "ACTUAL"
          },
          "value": {
            "description": "Meter read value.  If positive then it means consumption, if negative it means export",
            "type": "number",
            "example": 550
          }
        }
      },
      "fiskil_energy.EnergyUsageReadIntervalRead": {
        "type": "object",
        "required": [
          "aggregate_value"
        ],
        "properties": {
          "aggregate_value": {
            "description": "The aggregate sum of the interval read values. If positive then it means net consumption, if negative it means net export",
            "type": "number",
            "example": 549.84
          },
          "interval_reads": {
            "description": "Array of Interval read values. If positive then it means consumption, if negative it means export. Each read value indicates the read for the interval specified by `read_interval_length` beginning at midnight of `read_start_date` (for example 00:00 to 00:30 would be the first reading in a 30 minute Interval)",
            "type": "array",
            "items": {
              "type": "number"
            }
          },
          "read_interval_length": {
            "description": "Read interval length in minutes. Typically 5 minutes or 30 minutes",
            "type": "integer",
            "example": 5
          },
          "read_qualities": {
            "description": "Specifies quality of reads that are not ACTUAL. For read indices that are not specified, quality is assumed to be ACTUAL. If not present, all quality of all reads are assumed to be actual.\nFor example, an entry with a `start_interval` of `1` and an `end_interval` of `3` where `read_interval_length` is `5` would denote the 15 minute period from 00:00 on `read_start_date` until\n00:15 on `read_start_date` since it covers the three intervals:\n* Interval 1: 00:00 - 00:05\n* Interval 2: 00:05 - 00:10\n* Interval 3: 00:10 - 00:15",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.EnergyUsageReadIntervalReadReadQualities"
            }
          }
        }
      },
      "fiskil_energy.EnergyUsageReadIntervalReadReadQualities": {
        "type": "object",
        "required": [
          "end_interval",
          "quality",
          "start_interval"
        ],
        "properties": {
          "end_interval": {
            "description": "End interval for read quality flag.",
            "type": "integer",
            "example": 5
          },
          "quality": {
            "description": "The quality of the read taken",
            "type": "string",
            "enum": [
              "FINAL_SUBSTITUTE",
              "SUBSTITUTE"
            ],
            "example": "SUBSTITUTE"
          },
          "start_interval": {
            "description": "Start interval for read quality flag. First read begins at 1",
            "type": "integer",
            "example": 1
          }
        }
      },
      "fiskil_energy.Invoice": {
        "type": "object",
        "required": [
          "account_id",
          "arrangement_id",
          "balance_at_issue",
          "fiskil_id",
          "institution_id",
          "invoice_number",
          "issue_date",
          "payment_status",
          "service_points"
        ],
        "properties": {
          "account_charges": {
            "description": "Object contains account level charges and credits related to electricity usage",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_energy.EnergyInvoiceAccountCharges"
              }
            ]
          },
          "account_id": {
            "description": "The ID of the account for which the invoice was issued",
            "type": "string",
            "example": "A123"
          },
          "arrangement_id": {
            "description": "The ID of the CDR arrangement that was used to fetch this invoice record",
            "type": "string",
            "example": "arr678"
          },
          "balance_at_issue": {
            "description": "The account balance at the time the invoice was issued",
            "type": "string",
            "example": "100.00"
          },
          "due_date": {
            "description": "The date that the invoice is due to be paid",
            "type": "string",
            "example": "2023-09-30"
          },
          "electricity": {
            "description": "Object containing charges and credits related to electricity usage",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_energy.EnergyInvoiceElectricityUsageCharges"
              }
            ]
          },
          "fiskil_id": {
            "description": "The fiskil identifier for this invoice record",
            "type": "string",
            "example": "energy_invoice_abcdef"
          },
          "gas": {
            "description": "Object containing charges and credits related to gas usage",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_energy.EnergyInvoiceGasUsageCharges"
              }
            ]
          },
          "gst_amount": {
            "description": "The total GST amount for this invoice. If absent then zero is assumed",
            "type": "string",
            "example": "10.00"
          },
          "institution_id": {
            "description": "The Fiskil identifier for the institution that provided this invoice",
            "type": "string",
            "example": "140"
          },
          "invoice_amount": {
            "description": "The net amount due for this invoice regardless of previous balance",
            "type": "string",
            "example": "120.00"
          },
          "invoice_number": {
            "description": "The number assigned to this invoice by the energy Retailer",
            "type": "string",
            "example": "INV123456"
          },
          "issue_date": {
            "description": "The date that the invoice was actually issued (as opposed to generated or calculated)",
            "type": "string",
            "example": "2023-09-15"
          },
          "pay_on_time_discount": {
            "description": "A discount for on time payment",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_energy.EnergyInvoicePayOnTimeDiscount"
              }
            ]
          },
          "payment_status": {
            "description": "Indicator of the payment status for the invoice",
            "type": "string",
            "enum": [
              "NOT_PAID",
              "PAID",
              "PARTIALLY_PAID"
            ],
            "example": "PAID"
          },
          "period": {
            "description": "Object containing the start and end date for the period covered by the invoice. Mandatory if any usage or demand based charges are included in the invoice",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_energy.EnergyInvoicePeriod"
              }
            ]
          },
          "service_points": {
            "description": "Array of service point IDs to which this invoice applies. May be empty if the invoice contains no electricity usage related charges",
            "type": "array",
            "items": {
              "type": "string"
            },
            "example": [
              "SP123",
              "SP124"
            ]
          }
        }
      },
      "fiskil_energy.InvoicesBody": {
        "type": "object",
        "required": [
          "invoices"
        ],
        "properties": {
          "invoices": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.Invoice"
            }
          },
          "links": {
            "$ref": "#/components/schemas/httputil.Links"
          }
        }
      },
      "fiskil_energy.PaymentSchedule": {
        "type": "object",
        "required": [
          "account_id",
          "arrangement_id",
          "fiskil_id",
          "institution_id",
          "payment_schedule_u_type"
        ],
        "properties": {
          "account_id": {
            "description": "The ID of the account that the payment schedule relates to",
            "type": "string",
            "example": "acc123"
          },
          "amount": {
            "description": "Optional payment amount indicating that a constant payment amount is scheduled to be paid (used in bill smoothing scenarios)",
            "type": "string",
            "example": "100.00"
          },
          "arrangement_id": {
            "description": "The ID of the CDR arrangement that was used to fetch this Payment schedule",
            "type": "string",
            "example": "arr678"
          },
          "card_debit": {
            "description": "Represents a regular credit card payment schedule. Mandatory if `payment_schedule_u_type` is set to `cardDebit`",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_energy.EnergyPaymentScheduleCardDebit"
              }
            ]
          },
          "digital_wallet": {
            "description": "Represents a regular payment from a digital wallet. Mandatory if `payment_schedule_u_type` is set to `digitalWallet`",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_energy.EnergyPaymentScheduleDigitalWallet"
              }
            ]
          },
          "direct_debit": {
            "description": "Represents a regular direct debit from a specified bank account. Mandatory if payment_schedule_u_type is set to `directDebit`",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_energy.EnergyPaymentScheduleDirectDebit"
              }
            ]
          },
          "fiskil_id": {
            "description": "The Fiskil ID for this Payment Schedule record",
            "type": "string",
            "example": "energy_ps_abcdef123"
          },
          "institution_id": {
            "description": "The Fiskil ID for the institution that provided this payment schedule data",
            "type": "string",
            "example": "140"
          },
          "manual_payment": {
            "description": "Represents a manual payment schedule where the customer pays in response to a delivered statement. Mandatory if payment_schedule_u_type is set to `manualPayment`",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_energy.EnergyPaymentScheduleManualPayment"
              }
            ]
          },
          "payment_schedule_u_type": {
            "description": "The type of object present in this response",
            "type": "string",
            "enum": [
              "cardDebit",
              "digitalWallet",
              "directDebit",
              "manualPayment"
            ],
            "example": "cardDebit"
          }
        }
      },
      "fiskil_energy.PaymentScheduleBody": {
        "type": "object",
        "required": [
          "payment_schedules"
        ],
        "properties": {
          "payment_schedules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.PaymentSchedule"
            },
            "x-order": "1"
          },
          "links": {
            "allOf": [
              {
                "$ref": "#/components/schemas/httputil.Links"
              }
            ],
            "x-order": "2"
          }
        }
      },
      "fiskil_energy.Plan": {
        "type": "object",
        "required": [
          "brand",
          "brand_name",
          "fuel_type",
          "institution_id",
          "institution_name",
          "last_updated",
          "plan_id",
          "type"
        ],
        "properties": {
          "additional_information": {
            "description": "Contains links to additional information on specific topics",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_energy.EnergyPlanAdditionalInformation"
              }
            ]
          },
          "application_uri": {
            "description": "A link to an application web page where this plan can be applied for",
            "type": "string",
            "example": "https://example.com/apply"
          },
          "brand": {
            "description": "The ID of the brand under which this plan is offered",
            "type": "string",
            "example": "Brand123"
          },
          "brand_name": {
            "description": "The display name of the brand under which this plan is offered",
            "type": "string",
            "example": "ACME Energy"
          },
          "customer_type": {
            "description": "The type of customer that the plan is offered to",
            "type": "string",
            "enum": [
              "BUSINESS",
              "RESIDENTIAL"
            ],
            "example": "RESIDENTIAL"
          },
          "description": {
            "description": "A description of the plan",
            "type": "string",
            "example": "A simple flat-rate residential energy plan."
          },
          "display_name": {
            "description": "The display name of the plan",
            "type": "string",
            "example": "Everyday Simple"
          },
          "effective_from": {
            "description": "The date and time from which this plan is effective",
            "type": "string",
            "example": "2023-01-01T00:00:00Z"
          },
          "effective_to": {
            "description": "The date and time at which this plan will be retired",
            "type": "string",
            "example": "2025-01-01T00:00:00Z"
          },
          "fuel_type": {
            "description": "The fuel types covered by the plan",
            "type": "string",
            "enum": [
              "DUAL",
              "ELECTRICITY",
              "GAS"
            ],
            "example": "ELECTRICITY"
          },
          "geography": {
            "description": "Describes the geographical area that the plan is available for",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_energy.EnergyPlanGeography"
              }
            ]
          },
          "institution_id": {
            "description": "The Fiskil identifier for the institution that offers this plan",
            "type": "string",
            "example": "140"
          },
          "institution_name": {
            "description": "The name of the institution that offers this plan",
            "type": "string",
            "example": "ACME Energy Corp."
          },
          "last_updated": {
            "description": "The last date and time that the information for this plan was changed",
            "type": "string",
            "example": "2024-09-15T12:34:56Z"
          },
          "plan_id": {
            "description": "The ID of the specific plan",
            "type": "string",
            "example": "89e4cf54-1228-473f-aa99-38fcc7c6cc4d"
          },
          "type": {
            "description": "The type of the plan",
            "type": "string",
            "enum": [
              "MARKET",
              "REGULATED",
              "STANDING"
            ],
            "example": "MARKET"
          }
        }
      },
      "fiskil_energy.PlanBody": {
        "type": "object",
        "required": [
          "plans"
        ],
        "properties": {
          "plans": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.Plan"
            },
            "x-order": "1"
          },
          "links": {
            "allOf": [
              {
                "$ref": "#/components/schemas/httputil.Links"
              }
            ],
            "x-order": "2"
          }
        }
      },
      "fiskil_energy.PlanDetail": {
        "type": "object",
        "required": [
          "brand",
          "brand_name",
          "fuel_type",
          "institution_id",
          "institution_name",
          "last_updated",
          "plan_id",
          "type"
        ],
        "properties": {
          "additional_information": {
            "description": "Contains links to additional information on specific topics",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_energy.EnergyPlanAdditionalInformation"
              }
            ]
          },
          "application_uri": {
            "description": "A link to an application web page where this plan can be applied for",
            "type": "string",
            "example": "https://example.com/apply"
          },
          "brand": {
            "description": "The ID of the brand under which this plan is offered",
            "type": "string",
            "example": "Brand123"
          },
          "brand_name": {
            "description": "The display name of the brand under which this plan is offered",
            "type": "string",
            "example": "ACME Energy"
          },
          "customer_type": {
            "description": "The type of customer that the plan is offered to",
            "type": "string",
            "enum": [
              "BUSINESS",
              "RESIDENTIAL"
            ],
            "example": "RESIDENTIAL"
          },
          "description": {
            "description": "A description of the plan",
            "type": "string",
            "example": "A simple flat-rate residential energy plan."
          },
          "display_name": {
            "description": "The display name of the plan",
            "type": "string",
            "example": "Everyday Simple"
          },
          "effective_from": {
            "description": "The date and time from which this plan is effective",
            "type": "string",
            "example": "2023-01-01T00:00:00Z"
          },
          "effective_to": {
            "description": "The date and time at which this plan will be retired",
            "type": "string",
            "example": "2025-01-01T00:00:00Z"
          },
          "electricity_contract": {
            "description": "Details of the electricity supply contract offered with this plan (if `fuel_type` is `ELECTRICITY` or `DUAL`)",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_energy.EnergyPlanContractFullV2"
              }
            ]
          },
          "fuel_type": {
            "description": "The fuel types covered by the plan",
            "type": "string",
            "enum": [
              "DUAL",
              "ELECTRICITY",
              "GAS"
            ],
            "example": "ELECTRICITY"
          },
          "gas_contract": {
            "description": "Details of the gas supply contract offered with this plan (if `fuel_type` is `GAS` or `DUAL`)",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_energy.EnergyPlanContractFullV2"
              }
            ]
          },
          "geography": {
            "description": "Describes the geographical area that the plan is available for",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_energy.EnergyPlanGeography"
              }
            ]
          },
          "institution_id": {
            "description": "The Fiskil identifier for the institution that offers this plan",
            "type": "string",
            "example": "140"
          },
          "institution_name": {
            "description": "The name of the institution that offers this plan",
            "type": "string",
            "example": "ACME Energy Corp."
          },
          "last_updated": {
            "description": "The last date and time that the information for this plan was changed",
            "type": "string",
            "example": "2024-09-15T12:34:56Z"
          },
          "metering_charges": {
            "description": "List of charges associated with metering requirements for the plan",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.EnergyPlanDetailV2AllOfMeteringCharges"
            }
          },
          "plan_id": {
            "description": "The ID of the specific plan",
            "type": "string",
            "example": "89e4cf54-1228-473f-aa99-38fcc7c6cc4d"
          },
          "type": {
            "description": "The type of the plan",
            "type": "string",
            "enum": [
              "MARKET",
              "REGULATED",
              "STANDING"
            ],
            "example": "MARKET"
          }
        }
      },
      "fiskil_energy.PlanDetailResponse": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/fiskil_energy.PlanDetail"
          }
        }
      },
      "fiskil_energy.Rate": {
        "type": "object",
        "required": [
          "unit_price"
        ],
        "properties": {
          "measure_unit": {
            "description": "The measurement unit of rate. Assumed to be KWH if absent",
            "type": "string",
            "enum": [
              "DAYS",
              "KVA",
              "KVAR",
              "KVARH",
              "KW",
              "KWH",
              "METER",
              "MONTH"
            ],
            "example": "KWH"
          },
          "unit_price": {
            "description": "Unit price of usage per  measure unit (exclusive of GST)",
            "type": "string",
            "example": "0.643"
          },
          "volume": {
            "description": "Volume in kWh that this rate applies to. Only applicable for ‘stepped’ rates where different rates apply for different volumes of usage in a period",
            "type": "number",
            "example": 100
          }
        }
      },
      "fiskil_energy.ServicePoint": {
        "type": "object",
        "required": [
          "arrangement_id",
          "distribution_loss_factor",
          "fiskil_id",
          "institution_id",
          "jurisdiction_code",
          "last_update_date_time",
          "location",
          "national_metering_id",
          "related_participants",
          "service_point_classification",
          "service_point_id",
          "service_point_status",
          "valid_from_date"
        ],
        "properties": {
          "arrangement_id": {
            "description": "The ID of the CDR arrangement/consent that was used to load this servicepoint",
            "type": "string",
            "example": "fc2afe66-44bc-4c5c-9427-20fa1cf40812"
          },
          "consumer_profile": {
            "description": "Properties of the consumer at this servicepoint",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_energy.EnergyServicePointConsumerProfile"
              }
            ]
          },
          "distribution_loss_factor": {
            "description": "Details about supply loss during distribution of utilities",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_energy.EnergyServicePointDetailDistributionLossFactor"
              }
            ]
          },
          "fiskil_id": {
            "description": "The Fiskil identifier for this servicepoint",
            "type": "string",
            "example": "energy_sp_abcdef1234"
          },
          "institution_id": {
            "description": "The Fiskil identifier for the institution that has provided the service point data",
            "type": "string",
            "example": "140"
          },
          "is_generator": {
            "description": "This flag determines whether the energy at this connection point is to be treated as consumer load or as a generating unit(this may include generator auxiliary loads). If absent defaults to false. <br>**Note:** Only applicable for scheduled or semischeduled generators, does not indicate on site generation by consumer",
            "type": "boolean",
            "example": false
          },
          "jurisdiction_code": {
            "description": "Code to which the service point belongs. This code defines the jurisdictional rules which apply to the service point. Note the details of enumeration values below:<ul><li>**ALL** - All Jurisdictions</li><li>**ACT** - Australian Capital Territory</li><li>**NEM** - National Electricity Market</li><li>**NSW** - New South Wales</li><li>**QLD** - Queensland</li><li>**SA** - South Australia</li><li>**TAS** - Tasmania</li><li>**VIC** - Victoria</li></ul>",
            "type": "string",
            "enum": [
              "ACT",
              "ALL",
              "NEM",
              "NSW",
              "QLD",
              "SA",
              "TAS",
              "VIC"
            ],
            "example": "NEM"
          },
          "last_consumer_change_date": {
            "description": "The date the account holder changed for the NMI",
            "type": "string",
            "example": "2024-09-01"
          },
          "last_update_date_time": {
            "description": "The date and time that the information for this service point was modified",
            "type": "string",
            "example": "2024-09-10T14:00:00+10:00"
          },
          "location": {
            "description": "The address that the service point is located at",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_banking.CommonPhysicalAddress"
              }
            ]
          },
          "meters": {
            "description": "The meters associated with the service point. This may be empty where there are no meters physically installed at the service point",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.EnergyServicePointDetailMeter"
            }
          },
          "national_metering_id": {
            "description": "The independent ID of the service point, known in the industry as the NMI",
            "type": "string",
            "example": "411102394"
          },
          "related_participants": {
            "description": "List of energy market participants involved with the supply of utilities to this servicepoint",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.EnergyServicePointDetailRelatedParticipants"
            }
          },
          "service_point_classification": {
            "description": "The classification of the service point as defined in [MSATS procedures](https://aemo.com.au/en/energy-systems/electricity/national-electricity-market-nem/market-operations/retail-and-metering/market-settlement-and-transfer-solutions-msats)",
            "type": "string",
            "enum": [
              "DISTRIBUTION_WHOLESALE",
              "EXTERNAL_PROFILE",
              "GENERATOR",
              "LARGE",
              "NON_CONTEST_UNMETERED_LOAD",
              "NON_REGISTERED_EMBEDDED_GENERATOR",
              "SMALL",
              "WHOLESALE"
            ],
            "example": "SMALL"
          },
          "service_point_id": {
            "description": "The tokenised ID of the service point for use in the CDR APIs.",
            "type": "string",
            "example": "dff1f2a2-541e-4e8e-a9ef-070dc267a8ff"
          },
          "service_point_status": {
            "description": "Code used to indicate the status of the service point. Note the details for the enumeration values below:<ul><li>**ACTIVE** - An active, energised, service point</li><li>**DE_ENERGISED** - The service point exists but is deenergised</li><li>**EXTINCT** - The service point has been permanently decommissioned</li><li>**GREENFIELD** - Applies to a service point that has never been energised</li><li>**OFF_MARKET** - Applies when the service point is no longer settled in the NEM</li></ul>",
            "type": "string",
            "enum": [
              "ACTIVE",
              "DE_ENERGISED",
              "EXTINCT",
              "GREENFIELD",
              "OFF_MARKET"
            ],
            "example": "ACTIVE"
          },
          "valid_from_date": {
            "description": "The latest start date from which the constituent data sets of this service point became valid",
            "type": "string",
            "example": "2024-09-01"
          }
        }
      },
      "fiskil_energy.ServicePointBody": {
        "type": "object",
        "required": [
          "service_points"
        ],
        "properties": {
          "service_points": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.ServicePoint"
            },
            "x-order": "1"
          },
          "links": {
            "allOf": [
              {
                "$ref": "#/components/schemas/httputil.Links"
              }
            ],
            "x-order": "2"
          }
        }
      },
      "fiskil_energy.Usage": {
        "type": "object",
        "required": [
          "arrangement_id",
          "fiskil_id",
          "institution_id",
          "read_start_date",
          "read_u_type",
          "register_suffix",
          "service_point_id"
        ],
        "properties": {
          "arrangement_id": {
            "description": "The ID of the CDR arrangement that was used to fetch this account",
            "type": "string",
            "example": "arr678"
          },
          "basic_read": {
            "description": "Mandatory if `read_u_type` is set to `basicRead`",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_energy.EnergyUsageReadBasicRead"
              }
            ]
          },
          "controlled_load": {
            "description": "Indicates whether the energy recorded by this register is created under a Controlled Load regime",
            "type": "boolean",
            "example": true
          },
          "fiskil_id": {
            "description": "The Fiskil internal ID for this usage read",
            "type": "string",
            "example": "energy_usage_abcder123"
          },
          "institution_id": {
            "description": "The Fiskil ID for the institution that this read is from",
            "type": "string",
            "example": "154"
          },
          "interval_read": {
            "description": "Mandatory if `read_u_type` is set to `intervalRead`",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_energy.EnergyUsageReadIntervalRead"
              }
            ]
          },
          "meter_id": {
            "description": "Meter id/serial number as it appears in customer’s bill.",
            "type": "string",
            "example": "EFS12341"
          },
          "read_end_date": {
            "description": "Date when the meter reads end in AEST.  If absent then assumed to be equal to `read_start_date`.  In this case the entry represents data for a single date specified by `read_start_date`.",
            "type": "string",
            "example": "2024-09-17"
          },
          "read_start_date": {
            "description": "Date when the meter reads start in AEST and assumed to start from 12:00 am AEST.",
            "type": "string",
            "example": "2024-06-17"
          },
          "read_u_type": {
            "description": "Specifies the type of the meter read data",
            "type": "string",
            "enum": [
              "basicRead",
              "intervalRead"
            ],
            "example": "intervalRead"
          },
          "register_id": {
            "description": "Register ID of the meter register where the meter reads are obtained",
            "type": "string",
            "example": "11"
          },
          "register_suffix": {
            "description": "Register suffix of the meter register where the meter reads are obtained",
            "type": "string",
            "example": "11"
          },
          "service_point_id": {
            "description": "Tokenised ID of the service point to be used for referring to the service point in the CDR API suite.",
            "type": "string",
            "example": "826e5be8-5790-49b1-9a8d-1080b2e7d4e7"
          },
          "unit_of_measure": {
            "description": "Unit of measure of the meter reads. Refer to Appendix B of [MDFF Specification NEM12 NEM13 v2.1](https://www.aemo.com.au/-/media/files/stakeholder_consultation/consultations/nem-consultations/2019/5ms-metering-package-2/final-determination/mdff-specification-nem12-nem13-v21-final-determination-clean.pdf?la=en&hash=03FCBA0D60E091DE00F2361AE76206EA) for a list of possible values.",
            "type": "string",
            "example": "KWH"
          }
        }
      },
      "fiskil_energy.UsageBody": {
        "type": "object",
        "required": [
          "usage"
        ],
        "properties": {
          "usage": {
            "description": "List of energy usage reads for the end user",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_energy.Usage"
            },
            "x-order": "1"
          },
          "links": {
            "description": "Links to be used for pagination",
            "allOf": [
              {
                "$ref": "#/components/schemas/httputil.Links"
              }
            ],
            "x-order": "2"
          }
        }
      },
      "fiskil_identity.CommonEmailAddress": {
        "type": "object",
        "required": [
          "address",
          "purpose"
        ],
        "properties": {
          "address": {
            "description": "A correctly formatted email address.",
            "type": "string",
            "example": "jane.doe@example.com"
          },
          "is_preferred": {
            "description": "May be true for one and only one email record in the collection.",
            "type": "boolean",
            "example": true
          },
          "purpose": {
            "description": "The purpose of the email, as specified by the customer.",
            "type": "string",
            "enum": [
              "HOME",
              "OTHER",
              "UNSPECIFIED",
              "WORK"
            ],
            "example": "WORK"
          }
        }
      },
      "fiskil_identity.CommonOrganisationDetailV2": {
        "type": "object",
        "required": [
          "agent_last_name",
          "agent_role",
          "business_name",
          "organisation_type",
          "physical_addresses"
        ],
        "properties": {
          "abn": {
            "description": "Australian Business Number for the organisation.",
            "type": "string",
            "example": "12345678901"
          },
          "acn": {
            "description": "Australian Company Number for the organisation. Required only if an ACN is applicable for the organisation type.",
            "type": "string",
            "example": "987654321"
          },
          "agent_first_name": {
            "description": "The first name of the individual providing access on behalf of the organisation.",
            "type": "string",
            "example": "John"
          },
          "agent_last_name": {
            "description": "The last name of the individual providing access on behalf of the organisation.",
            "type": "string",
            "example": "Doe"
          },
          "agent_role": {
            "description": "The role of the individual identified as the agent who is providing authorisation.",
            "type": "string",
            "example": "Manager"
          },
          "business_name": {
            "description": "Name of the organisation.",
            "type": "string",
            "example": "Tech Corp"
          },
          "establishment_date": {
            "description": "The date the organisation described was established.",
            "type": "string",
            "example": "2010-01-01"
          },
          "industry_code": {
            "description": "A valid ANZSIC code for the organisation.",
            "type": "string",
            "example": "5420"
          },
          "industry_code_version": {
            "description": "The applicable ANZSIC release version of the industry code provided.",
            "type": "string",
            "example": "ANZSIC_1292.0_2006_V2.0"
          },
          "is_acnc_registered": {
            "description": "True if registered with the ACNC. False if not. Absent or null if not confirmed.",
            "type": "boolean",
            "example": true
          },
          "last_update_time": {
            "description": "The date and time that this record was last updated by the customer.",
            "type": "string",
            "example": "2023-08-15T10:30:00Z"
          },
          "legal_name": {
            "description": "Legal name, if different from the business name.",
            "type": "string",
            "example": "Tech Solutions Ltd"
          },
          "organisation_type": {
            "description": "Legal organisation type.",
            "type": "string",
            "enum": [
              "COMPANY",
              "GOVERNMENT_ENTITY",
              "OTHER",
              "PARTNERSHIP",
              "SOLE_TRADER",
              "TRUST"
            ],
            "example": "COMPANY"
          },
          "physical_addresses": {
            "description": "Array of physical addresses.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_identity.CommonPhysicalAddressWithPurpose"
            }
          },
          "registered_country": {
            "description": "Enumeration with values from ISO 3166 Alpha-3 country codes. Assumed to be AUS if absent.",
            "type": "string",
            "example": "AUS"
          },
          "short_name": {
            "description": "Short name used for communication, if different from the business name.",
            "type": "string",
            "example": "TechCo"
          }
        }
      },
      "fiskil_identity.CommonPersonDetailV2": {
        "type": "object",
        "required": [
          "email_addresses",
          "last_name",
          "middle_names",
          "phone_numbers",
          "physical_addresses"
        ],
        "properties": {
          "email_addresses": {
            "description": "Array of email addresses. May be empty.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_identity.CommonEmailAddress"
            }
          },
          "first_name": {
            "description": "First name of the person.",
            "type": "string",
            "example": "Jane"
          },
          "last_name": {
            "description": "Last name of the person.",
            "type": "string",
            "example": "Doe"
          },
          "last_update_time": {
            "description": "The date and time that this record was last updated by the customer.",
            "type": "string",
            "example": "2023-08-10T09:00:00Z"
          },
          "middle_names": {
            "description": "Middle names of the person. Field is mandatory but the array may be empty.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "occupation_code": {
            "description": "A valid ANZSCO Standard Occupation classification code.",
            "type": "string",
            "example": "2613"
          },
          "occupation_code_version": {
            "description": "The applicable ANZSCO release version of the occupation code provided.",
            "type": "string",
            "example": "ANZSCO_1220.0_2013_V1.2"
          },
          "phone_numbers": {
            "description": "Array of phone numbers.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_identity.CommonPhoneNumber"
            }
          },
          "physical_addresses": {
            "description": "Array of physical addresses.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_identity.CommonPhysicalAddressWithPurpose"
            }
          },
          "prefix": {
            "description": "Prefix (e.g., Mr, Mrs, Ms, etc.).",
            "type": "string",
            "example": "Ms"
          },
          "suffix": {
            "description": "Suffix (e.g., Jr, Sr).",
            "type": "string",
            "example": "Jr"
          }
        }
      },
      "fiskil_identity.CommonPhoneNumber": {
        "type": "object",
        "required": [
          "full_number",
          "number",
          "purpose"
        ],
        "properties": {
          "area_code": {
            "description": "Required for non-mobile phones. If present and refers to an Australian code, the leading 0 should be omitted.",
            "type": "string",
            "example": "2"
          },
          "country_code": {
            "description": "If absent, assumed to be Australia (+61). The + should be included.",
            "type": "string",
            "example": "+61"
          },
          "extension": {
            "description": "An extension number (if applicable).",
            "type": "string",
            "example": "1234"
          },
          "full_number": {
            "description": "Fully formatted phone number with country code, area code, number, and extension incorporated.",
            "type": "string",
            "example": "+61 2 9876 5432"
          },
          "is_preferred": {
            "description": "May be true for one and only one entry to indicate the preferred phone number.",
            "type": "boolean",
            "example": true
          },
          "number": {
            "description": "The actual phone number, with leading zeros as appropriate.",
            "type": "string",
            "example": "98765432"
          },
          "purpose": {
            "description": "The purpose of the number as specified by the customer.",
            "type": "string",
            "enum": [
              "HOME",
              "INTERNATIONAL",
              "MOBILE",
              "OTHER",
              "UNSPECIFIED",
              "WORK"
            ],
            "example": "MOBILE"
          }
        }
      },
      "fiskil_identity.CommonPhysicalAddressWithPurpose": {
        "type": "object",
        "required": [
          "address_u_type",
          "purpose"
        ],
        "properties": {
          "address_u_type": {
            "description": "The type of address object present.",
            "type": "string",
            "enum": [
              "paf",
              "simple"
            ],
            "example": "paf"
          },
          "paf": {
            "description": "Australian address formatted according to the PAF file format. Only present if `address_u_type` is `\"paf\"`",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_banking.CommonPAFAddress"
              }
            ]
          },
          "purpose": {
            "description": "Enumeration of values indicating the purpose of the physical address.",
            "type": "string",
            "enum": [
              "MAIL",
              "OTHER",
              "PHYSICAL",
              "REGISTERED",
              "WORK"
            ],
            "example": "REGISTERED"
          },
          "simple": {
            "description": "Simple address. Only present if `address_u_type` is `\"simple\"`",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_banking.CommonSimpleAddress"
              }
            ]
          }
        }
      },
      "fiskil_identity.Customer": {
        "type": "object",
        "required": [
          "customer_u_type"
        ],
        "properties": {
          "customer_u_type": {
            "description": "The type of customer object that is present",
            "type": "string",
            "enum": [
              "organisation",
              "person"
            ],
            "example": "person"
          },
          "organisation": {
            "description": "The identity details for organisation consumers. Only present if `customer_u_type` is `\"organisation\"`",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_identity.CommonOrganisationDetailV2"
              }
            ]
          },
          "person": {
            "description": "The identity details for human consumers. Only present if `customer_u_type` is `\"person\"`",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_identity.CommonPersonDetailV2"
              }
            ]
          }
        }
      },
      "fiskil_identity.Identity": {
        "type": "object",
        "required": [
          "arrangement_id",
          "customer",
          "fiskil_id",
          "institution_id"
        ],
        "properties": {
          "arrangement_id": {
            "description": "The ID of the CDR arrangement that was used to fetch the identity data",
            "type": "string",
            "example": "f41bb11b-0bdf-4b7c-9e24-a0d6cad0b3e6"
          },
          "customer": {
            "description": "The customer details",
            "allOf": [
              {
                "$ref": "#/components/schemas/fiskil_identity.Customer"
              }
            ]
          },
          "fiskil_id": {
            "description": "The Fiskil identifier for this identity record",
            "type": "string",
            "example": "abcdef1234xyz"
          },
          "institution_id": {
            "description": "The Fiskil ID of the institution that provided the identity data",
            "type": "string",
            "example": "140"
          }
        }
      },
      "fiskil_identity.IdentityBody_V2": {
        "type": "object",
        "required": [
          "identities"
        ],
        "properties": {
          "identities": {
            "description": "Identities contains all the customer identities for the provided end user ID",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fiskil_identity.Identity"
            }
          }
        }
      },
      "http_handler.ErrorBody": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "http_handler.MessageBody": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      },
      "httputil.Links": {
        "type": "object",
        "properties": {
          "next": {
            "description": "A fully qualified URL to the next page in the requested dataset",
            "type": "string",
            "example": "https://api.fiskil.com/v1/accounts?page[after]=x"
          },
          "prev": {
            "description": "A fully qualified URL to the previous page in the requested dataset",
            "type": "string",
            "example": "https://api.fiskil.com/v1/accounts?page[before]=x"
          }
        }
      }
    }
  }
}
