Skip to main content

Assets API v1.3.0

Version
Date
Description
Author
1.3.0
2025-10-15
Added ExtendedWarranty
Alexandru Marinica & Catalin Fronea
1.2.0
2025-9-19
Added DigitalProtection & BusinessCyberProtection By LevIns
Alexandru Marinica & Catalin Fronea
1.1.0
2025-08-01
Added Tire Policy Product By Michelin
Alexandru Marinica
1.0.1
2025-04-15
Added House Assistance Product By Pointer
Catalin Fronea
1.0.0
2025-03-31
Added GAP Product By Colonnade
Alexandru Marinica
1.0.0
2025-03-31
Added Solar Panel Product by Colonnade
Alexandru Marinica
1.0.0
2025-03-31
Initial version
Alexandru Marinica

1. Introduction

The Assets API service allows the generation of offers, the transformation of offers into policies, and the downloading of corresponding documents. All requests (except for authentication) must include the "Token" header containing the JWT obtained via the authentication endpoints (using credentials provided by Life Is Hard SA as OPERATOR).

Environments:

  • Test/Development: https://assets-api-qa.api.lifeishard.ro/ – test environment with the latest changes.

  • Production: https://assets-api.api.lifeishard.ro/

Access to both environments is restricted to whitelisted IPs. Please contact the sales team to gain access. Credentials valid in the test environment are not applicable in production.

1.1. Implemented products

Currently, the insurer “Colonnade” offers two products:

  • solarPanel

  • gap

Important: In the offer request, the product object includes both the solarPanel and gap sub-objects as examples. A valid request must include only one of these. The system automatically determines the product type: if the solarPanel key is present in the request, then the system will process the solarPanel product for Colonnade.

1.2. Workflow

To create a policy, follow these steps:

  1. Authentication: Obtain a JWT token using OPERATOR-provided credentials.

  2. Create offer: Submit an offer request. The response includes an offerId to be used in subsequent requests.

  3. Transform offer to policy: Use the offerId from the offer step to transform the offer into a policy.

  4. Download documents: Use the offerId to download offer documents and the policyId (from the transformation step) to download policy documents.

1.3. Response types

Responses consist of either a successful response or an error response:

  • Success Response:  - status: 200–299  - data: Object containing the relevant response data.

  • Error Response:  - errors: Array of error messages  - correlation_id: Internal error tracking ID  - status: 400–500  - data: (Optional) Additional data regarding the error.

Note: Validation messages are in English by default. To change them to Romanian, include the header parameter Content-Language: ro.


2. Authentication

2.1. Authenticate account

  • Endpoint: POST /auth

  • Description: Authenticates an account using the provided account and password (credentials from the OPERATOR).

  • Success Response: The response includes:

  • token: The JWT for subsequent requests.

  • expires_at: Expiry date/time in "YYYY-MM-DD HH:MM:SS" format.

  • refresh_token: Token used to refresh the JWT.

2.2. Renew token

  • Endpoint: PATCH /auth

  • Description: Renews an authentication token using the provided refresh token.

  • Response: Same structure as the authentication response.

2.3. De-authenticate account

  • Endpoint: DELETE /auth

  • Description: De-authenticates an active JWT token.


3. Create offer

  • Endpoint: POST /offer

  • Description: Obtains a quote from the insurer for the specified product.

3.1. Request

3.1.1. Input parameters
Parameter
Type
Required
Description
provider
object
Yes
Contains insurer information.
provider.organization
object
Yes
Insurer’s data.
provider.organization.businessName
string
Yes
Insurer identifier (for Colonnade, use “colonnade”).
provider.authentication
object
Yes
Credentials to access the insurer’s web service.
provider.authentication.account
string
No
Account (provided by the OPERATOR).
provider.authentication.password
string
No
Password.
provider.authentication.code
string
No
Optional code.
product
object
Yes
Product object

Product Object

Parameter
Type
Required
Description
solarPanel
object
Yes, if you want quotation for solarPanel
SolarPanel Object
gap
object
Yes, if you want quotation for solarPanel
GAP Object
policyholder
object
Yes
Person object
additionalData
object
-
Depends on the insurer
Person object
Parameter
Type
Required
Description
Validation rules
businessName
string
Yes if it is present in the request
Business name (if the person is a legal entity)
companyRegistryNumber
string
Sometimes
Company registry number (if the person is a legal entity)
Mandatory for all products except SolarPanel and GAP
caenCode
number
No
CAEN code (if the person is legal entity)
lastName
string
Yes if businessName field is not present
Individual person's last name
firstName
string
Individual person's first name
taxId
string
Yes
• Personal identification code for natural persons

