Skip to main content

Implementation manual for client communication with the web service.

Version
Date
Description
1.4.2
2025-03-25
• New endpoint: GET policy?series=\{series\}&number=\{number\}


1.4.1
2025-02-07
• Made error messages for unavailable insurer services more user-friendly.

• The issue of reporting Allianz policies without a PDF in 24Broker has been resolved.


1.4.0
2024-11-20
• New product: DallBogg RCA

• The houseNumber field is no longer mandatory (except for Axeria)

• The GET /vehicle endpoint has been improved.


1.3.0
2024-06-19
• Added new api endpoint: GET /vehicle


1.2.0
2023-11.29
• eAdded Romanian language translation messages.

• Extended the maximum effective date for RCA contracts from 30 days to 60 days.

• Implemented the Credentials module to manage insurer credentials; provider.authentication is now optional.

• Improvements: performance, stability and refinement of validation rules


1.1.1
2023-09-05
• Removed required validations from identification.issueAuthority.

• Removed required validations from identification.issueDate.


1.1.0
2023-08-11
• Removed special validations from commissionPercentLimit.

• POST /offer (Response) - New parameters: directCompensation.commissionValue and directCompensation.commissionPercent

• POST /policy (Request): Extra data for Asirom has been removed

• New product: EazyInsure RCA


1.0.1
2023-08-08
Grawe: The requirement of gender for non-foreign individuals was eliminated.
1.0.0
2023-06-06
Initial version

API changelog: https://rca-qa.api.lifeishard.ro/changelog

1. Introduction

The RCAApi service allows the generation of offers, the issuance of policies, as well as the printing of corresponding documents.

All requests (except for authentication requests) must contain the "Token" parameter in the Header, which contains an authorization token (JWT) obtained through authentication endpoints using credentials provided by Life Is Hard SA (as OPERATOR).

The service has an integration with the 24Broker application, and policies issued through the API will be automatically transferred to 24Broker. For this, the 24Broker instance and the email address of the account where the transfer is desired must be specified.

Attention! Changing the configured email address may result in policies not being transferred. In other words, if the email address of the account (24Broker) configured in the service is changed, then a request to modify the address in the API must be made.

Environments:

The examples and definitions of the methods and resources offered by the service can be viewed through the Swagger UI platform: https://app.swaggerhub.com/apis-docs/Life-is-Hard3/rca.api.lifeishard.ro/

Access to both environments is restricted to whitelisted IPs. To gain access, you need to contact the sales team.

The credentials used in the testing environment are not functional in the production environment.

1.1. Implemented products

Insurer
Identifier
Allianz
insurer: allianz
Asirom
insurer: asirom
Axeria
insurer: axeria
Generali
insurer: generali
Groupama
insurer: groupama
Hellas Autonom
insurer: hellas_autonom
Hellas NextIns
insurer: hellas_nextins
Omniasig
insurer: omniasig
Grawe
insurer: grawe
Eazy Insure
insurer: eazy_insure
DallBogg
insurer: dallbogg

1.2. Workflow

Creating policy:

  1. Authentication Obtain a JWT token using credentials provided by OPERATOR

  2. Create offer the response includes the [offerId] – this id will be needed in the following requests

  3. Transform offer to policy use [offerId] from the offer step for policy to get the policy data

  4. Download documents use [offerId] from the offer step to get offer documents, and [policyId] from the transform policy step to get policy documents

1.3. Response types

The main structure of response is:

Parameter
Description
error
This indicates the type of response: false indicates success, and true indicates an error.
status
HTTP status
data
Data related to the response / Additional data regarding the response.
message
Error message

The structure of the responses can be divided into two major categories: successful response and error response.

Success

Parameter
Description
error
false
status
200
data
(object)

Error

Parameter
Description
error
true
status
400 - 500
message
Error message
data
(optional) Additional data

The validation messages are set by default in English. To change the language of the validation messages to Romanian, add the following parameter in the request header: Content-Language, with the value: ro.

2. Authentication

2.1. Authenticate account

Endpoint: POST /auth

This method is used to authenticate an account by account and password (provided by OPERATOR).

If the authentication was successful. The response will include a JSON object with the following properties:

  • data: A JSON object containing the following properties:

  • token: A string representing the JWT token generated by the server for the authenticated user.

  • expires_at: A string representing the date and time when the JWT token will expire in the format "YYYY-MM-DD HH:MM:SS".

  • refresh_token: A string representing the refresh token generated by the server for the authenticated user.

2.2. Renew token

Endpoint: PATCH /auth

This method is used to renew an authentication token based on the refresh token.

If the token has been successfully renewed, the generated response will have the same structure as the authentication response.

2.3. De-authenticate account

Endpoint: DELETE /auth

This method is used to de-authenticate an existing and valid auth token.

3. Create offer

Endpoint**:** POST /offer

3.1. Request

3.1.1. Input parameters

