Callback Functions

Overview

During the setup of the SDK, only the required parameters are added on the "fize.configure()" method however, the client has the ability to include additional optional parameters and callback functions to customise the behaviour of the SDK and hook their website into the SDK's event driven triggers.

In order to pass event data from Fize to your site during user’s interaction with the SDK, the below list of callback functions can be configured and each defined callback function will execute by the SDK upon the occurrence of the event along with the right arguments, if any.

<html>
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Demo</title>
  </head>

  <body>
    <script src="https://cdn.getfize.com/sdk/v1.0/getfize.js"></script>
    <a href="#" id="launchFize">Launch Fize</a>
    <div id="fize-element"></div>
    <script>
      const onSuccessCallBack = data => {
        console.log("success", data);
      };
      const onSyncCompleteCallBack = data => {
        console.log("onSyncComplete", data);
      };
      const onCloseCallBack = data => {
        console.log("onClose", data);
      };
      const onLaunchCallBack = data => {
        console.log("onLaunch", data);
      };
      const onCarrierSelectionCallBack = data => {
        console.log("carrierSelected", data);
      };
      const onSubmitCredentialsCallBack = data => {
        console.log("submit credintials", data);
      };
      const onAcceptFizePrivacyPolicyCallBack = data => {
        console.log("accept fize policy", data);
      };
      const onSubmitMfaCallBack = data => {
        console.log("onSubmitMFA", data);
      };
      const onSubmitOtpCallBack = data => {
        console.log("onSubmit otp", data);
      };
      const onAuthenticatedCallBack = event => {
        console.log(`onAuthenticated`, event);
      };
      const onFetchingDataCallBack = data => {
        console.log("Fetching Data", data);
      };
      const onAuthErrorCallBack = data => {
        console.log("onAuthError");
      };
      const onManualPolicyUploadSuccessCallBack = data => {
        console.log("manual policy upload", data);
      };
      const onAdditionalInformationSubmitCallBack = data => {
        console.log("additionalInformation submit", data);
      };
      const onAdditionalInformationSkipCallBack = data => {
        console.log("additionalInformation skip", data);
      };
      const onManualPolicyUploadErrorCallBack = data => {
        console.log("manual policy upload error", data);
      };
      const onCarrierNotFoundCallback = data => {
        console.log("on searched carrier is not found", data);
      };
      const onInsuranceLineSelectedCallback = data => {
         console.log("on insurance line selected", data);
      };
      const onErrorCallBack = data => {
        console.log("onError", data);
      };
      const onDestroyCallBack = data => {
        console.log("onDestroy", data);
      };
      const onFullPolicyDetailsCompleteCallBack = data => {
        console.log("onFullPolicyDetailsComplete", data);
      };
      const onPolicyDocumentsCompleteCallBack = data => {
        console.log("onPolicyDocumentsComplete", data);
      };

      const onPolicyHolderDetailsErrorCallBack = data => {
        console.log("onPolicyHolderDetailsError", data);
      };

      const onPolicyHolderDetailsCompleteCallBack = data => {
        console.log("onPolicyHolderDetailsComplete", data);
      };

      const onPolicyBasicDetailsPartialCompleteCallBack = data => {
        console.log("onPolicyBasicDetailsPartialComplete", data);
      };
      const onPolicyDocumentsPartialCompleteCallBack = data => {
        console.log("onPolicyDocumentsPartialComplete", data);
      };

      const onPolicyHolderPartialCompleteCallBack = data => {
        console.log("onPolicyHolderPartialComplete", data);
      };

      const onFullPolicyDetailsPartialCompleteCallBack = data => {
        console.log("onFullPolicyDetailsPartialComplete", data);
      };
      const onPolicyBasicDetailsErrorCallBack = data => {
        console.log("onPolicyBasicDetailsError", data);
      };
      const onPolicyDocumentsErrorCallBack = data => {
        console.log("onPolicyDocumentsError", data);
      };

      const onPolicyBasicDetailsCompleteCallBack = data => {
        console.log("onPolicyBasicDetailsComplete", data);
      };
      const onFullPolicyDetailsErrorCallBack = data => {
        console.log("onFullPolicyDetailsError", data);
      };
      const onInValidSetupIdCallBack = data => {
        console.log("onInValidSetupId", data);
      };
      const onInActiveSetupIdCallBack = data => {
        console.log("onInActiveSetupId", data);
      };

      let handler = FIZE.configure({
        client_id: "FIZE_PROVIDED_CLIENT_ID",
        onSuccess: onSuccessCallBack,
        onSyncComplete: onSyncCompleteCallBack,
        onClose: onCloseCallBack,
        onLaunch: onLaunchCallBack,
        onCarrierSelection: onCarrierSelectionCallBack,
        onSubmitCredentials: onSubmitCredentialsCallBack,
        onAcceptFizePrivacyPolicy: onAcceptFizePrivacyPolicyCallBack,
        onSubmitMfa: onSubmitMfaCallBack,
        onSubmitOtp: onSubmitOtpCallBack,
        onAuthenticated: onAuthenticatedCallBack,
        onFetchingData: onFetchingDataCallBack,
        onAuthError: onAuthErrorCallBack,
        onError: onErrorCallBack,
        onCarrierNotFound: onCarrierNotFoundCallback,
        onInsuranceLineSelected: onInsuranceLineSelectedCallback,
        onAdditionalInformationSkip: onAdditionalInformationSkipCallBack,
        onAdditionalInformationSubmit: onAdditionalInformationSubmitCallBack,
        onManualPolicyUploadSuccess: onManualPolicyUploadSuccessCallBack,
        onManualPolicyUploadError: onManualPolicyUploadErrorCallBack,
        onDestroy: onDestroyCallBack,
        onPolicyBasicDetailsComplete: onPolicyBasicDetailsCompleteCallBack,
        onPolicyDocumentsComplete: onPolicyDocumentsCompleteCallBack,
        onPolicyHolderDetailsComplete: onPolicyHolderDetailsCompleteCallBack,
        onFullPolicyDetailsComplete: onFullPolicyDetailsCompleteCallBack,
        onPolicyBasicDetailsPartialComplete: onPolicyBasicDetailsPartialCompleteCallBack,
        onPolicyDocumentsPartialComplete: onPolicyDocumentsPartialCompleteCallBack,
        onPolicyHolderPartialComplete: onPolicyHolderPartialCompleteCallBack,
        onFullPolicyDetailsPartialComplete: onFullPolicyDetailsPartialCompleteCallBack,
        onPolicyBasicDetailsError: onPolicyBasicDetailsErrorCallBack,
        onPolicyDocumentsError: onPolicyDocumentsErrorCallBack,
        onPolicyHolderDetailsError: onPolicyHolderDetailsErrorCallBack,
        onFullPolicyDetailsError: onFullPolicyDetailsErrorCallBack,
        onInValidSetupId: onInValidSetupIdCallBack,
        onInActiveSetupId: onInActiveSetupIdCallBack
      });

      document.getElementById("launchFize").onclick = () => handler.launch();
      
    </script>
  </body>
