{
  "components": {
    "examples": {
      "standard-error-400": {
        "description": "The request body or parameters are invalid.",
        "summary": "Bad Request",
        "value": {
          "errors": [],
          "localizedMessage": "Invalid request",
          "message": "Invalid request",
          "status": "BAD_REQUEST",
          "statusCode": 400
        }
      },
      "standard-error-401": {
        "description": "The authorization token is missing or invalid.",
        "summary": "Unauthorized",
        "value": {
          "errors": [],
          "localizedMessage": "Not allowed",
          "message": "Not allowed",
          "status": "UNAUTHORIZED",
          "statusCode": 401
        }
      },
      "standard-error-403": {
        "description": "The calling IP is not whitelisted or you lack the required permissions.",
        "summary": "Forbidden",
        "value": {
          "errors": [],
          "localizedMessage": "Not allowed",
          "message": "Not allowed",
          "status": "FORBIDDEN",
          "statusCode": 403
        }
      },
      "standard-error-404": {
        "description": "The requested resource does not exist or has expired.",
        "summary": "Not Found",
        "value": {
          "errors": [],
          "localizedMessage": "Not found",
          "message": "Not found",
          "status": "NOT_FOUND",
          "statusCode": 404
        }
      },
      "standard-error-429": {
        "description": "The client has sent too many requests in a given time window. Retry after a delay using exponential backoff.",
        "summary": "Rate limit exceeded",
        "value": {
          "errors": [],
          "localizedMessage": "Too many requests. Please retry with backoff.",
          "message": "Too many requests. Please retry with backoff.",
          "status": "TOO_MANY_REQUESTS",
          "statusCode": 429
        }
      }
    },
    "schemas": {
      "AccountInformation": {
        "properties": {
          "cashAccountNumber": {
            "description": "Number of the cash account.",
            "example": "123456789",
            "type": "string"
          },
          "cashValue": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Available cash balance in the account."
          },
          "hasExclusiveOwnership": {
            "description": "Indicates whether the user has exclusive ownership of the account. False if PoA or shared ownership.",
            "example": true,
            "type": "boolean"
          },
          "interestRate": {
            "description": "Interest rate of the account. Percentage [0...1]",
            "example": 0.0375,
            "format": "double",
            "type": "number"
          }
        }
      },
      "AdditionalLoginInput": {
        "description": "Additional login input",
        "example": {
          "key": "region",
          "options": [
            {
              "label": "Centre Loire",
              "value": "centreloire"
            },
            {
              "label": "Centre Est",
              "value": "centrest"
            }
          ],
          "type": "selectOne"
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/SelectOne"
          }
        ],
        "properties": {
          "type": {
            "type": "string"
          }
        }
      },
      "AdditionalLoginInputSelectOption": {
        "properties": {
          "label": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        },
        "required": [
          "label",
          "value"
        ]
      },
      "ApiKeyParameter": {
        "allOf": [
          {
            "$ref": "#/components/schemas/CollectionParameter"
          }
        ],
        "description": "Input for the `API_KEY` login method: an API key the user created in their account at the company, plus its secret for companies that issue one. Encrypt both like a password.",
        "properties": {
          "apiKey": {
            "description": "API key created by the user in their account at the company.",
            "example": "53cr3t_4P1_K3Y",
            "type": "string"
          },
          "apiSecret": {
            "description": "Secret issued together with the API key, for companies that use one.",
            "example": "53cr3t_4P1_53cr3t",
            "type": "string"
          },
          "type": {
            "enum": [
              "API_KEY"
            ],
            "type": "string"
          }
        },
        "required": [
          "apiKey"
        ]
      },
      "BindingPeriod": {
        "description": "Binding period information for fixed-period general savings accounts",
        "properties": {
          "autoRenewal": {
            "description": "Whether the account automatically renews after the binding period",
            "type": "boolean"
          },
          "cancellationFee": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Fee charged for early cancellation"
          },
          "endDate": {
            "description": "End date of the binding period",
            "example": "2025-01-01",
            "type": "string"
          },
          "lengthPeriod": {
            "$ref": "#/components/schemas/TimePeriod",
            "description": "Length of the binding period"
          },
          "startDate": {
            "description": "Start date of the binding period",
            "example": "2024-01-01",
            "type": "string"
          }
        }
      },
      "BuyTransaction": {
        "description": "A purchase on the account",
        "discriminator": {
          "mapping": {
            "parent": "#/components/schemas/Transaction"
          },
          "propertyName": "transaction type"
        },
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "The transaction amount."
          },
          "commission": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "The optional commission on the transaction"
          },
          "instrumentInformation": {
            "$ref": "#/components/schemas/TransactionInstrument",
            "description": "Information about the instrument traded."
          },
          "quantity": {
            "description": "The quantity of stock or fund bought.",
            "example": 204.33,
            "format": "double",
            "type": "number"
          },
          "settlementDate": {
            "description": "The date when the transaction was settled.",
            "example": "2024-01-01",
            "type": "string"
          },
          "tradeDate": {
            "description": "The date when the instrument was traded.",
            "example": "2024-01-01",
            "type": "string"
          },
          "type": {
            "enum": [
              "BUY",
              "SELL",
              "DEPOSIT",
              "WITHDRAWAL",
              "FEE",
              "INTEREST",
              "DIVIDEND",
              "REDEMPTION",
              "OTHER"
            ],
            "example": "BUY",
            "title": "TransactionType",
            "type": "string"
          }
        },
        "title": "BuyTransaction"
      },
      "CashISA": {
        "description": "A Cash ISA for tax-efficient cash savings in the UK market. A fixed-rate Cash ISA has interestRateType FIXED and a bindingPeriod.",
        "discriminator": {
          "mapping": {
            "parent": "#/components/schemas/FinancialProduct"
          },
          "propertyName": "financial product type"
        },
        "example": {
          "allowances": [
            {
              "allowanceType": "OVERALL",
              "limit": {
                "amount": 20000,
                "currency": "GBP"
              },
              "remaining": {
                "amount": 20000,
                "currency": "GBP"
              },
              "scope": "ACCOUNT",
              "taxYear": "2026/27",
              "used": {
                "amount": 0,
                "currency": "GBP"
              }
            }
          ],
          "bindingPeriod": {
            "autoRenewal": false,
            "cancellationFee": {
              "amount": 50,
              "currency": "GBP"
            },
            "endDate": "2026-04-05",
            "lengthPeriod": {
              "periodLength": 2,
              "periodUnit": "YEAR"
            },
            "startDate": "2024-04-06"
          },
          "company": "uk-natwest",
          "companyDisplayName": "NatWest",
          "currentValue": {
            "amount": 21040,
            "currency": "GBP"
          },
          "hasExclusiveOwnership": true,
          "holder": {
            "name": "John Smith"
          },
          "id": "6a7c135e-3a56-44ae-bc53-1d0d5321f552",
          "interest": {
            "accruedInterest": {
              "amount": 1040,
              "currency": "GBP"
            },
            "effectiveRate": 0.052,
            "payoutFrequency": "ANNUALLY",
            "rate": 0.052
          },
          "interestRateType": "FIXED",
          "productName": "2 Year Fixed Rate Cash ISA",
          "productNumber": "987654321",
          "startDate": "2019-04-06",
          "transactions": [
            {
              "amount": {
                "amount": 20000,
                "currency": "GBP"
              },
              "settlementDate": "2024-04-06",
              "type": "DEPOSIT"
            }
          ],
          "type": "CASH_ISA"
        },
        "properties": {
          "allowances": {
            "description": "ISA allowance figures as stated by this provider, one entry per allowance type and tax year. A Lifetime ISA can carry both a `LIFETIME_ISA` and an `OVERALL` entry; add figures up per `allowanceType`, never across types.",
            "items": {
              "$ref": "#/components/schemas/UkISAAllowance"
            },
            "type": "array"
          },
          "bindingPeriod": {
            "$ref": "#/components/schemas/BindingPeriod",
            "description": "Binding period of a fixed-rate ISA. Set only when interestRateType is FIXED."
          },
          "company": {
            "description": "Company where the financial product has been collected from. Example: `uk-natwest`.",
            "example": "uk-natwest",
            "type": "string"
          },
          "companyDisplayName": {
            "description": "Display name of the company for user-friendly presentation.",
            "example": "NatWest",
            "type": "string"
          },
          "currentValue": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Current value of the account."
          },
          "hasExclusiveOwnership": {
            "description": "Indicates whether the user has exclusive ownership of the account. False if PoA exists.",
            "example": true,
            "type": "boolean"
          },
          "holder": {
            "$ref": "#/components/schemas/Uk.Holder",
            "description": "Information about the owner of the financial product."
          },
          "id": {
            "description": "Insurely-generated unique identifier for this collection of the financial product. Randomly generated and not stable across collections — a new id is issued each time the product is collected, even for the same underlying account. Use this only as a handle within a single collection (e.g., to correlate holdings and transactions). Do not use it to recognize the same product over time; use the stable institution-assigned identifier on this product (e.g., `productNumber`, `accountNumber`, or `loanId`) for that.",
            "example": "6a7c135e-3a56-44ae-bc53-1d0d5321f552",
            "type": "string"
          },
          "interest": {
            "$ref": "#/components/schemas/GeneralSavingsInterest",
            "description": "Interest information for the account."
          },
          "interestRateType": {
            "description": "FIXED when the provider identifies the product as a fixed-rate ISA; absent otherwise.",
            "enum": [
              "FIXED"
            ],
            "type": "string"
          },
          "monthlySavingsAmount": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Monthly savings amount associated with the financial product."
          },
          "productName": {
            "description": "Name of the financial product.",
            "example": "Cash ISA",
            "type": "string"
          },
          "productNumber": {
            "description": "The product number assigned by the source financial institution (e.g., ISK account number, policy number, mortgage number). This is the most stable identifier for the product over time and across collections, and is suitable for matching the same product between repeated collections. Note that stability is best-effort and depends on what the institution exposes; it may occasionally change if the institution restructures or reissues the product.",
            "type": "string"
          },
          "startDate": {
            "description": "Date when the account was opened.",
            "example": "2019-04-06",
            "type": "string"
          },
          "transactions": {
            "description": "Transaction history for the last 12 months.",
            "items": {
              "$ref": "#/components/schemas/Transaction"
            },
            "type": "array"
          },
          "type": {
            "description": "Type of the financial product.",
            "enum": [
              "GIA",
              "STOCKS_AND_SHARES_ISA",
              "CASH_ISA",
              "LIFETIME_ISA",
              "SELF_INVESTED_PERSONAL_PENSION",
              "UK_OCCUPATIONAL_PENSION",
              "UK_GENERAL_SAVINGS_ACCOUNT",
              "UK_GENERAL_SAVINGS_ACCOUNT_FIXED_PERIOD"
            ],
            "example": "ISK",
            "type": "string"
          },
          "withdrawalConditions": {
            "$ref": "#/components/schemas/WithdrawalConditions",
            "description": "Withdrawal conditions and restrictions."
          }
        },
        "required": [
          "company",
          "companyDisplayName",
          "id",
          "type"
        ],
        "title": "Cash ISA",
        "x-markets": {
          "uk": true
        },
        "x-tag": "Financial Product Type"
      },
      "CollectionInput": {
        "description": "A `CollectionInput` is a set of values that required for the collection process to continue. The required input is specified by the key `REQUIRED_INPUT_TYPES`, under the `extraInformation` key on the `CollectionStatus` object.",
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/Item"
            },
            "type": "array",
            "uniqueItems": true
          },
          "type": {
            "enum": [
              "COLLECTION_INPUT"
            ],
            "example": "COLLECTION_INPUT",
            "type": "string"
          }
        }
      },
      "CollectionParameter": {
        "description": "Marker interface for typed parameters in an initiate-collection request. Each concrete implementation describes a specific type of input (authentication, consent, filter, etc.)",
        "discriminator": {
          "mapping": {
            "API_KEY": "#/components/schemas/ApiKeyParameter",
            "EMAIL": "#/components/schemas/EmailParameter",
            "LOGIN_METHOD": "#/components/schemas/LoginMethodParameter",
            "SESSION_METADATA": "#/components/schemas/SessionMetadataParameter",
            "TRADE_UNION_CONSENT": "#/components/schemas/TradeUnionConsentParameter",
            "UK_DATE_OF_BIRTH": "#/components/schemas/UkDateOfBirthParameter",
            "USERNAME_PASSWORD": "#/components/schemas/UsernamePasswordParameter"
          },
          "propertyName": "type"
        },
        "properties": {
          "type": {
            "type": "string"
          }
        },
        "required": [
          "type"
        ]
      },
      "CollectionStatus": {
        "discriminator": {
          "propertyName": "api"
        },
        "properties": {
          "company": {
            "description": "Company that this collection is from",
            "example": "se-lansforsakringar",
            "type": "string"
          },
          "externalUserUuid": {
            "description": "The UUID of the external user this collection belongs to, when it is linked to one (null otherwise). Can be used to build a Hub deep-link of the form /collections/user/{externalUserUuid}.",
            "example": "b3f1c2a4-8d6e-4f2b-9a1c-7e5d3b2a1f0e",
            "type": "string"
          },
          "extraInformation": {
            "$ref": "#/components/schemas/CollectionStatusInformationMap",
            "description": "A key-value map containing potential extra information, depending on the company the collection is getting data from.",
            "example": {
              "SWEDISH_BANKID_QRCODE": "iVBORw0KGgoAA==",
              "SWEDISH_MOBILE_BANKID_AUTOSTART_TOKEN": "38bb848d-5a0d-4dec-977d-a8777f3637da"
            }
          },
          "id": {
            "description": "The collection ID of the request",
            "example": "22e633bc-427d-4f4a-87cf-cfaca04ef351",
            "type": "string"
          },
          "pollingTimeout": {
            "description": "The collection status must be polled before this timestamp. Failure to do so may result in the termination of the collection.",
            "example": "2024-09-26T12:59:10.545Z",
            "format": "date-time",
            "type": "string"
          },
          "status": {
            "description": "Current status of the collection.",
            "enum": [
              "RUNNING",
              "LOGIN",
              "CUSTOMER_ENROLLMENT_CHECK",
              "TWO_FACTOR_PENDING",
              "TWO_FACTOR_METHOD_SELECTION_TIMEOUT",
              "CONTACT_FORM_PENDING",
              "COLLECTION_INPUT_PENDING",
              "COLLECTION_INPUT_TIMEOUT",
              "COLLECTING",
              "COMPLETED",
              "COMPLETED_PARTIAL",
              "COMPLETED_EMPTY",
              "FAILED",
              "FAILED_PDF_PARSE",
              "FAILED_PDF_USER_INPUT",
              "AUTHENTICATION_TIMEOUT",
              "WAITING_FOR_USER_ACTION",
              "INCORRECT_CREDENTIALS",
              "INCORRECT_TWO_FACTOR_CODE",
              "AUTHENTICATION_CANCELLED",
              "AUTHENTICATION_CONFLICT",
              "ACCOUNT_TEMPORARILY_LOCKED",
              "AUTHENTICATION_MISMATCH",
              "KYC_FORM",
              "CONTACT_FORM",
              "CUSTOMER_ENROLLMENT_REQUIRED",
              "THIRD_PARTY_ERROR",
              "AUTHENTICATION_ERROR",
              "LOGIN_METHOD_NOT_APPLICABLE"
            ],
            "example": "RUNNING",
            "type": "string"
          }
        },
        "required": [
          "company",
          "id",
          "status"
        ],
        "title": "CollectionStatus"
      },
      "CollectionStatusInformationMap": {
        "description": "Possible extra information returned for a collection status",
        "discriminator": {
          "propertyName": "api"
        },
        "properties": {
          "ACCESS_TOKEN": {
            "description": "Access token to call get-data. Returned when data collection is initiated by client-id.",
            "type": "string"
          },
          "AUTHENTICATION_APP_URL": {
            "description": "A url to trigger authentication apps.",
            "example": "https://banklogin.com/challenge?id=bc453568-1e63-432c-9957-ae2fc6acb826",
            "type": "string",
            "x-markets": {
              "at": true,
              "de": true,
              "ee": true,
              "fr": true,
              "it": true,
              "lt": true,
              "lv": true,
              "uk": true
            }
          },
          "AVAILABLE_TWO_FACTOR_METHODS": {
            "description": "Available 2FA methods for this collection.",
            "items": {
              "$ref": "#/components/schemas/TwoFactorOption"
            },
            "type": "array"
          },
          "INSTRUCTIONS": {
            "$ref": "#/components/schemas/InstructionsRequestObject",
            "description": "Instructions used for SWEDISH_MOBILE_BANKID_SAME_DEVICE_CLIENT_SIDE_AUTHENTICATION login method.",
            "x-markets": {
              "se": true
            }
          },
          "QR_CODE_DATA": {
            "description": "A base64 encoded QR-code.",
            "example": "R0lGODdhtAC0AIAAAAAAAP///ywAAALg==Lg==",
            "type": "string"
          },
          "REFERENCE_NUMBER": {
            "description": "Reference number from login page to verify on other device.",
            "example": "1234",
            "type": "string"
          },
          "REQUIRED_INPUT_TYPES": {
            "description": "Input that needs to be provided for the collection process to continue.",
            "example": "EMAIL",
            "items": {
              "description": "Type of input.",
              "enum": [
                "EMAIL"
              ],
              "example": "EMAIL",
              "type": "string"
            },
            "type": "array"
          },
          "TWO_FACTOR_AUTHENTICATION_INSTRUCTION": {
            "$ref": "#/components/schemas/TwoFactorAuthenticationInstruction"
          }
        },
        "title": "CollectionStatusInformation"
      },
      "CollectionStatusResponse": {
        "discriminator": {
          "propertyName": "api"
        },
        "properties": {
          "company": {
            "description": "Company identifier.",
            "example": "se-lansforsakringar",
            "type": "string"
          },
          "externalUserUuid": {
            "description": "The UUID of the external user this collection belongs to, when it is linked to one (null otherwise). Can be used to build a Hub deep-link of the form /collections/user/{externalUserUuid}.",
            "example": "b3f1c2a4-8d6e-4f2b-9a1c-7e5d3b2a1f0e",
            "type": "string"
          },
          "extraInformation": {
            "$ref": "#/components/schemas/CollectionStatusInformationMap",
            "description": "A key-value map containing potential extra information, depending on the company the collection is getting data from.",
            "example": {
              "SWEDISH_BANKID_QRCODE": "iVBORw0KGgoAA==",
              "SWEDISH_MOBILE_BANKID_AUTOSTART_TOKEN": "38bb848d-5a0d-4dec-977d-a8777f3637da"
            }
          },
          "id": {
            "description": "The collection ID of the request",
            "example": "22e633bc-427d-4f4a-87cf-cfaca04ef351",
            "type": "string"
          },
          "pollingInterval": {
            "description": "The recommended interval in milliseconds at which to poll the `/status` endpoint for a collection. The endpoint can be polled less often, but latest by the value indicated by `pollingTimeout` to ensure that the collection is not terminated.",
            "example": 1000,
            "format": "int32",
            "type": "integer"
          },
          "pollingTimeout": {
            "description": "The collection status must be polled before this timestamp. Failure to do so may result in the termination of the collection.",
            "example": "2024-09-26T12:59:10.545Z",
            "format": "date-time",
            "type": "string"
          },
          "status": {
            "description": "Current status of the collection.",
            "enum": [
              "RUNNING",
              "LOGIN",
              "CUSTOMER_ENROLLMENT_CHECK",
              "TWO_FACTOR_PENDING",
              "TWO_FACTOR_METHOD_SELECTION_TIMEOUT",
              "CONTACT_FORM_PENDING",
              "COLLECTION_INPUT_PENDING",
              "COLLECTION_INPUT_TIMEOUT",
              "COLLECTING",
              "COMPLETED",
              "COMPLETED_PARTIAL",
              "COMPLETED_EMPTY",
              "FAILED",
              "FAILED_PDF_PARSE",
              "FAILED_PDF_USER_INPUT",
              "AUTHENTICATION_TIMEOUT",
              "WAITING_FOR_USER_ACTION",
              "INCORRECT_CREDENTIALS",
              "INCORRECT_TWO_FACTOR_CODE",
              "AUTHENTICATION_CANCELLED",
              "AUTHENTICATION_CONFLICT",
              "ACCOUNT_TEMPORARILY_LOCKED",
              "AUTHENTICATION_MISMATCH",
              "KYC_FORM",
              "CONTACT_FORM",
              "CUSTOMER_ENROLLMENT_REQUIRED",
              "THIRD_PARTY_ERROR",
              "AUTHENTICATION_ERROR",
              "LOGIN_METHOD_NOT_APPLICABLE"
            ],
            "example": "RUNNING",
            "type": "string"
          }
        },
        "required": [
          "company",
          "id",
          "status"
        ],
        "title": "CollectionStatusResponse"
      },
      "CollectionSummary": {
        "description": "Response representing a collection summary.",
        "properties": {
          "collectionId": {
            "description": "Unique identifier for the collection.",
            "example": "550e8400-e29b-41d4-a716-446655440000",
            "type": "string"
          },
          "company": {
            "description": "Company identifier.",
            "example": "se-folksam",
            "type": "string"
          },
          "createdAt": {
            "description": "Timestamp when the collection was created.",
            "example": "2026-02-20T10:30:00",
            "format": "date-time",
            "type": "string"
          },
          "loginMethod": {
            "description": "Login method used for the collection.",
            "enum": [
              "UK_DOB_USERNAME_PASSWORD",
              "UK_LASTNAME_MEMBERSHIP_NUMBER",
              "UK_USERNAME_POSTCODE",
              "USERNAME_AND_PASSWORD",
              "EMAIL",
              "AUTHENTICATION_APP_URL",
              "API_KEY"
            ],
            "type": "string"
          },
          "status": {
            "description": "Current status of the collection.",
            "example": "COMPLETED",
            "type": "string"
          }
        },
        "required": [
          "collectionId",
          "company",
          "status"
        ],
        "title": "CollectionSummary"
      },
      "CompanyAvailability": {
        "discriminator": {
          "propertyName": "api"
        },
        "properties": {
          "additionalLoginInputs": {
            "description": "Additional input for login step.",
            "items": {
              "$ref": "#/components/schemas/AdditionalLoginInput"
            },
            "type": "array",
            "uniqueItems": true
          },
          "availableCoverageScopes": {
            "description": "Set of available coverage types and subtypes for this company",
            "example": [
              {
                "insuranceSubType": "CAR_INSURANCE",
                "insuranceType": "VEHICLE_INSURANCE"
              }
            ],
            "items": {
              "$ref": "#/components/schemas/InsuranceTypeAndSubtype"
            },
            "type": "array",
            "uniqueItems": true
          },
          "collectionMethod": {
            "description": "The method used to collect data from this company. PSD2 indicates bank API collection, LEFI indicates registry-based collection, and STANDARD indicates the normal Insurely data collection flow.",
            "enum": [
              "PSD2",
              "LEFI",
              "STANDARD"
            ],
            "example": "STANDARD",
            "type": "string"
          },
          "company": {
            "description": "Name of the company.",
            "example": "uk-aviva",
            "minLength": 1,
            "type": "string"
          },
          "companyAndLineOfBusinesses": {
            "description": "Available company and line of business for insurance pdf upload.",
            "example": "UK_AXA_HOME",
            "items": {
              "enum": [
                "UK_AXA_HOME",
                "UK_AXA_VEHICLE",
                "UK_HASTINGS_DIRECT_HOME",
                "UK_HASTINGS_DIRECT_VEHICLE",
                "UK_POLICYEXPERT_HOME",
                "UK_POLICYEXPERT_VEHICLE",
                "UK_POST_OFFICE_HOME",
                "UK_THE_AA_HOME",
                "UK_THE_AA_VEHICLE",
                "UK_URBAN_JUNGLE_HOME"
              ],
              "type": "string"
            },
            "type": "array",
            "uniqueItems": true
          },
          "companyDisplayName": {
            "description": "Company display name, for displaying to users.",
            "example": "Aviva",
            "minLength": 1,
            "type": "string"
          },
          "companyGroup": {
            "description": "The name of the group that a company or integration belongs to",
            "example": "SEB",
            "type": "string"
          },
          "companyLinks": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Company-specific links such as contact forms or other external resources",
            "example": "{'contactFormLink': 'https://example.com/contact'",
            "type": "object"
          },
          "consentRequirements": {
            "description": "The set of consents required for initiating collections from this company.",
            "items": {
              "$ref": "#/components/schemas/ConsentRequirement"
            },
            "type": "array",
            "uniqueItems": true
          },
          "functional": {
            "description": "Whether or not it is possible to collect data from the company currently.",
            "example": false,
            "type": "boolean"
          },
          "loginConfig": {
            "$ref": "#/components/schemas/CompanyLoginConfig",
            "description": "Configuration options for different login methods."
          },
          "loginMethods": {
            "description": "Available login methods for the company.",
            "example": "USERNAME_AND_PASSWORD",
            "items": {
              "enum": [
                "UK_DOB_USERNAME_PASSWORD",
                "UK_LASTNAME_MEMBERSHIP_NUMBER",
                "UK_USERNAME_POSTCODE",
                "USERNAME_AND_PASSWORD",
                "EMAIL",
                "AUTHENTICATION_APP_URL",
                "API_KEY"
              ],
              "type": "string"
            },
            "type": "array",
            "uniqueItems": true
          },
          "nonFunctionalLoginMethods": {
            "description": "Disabled login methods for the company.",
            "example": "USERNAME_AND_PASSWORD",
            "items": {
              "enum": [
                "UK_DOB_USERNAME_PASSWORD",
                "UK_LASTNAME_MEMBERSHIP_NUMBER",
                "UK_USERNAME_POSTCODE",
                "USERNAME_AND_PASSWORD",
                "EMAIL",
                "AUTHENTICATION_APP_URL",
                "API_KEY"
              ],
              "type": "string"
            },
            "type": "array",
            "uniqueItems": true
          },
          "notifications": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Company-specific notifications configuration",
            "example": "{'LOADING_SCREEN': 'SIGNIN_WARNING'}",
            "type": "object"
          },
          "reason": {
            "description": "Reason for data collection being non-functional at present.",
            "enum": [
              "THIRD_PARTY_ERROR",
              "THIRD_PARTY_UPDATE",
              "INSURELY_ERROR",
              "INSURELY_UPDATE",
              "RECONSTRUCTION"
            ],
            "example": "THIRD_PARTY_ERROR",
            "type": "string"
          },
          "resetCredentials": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Reset links to reset credentials for the company.",
            "example": "{'resetUsernameUrl': 'https://insurely.com/forgot-username', 'resetPasswordUrl': 'https://insurely.com/forgot-password'}",
            "type": "object"
          },
          "status": {
            "description": "Status indicating the quality of the data collection for this company. A company has status BETA until we can\nguarantee the data quality and stability of it, after which its status is set to OK. A company may also be\nreported with status DEGRADED_PERFORMANCE when it is experiencing intermittent issues, usually due to errors\nat the data source. When status is DEGRADED_PERFORMANCE collections can still be attempted but may fail or\nreturn incomplete data.\n",
            "enum": [
              "OK",
              "BETA",
              "NOT_IMPLEMENTED",
              "DEGRADED_PERFORMANCE"
            ],
            "example": "OK",
            "type": "string"
          },
          "supportsPreheating": {
            "description": "Whether the company supports starting a collection without user input.\nRequires input to be passed in at a later stage through the supplemental-info endpoint.\n",
            "type": "boolean"
          }
        },
        "required": [
          "additionalLoginInputs",
          "availableCoverageScopes",
          "collectionMethod",
          "company",
          "companyAndLineOfBusinesses",
          "companyDisplayName",
          "consentRequirements",
          "functional",
          "loginMethods",
          "nonFunctionalLoginMethods",
          "status",
          "supportsPreheating"
        ]
      },
      "CompanyLoginConfig": {
        "properties": {
          "passwordFieldPlaceholder": {
            "enum": [
              "PASSWORD",
              "CONFIDENTIAL_CODE",
              "PERSONAL_CODE",
              "SECRET_CODE",
              "MEMBERSHIP_NUMBER",
              "PIN_OR_PASSWORD"
            ],
            "type": "string"
          },
          "passwordLabel": {
            "enum": [
              "PASSWORD",
              "CONFIDENTIAL_CODE",
              "PERSONAL_CODE",
              "SECRET_CODE",
              "MEMBERSHIP_NUMBER",
              "PIN_OR_PASSWORD"
            ],
            "type": "string"
          },
          "usernameFieldPlaceholder": {
            "enum": [
              "EMAIL",
              "IDENTIFICATION_NUMBER_11",
              "IDENTIFICATION_CHARACTERS_8",
              "EMAIL_MOBILE_MUTUAL_MEMBER",
              "EMAIL_MOBILE_CLIENT",
              "EMAIL_MUTUAL_OR_REGULAR_MEMBER",
              "EMAIL_MOBILE_CONTRACT",
              "EMAIL_OR_MEMBER",
              "CLIENT_NUMBER",
              "LAST_NAME"
            ],
            "type": "string"
          },
          "usernameLabel": {
            "enum": [
              "EMAIL",
              "USERNAME",
              "CLIENT_NUMBER",
              "LAST_NAME"
            ],
            "type": "string"
          }
        }
      },
      "CompanyProducts": {
        "properties": {
          "company": {
            "type": "string"
          },
          "wealthProductTypes": {
            "items": {
              "$ref": "#/components/schemas/WealthProductTypeAvailability"
            },
            "type": "array"
          }
        }
      },
      "CompanyProductsResponse": {
        "properties": {
          "companies": {
            "items": {
              "$ref": "#/components/schemas/CompanyProducts"
            },
            "type": "array"
          }
        }
      },
      "ConsentRequirement": {
        "description": "The requirement for collect a specific consent.",
        "properties": {
          "method": {
            "description": "What method to use to collect the consent.",
            "enum": [
              "NONE",
              "NOTICE",
              "ACTIVE"
            ],
            "example": "ACTIVE",
            "type": "string"
          },
          "type": {
            "description": "The consent type.",
            "enum": [
              "TRADE_UNION_MEMBERSHIP"
            ],
            "example": "TRADE_UNION_MEMBERSHIP",
            "type": "string"
          }
        },
        "required": [
          "method",
          "type"
        ]
      },
      "Cookie": {
        "description": "A description of an HTTP cookie.",
        "properties": {
          "domain": {
            "description": "Domain of the cookie.",
            "example": ".insurely.com",
            "type": "string"
          },
          "httpOnly": {
            "description": "Whether the cookie is set to httpOnly or not.",
            "example": false,
            "type": "boolean"
          },
          "name": {
            "description": "Name of the cookie.",
            "example": "COOKIE_CONSENT",
            "type": "string"
          },
          "path": {
            "description": "Path of the cookie.",
            "example": "/",
            "type": "string"
          },
          "secure": {
            "description": "Whether the cookie is secure or not.",
            "example": true,
            "type": "boolean"
          },
          "value": {
            "description": "Value of the cookie.",
            "example": "1",
            "type": "string"
          }
        }
      },
      "Deposit": {
        "description": "Regular deposit information for general savings account",
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Amount deposited regularly"
          },
          "frequency": {
            "description": "Frequency of deposits",
            "enum": [
              "DAILY",
              "WEEKLY",
              "MONTHLY",
              "QUARTERLY",
              "SEMIANNUALLY",
              "ANNUALLY",
              "ONCE"
            ],
            "type": "string"
          }
        }
      },
      "DepositTransaction": {
        "description": "A deposit to the account",
        "discriminator": {
          "mapping": {
            "parent": "#/components/schemas/Transaction"
          },
          "propertyName": "transaction type"
        },
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "The transaction amount."
          },
          "description": {
            "description": "The description of the transaction.",
            "example": "Insättning",
            "type": "string"
          },
          "settlementDate": {
            "description": "The date when the transaction was settled.",
            "example": "2024-01-01",
            "type": "string"
          },
          "type": {
            "enum": [
              "BUY",
              "SELL",
              "DEPOSIT",
              "WITHDRAWAL",
              "FEE",
              "INTEREST",
              "DIVIDEND",
              "REDEMPTION",
              "OTHER"
            ],
            "example": "DEPOSIT",
            "title": "TransactionType",
            "type": "string"
          }
        },
        "title": "DepositTransaction"
      },
      "DividendTransaction": {
        "description": "A dividend from a holding in the account",
        "discriminator": {
          "mapping": {
            "parent": "#/components/schemas/Transaction"
          },
          "propertyName": "transaction type"
        },
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "The transaction amount."
          },
          "description": {
            "description": "The description of the transaction.",
            "example": "Utdelning",
            "type": "string"
          },
          "instrumentInformation": {
            "$ref": "#/components/schemas/TransactionInstrument",
            "description": "Instrument that related to the dividend transaction."
          },
          "settlementDate": {
            "description": "The date when the transaction was settled.",
            "example": "2024-01-01",
            "type": "string"
          },
          "type": {
            "enum": [
              "BUY",
              "SELL",
              "DEPOSIT",
              "WITHDRAWAL",
              "FEE",
              "INTEREST",
              "DIVIDEND",
              "REDEMPTION",
              "OTHER"
            ],
            "example": "DIVIDEND",
            "title": "TransactionType",
            "type": "string"
          }
        },
        "title": "DividendTransaction"
      },
      "EmailParameter": {
        "allOf": [
          {
            "$ref": "#/components/schemas/CollectionParameter"
          }
        ],
        "description": "Input required for email-link authentication flows.",
        "properties": {
          "email": {
            "description": "Email address that will receive the verification link.",
            "example": "user@example.com",
            "format": "email",
            "type": "string"
          },
          "type": {
            "enum": [
              "EMAIL"
            ],
            "type": "string"
          }
        },
        "required": [
          "email"
        ]
      },
      "ErrorResponse": {
        "description": "Standard error response returned by the API when a request fails.",
        "properties": {
          "errors": {
            "description": "Field-level validation errors, empty when not applicable.",
            "items": {
              "$ref": "#/components/schemas/InsurelyInputError"
            },
            "type": "array"
          },
          "localizedMessage": {
            "description": "Localized version of the error message, if available.",
            "example": "Invalid request",
            "type": "string"
          },
          "message": {
            "description": "Human-readable error message.",
            "example": "Invalid request",
            "type": "string"
          },
          "status": {
            "description": "HTTP status name.",
            "example": "BAD_REQUEST",
            "type": "string"
          },
          "statusCode": {
            "description": "HTTP status code.",
            "example": 400,
            "format": "int32",
            "type": "integer"
          }
        }
      },
      "FeeTransaction": {
        "description": "Fee withdrawn from the account",
        "discriminator": {
          "mapping": {
            "parent": "#/components/schemas/Transaction"
          },
          "propertyName": "transaction type"
        },
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "The transaction amount."
          },
          "description": {
            "description": "The description of the transaction.",
            "example": "Avgift",
            "type": "string"
          },
          "feeType": {
            "description": "What the fee was charged for. Absent when not known.",
            "enum": [
              "ENTRY",
              "MANAGEMENT"
            ],
            "example": "ENTRY",
            "title": "FeeType",
            "type": "string"
          },
          "settlementDate": {
            "description": "The date when the transaction was settled.",
            "example": "2024-01-01",
            "type": "string"
          },
          "type": {
            "enum": [
              "BUY",
              "SELL",
              "DEPOSIT",
              "WITHDRAWAL",
              "FEE",
              "INTEREST",
              "DIVIDEND",
              "REDEMPTION",
              "OTHER"
            ],
            "example": "FEE",
            "title": "TransactionType",
            "type": "string"
          }
        },
        "title": "FeeTransaction"
      },
      "FinancialProduct": {
        "description": "Details of financial products such as pensions and investments accounts.",
        "discriminator": {
          "mapping": {
            "child-18": "#/components/schemas/GIA",
            "child-19": "#/components/schemas/StocksAndSharesISA",
            "child-20": "#/components/schemas/CashISA",
            "child-21": "#/components/schemas/SelfInvestedPersonalPension",
            "child-22": "#/components/schemas/LifetimeISA",
            "child-24": "#/components/schemas/UkOccupationalPension",
            "child-36": "#/components/schemas/UkGeneralSavingsAccount",
            "child-37": "#/components/schemas/UkGeneralSavingsAccountFixedPeriod"
          },
          "propertyName": "financial product type"
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/GIA"
          },
          {
            "$ref": "#/components/schemas/StocksAndSharesISA"
          },
          {
            "$ref": "#/components/schemas/CashISA"
          },
          {
            "$ref": "#/components/schemas/SelfInvestedPersonalPension"
          },
          {
            "$ref": "#/components/schemas/LifetimeISA"
          },
          {
            "$ref": "#/components/schemas/UkOccupationalPension"
          },
          {
            "$ref": "#/components/schemas/UkGeneralSavingsAccount"
          },
          {
            "$ref": "#/components/schemas/UkGeneralSavingsAccountFixedPeriod"
          }
        ],
        "properties": {
          "company": {
            "description": "Company where the financial product has been collected from, in the format `{market}-{company}`.",
            "example": "uk-company",
            "type": "string"
          },
          "companyDisplayName": {
            "description": "Display name of the company for user-friendly presentation.",
            "example": "Company",
            "type": "string"
          },
          "type": {
            "description": "Type of the financial product.",
            "enum": [
              "GIA",
              "STOCKS_AND_SHARES_ISA",
              "CASH_ISA",
              "LIFETIME_ISA",
              "SELF_INVESTED_PERSONAL_PENSION",
              "UK_OCCUPATIONAL_PENSION",
              "UK_GENERAL_SAVINGS_ACCOUNT",
              "UK_GENERAL_SAVINGS_ACCOUNT_FIXED_PERIOD"
            ],
            "example": "GIA",
            "type": "string"
          }
        },
        "required": [
          "type"
        ],
        "title": "Financial Product"
      },
      "GIA": {
        "description": "A General Investment Account (GIA) in the UK market.",
        "discriminator": {
          "mapping": {
            "parent": "#/components/schemas/FinancialProduct"
          },
          "propertyName": "financial product type"
        },
        "example": {
          "accountInformation": {
            "cashValue": {
              "amount": 100,
              "currency": "GBP"
            },
            "hasExclusiveOwnership": true,
            "interestRate": 0.0025
          },
          "company": "uk-natwest",
          "companyDisplayName": "NatWest",
          "feeVariable": 0.0035,
          "financialInformation": {
            "currentValue": {
              "amount": 15432,
              "currency": "GBP"
            },
            "performanceSinceStart": 0.0842
          },
          "holder": {
            "name": "John Smith"
          },
          "holdings": [
            {
              "acquisitionValue": {
                "amount": 900,
                "currency": "GBP"
              },
              "feeVariable": 0.0022,
              "isin": "GB00B3X7QG63",
              "name": "Vanguard FTSE Global All Cap Index Fund",
              "quantity": 2.4,
              "type": "FUND",
              "value": {
                "amount": 1000,
                "currency": "GBP"
              }
            }
          ],
          "id": "6a7c135e-3a56-44ae-bc53-1d0d5321f552",
          "productName": "General Investment Account",
          "productNumber": "987654321",
          "startDate": "2019-04-06",
          "transactions": [
            {
              "amount": {
                "amount": 900,
                "currency": "GBP"
              },
              "instrumentInformation": {
                "isin": "GB00B3X7QG63",
                "name": "Vanguard FTSE Global All Cap Index Fund",
                "priceInAccountCurrency": {
                  "amount": 416.67,
                  "currency": "GBP"
                },
                "type": "FUND"
              },
              "quantity": 2.4,
              "settlementDate": "2026-03-03",
              "tradeDate": "2026-03-02",
              "type": "BUY"
            }
          ],
          "type": "GIA"
        },
        "properties": {
          "accountInformation": {
            "$ref": "#/components/schemas/AccountInformation",
            "description": "Account details such as available balance and interest rate."
          },
          "company": {
            "description": "Company where the financial product has been collected from. Example: `uk-natwest`.",
            "example": "uk-natwest",
            "type": "string"
          },
          "companyDisplayName": {
            "description": "Display name of the company for user-friendly presentation.",
            "example": "NatWest",
            "type": "string"
          },
          "feeFixed": {
            "description": "Fixed fee on the financial product.",
            "format": "double",
            "type": "number"
          },
          "feeVariable": {
            "description": "Variable fee on the financial product, expressed as a fraction (e.g. 0.0025).",
            "format": "double",
            "type": "number"
          },
          "financialInformation": {
            "$ref": "#/components/schemas/ProductFinancialInformation",
            "description": "Financial details of the product, like value, performance etc."
          },
          "holder": {
            "$ref": "#/components/schemas/Uk.Holder",
            "description": "Information about the owner of the financial product."
          },
          "holdings": {
            "description": "List of holdings within the financial product.",
            "items": {
              "$ref": "#/components/schemas/Wealth.Holding"
            },
            "type": "array"
          },
          "id": {
            "description": "Insurely-generated unique identifier for this collection of the financial product. Randomly generated and not stable across collections — a new id is issued each time the product is collected, even for the same underlying account. Use this only as a handle within a single collection (e.g., to correlate holdings and transactions). Do not use it to recognize the same product over time; use the stable institution-assigned identifier on this product (e.g., `productNumber`, `accountNumber`, or `loanId`) for that.",
            "example": "6a7c135e-3a56-44ae-bc53-1d0d5321f552",
            "type": "string"
          },
          "monthlySavingsAmount": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Monthly savings amount associated with the financial product."
          },
          "productName": {
            "description": "Name of the financial product.",
            "type": "string"
          },
          "productNumber": {
            "description": "The product number assigned by the source financial institution (e.g., ISK account number, policy number, mortgage number). This is the most stable identifier for the product over time and across collections, and is suitable for matching the same product between repeated collections. Note that stability is best-effort and depends on what the institution exposes; it may occasionally change if the institution restructures or reissues the product.",
            "type": "string"
          },
          "startDate": {
            "description": "Date when the financial product was opened or started.",
            "example": "2019-04-06",
            "type": "string"
          },
          "transactions": {
            "description": "Transaction history for the last 12 months.",
            "items": {
              "$ref": "#/components/schemas/Transaction"
            },
            "type": "array"
          },
          "type": {
            "description": "Type of the financial product.",
            "enum": [
              "GIA",
              "STOCKS_AND_SHARES_ISA",
              "CASH_ISA",
              "LIFETIME_ISA",
              "SELF_INVESTED_PERSONAL_PENSION",
              "UK_OCCUPATIONAL_PENSION",
              "UK_GENERAL_SAVINGS_ACCOUNT",
              "UK_GENERAL_SAVINGS_ACCOUNT_FIXED_PERIOD"
            ],
            "example": "ISK",
            "type": "string"
          }
        },
        "required": [
          "company",
          "companyDisplayName",
          "id",
          "type"
        ],
        "title": "GIA",
        "x-markets": {
          "uk": true
        },
        "x-tag": "Financial Product Type"
      },
      "GeneralSavingsInterest": {
        "description": "Interest information for general savings accounts",
        "properties": {
          "accruedInterest": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Currently accrued interest amount"
          },
          "effectiveRate": {
            "description": "Effective interest rate if available",
            "format": "double",
            "type": "number"
          },
          "payoutFrequency": {
            "description": "How often interest is paid out",
            "enum": [
              "DAILY",
              "WEEKLY",
              "MONTHLY",
              "QUARTERLY",
              "SEMIANNUALLY",
              "ANNUALLY",
              "ONCE"
            ],
            "type": "string"
          },
          "rate": {
            "description": "Fixed interest rate",
            "example": 0.025,
            "format": "double",
            "type": "number"
          },
          "rateConditionRanges": {
            "description": "Interest rate ranges based on amount",
            "items": {
              "$ref": "#/components/schemas/InterestConditionRanges"
            },
            "type": "array"
          }
        }
      },
      "InitiateCollectionRequest": {
        "description": "Future-proof request body that represents a collection as a set of typed parameters.",
        "properties": {
          "company": {
            "description": "Company identifier.",
            "example": "ee-ergo",
            "type": "string"
          },
          "loginMethod": {
            "description": "The login method to use for authentication.",
            "enum": [
              "UK_DOB_USERNAME_PASSWORD",
              "UK_LASTNAME_MEMBERSHIP_NUMBER",
              "UK_USERNAME_POSTCODE",
              "USERNAME_AND_PASSWORD",
              "EMAIL",
              "AUTHENTICATION_APP_URL",
              "API_KEY"
            ],
            "type": "string"
          },
          "parameters": {
            "description": "Typed parameters describing how to authenticate, consent and scope the collection. Can be empty or null depending on the loginMethod provided.",
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/ApiKeyParameter"
                },
                {
                  "$ref": "#/components/schemas/EmailParameter"
                },
                {
                  "$ref": "#/components/schemas/LoginMethodParameter"
                },
                {
                  "$ref": "#/components/schemas/SessionMetadataParameter"
                },
                {
                  "$ref": "#/components/schemas/TradeUnionConsentParameter"
                },
                {
                  "$ref": "#/components/schemas/UkDateOfBirthParameter"
                },
                {
                  "$ref": "#/components/schemas/UsernamePasswordParameter"
                }
              ]
            },
            "type": "array"
          },
          "productTypeFilter": {
            "description": "Narrows the collection to a subset of the products this client is configured for. Omit the field to collect the full configured set.\n\nEach value is a product key of the form `<market>.<category>.<product>`. A three-segment key names a single product; a two-segment key names a whole category and collects every product the client is allowed in it. The market segment is always this market, insurance included.\n\nThe accepted keys are enumerated on this field. That list is this market's vocabulary, not your entitlement: which of them your client may use depends on its configuration. Keys for the other domain, if your client collects both, are enumerated in that domain's spec.\n\nRejected with 400: a key naming a category or product this market does not have; a named product the client is not configured for; or a filter that resolves to no products at all. An empty array is rejected for the same reason — omit the field instead.\n\nA category this market does have is never an error on its own. It contributes whatever the client is allowed in it, and nothing when that is empty, so a caller sending a fixed superset keeps working when the configuration changes underneath them.\n\nIn France and Germany the configuration check is family-level rather than per product, because those markets record the product family rather than the product: a client configured for French pensions is accepted for any PER key.",
            "example": [
              "uk.pension",
              "uk.investments.stock_and_share_isa"
            ],
            "items": {
              "enum": [
                "uk.investments",
                "uk.investments.gia",
                "uk.investments.isa",
                "uk.investments.lifetime_isa",
                "uk.investments.stock_and_share_isa",
                "uk.pension",
                "uk.pension.occupational",
                "uk.pension.sipp",
                "uk.savings",
                "uk.savings.cash_isa",
                "uk.savings.deposit",
                "uk.savings.fixed_rate_isa",
                "uk.savings.fixed_term"
              ],
              "type": "string"
            },
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "company"
        ],
        "title": "InitiateCollectionRequest"
      },
      "InstructionsRequestObject": {
        "description": "The instructions request object included in the `CollectionStatusInformationMap` for the `SWEDISH_MOBILE_BANKID_SAME_DEVICE_CLIENT_SIDE_AUTHENTICATION` login method.",
        "properties": {
          "request": {
            "$ref": "#/components/schemas/Request"
          }
        },
        "required": [
          "request"
        ]
      },
      "InsuranceTypeAndSubtype": {
        "properties": {
          "insuranceSubType": {
            "description": "The specific insurance subtype",
            "enum": [
              "carInsurance",
              "boatInsurance",
              "trailerInsurance",
              "motorcycleInsurance",
              "mopedInsurance",
              "caravanInsurance",
              "motorhomeInsurance",
              "otherVehicleInsurance",
              "childInsurance",
              "pregnancyInsurance",
              "lifeInsurance",
              "healthInsurance",
              "accidentInsurance",
              "travelInsurance",
              "condoInsurance",
              "contentsInsurance",
              "villaInsurance",
              "cottageInsurance",
              "farmInsurance",
              "catInsurance",
              "dogInsurance",
              "horseInsurance",
              "otherAnimalInsurance",
              "genericInsurance",
              "groupInsurance",
              "incomeInsurance",
              "sicknessInsurance",
              "loanInsurance",
              "landlordInsurance"
            ],
            "example": "CAR_INSURANCE",
            "type": "string"
          },
          "insuranceType": {
            "description": "The main insurance type category",
            "enum": [
              "vehicleInsurance",
              "houseContentInsurance",
              "personInsurance",
              "animalInsurance",
              "groupInsurance",
              "generalInsurance",
              "incomeInsurance"
            ],
            "example": "VEHICLE_INSURANCE",
            "type": "string"
          }
        }
      },
      "InsurelyInputError": {
        "description": "Field-level validation errors, empty when not applicable."
      },
      "InterestConditionRanges": {
        "description": "Interest rate range based on amount",
        "properties": {
          "maxAmount": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Maximum amount for this interest rate. An open-ended top tier has no upper limit and carries an amount of -0.01 here.",
            "example": 100000
          },
          "minAmount": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Minimum amount for this interest rate",
            "example": 0
          },
          "rate": {
            "description": "Interest rate for this range",
            "example": 0.025,
            "format": "double",
            "type": "number"
          }
        }
      },
      "InterestTransaction": {
        "description": "A deposit of interest to the account",
        "discriminator": {
          "mapping": {
            "parent": "#/components/schemas/Transaction"
          },
          "propertyName": "transaction type"
        },
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "The transaction amount."
          },
          "description": {
            "description": "The description of the transaction.",
            "example": "Ränta",
            "type": "string"
          },
          "settlementDate": {
            "description": "The date when the transaction was settled.",
            "example": "2024-01-01",
            "type": "string"
          },
          "type": {
            "enum": [
              "BUY",
              "SELL",
              "DEPOSIT",
              "WITHDRAWAL",
              "FEE",
              "INTEREST",
              "DIVIDEND",
              "REDEMPTION",
              "OTHER"
            ],
            "example": "INTEREST",
            "title": "TransactionType",
            "type": "string"
          }
        },
        "title": "InterestTransaction"
      },
      "Item": {
        "description": "The item object included in the `CollectionInput` for providing supplemental information",
        "properties": {
          "type": {
            "description": "The type of information provided",
            "enum": [
              "EMAIL",
              "LOGIN_METHOD",
              "MEMBERSHIP_NUMBER",
              "PASSWORD",
              "TWO_FACTOR_TOKEN",
              "UK_DATE_OF_BIRTH",
              "USERNAME"
            ],
            "example": "EMAIL",
            "type": "string"
          },
          "value": {
            "description": "The value for the corresponding type that is passed in for the item",
            "example": "abc@insurely.com",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "value"
        ]
      },
      "LifetimeISA": {
        "description": "A Lifetime ISA for tax-efficient investing in the UK market.",
        "discriminator": {
          "mapping": {
            "parent": "#/components/schemas/FinancialProduct"
          },
          "propertyName": "financial product type"
        },
        "example": {
          "accountInformation": {
            "cashValue": {
              "amount": 75,
              "currency": "GBP"
            },
            "hasExclusiveOwnership": true,
            "interestRate": 0.0025
          },
          "allowances": [
            {
              "allowanceType": "LIFETIME_ISA",
              "limit": {
                "amount": 4000,
                "currency": "GBP"
              },
              "remaining": {
                "amount": 3000,
                "currency": "GBP"
              },
              "scope": "ACCOUNT",
              "taxYear": "2026/27",
              "used": {
                "amount": 1000,
                "currency": "GBP"
              }
            },
            {
              "allowanceType": "OVERALL",
              "limit": {
                "amount": 20000,
                "currency": "GBP"
              },
              "remaining": {
                "amount": 19000,
                "currency": "GBP"
              },
              "scope": "PROVIDER",
              "taxYear": "2026/27",
              "used": {
                "amount": 1000,
                "currency": "GBP"
              }
            }
          ],
          "company": "uk-natwest",
          "companyDisplayName": "NatWest",
          "financialInformation": {
            "currentValue": {
              "amount": 18750,
              "currency": "GBP"
            },
            "performanceSinceStart": 0.0912
          },
          "holder": {
            "name": "John Smith"
          },
          "holdings": [
            {
              "acquisitionValue": {
                "amount": 700,
                "currency": "GBP"
              },
              "isin": "GB00B10RZP78",
              "marketIdentifierCode": "XLON",
              "name": "Unilever plc",
              "quantity": 7.5,
              "type": "EQUITY",
              "value": {
                "amount": 750,
                "currency": "GBP"
              }
            }
          ],
          "id": "6a7c135e-3a56-44ae-bc53-1d0d5321f552",
          "productName": "Lifetime ISA",
          "productNumber": "987654321",
          "startDate": "2019-04-06",
          "transactions": [
            {
              "amount": {
                "amount": 1000,
                "currency": "GBP"
              },
              "settlementDate": "2026-04-10",
              "type": "DEPOSIT"
            }
          ],
          "type": "LIFETIME_ISA"
        },
        "properties": {
          "accountInformation": {
            "$ref": "#/components/schemas/AccountInformation",
            "description": "Account details such as available balance and interest rate."
          },
          "allowances": {
            "description": "ISA allowance figures as stated by this provider, one entry per allowance type and tax year. A Lifetime ISA can carry both a `LIFETIME_ISA` and an `OVERALL` entry; add figures up per `allowanceType`, never across types.",
            "items": {
              "$ref": "#/components/schemas/UkISAAllowance"
            },
            "type": "array"
          },
          "company": {
            "description": "Company where the financial product has been collected from. Example: `uk-natwest`.",
            "example": "uk-natwest",
            "type": "string"
          },
          "companyDisplayName": {
            "description": "Display name of the company for user-friendly presentation.",
            "example": "NatWest",
            "type": "string"
          },
          "financialInformation": {
            "$ref": "#/components/schemas/ProductFinancialInformation",
            "description": "Financial details of the product, like value, performance etc."
          },
          "holder": {
            "$ref": "#/components/schemas/Uk.Holder",
            "description": "Information about the owner of the financial product."
          },
          "holdings": {
            "description": "List of holdings within the financial product.",
            "items": {
              "$ref": "#/components/schemas/Wealth.Holding"
            },
            "type": "array"
          },
          "id": {
            "description": "Insurely-generated unique identifier for this collection of the financial product. Randomly generated and not stable across collections — a new id is issued each time the product is collected, even for the same underlying account. Use this only as a handle within a single collection (e.g., to correlate holdings and transactions). Do not use it to recognize the same product over time; use the stable institution-assigned identifier on this product (e.g., `productNumber`, `accountNumber`, or `loanId`) for that.",
            "example": "6a7c135e-3a56-44ae-bc53-1d0d5321f552",
            "type": "string"
          },
          "monthlySavingsAmount": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Monthly savings amount associated with the financial product."
          },
          "productName": {
            "description": "Name of the financial product.",
            "type": "string"
          },
          "productNumber": {
            "description": "The product number assigned by the source financial institution (e.g., ISK account number, policy number, mortgage number). This is the most stable identifier for the product over time and across collections, and is suitable for matching the same product between repeated collections. Note that stability is best-effort and depends on what the institution exposes; it may occasionally change if the institution restructures or reissues the product.",
            "type": "string"
          },
          "startDate": {
            "description": "Date when the financial product was opened or started.",
            "example": "2019-04-06",
            "type": "string"
          },
          "transactions": {
            "description": "Transaction history for the last 12 months.",
            "items": {
              "$ref": "#/components/schemas/Transaction"
            },
            "type": "array"
          },
          "type": {
            "description": "Type of the financial product.",
            "enum": [
              "GIA",
              "STOCKS_AND_SHARES_ISA",
              "CASH_ISA",
              "LIFETIME_ISA",
              "SELF_INVESTED_PERSONAL_PENSION",
              "UK_OCCUPATIONAL_PENSION",
              "UK_GENERAL_SAVINGS_ACCOUNT",
              "UK_GENERAL_SAVINGS_ACCOUNT_FIXED_PERIOD"
            ],
            "example": "ISK",
            "type": "string"
          }
        },
        "required": [
          "company",
          "companyDisplayName",
          "id",
          "type"
        ],
        "title": "Lifetime ISA",
        "x-markets": {
          "uk": true
        },
        "x-tag": "Financial Product Type"
      },
      "LoginMethodParameter": {
        "allOf": [
          {
            "$ref": "#/components/schemas/CollectionParameter"
          }
        ],
        "description": "Selects which login method the collector should trigger.",
        "properties": {
          "loginMethod": {
            "description": "Identifier of the login method supported by the availability endpoint.",
            "enum": [
              "UK_DOB_USERNAME_PASSWORD",
              "UK_LASTNAME_MEMBERSHIP_NUMBER",
              "UK_USERNAME_POSTCODE",
              "USERNAME_AND_PASSWORD",
              "EMAIL",
              "AUTHENTICATION_APP_URL",
              "API_KEY"
            ],
            "type": "string"
          },
          "type": {
            "enum": [
              "LOGIN_METHOD"
            ],
            "type": "string"
          }
        },
        "required": [
          "loginMethod"
        ]
      },
      "MonetaryAmount": {
        "description": "Defines a monetary amount, specified by its currency code and numerical value.",
        "properties": {
          "amount": {
            "description": "The numeric representation of the monetary value.",
            "example": 10.32,
            "type": "number"
          },
          "currency": {
            "description": "The ISO 4217 standard currency code. Possible enums: DKK, EUR, GBP, NOK, SEK, USD, etc.",
            "example": "EUR",
            "type": "string"
          }
        },
        "title": "Monetary Amount"
      },
      "OtherTransaction": {
        "description": "A transaction to or from the account with an unknown type",
        "discriminator": {
          "mapping": {
            "parent": "#/components/schemas/Transaction"
          },
          "propertyName": "transaction type"
        },
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "The transaction amount."
          },
          "description": {
            "description": "The description of the transaction.",
            "example": "Skatt",
            "type": "string"
          },
          "settlementDate": {
            "description": "The date when the transaction was settled.",
            "example": "2024-01-01",
            "type": "string"
          },
          "type": {
            "enum": [
              "BUY",
              "SELL",
              "DEPOSIT",
              "WITHDRAWAL",
              "FEE",
              "INTEREST",
              "DIVIDEND",
              "REDEMPTION",
              "OTHER"
            ],
            "example": "OTHER",
            "title": "TransactionType",
            "type": "string"
          }
        },
        "title": "OtherTransaction"
      },
      "ProductFinancialInformation": {
        "properties": {
          "currentValue": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Current value of the assets in the financial product. Current value is total paid + change in value. Change in value is affected by performance of underlying assets and withdrawals."
          },
          "performanceSinceStart": {
            "description": "Performance of the portfolio as a percentage. For example, 0.2533 represents a 25.33% increase in value. Performance is taken as presented in the source, exact measuring method is unavailable",
            "example": 0.2533,
            "format": "double",
            "type": "number"
          },
          "totalDeposits": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Cumulated value of all deposits (premiums/transfers)."
          }
        }
      },
      "ProductTransactions": {
        "description": "The full transaction history of one financial product.",
        "properties": {
          "id": {
            "description": "The id of the financial product, the same as the id of the product in the wealth data of the collection.",
            "example": "df2e7a28-6b1c-4f3e-9a52-0c8d7e1f4b39",
            "type": "string"
          },
          "transactions": {
            "description": "All transactions of the product.",
            "items": {
              "$ref": "#/components/schemas/Transaction"
            },
            "type": "array"
          }
        },
        "required": [
          "id",
          "transactions"
        ]
      },
      "RedemptionTransaction": {
        "description": "Redemption of shares on the account",
        "discriminator": {
          "mapping": {
            "parent": "#/components/schemas/Transaction"
          },
          "propertyName": "transaction type"
        },
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "The transaction amount."
          },
          "description": {
            "description": "The description of the transaction.",
            "example": "Utdelning",
            "type": "string"
          },
          "instrumentInformation": {
            "$ref": "#/components/schemas/TransactionInstrument",
            "description": "Instrument that related to the dividend transaction."
          },
          "settlementDate": {
            "description": "The date when the transaction was settled.",
            "example": "2024-01-01",
            "type": "string"
          },
          "type": {
            "enum": [
              "BUY",
              "SELL",
              "DEPOSIT",
              "WITHDRAWAL",
              "FEE",
              "INTEREST",
              "DIVIDEND",
              "REDEMPTION",
              "OTHER"
            ],
            "example": "REDEMPTION",
            "title": "TransactionType",
            "type": "string"
          }
        },
        "title": "RedemptionTransaction"
      },
      "Request": {
        "properties": {
          "body": {
            "description": "If the method is POST, body to be included in the POST request as string.",
            "example": "'{\"username\":\"19900101-1234\"}'",
            "type": "string"
          },
          "cookies": {
            "description": "List of cookies to include in the request. They should be added to a cookie jar and included in each subsequent request.",
            "items": {
              "$ref": "#/components/schemas/Cookie"
            },
            "type": "array"
          },
          "etag": {
            "description": "Entity tag of the request, each unique request will have its own unique etag. This allows for distinguishing between new requests to be made,\nsince the same request may be \"returned with multiple `CollectionStatus` responses.",
            "example": "d5c19d129d9f4a54b7de2fa198bf73fa-initiate",
            "type": "string"
          },
          "headers": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Map of headers to include with the request.",
            "example": {
              "Content-Type": "application/json"
            },
            "type": "object"
          },
          "method": {
            "description": "HTTP method of the request.",
            "example": "POST",
            "type": "string"
          },
          "url": {
            "description": "URL to make a request towards. This will be based on the company that the collection is started towards.",
            "example": "https://insurely.com/initiate-bankid",
            "type": "string"
          }
        },
        "required": [
          "url"
        ]
      },
      "ResponseObject": {
        "description": "An HTTP response to be provided after receiving HTTP `INSTRUCTIONS` in the `CollectionStatus` `extraInformation` object. This is expected when using the `SWEDISH_MOBILE_BANKID_SAME_DEVICE_CLIENT_SIDE_AUTHENTICATION` `loginMethod`. An in-depth description of this flow can be found in the introduction.",
        "properties": {
          "headers": {
            "additionalProperties": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "description": "The keys and values of the response headers. Values are lists because some headers (notably Set-Cookie) will be repeated",
            "example": {
              "Cache-Control": [
                "no-cache, no-store, max-age=0"
              ],
              "Content-Encoding": [
                "gzip"
              ],
              "Content-Language": [
                "sv_SE"
              ],
              "Content-Type": [
                "application/json; charset=UTF-8"
              ],
              "Date": [
                "Sun, 20 Jul 1969 20:17:10 GMT"
              ],
              "Expires": [
                "Thu, 01 Jan 1970 00:00:00 GMT"
              ],
              "Pragma": [
                "no-cache"
              ],
              "Server": [
                "-"
              ],
              "Set-Cookie": [
                "session=0cdd1666-7319-4f73-8fc3-d095f83b4ff9;Path=/;Domain=somecompany.se;Secure;HttpOnly",
                "qwerty=219ffwef9w0f; Domain=somecompany.se"
              ],
              "Strict-Transport-Security": [
                "max-age=31536000; includeSubDomains"
              ],
              "Transfer-Encoding": [
                "Identity"
              ],
              "Vary": [
                "Accept-Encoding"
              ]
            },
            "type": "object"
          },
          "response": {
            "description": "The response body, in the format it was responded, e.g. html or json.",
            "example": {
              "andromedaUserToken": "some_random_token",
              "extendedUsage": false,
              "formattedServerTime": "1969-07-20 22:27",
              "links": {
                "next": {
                  "method": "GET",
                  "uri": "/v5/profile/"
                }
              },
              "maskedUserId": "19300805****",
              "serverTime": "19690720 22:17",
              "status": "COMPLETE"
            }
          },
          "type": {
            "enum": [
              "RESPONSE_OBJECT"
            ],
            "example": "RESPONSE_OBJECT",
            "type": "string"
          }
        },
        "title": "ResponseObject"
      },
      "SelectOne": {
        "properties": {
          "key": {
            "type": "string"
          },
          "options": {
            "items": {
              "$ref": "#/components/schemas/AdditionalLoginInputSelectOption"
            },
            "type": "array",
            "uniqueItems": true
          },
          "type": {
            "type": "string"
          }
        },
        "required": [
          "key",
          "options"
        ]
      },
      "SelfInvestedPersonalPension": {
        "description": "A Self-Invested Personal Pension (SIPP) for managing UK pension investments.",
        "discriminator": {
          "mapping": {
            "parent": "#/components/schemas/FinancialProduct"
          },
          "propertyName": "financial product type"
        },
        "example": {
          "accountInformation": {
            "cashValue": {
              "amount": 5.5,
              "currency": "GBP"
            },
            "hasExclusiveOwnership": true
          },
          "activePayment": true,
          "company": "uk-hargreaves-lansdown",
          "companyDisplayName": "Hargreaves Lansdown",
          "feeFixed": 25,
          "financialInformation": {
            "currentValue": {
              "amount": 85421,
              "currency": "GBP"
            },
            "performanceSinceStart": 0.2231,
            "totalDeposits": {
              "amount": 69800,
              "currency": "GBP"
            }
          },
          "holder": {
            "name": "John Smith"
          },
          "holdings": [
            {
              "acquisitionValue": {
                "amount": 63300,
                "currency": "GBP"
              },
              "feeVariable": 0.0014,
              "isin": "GB00BPN5P238",
              "name": "Vanguard FTSE Developed World ex-UK Equity Index Fund",
              "quantity": 1820.5,
              "type": "FUND",
              "value": {
                "amount": 78300.5,
                "currency": "GBP"
              }
            }
          ],
          "id": "6a7c135e-3a56-44ae-bc53-1d0d5321f552",
          "monthlySavingsAmount": {
            "amount": 500,
            "currency": "GBP"
          },
          "productName": "Self-Invested Personal Pension",
          "productNumber": "987654321",
          "startDate": "2018-04-06",
          "transactions": [
            {
              "amount": {
                "amount": 500,
                "currency": "GBP"
              },
              "instrumentInformation": {
                "isin": "GB00BPN5P238",
                "name": "Vanguard FTSE Developed World ex-UK Equity Index Fund",
                "priceInAccountCurrency": {
                  "amount": 43,
                  "currency": "GBP"
                },
                "type": "FUND"
              },
              "quantity": 11.5,
              "settlementDate": "2026-03-30",
              "tradeDate": "2026-03-29",
              "type": "BUY"
            }
          ],
          "type": "SELF_INVESTED_PERSONAL_PENSION"
        },
        "properties": {
          "accountInformation": {
            "$ref": "#/components/schemas/AccountInformation",
            "description": "Account details such as available balance and interest rate."
          },
          "activePayment": {
            "description": "Indicates if the pension is currently being paid into.",
            "example": true,
            "type": "boolean"
          },
          "company": {
            "description": "Company where the financial product has been collected from. Example: `uk-natwest`.",
            "example": "uk-natwest",
            "type": "string"
          },
          "companyDisplayName": {
            "description": "Display name of the company for user-friendly presentation.",
            "example": "NatWest",
            "type": "string"
          },
          "feeFixed": {
            "description": "Fixed fee on the financial product.",
            "format": "double",
            "type": "number"
          },
          "feeVariable": {
            "description": "Variable fee on the financial product, expressed as a fraction (e.g. 0.0025).",
            "format": "double",
            "type": "number"
          },
          "financialInformation": {
            "$ref": "#/components/schemas/ProductFinancialInformation",
            "description": "Financial details of the product, like value, performance etc."
          },
          "holder": {
            "$ref": "#/components/schemas/Uk.Holder",
            "description": "Information about the owner of the financial product."
          },
          "holdings": {
            "description": "List of holdings within the financial product.",
            "items": {
              "$ref": "#/components/schemas/Wealth.Holding"
            },
            "type": "array"
          },
          "id": {
            "description": "Insurely-generated unique identifier for this collection of the financial product. Randomly generated and not stable across collections — a new id is issued each time the product is collected, even for the same underlying account. Use this only as a handle within a single collection (e.g., to correlate holdings and transactions). Do not use it to recognize the same product over time; use the stable institution-assigned identifier on this product (e.g., `productNumber`, `accountNumber`, or `loanId`) for that.",
            "example": "6a7c135e-3a56-44ae-bc53-1d0d5321f552",
            "type": "string"
          },
          "monthlySavingsAmount": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Monthly savings amount associated with the financial product."
          },
          "productName": {
            "description": "Name of the financial product.",
            "type": "string"
          },
          "productNumber": {
            "description": "The product number assigned by the source financial institution (e.g., ISK account number, policy number, mortgage number). This is the most stable identifier for the product over time and across collections, and is suitable for matching the same product between repeated collections. Note that stability is best-effort and depends on what the institution exposes; it may occasionally change if the institution restructures or reissues the product.",
            "type": "string"
          },
          "startDate": {
            "description": "Date when the financial product was opened or started.",
            "example": "2019-04-06",
            "type": "string"
          },
          "transactions": {
            "description": "Transaction history for the last 12 months.",
            "items": {
              "$ref": "#/components/schemas/Transaction"
            },
            "type": "array"
          },
          "type": {
            "description": "Type of the financial product.",
            "enum": [
              "GIA",
              "STOCKS_AND_SHARES_ISA",
              "CASH_ISA",
              "LIFETIME_ISA",
              "SELF_INVESTED_PERSONAL_PENSION",
              "UK_OCCUPATIONAL_PENSION",
              "UK_GENERAL_SAVINGS_ACCOUNT",
              "UK_GENERAL_SAVINGS_ACCOUNT_FIXED_PERIOD"
            ],
            "example": "ISK",
            "type": "string"
          }
        },
        "required": [
          "company",
          "companyDisplayName",
          "id",
          "type"
        ],
        "title": "Self-Invested Personal Pension",
        "x-markets": {
          "uk": true
        },
        "x-tag": "Financial Product Type"
      },
      "SellTransaction": {
        "description": "The sale of a holding in the account",
        "discriminator": {
          "mapping": {
            "parent": "#/components/schemas/Transaction"
          },
          "propertyName": "transaction type"
        },
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "The transaction amount."
          },
          "commission": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "The optional commission on the transaction"
          },
          "instrumentInformation": {
            "$ref": "#/components/schemas/TransactionInstrument",
            "description": "Information about the instrument traded."
          },
          "quantity": {
            "description": "The quantity of stock or fund bought.",
            "example": 204.33,
            "format": "double",
            "type": "number"
          },
          "settlementDate": {
            "description": "The date when the transaction was settled.",
            "example": "2024-01-01",
            "type": "string"
          },
          "tradeDate": {
            "description": "The date when the instrument was traded.",
            "example": "2024-01-01",
            "type": "string"
          },
          "type": {
            "enum": [
              "BUY",
              "SELL",
              "DEPOSIT",
              "WITHDRAWAL",
              "FEE",
              "INTEREST",
              "DIVIDEND",
              "REDEMPTION",
              "OTHER"
            ],
            "example": "SELL",
            "title": "TransactionType",
            "type": "string"
          }
        },
        "title": "SellTransaction"
      },
      "SessionMetadataParameter": {
        "allOf": [
          {
            "$ref": "#/components/schemas/CollectionParameter"
          }
        ],
        "description": "Lightweight metadata sent along with the collection request.",
        "properties": {
          "attributes": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Arbitrary key/value attributes used for correlation.",
            "example": {
              "externalReference": "client-run-42"
            },
            "type": "object"
          },
          "type": {
            "enum": [
              "SESSION_METADATA"
            ],
            "type": "string"
          }
        }
      },
      "StocksAndSharesISA": {
        "description": "A Stocks and Shares ISA for tax-efficient investing in the UK market.",
        "discriminator": {
          "mapping": {
            "parent": "#/components/schemas/FinancialProduct"
          },
          "propertyName": "financial product type"
        },
        "example": {
          "accountInformation": {
            "cashValue": {
              "amount": 45.27,
              "currency": "GBP"
            },
            "hasExclusiveOwnership": true,
            "interestRate": 0.0025
          },
          "allowances": [
            {
              "allowanceType": "OVERALL",
              "limit": {
                "amount": 20000,
                "currency": "GBP"
              },
              "remaining": {
                "amount": 17500,
                "currency": "GBP"
              },
              "scope": "PROVIDER",
              "taxYear": "2026/27",
              "used": {
                "amount": 2500,
                "currency": "GBP"
              }
            }
          ],
          "company": "uk-natwest",
          "companyDisplayName": "NatWest",
          "financialInformation": {
            "currentValue": {
              "amount": 26982.66,
              "currency": "GBP"
            },
            "performanceSinceStart": 0.1605
          },
          "holder": {
            "name": "John Smith"
          },
          "holdings": [
            {
              "acquisitionValue": {
                "amount": 4000,
                "currency": "GBP"
              },
              "isin": "GB00B10RZP78",
              "marketIdentifierCode": "XLON",
              "name": "Unilever plc",
              "quantity": 45,
              "type": "EQUITY",
              "value": {
                "amount": 4514.27,
                "currency": "GBP"
              }
            }
          ],
          "id": "6a7c135e-3a56-44ae-bc53-1d0d5321f552",
          "productName": "Stocks and Shares ISA",
          "productNumber": "987654321",
          "startDate": "2019-04-06",
          "transactions": [
            {
              "amount": {
                "amount": 500,
                "currency": "GBP"
              },
              "instrumentInformation": {
                "isin": "GB00B3X7QG63",
                "name": "Vanguard FTSE Global All Cap Index Fund",
                "priceInAccountCurrency": {
                  "amount": 200,
                  "currency": "GBP"
                },
                "type": "FUND"
              },
              "quantity": 2.5,
              "settlementDate": "2026-03-30",
              "tradeDate": "2026-03-29",
              "type": "SELL"
            }
          ],
          "type": "STOCKS_AND_SHARES_ISA"
        },
        "properties": {
          "accountInformation": {
            "$ref": "#/components/schemas/AccountInformation",
            "description": "Account details such as available balance and interest rate."
          },
          "allowances": {
            "description": "ISA allowance figures as stated by this provider, one entry per allowance type and tax year. A Lifetime ISA can carry both a `LIFETIME_ISA` and an `OVERALL` entry; add figures up per `allowanceType`, never across types.",
            "items": {
              "$ref": "#/components/schemas/UkISAAllowance"
            },
            "type": "array"
          },
          "company": {
            "description": "Company where the financial product has been collected from. Example: `uk-natwest`.",
            "example": "uk-natwest",
            "type": "string"
          },
          "companyDisplayName": {
            "description": "Display name of the company for user-friendly presentation.",
            "example": "NatWest",
            "type": "string"
          },
          "financialInformation": {
            "$ref": "#/components/schemas/ProductFinancialInformation",
            "description": "Financial details of the product, like value, performance etc."
          },
          "holder": {
            "$ref": "#/components/schemas/Uk.Holder",
            "description": "Information about the owner of the financial product."
          },
          "holdings": {
            "description": "List of holdings within the financial product.",
            "items": {
              "$ref": "#/components/schemas/Wealth.Holding"
            },
            "type": "array"
          },
          "id": {
            "description": "Insurely-generated unique identifier for this collection of the financial product. Randomly generated and not stable across collections — a new id is issued each time the product is collected, even for the same underlying account. Use this only as a handle within a single collection (e.g., to correlate holdings and transactions). Do not use it to recognize the same product over time; use the stable institution-assigned identifier on this product (e.g., `productNumber`, `accountNumber`, or `loanId`) for that.",
            "example": "6a7c135e-3a56-44ae-bc53-1d0d5321f552",
            "type": "string"
          },
          "monthlySavingsAmount": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Monthly savings amount associated with the financial product."
          },
          "productName": {
            "description": "Name of the financial product.",
            "type": "string"
          },
          "productNumber": {
            "description": "The product number assigned by the source financial institution (e.g., ISK account number, policy number, mortgage number). This is the most stable identifier for the product over time and across collections, and is suitable for matching the same product between repeated collections. Note that stability is best-effort and depends on what the institution exposes; it may occasionally change if the institution restructures or reissues the product.",
            "type": "string"
          },
          "startDate": {
            "description": "Date when the financial product was opened or started.",
            "example": "2019-04-06",
            "type": "string"
          },
          "transactions": {
            "description": "Transaction history for the last 12 months.",
            "items": {
              "$ref": "#/components/schemas/Transaction"
            },
            "type": "array"
          },
          "type": {
            "description": "Type of the financial product.",
            "enum": [
              "GIA",
              "STOCKS_AND_SHARES_ISA",
              "CASH_ISA",
              "LIFETIME_ISA",
              "SELF_INVESTED_PERSONAL_PENSION",
              "UK_OCCUPATIONAL_PENSION",
              "UK_GENERAL_SAVINGS_ACCOUNT",
              "UK_GENERAL_SAVINGS_ACCOUNT_FIXED_PERIOD"
            ],
            "example": "ISK",
            "type": "string"
          }
        },
        "required": [
          "company",
          "companyDisplayName",
          "id",
          "type"
        ],
        "title": "Stocks and Shares ISA",
        "x-markets": {
          "uk": true
        },
        "x-tag": "Financial Product Type"
      },
      "SupplementInformation": {
        "discriminator": {
          "mapping": {
            "COLLECTION_INPUT": "#/components/schemas/CollectionInput",
            "RESPONSE_OBJECT": "#/components/schemas/ResponseObject",
            "TWO_FACTOR_CHOICE": "#/components/schemas/TwoFactorChoice",
            "TWO_FACTOR_CODE": "#/components/schemas/TwoFactorCode"
          },
          "propertyName": "api"
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/TwoFactorCode"
          },
          {
            "$ref": "#/components/schemas/TwoFactorChoice"
          },
          {
            "$ref": "#/components/schemas/ResponseObject"
          },
          {
            "$ref": "#/components/schemas/CollectionInput"
          }
        ],
        "properties": {
          "type": {
            "description": "Type of the supplemental information.",
            "enum": [
              "TWO_FACTOR_CODE",
              "TWO_FACTOR_CHOICE",
              "RESPONSE_OBJECT",
              "COLLECTION_INPUT"
            ],
            "type": "string"
          }
        },
        "title": "SupplementInformation"
      },
      "TimePeriod": {
        "description": "Time period with length and unit",
        "properties": {
          "periodLength": {
            "description": "Length of the period",
            "example": 30,
            "format": "int32",
            "type": "integer"
          },
          "periodUnit": {
            "description": "Unit of the period",
            "enum": [
              "DAY",
              "MONTH",
              "YEAR"
            ],
            "type": "string"
          }
        }
      },
      "TradeUnionConsentParameter": {
        "allOf": [
          {
            "$ref": "#/components/schemas/CollectionParameter"
          }
        ],
        "description": "Represents that the end user consented to trade union data usage.",
        "properties": {
          "collectedAt": {
            "description": "Optional timestamp describing when the consent was collected.",
            "format": "date-time",
            "type": "string"
          },
          "type": {
            "enum": [
              "TRADE_UNION_CONSENT"
            ],
            "type": "string"
          },
          "value": {
            "description": "Whether the consent has been granted.",
            "type": "boolean"
          }
        },
        "required": [
          "value"
        ]
      },
      "Transaction": {
        "description": "List of transactions on the account within the last 12 months. Will only be included if configured accordingly",
        "discriminator": {
          "mapping": {
            "child-1": "#/components/schemas/BuyTransaction",
            "child-2": "#/components/schemas/DepositTransaction",
            "child-3": "#/components/schemas/DividendTransaction",
            "child-4": "#/components/schemas/FeeTransaction",
            "child-5": "#/components/schemas/InterestTransaction",
            "child-6": "#/components/schemas/OtherTransaction",
            "child-7": "#/components/schemas/SellTransaction",
            "child-8": "#/components/schemas/RedemptionTransaction",
            "child-9": "#/components/schemas/WithdrawalTransaction"
          },
          "propertyName": "transaction type"
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/BuyTransaction"
          },
          {
            "$ref": "#/components/schemas/DepositTransaction"
          },
          {
            "$ref": "#/components/schemas/DividendTransaction"
          },
          {
            "$ref": "#/components/schemas/FeeTransaction"
          },
          {
            "$ref": "#/components/schemas/InterestTransaction"
          },
          {
            "$ref": "#/components/schemas/OtherTransaction"
          },
          {
            "$ref": "#/components/schemas/SellTransaction"
          },
          {
            "$ref": "#/components/schemas/RedemptionTransaction"
          },
          {
            "$ref": "#/components/schemas/WithdrawalTransaction"
          }
        ],
        "properties": {
          "type": {
            "enum": [
              "BUY",
              "SELL",
              "DEPOSIT",
              "WITHDRAWAL",
              "FEE",
              "INTEREST",
              "DIVIDEND",
              "REDEMPTION",
              "OTHER"
            ],
            "example": "BUY",
            "title": "TransactionType",
            "type": "string"
          }
        }
      },
      "TransactionInstrument": {
        "properties": {
          "isin": {
            "description": "The isin of the instrument.",
            "example": "SE0005188836",
            "type": "string"
          },
          "name": {
            "description": "The name of the instrument.",
            "example": "LF Global Indexnära",
            "type": "string"
          },
          "priceInAccountCurrency": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "The price of the instrument in the account currency."
          },
          "type": {
            "description": "The type of the instrument (equity, fund, etc).",
            "enum": [
              "ETF",
              "EQUITY",
              "FUND",
              "UNKNOWN"
            ],
            "example": "FUND",
            "type": "string"
          }
        },
        "title": "TransactionInstrument"
      },
      "TwoFactorAuthenticationInstruction": {
        "description": "Instructions for two factor authentication. Add supplemental information to a collection if the `responseType` is not `NO_RESPONSE`.",
        "properties": {
          "authenticationInstruction": {
            "description": "Instructions text",
            "example": "Please authenticate with the following device: <name>'s IPHONE 13",
            "type": "string"
          },
          "responseType": {
            "description": "Expected response type",
            "enum": [
              "NUMBER_CODE",
              "NO_RESPONSE",
              "PHONE_NUMBER",
              "QR_CODE"
            ],
            "example": "NUMBER_CODE",
            "type": "string"
          }
        },
        "required": [
          "authenticationInstruction",
          "responseType"
        ]
      },
      "TwoFactorChoice": {
        "description": "A two factor code to be supplied to a collection. The collection will have status `TWO FACTOR PENDING` when a two factor code is expected from the user.",
        "properties": {
          "type": {
            "enum": [
              "TWO_FACTOR_CHOICE"
            ],
            "example": "TWO_FACTOR_CHOICE",
            "type": "string"
          },
          "value": {
            "description": "UUID of Selected Two factor method",
            "example": "2331690c-06ea-499b-a5b5-c719e253ce93",
            "type": "string"
          }
        },
        "title": "TwoFactorChoice"
      },
      "TwoFactorCode": {
        "description": "A two factor code to be supplied to a collection. The collection will have status `TWO FACTOR PENDING` when a two factor code is expected from the user.",
        "properties": {
          "type": {
            "enum": [
              "TWO_FACTOR_CODE"
            ],
            "example": "TWO_FACTOR_CODE",
            "type": "string"
          },
          "value": {
            "description": "Two factor code",
            "example": "A12345",
            "type": "string"
          }
        },
        "title": "TwoFactorCode"
      },
      "TwoFactorOption": {
        "description": "Available 2FA methods for this collection.",
        "properties": {
          "displayText": {
            "description": "text to display",
            "example": "Please supply the code sent to your iPhone 070******6",
            "type": "string"
          },
          "type": {
            "description": "2FA type",
            "enum": [
              "SMS",
              "APP",
              "APP_CODE",
              "EMAIL"
            ],
            "example": "APP",
            "type": "string"
          },
          "uuid": {
            "description": "uuid for this option",
            "example": "7fbc80f0-870b-4d94-8a31-baf683780b79",
            "type": "string"
          }
        }
      },
      "Uk.Holder": {
        "description": "Holder of the financial product",
        "properties": {
          "name": {
            "description": "Name of the person owning the financial product.",
            "example": "John Smith",
            "type": "string"
          }
        }
      },
      "UkDateOfBirthParameter": {
        "allOf": [
          {
            "$ref": "#/components/schemas/CollectionParameter"
          }
        ],
        "description": "UK date of birth required by some providers in addition to other credentials (e.g. combined with USERNAME_PASSWORD for the UK_DOB_USERNAME_PASSWORD login method).",
        "properties": {
          "dateOfBirth": {
            "description": "Date of birth in dd-MM-yyyy format.",
            "example": "31-12-1990",
            "type": "string"
          },
          "type": {
            "enum": [
              "UK_DATE_OF_BIRTH"
            ],
            "type": "string"
          }
        },
        "required": [
          "dateOfBirth"
        ]
      },
      "UkGeneralSavingsAccount": {
        "description": "A general savings account with flexible terms in the UK market.",
        "discriminator": {
          "mapping": {
            "parent": "#/components/schemas/FinancialProduct"
          },
          "propertyName": "financial product type"
        },
        "example": {
          "bic": "NWBKGB2L",
          "canDeposit": true,
          "canWithdraw": true,
          "company": "uk-natwest",
          "companyDisplayName": "NatWest",
          "currentValue": {
            "amount": 8500,
            "currency": "GBP"
          },
          "deposit": {
            "amount": {
              "amount": 250,
              "currency": "GBP"
            },
            "frequency": "MONTHLY"
          },
          "hasExclusiveOwnership": true,
          "holder": {
            "name": "John Smith"
          },
          "iban": "GB29NWBK60161331926819",
          "id": "6a7c135e-3a56-44ae-bc53-1d0d5321f552",
          "interest": {
            "accruedInterest": {
              "amount": 21.25,
              "currency": "GBP"
            },
            "effectiveRate": 0.0325,
            "payoutFrequency": "MONTHLY",
            "rate": 0.032,
            "rateConditionRanges": [
              {
                "maxAmount": {
                  "amount": 24999.99,
                  "currency": "GBP"
                },
                "minAmount": {
                  "amount": 0,
                  "currency": "GBP"
                },
                "rate": 0.032
              },
              {
                "maxAmount": {
                  "amount": -0.01,
                  "currency": "GBP"
                },
                "minAmount": {
                  "amount": 25000,
                  "currency": "GBP"
                },
                "rate": 0.035
              }
            ]
          },
          "productName": "Flexible Saver",
          "productNumber": "12345678",
          "startDate": "2019-04-06",
          "transactions": [
            {
              "amount": {
                "amount": 250,
                "currency": "GBP"
              },
              "description": "Standing order",
              "settlementDate": "2026-01-01",
              "type": "DEPOSIT"
            }
          ],
          "type": "UK_GENERAL_SAVINGS_ACCOUNT",
          "withdrawalConditions": {
            "allowedWithdrawals": 3,
            "allowedWithdrawalsPeriod": {
              "periodLength": 1,
              "periodUnit": "MONTH"
            },
            "amountLimit": {
              "amount": 5000,
              "currency": "GBP"
            },
            "fee": {
              "amount": 0,
              "currency": "GBP"
            },
            "waitingPeriod": {
              "periodLength": 1,
              "periodUnit": "DAY"
            }
          }
        },
        "properties": {
          "bic": {
            "description": "Bank Identifier Code",
            "example": "NWBKGB2L",
            "type": "string"
          },
          "canDeposit": {
            "description": "Indicates if the account accepts incoming deposits (true = deposits allowed, false = deposits not permitted)",
            "type": "boolean"
          },
          "canWithdraw": {
            "description": "Indicates if the account allows outgoing withdrawals (true = withdrawals allowed, false = withdrawals not permitted)",
            "type": "boolean"
          },
          "company": {
            "description": "Company where the financial product has been collected from. Example: `uk-natwest`.",
            "example": "uk-natwest",
            "type": "string"
          },
          "companyDisplayName": {
            "description": "Display name of the company for user-friendly presentation.",
            "example": "NatWest",
            "type": "string"
          },
          "currentValue": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Current value of the account."
          },
          "deposit": {
            "$ref": "#/components/schemas/Deposit",
            "description": "Regular deposit information"
          },
          "hasExclusiveOwnership": {
            "description": "Indicates whether the user has exclusive ownership of the account. False if PoA exists.",
            "example": true,
            "type": "boolean"
          },
          "holder": {
            "$ref": "#/components/schemas/Uk.Holder",
            "description": "Information about the owner of the financial product."
          },
          "iban": {
            "description": "International Bank Account Number",
            "example": "GB29NWBK60161331926819",
            "type": "string"
          },
          "id": {
            "description": "Insurely-generated unique identifier for this collection of the financial product. Randomly generated and not stable across collections — a new id is issued each time the product is collected, even for the same underlying account. Use this only as a handle within a single collection (e.g., to correlate holdings and transactions). Do not use it to recognize the same product over time; use the stable institution-assigned identifier on this product (e.g., `productNumber`, `accountNumber`, or `loanId`) for that.",
            "example": "6a7c135e-3a56-44ae-bc53-1d0d5321f552",
            "type": "string"
          },
          "interest": {
            "$ref": "#/components/schemas/GeneralSavingsInterest",
            "description": "Interest information for the account."
          },
          "productName": {
            "description": "Name of the financial product.",
            "type": "string"
          },
          "productNumber": {
            "description": "The product number assigned by the source financial institution (e.g., ISK account number, policy number, mortgage number). This is the most stable identifier for the product over time and across collections, and is suitable for matching the same product between repeated collections. Note that stability is best-effort and depends on what the institution exposes; it may occasionally change if the institution restructures or reissues the product.",
            "type": "string"
          },
          "startDate": {
            "description": "Date when the account was opened.",
            "example": "2019-04-06",
            "type": "string"
          },
          "transactions": {
            "description": "Transaction history for the last 12 months.",
            "items": {
              "$ref": "#/components/schemas/Transaction"
            },
            "type": "array"
          },
          "type": {
            "description": "Type of the financial product.",
            "enum": [
              "GIA",
              "STOCKS_AND_SHARES_ISA",
              "CASH_ISA",
              "LIFETIME_ISA",
              "SELF_INVESTED_PERSONAL_PENSION",
              "UK_OCCUPATIONAL_PENSION",
              "UK_GENERAL_SAVINGS_ACCOUNT",
              "UK_GENERAL_SAVINGS_ACCOUNT_FIXED_PERIOD"
            ],
            "example": "ISK",
            "type": "string"
          },
          "withdrawalConditions": {
            "$ref": "#/components/schemas/WithdrawalConditions",
            "description": "Withdrawal conditions and restrictions."
          }
        },
        "required": [
          "company",
          "companyDisplayName",
          "id",
          "type"
        ],
        "title": "UK General Savings Account",
        "x-markets": {
          "uk": true
        },
        "x-tag": "Financial Product Type"
      },
      "UkGeneralSavingsAccountFixedPeriod": {
        "description": "A general savings account with a fixed binding period in the UK market.",
        "discriminator": {
          "mapping": {
            "parent": "#/components/schemas/FinancialProduct"
          },
          "propertyName": "financial product type"
        },
        "example": {
          "bic": "NWBKGB2L",
          "bindingPeriod": {
            "autoRenewal": false,
            "cancellationFee": {
              "amount": 0,
              "currency": "GBP"
            },
            "endDate": "2027-01-01",
            "lengthPeriod": {
              "periodLength": 1,
              "periodUnit": "YEAR"
            },
            "startDate": "2026-01-01"
          },
          "canDeposit": false,
          "canWithdraw": false,
          "company": "uk-natwest",
          "companyDisplayName": "NatWest",
          "currentValue": {
            "amount": 20000,
            "currency": "GBP"
          },
          "hasExclusiveOwnership": true,
          "holder": {
            "name": "Jane Smith"
          },
          "iban": "GB29NWBK60161331926820",
          "id": "6a7c135e-3a56-44ae-bc53-1d0d5321f553",
          "interest": {
            "accruedInterest": {
              "amount": 410,
              "currency": "GBP"
            },
            "effectiveRate": 0.041,
            "payoutFrequency": "ANNUALLY",
            "rate": 0.041
          },
          "productName": "1 Year Fixed Term Saver",
          "productNumber": "87654321",
          "startDate": "2019-04-06",
          "transactions": [
            {
              "amount": {
                "amount": 20000,
                "currency": "GBP"
              },
              "description": "Opening deposit",
              "settlementDate": "2026-01-01",
              "type": "DEPOSIT"
            }
          ],
          "type": "UK_GENERAL_SAVINGS_ACCOUNT_FIXED_PERIOD",
          "withdrawalConditions": {
            "allowedWithdrawals": 0,
            "allowedWithdrawalsPeriod": {
              "periodLength": 1,
              "periodUnit": "YEAR"
            }
          }
        },
        "properties": {
          "bic": {
            "description": "Bank Identifier Code",
            "example": "NWBKGB2L",
            "type": "string"
          },
          "bindingPeriod": {
            "$ref": "#/components/schemas/BindingPeriod",
            "description": "Binding period information for this fixed-period account"
          },
          "canDeposit": {
            "description": "Indicates if the account accepts incoming deposits (true = deposits allowed, false = deposits not permitted)",
            "type": "boolean"
          },
          "canWithdraw": {
            "description": "Indicates if the account allows outgoing withdrawals (true = withdrawals allowed, false = withdrawals not permitted)",
            "type": "boolean"
          },
          "company": {
            "description": "Company where the financial product has been collected from. Example: `uk-natwest`.",
            "example": "uk-natwest",
            "type": "string"
          },
          "companyDisplayName": {
            "description": "Display name of the company for user-friendly presentation.",
            "example": "NatWest",
            "type": "string"
          },
          "currentValue": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Current value of the account."
          },
          "deposit": {
            "$ref": "#/components/schemas/Deposit",
            "description": "Regular deposit information"
          },
          "hasExclusiveOwnership": {
            "description": "Indicates whether the user has exclusive ownership of the account. False if PoA exists.",
            "example": true,
            "type": "boolean"
          },
          "holder": {
            "$ref": "#/components/schemas/Uk.Holder",
            "description": "Information about the owner of the financial product."
          },
          "iban": {
            "description": "International Bank Account Number",
            "example": "GB29NWBK60161331926820",
            "type": "string"
          },
          "id": {
            "description": "Insurely-generated unique identifier for this collection of the financial product. Randomly generated and not stable across collections — a new id is issued each time the product is collected, even for the same underlying account. Use this only as a handle within a single collection (e.g., to correlate holdings and transactions). Do not use it to recognize the same product over time; use the stable institution-assigned identifier on this product (e.g., `productNumber`, `accountNumber`, or `loanId`) for that.",
            "example": "6a7c135e-3a56-44ae-bc53-1d0d5321f552",
            "type": "string"
          },
          "interest": {
            "$ref": "#/components/schemas/GeneralSavingsInterest",
            "description": "Interest information for the account."
          },
          "productName": {
            "description": "Name of the financial product.",
            "type": "string"
          },
          "productNumber": {
            "description": "The product number assigned by the source financial institution (e.g., ISK account number, policy number, mortgage number). This is the most stable identifier for the product over time and across collections, and is suitable for matching the same product between repeated collections. Note that stability is best-effort and depends on what the institution exposes; it may occasionally change if the institution restructures or reissues the product.",
            "type": "string"
          },
          "startDate": {
            "description": "Date when the account was opened.",
            "example": "2019-04-06",
            "type": "string"
          },
          "transactions": {
            "description": "Transaction history for the last 12 months.",
            "items": {
              "$ref": "#/components/schemas/Transaction"
            },
            "type": "array"
          },
          "type": {
            "description": "Type of the financial product.",
            "enum": [
              "GIA",
              "STOCKS_AND_SHARES_ISA",
              "CASH_ISA",
              "LIFETIME_ISA",
              "SELF_INVESTED_PERSONAL_PENSION",
              "UK_OCCUPATIONAL_PENSION",
              "UK_GENERAL_SAVINGS_ACCOUNT",
              "UK_GENERAL_SAVINGS_ACCOUNT_FIXED_PERIOD"
            ],
            "example": "ISK",
            "type": "string"
          },
          "withdrawalConditions": {
            "$ref": "#/components/schemas/WithdrawalConditions",
            "description": "Withdrawal conditions and restrictions."
          }
        },
        "required": [
          "company",
          "companyDisplayName",
          "id",
          "type"
        ],
        "title": "UK General Savings Account Fixed Period",
        "x-markets": {
          "uk": true
        },
        "x-tag": "Financial Product Type"
      },
      "UkISAAllowance": {
        "description": "ISA allowance figures for one allowance type and tax year, as stated by the provider.",
        "properties": {
          "allowanceType": {
            "description": "Which allowance the figures are measured against. `OVERALL` is the annual ISA allowance shared by all of a person's ISAs (£20,000 in 2026/27). `LIFETIME_ISA` is the Lifetime ISA's own limit (£4,000), which sits inside `OVERALL`.",
            "enum": [
              "OVERALL",
              "LIFETIME_ISA"
            ],
            "example": "OVERALL",
            "type": "string"
          },
          "limit": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "The allowance limit as quoted by the provider. This is the statutory per-person limit, not a limit for this account or provider."
          },
          "remaining": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Allowance left as far as this provider knows. It does not account for payments into ISAs at other providers. It can exceed the limit on flexible ISAs (withdrawals that can be paid back in), and it is shared between ISAs at the same provider. Never add it up."
          },
          "scope": {
            "description": "`ACCOUNT` if the figures are this account's own. `PROVIDER` if they are the provider's total across all of the person's ISAs with it; the same entry then appears on each of those ISAs and should be counted once.",
            "enum": [
              "ACCOUNT",
              "PROVIDER"
            ],
            "example": "ACCOUNT",
            "type": "string"
          },
          "taxYear": {
            "description": "The UK tax year the figures are for (6 April to 5 April), e.g. `2026/27`.",
            "example": "2026/27",
            "type": "string"
          },
          "used": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Amount paid in during the tax year, as stated by the provider. It excludes ISA transfers in and the Lifetime ISA government bonus. This is the figure that can be added up across providers."
          }
        }
      },
      "UkOccupationalPension": {
        "description": "A UK Occupational Pension (workplace pension) for managing UK pension investments.",
        "discriminator": {
          "mapping": {
            "parent": "#/components/schemas/FinancialProduct"
          },
          "propertyName": "financial product type"
        },
        "example": {
          "accountInformation": {
            "cashValue": {
              "amount": 45.5,
              "currency": "GBP"
            },
            "hasExclusiveOwnership": true
          },
          "activePayment": true,
          "company": "uk-hargreaves-lansdown",
          "companyDisplayName": "Hargreaves Lansdown",
          "feeVariable": 0.0045,
          "financialInformation": {
            "currentValue": {
              "amount": 85421,
              "currency": "GBP"
            },
            "performanceSinceStart": 0.1531,
            "totalDeposits": {
              "amount": 74100,
              "currency": "GBP"
            }
          },
          "holder": {
            "name": "John Smith"
          },
          "holdings": [
            {
              "acquisitionValue": {
                "amount": 62000,
                "currency": "GBP"
              },
              "feeVariable": 0.0012,
              "isin": "GB00B41YBW71",
              "name": "Legal & General Global Equity Index Fund",
              "quantity": 3820.4,
              "type": "FUND",
              "value": {
                "amount": 76900.5,
                "currency": "GBP"
              }
            }
          ],
          "id": "6a7c135e-3a56-44ae-bc53-1d0d5321f552",
          "monthlySavingsAmount": {
            "amount": 125,
            "currency": "GBP"
          },
          "productName": "UK Occupational Pension",
          "productNumber": "987654321",
          "startDate": "2018-04-06",
          "transactions": [
            {
              "amount": {
                "amount": 125,
                "currency": "GBP"
              },
              "settlementDate": "2026-03-25",
              "type": "DEPOSIT"
            }
          ],
          "type": "UK_OCCUPATIONAL_PENSION"
        },
        "properties": {
          "accountInformation": {
            "$ref": "#/components/schemas/AccountInformation",
            "description": "Account details such as available balance and interest rate."
          },
          "activePayment": {
            "description": "Indicates if the pension is currently being paid into.",
            "example": true,
            "type": "boolean"
          },
          "company": {
            "description": "Company where the financial product has been collected from. Example: `uk-natwest`.",
            "example": "uk-natwest",
            "type": "string"
          },
          "companyDisplayName": {
            "description": "Display name of the company for user-friendly presentation.",
            "example": "NatWest",
            "type": "string"
          },
          "feeFixed": {
            "description": "Fixed fee on the financial product.",
            "format": "double",
            "type": "number"
          },
          "feeVariable": {
            "description": "Variable fee on the financial product, expressed as a fraction (e.g. 0.0025).",
            "format": "double",
            "type": "number"
          },
          "financialInformation": {
            "$ref": "#/components/schemas/ProductFinancialInformation",
            "description": "Financial details of the product, like value, performance etc."
          },
          "holder": {
            "$ref": "#/components/schemas/Uk.Holder",
            "description": "Information about the owner of the financial product."
          },
          "holdings": {
            "description": "List of holdings within the financial product.",
            "items": {
              "$ref": "#/components/schemas/Wealth.Holding"
            },
            "type": "array"
          },
          "id": {
            "description": "Insurely-generated unique identifier for this collection of the financial product. Randomly generated and not stable across collections — a new id is issued each time the product is collected, even for the same underlying account. Use this only as a handle within a single collection (e.g., to correlate holdings and transactions). Do not use it to recognize the same product over time; use the stable institution-assigned identifier on this product (e.g., `productNumber`, `accountNumber`, or `loanId`) for that.",
            "example": "6a7c135e-3a56-44ae-bc53-1d0d5321f552",
            "type": "string"
          },
          "monthlySavingsAmount": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Monthly savings amount associated with the financial product."
          },
          "productName": {
            "description": "Name of the financial product.",
            "type": "string"
          },
          "productNumber": {
            "description": "The product number assigned by the source financial institution (e.g., ISK account number, policy number, mortgage number). This is the most stable identifier for the product over time and across collections, and is suitable for matching the same product between repeated collections. Note that stability is best-effort and depends on what the institution exposes; it may occasionally change if the institution restructures or reissues the product.",
            "type": "string"
          },
          "startDate": {
            "description": "Date when the financial product was opened or started.",
            "example": "2019-04-06",
            "type": "string"
          },
          "transactions": {
            "description": "Transaction history for the last 12 months.",
            "items": {
              "$ref": "#/components/schemas/Transaction"
            },
            "type": "array"
          },
          "type": {
            "description": "Type of the financial product.",
            "enum": [
              "GIA",
              "STOCKS_AND_SHARES_ISA",
              "CASH_ISA",
              "LIFETIME_ISA",
              "SELF_INVESTED_PERSONAL_PENSION",
              "UK_OCCUPATIONAL_PENSION",
              "UK_GENERAL_SAVINGS_ACCOUNT",
              "UK_GENERAL_SAVINGS_ACCOUNT_FIXED_PERIOD"
            ],
            "example": "ISK",
            "type": "string"
          }
        },
        "required": [
          "company",
          "companyDisplayName",
          "id",
          "type"
        ],
        "title": "UK Occupational Pension",
        "x-markets": {
          "uk": true
        },
        "x-tag": "Financial Product Type"
      },
      "UsernamePasswordParameter": {
        "allOf": [
          {
            "$ref": "#/components/schemas/CollectionParameter"
          }
        ],
        "description": "Generic username/password input (used e.g. in FR or UK markets).",
        "properties": {
          "password": {
            "description": "Account password or PIN.",
            "example": "53cr3t_P455W0Rd***",
            "type": "string"
          },
          "region": {
            "description": "Optional regional selector required by some providers.",
            "example": "OCCITANE",
            "type": "string"
          },
          "type": {
            "enum": [
              "USERNAME_PASSWORD"
            ],
            "type": "string"
          },
          "username": {
            "description": "Username or membership identifier.",
            "example": "user@example.com",
            "type": "string"
          }
        },
        "required": [
          "password",
          "username"
        ]
      },
      "Wealth.Holding": {
        "properties": {
          "acquisitionValue": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "The total cost incurred to acquire an asset."
          },
          "feeVariable": {
            "description": "Yearly variable fee based on the value of the holding.",
            "example": 0.0015,
            "format": "double",
            "type": "number"
          },
          "isin": {
            "description": "ISIN code of the holding.",
            "example": "SE0005188836",
            "type": "string"
          },
          "marketIdentifierCode": {
            "description": "Unique identification code used to identify securities trading exchanges defined in ISO 10383",
            "example": "XSTO",
            "type": "string"
          },
          "name": {
            "description": "Name of the holding.",
            "example": "LF Global Indexnära",
            "type": "string"
          },
          "quantity": {
            "description": "Quantity of the asset held.",
            "example": 123.43,
            "format": "double",
            "type": "number"
          },
          "type": {
            "description": "Type of the holding.",
            "enum": [
              "ETF",
              "EQUITY",
              "FUND",
              "UNKNOWN"
            ],
            "example": "EQUITY",
            "type": "string"
          },
          "value": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Current valuation of the holding, calculated as the product of unit price and quantity."
          }
        },
        "title": "Holding"
      },
      "WealthProductTypeAvailability": {
        "properties": {
          "collectionSupported": {
            "type": "boolean"
          },
          "confirmedAtCompany": {
            "type": "boolean"
          },
          "productType": {
            "enum": [
              "GIA",
              "STOCKS_AND_SHARES_ISA",
              "CASH_ISA",
              "LIFETIME_ISA",
              "SELF_INVESTED_PERSONAL_PENSION",
              "UK_OCCUPATIONAL_PENSION",
              "UK_GENERAL_SAVINGS_ACCOUNT",
              "UK_GENERAL_SAVINGS_ACCOUNT_FIXED_PERIOD"
            ],
            "type": "string"
          }
        }
      },
      "WealthTransactionsResponse": {
        "description": "The full transaction history of a wealth collection.",
        "properties": {
          "data": {
            "description": "The transactions per financial product. Only set when COMPLETED.",
            "items": {
              "$ref": "#/components/schemas/ProductTransactions"
            },
            "type": "array"
          },
          "status": {
            "description": "Status of the transaction history.",
            "enum": [
              "PENDING",
              "COMPLETED",
              "FAILED",
              "NOT_AVAILABLE"
            ],
            "example": "COMPLETED",
            "type": "string"
          }
        },
        "required": [
          "status"
        ]
      },
      "WithdrawalConditions": {
        "description": "Conditions and restrictions for withdrawals",
        "properties": {
          "allowedWithdrawals": {
            "description": "Number of allowed withdrawals",
            "format": "int32",
            "type": "integer"
          },
          "allowedWithdrawalsPeriod": {
            "$ref": "#/components/schemas/TimePeriod",
            "description": "Time period for allowed withdrawals"
          },
          "amountLimit": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Maximum amount that can be withdrawn"
          },
          "fee": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Fee charged for withdrawals"
          },
          "waitingPeriod": {
            "$ref": "#/components/schemas/TimePeriod",
            "description": "Waiting period before withdrawal is available"
          }
        }
      },
      "WithdrawalTransaction": {
        "description": "A withdrawal from the account",
        "discriminator": {
          "mapping": {
            "parent": "#/components/schemas/Transaction"
          },
          "propertyName": "transaction type"
        },
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "The transaction amount."
          },
          "description": {
            "description": "The description of the transaction.",
            "example": "Uttag",
            "type": "string"
          },
          "settlementDate": {
            "description": "The date when the transaction was settled.",
            "example": "2024-01-01",
            "type": "string"
          },
          "type": {
            "enum": [
              "BUY",
              "SELL",
              "DEPOSIT",
              "WITHDRAWAL",
              "FEE",
              "INTEREST",
              "DIVIDEND",
              "REDEMPTION",
              "OTHER"
            ],
            "example": "WITHDRAWAL",
            "title": "TransactionType",
            "type": "string"
          }
        },
        "title": "WithdrawalTransaction"
      }
    },
    "securitySchemes": {
      "authorization-token": {
        "in": "header",
        "name": "authorization-token",
        "type": "apiKey"
      },
      "client-id": {
        "in": "header",
        "name": "client-id",
        "type": "apiKey"
      },
      "jwt-token": {
        "in": "header",
        "name": "jwt-token",
        "type": "apiKey"
      }
    }
  },
  "info": {
    "contact": {
      "email": "tech@insurely.com",
      "name": "Insurely",
      "url": "https://insurely.com"
    },
    "description": "",
    "termsOfService": "https://www.insurely.com/sv/privacy-policy",
    "title": "Insurely API",
    "version": "2026-04-01"
  },
  "openapi": "3.1.0",
  "paths": {
    "/collections": {
      "get": {
        "description": "Returns all collections for the authenticated user within the client scope.",
        "operationId": "getCollections",
        "parameters": [
          {
            "description": "Return only the latest collection per company",
            "in": "query",
            "name": "latest",
            "required": false,
            "schema": {
              "default": false,
              "type": "boolean"
            }
          },
          {
            "description": "Filter by collection status (e.g. COMPLETED, FAILED)",
            "in": "query",
            "name": "statusIn",
            "required": false,
            "schema": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          {
            "description": "Specifies the API version to use. Must match the version of the endpoint you are targeting.",
            "example": "2026-04-01",
            "in": "header",
            "name": "Insurely-Version",
            "schema": {
              "enum": [
                "2026-04-01"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/CollectionSummary"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Collections retrieved successfully."
          },
          "401": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-401"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Invalid or missing JWT token."
          }
        },
        "security": [
          {
            "jwt-token": []
          }
        ],
        "summary": "Get collections",
        "tags": [
          "Data Collection"
        ]
      },
      "post": {
        "description": "Initiate a data collection. Calling this will trigger the selected login method.",
        "operationId": "initiateCollection",
        "parameters": [
          {
            "in": "header",
            "name": "insurely-session-id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Specifies the API version to use. Must match the version of the endpoint you are targeting.",
            "example": "2026-04-01",
            "in": "header",
            "name": "Insurely-Version",
            "schema": {
              "enum": [
                "2026-04-01"
              ],
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InitiateCollectionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CollectionStatus"
                }
              }
            },
            "description": "Data collection successfully initiated."
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-400"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Invalid request. Check the response for reason details."
          },
          "401": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-401"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Invalid authorization token or the token specified is not allowed to collect information from the specified company."
          },
          "403": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-403"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Calling IP is not whitelisted."
          },
          "429": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-429"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too many requests. Please retry with backoff."
          }
        },
        "security": [
          {
            "authorization-token": []
          },
          {
            "client-id": []
          },
          {
            "jwt-token": []
          }
        ],
        "summary": "Initiate collection",
        "tags": [
          "Data Collection"
        ]
      }
    },
    "/collections/{collectionId}/skip": {
      "post": {
        "description": "Mark a collection as skipped by the user.",
        "operationId": "skipCollection",
        "parameters": [
          {
            "in": "path",
            "name": "collectionId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Specifies the API version to use. Must match the version of the endpoint you are targeting.",
            "example": "2026-04-01",
            "in": "header",
            "name": "Insurely-Version",
            "schema": {
              "enum": [
                "2026-04-01"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Successfully marked as skipped."
          },
          "401": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-401"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Invalid authorization token or disabled client."
          },
          "403": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-403"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Calling IP is not whitelisted, or the authenticated external user does not have access to the collection."
          },
          "404": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-404"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Collection not found for this client."
          },
          "429": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-429"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too many requests. Please retry with backoff."
          }
        },
        "security": [
          {
            "authorization-token": []
          },
          {
            "client-id": []
          },
          {
            "jwt-token": []
          }
        ],
        "summary": "Skip collection",
        "tags": [
          "Data Collection"
        ]
      }
    },
    "/collections/{collectionId}/status": {
      "get": {
        "description": "Returns the current status of an initiated collection.",
        "operationId": "getCollectionStatus",
        "parameters": [
          {
            "in": "path",
            "name": "collectionId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Specifies the API version to use. Must match the version of the endpoint you are targeting.",
            "example": "2026-04-01",
            "in": "header",
            "name": "Insurely-Version",
            "schema": {
              "enum": [
                "2026-04-01"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CollectionStatusResponse"
                }
              }
            },
            "description": "Status successfully fetched."
          },
          "401": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-401"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Invalid authorization token."
          },
          "403": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-403"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Calling IP is not whitelisted."
          },
          "404": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-404"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "No collection with that ID exists for this client, or the collection has expired."
          },
          "429": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-429"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too many requests. Please retry with backoff."
          }
        },
        "security": [
          {
            "authorization-token": []
          },
          {
            "client-id": []
          },
          {
            "jwt-token": []
          }
        ],
        "summary": "Get collection status",
        "tags": [
          "Data Collection"
        ]
      }
    },
    "/collections/{collectionId}/supplement-info": {
      "post": {
        "description": "Add supplemental information to a collection. See the extended section of SupplementInformation for what types of supplemental information that are supported.\n",
        "operationId": "addSupplementInformation",
        "parameters": [
          {
            "in": "path",
            "name": "collectionId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Specifies the API version to use. Must match the version of the endpoint you are targeting.",
            "example": "2026-04-01",
            "in": "header",
            "name": "Insurely-Version",
            "schema": {
              "enum": [
                "2026-04-01"
              ],
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SupplementInformation"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Successfully added supplemental information."
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-400"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Malformed or invalid supplemental information payload."
          },
          "401": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-401"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Invalid authorization token or disabled client."
          },
          "403": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-403"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Calling IP is not whitelisted, incorrect mTLS handling when applicable, or the authenticated external user does not have access to the collection."
          },
          "404": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-404"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Collection not found for this client."
          },
          "429": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-429"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too many requests. Please retry with backoff."
          }
        },
        "security": [
          {
            "authorization-token": []
          },
          {
            "client-id": []
          },
          {
            "jwt-token": []
          }
        ],
        "summary": "Add collection supplemental information",
        "tags": [
          "Data Collection"
        ]
      }
    },
    "/collections/{collectionId}/wealth/data": {
      "get": {
        "operationId": "getWealthCollectionData",
        "parameters": [
          {
            "in": "path",
            "name": "collectionId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Specifies the API version to use. Must match the version of the endpoint you are targeting.",
            "example": "2026-04-01",
            "in": "header",
            "name": "Insurely-Version",
            "schema": {
              "enum": [
                "2026-04-01"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/FinancialProduct"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Wealth data successfully fetched."
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-400"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Collection is not a wealth collection."
          },
          "401": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-401"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Invalid authorization token."
          },
          "403": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-403"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Calling IP is not whitelisted or external user does not have access."
          },
          "404": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-404"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "No collection with that ID exists for this client, the collection has expired or there was no data to fetch."
          },
          "429": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-429"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too many requests. Please retry with backoff."
          }
        },
        "security": [
          {
            "authorization-token": []
          },
          {
            "client-id": []
          },
          {
            "jwt-token": []
          }
        ],
        "summary": "Get wealth collection data",
        "tags": [
          "Data Collection"
        ]
      }
    },
    "/collections/{collectionId}/wealth/transactions": {
      "get": {
        "description": "Returns the full transaction history of the financial products in a wealth collection, fetched after the collection itself has completed. Poll while the status is PENDING and stop on any other status. The end user has usually moved on by then, so poll from your backend rather than from your app or web page. Each product's id is the id of the same product in GET /collections/{collectionId}/wealth/data.",
        "operationId": "getWealthCollectionTransactions",
        "parameters": [
          {
            "in": "path",
            "name": "collectionId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Specifies the API version to use. Must match the version of the endpoint you are targeting.",
            "example": "2026-04-01",
            "in": "header",
            "name": "Insurely-Version",
            "schema": {
              "enum": [
                "2026-04-01"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WealthTransactionsResponse"
                }
              }
            },
            "description": "Status of the transaction history, with the data once COMPLETED."
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-400"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Collection is not a wealth collection."
          },
          "401": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-401"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Invalid authorization token."
          },
          "403": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-403"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Full transaction history is not enabled for this client, calling IP is not whitelisted or external user does not have access."
          },
          "404": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-404"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "No collection with that ID exists for this client."
          },
          "429": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-429"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too many requests. Please retry with backoff."
          }
        },
        "security": [
          {
            "authorization-token": []
          },
          {
            "jwt-token": []
          }
        ],
        "summary": "Get wealth collection transaction history",
        "tags": [
          "Data Collection"
        ]
      }
    },
    "/companies/availability": {
      "get": {
        "description": "Obtain a full list of companies available for your client, together with their current status, availability (functional or not) and available login methods.",
        "operationId": "getCompaniesStatus",
        "parameters": [
          {
            "description": "Specifies the API version to use. Must match the version of the endpoint you are targeting.",
            "example": "2026-04-01",
            "in": "header",
            "name": "Insurely-Version",
            "schema": {
              "enum": [
                "2026-04-01",
                "2025-01-01",
                "2024-06-01"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/CompanyAvailability"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful request."
          },
          "429": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-429"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too many requests. Please retry with backoff."
          }
        },
        "security": [
          {
            "authorization-token": []
          },
          {
            "client-id": []
          }
        ],
        "summary": "Get status and availability",
        "tags": [
          "Company"
        ]
      }
    },
    "/companies/supported-products": {
      "get": {
        "description": "Lists each company configured for the calling client, along with the wealth product types that company supports for this client. Each product type carries a collectionSupported flag (the company offers this product type) and a confirmedAtCompany flag (confirmed in production).",
        "operationId": "getSupportedProducts",
        "parameters": [
          {
            "description": "Specifies the API version to use. Must match the version of the endpoint you are targeting.",
            "example": "2026-04-01",
            "in": "header",
            "name": "Insurely-Version",
            "schema": {
              "enum": [
                "2026-04-01",
                "2025-01-01"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyProductsResponse"
                }
              }
            },
            "description": "Successful request."
          },
          "429": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-429"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too many requests. Please retry with backoff."
          }
        },
        "security": [
          {
            "authorization-token": []
          },
          {
            "client-id": []
          }
        ],
        "summary": "Get the supported products per company",
        "tags": [
          "Company"
        ]
      }
    }
  },
  "servers": [
    {
      "url": "https://api.insurely.com"
    }
  ],
  "tags": [
    {
      "description": "Provides statuses of companies available for data collection",
      "name": "Company"
    },
    {
      "description": "Initiate a collection of wealth or insurance data, see the status and send additional information.",
      "name": "Data Collection"
    }
  ]
}