Skip to main content

NGIC API Components Quick Reference Guide

Component Overview

ComponentDescriptionBase ClassPrimary Purpose
base.cfcFoundation API componentN/ACore functionality, helper methods, product identification
rate.cfcRating functionalitybase.cfcRetrieve product rates and fees
questions.cfcQuestions API integrationbase.cfcFetch and validate product-specific questions
enrollment.cfcEnrollment submissionbase.cfcSubmit applications and supporting documents

Key Functions by Component

Base Component (base.cfc)

FunctionPurposeKey ParametersReturn Value
init()Initialize componentcorp_id (optional)void
getProductType()Get NGIC product typepdid, benefitid (optional)String - product type
getProductPlanKey()Generate plan keyproduct, stateString - plan key
getApplicationStatus()Get application statusapplicationIDStruct - status details
getSpecifiedCareRider()Get rider levelproductString - rider level
IsSTM(), IsLM(), etc.Product type checkingpdidBoolean

Rate Component (rate.cfc)

FunctionPurposeKey ParametersReturn Value
getRate()Get product ratesuser, product, dependents, benefitidStruct with rates and fees
getSTMTerm()Get STM term optionsuser, product, dependents, benefitidStruct with term details
validateRateFields()Validate rating inputsuser, product, dependents, benefitidStruct with validation results
validateWeight()Validate weight inputstPersonBoolean

Questions Component (questions.cfc)

FunctionPurposeKey ParametersReturn Value
getProductQuestions()Get product questionspdid, product, state, dob, broker_id...Struct with questions array
validateProductQuestions()Validate question answersSame as above plus formStruct with validation results
processProductQuestionAnswers()Format question answersform, pdidJSON string of answers

Enrollment Component (enrollment.cfc)

FunctionPurposeKey ParametersReturn Value
submitEnrollment()Submit applicationuserid, lUPIDs, documenttype, bReviewStruct with policy/application IDs
submitApplicationPDF()Submit signed PDFuserid, lUPIDs, applicationId, lPolicyNumbers, pdfContentStruct with submission results
validateEnrollmentFields()Validate enrollment datauser, product, dependentsStruct with validation results
validateFieldValue()Validate specific fieldfield, value, personStruct with validation result

Data Flow Overview

[Frontend Form] → [rate.cfc: getRate()] → [questions.cfc: getProductQuestions()] → [Validate Answers] → [enrollment.cfc: submitEnrollment()]

Common Error Handling Pattern

All major functions return a struct containing:

  • Processing result (rate, questions, etc.)
  • bError - Boolean flag indicating success/failure
  • aErrs - Array of error messages when failures occur

Environment Configuration

EnvironmentBase URLAuthentication
Productionhttps://ngahservices.ngic.comBasic Auth
QA/Devhttps://qa1-ngahservices.ngic.comBasic Auth

NGIC Base Component Documentation (base.cfc)

This component serves as the foundation for NGIC API integration, providing core functionality used across other components.

Component Properties

component displayname="NGIC" hint="NGIC API & Helper Utilities"

Key Properties

  • corp_id - Corporation identifier used to determine API credentials
  • broker_id - Broker identifier
  • credentials - API authentication credentials
  • webserviceURL - Endpoint URL for API requests
  • bTestMode - Flag to determine if DEV or PROD environment is used

Major Functions

init()

public void function init(integer corp_id)

Purpose: Initializes the component with appropriate credentials and configurations Parameters:

  • corp_id - (optional) The corporation ID to use for credentials lookup

Description:

  • Sets up credentials for API access based on corporation ID
  • Determines if test mode should be used based on environment
  • Sets the appropriate webservice URL based on test mode
  • Initializes product configurations

initCorpFromProduct()

public void function initCorpFromProduct(required integer pdid)

Purpose: Initializes the component by looking up corporation ID from a product ID Parameters:

  • pdid - (required) The product ID to use for corporation ID lookup

getProductType()

public string function getProductType(required string pdid, string benefitid="")

Purpose: Returns the NGIC product type based on product ID Parameters:

  • pdid - (required) The product ID to look up
  • benefitid - (optional) Benefit ID for additional context

Returns: String representing the product type

getProductPlanKey()

public string function getProductPlanKey(required struct product, required string state)

Purpose: Generates the plan key used in API requests based on product and state Parameters:

  • product - (required) Product structure containing details
  • state - (required) State code for state-specific plan keys

Returns: String with formatted plan key used in API requests

validateHeightWeight()

public boolean function validateHeightWeight(required struct product, required string state, required string gender, required string height, required string weight, required integer age)