Parameter
Type
Required
Description
Validation rules
provider
object
Yes
Information related to the insurer
provider.organization
object
Yes
Insurer’s data
provider.organization.businessName
string
Yes
Insurer identifier (see 1.1 → Identifiers)
provider.authentication
object
No
Credentials to access insurer’s web service
provider.authentication.account
string
No
Account
• in DEV / QA environment these fields can be sent empty to use default test credentials


 
provider.authentication.password
string
No
Password
provider.authentication.code
string
No
Code
product
object
Yes
Information's related to the product
 
product.motor
object
Yes
product.motor.startDate
string
Yes
The effective date of the policy
• Accepted format: YYYY-MM-DD

• The date can be current date ifproduct.vehicle.registrationType is one of [temporaryRegistered, temporaryRecorded]

• The date has to be in the future if product.vehicle.registrationType is one of [registered, recorded]


product.motor.termTime
number
Yes
Policy validity in number of months
Values between 1 and 12
product.motor.installmentCount
number
No
Number of installments
Accepted values: 1, 2, 4, 12 Note: not all insurers accept installments
product.motor.commissionPercentLimit
float
No
Percent of the broker commission
Values between 0 and 100
product.motor.renewPolicy
object
No
product.motor.renewPolicy.series
string
Yes
product.motor.renewPolicy.number
number
Yes
product.motor.generatePaymentLink
boolean
No
Generates a payment link for an offer
Field applies only to specific insurers.
Default value: false
Available for:
• hellas_autonom

• hellas_nextins


product.motor.webhookLink
string
No
Webhook link where notifications regarding a policy will be sentPOST product.motor.webhookLink
Field applies only to specific insurers.
Default value: false
Available for:
• hellas_autonom

• hellas_nextins


product.policyholder
Person object
Yes
Policyholder’s data
product.vehicle
Vehicle object
Yes
Vehicle’s data
product.additionalData
object
No (depending on the product)
Must be completed according to the Product specific parameters section
This structure can either be sent with product-specific parameters or with all parameters every time. Parameters sent in the plus will be ignored.
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
Yes if it is present in the request
Company registration number (if the person is a legal entity)
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
No
Email address
It must be a valid email address.
mobileNumber
string
No
Mobile phone number
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
No
Information's related to the identification document
Information required for individual
identification.idType
string
No
Type of the identification document
Accepted values: CI, PASSPORT
identification.idNumber
string
No
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
No
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
No
House number
building
string
No
Building
staircase
string
No
Staircase
apartment
string
No
Apartment
floor
string
No
Floor
postcode
string
No
Postcode
Vehicle object
Parameter
Type
Required
Description
Validation rules
registrationType
string
Yes
Vehicles registration type
Accepted values: registered, recorded, temporaryRegistered, temporaryRecorded
licensePlate
string
Yes, if registrationType is on of [registered, recorded]
Vehicles Romanian license plate
3.1.2. Validation rules point 1
vin
string
Yes
Vehicle identification number
• The value must be between 5 and 17 characters in length.

• If the yearOfConstruction is after 1981, the characters O, I, and Q are excluded.


vehicleType
string
Yes
Accepted values: M1, M1G, M2, M2G, M3, M3G, N1, N1G, N2, N2G, N3, N3G, O1, O2, O3, O4, L1e, L2e, L3e, L4e, L5e, L6e, L7e, T, C, R, S
brand
string
Yes
Brand name
model
string
Yes
Brand model name
yearOfConstruction
string
Yes
Vehicles production year
• format: YYYY

• maximum value [current year] + 1


engineDisplacement
number
Yes
Engine cubic inch (CC)
enginePower
number
Yes
Engine power (kW)
totalWeight
number
Yes
Gross vehicle weight
seats
number
Yes
Number of seats
fuelType
string
Yes
Vehicle energy source
Accepted values: diesel, petrol, electric, hybrid, lpg
firstRegistration
string
No
First registration in Romania
Format: YYYY-MM-DD
usageType
string
Yes
Vehicle usage purpose
Accepted values: personal, passengerTransportation, taxi, carRental, drivingSchool, security, courier, cargoTransportation, distribution
identification
object
No
identification.idNumber
string
Yes
Vehicles identification number (CIV in Romania)
• 7 character length

• first character is a letter

• last 6 characters are digits


currentMileage
number
No
The current mileage of the vehicle in kilometers.
hasMobilityModifications
boolean
No
Indicating whether the vehicle has been modified for use by people with loco-motor disabilities.
isLeased
boolean
No
Indicating whether the vehicle has an active lease contract.
isNew
boolean
No
Indicating whether the vehicle is new.
driver
Array of Driver objects
No
owner
Person object
No
Driver object
Parameter
Type
Required
Description
Validation rule
firstName
string
Yes
Individual person's first name
lastName
string
Yes
Individual person's last name
taxId
string
Yes
Personal identification code
It must be a valid Romanian CNP
identification
object
Yes
Information's related to the identification document
identification.idNumber
string
Yes
Series and number of the identification document
It must be a valid Romanian ID number
mobileNumber
string
No
Mobile phone number

