Skip to main content

Implementation manual for client communication with the web service.

Version
Date
Description
1.0.0
2023-07-14
Initial version

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

1.1 Implemented products

Insurer
Identifier
Omniasig
insurer:omniasigproduct: general, professional, other

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

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:

  • error: A boolean indicating if an error occurred during the request. In this case, it will be false.

  • status: An integer representing the status code of the response. In this case, it will be 200.

  • 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 deauthenticate an existing and valid auth token.

3. Create offer

Endpoint**:** POST /offer

3.1 Request

3.1.1. Input parameters

a. Main object
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
Yes
Credentials to access insurer’s web service
provider.authentication.account
string
Yes
Account
In DEV / QA environment these fields can be sent empty to use default test credentials
provider.authentication.password
string
Yes
Password
provider.authentication.code
string
Yes
Code
product
object
Yes
Information related to the product
product.name
string
Yes
Product identifier (see 1.1. → Identifiers)
product.currency
string
Yes
Currency
Accepted values: EUR, RON
USD,CHF
product.liability
Liability object
Yes
Information related to the product
product.customer
Person object
No
Contractor’s data
If not set the policyholder’s information will be used by default
product.policyholder
Person object
Yes
Policyholder’s data
product.additionalData
object
No (depending on the product)
Product related additional information
Must be completed according to the Product specific parameters section
product.additionalData.rafCode
string
No
Offering agents RAF code
Format validation: RAF1234567891
Starts with RAF followed by at most 10 digits
b. Liability object
Parameter
Type
Required
Description
Validation rules
type
string
Yes
Type of the liability policy
If set the value has to be one of the following [malpraxis, pharma, veterinary, lawyers, notaries, counselors, executors, insolvency, tax-consultant, personal, hunters, estate-admin]
startDate
string
Yes
Start date of the policy
• Accepted format: YYYY-MM-DD

• The date must be in the future.


termTime
number
Yes
Duration of the policy in months
Integer value between 1 and 12
installmentCount
number
No
Number of installments for payment
If set the value has to be one of the following [1, 2, 4, 12]
Note: in some cases the accepted values might change depending on the insurer
notes
string
No
Any additional observations regarding the policy
renewPolicy
object
No
Object used in case of renewal of an existing policy
renewPolicy.series
string
Yes, if renewPolicy.number is set
renewPolicy.number
number
Yes, if renewPolicy.series is set
additionalInsureds
object
No
Object used to set number of additional insured
additionalInsureds.children
number
No
Number of additional children added to the policy
• Numeric value

• Minimum value 0Note: if not set default value is 0


additionalInsureds.residents
number
No
Number of additional residents added to the policy
deductible
object
No
Object used to set policy deductible information
Note: if not set default value for percent is 0 and type is no-deductible
deductible.percent
number
No
Percent value
• Numeric value

• Minimum value 0


deductible.type
string
No
Type of deductible
Value has to be one of the following [undefined, no-deductible, per-event, of-loss]
allowance
object
No
Object used to set “Bonificatie”
allowance.value
number
No
Percent value
• Numeric value

• Value between [-99, 99]


territory
object
No
Object used to set policy coverage location
territory.coversWorldWide
boolean
No
Coverage for world wide
Note: default value false
territory.coversRomania
boolean
No
Coverage for Romania
coverage
Coverage object
Yes
conditions
Condition Object
Yes
intermediaryEmail
string
No
Intermediary Email
• valid email address


c. Person object
Parameter
Type
Required
Description
Validation rules
businessName
string
Yes, if it is present in request
Business name (if the person is a legal entity)
companyRegistryNumber
string
Yes, if businessName field is present
Company registration number (if the person is a legal entity)
caenCode
number
Company CAEN number
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
citizenship
string
Citizenship
Accepted values: iso2 codes from /nomenclature/country nomenclature
gender
string
Gender:
• m => male

• f => female


Accepted values: m, f
birthdate
string
Date of birth
• Accepted format: YYYY-MM-DD

• The date must be in the past.


email
string
No
Email address
It must be a valid email address.
mobileNumber
string
No
Mobile phone number
It must be a valid mobile number address.
identification
Identification object
Yes, if businessName field is not present
Information related to the identification document
address
Address object
Yes
Person’s home address
d. Identification object
Parameter
Type
Required
Description
Validation rules
idType
string
Yes
Type of the identification document
Accepted values: CI, PASSPORT
idNumber
string
Yes
Series and number of the identification document
If idType = CI it must be a valid romanian identification number, accepted format of 2 letters and 6-7 digits
issueAuthority
string
Yes
Issuer of the identification document
issueDate
string
Yes
Issuing date of the identification document
• date before now() +1 day

• accepted format: YYYY-MM-DD


e. 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/{county} nomenclature
cityCode
number
Yes
Locality code
Accepted values: any siruta code from /nomenclature/locality/{county} nomenclature
street
string
Yes
Street
houseNumber
string
Yes
House number
building
string
No
Building
staircase
string
No
Staircase
apartment
string
No
Apartment
floor
string
No
Floor
postcode
number
No
Postcode
f. Coverage object
Parameter
Type
Required
Description
Validation rules
auxiliaryStaff
object
No
auxiliaryStaff.isIncluded
boolean
Yes, if auxiliaryStaff is present
eScooter
object
No
eScooter.isIncluded
boolean
Yes, if eScooter is present
eScooter.value
number
Yes, if eScooter.isIncluded is true
• Numeric value

