Private Medical Insurance Consumer Pricing

Private Medical Insurance Consumer Pricing

1.0.0OAS 3.0

Functionality to calculate premiums for Aviva Consumer Private Medical Insurance Policies

API Base URL
  • Server 1:https://ec2-18-202-229-190.eu-west-1.compute.amazonaws.com:8443
Security
oauth2 (oauth2)

Use ‘test-client’ as the client_id and client_secret to obtain a token to access this API.

Produce quotation for Aviva Individual PMI Policy

Consumer must POST request using JSON content-type. Request will consist of a JSON object containing all Policy and Member level details required for premium calculation as per the Models and Examples below.

post
https://ec2-18-202-229-190.eu-west-1.compute.amazonaws.com:8443/v1/individualHealthcarePolicy/quote

Headers

Correlation-IDstringrequired

Correlation Identifier is an unique identifier used to correlate requests across various systems. Is mandatory and can be consumer defined.

Allowed values:a1e4b301-351f-43aa-9bea-f5b62063829d

Requesting-Systemstringrequired

The name of the consumer

content-typestringrequired

used to indicate the media type of the resource.

Allowed values:application/json

Authorizationstringrequired

Bearer token for OAUTH2 Authorization

Default:Bearer 1e23wesryhb667h222hvndmojudsnhh45930044343

Body

application/json

individualHealthCarePolicy

PMI Product Details

idstring

Quote ref ID. Any unique quote ref.

commercialAdjustmentnumber(double)

Adjustments to the book rates.

paymentTypestringrequired

Payment mode. For e.g. B for direct debit.

Allowed values:BCA

paymentFrequencyinteger(int32)required

Payment term, Specify how many times payment will be made in a year say, 12 for monthly payment, 4 for quarterly

Allowed values:1124

experienceAdjustmentnumber(double)

Adjustment to the book rates based on claims experience.

pmiPolicyTypestring

Type of PMI Policy.

policyholderPostcodestring

Postcode for Policy Holder.

priceRequiredDatestringrequired

Date for which price is calculated. This needs to be treated same policy start date. Format e.g YYYY-MM-DD

groupSizeinteger(int32)

Number of family groups in the policy.

salesChannelstring

This should be name of the channel who provided that particular sale. Can be set as Internet if unknown.

fsaNumberstring

Agent code.

originalEffectiveDatestring

Original effective date of Policy. Format e.g YYYY-MM-DD

productIdinteger(int32)

Product ID. Not in use.

productVersioninteger(int32)

Product version. Not in use.

productNamestringrequired

Product description. HrSol for consumer policies.

Allowed values:HrSol

transactionTypestring

Type of transaction. New business , MTC or Renewal. Considered as New Business if left blank.

Allowed values:New BusinessMTCRenewal

grossPricenumber(double)

Gross premium, this gets calculated by Business Rules Engine and sent back in response.

netPricenumber(double)

Gross premium, this gets calculated by Business Rules Engine and sent back in response.

memberCategoryarray[object]required

Category of Members.

Show Child Parameters
incentivearray[object]

Incentives applied, if any. Incentives need to be applied as applicable to the agent/broker ID that exists in Aviva. Currently there’s no API exposed externally to provide the list of incentives associated with your agent/broker ID so you should have received the applicable deals from Aviva Business Teams.

Show Child Parameters
maxAllowableDiscountnumber(double)

Maximum allowed discount. Not in use.

taxRequiredDatestring

The date against the tax is calculated.Format e.g YYYY-MM-DD

callingSystemstringrequired

Name of the system which makes the price call. There must be an entry in Aviva’s systems for your system to call this API. You should ask for one if it’s the first time you’re integrating with this API.

sourceCodestring

Source of the request.

competitorPricenumber(double)

The price quoted by the competitor insurance companies for same kind of policy.

previousPaymentFrequencyinteger(int32)

Previous Payment term.

Allowed values:1124

previousPaymentTypestring

Previous Payment type.

Allowed values:BCA

previousIncentivearray[object]

Previous incentive details.

Show Child Parameters
previousCommercialDiscountnumber(double)