3.1.2. Validation rules

The validation messages are set by default in English. To change the language of the validation messages to Romanian, add the following parameter in the request header: Content-Language, with the value: ro.

The following validation rules are country specific, currently it is Romania specific.

  1. The vehicle.licensePlate can have one of the following formatting rule based on the vehicle.registrationType:

  2. vehicle.registrationType is registered

  3. licensePlate is required

  4. length between 3 and 8 characters (upper case and digits)

  5. can start with special institution codes (MAI, A, CD, TC, FA, ALA, CO) continuing with digits Ex: MAI35519, CD146108

  6. can start with county codes followed by 2 or 3 digits and 3 upper case letters 3 digits only apply to county code B Ex: B101AXB, B10AAA, CJ01LIH

  7. the 3 letter part cannot start with I or O, cannot contain Q, cannot be III or OOO

  8. vehicle.registrationType is temporaryRegistered

  9. licensePlate is not required

  10. no specific format validation applied

  11. vehicle.registrationType is recorded

  12. licensePlate is required

  13. should start with letters and end with digits Ex: IFOTOPENI16, OTOPENIIF45, CLUJ637

  14. vehicle.registrationType is temporaryRecorded

  15. licensePlate is not required

  16. no specific format validation applied

3.2. Response

The object structure returned in the data field is described in this section.

Parameter
Type
Description
provider
object
 
provider.organization
object
 
provider.organization.businessName
string
Insurer identifier
product
object
 
product.name
string
Product identifier
offers
array of Offer objects
A list of generated offers, which can include offers generated successfully and/or offers generated with errors.
Offer object (in case of successfully generated offer)
Parameter
Type
Description
offerId
number
Unique identifier of the offer.Use this to transform the offer into a policy.
providerOfferCode
string
Unique identifier of the offer generated by the insurer
premiumAmount
number
Premium amount defined in the currency returned in currency field
premiumAmountNet
number
Premium net amount defined in the currency returned in currency field
currency
string
Currency
startDate
string
The start date of the policy
endDate
string
The end date of the policy
referenceRate
number
Offer reference rate
bonusMalusClass
string
BM used to calculate premiumAmount
commissionValue
number
Commission value which will be received by the broker
commissionPercent
number
Commission percent used to calculate commissionValue
greenCardExclusions
string
List of countries where the policy will not applied
notes
string
Notes
offerExpiryDate
string
Format:Y-m-d
directCompensation
object
Offer information with direct compensation applied
directCompensation.providerOfferCode
string
Unique identifier of the offer generated by the insurer with direct compensation applied
directCompensation.premiumAmount
number
Premium amount with direct compensation defined in the currency returned in currency field
directCompensation.commissionValue
number
Commission value with direct compensation
directCompensation.commissionPercent
number
Commission percent with direct compensation
directCompensation.paymentLink
string
Payment provider link
appears only if configured (done by developer) and product.motor.generatePaymentLink set to true
directCompensation.installments
Array of objects
Installment details for the direct compensation
appears only if configured (done by developer) and product.motor.generatePaymentLink set to true
directCompensation.installments.id
number
Number of the installment
directCompensation.installments.amount
number
Premium amount of the installment
directCompensation.installments.dueDate
string
Format:Y-m-d
installments
Array of objects
installments.id
number
Number of the installment
installments.amount
number
Premium amount of the installment
installments.dueDate
string
Format:Y-m-d
pid
string
PID file url (filled only if configured - done by developer)
toc
string
Terms And Conditions file url(filled only if configured - done by developer)
paymentLink
string
Payment provider link
appears only if configured (done by developer) and product.motor.generatePaymentLink set to true
Policyholder and vehicle.owner accepted combinations
policyholder
vehicle.owner
Acceptance criteria
Individual person (PF)
Individual person (PF)
Yes, if policyholder is the same as vehicle.owner and vehicle.isLeased is false
Individual person (PF)
Legal entity(PJ)
Yes
Legal entity(PJ)
Legal entity(PJ)
Yes
• if vehicle.owner is a leasing company, vehicle.owner is different from policyholder and vehicle.isLeased is true

• if policyholder is the same as vehicle.owner and vehicle.isLeased is false


4. Transform offer to policy

Endpoint: POST /policy

For repeated requests using the same offer ID, the response will return the policy that was saved during the first request. If the policy has already been issued, a new one will not be created.

4.1. Request

4.1.1. Input parameters

Parameter
Type
Required
Description
offerId
number
Yes
Unique identifier of the offer (offerId from Offer object)
includeDirectCompensation
boolean
No
If set to true the policy will be issued with direct compensation applied
payment
Payment object
Yes
Payment details
additionalData
object
No (depending on the product)
Must be completed according to the Product specific parameters section
This structure can either be sent with product-specific parameters or with all parameters every time. Parameters sent in the plus will be ignored.
Payment object
Parameter
Type
Required
Description
Validation rules
method
string
Yes
Payment methodNote: not all products will accept every option
Accepted values: receipt, broker receipt, payment order, broker payment order, pos
* For credit or debit card payments, use pos.
currency
string
Yes
Payment currency
At the moment only RON is accepted
amount
number
Yes
The payment amount in RON
 