• Minimum value 1


extendedReportingPeriod
object
No
extendedReportingPeriod.isIncluded
boolean
Yes, if extendedReportingPeriod.isIncluded is present
extendedReportingPeriod.value
number
Yes, if extendedReportingPeriod.isIncluded.isIncluded is true
Percent value
• Numeric value

• Minimum value 1


moralClaims
object
No
moralClaims.isIncluded
boolean
Yes, if moralClaims is present
moralClaims.value
number
Yes, if moralClaims.isIncluded is true
Percent value
• Numeric value

• Minimum value 1


feesCompensation
object
No
feesCompensation.isIncluded
boolean
Yes, if feesCompensation is present
feesCompensation.value
number
Yes, if feesCompensation.isIncluded is true
• Numeric value

• Minimum value 1


perEvent
object
No
perEvent.isIncluded
boolean
Yes, if perEvent is present
perEvent.value
number
Yes, if perEvent.isIncluded is true
• Numeric value

• Minimum value 1


policyLimit
object
No
policyLimit.isIncluded
boolean
Yes, if policyLimit is present
policyLimit.value
number
Yes, if policyLimit.isIncluded is true
• Numeric value

• Minimum value 1


g. Conditions object
Parameter
Type
Required
Description
Validation rules
locationCount
object
No
locationCount.isIncluded
boolean
Yes, if locationCount is present
locationCount.value
number
Yes, if locationCount.isIncluded is true
• Numeric value

• Minimum value 1


claimsWithin3Years
object
No
claimsWithin3Years.isIncluded
boolean
Yes, if claimsWithin3Years is present
lossHistoryWithin5Years
object
No
lossHistoryWithin5Years.isIncluded
boolean
Yes, if lossHistoryWithin5Years is present
turnover
object
No
turnover.isIncluded
boolean
Yes, if turnover is present
turnover.value
number
Yes, if turnover.isIncluded is true
• Numeric value

• Minimum value 1


3.1.2 Business rules

  • product.customer (if present) and product.policyholder have to be adultse

3.2 Response

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

Response data object
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 object
A list of generated offers, which can include offers generated successfully
Offer object
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
currency
string
Currency
exhangeRate
object
exhangeRate.currency
string
exhangeRate.amount
number
exhangeRate.exhangeRate
number
startDate
string
The start date of the policy
endDate
string
The end date of the policy
installments
object
installments.id
number
Number of the installment
installments.amount
number
Premium amount of the installment
installments.dueDate
string
The due date of the payment
notes
string
Additional information from the insurer
offerExpiryDate
string
The date till the offer is valid

4. Transform offer to policy

Endpoint: POST /policy

4.1 Request

4.1.1 Input parameters

Request data object
Parameter
Type
Required
Description
Validation rules
offerId
number
Yes
Unique identifier f the offer that will be transformed to a policy
Offer has to exist
payment
Payment object
Yes
Payment information
additionalData
object
No (depending on the product)
Product related additional information
Must be completed according to the Product specific parameters section
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
currency
string
Yes
Payment currency
At the moment only RON is accepted
amount
number
Yes
The payment amount in the selected currency
date
string
Yes
Payment date
Accepted format: YYYY-MM-DD
documentNumber
string
Yes
Payment proof document details
Format: has to start with at least one character followed by digits

4.2 Response

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

Response data object
Parameter
Type
Description
policies
array of Policy object
A list of issued policies, which can include policies successfully and/or with errors.
Policy object

Structure might change

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
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

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.

5.3 Insurer receipt

Endpoint: GET /policy/{PolicyId}/insurer-receipt

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

Implemented products for this endpoint:

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 Omniasig

Business rules:

  • At offering the following currencies are accepted for product.currency [RON, EUR, USD, CHF]

  • The product.liability.termTime field can have one of the following values [3, 6, 9, 12]

  • The product.liability.deductible.percent value has the following restrictions depending on the product.liability.deductible.type:

  • per-event values from 0.3, 0.5, 1, 1.5, 2

  • of-loss values from 3, 5, 7, 10, 15

  • undefined or no-deductible value has to be 0

  • The product.liability.coverage.moralClaims.value and product.liability.coverage.feesCompensation.value can have the following percentage values [5, 10, 15, 20, 25, 30]

  • The product.liability.coverage.policyLimit.value minimum value is 1 if product.liability.coverage.perEvent.value does not exist otherwise the minimum value is product.liability.coverage.perEvent.value

  • product.policyholder.companyRegistryNumber and product.customer.companyRegistryNumber is not required

  • product.customer.isForeignPerson and product.policyholder.isForeignPerson has to be set to false, SAS working on development

6.1.1 General Liability Package

Business rules:

  • product.name is set to general

  • product.liability.type can have the following values if product.policyholder is a regular entity [hunters, estate-admin, personal] otherwise only estate-admin

