License Verification (NIPR)

Phase 1.5 — Read-only lookup + admin-confirmed Apply

NIPR Phase 1.5 — Controlled Lookup

Apply NIPR Results is disabled.

No records will be written until NIPR authentication is validated and NIPR_ENABLE_APPLY=true is set.

Recommended Configuration (based on testing)

WSDL confirmed: production endpoint exposes licenseLookup, ssnLookup, agencyLookup, ssnLast4Lookup, ssnLast6Lookup. Default values have been updated to match the WSDL. Row-level Check NIPR now sends licenseLookup with license number + state.

NIPR_ENVIRONMENT=prod

NIPR_BASE_URL=https://npn-ws.api.nipr.com/npn-ws/npnLookup

NIPR_AUTH_MODE=basic

NIPR_REQUEST_MODE=soap

SOAP operation: licenseLookup

Namespace: https://pdb.nipr.com/npn-ws/

SOAPAction: licenseLookup

Request fields: producertype, state, licenseId (unqualified — no namespace prefix)

Body style: unqualified_fields (default for licenseLookup — namespaced op, unqualified children)

Producer type: 1 (individual/agent — default, override with NIPR_PRODUCER_TYPE; 1=agent, 2=agency)

✓ NPN Web Service is confirmed working. HTTP 200, NPN returned successfully.

Latest resolved faults: (1) namespace on child fields → fixed with unqualified_fields. (2) licenseldlicenseId. (3) INDIVIDUAL1 for producertype.

⚠ NPN Web Service returns NPN only — not full license detail.

The current service returns <npn>...</npn> only. It does not return license status, expiration date, lines of authority, or appointments.

Next step: Confirm the correct NIPR service for full license data:

  • Gateway Realtime (beta): https://gateway-realtime.api.beta.nipr.com/gateway-realtime/realtime
  • Gateway Realtime (prod): https://gateway-realtime.api.nipr.com/gateway-realtime/realtime
  • PDB XML Reports (prod): https://pdb-xml-reports.api.nipr.com/pdb-xml-reports/entityinfo_xml.cgi
  • https://pdb-xml-reports.api.nipr.com/pdb-xml-reports/hitlist_xml.cgi
  • https://pdb-xml-reports.api.nipr.com/pdb-xml-reports/addinfo_xml.cgi

Do not build these yet — confirm the correct service and endpoint format with NIPR first.

NIPR Configuration Secrets

Environment:NIPR_ENVIRONMENT= prod (recommended)
Endpoint override:NIPR_BASE_URL= full URL (overrides environment)
Auth mode:NIPR_AUTH_MODE= basic (recommended)
Request mode:NIPR_REQUEST_MODE= soap (default)
SOAP operation:NIPR_SOAP_OPERATIONdefault: licenseLookup (WSDL-derived)
SOAP namespace:NIPR_SOAP_NAMESPACEdefault: https://pdb.nipr.com/npn-ws/ (WSDL-derived)
SOAPAction:NIPR_SOAP_ACTIONdefault: licenseLookup (WSDL-derived)
SOAP body style:NIPR_SOAP_BODY_STYLE= unqualified_fields | current | wrapped | bare (default for licenseLookup: unqualified_fields)
Producer type:NIPR_PRODUCER_TYPEdefault: 1 (1=agent/individual, 2=agency)
Field name overrides (confirmed per SOAP fault):
Producer type field:NIPR_FIELD_PRODUCER_TYPEdefault: producertype
State field:NIPR_FIELD_STATEdefault: state
License ID field:NIPR_FIELD_LICENSE_IDdefault: licenseId (capital I — confirmed by latest SOAP fault)

If authentication succeeds but SOAP Fault is returned, confirm the SOAP operation, SOAPAction, namespace, and request body with NIPR. Use the sanitized request preview to compare against NIPR's expected sample.

Test with a Real NPN (optional)

Provide a known NPN for a more realistic auth test. Results are not saved.

Test Production Endpoint (without changing secrets)

Beta: https://npn-ws.api.beta.nipr.com/npn-ws/npnLookup

Production: https://npn-ws.api.nipr.com/npn-ws/npnLookup