date
string
Yes
Payment date
Accepted format: YYYY-MM-DD
documentNumber
string
Yes
Payment proof document details
For broker receipt, use a serial number combination; otherwise, any value is acceptable.

4.2. Response

The object structure returned in the data field is described in this section.

Parameter
Type
Description
policies
array of Policy objects
A list of issued policies, which can include policies successfully and/or with errors.
Policy object (in case of successfully issued policy)
Parameter
Type
Description
provider
object
 
provider.organization
object
 
provider.organization.businessName
string
Insurer identifier
policyId
number
Unique identifier of the issued policy
series
string
Policy series
number
number
Policy number
payment
ResponsePayment object
 
startDate
string
Policy start date
endDate
string
Policy end date
premiumAmount
number
Value of the policy
currency
string
Policy value currency
installments
object
installments.id
number
Number of the installment
installments.amount
number
Premium amount of the installment
installments.dueDate
date
Format:Y-m-d
ResponsePayment object
Parameter
Type
Description
method
string
Payment method sent to insurer (mapped to insurer’s payment methods)
currency
string
The currency in which the payment was made
amount
number
Paid amount
date
string
Payment date
documentNumber
string
Payment proof document details

5. Documents

5.1. Offer

Endpoint: GET /offer/{offerId}

This API endpoint enables users to download the offer in PDF format. You will need to provide the OfferID received from the offer request call to access the download feature.

5.2. Policy

This API endpoint enables users to download the policy in PDF format.

5.2.1 By policy identifier

Endpoint: GET /policy/{policyId}

You will need to provide the PolicyID received from the offer transform request call to access the download feature.

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

This section of the implementation manual outlines the specifications for the additionalData object, which forms part of the request for bidding and transformation of offers into policies. The section also describes specific validation rules for each product.

6.1 Allianz

6.1.1 Offer

Parameter
Type
Required
Description
Validation rules
product.motor.hasCasco
boolean
No
Set to true if the vehicle has an active CASCO insurance
Default: false
product.motor.series
string
Yes, if product.motor.number is set
In case of renewal the existing policy series
product.motor.number
string
Yes, if product.motor.series is set
In case of renewal the existing policy number
product.coordonatorId
number
No
An unique identifier assigned to the ALLIANZ agent that is creating the offer.
Valid values can be looked up using /nomenclature/allianz/rca/organizations endpoint
product.recommenderTaxId
string
No
Persons CNP that recommended the insurer (possible discount on ALLINAZ side)
If exists has to be a valid CNP
product.protocolId
number
No
An unique identifier assgined by ALLIANZ
product.extraCoverage
boolean
No
Set to true if extra coverage is applied to the policy (defined by ALLIANZ)
Default: false
product.isAcquiredFromRomanianDealer
boolean
No
Set to true if the vehicle was acquired from a romanian dealer
Default: false

Business rules:

  1. If the vehicle owner is an individual person the product.motor.termTime can only be equal to 12

  2. In case product.vehicle.usageType is one of taxi, drivingShcool or carRental the product.vehicle.vehicleType can only be set to one of M1 or M1G

  3. If vehicleType is M2, M2G, M3, M3G vehicle.seats must be greater than 9

  4. If the vehicle is either temporaryRegistered or temporaryRecorded the product.motor.termTime can only be 1 month.

  5. The product.additionalData.product.extraCoverage can only be applied if product.motor.termTime is for 12 months

  6. product.motor.termTime and product.motor.installmentCount value combination

product.motor.termTime
product.motor.installmentCount
1, 2, 3
1
4, 5
1, 2
6, 7
1, 2, 4
8, 9
1, 2, 4, 6
10, 11
1, 2, 4, 6, 8
12
1, 2, 4, 6, 8, 10
  1. The CAEN code is required for legal persons (product.policyholder.caenCode, product.vehicle.owner.caenCode).

  2. product.vehicle.enginePower, product.vehicle.engineDisplacement and product.vehicle.seats fields are required when product.vehicle.vehicleType is S

  3. When product.vehicle.vehicleType is M1 or M1G then the maximum accepted value for product.vehicle.totalWeight is 3500Kg

  4. product.motor.commissionPercentLimit must be an integer.

  5. product.vehicle.identification is required when vehicle.registrationTypeis registered or recorded

6.1.2 Transform offer

  1. Payment is not supported with receipt.

6.2 Groupama

6.2.1 Offer

