Skip to main content
By default, Meld filters the institutions shown in the picker to those that support every product in the /connect/start request. Sometimes you want users to see institutions that may not support all products, and then fetch data only for the products that are supported. Optional products solve this use case: they are aggregated on a best-effort basis and do not restrict which institutions appear.

When to use optional products

  • You want maximum institution coverage but still want bonus data (such as investments) where it exists.
  • A product like INVESTMENT_HOLDINGS is nice to have for some customers but should not gate the rest of the flow.
  • You are retroactively adding products via the update connection endpoint — those products always land in optionalProducts.

Rules

  • You must specify at least one product in the required products array.
  • A product cannot appear in both products and optionalProducts.
  • Optional products are aggregated on a best-effort basis — Meld does not guarantee data will be returned for them. Build your UI accordingly.

Sample request

curl --location 'https://api-sb.meld.io/bank-linking/connect/start' \
--header 'Meld-Version: 2022-11-10' \
--header 'Content-Type: application/json' \
--header 'Authorization: BASIC ***Redacted API Key***' \
--data '{
  "externalCustomerId": "testCustomer",
  "products": [
    "BALANCES",
    "TRANSACTIONS"
  ],
  "optionalProducts": [
    "INVESTMENT_HOLDINGS",
    "INVESTMENT_TRANSACTIONS"
  ]
}'
In the example above, the picker filters institutions to those that support BALANCES and TRANSACTIONS. Institutions are not filtered out for missing investment support. If the connected accounts do carry investment data, Meld retrieves it and emits the corresponding webhooks.
Optional products are powerful for maximizing coverage, but do not guarantee data will be returned for those products. Always handle the case where investment or other optional data is empty.