Purpose: Validates if height and weight are within acceptable ranges Parameters:

  • product - (required) Product structure
  • state - (required) State code for state-specific rules
  • gender - (required) Gender code
  • height - (required) Height in inches
  • weight - (required) Weight in pounds
  • age - (required) Age in years

Returns: Boolean indicating if height and weight are valid

getApplicationStatus()

public struct function getApplicationStatus(required integer applicationID)

Purpose: Retrieves application status from NGIC API Parameters:

  • applicationID - (required) Application ID to check

Returns: Structure with application status details including:

  • status - Current application status
  • statusReason - Reason for current status
  • policyNumber - Policy number if assigned
  • Error handling fields

Helper Functions

getSpecifiedCareRider()

public string function getSpecifiedCareRider(required struct product)

Purpose: Gets Specified Care Rider level from product custom fields Returns: Specified Care Rider level as string

getEnrollerID()

public string function getEnrollerID(required string brokerid)

Purpose: Maps broker ID to NGIC enroller ID Returns: Enroller ID as string

IsSTM(), IsLM(), IsDental(), IsTermLife(), IsCHG()

Purpose: Check if a product belongs to a specific product line Parameters:

  • pdid - (required) Product ID to check Returns: Boolean indicating if product belongs to the category

NGIC Rate Component Documentation (rate.cfc)

This component handles rate calculations and term information for NGIC products.

Component Properties

component displayname="NGIC" extends="base" hint="NGIC Rate API Utilities"

Major Functions

getRate()

public struct function getRate(required struct user, required struct product, required array dependents, required string benefitid)

Purpose: Submits a rate request to NGIC API and returns rate details Parameters:

  • user - (required) User information structure
  • product - (required) Product structure
  • dependents - (required) Array of dependent structures
  • benefitid - (required) Benefit ID

Returns: Structure containing:

  • rate - Base rate amount
  • enrollmentFee - Enrollment fee amount if applicable
  • associationFee - Association fee amount if applicable
  • specifiedCareFee - Specified Care rider fee if applicable
  • numberOfDays - Duration of coverage
  • productCode - Product code
  • aRates - Array of all rate components from API
  • Error handling fields

Description:

  • Constructs request payload with applicant, product, and rider information
  • Sends request to NGIC rating API
  • Processes response to extract rates and fees
  • Handles error conditions and validation

getSTMTerm()

public struct function getSTMTerm(required struct user, required struct product, required array dependents, required string benefitid)

Purpose: Retrieves available term options for Short-Term Medical products Parameters:

  • user - (required) User information structure
  • product - (required) Product structure
  • dependents - (required) Array of dependent structures
  • benefitid - (required) Benefit ID

Returns: Structure containing term details including:

  • id - Term ID
  • name - Term name
  • program - Program name
  • isDefault - Boolean indicating if this is default term
  • terminationDate - End date of coverage

validateRateFields()

public struct function validateRateFields(required struct user, required struct product, required array dependents, required string benefitid)

Purpose: Validates all required fields for rate calculation Parameters:

  • Same as getRate()

Returns: Structure with validation results:

  • bError - Boolean indicating if validation errors exist
  • aErrs - Array of error messages

Description:

  • Validates product-specific fields based on product type
  • Validates user demographic information
  • Validates dependent information
  • Validates agent/broker credentials

validateAge()

public struct function validateAge(required struct user, required array dependents, required string plan)

Purpose: Validates if ages are within acceptable ranges for a plan Parameters:

  • user - (required) User information structure
  • dependents - (required) Array of dependent structures
  • plan - (required) Plan name

Returns: Structure with validation results

validateWeight()

public boolean function validateWeight(required struct stPerson)

Purpose: Validates if weight is within acceptable range Parameters:

  • stPerson - (required) Person information structure

Returns: Boolean indicating if weight is valid

NGIC Questions Component Documentation (questions.cfc)

This component handles external custom questions for NGIC products.

Component Properties

component displayname="NGIC" extends="base" hint="NGIC External Custom Questions API Utilities"

Major Functions

getProductQuestions()

public struct function getProductQuestions(required integer pdid, required struct product, required string state, required date dob, required integer broker_id, any dtEffective, string rateTier, string productCode, string termLengthInDays, string planKeys, string paymentFrequency, boolean bSpouse=0, integer childCount=0, string benefitid="")

Purpose: Retrieves product-specific application questions from NGIC API Parameters:

  • pdid - (required) Product ID
  • product - (required) Product structure
  • state - (required) State code
  • dob - (required) Date of birth
  • broker_id - (required) Broker ID
  • dtEffective - (optional) Effective date
  • Additional parameters for product configuration