Business rules:

  • For a person, the 'isRetired' and 'hasDisability' parameters cannot be true at the same time.

  • For legal entities, the 'isRetired' parameter cannot be true.

  • product.motor.startDate has to be Today + 1 except if product.vehicle.registrationType is temporaryRegistered, when it can be the current date.

  • product.motor.termTime varies depending on product.vehicle.registrationType:

  • if recorded, registered, or temporaryRecorded accepted values: 6, 12

  • if temporaryRegistered accepted values: 1, 6, 12

  • The installment count must be 1 for insurance periods less than 12 months.

  • The number of installments is conditioned by the value of the insurance premium and insured type (individual/legal), as follows:

Insurance premium (Lei)
Individual person
Legal person
< 500
1
1
>500 - 1000
1, 2
1
>1000 - 2000
1, 2, 4
1, 2
>2000
1, 2, 4
1, 2, 4
  • product.motor.commisionPercentLimit maximum value is limited to 3% if product.vehicle.usageType is taxi

  • product.vehicle.driver: A maximum of three drivers can be defined.

  • product.vehicle.usageType values carRental,security, courier, cargoTransportation and distribution can only be selected if product.vehicle.owner is legal entity

  • The recorded and temporary recorded registration type is accepted only for M3 (tram/trolleybus), L*, T, C vehicle types.

  • For vehicle types M3 and M3G vehicle’s total weight (product.vehicle.totalWeight) must be between 5001 and 99999 kg.

  • product.vehicle.enginePower is required when product.vehicle.vehicleType is S

  • product.vehicle.licensePlate is required when product.vehicle.registrationType is temporaryRecorded

  • product.vehicle.enginePower and engineDisplacement field are required when product.vehicle.vehicleType is S with a minimum value of 1

6.2.2 Transform offer

No extra data needs to be specified here.

Business rules:

  1. The payment.method option receipt can be restricted by the issuing company, there is no validation restriction except the one received from the issuing company

6.3 DallBogg

6.3.1 Offer

Business rules:

  1. product.motor.installmentCount :

  2. accepted values: 1

  3. installment count can be 2 only when the insurance period is 12 months. It will be mapped to 1 when the parameter is not set.

  4. product.motor.startDate must be after the current date

  5. product.vehicle.vin has to be a fixed length of 17 characters

  6. product.vehicle.enginePower field is required when product.vehicle.vehicleType is S

  7. product.vehicle.engineDisplacement field is required when product.vehicle.vehicleType is S and product.vehicle.fuelType is not electric

  8. if product.vehicle.vehicleType has one of the following values:  M1, M2, M3, M1G, M2G, M3G, N1, N2, N3, N1G, N2G, N3G then the product.vehicle.registrationType can only be :  registered, temporaryRegistered.

  9. the field product.motor.commissionPercentLimit can have a maximum value of 99

6.3.2 Transform offer

No extra data needs to be specified here.

6.4 Hellas Autonom & Hellas NextIns

  • Since the implementer is shared, both Hellas Autonom and Hellas NextIns have a common contract

6.4.1 Offer

Parameter
Type
Required
Description rules
Validation rules
vehicle.bodyType
string
No
Vehicle body type
Must have one of the flowwoeing values: "CABRIO", "COUPE", "HATCHBACK", "MPV", "SUV", "VAN", "MINI_VAN", "PICK_UP", "CROSSOVER", "SEDAN", "STATION_WAGON"
vehicle.numberOfWheels
number
No
Vehicle number of wheels.
vehicle.taxableHorsePower
number
No
Vehicle taxable horsepower.
vehicle.purchasedNew
boolean
No
Determines if vehicle was purchased new
vehicle.transferredDate
string
Yes, if purchasedNew is set to false

Business rules:

  1. product.motor.installmentCount must be 1

  2. the bonusMalus class is determined by the insurer

  3. only romanian mobile numbers are accepted

  4. product.vehicle.owner.address.country must be RO

  5. product.policyholder.address.country MUST BE RO

  6. product.vehicle.owner.companyRegistryNumber is not required

  7. product.policyholder.companyRegistryNumber is not required

According to the insurer, the direct compensation commissionPercent is the same as the commission percent for the RCA offer

6.4.2 Transform offer

No extra data needs to be specified here.

6.5 Axeria

6.5.1 Offer

Parameter
Type
Required
Description
Validation rules
product.policyholder.address.houseNumber
string
Yes
product.vehicle.owner.address.houseNumber
string
Yes, if owner is legal entity

Business rules

  1. The product.motor.installmentCount value can only be 1

  2. If product.vehicle.registrationType is equal to temporaryRegistered or temporaryRecorded then product.motor.termTime can only be equal to 1

  3. product.vehicle.seats field is required when product.vehicle.vehicleType is S with a minimum value of 1

6.6 Generali

6.6.1 Offer