• Tax identification number for non-natural persons


It must be a valid Romanian CNP if businessName field is not present and isForeignPerson is false (or it’s not present)
isForeignPerson
boolean
No
Indicates if person is foreign person
nationality
string
Yes if isForeignPerson is true
Nationality
Accepted values: iso2 codes from /nomenclature/country nomenclature.
No validation applied if legal entity.
citizenship
string
Citizenship
Accepted values: iso2 codes from /nomenclature/country nomenclature.
No validation applied if legal entity.
gender
string
Gender:
• m => male

• f => female


Accepted values: m, f
No validation applied if legal entity.
birthdate
string
Date of birth
• Accepted format: YYYY-MM-DD

• The date must be in the past.

• No validation applied if legal entity.


email
string
Yes
Email address
It must be a valid email address.
mobileNumber
string
Yes
Mobile phone number
Exactly 10 digits (without prefix)
hasDisability
boolean
No
Cannot be set true if isRetired is set true or if is legal entity.
isRetired
boolean
No
Cannot be set true if hasDisability is set true or if is legal entity.
identification
object
Yes if businessName field is not present
Information's related to the identification document
Information required for individual
identification.idType
string
Yes if identification field is present
Type of the identification document
Only accepted value: CI
identification.idNumber
string
Yes if identification field is present
Series and number of the identification document
It must be a valid Romanian ID number
identification.issueAuthority
string
No
Issuer of the identification document
identification.issueDate
string
No
Issuing date of the identification document
Accepted format: YYYY-MM-DD
drivingLicense
object
No
drivingLicense.issueDate
string
Yes, if drivingLicense field is present
Issues date for Driver License.
Accepted format: YYYY-MM-DD
Value cannot be greater than current date.
address
Address object
Yes
Person’s home address
Address object
Parameter
Type
Required
Description
Validation rules
country
string
No
iso2 country code
Accepted values: iso2 codes from /nomenclature/country nomenclature
county
string
Yes
County code
Accepted values: any code from /nomenclature/county nomenclature
city
string
Yes
Locality name
Accepted values: any name from /nomenclature/locality/{cod_judet} nomenclature
cityCode
number
Yes
Locality code
Accepted values: any siruta code from /nomenclature/locality/{cod_judet} nomenclature
street
string
Yes
Street
houseNumber
string
Yes
House number
building
string
No
Building
staircase
string
No
Staircase
apartment
string
No
Apartment
floor
string
No
Floor
postcode
string
No
Postcode
Vehicle object

The product object must include only one of the following mutually exclusive sub-objects:


  1. solarPanel Object
Parameter
Type
Required
Description
startDate
string
Yes
Effective start date of the policy (format: YYYY-MM-DD).
termTime
integer
Yes
Policy validity period in months.
solarPanelItems
array
Yes
Array of solar panel items (see table below).

solarPanelItem Object

Parameter
Type
Required
Description
category
string
Yes
Category (e.g., Photovoltaic/Solar/Heat Pump).
brand
string
Yes
Brand of the solar panel item (e.g., Tier-1 Canadian Solar 405W).
power
string
Yes
Power rating (e.g., “3”).
type
string
Yes
Type information (e.g., Single-phase, Supracharge, Three-phase).
count
integer
Yes
Number of items.
inverter
object
Yes
Inverter details.
smartMeter
object
Yes
Smart meter details.
installationDate
string
Yes
Installation date (format: YYYY-MM-DD).
address
object
Yes
Address information for installation (refer to Address section for details).

Inverter Object

Parameter
Type
Required
Description
brand
string
Yes
Ex: Huawei SUN2000-3/5/6/8/10KTL

smartMeter Object

Parameter
Type
Required
Description
brand
string
Yes
Ex: Smart meter Huawei

  1. GAP Object