</html>

The available callback functions are defined below along with a sample response for each function.

onClientAuthenticated()

Triggered when client_id is authenticated successfully.

Value: Boolean

onClientAuthenticated(metadata)
metadata = true;

onClientAuthenticatedError()

Triggered when client_id authentication is failed.

Value: Boolean

onClientAuthenticatedError(metadata)
metadata = true;

onLaunch()

Triggered when the workflow is started. A Fize-controlled modal will show up on the page and guide the user to log in to his or her insurance carrier.

Value: metadata

onLaunch(metadata)
metadata = {
  {
    placementId:"",
    channelConfig: channelConfig,
    macroConfig: macroConfig
  }
}

onCarrierSelection()

Triggered when the user makes a selection on the carrier selection screen. The selected carrier will be supplied to the callback function in the parameter.

Value: metadata

onCarrierSelection(metadata)
metadata = {
    placementId:"",
    selectedCarrier:"",
    channelConfig: channelConfig,
    macroConfig: macroConfig
}

onSubmitCredentials()

Triggered when the user attempts to log in to his or her insurance carrier after providing credentials.

Value: metadata

onSubmitCredentials(metadata)
metadata = {
  {
    placementId:"",
    connectionId:"",
    selectedCarrier:"",
    channelConfig: channelConfig,
    macroConfig: macroConfig,
    userName:""
  }
}

onAcceptFizePrivacyPolicy()

Triggered when the user accepts the Fize Privacy Policy.

Value: metadata

onAcceptFizePrivacyPolicy(metadata)
metadata = {
  {
    placementId:"",
    channelConfig: channelConfig,
    macroConfig: macroConfig
  }
}