Parameter
Type
Required
Description
Validation rules
product.vehicle.expirationDatePti
string
Yes
Expiry date of PTI (periodic technical inspection)
Accepted format: YYYY-MM-DD
product.vehicle.isOwnerTransfer
boolean
No
The parameter indicates that the vehicle is a transfer of ownership and is only relevant for temporaryRegistered|temporaryRecorded statuses.
Default: false
product.bonusMalusClaimsNo
number
No
No of claims paid in the reference period. This value represents the declaration itself responsibility of the client and will be used only if the CEDAM service does not work.
The reference period is the calendar year prior to the year of the policy issue date.
Default: 0
product.bonusMalusPrevClass
string
No
Current class of Bonus Malus. This value represents the class declared by customer at his own risk and will be used only if the CEDAM service does not works.
If nothing is transmitted, the value is considered default B0.
Default: B0
Accepted values: B0, B1, B2, B3, B4, B5, B6, B7, B8, M1, M2, M3, M4, M5, M6, M7, M8
product.noYoungDriver
boolean
No
Declaration on own responsibility: all drivers are over 35 years old. (including the vehicle owner) The value is collected for car pricing.
Default: false
product.blockPendingOffer
boolean
No
In case the offer is blocked by the insurer, setting this field to false can bypass it.
Note: issuing the offer might be blocked by the insurer
Default: true
rafCode
string
No
A unique internal identifier used by insurance companies in Romania
• If set, must start with "RAF" followed by 1 to 10 digits OR have the value emitere online


Business rules:

  1. The accepted value for product.motor.installmentCount is 1.

  2. product.motor.commissionPercentLimit: Accepts numbers only with one decimal place.

  3. drivingLicense.issueDate is mandatory

  4. address.postcode is mandatory

  5. product.vehicle.driver: A maximum of seven drivers can be defined.

  6. Fuel type hybrid is not supported.

  7. if product.vehicle.vehicleType is M1 or M1G then product.vehicle.registrationType must be registered or temporaryRegistered

  8. if product.vehicle.registrationType is temporaryRecorded or temporaryRegistered then the accepted values for product.motor.termTime are 1, 6, 12, except when product.additionalData.product.vehicle.isOwnerTransfer is true

  9. product.vehicle.seats field is required when product.vehicle.vehicleType is S

  10. product.vehicle.vin must have at least 6 characters

  11. if product.vehicle.isOwnerTransfer is true, then product.motor.startDate must be current date + 1

6.6.2 Transform offer

Parameter
Type
Required
Description
Validation rules
product.policyholder.residency
string
No
Residency
Accepted values: resident in Romania, resident outside Romania but within the EC, resident outside the ECDefault: resident in Romania
product.policyholder.politicallyExposed
string
No
Political exposure
Accepted values: no, yes, person with a public management functionDefault: no
product.vehicle.owner.residency
string
No
Residency
Accepted values: resident in Romania, resident outside Romania but within the EC, resident outside the ECDefault: resident in Romania
product.vehicle.owner.politicallyExposed
string
No
Political exposure
Accepted values: no, yes, person with a public management functionDefault: no

6.7 Asirom

6.7.1 Offer

Parameter
Type
Required
Description
Validation rules
conventionNumber
number
No
Vehicles number of conventions till now
If not set default value is 0.
previousBonusMalus
string
No
Owners previous BM class
If not set default value is B0Accepted values: M8, M7, M6, M5, M4, M3, M2, M1, B0, B1, B2, B3, B4, B5, B6, B7, B8
previousDamageNumber
number
No
Vehicles previous number of damages
If not set default value is 0.
communicationChannel
string
No
Method of communication of the offer details.
If not set default value is broker.
Accepted values: email, broker
For the email case the product.policyholder.email or product.vehicle.owner.email field should be filled.
partnershipAuctionAgreement
Object
No

partnershipAuctionAgreement object:

Parameter
Type
Required
Description
Validation rules
policyType
string
No
Policy Type
Accepted values: Auction, Leasing and partnerships, Simple
leasingType
string
Yes, if policyType is Leasing si Parteneriate
Leasing Type
Accepted values: Financial leasing, Operational leasing, Other partnerships
auctionNumber
string
Yes, if policyType is Licitatie
ex: LX111
isPartnership
boolean
Yes, if policyType is Leasing si Parteneriate
partnershipNumber
string
Yes, if isPartnership is true or 1
ex: LX111

Business rules:

  1. product.vehicle.yearOfConstruction must be between 1921 and current year

  2. Usage types carRental, security, courier and distribution are available only for legal persons.

  3. product.vehicle.licensePlate is mandatory for registration types registered, recorded and temporaryRecorded

  4. product.motor.startDate must be at least current date + 1 when product.vehicle.registrationType is temporaryRecorded.

  5. product.motor.installmentCount value is ignored and it will always be set to 1

  6. product.vehicle.identification is required when vehicle.registrationTypeis registered or recorded

6.7.2 Transform offer

No extra data needs to be specified here.

Business rules:

  1. payment.date cannot be in the future.

6.8 Omniasig

6.8.1 Offer