Parameter
Type
Required
Description
startDate
string
Yes
Effective start date (format: YYYY-MM-DD).
termTime
integer
Yes
Policy validity period in months.
vehicle
object
Yes
Object containing complete vehicle details (see table below).

Vehicle Object

Parameter
Type
Required
Description
licensePlate
string
Yes
Vehicle license plate. Format and rules vary depending on registration type.
registrationType
string
Yes
Registration type (e.g., registered, recorded, temporaryRegistered, temporaryRecorded).
vin
string
Yes
Vehicle Identification Number (5–17 characters; excludes O, I, and Q if year > 1981).
vehicleType
string
Yes
Vehicle type (e.g., M1, M1G, etc.).
brand
string
Yes
Vehicle brand (e.g., Suzuki).
model
string
Yes
Vehicle model (e.g., Vitara).
yearOfConstruction
integer
Yes
Production year of the vehicle.
totalWeight
integer
Yes
Gross vehicle weight.
seats
integer
Yes
Number of seats.
usageType
string
Yes
Only vehicle usage type accepted is “personal” as of 30.05.2025
address
object
Yes
Address information for the vehicle (refer to Address section for details).
  1. HouseAssistance Object
Parameter
Type
Required
Description
startDate
string
Yes
Effective start date (format: YYYY-MM-DD).
termTime
integer
Yes
Policy validity period in months.
builtArea
integer
Yes
Total constructed area of the property, including walls, balconies, and other built-up spaces, measured in square meters (or relevant unit).
usableArea
integer
Yes
Net usable area of the property, excluding walls and shared/common areas — only spaces that can be practically used, measured in square meters (or relevant unit).
address
object
Yes
Address information for the house (refer to Address section for details).
  1. Tire object
Parameter
Type
Required
Description
Validation
startDate
string
Yes
Effective start date of the Tire cover.
Format YYYY-MM-DD. Must be ≥ today ≤ 60 days in the future
termTime
integer
Yes
Policy validity period in months.
Must be 12 or 24
purchaseDate
string
Yes
Date the tires were purchased.
Format YYYY-MM-DD. Must be ≤ today and ≥ 30 days ago.
purchasePrice
number
Yes
Purchase price of the set of tires, in RON.
Numeric > 0 and ≤ 8000.
vehicleBrand
string
Yes
Vehicle brand on which the tires are mounted.
Name value from Nomenclature: /nomenclature/vehicle-brand
vehicleModel
string
Yes
Vehicle model on which the tires are mounted.
Name value from Nomenclature: /nomenclature/vehicle-model/{vehicleBrandId}
tireMake
string
Yes
Manufacturer of the tires.
Code value from Nomenclature:/nomenclature/tire-brand
As of 01.08.2025 the only accepted value is “michelin”
tireModel
string
Yes
Model name of the tire.
Name value from Nomenclature: /nomenclature/vehicle-model/{tireMakeCode}
tireWidth
integer
Yes
Wheel rim diameter in inches.
Size value from Nomenclature:
/nomenclature/tire-size
dot
string
Yes
DOT (Department of Transportation) code of the tire.
Exactly 4 digits, representing week and year (e.g. 3719).
  1. DigitalProtection object
Parameter
Type
Required
Description
Validation
startDate
string
Yes
Effective start date of the Digital protection cover.
Format YYYY-MM-DD.
Min: tomorrow
Max: today + 60
termTime
integer
Yes
Policy validity period in months.
Must be 12
  1. BusinessCyberProtection object
Parameter
Type
Required
Description
Validation
startDate
string
Yes
Effective start date of the Business Cyber Protection cover.
Format YYYY-MM-DD.
Min: tomorrow
Max: today + 60
termTime
integer
Yes
Policy validity period in months.
Must be 12
installmentCount
integer
No
Number of payment installments
Must be between 1 and 4
website
string
Yes
Business website URL
Must be a valid URL
turnover
string
Yes
Annual business turnover
Enum: "less_than_100k","less_than_500k","less_than_1m"
numberOfEmployees
integer
Yes
Number of employees
Min: 1
Max: 100
numberOfComputers
integer
Yes
Total computers in business
Min: 1
Max: 25
numberOfInsuredComputers
integer
Yes
Number of computers to insure
Min: 1
Max: 25
numberOfServers
integer
Yes
Total servers in business
Min: 0
Max: 100
numberOfInsuredServers
integer
Yes
Number of servers to insure
Min: 0
Max: 100
hasFirewall
boolean
Yes
Business has a firewall
hasAntivirus
boolean
Yes
Business has antivirus software
wantsEndpointSoftware
boolean
Yes
Wants endpoint protection software
wantsEdrForComputers
boolean
Yes
Wants EDR for computers
wantsEdrForServers
boolean
Yes
Wants EDR for servers
insuredAmount
integer
Yes
Amount to insure in EURO
Min: 5000
Max: 100000
  1. ExtendedWarranty Object
