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:
-
test/development: https://rca-qa.api.lifeishard.ro/ - this is a test environment, where are available latest changes
-
production: https://rca.api.lifeishard.ro/
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:
-
Authentication Obtain a JWT token using credentials provided by OPERATOR
-
Create offer the response includes the [offerId] – this id will be needed in the following requests
-
Transform offer to policy use [offerId] from the offer step for policy to get the policy data
-
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.
-
The
vehicle.licensePlatecan have one of the following formatting rule based on thevehicle.registrationType: -
vehicle.registrationTypeisregistered -
licensePlateis required -
length between 3 and 8 characters (upper case and digits)
-
can start with special institution codes (
MAI,A,CD,TC,FA,ALA,CO) continuing with digits Ex:MAI35519,CD146108 -
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 -
the 3 letter part cannot start with
IorO, cannot containQ, cannot beIIIorOOO -
vehicle.registrationTypeistemporaryRegistered -
licensePlateis not required -
no specific format validation applied
-
vehicle.registrationTypeisrecorded -
licensePlateis required -
should start with letters and end with digitsEx:IFOTOPENI16,OTOPENIIF45,CLUJ637 -
vehicle.registrationTypeistemporaryRecorded -
licensePlateis not required -
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:
-
If the vehicle owner is an individual person the
product.motor.termTimecan only be equal to12 -
In case
product.vehicle.usageTypeis one oftaxi,drivingShcoolorcarRentaltheproduct.vehicle.vehicleTypecan only be set to one ofM1orM1G -
If
vehicleTypeisM2, M2G, M3, M3Gvehicle.seatsmust be greater than 9 -
If the vehicle is eithertemporaryRegisteredortemporaryRecordedtheproduct.motor.termTimecan only be 1 month. -
The
product.additionalData.product.extraCoveragecan only be applied ifproduct.motor.termTimeis for 12 months -
product.motor.termTimeandproduct.motor.installmentCountvalue 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 |
-
The CAEN code is required for legal persons (
product.policyholder.caenCode,product.vehicle.owner.caenCode). -
product.vehicle.enginePower,product.vehicle.engineDisplacementandproduct.vehicle.seatsfields are required whenproduct.vehicle.vehicleTypeisS -
When
product.vehicle.vehicleTypeisM1orM1Gthen the maximum accepted value forproduct.vehicle.totalWeightis3500Kg -
product.motor.commissionPercentLimitmust be an integer. -
product.vehicle.identificationis required whenvehicle.registrationTypeisregisteredorrecorded
6.1.2 Transform offer
- 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.startDatehas to be Today + 1 except ifproduct.vehicle.registrationTypeistemporaryRegistered, when it can be the current date. -
product.motor.termTimevaries depending onproduct.vehicle.registrationType: -
if
recorded,registered, ortemporaryRecordedaccepted values:6,12 -
if
temporaryRegisteredaccepted 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.commisionPercentLimitmaximum value is limited to 3% ifproduct.vehicle.usageTypeistaxi -
product.vehicle.driver: A maximum of three drivers can be defined. -
product.vehicle.usageTypevaluescarRental,security,courier,cargoTransportationanddistributioncan only be selected ifproduct.vehicle.owneris legal entity -
The recorded and temporary recorded registration type is accepted only for M3 (tram/trolleybus),
L*, T, C vehicle types. -
For vehicle types
M3andM3Gvehicle’s total weight (product.vehicle.totalWeight) must be between5001and99999kg. -
product.vehicle.enginePoweris required whenproduct.vehicle.vehicleTypeisS -
product.vehicle.licensePlateis required whenproduct.vehicle.registrationTypeistemporaryRecorded -
product.vehicle.enginePowerandengineDisplacementfield are required whenproduct.vehicle.vehicleTypeisSwith a minimum value of1
6.2.2 Transform offer
No extra data needs to be specified here.
Business rules:
- The
payment.methodoptionreceiptcan 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:
-
product.motor.installmentCount: -
accepted values:
1 -
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. -
product.motor.startDatemust be after the current date -
product.vehicle.vinhas to be a fixed length of 17 characters -
product.vehicle.enginePowerfield is required whenproduct.vehicle.vehicleTypeisS -
product.vehicle.engineDisplacementfield is required whenproduct.vehicle.vehicleTypeisSandproduct.vehicle.fuelTypeis notelectric -
if
product.vehicle.vehicleTypehas one of the following values:M1, M2, M3, M1G, M2G, M3G, N1, N2, N3, N1G, N2G, N3Gthen theproduct.vehicle.registrationTypecan only be :registered, temporaryRegistered. -
the field
product.motor.commissionPercentLimitcan 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:
-
product.motor.installmentCountmust be1 -
the bonusMalus class is determined by the insurer
-
only romanian mobile numbers are accepted
-
product.vehicle.owner.address.countrymust be RO -
product.policyholder.address.countryMUST BE RO -
product.vehicle.owner.companyRegistryNumberis not required -
product.policyholder.companyRegistryNumberis 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
-
The
product.motor.installmentCountvalue can only be1 -
If
product.vehicle.registrationTypeis equal totemporaryRegisteredortemporaryRecordedthenproduct.motor.termTimecan only be equal to1 -
product.vehicle.seatsfield is required whenproduct.vehicle.vehicleTypeisSwith a minimum value of1
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:
-
The accepted value for
product.motor.installmentCountis1. -
product.motor.commissionPercentLimit: Accepts numbers only with one decimal place. -
drivingLicense.issueDateis mandatory -
address.postcodeis mandatory -
product.vehicle.driver: A maximum of seven drivers can be defined. -
Fuel type
hybridis not supported. -
if
product.vehicle.vehicleTypeisM1orM1Gthenproduct.vehicle.registrationTypemust beregisteredortemporaryRegistered -
if
product.vehicle.registrationTypeistemporaryRecordedortemporaryRegisteredthen the accepted values forproduct.motor.termTimeare1,6,12, except whenproduct.additionalData.product.vehicle.isOwnerTransferis true -
product.vehicle.seatsfield is required whenproduct.vehicle.vehicleTypeisS -
product.vehicle.vinmust have at least6characters -
if
product.vehicle.isOwnerTransferistrue, thenproduct.motor.startDatemust 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:
-
product.vehicle.yearOfConstructionmust be between1921and current year -
Usage types
carRental,security,courieranddistributionare available only for legal persons. -
product.vehicle.licensePlateis mandatory for registration typesregistered,recordedandtemporaryRecorded -
product.motor.startDatemust be at least current date + 1 whenproduct.vehicle.registrationTypeistemporaryRecorded. -
product.motor.installmentCountvalue is ignored and it will always be set to1 -
product.vehicle.identificationis required whenvehicle.registrationTypeisregisteredorrecorded
6.7.2 Transform offer
No extra data needs to be specified here.
Business rules:
payment.datecannot 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:
-
For temporary numbers, only policies for 30 days can be issued. This means that
product.motor.termTimemust be1. -
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. -
product.motor.installmentCountmust be1. -
When vehicle type is
Sproduct.vehicle.enginePowermust be1. -
product.vehicle.seatsmust be at least10whenvehicleTypeisM2, M2G, M3, M3G. -
The CAEN code is required for legal persons (
product.policyholder.caenCode,product.vehicle.owner.caenCode). -
The maximum accepted value for
product.motor.commissionPercentLimitis99.99%. -
product.vehicle.identificationis required whenvehicle.registrationTypeisregisteredorrecorded
The provider may return an error when creating an offer for a vehicle in the following cases:
-
The vehicle is not found in the DRPCIV database and is older than 2 years (inclusive)
-
The vehicle is listed in the DRPCIV database but is still pending registration (
TEMPORARY_REGISTEREDorTEMPORARY_RECORDED)
6.8.2 Transform offer
No extra data needs to be specified here.
Business rules:
payment.dateis 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:
-
motor.startDatacan be maximum 60 days from today -
motor.termTimemust be1for temporary license numbers, except whenproduct.additionalData.product.vehicle.isOwnerTransferis true. -
motor.installmentCountcan only be1 -
policyholder.drivingLicenseis required (for individual person) -
owner.genderis required whenowneris present (for individual person) -
owner.drivingLicenseis required whenowneris present (for individual person) -
policyholder.address.postcode, flooris required -
owner.address.postcode, flooris required whenowneris present -
vehicle.firstRegistrationis required -
vehicle.currentMieageis required and minimum1 -
vehicle.modelcan have a maximum length of80 -
vehicle.yearOfConstructionis minimum1901 -
vehicle.engineDisplacementis limited as such: -
for vehicle types
M1, M1Git must be smaller than5000 -
for vehicle types
L1e ... L7eandSit must be smaller than10000 -
vehicle.totalWeightmust pe smaller then 3501 for vehicle typesM1, M1G -
vehicle.seatsis limited as such: -
for vehicle types
M1, M1Git must be smaller than8 -
for vehicle types
L1e ... L7eit must be smaller than3 -
vehicle types
M1, M1Gare not compatible with usage typescargoTransportation, passengerTransportation, distribution -
if vehicle type is
M1,M1G,N1,N1G,N2,N2G,N3,N3Gthenproduct.vehicle.vinmust contain exactly 17 characters. -
product.vehicle.identificationis required whenvehicle.registrationTypeisregisteredorrecorded -
product.policyholder.identification.idNumberis required if the person is not a legal entity -
product.vehicle.owner.identification.idNumberis 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:
payment.dateis not validated
6.10 Eazy Insure
6.10.1 Offer
No extra data needs to be specified here.
Business rules:
-
product.motor.installmentCounthas to be equal to1 -
product.policyholder.emailis required -
if
product.vehicle.owneris setproduct.vehicle.owner.emailis required -
if
product.policyholderis different fromproduct.vehicle.ownerthenproduct.vehicle.isLeasedhas to be set totrue -
product.policyholder.emailandproduct.policyholder.mobileNumberis required -
if
product.vehicle.owneris setproduct.vehicle.owner.emailandproduct.vehicle.owner.mobileNumberis requirede -
The CAEN code is required for legal persons (
product.policyholder.caenCode,product.vehicle.owner.caenCode). -
product.vehicle.engineDisplacementcan have the following values -
minimum 1ifproduct.vehicle.vehicleTypeone of [L1e, L2e, L3e, L4e, L5e, L6e, L7e] -
minimum 595ifproduct.vehicle.vehicleTypenot one of [L1e, L2e, L3e, L4e, L5e, L6e, L7e O1, O2, O3, O4, R] orproduct.vehicle.fuelTypeisn’telectric -
maximum 8000ifproduct.vehicle.vehicleTypeis one of [M1, M1G] -
0ifproduct.vehicle.vehicleTypeis one of [O1, O2, O3, O4, R] orproduct.vehicle.fuelTypeiselectric -
product.vehicle.seatscan have the following values -
0ifproduct.vehicle.vehicleTypeis one of [O1, O2, O3, O4, R] -
maximum 9ifproduct.vehicle.vehicleTypeis one of [M1, M1G] -
minimum 10ifproduct.vehicle.vehicleTypeis one of [M2, M2G, M3, M3G] -
minimum 1otherwise -
if
product.vehicle.vehicleTypeis not one of [M1, M1G, L1e, L2e, L3e, L4e, L5e, L6e, L7e] theproduct.vehicle.usageTypecannot bepersonal -
if
product.vehicle.usageTypevaluespersonal,taxi,courieranddrivingSchoolare available for individual and legal entities, while the rest only for legal entities -
product.vehicle.yearOfConstructionmaximum value is the current year -
ifproduct.vehicle.registrationTypeistemporaryRecordedtheproduct.motor.termTimecannot exceed3months -
product.policyholder.address.countryandproduct.vehivle.owner.address.country(if present) the value has to beRO -
product.vehicle.identificationis required whenvehicle.registrationTypeisregistered -
the county from
product.vehicle.licensePlatemust be the same as the owner’s county ( if the owner is not sent, the policyholder is considered the owner) -
product.vehicle.registrationTypecan only beregisteredortemporaryRegistered
6.10.2 Transform offer
No extra data needs to be specified here.
Business rules:
- accepted values for
payment.methodare [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)