Parameter
Type
Required
Description
Validation rules
product.discount
number
No
Discount
Min: 0, Max: 100, Default: 0
product.discountReason
string
No
Discount reason
product.blockPendingOffer
boolean
No
In case the offer is blocked by the insurer, setting this field to false can bypass it.
Note: issuing the offer might be blocked by the insurer
Default: true
product.bonusMalusClaimsNo
number
No
No of claims paid in the reference period. This value represents the declaration itself responsibility of the client and will be used only if the CEDAM service does not work.
The reference period is the calendar year prior to the year of the policy issue date.
Default: 0
product.bonusMalusPrevClass
string
No
Previous class of Bonus Malus. This value represents the class declared by customer at his own risk and will be used only if the CEDAM service does not works.
Accepted values: B0, B1, B2, B3, B4, B5, B6, B7, B8, M1, M2, M3, M4, M5, M6, M7, M8
product.bonusMalusCurrentClass
string
No
Current class of Bonus Malus. This value represents the class declared by customer at his own risk and will be used only if the CEDAM service does not works.
Accepted values: B0, B1, B2, B3, B4, B5, B6, B7, B8, M1, M2, M3, M4, M5, M6, M7, M8

Business rules:

  1. For temporary numbers, only policies for 30 days can be issued. This means that product.motor.termTime must be 1.

  2. If product.motor.termTime differs from 6 or 12 months then the generated offer is blocked by the insurer. This means that’s not possible to download it’s PDF and it cannot be transformed into policy.

  3. product.motor.installmentCount must be 1.

  4. When vehicle type is S product.vehicle.enginePower must be 1.

  5. product.vehicle.seats must be at least 10 when vehicleType is M2, M2G, M3, M3G.

  6. The CAEN code is required for legal persons (product.policyholder.caenCode, product.vehicle.owner.caenCode).

  7. The maximum accepted value for product.motor.commissionPercentLimit is 99.99%.

  8. product.vehicle.identification is required when vehicle.registrationTypeis registered or recorded

The provider may return an error when creating an offer for a vehicle in the following cases:

  1. The vehicle is not found in the DRPCIV database and is older than 2 years (inclusive)

  2. The vehicle is listed in the DRPCIV database but is still pending registration (TEMPORARY_REGISTERED or TEMPORARY_RECORDED)

6.8.2 Transform offer

No extra data needs to be specified here.

Business rules:

  1. payment.date is not validated

6.9 Grawe

6.9.1 Offer

Parameter
Type
Required
Description rules
Validation rules
product.policyholder.isPoliticallyExposed
boolean
No
Determines if person is politically exposed.
Default: false
product.vehicle.isOwnerTransfer
boolean
No
The parameter indicates that the vehicle is a transfer of ownership and is only relevant for temporaryRegistered|temporaryRecorded statuses.
Default: false
product.vehicle.owner.isPoliticallyExposed
boolean
No
Determines if person is politically exposed.
Default: false

Business rules:

  1. motor.startData can be maximum 60 days from today

  2. motor.termTime must be 1 for temporary license numbers, except when product.additionalData.product.vehicle.isOwnerTransfer is true.

  3. motor.installmentCount can only be 1

  4. policyholder.drivingLicense is required (for individual person)

  5. owner.gender is required when owner is present (for individual person)

  6. owner.drivingLicense is required when owner is present (for individual person)

  7. policyholder.address.postcode, floor is required

  8. owner.address.postcode, floor is required when owner is present

  9. vehicle.firstRegistration is required

  10. vehicle.currentMieage is required and minimum 1

  11. vehicle.model can have a maximum length of 80

  12. vehicle.yearOfConstruction is minimum 1901

  13. vehicle.engineDisplacement is limited as such:

  14. for vehicle types M1, M1G it must be smaller than 5000

  15. for vehicle types L1e ... L7e and S it must be smaller than 10000

  16. vehicle.totalWeight must pe smaller then 3501 for vehicle types M1, M1G

  17. vehicle.seats is limited as such:

  18. for vehicle types M1, M1G it must be smaller than 8

  19. for vehicle types L1e ... L7e it must be smaller than 3

  20. vehicle types M1, M1G are not compatible with usage types cargoTransportation, passengerTransportation, distribution

  21. if vehicle type is M1, M1G, N1, N1G, N2, N2G, N3, N3G then product.vehicle.vin must contain exactly 17 characters.

  22. product.vehicle.identification is required when vehicle.registrationTypeis registered or recorded

  23. product.policyholder.identification.idNumber is required if the person is not a legal entity

  24. product.vehicle.owner.identification.idNumber is required if the person is not a legal entity

Grawe does not support diplomatic numbers. (license plates that start with CD, TC, CO)

The given postcode must be valid. This is not validated by us at the moment. If a wrong postcode is sent, the provider will throw an error.

There are cases when offers are generated with the note: Approval is needed in order to issue this offer. . For the moment it has been agreed that this approval flow will not be implemented. The pdf files for these offers cannot be obtained, and they cannot be issued.

6.9.2 Transform offer

No extra data needs to be specified here.

Business rules:

  1. payment.date is not validated

6.10 Eazy Insure

6.10.1 Offer

No extra data needs to be specified here.