Parameter
Type
Required
Description
startDate
string
Yes
Effective start date (format: YYYY-MM-DD).
termTime
integer
Yes
Policy validity period in months.
vehicle
object
Yes
Object containing complete vehicle details (see table below).

Vehicle Object

Parameter
Type
Required
Description
licensePlate
string
Yes
Vehicle license plate. Format and rules vary depending on registration type.
registrationType
string
Yes
Registration type (only registered).
vin
string
Yes
Vehicle Identification Number (5–17 characters; excludes O, I, and Q if year > 1981).
vehicleType
string
Yes
Vehicle type (only M1).
brand
string
Yes
Vehicle brand VAG only (e.g., Volkswagen).
model
string
Yes
Vehicle model (e.g., Golf).
enginePower
integer
Yes
Vehicle engine power.
currentMileage
integer
Yes
Vehicle current mileage.
usageType
string
Yes
Only vehicle usage type accepted is “personal” as of 30.05.2025
isFirstOwner
boolean
Yes
Whether it is the first owner of the vehicle.
yearOfConstruction
string
Yes
Production year of the vehicle.
firstRegistration
string
Yes
Vehicle first registration date.
deliveryDate
string
No
Vehicle delivery date.

Note: Only one sub-object (either solarPanel or gap for Colonnade, houseAssistance for Pointer, tire for Michelin or either digitalProtection or businessCyberProtection for Levins) should be included in a valid offer request. The system automatically determines the product type based on which key is present in the JSON payload.

3.1.2. Validation rules

Refer to the JSON schema for detailed validation rules (e.g., date formats, acceptable values for registration types, etc.). Note: Validation messages are in English by default. To change them to Romanian, include the header parameter Content-Language: ro.

3.2. Response

A successful response returns an Offer object in the data field with the following key properties:

Parameter
Type
Description
offerId
number
Unique identifier of the offer (used for policy transformation).
providerOfferCode
string
Unique identifier generated by the insurer.
premiumAmount
number
Premium amount (gross).
premiumAmountNet
number
Premium net amount.
currency
string
Currency of the offer.
startDate
string
Policy start date.
endDate
string
Policy end date.
referenceRate
number
Offer reference rate.
bonusMalusClass
string
Bonus-malus class used for premium calculation.
commissionValue
number
Commission value for the broker.
commissionPercent
number
Commission percentage.
greenCardExclusions
string
List of countries where the policy will not be applied.
notes
string
Additional notes.
offerExpiryDate
string
Expiry date of the offer (format: Y-m-d).
directCompensation
object
If applicable, details for direct compensation (providerOfferCode, premiumAmount, commissionValue, commissionPercent).
installments
object
Payment installment details (if applicable).
pid
string
PID file URL (if configured).
toc
string
Terms and Conditions file URL (if configured).

4. Transform offer to policy

  • Endpoint: POST /policy

  • Description: Transforms an offer into a policy using the provided offer identifier.

4.1. Request

Parameter
Type
Required
Description
offerId
number
Yes
Unique identifier of the offer (obtained from the offer response).
payment
object
Yes
Payment details (see Payment object table below).
additionalData
object
No
Additional data as required by the product.

Payment object:

Parameter
Type
Required
Description
method
string
Yes
Payment method. Accepted values: pos, receipt, broker receipt and broker payment order.
currency
string
Yes
Payment currency (only RON is accepted at the moment).
amount
number
Yes
Payment amount in RON.
date
string
Yes
Payment date (format: YYYY-MM-DD).
documentNumber
string
Yes
Payment proof document details.

4.2. Response

The response returns a Policy object in the data field with the following key properties:

Parameter
Type
Description
policies
array
Array of Policy objects.

