{
  "components": {
    "schemas": {
      "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"
        ]
      },
      "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"
          }
        }
      },
      "CollectionRequestFilter": {
        "properties": {
          "rules": {
            "items": {
              "$ref": "#/components/schemas/CollectionRequestFilterRule"
            },
            "type": "array",
            "uniqueItems": true
          }
        }
      },
      "CollectionRequestFilterRule": {
        "properties": {
          "field": {
            "enum": [
              "registrationNo"
            ],
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        }
      },
      "CollectionRequestV5": {
        "discriminator": {
          "propertyName": "api"
        },
        "properties": {
          "company": {
            "description": "The name of the company to trigger the collection from",
            "example": "fr-info-retraite",
            "type": "string"
          },
          "consents": {
            "description": "A set of consents provided by the end user.",
            "items": {
              "$ref": "#/components/schemas/ConsentRequestInput"
            },
            "type": "array",
            "uniqueItems": true
          },
          "filter": {
            "$ref": "#/components/schemas/CollectionRequestFilter"
          },
          "input": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Key-value object specifying additional input required for the collection. What values should be included depends on context.",
            "example": {
              "USERNAME": "123419206",
              "PASSWORD": "123123122"
            },
            "type": "object"
          },
          "loginMethod": {
            "description": "Login method that will be used to authenticate the user. Available login methods for a company is specified in the `/companies/availability` response.",
            "enum": [
              "FRENCH_TRUST_ME",
              "FRENCH_IMPOTS_GOUV",
              "AUTHENTICATION_APP_URL"
            ],
            "example": "FRENCH_TRUST_ME",
            "type": "string"
          }
        }
      },
      "CollectionStatusInformationMap": {
        "description": "Possible extra information returned for a collection status",
        "discriminator": {
          "propertyName": "api"
        },
        "properties": {
          "ACCESS_TOKEN": {
            "description": "Access token to call get-data. Returned when data collection is initiated by client-id.",
            "type": "string"
          },
          "AUTHENTICATION_APP_URL": {
            "description": "A url to trigger authentication apps.",
            "example": "https://banklogin.com/challenge?id=bc453568-1e63-432c-9957-ae2fc6acb826",
            "type": "string"
          },
          "QR_CODE_DATA": {
            "description": "A base64 encoded QR-code.",
            "example": "R0lGODdhtAC0AIAAAAAAAP///ywAAALg==Lg==",
            "type": "string"
          },
          "AVAILABLE_TWO_FACTOR_METHODS": {
            "description": "Available 2FA methods for this collection.",
            "items": {
              "$ref": "#/components/schemas/TwoFactorOption"
            },
            "type": "array"
          },
          "FRENCH_AUTHENTICATION_APP_URL": {
            "description": "A url to trigger french authentication apps.",
            "example": "https://app.trustmeid.io/transaction/0.1?transaction=bc453568-1e63-432c-9957-ae2fc6acb825&brand=FranceConnect",
            "type": "string"
          },
          "FRENCH_AUTHENTICATION_APP_QR_CODE": {
            "description": "A base64 encoded QR-code.",
            "example": "R0lGODdhtAC0AIAAAAAAAP///ywAAALg==Lg==",
            "type": "string"
          },
          "RESEND_CODE_THRESHOLD_SECONDS": {
            "description": "Number of seconds to wait before showing the resend 2FA code option. Null if resend is not available.",
            "format": "int32",
            "type": "integer"
          },
          "TWO_FACTOR_AUTHENTICATION_INSTRUCTION": {
            "$ref": "#/components/schemas/TwoFactorAuthenticationInstruction"
          },
          "REQUIRED_INPUT_TYPES": {
            "description": "Input that needs to be provided for the collection process to continue.",
            "example": "EMAIL",
            "items": {
              "description": "Type of input.",
              "enum": [
                "EMAIL",
                "LOGIN_METHOD",
                "PASSWORD",
                "POSTCODE",
                "REGION",
                "USERNAME"
              ],
              "example": "USERNAME",
              "type": "string"
            },
            "type": "array"
          }
        },
        "title": "CollectionStatusInformation"
      },
      "CollectionStatusV5": {
        "discriminator": {
          "propertyName": "api"
        },
        "properties": {
          "company": {
            "description": "Company that this collection is from",
            "example": "fr-info-retraite",
            "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": {
              "FRENCH_AUTHENTICATION_APP_QR_CODE": "iVBORw0KGgoAA==",
              "FRENCH_AUTHENTICATION_APP_URL": "https://app.trustmeid.io/transaction/0.1?transaction=bc453568-1e63-432c-9957-ae2fc6acb825&brand=FranceConnect"
            }
          },
          "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",
              "TWO_FACTOR_PENDING",
              "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"
            ],
            "example": "RUNNING",
            "type": "string"
          }
        },
        "required": [
          "company",
          "id",
          "status"
        ],
        "title": "CollectionStatus"
      },
      "CompanyAvailability": {
        "discriminator": {
          "propertyName": "api"
        },
        "properties": {
          "additionalLoginInputs": {
            "description": "Additional input for login step.",
            "items": {
              "$ref": "#/components/schemas/AdditionalLoginInput"
            },
            "type": "array",
            "uniqueItems": true
          },
          "company": {
            "description": "Name of the company.",
            "example": "fr-info-retraite",
            "type": "string"
          },
          "companyAndLineOfBusinesses": {
            "description": "Available company and line of business for insurance pdf upload.",
            "items": {
              "type": "string"
            },
            "type": "array",
            "uniqueItems": true
          },
          "companyDisplayName": {
            "description": "Company display name, for displaying to users.",
            "example": "Info Retraite",
            "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"
          },
          "notifications": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Company-specific notifications configuration",
            "example": "{'LOADING_SCREEN': 'SIGNIN_WARNING'}",
            "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": [
                "FRENCH_TRUST_ME",
                "FRENCH_IMPOTS_GOUV",
                "AUTHENTICATION_APP_URL"
              ],
              "type": "string"
            },
            "type": "array",
            "uniqueItems": true
          },
          "nonFunctionalLoginMethods": {
            "description": "Disabled login methods for the company.",
            "example": "USERNAME_AND_PASSWORD",
            "items": {
              "enum": [
                "FRENCH_TRUST_ME",
                "FRENCH_IMPOTS_GOUV",
                "AUTHENTICATION_APP_URL"
              ],
              "type": "string"
            },
            "type": "array",
            "uniqueItems": true
          },
          "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. Once taken out of BETA\nit cannot be set to BETA again.\n",
            "enum": [
              "OK",
              "BETA",
              "NOT_IMPLEMENTED"
            ],
            "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"
          },
          "availableCoverageScopes": {
            "description": "Set of available coverage types and subtypes for this company",
            "example": [
              {
                "insuranceType": "VEHICLE_INSURANCE",
                "insuranceSubType": "CAR_INSURANCE"
              }
            ],
            "items": {
              "$ref": "#/components/schemas/InsuranceTypeAndSubtype"
            },
            "type": "array",
            "uniqueItems": true
          }
        },
        "required": [
          "additionalLoginInputs",
          "availableCoverageScopes",
          "company",
          "companyAndLineOfBusinesses",
          "companyDisplayName",
          "consentRequirements",
          "functional",
          "loginMethods",
          "nonFunctionalLoginMethods",
          "status",
          "supportsPreheating"
        ]
      },
      "CompanyLoginConfig": {
        "properties": {
          "passwordFieldPlaceholder": {
            "enum": [
              "PASSWORD",
              "SECRET_CODE",
              "MEMBERSHIP_NUMBER",
              "PIN_OR_PASSWORD"
            ],
            "type": "string"
          },
          "passwordLabel": {
            "enum": [
              "PASSWORD",
              "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"
          }
        }
      },
      "ConsentRequestInput": {
        "description": "Represents a specific consent provided by the end user.",
        "properties": {
          "type": {
            "description": "The type of consent.",
            "enum": [
              "TRADE_UNION_MEMBERSHIP"
            ],
            "example": "TRADE_UNION_MEMBERSHIP",
            "type": "string"
          }
        },
        "required": [
          "type"
        ]
      },
      "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"
        ]
      },
      "ContactFormInput": {
        "description": "Input values for requested contact form input types.",
        "discriminator": {
          "propertyName": "api"
        },
        "properties": {
          "input": {
            "description": "The value returned for the corresponding input type.",
            "example": "test@gmail.com",
            "type": "string"
          },
          "inputType": {
            "description": "Types used in contact form input.",
            "enum": [
              "EMAIL",
              "MOBILE_PHONE_NUMBER"
            ],
            "example": "EMAIL",
            "type": "string"
          }
        },
        "required": [
          "input",
          "inputType"
        ]
      },
      "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"
          }
        }
      },
      "FinancialProduct": {
        "description": "Details of financial products such as pensions and investments accounts.",
        "discriminator": {
          "mapping": {
            "child-1": "#/components/schemas/FrenchPension",
            "child-3": "#/components/schemas/LifeInsurance",
            "child-5": "#/components/schemas/FrenchPublicPension",
            "child-6": "#/components/schemas/FrenchInvestment",
            "child-7": "#/components/schemas/FrenchCareerStatement",
            "child-8": "#/components/schemas/FrenchLivret"
          },
          "propertyName": "financial product type"
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/FrenchPension"
          },
          {
            "$ref": "#/components/schemas/LifeInsurance"
          },
          {
            "$ref": "#/components/schemas/FrenchPublicPension"
          },
          {
            "$ref": "#/components/schemas/FrenchInvestment"
          },
          {
            "$ref": "#/components/schemas/FrenchCareerStatement"
          },
          {
            "$ref": "#/components/schemas/FrenchLivret"
          }
        ],
        "properties": {
          "company": {
            "description": "  Company where the financial product has been collected from.\n",
            "example": "fr-info-retraite",
            "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": [
              "FRENCH_PENSION",
              "LIFE_INSURANCE",
              "FRENCH_INVESTMENT",
              "FRENCH_PUBLIC_PENSION",
              "LIVRET",
              "FRENCH_CAREER_STATEMENT"
            ],
            "example": "FRENCH_PENSION",
            "type": "string"
          }
        },
        "title": "Financial Product"
      },
      "French.Holder": {
        "description": "Holder of the pension",
        "properties": {
          "name": {
            "description": "Name of the pension holder",
            "type": "string"
          },
          "organization": {
            "$ref": "#/components/schemas/French.Organization",
            "description": "Information about the holder organization"
          }
        }
      },
      "Wealth.Holding": {
        "properties": {
          "acquisitionValue": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "The total cost incurred to acquire an asset."
          },
          "feeVariable": {
            "description": "Yearly variable fee based on the value of the holding.",
            "example": 0.0015,
            "format": "double",
            "type": "number"
          },
          "isin": {
            "description": "ISIN code of the holding.",
            "example": "FR0005188836",
            "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": "AMUNDI ETF CAC 40",
            "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",
              "FUND_EURO",
              "UNKNOWN"
            ],
            "example": "EQUITY",
            "type": "string"
          },
          "value": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Current valuation of the holding, calculated as the product of unit price and quantity."
          }
        },
        "title": "Holding"
      },
      "WealthProductTypeAvailability": {
        "properties": {
          "collectionSupported": {
            "type": "boolean"
          },
          "confirmedAtCompany": {
            "type": "boolean"
          },
          "productType": {
            "enum": [
              "FRENCH_PENSION",
              "FRENCH_INVESTMENT",
              "LIFE_INSURANCE",
              "FRENCH_PUBLIC_PENSION",
              "LIVRET",
              "FRENCH_CAREER_STATEMENT"
            ],
            "type": "string"
          }
        }
      },
      "French.Holding": {
        "description": "Holdings that make up the pension.",
        "properties": {
          "isin": {
            "description": "ISIN of the holding.",
            "type": "string"
          },
          "name": {
            "description": "Name of the holding.",
            "type": "string"
          },
          "value": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Current valuation of the holding."
          },
          "acquisitionValue": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Acquisition valuation of the holding."
          },
          "changeValue": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Change valuation of the holding."
          },
          "shareCount": {
            "description": "Share count of the holding.",
            "type": "number"
          },
          "variableFee": {
            "description": "Variable fee of the holding.",
            "type": "number"
          },
          "srri": {
            "description": "SRRI of the holding.",
            "type": "number"
          }
        }
      },
      "French.FrenchHolding": {
        "description": "Holdings that make up the wealth product (French version).",
        "properties": {
          "type": {
            "description": "Type of the holding.",
            "enum": [
              "ETF",
              "EQUITY",
              "FUND",
              "FUND_EURO",
              "UNKNOWN"
            ],
            "example": "EQUITY",
            "type": "string"
          },
          "isin": {
            "description": "ISIN code of the holding.",
            "example": "FR0005188836",
            "type": "string"
          },
          "name": {
            "description": "Name of the holding.",
            "example": "AMUNDI ETF CAC 40",
            "type": "string"
          },
          "quantity": {
            "description": "Quantity of the asset held.",
            "example": 123.43,
            "format": "double",
            "type": "number"
          },
          "value": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Current valuation of the holding."
          },
          "changeValue": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Change valuation of the holding."
          },
          "acquisitionValue": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Acquisition valuation of the holding."
          },
          "srri": {
            "description": "SRRI of the holding.",
            "type": "number"
          }
        }
      },
      "French.Insurance": {
        "description": "Details about the insured person",
        "properties": {
          "insuredPersonName": {
            "description": "Name of the insured person.",
            "example": "Juliette DUPONT GIRARD",
            "type": "string"
          }
        }
      },
      "French.Organization": {
        "description": "Organization information",
        "properties": {
          "name": {
            "description": "Name of the organization",
            "example": "GE DIGITAL SERVICES EUROPE",
            "type": "string"
          }
        }
      },
      "French.AccountInformation": {
        "description": "Account details such as available balance and interest rate.",
        "properties": {
          "cashValue": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Available cash balance in the account."
          },
          "interestRate": {
            "description": "Interest rate of the account. Percentage [0...1]",
            "example": 0.0375,
            "format": "double",
            "type": "number"
          },
          "cashAccountNumber": {
            "description": "Number of the cash account.",
            "example": "123456789",
            "type": "string"
          }
        }
      },
      "French.PayoutDetail": {
        "description": "Details about the payout.",
        "properties": {
          "description": {
            "description": "Descriptive text for the payout.",
            "example": "A compter de la date de départ à la retraite.",
            "type": "string"
          }
        }
      },
      "French.ProductFinancialInformation": {
        "description": "Information about the financial product",
        "properties": {
          "currentValue": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Current value of the assets in the financial product."
          },
          "currentValueFormula": {
            "description": "Current value as a formula of the assets in the financial product.",
            "type": "string"
          },
          "changeValue": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Change value of the assets in the financial product."
          }
        }
      },
      "FrenchFullAddress": {
        "description": "Full address",
        "properties": {
          "fullAddress": {
            "description": "Full address of the company",
            "example": "CREDIT AGRICOLE ASSURANCES RETRAITE, TSA 76005, 26906 VALENCE CEDEX 9, FRANCE",
            "type": "string"
          }
        }
      },
      "FrenchHoldingCompany": {
        "description": "Information about the company holding the pension",
        "properties": {
          "address": {
            "$ref": "#/components/schemas/FrenchFullAddress",
            "description": "Address to the company"
          },
          "email": {
            "description": "Contact email",
            "example": "contact@company.fr",
            "type": "string"
          },
          "name": {
            "description": "Name of the holding company",
            "example": "CREDIT AGRICOLE ASSURANCES RETRAITE",
            "type": "string"
          },
          "phoneNumber": {
            "description": "Contact phone number",
            "example": "0437470034",
            "type": "string"
          }
        }
      },
      "FrenchInvestment": {
        "description": "French Investment Account",
        "discriminator": {
          "mapping": {
            "parent": "#/components/schemas/FinancialProduct"
          },
          "propertyName": "market"
        },
        "example": {
          "accountInformation": {
            "cashValue": {
              "amount": 4514.27,
              "currency": "EUR"
            },
            "interestRate": 0.0025,
            "cashAccountNumber": "FR1234567"
          },
          "company": "fr-hello-bank",
          "companyDisplayName": "Hello Bank",
          "financialInformation": {
            "currentValue": {
              "amount": 26982.66,
              "currency": "EUR"
            }
          },
          "changeValue": {
            "currency": "EUR",
            "amount": 150.25
          },
          "holder": {
            "name": "Jean Dupont"
          },
          "holdings": [
            {
              "isin": "FR0010315770",
              "name": "AMUNDI ETF CAC 40",
              "quantity": 54.076858,
              "type": "FUND",
              "value": {
                "amount": 22468.39,
                "currency": "EUR"
              },
              "acquisitionValue": {
                "amount": 18883.51,
                "currency": "EUR"
              }
            }
          ],
          "transactions": [
            {
              "amount": {
                "amount": 10.32,
                "currency": "EUR"
              },
              "description": "Versement",
              "settlementDate": "2024-01-01",
              "type": "DEPOSIT"
            }
          ],
          "id": "df2e7a28-d871-45c1-a01e-515b7aeaf7da",
          "productName": "Mon Compte Epargne",
          "productNumber": "FR987654321",
          "classification": "COMPTE_TITRES",
          "type": "FRENCH_INVESTMENT"
        },
        "properties": {
          "classification": {
            "description": "Classification of the French investment account.",
            "enum": [
              "PEA",
              "PEA_PME",
              "PEA_ASSURANCE",
              "PEA_JEUNE",
              "COMPTE_TITRES",
              "UNKNOWN"
            ],
            "example": "COMPTE_TITRES",
            "type": "string"
          },
          "accountInformation": {
            "$ref": "#/components/schemas/French.AccountInformation",
            "description": "Account details such as available balance and interest rate."
          },
          "changeValue": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Change in value since previous period."
          },
          "company": {
            "description": "Company where the financial product has been collected from. Examples:\n`fr-hello-bank`.\n",
            "example": "fr-hello-bank",
            "type": "string"
          },
          "companyDisplayName": {
            "description": "Display name of the company for user-friendly presentation.",
            "example": "Hello Bank",
            "type": "string"
          },
          "financialInformation": {
            "$ref": "#/components/schemas/French.ProductFinancialInformation",
            "description": "Financial details of the product, like value, performance etc."
          },
          "holder": {
            "$ref": "#/components/schemas/French.Holder",
            "description": "Information about the owner of the financial product."
          },
          "holdings": {
            "description": "List of holdings within the financial product.",
            "items": {
              "$ref": "#/components/schemas/French.FrenchHolding"
            },
            "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"
          },
          "productName": {
            "description": "Name of the financial product.",
            "example": "Mon Compte Epargne",
            "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": "FR91231230-2",
            "type": "string"
          },
          "transactions": {
            "description": "Transaction history for the last 12 months.",
            "items": {
              "$ref": "#/components/schemas/Transaction"
            },
            "type": "array"
          },
          "startDate": {
            "description": "Contract start date (format YYYY-MM-DD)",
            "example": "2021-06-15",
            "type": "string"
          },
          "dataSource": {
            "description": "Indicates how the account data was obtained. AUTOMATIC means the data was collected via an aggregator connection. MANUAL means the account was added manually by the user. Defaults to AUTOMATIC.",
            "enum": [
              "AUTOMATIC",
              "MANUAL"
            ],
            "type": "string"
          },
          "type": {
            "description": "Type of the financial product.",
            "enum": [
              "FRENCH_INVESTMENT"
            ],
            "example": "FRENCH_INVESTMENT",
            "type": "string"
          }
        },
        "required": [
          "company",
          "companyDisplayName",
          "id",
          "type"
        ],
        "title": "FrenchInvestment"
      },
      "FrenchPension": {
        "description": "French Pension. Example: PER",
        "discriminator": {
          "mapping": {
            "parent": "#/components/schemas/FinancialProduct"
          },
          "propertyName": "market"
        },
        "example": {
          "classification": "PEROB",
          "company": "fr-info-retraite",
          "id": "b4c1ec96-182b-4533-98e1-7060d9643928",
          "financialInformation": {
            "currentValue": {
              "amount": 150,
              "currency": "EUR"
            },
            "currentValueFormula": "2497 Point(s) d'une valeur unitaire de 1,9076 €",
            "changeValue": {
              "amount": 15,
              "currency": "EUR"
            }
          },
          "holder": {
            "name": "test",
            "organization": {
              "name": "GE VERNOVA INTERNATIONAL LLC"
            }
          },
          "holdingCompany": {
            "address": {
              "fullAddress": "CREDIT AGRICOLE ASSURANCES RETRAITE, TSA 76005, 26906 VALENCE CEDEX 9, FRANCE"
            },
            "name": "CREDIT AGRICOLE ASSURANCES RETRAITE",
            "phoneNumber": "0437470034"
          },
          "holdings": [
            {
              "isin": "FR0010315770",
              "name": "AMUNDI ETF CAC 40",
              "quantity": 54.076858,
              "type": "FUND",
              "value": {
                "amount": 22468.39,
                "currency": "EUR"
              },
              "changeValue": {
                "amount": 100.39,
                "currency": "EUR"
              },
              "acquisitionValue": {
                "amount": 18883.51,
                "currency": "EUR"
              },
              "srri": 4
            }
          ],
          "transactions": [
            {
              "amount": {
                "amount": 10.32,
                "currency": "EUR"
              },
              "description": "Versement",
              "settlementDate": "2024-01-01",
              "type": "DEPOSIT"
            }
          ],
          "insurance": {
            "insuredPersonName": "Juliette DUPONT GIRARD"
          },
          "payoutDetails": [
            {
              "description": "A compter de la date de départ à la retraite."
            }
          ],
          "productName": "Plan Epargne Retraite Obligatoire - loi Pacte",
          "productNumber": "PRM00321-1131",
          "startDate": "2021-06-15",
          "type": "FRENCH_PENSION",
          "updateDate": "2024-04-18",
          "managementMode": "HYBRIDE",
          "contractType": "INDIVIDUAL",
          "activeAdditionalContributions": false
        },
        "properties": {
          "classification": {
            "description": "Classification of the pension.",
            "enum": [
              "PERIN",
              "PEROB",
              "PERECO",
              "PERCO",
              "PERP",
              "PREFON",
              "ARTICLE83",
              "MADELIN",
              "GENERIC"
            ],
            "example": "PERIN",
            "type": "string"
          },
          "company": {
            "description": "Company where the financial product has been collected from. Examples:\n`fr-info-retraite`\n",
            "example": "fr-info-retraite",
            "type": "string"
          },
          "companyDisplayName": {
            "description": "Display name of the company for user-friendly presentation.",
            "example": "Company",
            "type": "string"
          },
          "productName": {
            "type": "string"
          },
          "productNumber": {
            "type": "string"
          },
          "holder": {
            "$ref": "#/components/schemas/French.Holder"
          },
          "insurance": {
            "$ref": "#/components/schemas/French.Insurance"
          },
          "startDate": {
            "type": "string"
          },
          "dataSource": {
            "description": "Indicates how the account data was obtained. AUTOMATIC means the data was collected via an aggregator connection. MANUAL means the account was added manually by the user. Defaults to AUTOMATIC.",
            "enum": [
              "AUTOMATIC",
              "MANUAL"
            ],
            "type": "string"
          },
          "updateDate": {
            "type": "string",
            "description": "Date when value was last updated (format YYYY-MM-DD)",
            "example": "2021-06-15"
          },
          "payoutDetails": {
            "items": {
              "$ref": "#/components/schemas/French.PayoutDetail"
            },
            "type": "array"
          },
          "financialInformation": {
            "$ref": "#/components/schemas/French.ProductFinancialInformation"
          },
          "holdings": {
            "items": {
              "$ref": "#/components/schemas/French.FrenchHolding"
            },
            "type": "array"
          },
          "holdingCompany": {
            "$ref": "#/components/schemas/FrenchHoldingCompany"
          },
          "managementMode": {
            "description": "Management mode of the pension.",
            "enum": [
              "HYBRIDE",
              "LIBRE",
              "PILOTE"
            ],
            "example": "HYBRIDE",
            "type": "string"
          },
          "contractType": {
            "description": "Whether the pension contract is held individually by the policy holder or as part of a collective (employer-sponsored) plan.",
            "enum": [
              "INDIVIDUAL",
              "COLLECTIVE"
            ],
            "example": "INDIVIDUAL",
            "type": "string"
          },
          "activeAdditionalContributions": {
            "type": "boolean"
          },
          "transactions": {
            "description": "Transaction history for the last 12 months.",
            "items": {
              "$ref": "#/components/schemas/Transaction"
            },
            "type": "array"
          },
          "id": {
            "type": "string"
          },
          "type": {
            "description": "Type of the financial product.",
            "enum": [
              "FRENCH_PENSION"
            ],
            "example": "FRENCH_PENSION",
            "type": "string"
          }
        },
        "title": "French Pension"
      },
      "Document": {
        "description": "Reference to the career statement PDF.",
        "properties": {
          "id": {
            "description": "Id of the career statement PDF. Pass it as `documentId` to `GET /wealth/collection/{collectionId}/document/{documentId}` to download the PDF.",
            "example": "b4c1ec96-182b-4533-98e1-7060d9643928",
            "type": "string"
          }
        }
      },
      "FrenchCareerStatement": {
        "description": "The end user's official career history, as issued by info-retraite, delivered as the original PDF (in French). It shows employers, reported income per year, validated quarters, and the pension schemes contributed to. Insurely does not extract structured data from it. For structured public pension entitlements, see `FrenchPublicPension`.\n\n**How to get it**\n\n1. Call `GET /wealth/collection/{collectionId}/data`, which returns a `FrenchCareerStatement`. When the PDF is available, it carries a `document.id`; otherwise `document` is absent.\n2. Pass that id to `GET /wealth/collection/{collectionId}/document/{documentId}` to download the PDF.\n\n**Source:** `fr-info-retraite` only. Fetched automatically during the collection; the end user does not upload anything. Available for download for your configured process data retention period.\n\n**Typical uses:** pension advice, retirement gap analysis, onboarding KYC.\n",
        "discriminator": {
          "mapping": {
            "parent": "#/components/schemas/FinancialProduct"
          },
          "propertyName": "market"
        },
        "example": {
          "company": "fr-info-retraite",
          "companyDisplayName": "Info Retraite",
          "document": {
            "id": "b4c1ec96-182b-4533-98e1-7060d9643928"
          },
          "id": "df2e7a28-d871-45c1-a01e-515b7aeaf7da",
          "productNumber": "1234567890",
          "type": "FRENCH_CAREER_STATEMENT"
        },
        "properties": {
          "company": {
            "description": "Company where the financial product has been collected from.",
            "example": "fr-info-retraite",
            "type": "string"
          },
          "companyDisplayName": {
            "description": "Display name of the company for user-friendly presentation.",
            "example": "Info Retraite",
            "type": "string"
          },
          "document": {
            "$ref": "#/components/schemas/Document",
            "description": "Reference to the PDF. Download it from the document endpoint using this id."
          },
          "id": {
            "type": "string"
          },
          "productNumber": {
            "description": "Info-retraite's identifier for the statement. Not needed to download the PDF.",
            "example": "1234567890",
            "type": "string"
          },
          "type": {
            "description": "Type of the financial product.",
            "enum": [
              "FRENCH_CAREER_STATEMENT"
            ],
            "example": "FRENCH_CAREER_STATEMENT",
            "type": "string"
          }
        },
        "title": "French Career Statement (relevé de carrière)"
      },
      "FrenchPublicPension": {
        "description": "French public pension data from info-retraite",
        "discriminator": {
          "mapping": {
            "parent": "#/components/schemas/FinancialProduct"
          },
          "propertyName": "market"
        },
        "example": {
          "company": "fr-info-retraite",
          "companyDisplayName": "Info Retraite",
          "departureAge": 62,
          "departureDate": "2030-01-01",
          "registeredQuarters": 168,
          "grossMonthlyAmount": {
            "currency": "EUR",
            "amount": 1500
          },
          "policyHolder": {
            "name": "Juliette DUPONT GIRARD"
          },
          "id": "b4c1ec96-182b-4533-98e1-7060d9643928",
          "type": "FRENCH_PUBLIC_PENSION"
        },
        "properties": {
          "company": {
            "description": "Company where the financial product has been collected from.",
            "example": "fr-info-retraite",
            "type": "string"
          },
          "companyDisplayName": {
            "description": "Display name of the company for user-friendly presentation.",
            "example": "Info Retraite",
            "type": "string"
          },
          "departureAge": {
            "description": "Age at which the pension holder is expected to retire.",
            "example": 62,
            "type": "integer"
          },
          "departureDate": {
            "description": "Expected retirement date (format YYYY-MM-DD).",
            "example": "2030-01-01",
            "type": "string"
          },
          "registeredQuarters": {
            "description": "Number of quarters registered for the pension.",
            "example": 168,
            "type": "integer"
          },
          "grossMonthlyAmount": {
            "$ref": "#/components/schemas/MonetaryAmount"
          },
          "policyHolder": {
            "$ref": "#/components/schemas/French.Holder"
          },
          "id": {
            "type": "string"
          },
          "type": {
            "description": "Type of the financial product.",
            "enum": [
              "FRENCH_PUBLIC_PENSION"
            ],
            "example": "FRENCH_PUBLIC_PENSION",
            "type": "string"
          }
        },
        "title": "French Public Pension"
      },
      "LifeInsurance": {
        "description": "French Life Insurance (Assurance Vie) Account",
        "properties": {
          "company": {
            "description": "Company where the financial product has been collected from. Examples:\n`fr-hello-bank`.\n",
            "example": "fr-hello-bank",
            "type": "string"
          },
          "companyDisplayName": {
            "description": "Display name of the company for user-friendly presentation.",
            "example": "Hello Bank",
            "type": "string"
          },
          "productName": {
            "description": "Name of the financial product.",
            "example": "Mon Assurance Vie",
            "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": "FR91231230-2",
            "type": "string"
          },
          "holder": {
            "$ref": "#/components/schemas/French.Holder",
            "description": "Information about the owner of the financial product."
          },
          "insurance": {
            "$ref": "#/components/schemas/French.Insurance",
            "description": "Details about the insured person."
          },
          "startDate": {
            "description": "Contract start date (format YYYY-MM-DD)",
            "example": "2021-06-15",
            "type": "string"
          },
          "dataSource": {
            "description": "Indicates how the account data was obtained. AUTOMATIC means the data was collected via an aggregator connection. MANUAL means the account was added manually by the user. Defaults to AUTOMATIC.",
            "enum": [
              "AUTOMATIC",
              "MANUAL"
            ],
            "type": "string"
          },
          "payoutDetails": {
            "description": "Details about the payout.",
            "items": {
              "$ref": "#/components/schemas/French.PayoutDetail"
            },
            "type": "array"
          },
          "financialInformation": {
            "$ref": "#/components/schemas/French.ProductFinancialInformation",
            "description": "Financial details of the product, like value and performance."
          },
          "holdings": {
            "description": "List of holdings within the financial product.",
            "items": {
              "$ref": "#/components/schemas/French.FrenchHolding"
            },
            "type": "array"
          },
          "holdingCompany": {
            "$ref": "#/components/schemas/FrenchHoldingCompany",
            "description": "Information about the company holding the life insurance."
          },
          "managementMode": {
            "description": "Management mode of the life insurance.",
            "enum": [
              "HYBRIDE",
              "LIBRE",
              "PILOTE"
            ],
            "example": "HYBRIDE",
            "type": "string"
          },
          "activeAdditionalContributions": {
            "description": "Whether additional contributions are currently active.",
            "type": "boolean"
          },
          "transactions": {
            "description": "Transaction history for the last 12 months.",
            "items": {
              "$ref": "#/components/schemas/Transaction"
            },
            "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"
          },
          "type": {
            "description": "Type of the financial product.",
            "enum": [
              "LIFE_INSURANCE"
            ],
            "example": "LIFE_INSURANCE",
            "type": "string"
          }
        },
        "required": [
          "company",
          "companyDisplayName",
          "id",
          "type"
        ],
        "title": "Life Insurance"
      },
      "Item": {
        "description": "The item object included in the `CollectionInput` for providing supplemental information",
        "properties": {
          "type": {
            "description": "The type of information provided",
            "enum": [
              "EMAIL",
              "LASTNAME",
              "LOGIN_METHOD",
              "PASSWORD",
              "POSTCODE",
              "REGION",
              "USERNAME"
            ],
            "example": "USERNAME",
            "type": "string"
          },
          "value": {
            "description": "The value for the corresponding type that is passed in for the item",
            "example": "abc@insurely.com",
            "type": "string"
          }
        },
        "required": [
          "value"
        ]
      },
      "InsuranceTypeAndSubtype": {
        "description": "Insurance type and subtype pair",
        "properties": {
          "insuranceType": {
            "description": "The main insurance type category",
            "example": "VEHICLE_INSURANCE",
            "type": "string"
          },
          "insuranceSubType": {
            "description": "The specific insurance subtype",
            "example": "CAR_INSURANCE",
            "type": "string"
          }
        },
        "required": [
          "insuranceType",
          "insuranceSubType"
        ]
      },
      "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"
      },
      "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"
        ]
      },
      "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"
      },
      "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"
            ],
            "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"
      },
      "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"
          }
        }
      },
      "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": "Versement",
            "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"
          }
        },
        "required": [
          "amount",
          "type"
        ],
        "title": "DepositTransaction"
      },
      "BuyTransaction": {
        "description": "A buy transaction 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."
          },
          "description": {
            "description": "The description of the transaction.",
            "example": "Achat",
            "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": "BUY",
            "title": "TransactionType",
            "type": "string"
          }
        },
        "required": [
          "amount",
          "type"
        ],
        "title": "BuyTransaction"
      },
      "SellTransaction": {
        "description": "A sell transaction 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."
          },
          "description": {
            "description": "The description of the transaction.",
            "example": "Vente",
            "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": "SELL",
            "title": "TransactionType",
            "type": "string"
          }
        },
        "required": [
          "amount",
          "type"
        ],
        "title": "SellTransaction"
      },
      "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": "Retrait",
            "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"
          }
        },
        "required": [
          "amount",
          "type"
        ],
        "title": "WithdrawalTransaction"
      },
      "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": "Dividende",
            "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": "DIVIDEND",
            "title": "TransactionType",
            "type": "string"
          }
        },
        "required": [
          "amount",
          "type"
        ],
        "title": "DividendTransaction"
      },
      "FeeTransaction": {
        "description": "A fee charged 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": "Frais",
            "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"
          }
        },
        "required": [
          "amount",
          "type"
        ],
        "title": "FeeTransaction"
      },
      "InterestTransaction": {
        "description": "Interest earned 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": "Intérêts",
            "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"
          }
        },
        "required": [
          "amount",
          "type"
        ],
        "title": "InterestTransaction"
      },
      "OtherTransaction": {
        "description": "Other type of transaction",
        "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": "Autre",
            "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"
          }
        },
        "required": [
          "amount",
          "type"
        ],
        "title": "OtherTransaction"
      },
      "RedemptionTransaction": {
        "description": "A redemption transaction",
        "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": "Rachat",
            "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": "REDEMPTION",
            "title": "TransactionType",
            "type": "string"
          }
        },
        "required": [
          "amount",
          "type"
        ],
        "title": "RedemptionTransaction"
      },
      "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",
              "EMAIL",
              "PROFILE"
            ],
            "example": "APP",
            "type": "string"
          },
          "uuid": {
            "description": "uuid for this option",
            "example": "7fbc80f0-870b-4d94-8a31-baf683780b79",
            "type": "string"
          }
        }
      },
      "FrenchLivret": {
        "description": "French Livret (regulated savings account)",
        "discriminator": {
          "mapping": {
            "parent": "#/components/schemas/FinancialProduct"
          },
          "propertyName": "market"
        },
        "example": {
          "classification": "LIVRET_A",
          "company": "fr-hellobank",
          "companyDisplayName": "hellobank",
          "currentValue": {
            "amount": 25455,
            "currency": "EUR"
          },
          "deposit": {
            "amount": {
              "amount": 22950,
              "currency": "EUR"
            }
          },
          "holder": {
            "name": "Jean Dupont"
          },
          "id": "6a7c135e-3a56-44ae-bc53-1d0d5321f552",
          "interest": {
            "effectiveRate": 0.025,
            "rateConditionRanges": [
              {
                "maxAmount": {
                  "amount": 22950,
                  "currency": "EUR"
                }
              }
            ]
          },
          "productName": "Livret A",
          "productNumber": "1234567890",
          "transactions": [
            {
              "amount": {
                "amount": 1000,
                "currency": "EUR"
              },
              "description": "Versement",
              "settlementDate": "2026-01-01",
              "type": "DEPOSIT"
            }
          ],
          "type": "LIVRET"
        },
        "properties": {
          "classification": {
            "description": "Classification of the French livret account.",
            "enum": [
              "LIVRET_A",
              "LDDS",
              "LEP",
              "CEL",
              "PEL",
              "COMPTE_SUR_LIVRET",
              "LIVRET_JEUNE",
              "UNKNOWN"
            ],
            "type": "string"
          },
          "company": {
            "description": "  Company where the livret has been collected from. Examples:\n  `fr-hellobank`, `fr-boursorama`, `fr-bred`, `fr-la-banque-postale`,\n  `fr-credit-agricole`, `fr-finary`.\n",
            "example": "fr-hellobank",
            "type": "string"
          },
          "companyDisplayName": {
            "description": "Display name of the company for user-friendly presentation.",
            "example": "hellobank",
            "type": "string"
          },
          "currentValue": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Current value of the account"
          },
          "deposit": {
            "$ref": "#/components/schemas/FrenchLivretDeposit",
            "description": "Deposit information for the livret, representing the principal amount deposited, excluding accrued interest."
          },
          "holder": {
            "$ref": "#/components/schemas/French.Holder",
            "description": "Information about the owner of the livret account."
          },
          "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/FrenchLivretInterest",
            "description": "Interest information for the account"
          },
          "productName": {
            "description": "Name of the product",
            "example": "Livret A",
            "type": "string"
          },
          "productNumber": {
            "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"
          },
          "transactions": {
            "description": "Transaction history for the last 12 months.",
            "items": {
              "$ref": "#/components/schemas/Transaction"
            },
            "type": "array"
          },
          "type": {
            "description": "Type of the financial product.",
            "enum": [
              "LIVRET"
            ],
            "example": "LIVRET",
            "type": "string"
          }
        },
        "required": [
          "company",
          "companyDisplayName",
          "id",
          "type"
        ],
        "title": "FrenchLivret",
        "x-tag": "Financial Product Type"
      },
      "FrenchLivretDeposit": {
        "description": "Deposit information for the livret, representing the principal amount deposited, excluding accrued interest.",
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Deposit amount"
          }
        }
      },
      "FrenchLivretInterest": {
        "description": "Interest information for a French livret account",
        "properties": {
          "effectiveRate": {
            "description": "Effective interest rate",
            "example": 0.025,
            "format": "double",
            "type": "number"
          },
          "rateConditionRanges": {
            "description": "Interest rate ranges based on amount",
            "items": {
              "$ref": "#/components/schemas/FrenchLivretInterestConditionRange"
            },
            "type": "array"
          }
        }
      },
      "FrenchLivretInterestConditionRange": {
        "description": "Interest condition range for a French livret account",
        "properties": {
          "maxAmount": {
            "$ref": "#/components/schemas/MonetaryAmount",
            "description": "Maximum amount for this range",
            "example": 22950
          }
        }
      }
    }
  },
  "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": "2025-01-01"
  },
  "openapi": "3.1.0",
  "paths": {
    "/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": [
          {
            "in": "header",
            "name": "Insurely-Version",
            "schema": {
              "enum": [
                "2025-01-01"
              ],
              "type": "string"
            },
            "description": "Specifies the API version to use. Must match the version of the endpoint you are targeting."
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/hal+json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/CompanyAvailability"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful request."
          },
          "429": {
            "description": "Too many requests. Please retry with backoff."
          }
        },
        "summary": "List of available companies and their statuses",
        "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": [
          {
            "in": "header",
            "name": "Insurely-Version",
            "schema": {
              "enum": [
                "2025-01-01"
              ],
              "type": "string"
            },
            "description": "Specifies the API version to use. Must match the version of the endpoint you are targeting."
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "examples": {
                  "supported-products": {
                    "summary": "Per-company supported wealth product types",
                    "value": {
                      "companies": [
                        {
                          "company": "fr-bourso-bank",
                          "wealthProductTypes": [
                            {
                              "collectionSupported": true,
                              "confirmedAtCompany": true,
                              "productType": "FRENCH_INVESTMENT"
                            },
                            {
                              "collectionSupported": true,
                              "confirmedAtCompany": true,
                              "productType": "LIFE_INSURANCE"
                            }
                          ]
                        }
                      ]
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/CompanyProductsResponse"
                }
              }
            },
            "description": "Successful request."
          },
          "429": {
            "description": "Too many requests. Please retry with backoff."
          }
        },
        "summary": "Get the supported products per company",
        "tags": [
          "Company"
        ]
      }
    },
    "/wealth/collection": {
      "post": {
        "description": "Initiate a pension/investment data collection for a specific individual. Calling this will trigger the selected login method.",
        "operationId": "wealth-start-collection",
        "parameters": [
          {
            "in": "header",
            "name": "Insurely-Version",
            "schema": {
              "enum": [
                "2025-01-01"
              ],
              "type": "string"
            },
            "description": "Specifies the API version to use. Must match the version of the endpoint you are targeting."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CollectionRequestV5"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/hal+json": {
                "schema": {
                  "$ref": "#/components/schemas/CollectionStatusV5"
                }
              }
            },
            "description": "Data collection successfully initiated."
          },
          "400": {
            "description": "Invalid request (Possibly invalid personal number)."
          },
          "401": {
            "description": "Invalid authorization token or the token specified is not allowed to collect information from the specified company."
          },
          "403": {
            "description": "The client is not allowed to use this endpoint or resource."
          },
          "429": {
            "description": "Too many requests. Please retry with backoff."
          }
        },
        "summary": "Initiate wealth data collection",
        "tags": [
          "Wealth Data Collection"
        ]
      }
    },
    "/wealth/collection/{collectionId}": {
      "delete": {
        "description": "Deletes the collected data from a wealth collection.",
        "operationId": "collection-delete",
        "parameters": [
          {
            "in": "path",
            "name": "collectionId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Insurely-Version",
            "schema": {
              "enum": [
                "2025-01-01"
              ],
              "type": "string"
            },
            "description": "Specifies the API version to use. Must match the version of the endpoint you are targeting."
          }
        ],
        "responses": {
          "204": {
            "description": "Collection successfully deleted."
          },
          "401": {
            "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": {
            "description": "The client is not allowed to use this endpoint or resource."
          },
          "404": {
            "description": "No collection with that ID exists for this client."
          },
          "429": {
            "description": "Too many requests. Please retry with backoff."
          }
        },
        "summary": "Delete a data collection",
        "tags": [
          "Wealth Data Collection"
        ]
      }
    },
    "/wealth/collection/{collectionId}/add-contact-form-input": {
      "post": {
        "description": "Add required contact form input fields to a collection. The required input fields are sent as extraInformation in the status response message. The collection will have the status `CONTACT_FORM_PENDING` in this case.",
        "operationId": "wealth-add-contact-form-input",
        "parameters": [
          {
            "in": "path",
            "name": "collectionId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Insurely-Version",
            "schema": {
              "enum": [
                "2025-01-01"
              ],
              "type": "string"
            },
            "description": "Specifies the API version to use. Must match the version of the endpoint you are targeting."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "items": {
                  "$ref": "#/components/schemas/ContactFormInput"
                },
                "type": "array"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Contact form input successfully added"
          },
          "400": {
            "description": "If status is not `CONTACT_FORM_PENDING` or the provided `ContactFormInput` array doesn't contain all expected fields."
          },
          "401": {
            "description": "Invalid authorization token or the token specified is not allowed to add contact form input to the specified `collectionId`."
          },
          "403": {
            "description": "The client is not allowed to use this endpoint or resource."
          },
          "404": {
            "description": "No collection with that ID exists for this client."
          },
          "429": {
            "description": "Too many requests. Please retry with backoff."
          }
        },
        "summary": "Add contact form input to collection",
        "tags": [
          "Wealth Data Collection"
        ]
      }
    },
    "/wealth/collection/{collectionId}/data": {
      "get": {
        "operationId": "wealth-data",
        "parameters": [
          {
            "in": "path",
            "name": "collectionId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Insurely-Version",
            "schema": {
              "enum": [
                "2025-01-01"
              ],
              "type": "string"
            },
            "description": "Specifies the API version to use. Must match the version of the endpoint you are targeting."
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/hal+json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/FinancialProduct"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Pension data successfully fetched."
          },
          "401": {
            "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": {
            "description": "The client is not allowed to use this endpoint or resource."
          },
          "404": {
            "description": "No collection with that ID exists for this client, the collection has expired or there was no data to fetch."
          },
          "429": {
            "description": "Too many requests. Please retry with backoff."
          }
        },
        "summary": "Get the wealth data of a collection",
        "tags": [
          "Wealth Data Collection"
        ]
      }
    },
    "/wealth/collection/{collectionId}/document/{documentId}": {
      "get": {
        "description": "Fetches the PDF behind a document reference returned in the wealth data of a collection. The French career statement (relevé de carrière) carries such a reference: read document.id off the FRENCH_CAREER_STATEMENT product and pass it here as documentId.",
        "operationId": "wealth-document",
        "parameters": [
          {
            "in": "path",
            "name": "collectionId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Id of the document to fetch. Use the `document.id` value from a `FRENCH_CAREER_STATEMENT` financial product in the response of `GET /wealth/collection/{collectionId}/data`.",
            "example": "b4c1ec96-182b-4533-98e1-7060d9643928",
            "in": "path",
            "name": "documentId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Insurely-Version",
            "schema": {
              "enum": [
                "2025-01-01"
              ],
              "type": "string"
            },
            "description": "Specifies the API version to use. Must match the version of the endpoint you are targeting."
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/pdf": {}
            },
            "description": "Document successfully fetched."
          },
          "401": {
            "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": {
            "description": "The client is not allowed to use this endpoint or resource."
          },
          "404": {
            "description": "No collection with that ID exists for this client, the collection has expired, or no document with that ID exists."
          },
          "429": {
            "description": "Too many requests. Please retry with backoff."
          }
        },
        "summary": "Get a wealth collection document",
        "tags": [
          "Wealth Data Collection"
        ]
      }
    },
    "/wealth/collection/{collectionId}/status": {
      "get": {
        "description": "Returns the current status of an initiated collection of wealth data.",
        "operationId": "wealth-status",
        "parameters": [
          {
            "in": "path",
            "name": "collectionId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Insurely-Version",
            "schema": {
              "enum": [
                "2025-01-01"
              ],
              "type": "string"
            },
            "description": "Specifies the API version to use. Must match the version of the endpoint you are targeting."
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/hal+json": {
                "schema": {
                  "$ref": "#/components/schemas/CollectionStatusV5"
                }
              }
            },
            "description": "Status successfully fetched."
          },
          "401": {
            "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": {
            "description": "The client is not allowed to use this endpoint or resource."
          },
          "404": {
            "description": "No collection with that ID exists for this client, or the collection has expired."
          },
          "429": {
            "description": "Too many requests. Please retry with backoff."
          }
        },
        "summary": "Get the current status of a data collection",
        "tags": [
          "Wealth Data Collection"
        ]
      }
    },
    "/wealth/collection/{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": "wealth-supplement-information",
        "parameters": [
          {
            "in": "path",
            "name": "collectionId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Insurely-Version",
            "schema": {
              "enum": [
                "2025-01-01"
              ],
              "type": "string"
            },
            "description": "Specifies the API version to use. Must match the version of the endpoint you are targeting."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SupplementInformation"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Successfully added supplemental information."
          },
          "401": {
            "description": "Invalid authorization token or disabled client."
          },
          "403": {
            "description": "The client is not allowed to use this endpoint or resource."
          },
          "404": {
            "description": "Collection not found for this client."
          },
          "429": {
            "description": "Too many requests. Please retry with backoff."
          }
        },
        "summary": "Add supplemental information to collection",
        "tags": [
          "Wealth Data Collection"
        ]
      }
    }
  },
  "servers": [
    {
      "url": "https://api.insurely.com"
    }
  ],
  "tags": [
    {
      "description": "Provides statuses of companies available for data collection",
      "name": "Company"
    },
    {
      "description": "Initiate a collection of pension & investments data, see the status and get the data collected from the holder of pension data.",
      "name": "Wealth Data Collection"
    }
  ]
}