Business rules:

  1. product.motor.installmentCount has to be equal to 1

  2. product.policyholder.email is required

  3. if product.vehicle.owner is set product.vehicle.owner.email is required

  4. if product.policyholder is different from product.vehicle.owner then product.vehicle.isLeased has to be set to true

  5. product.policyholder.email and product.policyholder.mobileNumber is required

  6. if product.vehicle.owner is set product.vehicle.owner.email and product.vehicle.owner.mobileNumber is requirede

  7. The CAEN code is required for legal persons (product.policyholder.caenCode, product.vehicle.owner.caenCode).

  8. product.vehicle.engineDisplacement can have the following values

  9. minimum 1 if product.vehicle.vehicleType one of [L1e, L2e, L3e, L4e, L5e, L6e, L7e]

  10. minimum 595 if product.vehicle.vehicleType not one of [L1e, L2e, L3e, L4e, L5e, L6e, L7e O1, O2, O3, O4, R] or product.vehicle.fuelType isn’t electric

  11. maximum 8000 if product.vehicle.vehicleType is one of [M1, M1G]

  12. 0 if product.vehicle.vehicleType is one of [O1, O2, O3, O4, R] or product.vehicle.fuelType is electric

  13. product.vehicle.seats can have the following values

  14. 0 if product.vehicle.vehicleType is one of [O1, O2, O3, O4, R]

  15. maximum 9 if product.vehicle.vehicleType is one of [M1, M1G]

  16. minimum 10 if product.vehicle.vehicleType is one of [M2, M2G, M3, M3G]

  17. minimum 1 otherwise

  18. if product.vehicle.vehicleType is not one of [M1, M1G, L1e, L2e, L3e, L4e, L5e, L6e, L7e] the product.vehicle.usageType cannot be personal

  19. if product.vehicle.usageType values personal, taxi, courier and drivingSchool are available for individual and legal entities, while the rest only for legal entities

  20. product.vehicle.yearOfConstruction maximum value is the current year

  21. if product.vehicle.registrationType is temporaryRecorded the product.motor.termTime cannot exceed 3 months

  22. product.policyholder.address.country and product.vehivle.owner.address.country (if present) the value has to be RO

  23. product.vehicle.identification is required when vehicle.registrationTypeis registered

  24. the county from product.vehicle.licensePlate must be the same as the owner’s county ( if the owner is not sent, the policyholder is considered the owner)

  25. product.vehicle.registrationType can only be registered or temporaryRegistered

6.10.2 Transform offer

No extra data needs to be specified here.

Business rules:

  1. accepted values for payment.method are [broker receipt, payment order, broker payment order, pos]

7. Vehicle

7.1 Get Vehicle

Endpoint: GET /vehicle?licensePlate={licensePlate}&vin={vin}

This API endpoint is used to retrieve information about a vehicle using either the vehicle's license plate or VIN. At least one of these identifiers must be provided to obtain the information.

Response: The object structure returned in the data field is described in this section.

Parameter
Type
Description
brand
string
model
string
commercialName
string
color
string
fuelType
string
In diesel, petrol, electric, hybrid, lpg
vehicleType
string
In M1, M1G, M2, M2G, M3, M3G, N1, N1G, N2, N2G, N3, N3G, O1, O2, O3, O4, L1e, L2e, L3e, L4e, L5e, L6e, L7e, T, C, R, S
nationalVehicleType
string
vin
string
licensePlate
string
identification
string
engineDisplacement
number
enginePower
number
totalWeight
number
yearOfConstruction
number
seats
number
seatsStanding
number
firstRegistration
string
format: YYYY-MM-DD
currentRegistration
string
format: YYYY-MM-DD
endOfCurrentRegistration
string
format: YYYY-MM-DD
registrationType
string
In: recorded, registered
updatedAt
string
format: YYYY-MM-DD

8. Product

8.1 Get Products

Endpoint: GET /product

This API endpoint is used to retrieve information about all products that are active.

Response: The object structure returned in the data field is described in this section.

Parameter
Type
Description
insurer
string
 
name
string
 
slug
string
 
termsAndConditions
string
 
productInformationDocument
string

9. Company

9.1 Get Company

Endpoint: GET /company

This API endpoint is used to retrieve information about a company based on its tax ID.

Response: The object structure returned in the data field is described in this section.

Parameter
Type
Description
caenCode
string
 
businessName
string
 
isLegalForm
boolean
 
email
string
 
mobileNumber
string
taxId
string
address
Address object

10. Nomenclatures

There is a Nomenclature API from which various nomenclatures, such as counties, cities, leasing companies, and others, can be accessed.

The documentation can be found at https://app.swaggerhub.com/apis-docs/Life-is-Hard3/nomenclator.api.lifeishard.ro/.

Authentication typically works with the same credentials used for the RcaAPI. If you encounter any issues, feel free to contact the support team.

11. Company

  • Endpoint: GET /company/{taxId}

  • this endpoint returns information about companies based on the taxId (CUI)