onSubmitMfa()

Triggered when the user selects multi-factor authentication option for MFA enabled insurance company.

Value: metadata

onSubmitMfa(metadata)
metadata = {
  {
    placementId:"",
    connectionId:"",
    selectedCarrier:"",
    channelConfig: channelConfig,
    macroConfig: macroConfig,
  }
}

onSubmitOtp()

Triggered when the user submits OTP for MFA enabled insurance company.

Value: metadata

onSubmitOtp(metadata)
metadata = {
  {
    placementId:"",
    connectionId:"",
    selectedCarrier:"",
    channelConfig: channelConfig,
    macroConfig: macroConfig,
  }
}

onAuthenticated()

Triggered when the user attempted to log in to his/her insurance carrier and provided working credentials.

Value: metadata

onAuthenticated(metadata)
metadata = {
  {
    placementId:"",
    connectionId:"",
    selectedCarrier:"",
    channelConfig: channelConfig,
    macroConfig: macroConfig,
    userName:""
  }
}

onFetchingData()

Triggered when the user is successfully logged in and getting data has started.

Value: metadata

onFetchingData(metadata)
metadata = {
  {
    placementId:"",
    connectionId:"",
    selectedCarrier:"",
    channelConfig: channelConfig,
    macroConfig: macroConfig,
    userName:""
  }
}

onAuthError()

Triggered when the user attempted to log into their insurance carrier but provided incorrect credentials.

Value: metadata

onAuthError(metadata)
metadata = {
  {
    placementId:"",
    connectionId:"",
    selectedCarrier:"",
    channelConfig: channelConfig,
    macroConfig: macroConfig,
    userName:""
  }
}

onSuccess()

Triggered when user insurance policy has been successfully retrieved from the insurance carrier and user lands on Success Page. A connection ID will be assigned to this event and be supplied to the callback function in the parameter to be later used for Fize REST API.

Value: metadata

onSuccess(metadata)
metadata = {
  {
    placementId:"",
    connectionId:"",
    selectedCarrier:"",
    channelConfig: channelConfig,
    macroConfig: macroConfig,
    syncType:"login"/"sync_reuse",
    reusedConnectionIds:[..]
  }
}

onSyncComplete()

Triggered when continue button is clicked on Success Page. It will call the fizehandler close method if on_success_redirect: false.

Value: metadata

onSyncComplete(metadata)
metadata = {
  {
    placementId:"",
    connectionId:"",
    selectedCarrier:"",
    channelConfig: channelConfig,
    macroConfig: macroConfig,
    syncType:"login"/"sync_reuse",
    reusedConnectionIds:[..]
  }
}

onError()

Triggered when an unexpected error is encountered. Error details will be supplied to the callback function in the parameter.

Value: metadata

onError(metadata)
metadata = {
  {
    placementId:"",
    connectionId:"",
    selectedCarrier:"",
    channelConfig: channelConfig,
    macroConfig: macroConfig,
    userName:""
  }
}

onCarrierNotFound()

Triggered when an searched carrier is not found from carrier list. It will be triggered after 3 seconds user stosp searching the carrier or when button is clicked of "My insurance provider is not listed."

Value: metadata

onCarrierNotFound(metadata)
metadata = {
  {
    placementId:"",
    connectionId:"",
    channelConfig: channelConfig,
    macroConfig: macroConfig,
  	searchedCarrier: ""
  }
}

onInsuranceLineSelected()

Triggered when insurance line is selected from given options(personal/commercial) on Insurance line selection page.

Value: metadata

onInsuranceLineSelected(metadata)
metadata = {
  {
    placementId:"",
    connectionId:"",
    selectedInsuranceLine:"commercial",
    channelConfig: channelConfig,
    macroConfig: macroConfig,
  }
}

onDestroy()

Client can manually call this callback function to close Fize Modal. It is required to reload the page to register Fize SDK again after invoking this function

Value: metadata

onDestroy(metadata)
metadata = {
  {
    placementId:"",
  }
}

onClose()

Triggered when user closes the Fize Modal

Value: metadata

onClose(metadata)
metadata = {
  {
    placementId:"",
    connectionId:"",
    selectedCarrier:"",
    channelConfig: channelConfig,
    macroConfig: macroConfig,
    syncType:"login"/"sync_reuse",
    reusedConnectionIds:[..]
  }
}

onManualPolicyUploadSuccess()

