You're reading version 2024-06-01, which is not the latest. The latest is 2026-04-01: open the 2026-04-01 introduction.
Migration Guide
Migrating to 2026-04-01
Summary
This version introduces a major shift from plain integer amounts to structured MonetaryAmount objects across all insurance types. Several fields have been removed or relocated. Collections have also moved from /insurance/collection to a shared, top-level /collections resource, and the collection request body has moved from an untyped input map to a typed parameters array.
Breaking Changes
1. Monetary fields changed from integer to MonetaryAmount
All fields that previously returned a bare integer now return a MonetaryAmount object with amount (number) and currency (string) properties.
Action: Update your parsing logic wherever you read these fields. Instead of accessing the value directly (e.g., discountAmount: 500), you now receive an object (e.g., discountAmount: { amount: 500, currency: "SEK" }).
Affected fields by insurance type:
| Object | Affected Fields |
|---|---|
| All insurance types | discountAmount |
| InsuranceAnimal | animalPurchasePrice, veterinaryCareAmount, veterinaryCareAmountRemaining |
| InsuranceCottage | insuredMovablesAmount |
| InsuranceHome | insuredMovablesAmount |
| InsuranceVilla | insuredMovablesAmount |
| InsuranceFarm | insuredMovablesAmount |
| InsuranceIncome | insuredAmount, insuredMonthlyAmount |
2. MonetaryAmount field renamed: currencyCode to currency
The MonetaryAmount object's currencyCode field has been renamed to currency. The type has also changed from a string enum to an open string (still ISO 4217 values, but additional currencies may appear in the future).
This affects premium.amount: read premium.amount.currency instead of premium.amount.currencyCode.
Action: Replace all references to currencyCode with currency. If you validate against a fixed set of currency codes, update your validation to accept any ISO 4217 string.
3. Removed fields
Several fields have been removed from specific insurance types:
| Object | Removed Field |
|---|---|
| InsuranceCar | usedForWork |
| InsuranceVilla | numberOfToilets |
Action: Remove references to these fields from your code.
4. Insured amount fields changed from integer to MonetaryAmount on person insurance types
The following fields that were previously plain integers are now MonetaryAmount objects on their respective insurance types:
| Object | Affected Fields |
|---|---|
| InsuranceAccident | insuredAmountBaseEconomicalDisability, insuredAmountBaseMedicalDisability, insuredAmountLife, insuredAmountMaxMedicalDisability |
| InsuranceChild | insuredAmountBaseEconomicalDisability, insuredAmountBaseMedicalDisability, insuredAmountLife, insuredAmountMaxMedicalDisability |
| InsuranceLife | insuredAmountLife |
| InsurancePregnancy | insuredAmountBaseMedicalDisability |
Action: Update your parsing logic to read field.amount and field.currency instead of using the integer value directly.
5. Collection request body uses typed parameters
POST /collections takes an InitiateCollectionRequest. The untyped input map and the separate consents field are replaced by a single typed parameters array. loginMethod must still be sent as a top-level field (a LOGIN_METHOD entry in parameters is ignored), and the Swedish values are unchanged.
| Old request | New parameter |
|---|---|
input.SWEDISH_PERSONAL_NUMBER (BankID login methods) | SwedishBankIdParameter: { "type": "SWEDISH_BANKID", "personalNumber": "…" } |
input.USERNAME (EMAIL login method) | EmailParameter: { "type": "EMAIL", "email": "…" } |
consents: [{ "type": "TRADE_UNION_MEMBERSHIP" }] | TradeUnionConsentParameter: { "type": "TRADE_UNION_CONSENT", "value": true } |
input.SESSION_ID / ADVISOR_HANDLE / EXTERNAL_REFERENCE | attributes.sessionId / advisorHandle / externalReference on a SessionMetadataParameter (type: SESSION_METADATA) |
// 2024-06-01
{
"company": "se-lansforsakringar",
"loginMethod": "SWEDISH_MOBILE_BANKID_OTHER_DEVICE",
"input": { "SWEDISH_PERSONAL_NUMBER": "199001011234" }
}
// 2026-04-01
{
"company": "se-lansforsakringar",
"loginMethod": "SWEDISH_MOBILE_BANKID_OTHER_DEVICE",
"parameters": [
{ "type": "SWEDISH_BANKID", "personalNumber": "199001011234" }
]
}Action: Convert each input key, consent and session identifier into a typed entry in parameters. See the 2025-01-01 migration guide for the full per-login-method mapping.
6. Collections moved to a top-level /collections resource
Collection endpoints no longer live under the product namespace. A collection is created at POST /collections regardless of product, and the insurance data is read from a product sub-path.
| Old Endpoint | New Endpoint |
|---|---|
POST /insurance/collection | POST /collections |
GET /insurance/collection/{collectionId}/status | GET /collections/{collectionId}/status |
GET /insurance/collection/{collectionId}/data | GET /collections/{collectionId}/insurance/data |
POST /insurance/collection/{collectionId}/supplement-info | POST /collections/{collectionId}/supplement-info |
DELETE /insurance/collection/{collectionId} | DELETE /collections/{collectionId} |
GET /insurance/collection/{collectionId}/policy/{policyId}/document/{documentId} | GET /collections/{collectionId}/insurance/policy/{policyId}/document/{documentId} |
Action: Replace /insurance/collection with /collections, and read data from /collections/{collectionId}/insurance/data instead of /insurance/collection/{collectionId}/data. Status, supplement-info and deletion keep the same suffixes under the new prefix.
7. New CollectionStatus value
A new CollectionStatusResponse status value, AUTHENTICATION_ERROR, is returned for a sign-in failure that doesn't match a more specific status, for example when the chosen login method can't be used at the company. In 2024-06-01 these were reported as FAILED.
Action: Handle AUTHENTICATION_ERROR.
8. New CompanyAvailability status value
- New
statusvalueDEGRADED_PERFORMANCE: the company is experiencing intermittent issues; collections can still be attempted but may fail or return incomplete data
Action: Handle the DEGRADED_PERFORMANCE status.
Migration Checklist
- Update
Insurely-Versionheader to2026-04-01 - Update all monetary field parsing to handle
MonetaryAmountobjects ({ amount, currency }) instead of plain integers - Replace
currencyCodereferences withcurrencyinMonetaryAmount - Remove references to deleted fields:
usedForWork(car),numberOfToilets(villa) - Update insured amount fields on person insurance types (InsuranceAccident, InsuranceChild, InsuranceLife, InsurancePregnancy) from integer to
MonetaryAmount - Update all endpoint URLs from
/insurance/collection/*to/collections/*, and read data from/collections/{collectionId}/insurance/data - Move
input,consentsand session identifiers into the typedparametersarray - Handle the new
AUTHENTICATION_ERRORstatus - Handle the
DEGRADED_PERFORMANCEcompany availability status
Field Mapping Table
| Object | Old | New | Change |
|---|---|---|---|
| All insurance types | discountAmount (integer) | discountAmount (MonetaryAmount) | Type changed |
| MonetaryAmount | currencyCode (string enum) | currency (string) | Renamed + type relaxed |
| InsuranceAnimal | animalPurchasePrice (integer) | animalPurchasePrice (MonetaryAmount) | Type changed |
| InsuranceAnimal | veterinaryCareAmount (integer) | veterinaryCareAmount (MonetaryAmount) | Type changed |
| InsuranceAnimal | veterinaryCareAmountRemaining (integer) | veterinaryCareAmountRemaining (MonetaryAmount) | Type changed |
| InsuranceCar | usedForWork | -- | Field removed |
| InsuranceVilla | numberOfToilets | -- | Field removed |
| InsuranceCottage | insuredMovablesAmount (integer) | insuredMovablesAmount (MonetaryAmount) | Type changed |
| InsuranceHome | insuredMovablesAmount (integer) | insuredMovablesAmount (MonetaryAmount) | Type changed |
| InsuranceVilla | insuredMovablesAmount (integer) | insuredMovablesAmount (MonetaryAmount) | Type changed |
| InsuranceFarm | insuredMovablesAmount (integer) | insuredMovablesAmount (MonetaryAmount) | Type changed |
| InsuranceIncome | insuredAmount (integer) | insuredAmount (MonetaryAmount) | Type changed |
| InsuranceIncome | insuredMonthlyAmount (integer) | insuredMonthlyAmount (MonetaryAmount) | Type changed |
| InsuranceAccident | insuredAmountBaseEconomicalDisability (integer) | insuredAmountBaseEconomicalDisability (MonetaryAmount) | Type changed |
| InsuranceAccident | insuredAmountBaseMedicalDisability (integer) | insuredAmountBaseMedicalDisability (MonetaryAmount) | Type changed |
| InsuranceAccident | insuredAmountLife (integer) | insuredAmountLife (MonetaryAmount) | Type changed |
| InsuranceAccident | insuredAmountMaxMedicalDisability (integer) | insuredAmountMaxMedicalDisability (MonetaryAmount) | Type changed |
| InsuranceChild | insuredAmountBaseEconomicalDisability (integer) | insuredAmountBaseEconomicalDisability (MonetaryAmount) | Type changed |
| InsuranceChild | insuredAmountBaseMedicalDisability (integer) | insuredAmountBaseMedicalDisability (MonetaryAmount) | Type changed |
| InsuranceChild | insuredAmountLife (integer) | insuredAmountLife (MonetaryAmount) | Type changed |
| InsuranceChild | insuredAmountMaxMedicalDisability (integer) | insuredAmountMaxMedicalDisability (MonetaryAmount) | Type changed |
| InsuranceLife | insuredAmountLife (integer) | insuredAmountLife (MonetaryAmount) | Type changed |
| InsurancePregnancy | insuredAmountBaseMedicalDisability (integer) | insuredAmountBaseMedicalDisability (MonetaryAmount) | Type changed |