PrimaryCheck

Healthcare screen bundle

One healthcare_screen claim expands server-side into a license check at the state board, an NPI identity check and an exclusion screen across every federal and state list we load. It is verified only when every part is verified; the parts are returned individually under parts[].

curl -X POST https://api.primarycheck.com/v1/verifications \
  -H "Authorization: Bearer pc_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "person": {
      "firstName": "Amy",
      "lastName": "Kowalski",
      "dob": "1976-02-14"
    },
    "claims": [
      {
        "type": "healthcare_screen",
        "state": "PA",
        "profession": "rn",
        "licenseNumber": "RN353077L",
        "npi": "1003000126",
        "claimId": "hs"
      }
    ],
    "purpose": "employment",
    "consent": {
      "consentId": "cons_8f1…"
    }
  }'

Exclusion lists in the healthcare screen

ListRefreshMatch keysHit means
OIG LEIEdailyNPI, name + DOBdiscrepancy
SAM.gov exclusionsdailyname (+DOB when present)discrepancy; name-only → review
OFAC SDNdailyname, aliases, DOB in remarksdiscrepancy
Medicare opt-out affidavitsweeklyNPI, nameinformational flag medicare_opt_out
FDA debarmentweeklynamediscrepancy
State Medicaid exclusion listsweeklyname, NPI, license #discrepancy; lists we cannot load are reported as not checked, never clear

A stale list returns unable_to_verify(source_stale) for the screen. We never report a stale or missing list as clear. Each dataset result carries dataAsOf.

Healthcare screen roll-up

  • Any part discrepancy → discrepancy (an exclusion hit or a lapsed license wins).
  • Any part pending → pending.
  • All parts verified → verified.
  • Otherwise unable_to_verify with the first part's reason.

See healthcare screening, monitoring and sources.