Triggered when submission of manual upload policy is successfully completed

Value: metadata

onManualPolicyUploadSuccess(metadata)
metadata = {
  {
    placementId:"",
    connectionId:"",
    selectedCarrier:"",
    channelConfig: channelConfig,
    macroConfig: macroConfig,
    userName:""
  }
}

onManualPolicyUploadError()

Triggered when submission of manual upload policy has failed

Value: metadata

onManualPolicyUploadError(metadata)
metadata = {
  {
    placementId:"",
    connectionId:"",
    selectedCarrier:"",
    channelConfig: channelConfig,
    macroConfig: macroConfig,
    userName:""
  }
}

onConfirmationSuccess()

Triggered when data is successfully submitted on confirmation page

Value: metadata

onConfirmationSuccess(metadata)
metadata = {
  {
    placementId:"",
    connectionId:"",
    selectedCarrier:"",
    channelConfig: channelConfig,
    macroConfig: macroConfig,
    userName:""
  }
}

onSyncReuse()

Triggered when prospect reuses the previously synced policies

Value: metadata

onConfirmationSuccess(metadata)
metadata = {
    placementId:"",
    connectionId:"",
    channelConfig: channelConfig,
    macroConfig: macroConfig,
    reusedConnectionIds:[]
}

onFullPolicyDetailsComplete()

Triggered when the connection_id's complete data is available after the successful completion of linking the policies. This will be last callback to be triggered for fetching the incremental data.

Example Response:

{ 
  connectionId: "connection_id"
  macroConfig: {
  	fz_name: "John",
  },
  channelConfig: {}, 
  incrementalPolicyData: "{onFullPolicyDetailsComplete}",
   // onFullPolicyDetailsComplete incremental data
  placementId: "launchplace",
  reusedConnectionIds: ['connection_id'],
  selectedCarrier: "default",
  syncType: "sync_reuse",
}

Data Schema: onFullPolicyDetailsComplete

onPolicyBasicDetailsComplete()

Triggered when connection_id's basic details are available after the successful completion of linking the policies.

{ 
  connectionId: "connection_id",
  macroConfig: {
  	fz_name: "John",
  },
  channelConfig: {}, 
  incrementalPolicyData: "{onPolicyBasicDetailsComplete}",
    // onPolicyBasicDetailsComplete incremental data
  placementId: "launchplace",
  reusedConnectionIds: ['connection_id'],
  selectedCarrier: "default",
  syncType: "sync_reuse",
}

Data Schema: onPolicyBasicDetailsComplete()

onPolicyDocumentsComplete()

Triggered when connection_id's complete document data is available after the successful completion of linking the policies.

{ 
  connectionId: "connection_id"
  macroConfig: {
  	fz_name: "John",
  },
  channelConfig: {},  
  incrementalPolicyData: "{onPolicyDocumentsComplete}",
    // onPolicyDocumentsComplete incremental data
  placementId: "launchplace",
  reusedConnectionIds: ['connection_id'],
  selectedCarrier: "default",
  syncType: "sync_reuse",
}

Data Schema: onPolicyDocumentsComplete()

onPolicyHolderDetailsComplete()

Triggered when connection_id's complete Policy Holder details data is available after the successful completion of linking the policies.

{ 
  connectionId: "connection_id",
  macroConfig: {
  	fz_name: "John",
  },
  channelConfig: {},  
  incrementalPolicyData: "{onPolicyHolderDetailsComplete}",
  // onPolicyHolderDetailsComplete incremental data
  placementId: "launchplace",
  reusedConnectionIds: ['connection_id'],
  selectedCarrier: "default",
  syncType: "sync_reuse",
}

Data Schema: onPolicyHolderDetailsComplete()

onPolicyBasicDetailsPartialComplete()

Triggered when connection_id's partial basic details data are available after the successful completion of linking the policies. It can be triggered multiple times on the basis availability of partial data.

{ 
  connectionId: "connection_id",
  macroConfig: {
  	fz_name: "John",
  },
  channelConfig: {},  
  incrementalPolicyData: "{onPolicyBasicDetailsPartialComplete}",
  // onPolicyBasicDetailsPartialComplete incremental data
  placementId: "launchplace",
  reusedConnectionIds: ['connection_id'],
  selectedCarrier: "default",
  syncType: "sync_reuse",
}

Data Schema: onPolicyBasicDetailsPartialComplete()

onPolicyDocumentsPartialComplete()