Previous commercial discount.

noOfPeopleinteger(int32)

Number of people of policy.

isRequoteboolean

Requote flag to indicate whether it’s recalculation after changing the options etc. Applies only to Price Beater.

Response

application/json

Returns complete quotation with policy, member level gross and net premium.

quoteResponse

Price Response

grossPricenumber(double)

Gross premium, this gets calculated by Business Rules Engine and sent back only in response.

netPricenumber(double)

Net premium, this gets calculated by Business Rules Engine and sent back only in response.

memberCategoryarray[object]

Category of Members.

Show Child Parameters
post/v1/individualHealthcarePolicy/quote

Body

{ "individualHealthCarePolicy": { "quote": { "id": "", "commercialAdjustment": 0, "paymentType": "B", "paymentFrequency": 12, "experienceAdjustment": 0, "pmiPolicyType": "", "policyholderPostcode": "SO53 3RY", "priceRequiredDate": "2022-11-18", "groupSize": 1, "salesChannel": "Internet", "fsaNumber": "", "originalEffectiveDate": "", "productId": 0, "productVersion": 0, "productName": "HrSol", "transactionType": "New Business", "grossPrice": 0, "netPrice": 0, "memberCategory": [ { "id": 0, "name": "", "option": [ { "id": 352, "name": "Excess", "value": "No", "optionTypeId": 0, "optionTypeName": "" }, { "id": 376, "name": "ReducedOutpatientLimit", "value": "Yes", "optionTypeId": 0, "optionTypeName": "" }, { "id": 359, "name": "SixWeekOption", "value": "No", "optionTypeId": 0, "optionTypeName": "" }, { "id": 372, "name": "SelectedBenefitReductionLimit", "value": "No", "optionTypeId": 0, "optionTypeName": "" }, { "id": 356, "name": "GPReferredServices", "value": "No", "optionTypeId": 0, "optionTypeName": "" }, { "id": 349, "name": "ProtectedNCD", "value": "No", "optionTypeId": 0, "optionTypeName": "" }, { "id": 365, "name": "DentalandOptical", "value": "Yes", "optionTypeId": 0, "optionTypeName": "" }, { "id": 369, "name": "Psychiatric", "value": "No", "optionTypeId": 0, "optionTypeName": "" } ], "familyUnit": [ { "familyStatus": "", "number": "", "member": [ { "relationship": "self", "effectiveDate": "2022-11-18", "gender": "M", "dateOfBirth": "1990-08-05", "postcode": "SO53 3RY", "wellnessDiscount": 0, "uwType": "NMORI", "grossPrice": 0, "netPrice": 0, "ipt": 0, "age": 0, "memberTaxDetail": [ { "netPrice": 0, "taxAmount": 0, "taxRate": 0 } ], "ncdLevel": 13, "pncdInd": "n", "previousWellnessDiscount": 0, "previousNCDLevel": 0, "previousPNCDInd": "", "previousnetPremium": 0, "previousCNCFactor": 0, "cncFactor": 0, "memberTenure": 0, "memberInceptionDate": "", "isMemberNeeded": "1", "postcodeBand": "", "isPostbandCallRequired": "", "memberYearsClaimFree": 0 }, { "relationship": "partner", "effectiveDate": "2022-11-18", "gender": "M", "dateOfBirth": "1992-11-01", "postcode": "SO53 3RY", "wellnessDiscount": 0, "uwType": "NMORI", "grossPrice": 0, "netPrice": 0, "ipt": 0, "age": 0, "memberTaxDetail": [ { "netPrice": 0, "taxAmount": 0, "taxRate": 0 } ], "ncdLevel": 13, "pncdInd": "n", "previousWellnessDiscount": 0, "previousNCDLevel": 0, "previousPNCDInd": "", "previousnetPremium": 0, "previousCNCFactor": 0, "cncFactor": 0, "memberTenure": 0, "memberInceptionDate": "", "isMemberNeeded": "1", "postcodeBand": "", "isPostbandCallRequired": "", "memberYearsClaimFree": 0 } ] } ] } ], "incentive": [ { "incentiveType": "NCD Uplift", "incentiveParameter": "1" }, { "incentiveType": "monthsFree", "incentiveParameter": "2" } ], "maxAllowableDiscount": 0, "taxRequiredDate": "", "callingSystem": "USAY", "sourceCode": "", "competitorPrice": 0, "previousPaymentFrequency": 0, "previousPaymentType": "", "previousCommercialDiscount": 0, "noOfPeople": 0, "isRequote": false } } }
 