To permanently switch, set NIPR_ENVIRONMENT=prod or NIPR_BASE_URL in Base44 secrets.

If SOAP Fault or 401 continues — confirm these with NIPR

Ask NIPR support to confirm:

  1. Are our credentials authorized for beta/UAT, production, or both?
  2. Are our credentials authorized for the NPN Web Service?
  3. Should authentication use HTTP Basic Auth, WS-Security UsernameToken, or credentials inside the SOAP body?
  4. Is licenseLookup the correct operation for adjuster license verification, or is a different NIPR product (Gateway Realtime, PDB XML Reports) required?
  5. What input fields does licenseLookup accept? (SOAP fault confirmed: producertype, state, licenseld)
  6. What XML namespace should be used? (WSDL-derived: https://pdb.nipr.com/npn-ws/)
  7. Can NIPR provide a sample successful SOAP request and response for our account?
  8. Should we use NPN Web Service, Gateway Realtime, or PDB XML Reports to retrieve full license status, expiration dates, LOA, and appointments?

Supported auth modes (set NIPR_AUTH_MODE):

basic — HTTP Authorization: Basic header (default, currently failing)

wsse — WS-Security UsernameToken in SOAP Header

soap_body — credentials in SOAP Body (fields: NIPR_USERNAME_FIELD / NIPR_PASSWORD_FIELD)

Total Licenses

0

Pending Verification

0

Expiring Soon

0

NIPR PDB Batch Report — Full License Detail Preview

Preview mode by default. Enable Auto-Import in the Apply panel to write NIPR data as source of truth.

Cost Notice

PDB Batch Reports may incur NIPR charges (~$1.30/record). Use one NPN for initial testing. Phase 1 max: 5 NPNs.

Report retrieval is display-only. Apply actions (including Auto-Import) require NIPR_ENABLE_APPLY=true and admin/manager role.

1. Diagnostic

Adjuster Context (optional — enables comparison)

Select an adjuster to enable PDB vs App comparison when retrieving a report. The adjuster's NPN will be pre-filled in section 2.

2. Create PDB Report

NPN(s) — comma/space separated, max 5

Report title (optional)

3. Retrieve Report by ReportID

No adjuster context selected — comparison will be skipped. Select an adjuster above to enable it.

4. Get Report List

Recent PDB Apply Activity

— from AuditLog, read-only

Loading history...

Apply Rules — Phase 1 & Phase 2 (enforced server-side)
  • NIPR_ENABLE_APPLY=true must be set — backend returns 403 before any write if not active.
  • Admin/manager role required — enforced server-side on every request.
  • Auto-Import (NIPR source-of-truth): Creates missing licenses from PDB, updates existing license expiration from NIPR, marks app-only licenses as Not Verified by PDB. Import Warnings are non-blocking. Technical Exceptions (missing identity/system failure) are skipped.
  • Phase 1 (manual): Only Possible New rows can be created. Nothing is updated or deleted.
  • Phase 2 (manual): Only Possible Updates rows can be applied — updates expiration_date only. No creates, no deletes.
  • Review Required / Import Warnings — rows with expiration conflicts, low confidence, or missing status are flagged as Import Warnings and do not block import in Auto-Import mode.
  • Not in PDB rows are marked not verified by PDB — never deleted.
  • Matches / No Change rows are never re-applied.
  • Low-confidence, conflicted, and admin_override rows are rejected server-side even if submitted.
  • AuditLog is written for every apply attempt (NIPR_PDB_APPLY_POSSIBLE_NEW / NIPR_PDB_APPLY_POSSIBLE_UPDATES / NIPR_PDB_REVIEW_REQUIRED_RESOLUTION).
  • User, carrier_qualifications, and background_check_status are never modified by NIPR import.
  • After each apply action, AdjusterProfile license summary is automatically synced (state_licenses, fl_license_number, fl_license_expiration_date, nipr_last_check). Profile sync failure is non-fatal and can be retried from the Profile Sync tab.
All Licenses — NPN Web Service Row Lookup

NPN lookup only — not full license verification. Returns NPN only, not license status, expiration, or appointments.

AdjusterStateLicense #ExpirationNIPR StatusStatusOverrideNIPR Lookup
No licenses found