Each Policy object includes:

Parameter
Type
Description
policyId
number
Unique identifier of the issued policy.
series
string
Policy series.
number
number
Policy number.
payment
object
Payment details (see ResponsePayment object table).
startDate
string
Policy start date.
endDate
string
Policy end date.
premiumAmount
number
Value of the policy.
currency
string
Policy currency.
installments
object
Installment details (if applicable).

ResponsePayment object:

Parameter
Type
Description
method
string
Payment method as sent to the insurer.
currency
string
Currency used for payment.
amount
number
Amount paid.
date
string
Payment date.
documentNumber
string
Payment proof document details.

5. Documents

5.1. Offer

  • Endpoint: GET /offer/\{offerId\}

  • Description: Downloads the offer in PDF format.

  • Note: The downloaded PDFs will include the following documents:

  • offer

  • dnt

  • pre-contract

  • gdpr

  • terms-and-conditions

5.2.1 Policy

  • Endpoint: GET /policy/\{policyId\}

  • Description: Downloads the policy in PDF format.

5.2.2 By policy series and number

Endpoint: GET /policy?series={series}&number={number}

You will need to provide the series and number received in the response of transform offer into policy call to access the download feature.


6. Product-specific parameters

For the Assets API, additional product-specific parameters are required for the insurer Colonnade and Pointer.

6.1. Colonnade

SolarPanel Validations:

Parameter
Type
Required
Description
product.solarPanel.solarPanelItems.*.installationDate
string
Yes
Max 2 years in the past
product.solarPanel.termTime
number
Yes
By =<> It strictly mean comparing whether installationDate (which is a date) is less than, greater than, or equal to the specified number of years.
• If installationDate = 2 years, then the policy can be issued for 1 to 4 years.

• If installationDate = 1 year, then the policy can be issued for 1 to 5 years.

• If installationDate < 1 year, then the policy can be issued for 1 to 6 years.


The value must be provided in months, not years. Please convert the selected number of years by multiplying it by 12 before sending (e.g., 2 years → 24 months).

GAP Validations:

Parameter
Type
Required
Description
product.gap.termTime
number
Yes
Must be 12

For both the solarPanel and gap products, the following additional data is mandatory:

AdditionalData for Colonnade – SolarPanel

Parameter
Type
Required
Description
purchasePrice
number
Yes
Purchase price in RON. Must not exceed 150000.

AdditionalData for Colonnade – General

Parameter
Type
Required
Description
agreements
object
Yes
Object containing mandatory agreement flags.

agreements Object Structure

Parameter
Type
Required
Description
gdpr
boolean
Yes
Must be true.
consultation
boolean
Yes
Must be true.
dnt
boolean
Yes
Must be true.

If the policyholder is a legal entity, the following field is also mandatory:

Parameter
Type
Required
Description
policyholder.hasRelationsWithRussiaOrBelarus
boolean
Yes, if policyholder is PJ
Must be false. Indicates that the policyholder has NO relations with Russia or Belarus.

6.2. Pointer

For houseAssistance product, the following additional data is mandatory:

AdditionalData for Pointer – HouseAssitance

Parameter
Type
Required
Description
packageCodes
array
No
A list of selected package codes for which offers will be generated.

6.3. Michelin

For tire product, the following additional data is mandatory:

Parameter
Type
Required
Description
agreements
object
Yes
Object containing mandatory agreement flags.

agreements Object Structure

Parameter
Type
Required
Description
purchased4Tires
boolean
Yes
Must be true.
michelinDataAgreement
boolean
No
customerAgreement
boolean
Yes
Must be true.
marketingConsent
boolean
No

6.4. LevIns

6.4.1. LevIns - DigitalProtection

This product is strictly for individual customers only, the policyholder must be an individual person.

6.4.2. LevIns - BusinessCyberProtection

This product is strictly for business customers only, the policyholder must be a business.

6.5. Porsche

The Extended Warranty product offers additional protection for vehicles beyond the standard manufacturer warranty. Eligible vehicles must be registered, have a maximum mileage (180.000km), and meet specific criteria such as brand (Volkswagen, Audi, Seat, Skoda, Cupra, Bentley, Lamborghini, Bugatti, Porsche), usage type (personal), and a maximum age (year of construction within the last 7 years).