Returns: Structure containing:

  • questions - Array of application questions with format:
    • bCustom - Boolean indicating custom field
    • label - Question label
    • displayText - Formatted question text
    • code - Question code (questionId_pdid)
    • questionId - Original question ID
    • dataKey - Data key for response mapping
    • bRequired - Boolean indicating if required
    • answers - Array of possible answers
    • Product-specific metadata
  • authorizationText - Authorization text for signature
  • API request/response details
  • Error handling fields

Description:

  • Constructs request payload with user and product parameters
  • Sends request to NGIC questions API
  • Processes response to format questions into standardized format
  • Handles error conditions

validateProductQuestions()

public struct function validateProductQuestions(required integer pdid, required struct product, required string state, required date dob, required integer broker_id, any dtEffective, string rateTier, string productCode, string termLengthInDays, string planKeys, string paymentFrequency, boolean bSpouse=0, integer childCount=0, required struct form, string benefitid="")

Purpose: Validates answers to product questions for eligibility Parameters:

  • Same as getProductQuestions() plus:
  • form - (required) Form structure containing question answers

Returns: Structure with validation results:

  • bError - Boolean indicating if validation errors exist
  • aErrs - Array of error messages

Description:

  • Gets questions from API
  • Checks required questions for answers
  • Validates answers against knockout criteria
  • Returns error information for ineligible responses

processProductQuestionAnswers()

public string function processProductQuestionAnswers(required struct form, required string pdid)

Purpose: Processes and formats question answers for submission Parameters:

  • form - (required) Form structure containing question answers
  • pdid - (required) Product ID

Returns: JSON string with formatted answers

mapQuestionDisplayText()

public string function mapQuestionDisplayText(required string displaytext)

Purpose: Maps API question text to display-friendly text Parameters:

  • displaytext - (required) Original question text

Returns: Formatted question text for display

NGIC Enrollment Component Documentation (enrollment.cfc)

This component handles enrollment submission to NGIC API.

Component Properties

component displayname="NGIC" extends="base" hint="NGIC Enrollment Component Object"

Major Functions

submitEnrollment()

public struct function submitEnrollment(required integer userid, required string lUPIDs, string documenttype="Application", boolean bReview=false)

Purpose: Submits an enrollment application to NGIC API Parameters:

  • userid - (required) User ID for the applicant
  • lUPIDs - (required) List of User Product IDs
  • documenttype - (optional) Document type, defaults to "Application"
  • bReview - (optional) Review mode flag

Returns: Structure containing:

  • lPolicynumbers - List of policy numbers
  • stPolicynumbers - Structure mapping products to policy numbers
  • lApplicationIDs - List of application IDs
  • stApplicationIDs - Structure mapping products to application IDs
  • API request/response details
  • Error handling fields

Description:

  • Retrieves member data
  • Constructs enrollment request with demographics, coverages, and attestations
  • Submits request to NGIC enrollment API
  • Processes response to extract policy numbers
  • Saves request/response as member documents

submitApplicationPDF()

public struct function submitApplicationPDF(required integer userid, required string lUPIDs, string applicationId="", required string lPolicyNumbers="", string pdfContent="")

Purpose: Submits signed application PDF for existing application Parameters:

  • userid - (required) User ID for the applicant
  • lUPIDs - (required) List of User Product IDs
  • applicationId - (optional) Application ID
  • lPolicyNumbers - (required) List of policy numbers
  • pdfContent - (optional) Base64-encoded PDF content

Returns: Structure with submission results

validateEnrollmentFields()

public struct function validateEnrollmentFields(required struct user, required struct product, required array dependents)

Purpose: Validates all required fields for enrollment submission Parameters:

  • user - (required) User information structure
  • product - (required) Product structure
  • dependents - (required) Array of dependent structures

Returns: Structure with validation results:

  • bError - Boolean indicating if validation errors exist
  • aErrs - Array of error messages

validateFieldValue()

public struct function validateFieldValue(required string field, required string value, string person="")

Purpose: Validates a specific field value based on field type Parameters:

  • field - (required) Field name to validate
  • value - (required) Field value to validate
  • person - (optional) Person type label

Returns: Structure with validation results

Helper Functions

Many helper functions for constructing different parts of the enrollment request:

  • getDemographics() - Constructs demographics portion of request
  • getApplicants() - Constructs applicants array for request
  • getCoverages() - Constructs coverages array for request
  • getBeneficiary() - Constructs beneficiary portion of request
  • getPaymentInformation() - Constructs payment information for request
  • getPartnerInformation() - Constructs partner information for request
  • getAttestationInformation() - Constructs attestation information for request
  • getQuestionResponses() - Maps custom question responses for request

These functions transform E123 data structures into the format required by the NGIC API for enrollment submissions.