Triggered when connection_id's partial documents are available after the successful completion of linking the policies. It can be triggered multiple times on the basis availability of data.

{ 
  connectionId: "connection_id",
  macroConfig: {
  	fz_name: "John",
  },
  channelConfig: {},  
  incrementalPolicyData: "{onPolicyDocumentsPartialComplete}",
  // onPolicyDocumentsPartialComplete incremental data
  placementId: "launchplace",
  reusedConnectionIds: ['connection_id'],
  selectedCarrier: "default",
  syncType: "sync_reuse",
}

Data Schema: onPolicyDocumentsPartialComplete()

onPolicyHolderPartialComplete()

Triggered when connection_id's partial Policy Holder details are available after the successful completion of linking the policies. It can be triggered multiple times on the basis availability of data.

{ 
  connectionId: "connection_id",
  macroConfig: {
  	fz_name: "John",
  },
  channelConfig: {},  
  incrementalPolicyData: "{onPolicyHolderPartialComplete}",
  // onPolicyHolderPartialComplete incremental data
  placementId: "launchplace",
  reusedConnectionIds: ['connection_id'],
  selectedCarrier: "default",
  syncType: "sync_reuse",
}

Data Schema: onPolicyHolderPartialComplete()

onFullPolicyDetailsPartialComplete()

Triggered when connection_id's partial full policy details data is available after the successful completion of linking the policies. It can be triggered multiple times on the basis availability of data.

{ 
  connectionId: "connection_id",
  macroConfig: {
  	fz_name: "John",
  },
  channelConfig: {},  
  incrementalPolicyData: "{onFullPolicyDetailsPartialComplete}",
  // onFullPolicyDetailsPartialComplete incremental data
  placementId: "launchplace",
  reusedConnectionIds: ['connection_id'],
  selectedCarrier: "default",
  syncType: "sync_reuse",
}

Data Schema: onFullPolicyDetailsPartialComplete()

onPolicyBasicDetailsError()

Triggered when any error comes while fetching the basic details.

{
  connectionId: "connection_id",
  macroConfig: {
  	fz_name: "John",
  },
  channelConfig: {},  
  incrementalPolicyData: {
  			error: "Error while fetching the basic details.",
  },
  // onPolicyBasicDetailsError incremental data
  placementId: "launchplace",
  reusedConnectionIds: ['connection_id'],
  selectedCarrier: "default",
  syncType: "sync_reuse",
}

onPolicyDocumentsError()

Triggered when any error comes while fetching the documents of the policies.

{
  connectionId: "connection_id",
  macroConfig: {
  	fz_name: "John",
  },
  channelConfig: {},  
  incrementalPolicyData: {
  			error: "Error while fetching the document details.",
  },
  // onPolicyDocumentsError incremental data
  placementId: "launchplace",
  reusedConnectionIds: ['connection_id'],
  selectedCarrier: "default",
  syncType: "sync_reuse",
}

onPolicyHolderDetailsError()

Triggered when any error comes while fetching the policy holder details of the policies.

{
  connectionId: "connection_id",
  macroConfig: {
  	fz_name: "John",
  },
  channelConfig: {},  
  incrementalPolicyData: {
  			error: "Error while fetching the policy holder details.",
  },
  // onPolicyHolderDetailsError incremental data
  placementId: "launchplace",
  reusedConnectionIds: ['connection_id'],
  selectedCarrier: "default",
  syncType: "sync_reuse",
}

onFullPolicyDetailsError()

Triggered when any error comes while fetching the full policy.

{
  connectionId: "connection_id",
  macroConfig: {
  	fz_name: "John",
  },
  channelConfig: {},  
  incrementalPolicyData: {
  			error: "Error while fetching the full policy details.",
  },
  // onPolicyHolderDetailsError incremental data
  placementId: "launchplace",
  reusedConnectionIds: ['connection_id'],
  selectedCarrier: "default",
  syncType: "sync_reuse",
}

onInValidSetupId()

Triggered when invalid/wrong setup_id is passed to configure method.

Value: metadata

onInValidSetupId(metadata)
metadata = {
  {
    placementId:"",
    client:""
    setupId:""
  }
}

onInActiveSetupId()

Triggered when inactive setup_id is passed to configure method.

Value: metadata

onInActiveSetupId(metadata)
metadata = {
  {
    placementId:"",
    client:""
    setupId:""
  }
}

What’s Next