6.1.1.1 Offer

Business rules:

  • product.liability.coverage.perEvent.value for product.currency EUR CHF the value has to be between [5000, 1000000]

  • product.liability.coverage.perEvent.value for product.currency RON the value has to be between [24834.50, 4966900]

No additional data is required.

6.1.1.2 Transform offer to policy

No additional data is required.

Business rules:

  • payment.documentNumber is not required

6.1.2 Professional Liability Package

Business rules:

  • product.name is set to professional

  • product.liability.type can have the following values if product.policyholder is a regular entity [malpraxis, pharma, veterinary, lawyers, notaries, counselors, executors, insolvency, tax-consultant] otherwise [lawyers, notaries, counselors, executors, insolvency, tax-consultant]

  • product.liability.conditions.turnover.isIncluded has to be set to true when product.liability.type is one of [lawyers, executors, insolvency, tax-consultant] otherwise false

  • product.liability.coverage.perEvent.value for product.currency EUR CHF the value has to be between [10000, 5000000]

  • product.liability.coverage.perEvent.value for product.currency RON the value has to be between [14900.70, 24834500]

  • product.additionalData.product.conditions.professionalCategory is a mandatory field if product.liability.type is one of [malpraxis, pharma, veterinary, lawyers]

6.1.2.1 Offer
Parameter
Type
Required
Description
Validation rules
product.retroactivePeriod
numeric
No
Value in months
Accepted value from [12, 24, 36]
product.conditions
object
No
product.conditions.activityType
string
No
Accepted value from [accounting, tax-advisory, audit]
product.conditions.consultantsType
array of string
No
Accepted value from [accountant, expert-accountant, tax-consultant, auditor]
product.conditions.professionalCategory
string
Yes, if product.liability.type is one of [malpraxis, pharma, veterinary, lawyers]
Accepted value from [medical-specialties, surgical-specialties, paraclinical-specialties, general-practitioner, biochemist, biologist, dental-specialties, medical-assistants, midwives, pharmacists, pharmacy-assistants, physicians, medical-staff, intern, permanent]
product.conditions.professionalSpeciality
string
Yes, if product.conditions.professionalCategory is set

Accepted value from [allergology-and-clinical-immunology, anesthesia-and-intensive-care, infectious-diseases, cardiology, dermatology-and-venereology, diabetes-nutrition-and-metabolic-diseases, endocrinology, medical-assessment-of-work-capacity, clinical-pharmacology, gastroenterology, medical-genetics, geriatrics-and-gerontology, hematology, emergency-medicine, internal-medicine, occupational-medicine, sports-medicine, nephrology, pediatric-neurology, medical-oncology, pediatrics, pneumology, psychiatry, pediatric-psychiatry, radiation-oncology, rehabilitation-physical-medicine-and-balneology, rheumatology, cardiac-and-major-vessel-surgery, general-surgery, oral-and-maxillofacial-surgery, pediatric-surgery, plastic-and-reconstructive-microsurgery, aesthetic-surgery, thoracic-surgery, vascular-surgery, neurosurgery, obstetrics-and-gynecology, ophthalmology, pediatric-orthopedics, orthopedics-and-traumatology, otorhinolaryngology-(ent), urology, pathological-anatomy, epidemiology, hygiene, laboratory-medicine, forensic-medicine, nuclear-medicine, radiology-and-medical-imaging, public-health-and-management, family-medicine, general-medicine, biochemists, biologists, dentists, orthodontics-and-dentofacial-orthopedics-specialists, dentoalveolar-surgery-specialist, dental-technicians, from-inpatient-healthcare-facilities, from-primary-care-outpatient-clinics-individual-medical-practices, pharmacists-working-in-closed/open-circuit-pharmacies, pharmacy-assistants, veterinary-medicine, from-veterinary-medicine-units, all-specialties, neurology, neonatology]
6.1.2.2 Transform offer to policy

No additional data is required.

Business rules:

  • payment.documentNumber is not required

6.1.3 Other Liability Package

Business rules:

  • product.name is set to other5.2 Policy

  • product.liability.type can have the following values if product.policyholder is a regular entity [hunters, estate-admin, personal] otherwise only estate-admin

  • product.liability.coverage.perEvent.value for product.currency EUR CHF the value has to be between [3000, 300000]

  • product.liability.coverage.perEvent.value for product.currency RON the value has to be between [14900.70, 1490070]

  • product.liability.conditions.turnover.isIncluded has to be set to false

  • product.liability.additionalInsureds.residents and product.liability.additionalInsureds.children have to be set to 0 if they exist in the request

6.1.3.1 Offer
Parameter
Type
Required
Description
Validation rules
product.conditions.accountingDeskActivities
boolean
Yes, if product.conditions.adminTechnicalActivities is false
If product.policyholder performs any accounting or desk activities
Note: default value false
At least on of the fields has to be set to true.
product.conditions.adminTechnicalActivities
boolean
Yes, if accountingDeskActivities if false
If product.policyholder performs any administration or technical activities
6.1.3.2 Transform offer to policy

No additional data is required.

Business rules:

  • payment.documentNumber is not required