application/json

FamilyUnit

object

Family Unit details

familyStatusstring

Status of the family eg:Single,Parent,single parent

numberstring

Family group Number

memberarray[object]required

List of Members under Family Unit

Show Child Parameters
Example

Incentive

object

Incentives applied, if any. Incentives need to be applied as applicable to the agent/broker ID that exists in Aviva. Currently there’s no API exposed externally to provide the list of incentives associated with your agent/broker ID so you should have received the applicable deals from Aviva Business Teams.

idinteger(int32)

Incentive ID.

incentiveParameterstringrequired

Incentive parameter value such as 1, 2, Yes, No.

incentiveTypestringrequired

Incentive type such as NCD Uplift, monthsFree.

Allowed values:Price BeaterNCD UpliftgiftmonthsFreefreeOptionSwitchDecpsDiscount

subkeystring

Sub key for Incentive if any. Not used for New Business.

Example

Member

object
numberstring

This is actual member number if calling system is GMS and some sequence number in case of other consumers.

relationshipstringrequired

Relation of the member to the primary member e.g self,partner,child.

Allowed values:selfpartnerchild

effectiveDatestringrequired

Member’s effective date in the policy. Format e.g YYYY-MM-DD

genderstringrequired

Gender of the member. values M/F

Allowed values:MF

dateOfBirthstringrequired

Member’s date of birth. Format e.g YYYY-MM-DD. Can be left blank if age is supplied as either age or dateOfBirth is required.

postcodestringrequired

Member’s postcode

wellnessDiscountnumber(double)

Wellness Discount (if any) for member

uwTypestringrequired

Member underwriting type. For Virgin Business - FMU/NMORI. For Swicth Business - CMORI/CME/MHD.

Allowed values:FMUNMORICMECMORIMHD

grossPricenumber(double)

Gross premium for member

netPricenumber(double)

Net premium for member

iptnumber(double)

Insurance Premium Tax for member

ageinteger(int32)required

Age of member. Can be left blank if dateOfBirth is supplied as either age or dateOfBirth is required.

memberTaxDetailarray[object]

Member’s premium breakdown

Show Child Parameters
ncdLevelobjectrequired

No Claim Discount level for Member. If NCD Uplift incentive is applied then you must send the uplifted NCD to us. See below rules for calculating the NCD. * Virgin Business = 12, * Switch Business = Less than 1 year claims free = 8, 1 year claims free = 9, 2 years claims free = 10, 3 years claims free = 10, 4 years claims free = 11, 5 years claims free or never claimed = 12

pncdIndstring

Protected No Claim discount indicator.

Allowed values:YN

previousWellnessDiscountnumber(double)

Any previous wellness discount for member.

previousNCDLevelinteger(int32)

Previous No Claim Discount level for Member.

previousPNCDIndstring

Previous protected No Claim discount indicator.

Allowed values:YN

previousnetPremiumnumber(double)

Previous net premium for member.

previousCNCFactornumber(double)

Previous capping and colarring for Member.

cncFactornumber(double)

Current capping and colarring for Member.

memberTenureinteger(int32)

Member Tenure.

memberInceptionDatestring

Inception date for Member. Format e.g YYYY-MM-DD

isMemberNeededstring

Indicates if member is needed or not in the policy.

postcodeBandstring

Postcode Code band for MTCs, this gets calculated automatically by API for New Business based on postcode supplied for members.

isPostbandCallRequiredstring

Indicates if Postcode band needs to be calculated by API or not. Applies only to MTC & Renewals.

memberYearsClaimFreeinteger(int32)

Number of claims free years for Member.

Example