Topics on this page

Configure LexisNexis FIRSt in BriteSuite

Notifying automobile finance companies, auto leasing companies, and mortgage lenders of changes to insurance policies is mandatory. LexisNexis Financial Institution Report System (Lexis Nexis FIRSt) provides loss payee notification distribution services to help clients conduct important business processes that support compliance requirements.

BriteSuite clients can now use LexisNexis FIRSt for Personal Auto policies. The BriteSuite integration sends updated policy information to LexisNexis FIRSt, which then distributes the data to the appropriate lienholder. Transactions include: 

  • Cancellations
  • New business
  • Expirations 
  • Reinstatements
  • Renewals 
  • Rewrites
  • Endorsements

LexisNexis FIRSt:

  • Reduces your lienholder notification costs, including escrow billing.
  • Eliminates your returned mail and improves your operating efficiency. 
  • Remains fully compliant with loss payee notifications. 
  • Reduces risk of loss payee inquiries, insured complaints, and potential claims.

LexisNexis FIRSt functionality

In BriteSuite, we set up a base Current Carrier contribution file, which is a nightly feed that includes basic policy information for different LexisNexis services to use. We build LexisNexis FIRSt integrations on top of the Current Carrier contribution to collect more data and send it to the applicable parties. 

Anytime a transaction is created on a policy, an event is triggered that the integration listens for. This is compiled into a file nightly sent via FTP to LexisNexis FIRSt. LexisNexis FIRSt then distributes the details to the respective parties. No data is returned from LexisNexis FIRSt.

Set up LexisNexis FIRSt in BriteSuite

This tutorial walks you through the steps to  implement LexisNexis FIRSt in BriteSuite. 

To set up LexisNexis FIRSt in BriteSuites, you need to do the following:

Step 1: Contact LexisNexis

Contact LexisNexis to complete the paperwork and set up an account. LexisNexis will provide the following information:

  • Username and password for the FTP 
  • NAIC number
  • AM best number 

Step 2: Contact your BriteCore support team

Provide your LexisNexis information to BriteCore’s Support team to set up your integration. 

Step 3: Consider your configuration options

Consider your configuration options and fill out the LexisNexis FIRSt questionnaire.

To access a questionnaire, please submit a request.

Note: On the request form, make sure you select the questionnaire(s) you would like to access.

Step 4: Create the data mapping

Map the data from LexisNexis FIRSt to your lines configuration. 

To learn more about how data mapping works in BriteCore, please refer to our documentation.

Sample data for a POST/mappings request. 

Note: This mapping sample includes data points needed for both the Current Carrier contribution file and LexisNexis FIRSt.

Sample code

