{
  "components": {
    "examples": {
      "addSupplementInformation-request-two-factor-code": {
        "description": "Supplies the two factor code the end user received, while the collection is in status `TWO_FACTOR_PENDING`.",
        "summary": "Two factor code",
        "value": {
          "type": "TWO_FACTOR_CODE",
          "value": "A12345"
        }
      },
      "createSession-201-session": {
        "description": "A JWT scoped to the user. Send it as `Authorization: Bearer <token>` so the collection is tied to that user.",
        "summary": "Session created",
        "value": {
          "expiresAt": "2026-04-01T11:00:00Z",
          "token": "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ5b3VyLXVzZXItMTIzNCJ9.PLACEHOLDER-SIGNATURE",
          "userUuid": "b3f1c2a4-8d6e-4f2b-9a1c-7e5d3b2a1f0e"
        }
      },
      "createUser-201-user": {
        "description": "The newly created user.",
        "summary": "User created",
        "value": {
          "anonymized": false,
          "createdAt": "2026-04-01T10:30:00",
          "externalId": "your-user-1234",
          "updatedAt": "2026-04-01T10:30:00",
          "userUuid": "b3f1c2a4-8d6e-4f2b-9a1c-7e5d3b2a1f0e"
        }
      },
      "createUser-request-create-user": {
        "description": "Creates a user keyed on your own identifier for that person.",
        "summary": "Create a user",
        "value": {
          "externalId": "your-user-1234"
        }
      },
      "findUserByExternalId-200-user": {
        "description": "The user matching the `externalId` query parameter.",
        "summary": "User found",
        "value": {
          "anonymized": false,
          "createdAt": "2026-04-01T10:30:00",
          "externalId": "your-user-1234",
          "updatedAt": "2026-04-01T10:30:00",
          "userUuid": "b3f1c2a4-8d6e-4f2b-9a1c-7e5d3b2a1f0e"
        }
      },
      "getCollectionStatus-200-authentication-timeout": {
        "description": "Collection Status 200 Authentication timeout",
        "summary": "Collection Status 200 Authentication timeout",
        "value": {
          "company": "se-folksam",
          "extraInformation": null,
          "id": "46743878c40cafcfe6abd1234cc70d90",
          "pollingInterval": 1000,
          "status": "AUTHENTICATION_TIMEOUT"
        }
      },
      "getCollections-200-collections": {
        "description": "Every collection belonging to the user the session token was issued for.",
        "summary": "Collections for the user",
        "value": [
          {
            "collectionId": "117a54401a0a1234ac765a85eaee7ea9",
            "company": "se-lansforsakringar",
            "createdAt": "2026-04-01T10:30:00",
            "loginMethod": "SWEDISH_MOBILE_BANKID_SAME_DEVICE",
            "status": "COMPLETED"
          },
          {
            "collectionId": "282ebe51cf6f4b8d9b8bbb94c14878db",
            "company": "se-avanza",
            "createdAt": "2026-03-28T08:12:00",
            "loginMethod": "SWEDISH_MOBILE_BANKID_OTHER_DEVICE",
            "status": "COMPLETED"
          }
        ]
      },
      "getCollectionsByUser-200-collections": {
        "description": "Every collection tied to the user, for backend-to-backend use with the API key.",
        "summary": "Collections for the user",
        "value": [
          {
            "collectionId": "117a54401a0a1234ac765a85eaee7ea9",
            "company": "se-lansforsakringar",
            "createdAt": "2026-04-01T10:30:00",
            "loginMethod": "SWEDISH_MOBILE_BANKID_SAME_DEVICE",
            "status": "COMPLETED"
          }
        ]
      },
      "getCompaniesStatus-200-available-companies": {
        "description": "List of available wealth companies and their status.",
        "summary": "Available companies",
        "value": [
          {
            "additionalLoginInputs": [],
            "availableCoverageScopes": [],
            "company": "se-avanza",
            "companyAndLineOfBusinesses": [],
            "companyDisplayName": "Avanza",
            "companyGroup": "Avanza",
            "consentRequirements": [],
            "functional": true,
            "loginMethods": [
              "SWEDISH_MOBILE_BANKID_SAME_DEVICE",
              "SWEDISH_MOBILE_BANKID_OTHER_DEVICE"
            ],
            "nonFunctionalLoginMethods": [],
            "status": "OK",
            "supportsPreheating": false
          }
        ]
      },
      "getConsents-200-consents": {
        "description": "Every consent tied to the user in the JWT. A PSD2 consent without `accountIds` covers all accounts at the bank.",
        "summary": "Consents for the user",
        "value": [
          {
            "company": "se-nordea-psd2",
            "consentId": "550e8400-e29b-41d4-a716-446655440000",
            "expiresAt": "2026-12-31T23:59:59Z",
            "scope": {
              "balances": true,
              "transactions": true,
              "type": "PSD2_AIS"
            },
            "status": "AUTHORIZED"
          }
        ]
      },
      "getConsentsByUser-200-consents": {
        "description": "Every consent tied to the user, for backend-to-backend use with the API key. A PSD2 consent without `accountIds` covers all accounts at the bank.",
        "summary": "Consents for the user",
        "value": [
          {
            "company": "se-nordea-psd2",
            "consentId": "550e8400-e29b-41d4-a716-446655440000",
            "expiresAt": "2026-12-31T23:59:59Z",
            "scope": {
              "balances": true,
              "transactions": true,
              "type": "PSD2_AIS"
            },
            "status": "AUTHORIZED"
          }
        ]
      },
      "getSupportedProducts-200-supported-products": {
        "description": "Each entry lists the wealth product types a company supports for the calling client.",
        "summary": "Per-company supported wealth product types",
        "value": {
          "companies": [
            {
              "company": "se-avanza",
              "wealthProductTypes": [
                {
                  "collectionSupported": true,
                  "confirmedAtCompany": true,
                  "productType": "ISK"
                },
                {
                  "collectionSupported": true,
                  "confirmedAtCompany": true,
                  "productType": "KF"
                }
              ]
            }
          ]
        }
      },
      "getUser-200-user": {
        "description": "The user matching the UUID.",
        "summary": "User",
        "value": {
          "anonymized": false,
          "createdAt": "2026-04-01T10:30:00",
          "externalId": "your-user-1234",
          "updatedAt": "2026-04-01T10:30:00",
          "userUuid": "b3f1c2a4-8d6e-4f2b-9a1c-7e5d3b2a1f0e"
        }
      },
      "getWealthCollectionData-200-isk": {
        "description": "A wealth collection response containing an ISK account.",
        "summary": "ISK (Investeringssparkonto)",
        "value": [
          {
            "accountInformation": {
              "cashAccountNumber": "1234567",
              "cashValue": {
                "amount": 4514.27,
                "currency": "SEK"
              },
              "hasExclusiveOwnership": true,
              "interestRate": 0.0025
            },
            "company": "se-avanza",
            "companyDisplayName": "Avanza",
            "financialInformation": {
              "currentValue": {
                "amount": 26982.66,
                "currency": "SEK"
              },
              "performanceSinceStart": 0.1605
            },
            "holder": {
              "name": "Firstname Lastname"
            },
            "holdings": [
              {
                "acquisitionValue": {
                  "amount": 18883.51,
                  "currency": "SEK"
                },
                "feeVariable": 0,
                "isin": "SE0001718388",
                "name": "Avanza Zero",
                "quantity": 54.076858,
                "type": "FUND",
                "value": {
                  "amount": 22468.39,
                  "currency": "SEK"
                }
              }
            ],
            "id": "df2e7a28-d871-45c1-a01e-515b7aeaf7da",
            "monthlySavingsAmount": {
              "amount": 4000,
              "currency": "SEK"
            },
            "productName": "Min ISK",
            "productNumber": "987654321",
            "type": "ISK"
          }
        ]
      },
      "getWealthCollectionTransactions-200-completed": {
        "description": "The transaction history of the ISK in the wealth data example. The `id` matches the product's `id` there.",
        "summary": "Transaction history completed",
        "value": {
          "data": [
            {
              "id": "df2e7a28-d871-45c1-a01e-515b7aeaf7da",
              "transactions": [
                {
                  "amount": {
                    "amount": 10000,
                    "currency": "SEK"
                  },
                  "description": "Insättning",
                  "settlementDate": "2026-03-02",
                  "type": "DEPOSIT"
                },
                {
                  "amount": {
                    "amount": -8205,
                    "currency": "SEK"
                  },
                  "commission": {
                    "amount": 0,
                    "currency": "SEK"
                  },
                  "instrumentInformation": {
                    "isin": "SE0001718388",
                    "name": "Avanza Zero",
                    "priceInAccountCurrency": {
                      "amount": 410.25,
                      "currency": "SEK"
                    },
                    "type": "FUND"
                  },
                  "quantity": 20,
                  "settlementDate": "2026-03-05",
                  "tradeDate": "2026-03-03",
                  "type": "BUY"
                }
              ]
            }
          ],
          "status": "COMPLETED"
        }
      },
      "initiateCollection-201-started": {
        "description": "Collection started response",
        "summary": "Collection started response",
        "value": {
          "company": "se-lansforsakringar",
          "extraInformation": null,
          "id": "117a54401a0a1234ac765a85eaee7ea9",
          "pollingTimeout": "2026-08-01T12:59:10.545Z",
          "status": "RUNNING"
        }
      },
      "initiateCollection-request-bankid-other-device": {
        "description": "Starts a collection where the end user signs with BankID on a different device. Poll the status for the QR code to display.",
        "summary": "BankID on another device",
        "value": {
          "company": "se-lansforsakringar",
          "loginMethod": "SWEDISH_MOBILE_BANKID_OTHER_DEVICE",
          "parameters": [
            {
              "personalNumber": "199001011234",
              "type": "SWEDISH_BANKID"
            }
          ]
        }
      },
      "initiateCollection-request-bankid-same-device": {
        "description": "Starts a collection where the end user signs with BankID on the device they are already using.",
        "summary": "BankID on the same device",
        "value": {
          "company": "se-lansforsakringar",
          "loginMethod": "SWEDISH_MOBILE_BANKID_SAME_DEVICE",
          "parameters": [
            {
              "personalNumber": "199001011234",
              "type": "SWEDISH_BANKID"
            }
          ]
        }
      },
      "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 credentials are missing or invalid, the calling IP is not on the client's allowlist, or mTLS is enforced and no valid client certificate was sent. An expired session token gets 401 Token expired.",
        "summary": "Unauthorized",
        "value": {
          "errors": [],
          "localizedMessage": "Authentication failed",
          "message": "Authentication failed",
          "status": "UNAUTHORIZED",
          "statusCode": 401
        }
      },
      "standard-error-403": {
        "description": "The client is not allowed to use this endpoint or resource.",
        "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"
        ]
      },
      "AgePeriod": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PayoutPeriod"
          }
        ],
        "description": "A payout period described by an age range.",
        "discriminator": {
          "mapping": {
            "parent": "#/components/schemas/PayoutPeriod"
          },
          "propertyName": "type"
        },
        "properties": {
          "endAge": {
            "description": "The payout end age. Will not be set if the payout is lifelong.",
            "example": 70,
            "format": "int32",
            "type": "integer"
          },
          "startAge": {
            "description": "The payout start age.",
            "example": 65,
            "format": "int32",
            "type": "integer"
          },
          "type": {
            "enum": [
              "AGE_RANGE"
            ],
            "example": "AGE_RANGE",
            "type": "string"
          }
        },
        "title": "AgePeriod"
      },
      "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"
      },
      "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": {
            "EMAIL": "#/components/schemas/EmailParameter",
            "LOGIN_METHOD": "#/components/schemas/LoginMethodParameter",
            "PSD2_AIS_CONSENT": "#/components/schemas/Psd2AisConsentParameter",
            "SESSION_METADATA": "#/components/schemas/SessionMetadataParameter",
            "STORED_CONSENT": "#/components/schemas/StoredConsentParameter",
            "SWEDISH_BANKID": "#/components/schemas/SwedishBankIdParameter",
            "TRADE_UNION_CONSENT": "#/components/schemas/TradeUnionConsentParameter"
          },
          "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"
          },
          "AVAILABLE_TWO_FACTOR_METHODS": {
            "description": "Available 2FA methods for this collection.",
            "items": {
              "$ref": "#/components/schemas/TwoFactorOption"
            },
            "type": "array"
          },
          "INPUT_OPTIONS": {
            "description": "The values the required inputs may take, for the inputs that are a choice between a fixed set rather than free text. Submit the chosen `value` as the value of the matching `CollectionInput` item.",
            "items": {
              "$ref": "#/components/schemas/InputOptions"
            },
            "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": [
                "BRANCH",
                "EMAIL",
                "MOBILE_PHONE_NUMBER"
              ],
              "example": "EMAIL",
              "type": "string"
            },
            "type": "array"
          },
          "SWEDISH_BANKID_QRCODE": {
            "description": "A base64 encoded swedish BankId QR-code.",
            "example": "R0lGODdhtAC0AIAAAAAAAP///ywAAALg==Lg==",
            "type": "string",
            "x-markets": {
              "se": true
            }
          },
          "SWEDISH_MOBILE_BANKID_ANIMATED_QR_DATA": {
            "description": "Used to generate an animated QR-code to authenticate users on other devices. The QR-code needs to be updated every second and is only applicable for companies that have the LoginMethod SWEDISH_MOBILE_BANKID_OTHER_DEVICE.",
            "example": "bankid.67df3917-fa0d-44e5-b327-edcc928297f8.0.dc69358e712458a66a7525beef148ae8526b1c71610eff2c16cdffb4cdac9bf8",
            "type": "string",
            "x-markets": {
              "se": true
            }
          },
          "SWEDISH_MOBILE_BANKID_AUTOSTART_TOKEN": {
            "description": "Used to compile a QR image or an app-link.",
            "example": "7c40b5c9-fa74-49cf-b98c-bfe651f9a7c6",
            "type": "string",
            "x-markets": {
              "se": true
            }
          },
          "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": [
              "SWEDISH_MOBILE_BANKID_OTHER_DEVICE",
              "SWEDISH_MOBILE_BANKID_OTHER_DEVICE_MOCK",
              "SWEDISH_MOBILE_BANKID_SAME_DEVICE",
              "SWEDISH_MOBILE_BANKID_SAME_DEVICE_CLIENT_SIDE_AUTHENTICATION",
              "SWEDISH_MOBILE_BANKID_SAME_DEVICE_CLIENT_SIDE_AUTHENTICATION_MOCK",
              "SWEDISH_MOBILE_BANKID_OTHER_DEVICE_TEST",
              "SWEDISH_MOBILE_BANKID_SAME_DEVICE_TEST",
              "SWEDISH_SECURITY_TOKEN",
              "EMAIL"
            ],
            "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": [
                "SE_IF_VEHICLE",
                "SE_FOLKSAM_VEHICLE",
                "SE_LANSFORSAKRINGAR_HOME",
                "SE_PAYDRIVE_VEHICLE",
                "SE_SVEDEA_VEHICLE",
                "SE_VOLVIA_VEHICLE",
                "SE_BLIWA_ACCIDENT"
              ],
              "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": [
                "SWEDISH_MOBILE_BANKID_OTHER_DEVICE",
                "SWEDISH_MOBILE_BANKID_OTHER_DEVICE_MOCK",
                "SWEDISH_MOBILE_BANKID_SAME_DEVICE",
                "SWEDISH_MOBILE_BANKID_SAME_DEVICE_CLIENT_SIDE_AUTHENTICATION",
                "SWEDISH_MOBILE_BANKID_SAME_DEVICE_CLIENT_SIDE_AUTHENTICATION_MOCK",
                "SWEDISH_MOBILE_BANKID_OTHER_DEVICE_TEST",
                "SWEDISH_MOBILE_BANKID_SAME_DEVICE_TEST",
                "SWEDISH_SECURITY_TOKEN",
                "EMAIL"
              ],
              "type": "string"
            },
            "type": "array",
            "uniqueItems": true
          },
          "nonFunctionalLoginMethods": {
            "description": "Disabled login methods for the company.",
            "example": "USERNAME_AND_PASSWORD",
            "items": {
              "enum": [
                "SWEDISH_MOBILE_BANKID_OTHER_DEVICE",
                "SWEDISH_MOBILE_BANKID_OTHER_DEVICE_MOCK",
                "SWEDISH_MOBILE_BANKID_SAME_DEVICE",
                "SWEDISH_MOBILE_BANKID_SAME_DEVICE_CLIENT_SIDE_AUTHENTICATION",
                "SWEDISH_MOBILE_BANKID_SAME_DEVICE_CLIENT_SIDE_AUTHENTICATION_MOCK",
                "SWEDISH_MOBILE_BANKID_OTHER_DEVICE_TEST",
                "SWEDISH_MOBILE_BANKID_SAME_DEVICE_TEST",
                "SWEDISH_SECURITY_TOKEN",
                "EMAIL"
              ],
              "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"
          }
        }
      },
      "Consent": {
        "description": "Response representing a consent record.",
        "properties": {
          "company": {
            "description": "Company identifier.",
            "example": "se-demo-psd2",
            "type": "string"
          },
          "consentId": {
            "description": "Unique identifier for the consent.",
            "example": "550e8400-e29b-41d4-a716-446655440000",
            "type": "string"
          },
          "expiresAt": {
            "description": "Expiration timestamp for the consent.",
            "example": "2026-12-31T23:59:59Z",
            "format": "date-time",
            "type": "string"
          },
          "scope": {
            "description": "Requested consent scopes.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Psd2AisConsentScope"
              }
            ]
          },
          "status": {
            "description": "Current status of the consent.",
            "enum": [
              "INITIATED",
              "AWAITING_AUTHORIZATION",
              "AUTHORIZED",
              "REVOKED",
              "EXPIRED",
              "FAILED"
            ],
            "example": "INITIATED",
            "title": "ConsentStatus",
            "type": "string"
          }
        },
        "required": [
          "company",
          "consentId",
          "scope",
          "status"
        ],
        "title": "Consent"
      },
      "ConsentParameter": {
        "description": "Marker interface for typed parameters in a create-consent request. Each concrete implementation describes a specific type of input (consent, etc.)",
        "discriminator": {
          "propertyName": "type"
        },
        "properties": {
          "type": {
            "type": "string"
          }
        },
        "required": [
          "type"
        ],
        "title": "ConsentParameter"
      },
      "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"
        ]
      },
      "ConsentScope": {
        "description": "Consent scope defining the permissions granted by the user",
        "discriminator": {
          "propertyName": "type"
        },
        "properties": {
          "type": {
            "enum": [
              "PSD2_AIS",
              "LEFI"
            ],
            "type": "string"
          }
        },
        "title": "ConsentScope"
      },
      "ConsentStatusAuthInstructions": {
        "description": "Authentication instructions for BankID consent authorization",
        "discriminator": {
          "propertyName": "type"
        },
        "properties": {
          "type": {
            "type": "string"
          }
        },
        "required": [
          "type"
        ],
        "title": "ConsentStatusAuthInstructions"
      },
      "ConsentStatusError": {
        "description": "Error details for a failed consent",
        "properties": {
          "code": {
            "description": "Error code identifying the type of failure",
            "example": "AUTHENTICATION_TIMEOUT",
            "type": "string"
          },
          "message": {
            "description": "Human-readable error message",
            "example": "User did not complete BankID authentication within the time limit",
            "type": "string"
          }
        },
        "required": [
          "code",
          "message"
        ],
        "title": "ConsentStatusError"
      },
      "ConsentStatusResponse": {
        "description": "Response containing current consent status and authentication instructions",
        "properties": {
          "authInstructions": {
            "description": "Authentication instructions. Present during AWAITING_AUTHORIZATION status.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/SwedishBankIdAutostartToken"
              },
              {
                "$ref": "#/components/schemas/SwedishBankIdQr"
              }
            ]
          },
          "company": {
            "description": "Company identifier.",
            "example": "se-nordea-psd2",
            "type": "string"
          },
          "consentId": {
            "description": "The unique identifier of the consent",
            "example": "550e8400-e29b-41d4-a716-446655440000",
            "type": "string"
          },
          "createdAt": {
            "description": "Timestamp when the consent was created",
            "example": "2026-01-15T10:30:00Z",
            "format": "date-time",
            "type": "string"
          },
          "error": {
            "$ref": "#/components/schemas/ConsentStatusError",
            "description": "Error details. Present when status is FAILED."
          },
          "expiresAt": {
            "description": "Expiration timestamp of the consent. Present only when status is AUTHORIZED.",
            "example": "2026-12-31T23:59:59Z",
            "format": "date-time",
            "type": "string"
          },
          "pollingInterval": {
            "description": "Recommended polling interval in milliseconds. Present for non-terminal statuses.",
            "example": 1000,
            "format": "int32",
            "type": "integer"
          },
          "revokedAt": {
            "description": "Timestamp when the consent was revoked. Present only when status is REVOKED.",
            "example": "2026-01-20T15:00:00Z",
            "format": "date-time",
            "type": "string"
          },
          "scope": {
            "description": "The permissions granted under this consent, including which accounts and data types (balances, transactions) are accessible.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Psd2AisConsentScope"
              }
            ]
          },
          "status": {
            "description": "The current status of the consent",
            "enum": [
              "INITIATED",
              "AWAITING_AUTHORIZATION",
              "AUTHORIZED",
              "REVOKED",
              "EXPIRED",
              "FAILED"
            ],
            "title": "ConsentStatus",
            "type": "string"
          },
          "statusChangedAt": {
            "description": "Timestamp when the status was last changed",
            "example": "2026-01-15T10:31:00Z",
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "company",
          "consentId",
          "createdAt",
          "status",
          "statusChangedAt"
        ],
        "title": "ConsentStatusResponse"
      },
      "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"
          }
        }
      },
      "CreateConsentRequest": {
        "description": "Request body for creating a new PSD2_AIS (Account Information Service) consent for the authenticated external user.",
        "properties": {
          "company": {
            "description": "Company identifier.",
            "example": "se-nordea-psd2",
            "type": "string"
          },
          "loginMethod": {
            "description": "The login method to use for authentication. Required when SWEDISH_BANKID parameter is provided.",
            "example": "SWEDISH_MOBILE_BANKID_SAME_DEVICE",
            "type": "string"
          },
          "parameters": {
            "description": "Consent creation parameters.",
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/Psd2AisConsentParameter"
                },
                {
                  "$ref": "#/components/schemas/SwedishBankIdParameter"
                }
              ]
            },
            "type": "array"
          }
        },
        "required": [
          "company",
          "parameters"
        ],
        "title": "CreateConsentRequest"
      },
      "CreateUserRequest": {
        "properties": {
          "externalId": {
            "maxLength": 255,
            "minLength": 0,
            "type": "string"
          }
        },
        "required": [
          "externalId"
        ]
      },
      "CustodyAccount": {
        "description": "Custody account. Example: Aktie-FondKonto",
        "discriminator": {
          "mapping": {
            "parent": "#/components/schemas/FinancialProduct"
          },
          "propertyName": "financial product type"
        },
        "example": {
          "accountInformation": {
            "cashAccountNumber": "1234567",
            "cashValue": {
              "amount": 4514.27,
              "currency": "SEK"
            },
            "hasExclusiveOwnership": true,
            "interestRate": 0.0025
          },
          "company": "se-company",
          "companyDisplayName": "Company",
          "financialInformation": {
            "currentValue": {
              "amount": 26982.66,
              "currency": "SEK"
            },
            "performanceSinceStart": 0.1605
          },
          "holder": {
            "name": "Firstname Lastname"
          },
          "holdings": [
            {
              "acquisitionValue": {
                "amount": 18883.51,
                "currency": "SEK"
              },
              "feeVariable": 0,
              "isin": "SE0001718388",
              "name": "Avanza Zero",
              "quantity": 54.076858,
              "type": "FUND",
              "value": {
                "amount": 22468.39,
                "currency": "SEK"
              }
            }
          ],
          "id": "df2e7a28-d871-45c1-a01e-515b7aeaf7da",
          "monthlySavingsAmount": {
            "amount": 4000,
            "currency": "SEK"
          },
          "personalInformation": {
            "personalNumber": "19010106-1234"
          },
          "productName": "Min Depå",
          "productNumber": "987654321",
          "transactions": [
            {
              "amount": {
                "amount": 10.32,
                "currency": "EUR"
              },
              "description": "Insättning",
              "settlementDate": "2024-01-01",
              "type": "DEPOSIT"
            }
          ],
          "type": "CUSTODY_ACCOUNT"
        },
        "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. Examples:\n  `se-folksam`, `se-lansforsakringar`, `se-avanza`, `se-movestic`, `se-spp`, `se-nordea`,\n  `se-amf`, `se-seb`, `se-alecta`, `se-nordnet`, `se-handelsbanken`, `se-futur`,\n  `se-swedbank`, `se-skandia`, `se-ica-bank`, `se-danske-bank`.\n",
            "example": "se-lansforsakringar",
            "type": "string"
          },
          "companyDisplayName": {
            "description": "Display name of the company for user-friendly presentation.",
            "example": "Länsförsäkringar",
            "type": "string"
          },
          "financialInformation": {
            "$ref": "#/components/schemas/ProductFinancialInformation",
            "description": "Financial details of the product, like value, performance etc."
          },
          "holder": {
            "$ref": "#/components/schemas/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."
          },
          "movability": {
            "$ref": "#/components/schemas/Movability",
            "description": "The result of evaluating default or custom movability rules",
            "example": {
              "result": "MOVABLE"
            }
          },
          "personalInformation": {
            "$ref": "#/components/schemas/PersonalInformation",
            "description": "Personal information about the person who initiated the data collection."
          },
          "productName": {
            "description": "Name of the financial product.",
            "example": "Avtalspension FTP",
            "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.",
            "example": "SU91231230-2",
            "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": [
              "KF",
              "ISK",
              "CUSTODY_ACCOUNT",
              "UNKNOWN_INVESTMENT_TYPE",
              "IPS_PENSION",
              "PRIVATE_PENSION",
              "OCCUPATIONAL_PENSION",
              "COLLECTIVE_OCCUPATIONAL_PENSION",
              "UNKNOWN_PENSION_TYPE",
              "MORTGAGE_LOAN",
              "UNSECURED_LOAN",
              "GENERAL_SAVINGS_ACCOUNT",
              "GENERAL_SAVINGS_ACCOUNT_FIXED_PERIOD",
              "PSD2_SAVINGS_ACCOUNT",
              "PSD2_CHECKING_ACCOUNT",
              "PSD2_CREDIT_CARD"
            ],
            "example": "ISK",
            "type": "string"
          }
        },
        "required": [
          "company",
          "companyDisplayName",
          "id",
          "type"
        ],
        "title": "Custody Account",
        "x-tag": "Financial Product Type"
      },
      "DatePeriod": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PayoutPeriod"
          }
        ],
        "description": "A payout period described by an date range.",
        "discriminator": {
          "mapping": {
            "parent": "#/components/schemas/PayoutPeriod"
          },
          "propertyName": "type"
        },
        "properties": {
          "endDate": {
            "description": "The payout end date. Will not be set if the payout is lifelong.",
            "example": "2060-01-31",
            "type": "string"
          },
          "startDate": {
            "description": "The payout start date.",
            "example": "2050-01-01",
            "type": "string"
          },
          "type": {
            "enum": [
              "DATE_RANGE"
            ],
            "example": "DATE_RANGE",
            "type": "string"
          }
        },
        "title": "DatePeriod"
      },
      "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"
      },
      "Fees": {
        "description": "Fees associated with the financial product. Exactly one of `personalized` / `generic` is populated; the presence of `personalized` signals that the values are personalized to the holder (with their actual discounts), while the presence of `generic` signals a generic / list-price mapping that is not personalized. The `fees` object itself is absent when no fee data (neither personalized nor generic) is available for the product.",
        "properties": {
          "generic": {
            "$ref": "#/components/schemas/GenericFees",
            "description": "Fees mapped generically (list-price / fallback) for the financial product, not personalized to the holder and likely missing discounts. Present when per-holder fee data is unavailable; otherwise `personalized` is present instead."
          },
          "personalized": {
            "$ref": "#/components/schemas/PersonalizedFees",
            "description": "Fees personalized to the holder of the financial product (includes the holder's actual discounts). Present when the source exposes per-holder fee data; otherwise `generic` is present instead."
          }
        }
      },
      "FinancialPeriod": {
        "properties": {
          "endDate": {
            "description": "End date of the period. Format: YYYY-MM-DD.",
            "example": "2020-12-31",
            "type": "string"
          },
          "startDate": {
            "description": "Start date of the period. Format: YYYY-MM-DD.",
            "example": "2020-01-01",
            "type": "string"
          }
        }
      },
      "FinancialProduct": {
        "description": "Details of financial products such as pensions and investments accounts.",
        "discriminator": {
          "mapping": {
            "child-1": "#/components/schemas/CustodyAccount",
            "child-10": "#/components/schemas/LoanMortgage",
            "child-11": "#/components/schemas/UnsecuredLoan",
            "child-12": "#/components/schemas/GeneralSavingsAccount",
            "child-13": "#/components/schemas/GeneralSavingsAccountFixedPeriod",
            "child-14": "#/components/schemas/PublicPension",
            "child-15": "#/components/schemas/Psd2SavingsAccount",
            "child-16": "#/components/schemas/Psd2CheckingAccount",
            "child-17": "#/components/schemas/Psd2CreditCard",
            "child-2": "#/components/schemas/ISK",
            "child-3": "#/components/schemas/InvestmentUnknown",
            "child-4": "#/components/schemas/KF",
            "child-5": "#/components/schemas/PensionCollectiveOccupational",
            "child-6": "#/components/schemas/PensionIPS",
            "child-7": "#/components/schemas/PensionOccupational",
            "child-8": "#/components/schemas/PensionPrivate",
            "child-9": "#/components/schemas/PensionUnknown"
          },
          "propertyName": "financial product type"
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/CustodyAccount"
          },
          {
            "$ref": "#/components/schemas/ISK"
          },
          {
            "$ref": "#/components/schemas/KF"
          },
          {
            "$ref": "#/components/schemas/InvestmentUnknown"
          },
          {
            "$ref": "#/components/schemas/PensionPrivate"
          },
          {
            "$ref": "#/components/schemas/PensionIPS"
          },
          {
            "$ref": "#/components/schemas/PensionOccupational"
          },
          {
            "$ref": "#/components/schemas/PensionCollectiveOccupational"
          },
          {
            "$ref": "#/components/schemas/PensionUnknown"
          },
          {
            "$ref": "#/components/schemas/PublicPension"
          },
          {
            "$ref": "#/components/schemas/LoanMortgage"
          },
          {
            "$ref": "#/components/schemas/UnsecuredLoan"
          },
          {
            "$ref": "#/components/schemas/GeneralSavingsAccount"
          },
          {
            "$ref": "#/components/schemas/GeneralSavingsAccountFixedPeriod"
          },
          {
            "$ref": "#/components/schemas/Psd2SavingsAccount"
          },
          {
            "$ref": "#/components/schemas/Psd2CheckingAccount"
          },
          {
            "$ref": "#/components/schemas/Psd2CreditCard"
          }
        ],
        "properties": {
          "company": {
            "description": "Company where the financial product has been collected from, in the format `{market}-{company}`.",
            "example": "se-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": [
              "KF",
              "ISK",
              "CUSTODY_ACCOUNT",
              "UNKNOWN_INVESTMENT_TYPE",
              "IPS_PENSION",
              "PRIVATE_PENSION",
              "OCCUPATIONAL_PENSION",
              "COLLECTIVE_OCCUPATIONAL_PENSION",
              "UNKNOWN_PENSION_TYPE",
              "MORTGAGE_LOAN",
              "UNSECURED_LOAN",
              "GENERAL_SAVINGS_ACCOUNT",
              "GENERAL_SAVINGS_ACCOUNT_FIXED_PERIOD",
              "PSD2_SAVINGS_ACCOUNT",
              "PSD2_CHECKING_ACCOUNT",
              "PSD2_CREDIT_CARD"
            ],
            "example": "ISK",
            "type": "string"
          }
        },
        "required": [
          "type"
        ],
        "title": "Financial Product"
      },
      "GeneralSavingsAccount": {
        "description": "A general savings account with flexible terms",
        "discriminator": {
          "mapping": {
            "parent": "#/components/schemas/FinancialProduct"
          },
          "propertyName": "financial product type"
        },
        "example": {
          "accountHolderName": "John Doe",
          "accountName": "My Savings Account",
          "accountNumber": "1234567890",
          "bic": "NDEASESS",
          "canDeposit": true,
          "canWithdraw": true,
          "company": "se-lansforsakringar",
          "companyDisplayName": "Länsförsäkringar",
          "currentValue": {
            "amount": 25000,
            "currency": "SEK"
          },
          "deposit": {
            "amount": {
              "amount": 1000,
              "currency": "SEK"
            },
            "frequency": "MONTHLY"
          },
          "depositGuarantee": true,
          "hasExclusiveOwnership": true,
          "iban": "SE3550000000054910000003",
          "id": "6a7c135e-3a56-44ae-bc53-1d0d5321f552",
          "interest": {
            "accruedInterest": {
              "amount": 125.5,
              "currency": "SEK"
            },
            "effectiveRate": 0.025,
            "payoutFrequency": "MONTHLY",
            "rate": 0.02,
            "rateConditionRanges": [
              {
                "maxAmount": {
                  "amount": 50000,
                  "currency": "SEK"
                },
                "minAmount": {
                  "amount": 0,
                  "currency": "SEK"
                },
                "rate": 0.02
              },
              {
                "maxAmount": {
                  "amount": -0.01,
                  "currency": "SEK"
                },
                "minAmount": {
                  "amount": 50000.01,
                  "currency": "SEK"
                },
                "rate": 0.025
              }
            ]
          },
          "personalInformation": {
            "personalNumber": "19010106-1234"
          },
          "transactionsLast12Months": [
            {
              "amount": {
                "amount": 1000,
                "currency": "SEK"
              },
              "description": "Monthly deposit",
              "settlementDate": "2024-01-01",
              "type": "DEPOSIT"
            }
          ],
          "type": "GENERAL_SAVINGS_ACCOUNT",
          "withdrawalConditions": {
            "allowedWithdrawals": 3,
            "allowedWithdrawalsPeriod": "P1M",
            "amountLimit": {
              "amount": 10000,
              "currency": "SEK"
            },
            "fee": {
              "amount": 50,
              "currency": "SEK"
            },
            "waitingPeriod": "P3D"
          }
        },
        "properties": {
          "accountHolderName": {
            "description": "Name of the account holder",
            "example": "John Doe",
            "type": "string"
          },
          "accountName": {
            "description": "Name of the account",
            "example": "My Savings Account",
            "type": "string"
          },
          "accountNumber": {
            "description": "The account number assigned by the source financial institution. This is the most stable identifier for the account over time and across collections, and is suitable for matching the same account 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 account, and the value may be masked or partially redacted (e.g., as a masked PAN for credit cards), which can cause collisions between accounts sharing the same visible digits.",
            "example": "1234567890",
            "type": "string"
          },
          "bic": {
            "description": "Bank Identifier Code",
            "example": "NDEASESS",
            "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 general savings account has been collected from. Examples:\n  `se-folksam`, `se-lansforsakringar`, `se-avanza`, `se-movestic`, `se-spp`, `se-nordea`,\n  `se-amf`, `se-seb`, `se-alecta`, `se-nordnet`, `se-handelsbanken`, `se-futur`,\n  `se-swedbank`, `se-skandia`, `se-ica-bank`, `se-danske-bank`.\n",
            "example": "se-lansforsakringar",
            "type": "string"
          },
          "companyDisplayName": {
            "description": "Display name of the company for user-friendly presentation.",
            "example": "Länsförsäkringar",
            "type": "string"
          },
          "currentValue": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Current value of the account"
          },
          "deposit": {
            "$ref": "#/components/schemas/Deposit",
            "description": "Regular deposit information"
          },
          "depositGuarantee": {
            "description": "Whether the account has deposit guarantee protection",
            "type": "boolean"
          },
          "hasExclusiveOwnership": {
            "description": "Whether the account holder has exclusive ownership",
            "type": "boolean"
          },
          "iban": {
            "description": "International Bank Account Number",
            "example": "SE3550000000054910000003",
            "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"
          },
          "personalInformation": {
            "$ref": "#/components/schemas/PersonalInformation",
            "description": "Personal information about the person who initiated the data collection."
          },
          "transactionsLast12Months": {
            "description": "Transaction history for the last 12 months",
            "items": {
              "$ref": "#/components/schemas/Transaction"
            },
            "type": "array"
          },
          "type": {
            "description": "Type of the financial product.",
            "enum": [
              "KF",
              "ISK",
              "CUSTODY_ACCOUNT",
              "UNKNOWN_INVESTMENT_TYPE",
              "IPS_PENSION",
              "PRIVATE_PENSION",
              "OCCUPATIONAL_PENSION",
              "COLLECTIVE_OCCUPATIONAL_PENSION",
              "UNKNOWN_PENSION_TYPE",
              "MORTGAGE_LOAN",
              "UNSECURED_LOAN",
              "GENERAL_SAVINGS_ACCOUNT",
              "GENERAL_SAVINGS_ACCOUNT_FIXED_PERIOD",
              "PSD2_SAVINGS_ACCOUNT",
              "PSD2_CHECKING_ACCOUNT",
              "PSD2_CREDIT_CARD"
            ],
            "example": "ISK",
            "type": "string"
          },
          "withdrawalConditions": {
            "$ref": "#/components/schemas/WithdrawalConditions",
            "description": "Withdrawal conditions and restrictions"
          }
        },
        "required": [
          "accountNumber",
          "company",
          "companyDisplayName",
          "id",
          "type"
        ],
        "title": "General Savings Account",
        "x-tag": "Financial Product Type"
      },
      "GeneralSavingsAccountFixedPeriod": {
        "description": "A general savings account with a fixed binding period",
        "discriminator": {
          "mapping": {
            "parent": "#/components/schemas/FinancialProduct"
          },
          "propertyName": "financial product type"
        },
        "example": {
          "accountHolderName": "Jane Doe",
          "accountName": "My Fixed Period Savings",
          "accountNumber": "1234567891",
          "bic": "NDEASESS",
          "bindingPeriod": {
            "autoRenewal": true,
            "cancellationFee": {
              "amount": 500,
              "currency": "SEK"
            },
            "endDate": "2026-01-01",
            "lengthPeriod": {
              "periodLength": 2,
              "periodUnit": "YEAR"
            },
            "startDate": "2024-01-01"
          },
          "canDeposit": true,
          "canWithdraw": false,
          "company": "se-lansforsakringar",
          "companyDisplayName": "Länsförsäkringar",
          "currentValue": {
            "amount": 50000,
            "currency": "SEK"
          },
          "deposit": {
            "amount": {
              "amount": 2000,
              "currency": "SEK"
            },
            "frequency": "MONTHLY"
          },
          "depositGuarantee": true,
          "hasExclusiveOwnership": true,
          "iban": "SE3550000000054910000004",
          "id": "6a7c135e-3a56-44ae-bc53-1d0d5321f552",
          "interest": {
            "accruedInterest": {
              "amount": 1250,
              "currency": "SEK"
            },
            "effectiveRate": 0.035,
            "payoutFrequency": "YEARLY",
            "rate": 0.025,
            "rateConditionRanges": [
              {
                "maxAmount": {
                  "amount": 25000,
                  "currency": "SEK"
                },
                "minAmount": {
                  "amount": 0,
                  "currency": "SEK"
                },
                "rate": 0.025
              },
              {
                "maxAmount": {
                  "amount": 100000,
                  "currency": "SEK"
                },
                "minAmount": {
                  "amount": 25000.01,
                  "currency": "SEK"
                },
                "rate": 0.035
              },
              {
                "maxAmount": {
                  "amount": -0.01,
                  "currency": "SEK"
                },
                "minAmount": {
                  "amount": 100000.01,
                  "currency": "SEK"
                },
                "rate": 0.04
              }
            ]
          },
          "personalInformation": {
            "personalNumber": "19010106-1234"
          },
          "transactionsLast12Months": [
            {
              "amount": {
                "amount": 2000,
                "currency": "SEK"
              },
              "description": "Monthly deposit",
              "settlementDate": "2024-01-01",
              "type": "DEPOSIT"
            }
          ],
          "type": "GENERAL_SAVINGS_ACCOUNT_FIXED_PERIOD",
          "withdrawalConditions": {
            "allowedWithdrawals": 1,
            "allowedWithdrawalsPeriod": {
              "periodLength": 1,
              "periodUnit": "YEAR"
            },
            "amountLimit": {
              "amount": 5000,
              "currency": "SEK"
            },
            "fee": {
              "amount": 100,
              "currency": "SEK"
            },
            "waitingPeriod": {
              "periodLength": 7,
              "periodUnit": "DAY"
            }
          }
        },
        "properties": {
          "accountHolderName": {
            "description": "Name of the account holder",
            "example": "John Doe",
            "type": "string"
          },
          "accountName": {
            "description": "Name of the account",
            "example": "My Savings Account",
            "type": "string"
          },
          "accountNumber": {
            "description": "The account number assigned by the source financial institution. This is the most stable identifier for the account over time and across collections, and is suitable for matching the same account 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 account, and the value may be masked or partially redacted (e.g., as a masked PAN for credit cards), which can cause collisions between accounts sharing the same visible digits.",
            "example": "1234567890",
            "type": "string"
          },
          "bic": {
            "description": "Bank Identifier Code",
            "example": "NDEASESS",
            "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 general savings account has been collected from. Examples:\n  `se-folksam`, `se-lansforsakringar`, `se-avanza`, `se-movestic`, `se-spp`, `se-nordea`,\n  `se-amf`, `se-seb`, `se-alecta`, `se-nordnet`, `se-handelsbanken`, `se-futur`,\n  `se-swedbank`, `se-skandia`, `se-ica-bank`, `se-danske-bank`.\n",
            "example": "se-lansforsakringar",
            "type": "string"
          },
          "companyDisplayName": {
            "description": "Display name of the company for user-friendly presentation.",
            "example": "Länsförsäkringar",
            "type": "string"
          },
          "currentValue": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Current value of the account"
          },
          "deposit": {
            "$ref": "#/components/schemas/Deposit",
            "description": "Regular deposit information"
          },
          "depositGuarantee": {
            "description": "Whether the account has deposit guarantee protection",
            "type": "boolean"
          },
          "hasExclusiveOwnership": {
            "description": "Whether the account holder has exclusive ownership",
            "type": "boolean"
          },
          "iban": {
            "description": "International Bank Account Number",
            "example": "SE3550000000054910000003",
            "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"
          },
          "personalInformation": {
            "$ref": "#/components/schemas/PersonalInformation",
            "description": "Personal information about the person who initiated the data collection."
          },
          "transactionsLast12Months": {
            "description": "Transaction history for the last 12 months",
            "items": {
              "$ref": "#/components/schemas/Transaction"
            },
            "type": "array"
          },
          "type": {
            "description": "Type of the financial product.",
            "enum": [
              "KF",
              "ISK",
              "CUSTODY_ACCOUNT",
              "UNKNOWN_INVESTMENT_TYPE",
              "IPS_PENSION",
              "PRIVATE_PENSION",
              "OCCUPATIONAL_PENSION",
              "COLLECTIVE_OCCUPATIONAL_PENSION",
              "UNKNOWN_PENSION_TYPE",
              "MORTGAGE_LOAN",
              "UNSECURED_LOAN",
              "GENERAL_SAVINGS_ACCOUNT",
              "GENERAL_SAVINGS_ACCOUNT_FIXED_PERIOD",
              "PSD2_SAVINGS_ACCOUNT",
              "PSD2_CHECKING_ACCOUNT",
              "PSD2_CREDIT_CARD"
            ],
            "example": "ISK",
            "type": "string"
          },
          "withdrawalConditions": {
            "$ref": "#/components/schemas/WithdrawalConditions",
            "description": "Withdrawal conditions and restrictions"
          }
        },
        "required": [
          "accountNumber",
          "company",
          "companyDisplayName",
          "id",
          "type"
        ],
        "title": "General Savings Account Fixed Period",
        "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"
          }
        }
      },
      "GenericFees": {
        "properties": {
          "fixed": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Annual fixed fee for the financial product (generic mapping, not personalized to the holder)."
          },
          "variable": {
            "description": "Annual variable fee based on the product's value (generic mapping, not personalized to the holder). Decimal ratio [0-1].",
            "example": 0.0065,
            "format": "double",
            "type": "number"
          }
        }
      },
      "Holder": {
        "properties": {
          "name": {
            "description": "Name of the person or organization owning the financial product.",
            "example": "Bolagsnamn AB",
            "type": "string"
          },
          "organization": {
            "$ref": "#/components/schemas/Organization",
            "description": "Information about the organization owning the pension/investment. This field is absent if the holder is a person. This field can also be absent if no organization has been found, or if there is more than one matching organization based on the holder name. See organization suggestions."
          },
          "organizationSuggestions": {
            "description": "List of holder organization suggestions. If the organization could not be identified uniquely, base on name or number, Then a list of suggestions will be returned. If there is only one organization identified, this will be present under organization and this field will be absent.",
            "items": {
              "$ref": "#/components/schemas/Organization"
            },
            "type": "array"
          }
        }
      },
      "ISK": {
        "description": "ISK. Investeringsparkonto",
        "discriminator": {
          "mapping": {
            "parent": "#/components/schemas/FinancialProduct"
          },
          "propertyName": "financial product type"
        },
        "example": {
          "accountInformation": {
            "cashAccountNumber": "1234567",
            "cashValue": {
              "amount": 4514.27,
              "currency": "SEK"
            },
            "hasExclusiveOwnership": true,
            "interestRate": 0.0025
          },
          "company": "se-company",
          "companyDisplayName": "Company",
          "financialInformation": {
            "currentValue": {
              "amount": 26982.66,
              "currency": "SEK"
            },
            "performanceSinceStart": 0.1605
          },
          "holder": {
            "name": "Firstname Lastname"
          },
          "holdings": [
            {
              "acquisitionValue": {
                "amount": 18883.51,
                "currency": "SEK"
              },
              "feeVariable": 0,
              "isin": "SE0001718388",
              "name": "Avanza Zero",
              "quantity": 54.076858,
              "type": "FUND",
              "value": {
                "amount": 22468.39,
                "currency": "SEK"
              }
            }
          ],
          "id": "df2e7a28-d871-45c1-a01e-515b7aeaf7da",
          "monthlySavingsAmount": {
            "amount": 4000,
            "currency": "SEK"
          },
          "personalInformation": {
            "personalNumber": "19010106-1234"
          },
          "productName": "Min ISK",
          "productNumber": "987654321",
          "transactions": [
            {
              "amount": {
                "amount": 10.32,
                "currency": "EUR"
              },
              "description": "Insättning",
              "settlementDate": "2024-01-01",
              "type": "DEPOSIT"
            }
          ],
          "type": "ISK"
        },
        "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. Examples:\n  `se-folksam`, `se-lansforsakringar`, `se-avanza`, `se-movestic`, `se-spp`, `se-nordea`,\n  `se-amf`, `se-seb`, `se-alecta`, `se-nordnet`, `se-handelsbanken`, `se-futur`,\n  `se-swedbank`, `se-skandia`, `se-ica-bank`, `se-danske-bank`.\n",
            "example": "se-lansforsakringar",
            "type": "string"
          },
          "companyDisplayName": {
            "description": "Display name of the company for user-friendly presentation.",
            "example": "Länsförsäkringar",
            "type": "string"
          },
          "financialInformation": {
            "$ref": "#/components/schemas/ProductFinancialInformation",
            "description": "Financial details of the product, like value, performance etc."
          },
          "holder": {
            "$ref": "#/components/schemas/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."
          },
          "movability": {
            "$ref": "#/components/schemas/Movability",
            "description": "The result of evaluating default or custom movability rules",
            "example": {
              "result": "MOVABLE"
            }
          },
          "personalInformation": {
            "$ref": "#/components/schemas/PersonalInformation",
            "description": "Personal information about the person who initiated the data collection."
          },
          "productName": {
            "description": "Name of the financial product.",
            "example": "Avtalspension FTP",
            "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.",
            "example": "SU91231230-2",
            "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": [
              "KF",
              "ISK",
              "CUSTODY_ACCOUNT",
              "UNKNOWN_INVESTMENT_TYPE",
              "IPS_PENSION",
              "PRIVATE_PENSION",
              "OCCUPATIONAL_PENSION",
              "COLLECTIVE_OCCUPATIONAL_PENSION",
              "UNKNOWN_PENSION_TYPE",
              "MORTGAGE_LOAN",
              "UNSECURED_LOAN",
              "GENERAL_SAVINGS_ACCOUNT",
              "GENERAL_SAVINGS_ACCOUNT_FIXED_PERIOD",
              "PSD2_SAVINGS_ACCOUNT",
              "PSD2_CHECKING_ACCOUNT",
              "PSD2_CREDIT_CARD"
            ],
            "example": "ISK",
            "type": "string"
          }
        },
        "required": [
          "company",
          "companyDisplayName",
          "id",
          "type"
        ],
        "title": "ISK",
        "x-tag": "Financial Product Type"
      },
      "InitiateCollectionRequest": {
        "description": "Future-proof request body that represents a collection as a set of typed parameters.",
        "properties": {
          "company": {
            "description": "Company identifier.",
            "example": "se-nordea",
            "type": "string"
          },
          "loginMethod": {
            "description": "The login method to use for authentication.",
            "enum": [
              "SWEDISH_MOBILE_BANKID_OTHER_DEVICE",
              "SWEDISH_MOBILE_BANKID_OTHER_DEVICE_MOCK",
              "SWEDISH_MOBILE_BANKID_SAME_DEVICE",
              "SWEDISH_MOBILE_BANKID_SAME_DEVICE_CLIENT_SIDE_AUTHENTICATION",
              "SWEDISH_MOBILE_BANKID_SAME_DEVICE_CLIENT_SIDE_AUTHENTICATION_MOCK",
              "SWEDISH_MOBILE_BANKID_OTHER_DEVICE_TEST",
              "SWEDISH_MOBILE_BANKID_SAME_DEVICE_TEST",
              "SWEDISH_SECURITY_TOKEN",
              "EMAIL"
            ],
            "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/EmailParameter"
                },
                {
                  "$ref": "#/components/schemas/LoginMethodParameter"
                },
                {
                  "$ref": "#/components/schemas/Psd2AisConsentParameter"
                },
                {
                  "$ref": "#/components/schemas/SessionMetadataParameter"
                },
                {
                  "$ref": "#/components/schemas/StoredConsentParameter"
                },
                {
                  "$ref": "#/components/schemas/SwedishBankIdParameter"
                },
                {
                  "$ref": "#/components/schemas/TradeUnionConsentParameter"
                }
              ]
            },
            "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": [
              "se.pension",
              "se.loans.mortgage"
            ],
            "items": {
              "enum": [
                "se.banking",
                "se.banking.checking_account",
                "se.banking.credit_card",
                "se.banking.savings_account",
                "se.investments",
                "se.investments.custody_account",
                "se.investments.isk",
                "se.investments.kf",
                "se.investments.other",
                "se.loans",
                "se.loans.car",
                "se.loans.mortgage",
                "se.loans.other",
                "se.loans.private",
                "se.pension",
                "se.pension.collective_occupational",
                "se.pension.ips",
                "se.pension.occupational",
                "se.pension.other",
                "se.pension.private",
                "se.pension.public",
                "se.savings",
                "se.savings.deposit",
                "se.savings.fixed_term"
              ],
              "type": "string"
            },
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "company"
        ],
        "title": "InitiateCollectionRequest"
      },
      "InputOptions": {
        "description": "The values a required input may take, for inputs that are a choice between a fixed set rather than free text.",
        "properties": {
          "key": {
            "description": "The required input these options belong to, as listed in `REQUIRED_INPUT_TYPES`.",
            "enum": [
              "BRANCH",
              "EMAIL",
              "MOBILE_PHONE_NUMBER"
            ],
            "example": "EMAIL",
            "type": "string"
          },
          "options": {
            "description": "The values to choose between, in the order they should be displayed.",
            "items": {
              "$ref": "#/components/schemas/Option"
            },
            "type": "array"
          },
          "type": {
            "description": "How the options should be presented.",
            "enum": [
              "selectOne"
            ],
            "example": "selectOne",
            "type": "string"
          }
        },
        "required": [
          "key",
          "options",
          "type"
        ]
      },
      "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"
        ]
      },
      "Insurance": {
        "properties": {
          "insuredPersonName": {
            "description": "Name of the insured person.",
            "example": "Juliette DUPONT GIRARD",
            "type": "string"
          }
        }
      },
      "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."
      },
      "Interest": {
        "description": "Interest data points",
        "example": {
          "baseRate": 0.0512,
          "discount": 0.012,
          "discountEndDate": "2025-03-31",
          "effectiveRate": 0.0398,
          "periodStartDate": "2024-07-01",
          "rate": 0.0392,
          "rateAdjustmentDate": "2024-10-01"
        },
        "properties": {
          "baseRate": {
            "format": "double",
            "type": "number"
          },
          "discount": {
            "format": "double",
            "type": "number"
          },
          "discountEndDate": {
            "type": "string"
          },
          "effectiveRate": {
            "format": "double",
            "type": "number"
          },
          "periodStartDate": {
            "type": "string"
          },
          "rate": {
            "format": "double",
            "type": "number"
          },
          "rateAdjustmentDate": {
            "type": "string"
          }
        }
      },
      "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"
      },
      "InvestmentUnknown": {
        "description": "Unknown Investment Account type. Could not be determined from the origin company.",
        "discriminator": {
          "mapping": {
            "parent": "#/components/schemas/FinancialProduct"
          },
          "propertyName": "financial product type"
        },
        "example": {
          "accountInformation": {
            "cashAccountNumber": "1234567",
            "cashValue": {
              "amount": 4514.27,
              "currency": "SEK"
            },
            "interestRate": 0.0025
          },
          "company": "se-company",
          "companyDisplayName": "Company",
          "financialInformation": {
            "currentValue": {
              "amount": 26982.66,
              "currency": "SEK"
            },
            "performanceSinceStart": 0.1605
          },
          "holder": {
            "name": "Firstname Lastname"
          },
          "holdings": [
            {
              "acquisitionValue": {
                "amount": 18883.51,
                "currency": "SEK"
              },
              "feeVariable": 0,
              "isin": "SE0001718388",
              "name": "Avanza Zero",
              "quantity": 54.076858,
              "type": "FUND",
              "value": {
                "amount": 22468.39,
                "currency": "SEK"
              }
            }
          ],
          "id": "df2e7a28-d871-45c1-a01e-515b7aeaf7da",
          "monthlySavingsAmount": {
            "amount": 4000,
            "currency": "SEK"
          },
          "personalInformation": {
            "personalNumber": "19010106-1234"
          },
          "productName": "My account name",
          "productNumber": "987654321",
          "transactions": [
            {
              "amount": {
                "amount": 10.32,
                "currency": "EUR"
              },
              "description": "Insättning",
              "settlementDate": "2024-01-01",
              "type": "DEPOSIT"
            }
          ],
          "type": "UNKNOWN_INVESTMENT_TYPE"
        },
        "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. Examples:\n  `se-folksam`, `se-lansforsakringar`, `se-avanza`, `se-movestic`, `se-spp`, `se-nordea`,\n  `se-amf`, `se-seb`, `se-alecta`, `se-nordnet`, `se-handelsbanken`, `se-futur`,\n  `se-swedbank`, `se-skandia`, `se-ica-bank`, `se-danske-bank`.\n",
            "example": "se-lansforsakringar",
            "type": "string"
          },
          "companyDisplayName": {
            "description": "Display name of the company for user-friendly presentation.",
            "example": "Länsförsäkringar",
            "type": "string"
          },
          "financialInformation": {
            "$ref": "#/components/schemas/ProductFinancialInformation",
            "description": "Financial details of the product, like value, performance etc."
          },
          "holder": {
            "$ref": "#/components/schemas/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."
          },
          "movability": {
            "$ref": "#/components/schemas/Movability",
            "description": "The result of evaluating default or custom movability rules",
            "example": {
              "result": "MOVABLE"
            }
          },
          "personalInformation": {
            "$ref": "#/components/schemas/PersonalInformation",
            "description": "Personal information about the person who initiated the data collection."
          },
          "productName": {
            "description": "Name of the financial product.",
            "example": "Avtalspension FTP",
            "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.",
            "example": "SU91231230-2",
            "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": [
              "KF",
              "ISK",
              "CUSTODY_ACCOUNT",
              "UNKNOWN_INVESTMENT_TYPE",
              "IPS_PENSION",
              "PRIVATE_PENSION",
              "OCCUPATIONAL_PENSION",
              "COLLECTIVE_OCCUPATIONAL_PENSION",
              "UNKNOWN_PENSION_TYPE",
              "MORTGAGE_LOAN",
              "UNSECURED_LOAN",
              "GENERAL_SAVINGS_ACCOUNT",
              "GENERAL_SAVINGS_ACCOUNT_FIXED_PERIOD",
              "PSD2_SAVINGS_ACCOUNT",
              "PSD2_CHECKING_ACCOUNT",
              "PSD2_CREDIT_CARD"
            ],
            "example": "ISK",
            "type": "string"
          }
        },
        "required": [
          "company",
          "companyDisplayName",
          "id",
          "type"
        ],
        "title": "Unknown Investment",
        "x-tag": "Financial Product Type"
      },
      "Item": {
        "description": "The item object included in the `CollectionInput` for providing supplemental information",
        "properties": {
          "type": {
            "description": "The type of information provided",
            "enum": [
              "BRANCH",
              "EMAIL",
              "LOGIN_METHOD",
              "MOBILE_PHONE_NUMBER",
              "PASSWORD",
              "SWEDISH_PERSONAL_NUMBER",
              "TWO_FACTOR_TOKEN",
              "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"
        ]
      },
      "KF": {
        "discriminator": {
          "mapping": {
            "parent": "#/components/schemas/FinancialProduct"
          },
          "propertyName": "financial product type"
        },
        "example": {
          "company": "se-company",
          "companyDisplayName": "Company",
          "fees": {
            "personalized": {
              "fixed": {
                "amount": 100,
                "currency": "SEK"
              },
              "previousYear": {
                "amount": 519.15,
                "currency": "SEK"
              },
              "variable": 0.0065
            }
          },
          "financialInformation": {
            "currentValue": {
              "amount": 13046.26,
              "currency": "SEK"
            }
          },
          "holder": {},
          "holdings": [
            {
              "isin": "SE0000429789",
              "name": "Carnegie Sverigefond",
              "type": "FUND",
              "value": {
                "amount": 2257.87,
                "currency": "SEK"
              }
            }
          ],
          "id": "a028429c-dbf5-4501-a0dd-e9bdf051f7e1",
          "insurance": {
            "survivorsProtection": true
          },
          "personalInformation": {
            "personalNumber": "010105-1234"
          },
          "productName": "Fondspar kapitalförsäkring",
          "productNumber": "IN12345678",
          "traditionallyManaged": false,
          "transactions": [
            {
              "amount": {
                "amount": -1999.98,
                "currency": "SEK"
              },
              "commission": {
                "amount": 0,
                "currency": "SEK"
              },
              "instrumentInformation": {
                "isin": "SE0005188836",
                "name": "LÄNSFÖRSÄKRINGAR GLOBAL INDEX",
                "type": "FUND"
              },
              "quantity": 3.7269,
              "settlementDate": "2025-01-22",
              "tradeDate": "2025-01-22",
              "type": "BUY"
            },
            {
              "amount": {
                "amount": 10000,
                "currency": "SEK"
              },
              "settlementDate": "2025-01-21",
              "type": "DEPOSIT"
            }
          ],
          "type": "KF"
        },
        "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. Examples:\n  `se-folksam`, `se-lansforsakringar`, `se-avanza`, `se-movestic`, `se-spp`, `se-nordea`,\n  `se-amf`, `se-seb`, `se-alecta`, `se-nordnet`, `se-handelsbanken`, `se-futur`,\n  `se-swedbank`, `se-skandia`, `se-ica-bank`, `se-danske-bank`.\n",
            "example": "se-skandia",
            "type": "string"
          },
          "companyDisplayName": {
            "description": "Display name of the company for user-friendly presentation.",
            "example": "Skandia Banken",
            "type": "string"
          },
          "fees": {
            "$ref": "#/components/schemas/Fees",
            "description": "Fees associated with the financial product. Exactly one of `fees.personalized` / `fees.generic` is populated; presence signals whether the values are personalized to the holder or a generic / list-price mapping."
          },
          "financialInformation": {
            "$ref": "#/components/schemas/ProductFinancialInformation",
            "description": "Financial details of the product, like value, performance etc."
          },
          "holder": {
            "$ref": "#/components/schemas/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"
          },
          "insurance": {
            "$ref": "#/components/schemas/Insurance",
            "description": "Information about the insured person and beneficiaries."
          },
          "monthlySavingsAmount": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Monthly savings amount associated with the financial product."
          },
          "movability": {
            "$ref": "#/components/schemas/Movability",
            "description": "The result of evaluating default or custom movability rules",
            "example": {
              "result": "MOVABLE"
            }
          },
          "payoutDetails": {
            "description": "Provides details about the payout from the pension. Can contain multiple payout details depending on the payout schedule, for example, 2000 SEK monthly between age 65 and 70 and a lifelong monthly payout of 1000 SEK starting at age 70.",
            "items": {
              "$ref": "#/components/schemas/PayoutDetails"
            },
            "type": "array"
          },
          "personalInformation": {
            "$ref": "#/components/schemas/PersonalInformation",
            "description": "Personal information about the person who initiated the data collection."
          },
          "productName": {
            "description": "Name of the financial product.",
            "example": "Skandia Liv",
            "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.",
            "example": "SU91231230-2",
            "type": "string"
          },
          "startDate": {
            "description": "Start date of the KF.",
            "example": "2020-01-01",
            "type": "string"
          },
          "traditionallyManaged": {
            "description": "Indicates if the portfolio is traditionally managed. If true, no holdings will be shown.",
            "example": false,
            "type": "boolean"
          },
          "transactions": {
            "description": "Transaction history for the last 12 months.",
            "items": {
              "$ref": "#/components/schemas/Transaction"
            },
            "type": "array"
          },
          "type": {
            "description": "Type of the financial product.",
            "enum": [
              "KF",
              "ISK",
              "CUSTODY_ACCOUNT",
              "UNKNOWN_INVESTMENT_TYPE",
              "IPS_PENSION",
              "PRIVATE_PENSION",
              "OCCUPATIONAL_PENSION",
              "COLLECTIVE_OCCUPATIONAL_PENSION",
              "UNKNOWN_PENSION_TYPE",
              "MORTGAGE_LOAN",
              "UNSECURED_LOAN",
              "GENERAL_SAVINGS_ACCOUNT",
              "GENERAL_SAVINGS_ACCOUNT_FIXED_PERIOD",
              "PSD2_SAVINGS_ACCOUNT",
              "PSD2_CHECKING_ACCOUNT",
              "PSD2_CREDIT_CARD"
            ],
            "example": "ISK",
            "type": "string"
          }
        },
        "required": [
          "company",
          "companyDisplayName",
          "id",
          "type"
        ],
        "title": "Kapitalförsäkring",
        "x-tag": "Financial Product Type"
      },
      "LoanDetails": {
        "description": "Details about the loan",
        "example": {
          "balance": {
            "amount": 2000000,
            "currency": "SEK"
          },
          "granted": {
            "amount": 3000000,
            "currency": "SEK"
          },
          "paid": {
            "amount": 1000000,
            "currency": "SEK"
          }
        },
        "properties": {
          "balance": {
            "$ref": "#/components/schemas/MonetaryAmount"
          },
          "granted": {
            "$ref": "#/components/schemas/MonetaryAmount"
          },
          "paid": {
            "$ref": "#/components/schemas/MonetaryAmount"
          }
        }
      },
      "LoanMortgage": {
        "description": "Mortgage (\"Bolån\")",
        "discriminator": {
          "mapping": {
            "parent": "#/components/schemas/FinancialProduct"
          },
          "propertyName": "financial product type"
        },
        "example": {
          "company": "se-nordea",
          "companyDisplayName": "Nordea",
          "financedObject": "BRF EKORRHOLKEN 32",
          "firstDrawDownDate": "2020-02-29",
          "id": "6a7c135e-3a56-44ae-bc53-1d0d5321f552",
          "interest": {
            "baseRate": 0.0512,
            "discount": 0.012,
            "discountEndDate": "2025-03-31",
            "effectiveRate": 0.0398,
            "periodStartDate": "2024-07-01",
            "rate": 0.0392,
            "rateAdjustmentDate": "2024-10-01"
          },
          "interestBindingPeriod": "TWO_YEARS",
          "loanDetails": {
            "balance": {
              "amount": 2000000,
              "currency": "SEK"
            },
            "granted": {
              "amount": 3000000,
              "currency": "SEK"
            },
            "paid": {
              "amount": 1000000,
              "currency": "SEK"
            }
          },
          "loanId": "000047433123",
          "nextPayment": {
            "date": "2024-09-28",
            "instalment": {
              "amount": 5000,
              "currency": "SEK"
            },
            "interest": {
              "amount": 7784,
              "currency": "SEK"
            },
            "total": {
              "amount": 12784,
              "currency": "SEK"
            }
          },
          "owners": [
            {
              "name": "Karl Ekorrströmberg",
              "sharePercentage": 1
            }
          ],
          "repaymentSchedule": {
            "finalDebt": 0,
            "finalPaymentDate": "2070-09-28",
            "numberOfInstalments": 50,
            "repaymentDayOfMonth": 30
          },
          "status": "IN_PROGRESS",
          "type": "MORTGAGE_LOAN"
        },
        "properties": {
          "company": {
            "description": "  Company where the financial product has been collected from. Examples:\n  `se-lansforsakringar`, `se-avanza`, `se-nordea`, `se-seb`, `se-handelsbanken`,\n  `se-swedbank`, `se-skandia`, `se-ica-bank`, `se-danske-bank`.\n",
            "example": "se-nordea",
            "type": "string"
          },
          "companyDisplayName": {
            "description": "Display name of the company for user-friendly presentation.",
            "example": "Nordea",
            "type": "string"
          },
          "financedObject": {
            "description": "The security of the loan",
            "example": "BRF EKORREN 32",
            "type": "string"
          },
          "firstDrawDownDate": {
            "description": "The date the loan was paid out",
            "example": "2020-02-29",
            "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/Interest"
          },
          "interestBindingPeriod": {
            "description": "The period during which the interest is fixed",
            "enum": [
              "THREE_MONTHS",
              "ONE_YEAR",
              "TWO_YEARS",
              "THREE_YEARS",
              "FOUR_YEARS",
              "FIVE_YEARS",
              "SEVEN_YEARS",
              "EIGHT_YEARS",
              "TEN_YEARS",
              "UNKNOWN"
            ],
            "type": "string"
          },
          "loanDetails": {
            "$ref": "#/components/schemas/LoanDetails"
          },
          "loanId": {
            "description": "The id of the loan from the source",
            "example": "000047433123",
            "type": "string"
          },
          "nextPayment": {
            "$ref": "#/components/schemas/NextPayment"
          },
          "owners": {
            "items": {
              "$ref": "#/components/schemas/LoanOwner"
            },
            "type": "array"
          },
          "repaymentSchedule": {
            "$ref": "#/components/schemas/RepaymentSchedule"
          },
          "status": {
            "enum": [
              "IN_PROGRESS",
              "PAID_UP",
              "CANCELLED",
              "UNKNOWN"
            ],
            "type": "string"
          },
          "type": {
            "description": "Type of the financial product.",
            "enum": [
              "KF",
              "ISK",
              "CUSTODY_ACCOUNT",
              "UNKNOWN_INVESTMENT_TYPE",
              "IPS_PENSION",
              "PRIVATE_PENSION",
              "OCCUPATIONAL_PENSION",
              "COLLECTIVE_OCCUPATIONAL_PENSION",
              "UNKNOWN_PENSION_TYPE",
              "MORTGAGE_LOAN",
              "UNSECURED_LOAN",
              "GENERAL_SAVINGS_ACCOUNT",
              "GENERAL_SAVINGS_ACCOUNT_FIXED_PERIOD",
              "PSD2_SAVINGS_ACCOUNT",
              "PSD2_CHECKING_ACCOUNT",
              "PSD2_CREDIT_CARD"
            ],
            "example": "ISK",
            "type": "string"
          }
        },
        "required": [
          "company",
          "id",
          "type"
        ],
        "title": "Mortgage",
        "x-tag": "Financial Product Type"
      },
      "LoanOwner": {
        "description": "An owner of the loan, and their share",
        "example": {
          "name": "Karl Ekorrströmberg",
          "sharePercentage": 1
        },
        "properties": {
          "name": {
            "type": "string"
          },
          "sharePercentage": {
            "format": "double",
            "type": "number"
          }
        }
      },
      "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": [
              "SWEDISH_MOBILE_BANKID_OTHER_DEVICE",
              "SWEDISH_MOBILE_BANKID_OTHER_DEVICE_MOCK",
              "SWEDISH_MOBILE_BANKID_SAME_DEVICE",
              "SWEDISH_MOBILE_BANKID_SAME_DEVICE_CLIENT_SIDE_AUTHENTICATION",
              "SWEDISH_MOBILE_BANKID_SAME_DEVICE_CLIENT_SIDE_AUTHENTICATION_MOCK",
              "SWEDISH_MOBILE_BANKID_OTHER_DEVICE_TEST",
              "SWEDISH_MOBILE_BANKID_SAME_DEVICE_TEST",
              "SWEDISH_SECURITY_TOKEN",
              "EMAIL"
            ],
            "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"
      },
      "Movability": {
        "properties": {
          "result": {
            "description": "The result of either the default or custom configured pension movability rules\n\nThe meaning of the result depends on the implementation of the rules, but these are the intended meanings:\n\n\n`MOVABLE` - Movable digitally\n\n`MOVABLE_VALCENTRAL` - Movable by the end user through a \"valcentral\" (relevant info in `managementInstitutions`)\n\n`MOVABLE_MEETING` - Movable but requires a meeting with an advisor\n\n`NOT_MOVABLE` - The criteria for being movable are not met\n\n`UNKNOWN` - Usually means that some data points required to determine movability were missing\n",
            "enum": [
              "MOVABLE",
              "MOVABLE_VALCENTRAL",
              "MOVABLE_MEETING",
              "NOT_MOVABLE",
              "UNKNOWN"
            ],
            "example": {
              "result": "MOVABLE"
            },
            "type": "string"
          }
        }
      },
      "NextPayment": {
        "description": "Information about the next payment on the loan",
        "example": {
          "date": "2024-09-28",
          "instalment": {
            "amount": 5000,
            "currency": "SEK"
          },
          "interest": {
            "amount": 7784,
            "currency": "SEK"
          },
          "total": {
            "amount": 12784,
            "currency": "SEK"
          }
        },
        "properties": {
          "date": {
            "type": "string"
          },
          "instalment": {
            "$ref": "#/components/schemas/MonetaryAmount"
          },
          "interest": {
            "$ref": "#/components/schemas/MonetaryAmount"
          },
          "total": {
            "$ref": "#/components/schemas/MonetaryAmount"
          }
        }
      },
      "Option": {
        "description": "One value a required input may take.",
        "properties": {
          "label": {
            "description": "The text to display to the user.",
            "example": "Sparbanken Skåne",
            "type": "string"
          },
          "value": {
            "description": "The value to submit as the `CollectionInput` item value.",
            "example": "Sparbanken Skåne",
            "type": "string"
          }
        },
        "required": [
          "label",
          "value"
        ]
      },
      "Organization": {
        "description": "Information about the organization owning the financial product. This field is absent if the holder is a person. This field can also be absent if no organization has been found, or if there is more than one matching organization based on the holder name. See organization suggestions.",
        "properties": {
          "city": {
            "description": "City where the company is based.",
            "example": "Stockholm",
            "type": "string"
          },
          "financialInformation": {
            "$ref": "#/components/schemas/Wealth.OrganizationFinancialInformation",
            "description": "Financial information about the organization. This field is a premium feature and will not be returned by default. To turn this feature on, please contact your Account Manager."
          },
          "name": {
            "description": "Name of the organization.",
            "example": "Company Inc",
            "type": "string"
          },
          "number": {
            "description": "Organization number.",
            "example": "5111111111",
            "type": "string"
          }
        }
      },
      "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"
      },
      "PayoutDetails": {
        "properties": {
          "active": {
            "description": "Indicates if the payout is active.",
            "example": false,
            "type": "boolean"
          },
          "amount": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Amount to be paid out."
          },
          "lifelongPayout": {
            "description": "Indicates if the payout has a defined end.",
            "example": false,
            "type": "boolean"
          },
          "period": {
            "$ref": "#/components/schemas/PayoutPeriod",
            "description": "Period for the payout, can be a range of ages or dates."
          }
        }
      },
      "PayoutPeriod": {
        "discriminator": {
          "mapping": {
            "AGE_RANGE": "#/components/schemas/AgePeriod",
            "DATE_RANGE": "#/components/schemas/DatePeriod"
          },
          "propertyName": "type"
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/AgePeriod"
          },
          {
            "$ref": "#/components/schemas/DatePeriod"
          }
        ],
        "properties": {
          "type": {
            "description": "Type of the period.",
            "enum": [
              "AGE_RANGE",
              "DATE_RANGE"
            ],
            "example": "AGE_RANGE",
            "type": "string"
          }
        },
        "title": "PayoutPeriod"
      },
      "PensionCollectiveOccupational": {
        "description": "Collective occupational pension (\"Kollektivavtalad tjänstepension\")",
        "discriminator": {
          "mapping": {
            "parent": "#/components/schemas/FinancialProduct"
          },
          "propertyName": "financial product type"
        },
        "example": {
          "activePayment": false,
          "activePayout": false,
          "benefitType": "DEFINED_BENEFIT",
          "classification": "ITP",
          "company": "se-company",
          "companyDisplayName": "Company",
          "fees": {
            "generic": {
              "fixed": {
                "amount": 50,
                "currency": "SEK"
              },
              "variable": 0.0017
            }
          },
          "financialInformation": {
            "currentValue": {
              "amount": 136600,
              "currency": "SEK"
            },
            "totalDeposits": {
              "amount": 56747,
              "currency": "SEK"
            }
          },
          "holder": {
            "name": "COMPANY AB",
            "organizationSuggestions": [
              {
                "city": "Stockholm",
                "financialInformation": {
                  "employeeCount": 333,
                  "financialPeriod": {
                    "endDate": "2022-12-31",
                    "startDate": "2022-01-01"
                  },
                  "netIncome": {
                    "amount": 604300000,
                    "currency": "SEK"
                  },
                  "shareCapital": {
                    "amount": 100000000,
                    "currency": "SEK"
                  },
                  "turnover": {
                    "amount": 2211907000,
                    "currency": "SEK"
                  }
                },
                "name": "COMPANY AB",
                "number": "5563141234"
              },
              {
                "city": "Malmö",
                "financialInformation": {
                  "employeeCount": 666,
                  "financialPeriod": {
                    "endDate": "2023-12-31",
                    "startDate": "2023-01-01"
                  },
                  "netIncome": {
                    "amount": 1604300000,
                    "currency": "SEK"
                  },
                  "shareCapital": {
                    "amount": 1100000000,
                    "currency": "SEK"
                  },
                  "turnover": {
                    "amount": 12211907000,
                    "currency": "SEK"
                  }
                },
                "name": "COMPANY COMPANY AB",
                "number": "5563141235"
              }
            ]
          },
          "holdings": [
            {
              "acquisitionValue": {
                "amount": 18883.51,
                "currency": "SEK"
              },
              "feeVariable": 0,
              "isin": "SE0001718388",
              "name": "Avanza Zero",
              "quantity": 54.076858,
              "type": "FUND",
              "value": {
                "amount": 22468.39,
                "currency": "SEK"
              }
            }
          ],
          "id": "901a6ce9-6643-4f60-b732-87c992381a78",
          "insurance": {
            "insuredPersonName": "Anka, Karl",
            "survivorsProtection": false
          },
          "managementInstitutions": [
            {
              "name": "Collectum",
              "url": "https://ik.collectum.se/privat/index.jsp"
            }
          ],
          "movability": {
            "result": "NOT_MOVABLE"
          },
          "personalInformation": {
            "personalNumber": "19010106-1234"
          },
          "productName": "ITP 2, Traditionell försäkring",
          "productNumber": "0124345",
          "startDate": "2000-02-01",
          "subClassification": "ITP2",
          "traditionallyManaged": true,
          "transactions": [
            {
              "amount": {
                "amount": 10000,
                "currency": "SEK"
              },
              "settlementDate": "2025-01-21",
              "type": "DEPOSIT"
            }
          ],
          "type": "COLLECTIVE_OCCUPATIONAL_PENSION"
        },
        "properties": {
          "activePayment": {
            "description": "Indicates if the pension is currently being paid into.",
            "example": true,
            "type": "boolean"
          },
          "activePayout": {
            "description": "Indicates if the pension is currently being paid out.",
            "example": false,
            "type": "boolean"
          },
          "benefitType": {
            "description": "Pension benefit type. If it's defined contribution, defined premium or unknown.",
            "enum": [
              "DEFINED_BENEFIT",
              "DEFINED_CONTRIBUTION",
              "UNKNOWN"
            ],
            "example": "DEFINED_BENEFIT",
            "type": "string"
          },
          "classification": {
            "description": "Classification of the pension.",
            "enum": [
              "ITP",
              "FTP",
              "KAP-KL",
              "SAF-LO",
              "PA03",
              "PA16",
              "PA-KFS",
              "GTP",
              "BTP",
              "KTP",
              "PPA07",
              "PPA13",
              "UNKNOWN_PENSION_CLASSIFICATION"
            ],
            "example": "ITP",
            "type": "string"
          },
          "company": {
            "description": "  Company where the financial product has been collected from. Examples:\n  `se-folksam`, `se-lansforsakringar`, `se-avanza`, `se-movestic`, `se-spp`, `se-nordea`,\n  `se-amf`, `se-seb`, `se-alecta`, `se-nordnet`, `se-handelsbanken`, `se-futur`,\n  `se-swedbank`, `se-skandia`, `se-ica-bank`, `se-danske-bank`.\n",
            "example": "se-skandia",
            "type": "string"
          },
          "companyDisplayName": {
            "description": "Display name of the company for user-friendly presentation.",
            "example": "Skandia",
            "type": "string"
          },
          "fees": {
            "$ref": "#/components/schemas/Fees",
            "description": "Fees associated with the financial product. Exactly one of `fees.personalized` / `fees.generic` is populated; presence signals whether the values are personalized to the holder or a generic / list-price mapping."
          },
          "financialInformation": {
            "$ref": "#/components/schemas/ProductFinancialInformation",
            "description": "Financial details of the product, like value, performance etc."
          },
          "holder": {
            "$ref": "#/components/schemas/Holder",
            "description": "Information about the owner of the pension."
          },
          "holdings": {
            "description": "List of holdings within the pension.",
            "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"
          },
          "insurance": {
            "$ref": "#/components/schemas/Insurance",
            "description": "Information about the insured person and beneficiaries."
          },
          "managementInstitutions": {
            "description": "Institutions managing this class of collective occupational pensions.\nPresent only if the pension has a known classification.\nWill be present even if the pension is not movable",
            "items": {
              "$ref": "#/components/schemas/Wealth.PensionManagementInstitution"
            },
            "type": "array"
          },
          "movability": {
            "$ref": "#/components/schemas/Movability",
            "description": "The result of evaluating default or custom movability rules",
            "example": {
              "result": "MOVABLE"
            }
          },
          "otherInsuredPerson": {
            "description": "If the person insured by the pension is someone else than the person who initiated the collection.",
            "example": false,
            "type": "boolean"
          },
          "payoutDetails": {
            "description": "Provides details about the payout from the pension. Can contain multiple payout details depending on the payout schedule, for example, 2000 SEK monthly between age 65 and 70 and a lifelong monthly payout of 1000 SEK starting at age 70.",
            "items": {
              "$ref": "#/components/schemas/PayoutDetails"
            },
            "type": "array"
          },
          "personalInformation": {
            "$ref": "#/components/schemas/PersonalInformation",
            "description": "Personal information about the person who initiated the data collection."
          },
          "productName": {
            "description": "Name of the financial product.",
            "example": "Avtalspension FTP",
            "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.",
            "example": "SU91231230-2",
            "type": "string"
          },
          "startDate": {
            "description": "Start date of the pension.",
            "example": "2020-01-01",
            "type": "string"
          },
          "subClassification": {
            "description": "Subclassification of the pension providing more detailed categorization.",
            "enum": [
              "ITP1",
              "ITP2",
              "ITPK",
              "ITP_LP",
              "ALTERNATIV_ITP",
              "SAF_LO",
              "SAF_LO_LP",
              "AKAP_KR",
              "AKAP_KL",
              "KAP_KL",
              "PA_KFS",
              "PA_KFS09",
              "BTP1",
              "BTP2",
              "BTPK",
              "FTP1",
              "FTP2",
              "FTPK",
              "KTP1",
              "KTP2",
              "KTPK",
              "GTP",
              "PPAK",
              "PPA07",
              "PPA13",
              "ITPK_S",
              "ITPK_P",
              "ITPK_PP",
              "ITPK_TELE",
              "FRIVILLIG_ITP",
              "FRIVILLIG_ITPK",
              "FRIVILLIG_BTPK",
              "PA16_AVD1",
              "PA16_AVD2",
              "PA16_AVD1_VALBAR",
              "PA16_AVD1_OBLIGATORISK",
              "PA16_AVD1_FLEX",
              "PA16_AVD2_VALBAR",
              "PA16_AVD2_OBLIGATORISK",
              "PA16_AVD2_FLEX",
              "PA16_AVD2_FORMANSBESTAMD",
              "BTP1_TRYGG",
              "BTP1_VALBAR",
              "PA03"
            ],
            "example": "ITPK",
            "type": "string"
          },
          "traditionallyManaged": {
            "description": "Indicates if the portfolio is traditionally managed.",
            "example": false,
            "type": "boolean"
          },
          "transactions": {
            "description": "Transaction history for the last 12 months.",
            "items": {
              "$ref": "#/components/schemas/Transaction"
            },
            "type": "array"
          },
          "type": {
            "description": "Type of the financial product.",
            "enum": [
              "KF",
              "ISK",
              "CUSTODY_ACCOUNT",
              "UNKNOWN_INVESTMENT_TYPE",
              "IPS_PENSION",
              "PRIVATE_PENSION",
              "OCCUPATIONAL_PENSION",
              "COLLECTIVE_OCCUPATIONAL_PENSION",
              "UNKNOWN_PENSION_TYPE",
              "MORTGAGE_LOAN",
              "UNSECURED_LOAN",
              "GENERAL_SAVINGS_ACCOUNT",
              "GENERAL_SAVINGS_ACCOUNT_FIXED_PERIOD",
              "PSD2_SAVINGS_ACCOUNT",
              "PSD2_CHECKING_ACCOUNT",
              "PSD2_CREDIT_CARD"
            ],
            "example": "ISK",
            "type": "string"
          }
        },
        "required": [
          "company",
          "companyDisplayName",
          "id",
          "type"
        ],
        "title": "Collective Occupational Pension",
        "x-tag": "Financial Product Type"
      },
      "PensionIPS": {
        "description": "IPS Pension, private pension saving (\"Individuellt Pensionssparande\").",
        "discriminator": {
          "mapping": {
            "parent": "#/components/schemas/FinancialProduct"
          },
          "propertyName": "financial product type"
        },
        "example": {
          "activePayment": false,
          "activePayout": false,
          "company": "se-company",
          "companyDisplayName": "Company",
          "fees": {
            "generic": {
              "fixed": {
                "amount": 0,
                "currency": "SEK"
              },
              "variable": 0
            }
          },
          "financialInformation": {
            "currentValue": {
              "amount": 103488,
              "currency": "SEK"
            },
            "totalDeposits": {
              "amount": 43011,
              "currency": "SEK"
            }
          },
          "holder": {},
          "holdings": [
            {
              "feeVariable": 0.0025,
              "isin": "SE0000810772",
              "name": "Skandia Europa Exponering",
              "quantity": 89.651,
              "type": "FUND",
              "value": {
                "amount": 66124,
                "currency": "SEK"
              }
            }
          ],
          "id": "dd4257d5-6bc2-4103-baf2-4ba7c838929f",
          "insurance": {
            "insuredPersonName": "Johan Johanson",
            "survivorsProtection": false
          },
          "movability": {
            "result": "MOVABLE"
          },
          "personalInformation": {
            "personalNumber": "19010101-1234234"
          },
          "productName": "IPS Pension",
          "productNumber": "S123456789",
          "startDate": "2016-04-01",
          "traditionallyManaged": false,
          "transactions": [
            {
              "amount": {
                "amount": -1999.98,
                "currency": "SEK"
              },
              "commission": {
                "amount": 0,
                "currency": "SEK"
              },
              "instrumentInformation": {
                "isin": "SE0005188836",
                "name": "LÄNSFÖRSÄKRINGAR GLOBAL INDEX",
                "type": "FUND"
              },
              "quantity": 3.7269,
              "settlementDate": "2025-01-22",
              "tradeDate": "2025-01-22",
              "type": "BUY"
            },
            {
              "amount": {
                "amount": 10000,
                "currency": "SEK"
              },
              "settlementDate": "2025-01-21",
              "type": "DEPOSIT"
            }
          ],
          "type": "IPS_PENSION"
        },
        "properties": {
          "activePayment": {
            "description": "Indicates if the pension is currently being paid into.",
            "example": true,
            "type": "boolean"
          },
          "activePayout": {
            "description": "Indicates if the pension is currently being paid out.",
            "example": false,
            "type": "boolean"
          },
          "company": {
            "description": "  Company where the financial product has been collected from. Examples:\n  `se-folksam`, `se-lansforsakringar`, `se-avanza`, `se-movestic`, `se-spp`, `se-nordea`,\n  `se-amf`, `se-seb`, `se-alecta`, `se-nordnet`, `se-handelsbanken`, `se-futur`,\n  `se-swedbank`, `se-skandia`, `se-ica-bank`, `se-danske-bank`.\n",
            "example": "se-skandia",
            "type": "string"
          },
          "companyDisplayName": {
            "description": "Display name of the company for user-friendly presentation.",
            "example": "Skandia",
            "type": "string"
          },
          "fees": {
            "$ref": "#/components/schemas/Fees",
            "description": "Fees associated with the financial product. Exactly one of `fees.personalized` / `fees.generic` is populated; presence signals whether the values are personalized to the holder or a generic / list-price mapping."
          },
          "financialInformation": {
            "$ref": "#/components/schemas/ProductFinancialInformation",
            "description": "Financial details of the product, like value, performance etc."
          },
          "holder": {
            "$ref": "#/components/schemas/Holder",
            "description": "Information about the owner of the pension."
          },
          "holdings": {
            "description": "List of holdings within the pension.",
            "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"
          },
          "insurance": {
            "$ref": "#/components/schemas/Insurance",
            "description": "Information about the insured person and beneficiaries."
          },
          "movability": {
            "$ref": "#/components/schemas/Movability",
            "description": "The result of evaluating default or custom movability rules",
            "example": {
              "result": "MOVABLE"
            }
          },
          "otherInsuredPerson": {
            "description": "If the person insured by the pension is someone else than the person who initiated the collection.",
            "example": false,
            "type": "boolean"
          },
          "payoutDetails": {
            "description": "Provides details about the payout from the pension. Can contain multiple payout details depending on the payout schedule, for example, 2000 SEK monthly between age 65 and 70 and a lifelong monthly payout of 1000 SEK starting at age 70.",
            "items": {
              "$ref": "#/components/schemas/PayoutDetails"
            },
            "type": "array"
          },
          "personalInformation": {
            "$ref": "#/components/schemas/PersonalInformation",
            "description": "Personal information about the person who initiated the data collection."
          },
          "productName": {
            "description": "Name of the financial product.",
            "example": "Avtalspension FTP",
            "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.",
            "example": "SU91231230-2",
            "type": "string"
          },
          "startDate": {
            "description": "Start date of the pension.",
            "example": "2020-01-01",
            "type": "string"
          },
          "traditionallyManaged": {
            "description": "Indicates if the portfolio is traditionally managed.",
            "example": false,
            "type": "boolean"
          },
          "transactions": {
            "description": "Transaction history for the last 12 months.",
            "items": {
              "$ref": "#/components/schemas/Transaction"
            },
            "type": "array"
          },
          "type": {
            "description": "Type of the financial product.",
            "enum": [
              "KF",
              "ISK",
              "CUSTODY_ACCOUNT",
              "UNKNOWN_INVESTMENT_TYPE",
              "IPS_PENSION",
              "PRIVATE_PENSION",
              "OCCUPATIONAL_PENSION",
              "COLLECTIVE_OCCUPATIONAL_PENSION",
              "UNKNOWN_PENSION_TYPE",
              "MORTGAGE_LOAN",
              "UNSECURED_LOAN",
              "GENERAL_SAVINGS_ACCOUNT",
              "GENERAL_SAVINGS_ACCOUNT_FIXED_PERIOD",
              "PSD2_SAVINGS_ACCOUNT",
              "PSD2_CHECKING_ACCOUNT",
              "PSD2_CREDIT_CARD"
            ],
            "example": "ISK",
            "type": "string"
          }
        },
        "required": [
          "company",
          "companyDisplayName",
          "id",
          "type"
        ],
        "title": "IPS",
        "x-tag": "Financial Product Type"
      },
      "PensionOccupational": {
        "description": "Occupational pension (\"Tjänstepension\")",
        "discriminator": {
          "mapping": {
            "parent": "#/components/schemas/FinancialProduct"
          },
          "propertyName": "financial product type"
        },
        "example": {
          "activePayment": false,
          "activePayout": false,
          "company": "se-company",
          "companyDisplayName": "Company",
          "fees": {
            "generic": {
              "fixed": {
                "amount": 100,
                "currency": "SEK"
              },
              "variable": 0.0065
            }
          },
          "financialInformation": {
            "currentValue": {
              "amount": 103488,
              "currency": "SEK"
            },
            "totalDeposits": {
              "amount": 43011,
              "currency": "SEK"
            }
          },
          "holder": {
            "name": "COMPANY AB",
            "organization": {
              "city": "Stockholm",
              "financialInformation": {
                "employeeCount": 333,
                "financialPeriod": {
                  "endDate": "2022-12-31",
                  "startDate": "2022-01-01"
                },
                "netIncome": {
                  "amount": 604300000,
                  "currency": "SEK"
                },
                "shareCapital": {
                  "amount": 100000000,
                  "currency": "SEK"
                },
                "turnover": {
                  "amount": 2211907000,
                  "currency": "SEK"
                }
              },
              "name": "COMPANY AB",
              "number": "5563141234"
            }
          },
          "holdings": [
            {
              "feeVariable": 0.0025,
              "isin": "SE0000810772",
              "name": "Skandia Europa Exponering",
              "quantity": 89.651,
              "type": "FUND",
              "value": {
                "amount": 66124,
                "currency": "SEK"
              }
            },
            {
              "feeVariable": 0.0025,
              "isin": "SE0005065505",
              "name": "Skandia Nordamerika Exponering",
              "quantity": 70.8153,
              "type": "FUND",
              "value": {
                "amount": 8601,
                "currency": "SEK"
              }
            }
          ],
          "id": "dd4257d5-6bc2-4103-baf2-4ba7c838929f",
          "insurance": {
            "insuredPersonName": "Johan Johanson",
            "survivorsProtection": true
          },
          "movability": {
            "result": "MOVABLE"
          },
          "payoutDetails": [
            {
              "active": false,
              "amount": {
                "amount": 0,
                "currency": "SEK"
              },
              "lifelongPayout": true,
              "period": {
                "startDate": "2045-03-01",
                "type": "DATE_RANGE"
              }
            }
          ],
          "personalInformation": {
            "personalNumber": "19010101-1234234"
          },
          "productName": "Tjänstepension",
          "productNumber": "S123456789",
          "startDate": "2016-04-01",
          "traditionallyManaged": false,
          "transactions": [
            {
              "amount": {
                "amount": -1999.98,
                "currency": "SEK"
              },
              "commission": {
                "amount": 0,
                "currency": "SEK"
              },
              "instrumentInformation": {
                "isin": "SE0005188836",
                "name": "LÄNSFÖRSÄKRINGAR GLOBAL INDEX",
                "type": "FUND"
              },
              "quantity": 3.7269,
              "settlementDate": "2025-01-22",
              "tradeDate": "2025-01-22",
              "type": "BUY"
            },
            {
              "amount": {
                "amount": 10000,
                "currency": "SEK"
              },
              "settlementDate": "2025-01-21",
              "type": "DEPOSIT"
            }
          ],
          "type": "OCCUPATIONAL_PENSION"
        },
        "properties": {
          "activePayment": {
            "description": "Indicates if the pension is currently being paid into.",
            "example": true,
            "type": "boolean"
          },
          "activePayout": {
            "description": "Indicates if the pension is currently being paid out.",
            "example": false,
            "type": "boolean"
          },
          "company": {
            "description": "  Company where the financial product has been collected from. Examples:\n  `se-folksam`, `se-lansforsakringar`, `se-avanza`, `se-movestic`, `se-spp`, `se-nordea`,\n  `se-amf`, `se-seb`, `se-alecta`, `se-nordnet`, `se-handelsbanken`, `se-futur`,\n  `se-swedbank`, `se-skandia`, `se-ica-bank`, `se-danske-bank`.\n",
            "example": "se-skandia",
            "type": "string"
          },
          "companyDisplayName": {
            "description": "Display name of the company for user-friendly presentation.",
            "example": "Skandia",
            "type": "string"
          },
          "fees": {
            "$ref": "#/components/schemas/Fees",
            "description": "Fees associated with the financial product. Exactly one of `fees.personalized` / `fees.generic` is populated; presence signals whether the values are personalized to the holder or a generic / list-price mapping."
          },
          "financialInformation": {
            "$ref": "#/components/schemas/ProductFinancialInformation",
            "description": "Financial details of the product, like value, performance etc."
          },
          "holder": {
            "$ref": "#/components/schemas/Holder",
            "description": "Information about the owner of the pension."
          },
          "holdings": {
            "description": "List of holdings within the pension.",
            "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"
          },
          "insurance": {
            "$ref": "#/components/schemas/Insurance",
            "description": "Information about the insured person and beneficiaries."
          },
          "movability": {
            "$ref": "#/components/schemas/Movability",
            "description": "The result of evaluating default or custom movability rules",
            "example": {
              "result": "MOVABLE"
            }
          },
          "otherInsuredPerson": {
            "description": "If the person insured by the pension is someone else than the person who initiated the collection.",
            "example": false,
            "type": "boolean"
          },
          "payoutDetails": {
            "description": "Provides details about the payout from the pension. Can contain multiple payout details depending on the payout schedule, for example, 2000 SEK monthly between age 65 and 70 and a lifelong monthly payout of 1000 SEK starting at age 70.",
            "items": {
              "$ref": "#/components/schemas/PayoutDetails"
            },
            "type": "array"
          },
          "personalInformation": {
            "$ref": "#/components/schemas/PersonalInformation",
            "description": "Personal information about the person who initiated the data collection."
          },
          "productName": {
            "description": "Name of the financial product.",
            "example": "Avtalspension FTP",
            "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.",
            "example": "SU91231230-2",
            "type": "string"
          },
          "startDate": {
            "description": "Start date of the pension.",
            "example": "2020-01-01",
            "type": "string"
          },
          "traditionallyManaged": {
            "description": "Indicates if the portfolio is traditionally managed.",
            "example": false,
            "type": "boolean"
          },
          "transactions": {
            "description": "Transaction history for the last 12 months.",
            "items": {
              "$ref": "#/components/schemas/Transaction"
            },
            "type": "array"
          },
          "type": {
            "description": "Type of the financial product.",
            "enum": [
              "KF",
              "ISK",
              "CUSTODY_ACCOUNT",
              "UNKNOWN_INVESTMENT_TYPE",
              "IPS_PENSION",
              "PRIVATE_PENSION",
              "OCCUPATIONAL_PENSION",
              "COLLECTIVE_OCCUPATIONAL_PENSION",
              "UNKNOWN_PENSION_TYPE",
              "MORTGAGE_LOAN",
              "UNSECURED_LOAN",
              "GENERAL_SAVINGS_ACCOUNT",
              "GENERAL_SAVINGS_ACCOUNT_FIXED_PERIOD",
              "PSD2_SAVINGS_ACCOUNT",
              "PSD2_CHECKING_ACCOUNT",
              "PSD2_CREDIT_CARD"
            ],
            "example": "ISK",
            "type": "string"
          }
        },
        "required": [
          "company",
          "companyDisplayName",
          "id",
          "type"
        ],
        "title": "Occupational Pension",
        "x-tag": "Financial Product Type"
      },
      "PensionPrivate": {
        "description": "Private pension savings.",
        "discriminator": {
          "mapping": {
            "parent": "#/components/schemas/FinancialProduct"
          },
          "propertyName": "financial product type"
        },
        "example": {
          "activePayment": false,
          "activePayout": false,
          "company": "se-company",
          "companyDisplayName": "Company",
          "fees": {
            "generic": {
              "fixed": {
                "amount": 0,
                "currency": "SEK"
              },
              "variable": 0
            }
          },
          "financialInformation": {
            "currentValue": {
              "amount": 103488,
              "currency": "SEK"
            },
            "totalDeposits": {
              "amount": 43011,
              "currency": "SEK"
            }
          },
          "holder": {},
          "holdings": [
            {
              "feeVariable": 0.0025,
              "isin": "SE0000810772",
              "name": "Skandia Europa Exponering",
              "quantity": 89.651,
              "type": "FUND",
              "value": {
                "amount": 66124,
                "currency": "SEK"
              }
            }
          ],
          "id": "dd4257d5-6bc2-4103-baf2-4ba7c838929f",
          "insurance": {
            "insuredPersonName": "Johan Johanson",
            "survivorsProtection": false
          },
          "movability": {
            "result": "MOVABLE"
          },
          "personalInformation": {
            "personalNumber": "19010101-1234234"
          },
          "productName": "Private Pension",
          "productNumber": "S123456789",
          "startDate": "2016-04-01",
          "traditionallyManaged": false,
          "transactions": [
            {
              "amount": {
                "amount": -1999.98,
                "currency": "SEK"
              },
              "commission": {
                "amount": 0,
                "currency": "SEK"
              },
              "instrumentInformation": {
                "isin": "SE0005188836",
                "name": "LÄNSFÖRSÄKRINGAR GLOBAL INDEX",
                "type": "FUND"
              },
              "quantity": 3.7269,
              "settlementDate": "2025-01-22",
              "tradeDate": "2025-01-22",
              "type": "BUY"
            },
            {
              "amount": {
                "amount": 10000,
                "currency": "SEK"
              },
              "settlementDate": "2025-01-21",
              "type": "DEPOSIT"
            }
          ],
          "type": "PRIVATE_PENSION"
        },
        "properties": {
          "activePayment": {
            "description": "Indicates if the pension is currently being paid into.",
            "example": true,
            "type": "boolean"
          },
          "activePayout": {
            "description": "Indicates if the pension is currently being paid out.",
            "example": false,
            "type": "boolean"
          },
          "company": {
            "description": "  Company where the financial product has been collected from. Examples:\n  `se-folksam`, `se-lansforsakringar`, `se-avanza`, `se-movestic`, `se-spp`, `se-nordea`,\n  `se-amf`, `se-seb`, `se-alecta`, `se-nordnet`, `se-handelsbanken`, `se-futur`,\n  `se-swedbank`, `se-skandia`, `se-ica-bank`, `se-danske-bank`.\n",
            "example": "se-skandia",
            "type": "string"
          },
          "companyDisplayName": {
            "description": "Display name of the company for user-friendly presentation.",
            "example": "Skandia",
            "type": "string"
          },
          "fees": {
            "$ref": "#/components/schemas/Fees",
            "description": "Fees associated with the financial product. Exactly one of `fees.personalized` / `fees.generic` is populated; presence signals whether the values are personalized to the holder or a generic / list-price mapping."
          },
          "financialInformation": {
            "$ref": "#/components/schemas/ProductFinancialInformation",
            "description": "Financial details of the product, like value, performance etc."
          },
          "holder": {
            "$ref": "#/components/schemas/Holder",
            "description": "Information about the owner of the pension."
          },
          "holdings": {
            "description": "List of holdings within the pension.",
            "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"
          },
          "insurance": {
            "$ref": "#/components/schemas/Insurance",
            "description": "Information about the insured person and beneficiaries."
          },
          "movability": {
            "$ref": "#/components/schemas/Movability",
            "description": "The result of evaluating default or custom movability rules",
            "example": {
              "result": "MOVABLE"
            }
          },
          "otherInsuredPerson": {
            "description": "If the person insured by the pension is someone else than the person who initiated the collection.",
            "example": false,
            "type": "boolean"
          },
          "payoutDetails": {
            "description": "Provides details about the payout from the pension. Can contain multiple payout details depending on the payout schedule, for example, 2000 SEK monthly between age 65 and 70 and a lifelong monthly payout of 1000 SEK starting at age 70.",
            "items": {
              "$ref": "#/components/schemas/PayoutDetails"
            },
            "type": "array"
          },
          "personalInformation": {
            "$ref": "#/components/schemas/PersonalInformation",
            "description": "Personal information about the person who initiated the data collection."
          },
          "productName": {
            "description": "Name of the financial product.",
            "example": "Avtalspension FTP",
            "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.",
            "example": "SU91231230-2",
            "type": "string"
          },
          "startDate": {
            "description": "Start date of the pension.",
            "example": "2020-01-01",
            "type": "string"
          },
          "traditionallyManaged": {
            "description": "Indicates if the portfolio is traditionally managed.",
            "example": false,
            "type": "boolean"
          },
          "transactions": {
            "description": "Transaction history for the last 12 months.",
            "items": {
              "$ref": "#/components/schemas/Transaction"
            },
            "type": "array"
          },
          "type": {
            "description": "Type of the financial product.",
            "enum": [
              "KF",
              "ISK",
              "CUSTODY_ACCOUNT",
              "UNKNOWN_INVESTMENT_TYPE",
              "IPS_PENSION",
              "PRIVATE_PENSION",
              "OCCUPATIONAL_PENSION",
              "COLLECTIVE_OCCUPATIONAL_PENSION",
              "UNKNOWN_PENSION_TYPE",
              "MORTGAGE_LOAN",
              "UNSECURED_LOAN",
              "GENERAL_SAVINGS_ACCOUNT",
              "GENERAL_SAVINGS_ACCOUNT_FIXED_PERIOD",
              "PSD2_SAVINGS_ACCOUNT",
              "PSD2_CHECKING_ACCOUNT",
              "PSD2_CREDIT_CARD"
            ],
            "example": "ISK",
            "type": "string"
          }
        },
        "required": [
          "company",
          "companyDisplayName",
          "id",
          "type"
        ],
        "title": "Private Pension",
        "x-tag": "Financial Product Type"
      },
      "PensionUnknown": {
        "description": "Unknown pension type. Could not be determined from the pensions savings company.",
        "discriminator": {
          "mapping": {
            "parent": "#/components/schemas/FinancialProduct"
          },
          "propertyName": "financial product type"
        },
        "example": {
          "activePayment": false,
          "activePayout": false,
          "company": "se-company",
          "companyDisplayName": "Company",
          "fees": {
            "generic": {
              "fixed": {
                "amount": 0,
                "currency": "SEK"
              },
              "variable": 0
            }
          },
          "financialInformation": {
            "currentValue": {
              "amount": 103488,
              "currency": "SEK"
            },
            "totalDeposits": {
              "amount": 43011,
              "currency": "SEK"
            }
          },
          "holder": {},
          "holdings": [
            {
              "feeVariable": 0.0025,
              "isin": "SE0000810772",
              "name": "Skandia Europa Exponering",
              "quantity": 89.651,
              "type": "FUND",
              "value": {
                "amount": 66124,
                "currency": "SEK"
              }
            }
          ],
          "id": "dd4257d5-6bc2-4103-baf2-4ba7c838929f",
          "insurance": {
            "insuredPersonName": "Johan Johanson",
            "survivorsProtection": false
          },
          "movability": {
            "result": "MOVABLE"
          },
          "personalInformation": {
            "personalNumber": "19010101-1234234"
          },
          "productName": "Pension",
          "productNumber": "S123456789",
          "startDate": "2016-04-01",
          "traditionallyManaged": false,
          "transactions": [
            {
              "amount": {
                "amount": -1999.98,
                "currency": "SEK"
              },
              "commission": {
                "amount": 0,
                "currency": "SEK"
              },
              "instrumentInformation": {
                "isin": "SE0005188836",
                "name": "LÄNSFÖRSÄKRINGAR GLOBAL INDEX",
                "type": "FUND"
              },
              "quantity": 3.7269,
              "settlementDate": "2025-01-22",
              "tradeDate": "2025-01-22",
              "type": "BUY"
            },
            {
              "amount": {
                "amount": 10000,
                "currency": "SEK"
              },
              "settlementDate": "2025-01-21",
              "type": "DEPOSIT"
            }
          ],
          "type": "UNKNOWN_PENSION_TYPE"
        },
        "properties": {
          "activePayment": {
            "description": "Indicates if the pension is currently being paid into.",
            "example": true,
            "type": "boolean"
          },
          "activePayout": {
            "description": "Indicates if the pension is currently being paid out.",
            "example": false,
            "type": "boolean"
          },
          "company": {
            "description": "  Company where the financial product has been collected from. Examples:\n  `se-folksam`, `se-lansforsakringar`, `se-avanza`, `se-movestic`, `se-spp`, `se-nordea`,\n  `se-amf`, `se-seb`, `se-alecta`, `se-nordnet`, `se-handelsbanken`, `se-futur`,\n  `se-swedbank`, `se-skandia`, `se-ica-bank`, `se-danske-bank`.\n",
            "example": "se-skandia",
            "type": "string"
          },
          "companyDisplayName": {
            "description": "Display name of the company for user-friendly presentation.",
            "example": "Skandia",
            "type": "string"
          },
          "fees": {
            "$ref": "#/components/schemas/Fees",
            "description": "Fees associated with the financial product. Exactly one of `fees.personalized` / `fees.generic` is populated; presence signals whether the values are personalized to the holder or a generic / list-price mapping."
          },
          "financialInformation": {
            "$ref": "#/components/schemas/ProductFinancialInformation",
            "description": "Financial details of the product, like value, performance etc."
          },
          "holder": {
            "$ref": "#/components/schemas/Holder",
            "description": "Information about the owner of the pension."
          },
          "holdings": {
            "description": "List of holdings within the pension.",
            "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"
          },
          "insurance": {
            "$ref": "#/components/schemas/Insurance",
            "description": "Information about the insured person and beneficiaries."
          },
          "movability": {
            "$ref": "#/components/schemas/Movability",
            "description": "The result of evaluating default or custom movability rules",
            "example": {
              "result": "MOVABLE"
            }
          },
          "otherInsuredPerson": {
            "description": "If the person insured by the pension is someone else than the person who initiated the collection.",
            "example": false,
            "type": "boolean"
          },
          "payoutDetails": {
            "description": "Provides details about the payout from the pension. Can contain multiple payout details depending on the payout schedule, for example, 2000 SEK monthly between age 65 and 70 and a lifelong monthly payout of 1000 SEK starting at age 70.",
            "items": {
              "$ref": "#/components/schemas/PayoutDetails"
            },
            "type": "array"
          },
          "personalInformation": {
            "$ref": "#/components/schemas/PersonalInformation",
            "description": "Personal information about the person who initiated the data collection."
          },
          "productName": {
            "description": "Name of the financial product.",
            "example": "Avtalspension FTP",
            "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.",
            "example": "SU91231230-2",
            "type": "string"
          },
          "startDate": {
            "description": "Start date of the pension.",
            "example": "2020-01-01",
            "type": "string"
          },
          "traditionallyManaged": {
            "description": "Indicates if the portfolio is traditionally managed.",
            "example": false,
            "type": "boolean"
          },
          "transactions": {
            "description": "Transaction history for the last 12 months.",
            "items": {
              "$ref": "#/components/schemas/Transaction"
            },
            "type": "array"
          },
          "type": {
            "description": "Type of the financial product.",
            "enum": [
              "KF",
              "ISK",
              "CUSTODY_ACCOUNT",
              "UNKNOWN_INVESTMENT_TYPE",
              "IPS_PENSION",
              "PRIVATE_PENSION",
              "OCCUPATIONAL_PENSION",
              "COLLECTIVE_OCCUPATIONAL_PENSION",
              "UNKNOWN_PENSION_TYPE",
              "MORTGAGE_LOAN",
              "UNSECURED_LOAN",
              "GENERAL_SAVINGS_ACCOUNT",
              "GENERAL_SAVINGS_ACCOUNT_FIXED_PERIOD",
              "PSD2_SAVINGS_ACCOUNT",
              "PSD2_CHECKING_ACCOUNT",
              "PSD2_CREDIT_CARD"
            ],
            "example": "ISK",
            "type": "string"
          }
        },
        "required": [
          "company",
          "companyDisplayName",
          "id",
          "type"
        ],
        "title": "Unknown Pension",
        "x-tag": "Financial Product Type"
      },
      "PersonalInformation": {
        "description": "Personal information about the person who initiated the data collection. Contains identifying details such as the personal number (personnummer) used during the collection process.",
        "properties": {
          "personalNumber": {
            "description": "The personal identification number (personnummer) of the person who initiated the data collection. For Swedish collections this is typically a 12-digit personal number in the format YYYYMMDDXXXX.",
            "example": "199001011234",
            "type": "string"
          }
        }
      },
      "PersonalizedFees": {
        "properties": {
          "fixed": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Annual fixed fee for managing the financial product, personalized to the holder."
          },
          "previousYear": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Total fees the holder paid for the financial product over the past year."
          },
          "variable": {
            "description": "Annual variable fee based on the product's value, personalized to the holder. Decimal ratio [0-1].",
            "example": 0.0065,
            "format": "double",
            "type": "number"
          }
        }
      },
      "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"
        ]
      },
      "Psd2AisConsentParameter": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ConsentParameter"
          },
          {
            "$ref": "#/components/schemas/CollectionParameter"
          }
        ],
        "description": "Structured PSD2 consent definition for Account Information Service scopes.",
        "properties": {
          "accountIds": {
            "description": "Explicit account identifiers granted for PSD2_AIS (Account Information Service) access. If accountIds are not set, the consent will apply to all PSU accounts available at the ASPSP.",
            "items": {
              "type": "string"
            },
            "type": "array",
            "uniqueItems": true
          },
          "balances": {
            "description": "Whether balances can be read.",
            "example": true,
            "type": "boolean"
          },
          "psuIpAddress": {
            "description": "PSU (Payment Service User) IP address (IPv4 or IPv6 format)",
            "example": "192.168.1.1",
            "type": "string"
          },
          "psuLocale": {
            "description": "Locale string (format: xx-yy, e.g., 'sv-SE', 'en-GB', 'no-NO'), recommended for proper localization of consent flows and user communications.",
            "example": "sv-SE",
            "type": "string"
          },
          "transactions": {
            "description": "Whether transactions can be fetched.",
            "example": true,
            "type": "boolean"
          },
          "type": {
            "enum": [
              "PSD2_AIS_CONSENT"
            ],
            "type": "string"
          },
          "validUntil": {
            "description": "Requested expiration date for the consent (format: YYYY-MM-DD). The ASPSP may enforce a shorter expiration period than requested.",
            "example": "2026-12-31",
            "format": "date",
            "type": "string"
          }
        },
        "required": [
          "psuIpAddress"
        ]
      },
      "Psd2AisConsentScope": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ConsentScope"
          }
        ],
        "description": "PSD2 AIS consent scope with account access details",
        "properties": {
          "accountIds": {
            "description": "Bank account identifiers this consent grants access to. When absent, the consent covers all accounts available at the bank.",
            "example": [
              "EE382200***"
            ],
            "items": {
              "type": "string"
            },
            "type": "array",
            "uniqueItems": true
          },
          "balances": {
            "description": "Whether this consent grants permission to read account balances.",
            "example": true,
            "type": "boolean"
          },
          "transactions": {
            "description": "Whether this consent grants permission to fetch account transactions.",
            "example": true,
            "type": "boolean"
          },
          "type": {
            "description": "Scope type discriminator.",
            "enum": [
              "PSD2_AIS"
            ],
            "example": "PSD2_AIS",
            "type": "string"
          }
        },
        "required": [
          "balances",
          "transactions",
          "type"
        ]
      },
      "Psd2CheckingAccount": {
        "description": "A PSD2 checking account",
        "discriminator": {
          "mapping": {
            "parent": "#/components/schemas/FinancialProduct"
          },
          "propertyName": "financial product type"
        },
        "example": {
          "accountHolderName": "Anna Svensson",
          "accountId": "acc-456",
          "accountName": "Lönekonto",
          "accountNumber": "9876543210",
          "availableBalance": {
            "amount": 12000,
            "currency": "SEK"
          },
          "bic": "NDEASESS",
          "bookedBalance": {
            "amount": 12500,
            "currency": "SEK"
          },
          "company": "se-nordea-psd2",
          "companyDisplayName": "Nordea",
          "currency": "SEK",
          "iban": "SE3550000000054910000004",
          "id": "psd2-chk-456",
          "transactions": [
            {
              "accountId": "acc-456",
              "amount": {
                "amount": -45.5,
                "currency": "SEK"
              },
              "bookingDate": "2024-01-14",
              "counterpartyName": "ICA Maxi",
              "createdAt": "2024-01-14T15:20:00Z",
              "description": "Kortköp ICA Maxi",
              "direction": "DEBIT",
              "status": "BOOKED",
              "transactionId": "tx-2"
            }
          ],
          "type": "PSD2_CHECKING_ACCOUNT"
        },
        "properties": {
          "accountHolderName": {
            "description": "Name of the account holder",
            "example": "Anna Svensson",
            "type": "string"
          },
          "accountId": {
            "description": "Account identifier",
            "example": "acc-456",
            "type": "string"
          },
          "accountName": {
            "description": "Name of the account",
            "example": "Personkonto",
            "type": "string"
          },
          "accountNumber": {
            "description": "The account number assigned by the source financial institution. This is the most stable identifier for the account over time and across collections, and is suitable for matching the same account 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 account, and the value may be masked or partially redacted (e.g., as a masked PAN for credit cards), which can cause collisions between accounts sharing the same visible digits.",
            "example": "9876543210",
            "type": "string"
          },
          "availableBalance": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Available balance of the account"
          },
          "bic": {
            "description": "Bank Identifier Code",
            "example": "NDEASESS",
            "type": "string"
          },
          "bookedBalance": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Booked balance of the account"
          },
          "company": {
            "description": "Company where the PSD2 checking account has been collected from. Example: `se-nordea-psd2`.",
            "example": "se-nordea-psd2",
            "type": "string"
          },
          "companyDisplayName": {
            "description": "Display name of the company for user-friendly presentation.",
            "example": "Nordea",
            "type": "string"
          },
          "currency": {
            "description": "Currency code of the account",
            "example": "SEK",
            "type": "string"
          },
          "iban": {
            "description": "International Bank Account Number",
            "example": "SE3550000000054910000004",
            "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": "psd2-chk-456",
            "type": "string"
          },
          "personalInformation": {
            "$ref": "#/components/schemas/PersonalInformation",
            "description": "Personal information about the person who initiated the data collection."
          },
          "transactions": {
            "description": "List of transactions on the account",
            "items": {
              "$ref": "#/components/schemas/Psd2Transaction"
            },
            "type": "array"
          },
          "type": {
            "description": "Type of the financial product.",
            "enum": [
              "KF",
              "ISK",
              "CUSTODY_ACCOUNT",
              "UNKNOWN_INVESTMENT_TYPE",
              "IPS_PENSION",
              "PRIVATE_PENSION",
              "OCCUPATIONAL_PENSION",
              "COLLECTIVE_OCCUPATIONAL_PENSION",
              "UNKNOWN_PENSION_TYPE",
              "MORTGAGE_LOAN",
              "UNSECURED_LOAN",
              "GENERAL_SAVINGS_ACCOUNT",
              "GENERAL_SAVINGS_ACCOUNT_FIXED_PERIOD",
              "PSD2_SAVINGS_ACCOUNT",
              "PSD2_CHECKING_ACCOUNT",
              "PSD2_CREDIT_CARD"
            ],
            "example": "ISK",
            "type": "string"
          }
        },
        "required": [
          "accountId",
          "accountName",
          "accountNumber",
          "bookedBalance",
          "company",
          "companyDisplayName",
          "currency",
          "id",
          "type"
        ],
        "title": "PSD2 Checking Account",
        "x-tag": "Financial Product Type"
      },
      "Psd2CreditCard": {
        "description": "A PSD2 credit card account",
        "discriminator": {
          "mapping": {
            "parent": "#/components/schemas/FinancialProduct"
          },
          "propertyName": "financial product type"
        },
        "example": {
          "accountHolderName": "Anna Svensson",
          "accountId": "acc-789",
          "accountName": "Kreditkort",
          "accountNumber": "****-****-****-1234",
          "availableBalance": {
            "amount": 7500,
            "currency": "SEK"
          },
          "bic": "NDEASESS",
          "bookedBalance": {
            "amount": -2500,
            "currency": "SEK"
          },
          "company": "se-nordea-psd2",
          "companyDisplayName": "Nordea",
          "currency": "SEK",
          "iban": "SE3550000000054910000005",
          "id": "psd2-cc-789",
          "transactions": [
            {
              "accountId": "acc-789",
              "amount": {
                "amount": -125.75,
                "currency": "SEK"
              },
              "bookingDate": "2024-01-13",
              "counterpartyName": "Espresso House",
              "createdAt": "2024-01-13T20:15:00Z",
              "description": "Kortköp Espresso House",
              "direction": "DEBIT",
              "status": "BOOKED",
              "transactionId": "tx-3"
            }
          ],
          "type": "PSD2_CREDIT_CARD"
        },
        "properties": {
          "accountHolderName": {
            "description": "Name of the account holder",
            "example": "Anna Svensson",
            "type": "string"
          },
          "accountId": {
            "description": "Account identifier",
            "example": "acc-789",
            "type": "string"
          },
          "accountName": {
            "description": "Name of the account",
            "example": "Kreditkort",
            "type": "string"
          },
          "accountNumber": {
            "description": "The account number assigned by the source financial institution. This is the most stable identifier for the account over time and across collections, and is suitable for matching the same account 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 account, and the value may be masked or partially redacted (e.g., as a masked PAN for credit cards), which can cause collisions between accounts sharing the same visible digits.",
            "example": "****-****-****-1234",
            "type": "string"
          },
          "availableBalance": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Available balance of the account"
          },
          "bic": {
            "description": "Bank Identifier Code",
            "example": "NDEASESS",
            "type": "string"
          },
          "bookedBalance": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Booked balance of the account (negative for debt)"
          },
          "company": {
            "description": "Company where the PSD2 credit card has been collected from. Example: `se-nordea-psd2`.",
            "example": "se-nordea-psd2",
            "type": "string"
          },
          "companyDisplayName": {
            "description": "Display name of the company for user-friendly presentation.",
            "example": "Nordea",
            "type": "string"
          },
          "currency": {
            "description": "Currency code of the account",
            "example": "SEK",
            "type": "string"
          },
          "iban": {
            "description": "International Bank Account Number",
            "example": "SE3550000000054910000005",
            "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": "psd2-cc-789",
            "type": "string"
          },
          "personalInformation": {
            "$ref": "#/components/schemas/PersonalInformation",
            "description": "Personal information about the person who initiated the data collection."
          },
          "transactions": {
            "description": "List of transactions on the account",
            "items": {
              "$ref": "#/components/schemas/Psd2Transaction"
            },
            "type": "array"
          },
          "type": {
            "description": "Type of the financial product.",
            "enum": [
              "KF",
              "ISK",
              "CUSTODY_ACCOUNT",
              "UNKNOWN_INVESTMENT_TYPE",
              "IPS_PENSION",
              "PRIVATE_PENSION",
              "OCCUPATIONAL_PENSION",
              "COLLECTIVE_OCCUPATIONAL_PENSION",
              "UNKNOWN_PENSION_TYPE",
              "MORTGAGE_LOAN",
              "UNSECURED_LOAN",
              "GENERAL_SAVINGS_ACCOUNT",
              "GENERAL_SAVINGS_ACCOUNT_FIXED_PERIOD",
              "PSD2_SAVINGS_ACCOUNT",
              "PSD2_CHECKING_ACCOUNT",
              "PSD2_CREDIT_CARD"
            ],
            "example": "ISK",
            "type": "string"
          }
        },
        "required": [
          "accountId",
          "accountName",
          "accountNumber",
          "bookedBalance",
          "company",
          "companyDisplayName",
          "currency",
          "id",
          "type"
        ],
        "title": "PSD2 Credit Card",
        "x-tag": "Financial Product Type"
      },
      "Psd2SavingsAccount": {
        "description": "A PSD2 savings account",
        "discriminator": {
          "mapping": {
            "parent": "#/components/schemas/FinancialProduct"
          },
          "propertyName": "financial product type"
        },
        "example": {
          "accountHolderName": "Anna Svensson",
          "accountId": "acc-123",
          "accountName": "Sparkonto",
          "accountNumber": "1234567890",
          "availableBalance": {
            "amount": 25000,
            "currency": "SEK"
          },
          "bic": "NDEASESS",
          "bookedBalance": {
            "amount": 25000,
            "currency": "SEK"
          },
          "company": "se-nordea-psd2",
          "companyDisplayName": "Nordea",
          "currency": "SEK",
          "iban": "SE3550000000054910000003",
          "id": "psd2-sav-123",
          "transactions": [
            {
              "accountId": "acc-123",
              "amount": {
                "amount": 1000,
                "currency": "SEK"
              },
              "bookingDate": "2024-01-15",
              "counterpartyName": "Insurely AB",
              "createdAt": "2024-01-15T10:30:00Z",
              "description": "Lön",
              "direction": "CREDIT",
              "status": "BOOKED",
              "transactionId": "tx-1"
            }
          ],
          "type": "PSD2_SAVINGS_ACCOUNT"
        },
        "properties": {
          "accountHolderName": {
            "description": "Name of the account holder",
            "example": "Anna Svensson",
            "type": "string"
          },
          "accountId": {
            "description": "Account identifier",
            "example": "acc-123",
            "type": "string"
          },
          "accountName": {
            "description": "Name of the account",
            "example": "Sparkonto",
            "type": "string"
          },
          "accountNumber": {
            "description": "The account number assigned by the source financial institution. This is the most stable identifier for the account over time and across collections, and is suitable for matching the same account 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 account, and the value may be masked or partially redacted (e.g., as a masked PAN for credit cards), which can cause collisions between accounts sharing the same visible digits.",
            "example": "1234567890",
            "type": "string"
          },
          "availableBalance": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Available balance of the account"
          },
          "bic": {
            "description": "Bank Identifier Code",
            "example": "NDEASESS",
            "type": "string"
          },
          "bookedBalance": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Booked balance of the account"
          },
          "company": {
            "description": "Company where the PSD2 savings account has been collected from. Example: `se-nordea-psd2`.",
            "example": "se-nordea-psd2",
            "type": "string"
          },
          "companyDisplayName": {
            "description": "Display name of the company for user-friendly presentation.",
            "example": "Nordea",
            "type": "string"
          },
          "currency": {
            "description": "Currency code of the account",
            "example": "SEK",
            "type": "string"
          },
          "iban": {
            "description": "International Bank Account Number",
            "example": "SE3550000000054910000003",
            "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": "psd2-sav-123",
            "type": "string"
          },
          "personalInformation": {
            "$ref": "#/components/schemas/PersonalInformation",
            "description": "Personal information about the person who initiated the data collection."
          },
          "transactions": {
            "description": "List of transactions on the account",
            "items": {
              "$ref": "#/components/schemas/Psd2Transaction"
            },
            "type": "array"
          },
          "type": {
            "description": "Type of the financial product.",
            "enum": [
              "KF",
              "ISK",
              "CUSTODY_ACCOUNT",
              "UNKNOWN_INVESTMENT_TYPE",
              "IPS_PENSION",
              "PRIVATE_PENSION",
              "OCCUPATIONAL_PENSION",
              "COLLECTIVE_OCCUPATIONAL_PENSION",
              "UNKNOWN_PENSION_TYPE",
              "MORTGAGE_LOAN",
              "UNSECURED_LOAN",
              "GENERAL_SAVINGS_ACCOUNT",
              "GENERAL_SAVINGS_ACCOUNT_FIXED_PERIOD",
              "PSD2_SAVINGS_ACCOUNT",
              "PSD2_CHECKING_ACCOUNT",
              "PSD2_CREDIT_CARD"
            ],
            "example": "ISK",
            "type": "string"
          }
        },
        "required": [
          "accountId",
          "accountName",
          "accountNumber",
          "bookedBalance",
          "company",
          "companyDisplayName",
          "currency",
          "id",
          "type"
        ],
        "title": "PSD2 Savings Account",
        "x-tag": "Financial Product Type"
      },
      "Psd2Transaction": {
        "description": "A transaction on a PSD2 account",
        "properties": {
          "accountId": {
            "description": "Account identifier the transaction belongs to",
            "example": "acc-789",
            "type": "string"
          },
          "amount": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Transaction amount"
          },
          "bookingDate": {
            "description": "Booking date of the transaction in ISO format",
            "example": "2024-01-15",
            "type": "string"
          },
          "counterpartyName": {
            "description": "Name of the counterparty",
            "example": "SuperMarket Inc",
            "type": "string"
          },
          "createdAt": {
            "description": "Creation timestamp",
            "example": "2024-01-15T10:30:00Z",
            "type": "string"
          },
          "description": {
            "description": "Description of the transaction",
            "example": "Grocery purchase",
            "type": "string"
          },
          "direction": {
            "description": "Direction of the transaction",
            "enum": [
              "CREDIT",
              "DEBIT"
            ],
            "type": "string"
          },
          "status": {
            "description": "Status of the transaction",
            "enum": [
              "BOOKED",
              "PENDING"
            ],
            "type": "string"
          },
          "transactionId": {
            "description": "Unique identifier for the transaction",
            "example": "tx-123456",
            "type": "string"
          }
        },
        "title": "PSD2 Transaction"
      },
      "PublicPension": {
        "description": "Swedish public pension data",
        "discriminator": {
          "mapping": {
            "parent": "#/components/schemas/FinancialProduct"
          },
          "propertyName": "financial product type"
        },
        "example": {
          "company": "se-lefi",
          "companyDisplayName": "Försäkringskassan",
          "guaranteePension": {
            "amount": 5000,
            "currency": "SEK"
          },
          "id": "6a7c135e-3a56-44ae-bc53-1d0d5321f552",
          "incomePension": {
            "amount": 120000,
            "currency": "SEK"
          },
          "premiumPension": {
            "amount": 25000,
            "currency": "SEK"
          },
          "type": "PUBLIC_PENSION",
          "updatedDate": "2025-11-15"
        },
        "properties": {
          "company": {
            "description": "Company where the financial product has been collected from. Example: `se-lefi`.",
            "example": "se-lefi",
            "type": "string"
          },
          "companyDisplayName": {
            "description": "Display name of the company for user-friendly presentation.",
            "example": "Försäkringskassan",
            "type": "string"
          },
          "guaranteePension": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Guarantee pension balance (Garantipension) - optional field only present if the person qualifies for guarantee pension"
          },
          "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": "public-pension-123",
            "type": "string"
          },
          "incomePension": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Income pension balance (Inkomstpension) - the main component of Swedish public pension based on lifetime earnings"
          },
          "premiumPension": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Premium pension balance (Premiepension) - the fund-based component that individuals can manage themselves"
          },
          "type": {
            "description": "Type of the financial product.",
            "enum": [
              "KF",
              "ISK",
              "CUSTODY_ACCOUNT",
              "UNKNOWN_INVESTMENT_TYPE",
              "IPS_PENSION",
              "PRIVATE_PENSION",
              "OCCUPATIONAL_PENSION",
              "COLLECTIVE_OCCUPATIONAL_PENSION",
              "UNKNOWN_PENSION_TYPE",
              "MORTGAGE_LOAN",
              "UNSECURED_LOAN",
              "GENERAL_SAVINGS_ACCOUNT",
              "GENERAL_SAVINGS_ACCOUNT_FIXED_PERIOD",
              "PSD2_SAVINGS_ACCOUNT",
              "PSD2_CHECKING_ACCOUNT",
              "PSD2_CREDIT_CARD"
            ],
            "example": "ISK",
            "type": "string"
          },
          "updatedDate": {
            "description": "Date when the pension balance was last updated (YYYY-MM-DD format)",
            "example": "2025-11-01",
            "type": "string"
          }
        },
        "required": [
          "company",
          "companyDisplayName",
          "id",
          "incomePension",
          "premiumPension",
          "type",
          "updatedDate"
        ],
        "title": "Public Pension",
        "x-tag": "Financial Product Type"
      },
      "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"
      },
      "RepaymentSchedule": {
        "description": "The planned payments",
        "example": {
          "finalDebt": 0,
          "finalPaymentDate": "2070-09-28",
          "numberOfInstalments": 50,
          "repaymentDayOfMonth": 30
        },
        "properties": {
          "finalDebt": {
            "format": "int64",
            "type": "integer"
          },
          "finalPaymentDate": {
            "type": "string"
          },
          "numberOfInstalments": {
            "format": "int32",
            "type": "integer"
          },
          "repaymentDayOfMonth": {
            "format": "int32",
            "type": "integer"
          }
        }
      },
      "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"
        ]
      },
      "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"
          }
        }
      },
      "SessionResponse": {
        "properties": {
          "expiresAt": {
            "format": "date-time",
            "type": "string"
          },
          "token": {
            "type": "string"
          },
          "userUuid": {
            "type": "string"
          }
        }
      },
      "StoredConsentParameter": {
        "allOf": [
          {
            "$ref": "#/components/schemas/CollectionParameter"
          }
        ],
        "description": "Parameter to start a collection using a previously authorized PSD2 consent. The consent must be in AUTHORIZED status and belong to the requesting client.",
        "properties": {
          "consentId": {
            "description": "The ID of the stored consent to use for this collection.",
            "example": "550e8400-e29b-41d4-a716-446655440000",
            "type": "string"
          },
          "psuIpAddress": {
            "description": "IP address of the end user (PSU). Set this when the end user is present to avoid the request being treated as a background refresh.",
            "example": "192.168.1.1",
            "type": "string"
          },
          "psuUserAgent": {
            "description": "User-Agent of the end user's (PSU) browser or device. Set this when the end user is present to avoid the request being treated as a background refresh.",
            "example": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)",
            "type": "string"
          },
          "type": {
            "enum": [
              "STORED_CONSENT"
            ],
            "type": "string"
          }
        },
        "required": [
          "consentId"
        ]
      },
      "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"
      },
      "SwedishBankIdAutostartToken": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ConsentStatusAuthInstructions"
          }
        ],
        "description": "Swedish BankID autostart token authentication instructions",
        "properties": {
          "autoStartToken": {
            "description": "Auto-start token for Swedish BankID authentication",
            "example": "c1e78afc-9235-405b-ad2a-dd3010a891d3",
            "type": "string"
          }
        },
        "required": [
          "autoStartToken"
        ],
        "title": "SwedishBankIdAutostartToken"
      },
      "SwedishBankIdParameter": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ConsentParameter"
          },
          {
            "$ref": "#/components/schemas/CollectionParameter"
          }
        ],
        "description": "BankID credentials required to initiate Swedish authentication flows.",
        "properties": {
          "personalNumber": {
            "description": "Swedish personal number for the end user.",
            "example": "192101010101",
            "type": "string"
          },
          "type": {
            "enum": [
              "SWEDISH_BANKID"
            ],
            "type": "string"
          }
        },
        "required": [
          "personalNumber"
        ]
      },
      "SwedishBankIdQr": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ConsentStatusAuthInstructions"
          }
        ],
        "description": "Swedish BankID QR code authentication instructions",
        "properties": {
          "qrCodeData": {
            "description": "QR code data for Swedish BankID authentication",
            "example": "bankid.c1e7f0f0-a3a0-4dd5-9763-a2c7882dd4c4.0.4b09c4d3d09e585d85b8b326098f6a9bd1ffa4994f5384fd696d8da8d8244c2f",
            "type": "string"
          }
        },
        "required": [
          "qrCodeData"
        ],
        "title": "SwedishBankIdQr"
      },
      "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"
          }
        }
      },
      "UnsecuredLoan": {
        "description": "Unsecured loan",
        "discriminator": {
          "mapping": {
            "parent": "#/components/schemas/FinancialProduct"
          },
          "propertyName": "financial product type"
        },
        "example": {
          "company": "se-collector",
          "companyDisplayName": "Collector",
          "firstDrawDownDate": "2020-02-29",
          "id": "6a7c135e-3a56-44ae-bc53-1d0d5321f552",
          "interest": {
            "rate": 0.0392
          },
          "loanDetails": {
            "balance": {
              "amount": 2000000,
              "currency": "SEK"
            },
            "granted": {
              "amount": 3000000,
              "currency": "SEK"
            },
            "paid": {
              "amount": 1000000,
              "currency": "SEK"
            }
          },
          "loanId": "000047433123",
          "nextPayment": {
            "date": "2024-09-28",
            "instalment": {
              "amount": 5000,
              "currency": "SEK"
            },
            "interest": {
              "amount": 7784,
              "currency": "SEK"
            },
            "total": {
              "amount": 12784,
              "currency": "SEK"
            }
          },
          "owners": [
            {
              "name": "Karl Ekorrströmberg",
              "sharePercentage": 1
            }
          ],
          "repaymentSchedule": {
            "finalDebt": 0,
            "finalPaymentDate": "2070-09-28",
            "numberOfInstalments": 50,
            "repaymentDayOfMonth": 30
          },
          "status": "IN_PROGRESS",
          "type": "UNSECURED_LOAN"
        },
        "properties": {
          "company": {
            "description": "Company where the financial product has been collected from. Example: `se-collector`.",
            "example": "se-collector",
            "type": "string"
          },
          "companyDisplayName": {
            "description": "Display name of the company for user-friendly presentation.",
            "example": "Collector",
            "type": "string"
          },
          "firstDrawDownDate": {
            "description": "The date the loan was paid out",
            "example": "2020-02-29",
            "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/UnsecuredLoan_Interest"
          },
          "loanDetails": {
            "$ref": "#/components/schemas/LoanDetails"
          },
          "loanId": {
            "description": "The id of the loan from the source",
            "example": "000047433123",
            "type": "string"
          },
          "nextPayment": {
            "$ref": "#/components/schemas/NextPayment"
          },
          "owners": {
            "items": {
              "$ref": "#/components/schemas/LoanOwner"
            },
            "type": "array"
          },
          "repaymentSchedule": {
            "$ref": "#/components/schemas/RepaymentSchedule"
          },
          "status": {
            "enum": [
              "IN_PROGRESS",
              "PAID_UP",
              "CANCELLED",
              "UNKNOWN"
            ],
            "type": "string"
          },
          "type": {
            "description": "Type of the financial product.",
            "enum": [
              "KF",
              "ISK",
              "CUSTODY_ACCOUNT",
              "UNKNOWN_INVESTMENT_TYPE",
              "IPS_PENSION",
              "PRIVATE_PENSION",
              "OCCUPATIONAL_PENSION",
              "COLLECTIVE_OCCUPATIONAL_PENSION",
              "UNKNOWN_PENSION_TYPE",
              "MORTGAGE_LOAN",
              "UNSECURED_LOAN",
              "GENERAL_SAVINGS_ACCOUNT",
              "GENERAL_SAVINGS_ACCOUNT_FIXED_PERIOD",
              "PSD2_SAVINGS_ACCOUNT",
              "PSD2_CHECKING_ACCOUNT",
              "PSD2_CREDIT_CARD"
            ],
            "example": "ISK",
            "type": "string"
          }
        },
        "required": [
          "company",
          "id",
          "type"
        ],
        "title": "Unsecured loan",
        "x-tag": "Financial Product Type"
      },
      "UnsecuredLoan_Interest": {
        "description": "Interest data points",
        "example": {
          "rate": 0.0392
        },
        "properties": {
          "rate": {
            "format": "double",
            "type": "number"
          }
        }
      },
      "UserResponse": {
        "properties": {
          "anonymized": {
            "type": "boolean"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "externalId": {
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          },
          "userUuid": {
            "type": "string"
          }
        }
      },
      "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"
          },
          "fundAccountNumber": {
            "description": "Only populated for fund holdings from Handelsbanken ISK or custody accounts. This is the underlying account number for the fund",
            "example": "12345678",
            "type": "string",
            "x-markets": {
              "se": true
            }
          },
          "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"
      },
      "Wealth.OrganizationFinancialInformation": {
        "properties": {
          "employeeCount": {
            "description": "Number of employees in the organization.",
            "format": "int32",
            "type": "integer"
          },
          "financialPeriod": {
            "$ref": "#/components/schemas/FinancialPeriod",
            "description": "Time period for which the information was fetched."
          },
          "netIncome": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Net income for the specified period."
          },
          "shareCapital": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Total share capital at the end of the period."
          },
          "turnover": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Turnover during the specified period."
          }
        },
        "title": "OrganizationFinancialInformation"
      },
      "Wealth.PensionManagementInstitution": {
        "description": "Institution where the pension can be managed. Each institution has a fixed URL:\n- Avtalat: https://www.avtalat.se/logga-in/\n- Fora: https://internetkontoret.fora.se/irj/portal/Privat\n- Valcentralen: https://valcentralen.se/Sec/BankID/Auth.aspx\n- Pensionsvalet: https://www.pensionsvalet.se/inloggning/\n- SPV: https://spv.se/privatperson/statlig-tjanstepension/mina-sidor/\n",
        "properties": {
          "name": {
            "description": "Name of the institution.",
            "enum": [
              "Avtalat",
              "Fora",
              "Valcentralen",
              "Pensionsvalet",
              "SPV"
            ],
            "type": "string"
          },
          "url": {
            "description": "Login URL for moving the pension.",
            "enum": [
              "https://www.avtalat.se/logga-in/",
              "https://internetkontoret.fora.se/irj/portal/Privat",
              "https://valcentralen.se/Sec/BankID/Auth.aspx",
              "https://www.pensionsvalet.se/inloggning/",
              "https://spv.se/privatperson/statlig-tjanstepension/mina-sidor/"
            ],
            "type": "string"
          }
        },
        "title": "PensionManagementInstitution"
      },
      "WealthProductTypeAvailability": {
        "properties": {
          "collectionSupported": {
            "type": "boolean"
          },
          "confirmedAtCompany": {
            "type": "boolean"
          },
          "productType": {
            "enum": [
              "KF",
              "ISK",
              "CUSTODY_ACCOUNT",
              "UNKNOWN_INVESTMENT_TYPE",
              "IPS_PENSION",
              "PRIVATE_PENSION",
              "OCCUPATIONAL_PENSION",
              "COLLECTIVE_OCCUPATIONAL_PENSION",
              "UNKNOWN_PENSION_TYPE",
              "MORTGAGE_LOAN",
              "UNSECURED_LOAN",
              "GENERAL_SAVINGS_ACCOUNT",
              "GENERAL_SAVINGS_ACCOUNT_FIXED_PERIOD",
              "PSD2_SAVINGS_ACCOUNT",
              "PSD2_CHECKING_ACCOUNT",
              "PSD2_CREDIT_CARD"
            ],
            "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": {
        "description": "Your API key. Requests are only accepted from IP addresses on the client's allowlist, and with a registered client certificate when mTLS is enforced for the client.",
        "in": "header",
        "name": "authorization-token",
        "type": "apiKey"
      },
      "client-id": {
        "description": "Your client ID, as used by the Prebuilt UI. Server-to-server integrations authenticate with authorization-token instead.",
        "in": "header",
        "name": "client-id",
        "type": "apiKey"
      },
      "jwt-token": {
        "bearerFormat": "JWT",
        "description": "A user session token, sent as `Authorization: Bearer <token>`.",
        "scheme": "bearer",
        "type": "http"
      }
    }
  },
  "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": "The API version to use, as YYYY-MM-DD. Must match the version of the endpoint you are targeting. A request without it, or with a version older than the client's minimum API version, is served by the client's minimum API version.",
            "example": "2026-04-01",
            "in": "header",
            "name": "Insurely-Version",
            "required": true,
            "schema": {
              "enum": [
                "2026-04-01"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "examples": {
                  "collections": {
                    "$ref": "#/components/examples/getCollections-200-collections"
                  }
                },
                "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": "The API version to use, as YYYY-MM-DD. Must match the version of the endpoint you are targeting. A request without it, or with a version older than the client's minimum API version, is served by the client's minimum API version.",
            "example": "2026-04-01",
            "in": "header",
            "name": "Insurely-Version",
            "required": true,
            "schema": {
              "enum": [
                "2026-04-01"
              ],
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "examples": {
                "bankid-other-device": {
                  "$ref": "#/components/examples/initiateCollection-request-bankid-other-device"
                },
                "bankid-same-device": {
                  "$ref": "#/components/examples/initiateCollection-request-bankid-same-device"
                }
              },
              "schema": {
                "$ref": "#/components/schemas/InitiateCollectionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "examples": {
                  "started": {
                    "$ref": "#/components/examples/initiateCollection-201-started"
                  }
                },
                "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": "The client is not allowed to use this endpoint or resource."
          },
          "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": "The API version to use, as YYYY-MM-DD. Must match the version of the endpoint you are targeting. A request without it, or with a version older than the client's minimum API version, is served by the client's minimum API version.",
            "example": "2026-04-01",
            "in": "header",
            "name": "Insurely-Version",
            "required": true,
            "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": "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": "The API version to use, as YYYY-MM-DD. Must match the version of the endpoint you are targeting. A request without it, or with a version older than the client's minimum API version, is served by the client's minimum API version.",
            "example": "2026-04-01",
            "in": "header",
            "name": "Insurely-Version",
            "required": true,
            "schema": {
              "enum": [
                "2026-04-01"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "examples": {
                  "authentication-timeout": {
                    "$ref": "#/components/examples/getCollectionStatus-200-authentication-timeout"
                  }
                },
                "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": "Authentication failed: the credentials are missing or invalid, the calling IP is not on the client's allowlist, or mTLS is enforced and no valid client certificate was sent. An expired session token gets 401 Token expired."
          },
          "403": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-403"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "The client is not allowed to use this endpoint or resource."
          },
          "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": "The API version to use, as YYYY-MM-DD. Must match the version of the endpoint you are targeting. A request without it, or with a version older than the client's minimum API version, is served by the client's minimum API version.",
            "example": "2026-04-01",
            "in": "header",
            "name": "Insurely-Version",
            "required": true,
            "schema": {
              "enum": [
                "2026-04-01"
              ],
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "examples": {
                "two-factor-code": {
                  "$ref": "#/components/examples/addSupplementInformation-request-two-factor-code"
                }
              },
              "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": "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": "The API version to use, as YYYY-MM-DD. Must match the version of the endpoint you are targeting. A request without it, or with a version older than the client's minimum API version, is served by the client's minimum API version.",
            "example": "2026-04-01",
            "in": "header",
            "name": "Insurely-Version",
            "required": true,
            "schema": {
              "enum": [
                "2026-04-01"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "examples": {
                  "isk": {
                    "$ref": "#/components/examples/getWealthCollectionData-200-isk"
                  }
                },
                "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": "Authentication failed: the credentials are missing or invalid, the calling IP is not on the client's allowlist, or mTLS is enforced and no valid client certificate was sent. An expired session token gets 401 Token expired."
          },
          "403": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-403"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "The 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": "The API version to use, as YYYY-MM-DD. Must match the version of the endpoint you are targeting. A request without it, or with a version older than the client's minimum API version, is served by the client's minimum API version.",
            "example": "2026-04-01",
            "in": "header",
            "name": "Insurely-Version",
            "required": true,
            "schema": {
              "enum": [
                "2026-04-01"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "examples": {
                  "completed": {
                    "$ref": "#/components/examples/getWealthCollectionTransactions-200-completed"
                  }
                },
                "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": "Authentication failed: the credentials are missing or invalid, the calling IP is not on the client's allowlist, or mTLS is enforced and no valid client certificate was sent. An expired session token gets 401 Token expired."
          },
          "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, or the 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": "The API version to use, as YYYY-MM-DD. Must match the version of the endpoint you are targeting. A request without it, or with a version older than the client's minimum API version, is served by the client's minimum API version.",
            "example": "2026-04-01",
            "in": "header",
            "name": "Insurely-Version",
            "required": true,
            "schema": {
              "enum": [
                "2026-04-01",
                "2025-01-01",
                "2024-06-01"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "examples": {
                  "available-companies": {
                    "$ref": "#/components/examples/getCompaniesStatus-200-available-companies"
                  }
                },
                "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": "The API version to use, as YYYY-MM-DD. Must match the version of the endpoint you are targeting. A request without it, or with a version older than the client's minimum API version, is served by the client's minimum API version.",
            "example": "2026-04-01",
            "in": "header",
            "name": "Insurely-Version",
            "required": true,
            "schema": {
              "enum": [
                "2026-04-01",
                "2025-01-01"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "examples": {
                  "supported-products": {
                    "$ref": "#/components/examples/getSupportedProducts-200-supported-products"
                  }
                },
                "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"
        ]
      }
    },
    "/consents": {
      "get": {
        "description": "Returns all consents for the authenticated user within the client scope.",
        "operationId": "getConsents",
        "parameters": [
          {
            "description": "The API version to use, as YYYY-MM-DD. Must match the version of the endpoint you are targeting. A request without it, or with a version older than the client's minimum API version, is served by the client's minimum API version.",
            "example": "2026-04-01",
            "in": "header",
            "name": "Insurely-Version",
            "required": true,
            "schema": {
              "enum": [
                "2026-04-01"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "examples": {
                  "consents": {
                    "$ref": "#/components/examples/getConsents-200-consents"
                  }
                },
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Consent"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Consents 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 consents",
        "tags": [
          "Consents"
        ]
      },
      "post": {
        "description": "Create a new PSD2_AIS (Account Information Service) consent for the authenticated external user.",
        "operationId": "createConsent",
        "parameters": [
          {
            "description": "The API version to use, as YYYY-MM-DD. Must match the version of the endpoint you are targeting. A request without it, or with a version older than the client's minimum API version, is served by the client's minimum API version.",
            "example": "2026-04-01",
            "in": "header",
            "name": "Insurely-Version",
            "required": true,
            "schema": {
              "enum": [
                "2026-04-01"
              ],
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "examples": {
                "Create PSD2_AIS consent": {
                  "description": "Create PSD2_AIS consent",
                  "value": {
                    "company": "se-nordea-psd2",
                    "parameters": [
                      {
                        "accountIds": [
                          "SE1234567890"
                        ],
                        "balances": true,
                        "psuIpAddress": "192.168.1.1",
                        "psuLocale": "sv-SE",
                        "transactions": true,
                        "type": "PSD2_AIS_CONSENT",
                        "validUntil": "2026-12-31"
                      }
                    ]
                  }
                }
              },
              "schema": {
                "$ref": "#/components/schemas/CreateConsentRequest"
              }
            }
          },
          "description": "Consent creation request",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "examples": {
                  "Created consent": {
                    "description": "Created consent",
                    "value": {
                      "company": "se-nordea-psd2",
                      "consentId": "550e8400-e29b-41d4-a716-446655440000",
                      "expiresAt": "2026-12-31T23:59:59Z",
                      "scope": {
                        "accountIds": [
                          "SE1234567890"
                        ],
                        "balances": true,
                        "transactions": true,
                        "type": "PSD2_AIS"
                      },
                      "status": "INITIATED"
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Consent"
                }
              }
            },
            "description": "Consent successfully created."
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-400"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Invalid request. Possible reasons: missing/invalid company, missing/multiple PSD2_AIS_CONSENT parameter, validUntil not in the future."
          },
          "401": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-401"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Invalid or missing JWT token."
          },
          "403": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-403"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Client does not have access to the specified company."
          }
        },
        "security": [
          {
            "jwt-token": []
          }
        ],
        "summary": "Create consent",
        "tags": [
          "Consents"
        ]
      }
    },
    "/consents/{consentId}": {
      "delete": {
        "description": "Revoke a previously authorized PSD2_AIS consent",
        "operationId": "revokeConsent",
        "parameters": [
          {
            "description": "The unique identifier of the consent",
            "in": "path",
            "name": "consentId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The API version to use, as YYYY-MM-DD. Must match the version of the endpoint you are targeting. A request without it, or with a version older than the client's minimum API version, is served by the client's minimum API version.",
            "example": "2026-04-01",
            "in": "header",
            "name": "Insurely-Version",
            "required": true,
            "schema": {
              "enum": [
                "2026-04-01"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "examples": {
                  "Revoked consent": {
                    "description": "Revoked consent",
                    "value": {
                      "company": "se-nordea-psd2",
                      "consentId": "550e8400-e29b-41d4-a716-446655440000",
                      "createdAt": "2026-01-15T10:30:00Z",
                      "pollingInterval": null,
                      "scope": {
                        "accountIds": [
                          "SE1234567890"
                        ],
                        "balances": true,
                        "transactions": true,
                        "type": "PSD2_AIS"
                      },
                      "status": "REVOKED",
                      "statusChangedAt": "2026-02-27T14:00:00Z"
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ConsentStatusResponse"
                }
              }
            },
            "description": "Consent revocation processed successfully."
          },
          "401": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-401"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Invalid or missing JWT token."
          },
          "403": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-403"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Access denied. Consent does not belong to this client or user."
          },
          "404": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-404"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Consent not found."
          }
        },
        "security": [
          {
            "jwt-token": []
          }
        ],
        "summary": "Revoke consent",
        "tags": [
          "Consents"
        ]
      }
    },
    "/consents/{consentId}/status": {
      "get": {
        "description": "Returns the current status of a consent with authentication instructions for BankID flows. Clients should poll this endpoint to track consent authorization progress.",
        "operationId": "getConsentStatus",
        "parameters": [
          {
            "description": "The unique identifier of the consent",
            "in": "path",
            "name": "consentId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The API version to use, as YYYY-MM-DD. Must match the version of the endpoint you are targeting. A request without it, or with a version older than the client's minimum API version, is served by the client's minimum API version.",
            "example": "2026-04-01",
            "in": "header",
            "name": "Insurely-Version",
            "required": true,
            "schema": {
              "enum": [
                "2026-04-01"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "examples": {
                  "Authorized": {
                    "description": "Authorized",
                    "value": {
                      "company": "se-nordea-psd2",
                      "consentId": "550e8400-e29b-41d4-a716-446655440000",
                      "createdAt": "2026-01-15T10:30:00Z",
                      "expiresAt": "2026-12-31T23:59:59Z",
                      "pollingInterval": null,
                      "scope": {
                        "accountIds": [
                          "SE1234567890"
                        ],
                        "balances": true,
                        "transactions": true,
                        "type": "PSD2_AIS"
                      },
                      "status": "AUTHORIZED",
                      "statusChangedAt": "2026-01-15T10:31:00Z"
                    }
                  },
                  "Awaiting authorization": {
                    "description": "Awaiting authorization",
                    "value": {
                      "authInstructions": {
                        "qrCodeData": "bankid.c1e7f0f0-a3a0-4dd5-9763-a2c7882dd4c4.0.4b09c4d3d09e585d85b8b326098f6a9bd1ffa4994f5384fd696d8da8d8244c2f",
                        "type": "SWEDISH_BANKID_QR"
                      },
                      "company": "se-nordea-psd2",
                      "consentId": "550e8400-e29b-41d4-a716-446655440000",
                      "createdAt": "2026-01-15T10:30:00Z",
                      "expiresAt": "2026-12-31T23:59:59Z",
                      "pollingInterval": 2000,
                      "scope": {
                        "accountIds": [
                          "SE1234567890"
                        ],
                        "balances": true,
                        "transactions": true,
                        "type": "PSD2_AIS"
                      },
                      "status": "AWAITING_AUTHORIZATION",
                      "statusChangedAt": "2026-01-15T10:30:05Z"
                    }
                  },
                  "Failed": {
                    "description": "Failed",
                    "value": {
                      "company": "se-nordea-psd2",
                      "consentId": "550e8400-e29b-41d4-a716-446655440000",
                      "createdAt": "2026-01-15T10:30:00Z",
                      "error": {
                        "code": "AUTHENTICATION_TIMEOUT",
                        "message": "User did not complete BankID authentication within the time limit"
                      },
                      "pollingInterval": null,
                      "scope": {
                        "accountIds": [
                          "SE1234567890"
                        ],
                        "balances": true,
                        "transactions": true,
                        "type": "PSD2_AIS"
                      },
                      "status": "FAILED",
                      "statusChangedAt": "2026-01-15T10:35:00Z"
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ConsentStatusResponse"
                }
              }
            },
            "description": "Consent status 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."
          },
          "403": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-403"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Access denied. Consent does not belong to this client or user."
          },
          "404": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-404"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Consent not found."
          }
        },
        "security": [
          {
            "jwt-token": []
          }
        ],
        "summary": "Get consent status",
        "tags": [
          "Consents"
        ]
      }
    },
    "/users": {
      "get": {
        "description": "Find a user by externalId. Returns 404 if not found.",
        "operationId": "findUserByExternalId",
        "parameters": [
          {
            "in": "query",
            "name": "externalId",
            "required": true,
            "schema": {
              "maxLength": 255,
              "minLength": 0,
              "type": "string"
            }
          },
          {
            "description": "The API version to use, as YYYY-MM-DD. Must match the version of the endpoint you are targeting. A request without it, or with a version older than the client's minimum API version, is served by the client's minimum API version.",
            "example": "2026-04-01",
            "in": "header",
            "name": "Insurely-Version",
            "required": true,
            "schema": {
              "enum": [
                "2026-04-01"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "examples": {
                  "user": {
                    "$ref": "#/components/examples/findUserByExternalId-200-user"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/UserResponse"
                }
              }
            },
            "description": "User found."
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-400"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing or blank externalId."
          },
          "401": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-401"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Invalid or missing API key."
          },
          "404": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-404"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "User not found."
          }
        },
        "security": [
          {
            "authorization-token": []
          }
        ],
        "summary": "Find user by externalId",
        "tags": [
          "User"
        ]
      },
      "post": {
        "description": "Create a new user with the given externalId.",
        "operationId": "createUser",
        "parameters": [
          {
            "description": "The API version to use, as YYYY-MM-DD. Must match the version of the endpoint you are targeting. A request without it, or with a version older than the client's minimum API version, is served by the client's minimum API version.",
            "example": "2026-04-01",
            "in": "header",
            "name": "Insurely-Version",
            "required": true,
            "schema": {
              "enum": [
                "2026-04-01"
              ],
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "examples": {
                "create-user": {
                  "$ref": "#/components/examples/createUser-request-create-user"
                }
              },
              "schema": {
                "$ref": "#/components/schemas/CreateUserRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "examples": {
                  "user": {
                    "$ref": "#/components/examples/createUser-201-user"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/UserResponse"
                }
              }
            },
            "description": "User successfully created."
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-400"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Invalid request. Missing or blank externalId."
          },
          "401": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-401"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Invalid or missing API key."
          },
          "409": {
            "description": "User with the same externalId already exists for this client."
          }
        },
        "security": [
          {
            "authorization-token": []
          }
        ],
        "summary": "Create user",
        "tags": [
          "User"
        ]
      }
    },
    "/users/{id}/collections": {
      "get": {
        "description": "Returns all collections for the specified user within the client scope. Intended for backend-to-backend use with API key authentication.",
        "operationId": "getCollectionsByUser",
        "parameters": [
          {
            "description": "The UUID of the user",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "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": "The API version to use, as YYYY-MM-DD. Must match the version of the endpoint you are targeting. A request without it, or with a version older than the client's minimum API version, is served by the client's minimum API version.",
            "example": "2026-04-01",
            "in": "header",
            "name": "Insurely-Version",
            "required": true,
            "schema": {
              "enum": [
                "2026-04-01"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "examples": {
                  "collections": {
                    "$ref": "#/components/examples/getCollectionsByUser-200-collections"
                  }
                },
                "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 API key."
          },
          "404": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-404"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "User not found."
          }
        },
        "security": [
          {
            "authorization-token": []
          }
        ],
        "summary": "Get collections by user ID",
        "tags": [
          "Data Collection"
        ]
      }
    },
    "/users/{id}/consents": {
      "get": {
        "description": "Returns all consents for the specified user within the client scope. Intended for backend-to-backend use with API key authentication.",
        "operationId": "getConsentsByUser",
        "parameters": [
          {
            "description": "The UUID of the user",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The API version to use, as YYYY-MM-DD. Must match the version of the endpoint you are targeting. A request without it, or with a version older than the client's minimum API version, is served by the client's minimum API version.",
            "example": "2026-04-01",
            "in": "header",
            "name": "Insurely-Version",
            "required": true,
            "schema": {
              "enum": [
                "2026-04-01"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "examples": {
                  "consents": {
                    "$ref": "#/components/examples/getConsentsByUser-200-consents"
                  }
                },
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Consent"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Consents retrieved successfully."
          },
          "401": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-401"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Invalid or missing API key."
          },
          "404": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-404"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "User not found."
          }
        },
        "security": [
          {
            "authorization-token": []
          }
        ],
        "summary": "Get consents by user ID",
        "tags": [
          "Consents"
        ]
      }
    },
    "/users/{userUuid}": {
      "delete": {
        "description": "Anonymize a user (soft delete). Sets externalId to null and marks user as anonymized.",
        "operationId": "deleteUser",
        "parameters": [
          {
            "in": "path",
            "name": "userUuid",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The API version to use, as YYYY-MM-DD. Must match the version of the endpoint you are targeting. A request without it, or with a version older than the client's minimum API version, is served by the client's minimum API version.",
            "example": "2026-04-01",
            "in": "header",
            "name": "Insurely-Version",
            "required": true,
            "schema": {
              "enum": [
                "2026-04-01"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "User successfully deleted."
          },
          "401": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-401"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Invalid or missing API key."
          },
          "404": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-404"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "User not found."
          }
        },
        "security": [
          {
            "authorization-token": []
          }
        ],
        "summary": "Delete user",
        "tags": [
          "User"
        ]
      },
      "get": {
        "description": "Get a user by userUuid. With API key, any user within client scope can be accessed. With JWT, only the authenticated user's own profile can be accessed.",
        "operationId": "getUser",
        "parameters": [
          {
            "in": "path",
            "name": "userUuid",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The API version to use, as YYYY-MM-DD. Must match the version of the endpoint you are targeting. A request without it, or with a version older than the client's minimum API version, is served by the client's minimum API version.",
            "example": "2026-04-01",
            "in": "header",
            "name": "Insurely-Version",
            "required": true,
            "schema": {
              "enum": [
                "2026-04-01"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "examples": {
                  "user": {
                    "$ref": "#/components/examples/getUser-200-user"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/UserResponse"
                }
              }
            },
            "description": "User found."
          },
          "401": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-401"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Invalid or missing credentials."
          },
          "404": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-404"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "User not found or not accessible."
          }
        },
        "security": [
          {
            "authorization-token": []
          },
          {
            "jwt-token": []
          }
        ],
        "summary": "Get user",
        "tags": [
          "User"
        ]
      }
    },
    "/users/{userUuid}/sessions": {
      "post": {
        "description": "Create a JWT session token for the user.",
        "operationId": "createSession",
        "parameters": [
          {
            "in": "path",
            "name": "userUuid",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The API version to use, as YYYY-MM-DD. Must match the version of the endpoint you are targeting. A request without it, or with a version older than the client's minimum API version, is served by the client's minimum API version.",
            "example": "2026-04-01",
            "in": "header",
            "name": "Insurely-Version",
            "required": true,
            "schema": {
              "enum": [
                "2026-04-01"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "examples": {
                  "session": {
                    "$ref": "#/components/examples/createSession-201-session"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/SessionResponse"
                }
              }
            },
            "description": "Session successfully created."
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-400"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "User has no externalId."
          },
          "401": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-401"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Invalid or missing API key."
          },
          "404": {
            "content": {
              "application/json": {
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/standard-error-404"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "User not found."
          }
        },
        "security": [
          {
            "authorization-token": []
          }
        ],
        "summary": "Create session",
        "tags": [
          "User"
        ]
      }
    }
  },
  "servers": [
    {
      "description": "Production",
      "url": "https://api.insurely.com"
    },
    {
      "description": "Test",
      "url": "https://api.test.insurely.com"
    }
  ],
  "tags": [
    {
      "description": "Provides statuses of companies available for data collection",
      "name": "Company"
    },
    {
      "description": "Create and manage PSD2_AIS (Account Information Service) consents for authenticated external users. Note: PSD2_PIS (Payment Initiation Service) is out of scope.",
      "name": "Consents"
    },
    {
      "description": "Initiate a collection of wealth or insurance data, see the status and send additional information.",
      "name": "Data Collection"
    },
    {
      "description": "Create, retrieve, and manage users.",
      "name": "User"
    }
  ]
}