View code
{
        "data": {
            "type": "mapping",
            "attributes": {
                "from": "quote",
                "to": "lexisnexis-mvr",
                "version": "1",
                "mapping": {
                    "template": """\
[
   {%- set policy_field_answers = source.rootRiskQuote.risk_state.field_answers %}
   {%- set driver_risk_type = source.riskTypes|selectattr("name", "equalto", "drivers")|first %}
   {%- set risk_quotes = source.rootRiskQuote.risk_quotes %}
   {%- set driver_risk_quotes = [] %}
   {%- for risk_quote in risk_quotes if risk_quote.risk_state.type.id == driver_risk_type.id %}
   {{ driver_risk_quotes.append(risk_quote) or  ""}}
   {% endfor %}
   {%- for driver_risk_quote in driver_risk_quotes %}
   {
       {%- set field_answers = driver_risk_quote.risk_state.field_answers %}
       "address": {
           "house": " ",
           "street" : "{{ policy_field_answers.streetAddressNI }}",
           "city" : "{{ policy_field_answers.cityNI }}",
           "state" : "{{ policy_field_answers.stateOfNI[12:] }}",
           "postal_code" : {{ policy_field_answers.zipCodeNI|int }}
       },
       "drivers_license": {
            {% if field_answers.licenseNumber is defined and field_answers.licenseNumber not in (None, "") %}
            "number": "{{ field_answers.licenseNumber }}",
            {% endif %}
            {% if field_answers.licenseState in (None, "") %}
            "state": "ZZ",
            {% else %}
            "state": "{{ field_answers.licenseState.split('_')[1][:2].upper() if '_' in field_answers.licenseState else field_answers.licenseState }}",
            {% endif %}
           "type": "personal"
       },
       "subject": {
           "first_name": "{{ field_answers.firstName }}",
           "middle_name": "{{ field_answers.middleInitial }}",
           "last_name": "{{ field_answers.lastName }}",
           "date_of_birth": "{{ field_answers.dateOfBirth }}",
       }
   }{% if loop.nextitem is defined %},{% endif %}
   {% endfor %}
]"""
                },
            },
        }
    },
    {
        "data": {
            "type": "mapping",
            "attributes": {
                "from": "lexisnexis-mvr",
                "to": "quote",
                "version": "1",
                "mapping": {
                    "template": """\
[
{%- set violation_mapping = {
   "11110": "violationType_licenseNoVirginialicenseplate",
   "11220": "violationType_licenseNoVirginialicenseplate",
   "11230": "violationType_licenseNoVirginialicenseplate",
   "11310": "violationType_licenseNoVirginialicenseplate",
   "11320": "violationType_drivingwhileyourlicenseissuspendedorrevoked",
   "11410": "violationType_licenseNoVirginialicenseplate",
   "11510": "violationType_operatingunsafevehicle",
   "11520": "violationType_operatingunsafevehicle",
   "11530": "violationType_operatingunsafevehicle",
   "11710": "violationType_licenseNoVirginialicenseplate",
   "11720": "violationType_licenseNoVirginialicenseplate",
   "11730": "violationType_licenseNoVirginialicenseplate",
   "12030": "violationType_drivingafterbeingdeclaredahabitualoffender",
   "12110": "violationType_licenseNodriverslicensevehiclemotorcycle",
   "12120": "violationType_licenseFailuretohavelicenserevalidated",
   "12350": "violationType_licenseDrivinginviolationofrestrictedlicenserestrictionsrelatedtophysical",
   "12370": "violationType_licensefailuretoobtainadriverslicense",
   "12380": "violationType_licensefailuretoobtainadriverslicense",
   "12410": "violationType_drivingwhileyourlicenseissuspendedorrevoked",
   "12440": "violationType_drivingwhileyourlicenseissuspendedorrevoked",
   "12450": "violationType_drivingafterbeingdeclaredahabitualoffender",
   "12460": "violationType_drivingafterbeingdeclaredahabitualoffender",
   "12500": "violationType_licensePermittingunlicensedpersontodrive",
   "12510": "violationType_licensePermittingunlicensedpersontodrive",
   "12520": "violationType_licensePermittingunlicensedpersontodrive",
   "12610": "violationType_drivingafterbeingdeclaredahabitualoffender",
   "12630": "violationType_drivingafterbeingdeclaredahabitualoffender",
   "13110": "violationType_licensefailuretoobtainadriverslicense",
   "13200": "violationType_licenseDrivinginviolationofrestrictedlicenserestrictionsrelatedtophysical",
   "13210": "violationType_licenseDrivinginviolationofrestrictedlicenserestrictionsrelatedtophysical",
   "13220": "violationType_licenseLearnerspermitviolation",
   "13230": "violationType_licenseDrivinginviolationofrestrictedlicenserestrictionsrelatedtophysical",
   "13310": "violationType_licenseDrivinginviolationofrestrictedlicenserestrictionsrelatedtophysical",
   "13320": "violationType_licenseDrivinginviolationofrestrictedlicenserestrictionsrelatedtophysical",
   "13410": "violationType_refusingbloodbreathtest",
   "13420": "violationType_drivingwhileintoxicated",
   "22600": "violationType_failuretostopandreportwheninvolvedinanaccident",
   "22610": "violationType_failuretostopandreportwheninvolvedinanaccident",
   "311AA": "violationType_speeding19mphabovethepostedspeedlimit",
   "311AB": "violationType_speeding19mphabovethepostedspeedlimit",
   "311AC": "violationType_speeding19mphabovethepostedspeedlimit",
   "311AD": "violationType_speeding1014mphabovethepostedspeedlimit",
   "311AE": "violationType_speeding1019mphabovethepostedspeedlimit",
   "311AF": "violationType_speeding1519mphabovethepostedspeedlimit",
   "32120": "violationType_failuretoyieldwhenturningleft",
   "32150": "violationType_emergencyvehicleviolation",
   "33510": "violationType_drivingthroughsafetyzone3years",
   "35340": "violationType_drivingthewrongwayononewayhighwayorstreet3years",
   "35350": "violationType_drivingthewrongwayononewayhighwayorstreet3years",
   "35400": "violationType_drivingthewrongwayononewayhighwayorstreet3years",
   "35410": "violationType_drivingthewrongwayononewayhighwayorstreet3years",
   "35420": "violationType_drivingtotheleftofrotarytrafficisland3years",
   "35430": "violationType_drivingtotheleftofrotarytrafficisland3years",
   "38100": "violationType_changingcourseaftersignaling",
   "39100": "violationType_failuretostopforpedestrian",
   "39110": "violationType_failuretostopforpedestrian",
   "39120": "violationType_failuretostopforpedestrian",
   "39130": "violationType_failuretostopforpedestrian",
   "39160": "violationType_failuretostopforpedestrian",
   "51110": "violationType_recklessdrivinggeneral",
   "51120": "violationType_recklessdrivinggeneral",
   "52100": "violationType_drivingundertheinfluenceofalcoholordrugs",
   "52120": "violationType_drivingafterillegallyconsumingalcoholpersonsunderage21",
   "52130": "violationType_drivingwhileintoxicated",
   "53210": "violationType_drinkingwhiledriving3years",
   "55210": "violationType_involuntarymanslaughter",
   "58110": "violationType_attemptingtoeludepolice",
   "58210": "violationType_vehicularassaultorwillfulstoppingimpedingordamagingvehicle",
   "81100": "violationType_railroadCrossingsFailuretoobeyrailroadcrossingsignal",
   "81110": "violationType_railroadcrossingstopping",
   "81120": "violationType_railroadCrossingsFailuretostopatrailroadgradecrossing",
   "81140": "violationType_railroadCrossingsFailuretostopatrailroadgradecrossing",
   "81150": "violationType_railroadCrossingsFailuretoobeyrailroadcrossingsignal",
   "81160": "violationType_railroadCrossingsFailuretoobeyrailroadcrossingsignal",
   "82210": "violationType_coastingwithgearsinneutral",
   "83210": "violationType_drivingoverfirehose3years",
   "84140": "violationType_recklessdrivinggeneral",
   "84150": "violationType_aggressivedriving"} %}
   {%- set bodily_injury_codes = ["22030", "22040"] %}
   {%- set not_found_code = "09110" %}
   {%- for violation in source.violations %}
       {%- set code = violation.standard_violations[0].code[:5] %}
       {% if violation_mapping[code] is defined %}
           {
               "violationInformation": "{{ violation.standard_violations[0].description }}",
               "violationDate": {% if violation.suspension_date != None %}"{{ violation.suspension_date }}"{% else %}None{% endif %},
               "violationType": "{{ violation_mapping[code] }}",
               "violationBodilyInjury": {{ true if code in bodily_injury_codes else false  }}
           }
       {% elif violation_mapping[code] is not defined and code != not_found_code %}
           {
               "violationInformation": "{{ violation.standard_violations[0].description }}",
               "violationDate": {% if violation.suspension_date != None %}"{{ violation.suspension_date }}"{% else %}None{% endif %},
               "violationType": "violationType_othermovingornonmovingviolationdescribeincomments",
               "violationBodilyInjury": {{ true if code in bodily_injury_codes else false  }}
           }
       {% if loop.nextitem is defined %},{% endif %}
       {% endif %}
   {% endfor %}

]"""
                },
            },
        },
    },

Step 5: Test and deploy

The BriteCore team tests and deploy the integration. The main testing steps include:

  • File format sent for Personal Auto to LexisNexis meets their requirements
  • Personal Auto transactions are in the file as expected. 
  • Test File is able to be sent to LexisNexis and passes its approval.
  • FTP credentials are set up for Auto.
  • Files will be sent automatically in production.
  • The file can be tested outside of production when the customer is live. 

Your LexisNexis FIRSt integration has been successfully set up in BriteCore.