> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.usebridge.com/documentation/getting-started/eligibility-sdk/react/hard-check/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.usebridge.com/_mcp/server. Refer to the [Hard Check](../hard-check) guide for result statuses, error handling, and lifecycle. See the [Demo Project](https://github.com/use-bridge/sdk-typescript/blob/main/examples/react-demo/src/app/hard-eligibility/page.tsx) for a working example. For advanced use cases, see [Advanced](../advanced/optimistic-soft-check). > **Note** > > See [Existing Patients](../existing-patients) for patients who already have a > Policy ### Create a Session Obtain `createHardEligibilitySession` through `useBridgeSdk`. On first load, create a session and pass it into `HardEligibilityProvider`. ```typescript export const SessionContainer = ({ children }) => { const { createHardEligibilitySession } = useBridgeSdk(); const session = useMemo(() => { return createHardEligibilitySession({ serviceTypeIds: ["svt_xxx"] }); }, [createHardEligibilitySession]); return ( {children} ); }; ``` ### Form Input All [Eligibility Fields](../eligibility-fields) may be required depending on the session. Implement each field with `useEligibilityInputField`. See [Building Forms](./building-forms). Drive your submit button with `useHardEligibilitySubmit`. ```typescript export const HardEligibilityForm = () => { const firstName = useEligibilityInputField("firstName"); const lastName = useEligibilityInputField("lastName"); const dateOfBirth = useEligibilityInputField("dateOfBirth"); const state = useEligibilityInputField("state"); const { isDisabled, submit } = useHardEligibilitySubmit(); return (
{/* Render fields, payer autocomplete, optional memberId */}
); }; ``` ### Handling the result Use `useHardEligibilityState` to monitor progress and outcome. Bridge re-enables the form and updates Member ID requirements based on the response. When you reach `INELIGIBLE` or `ELIGIBLE`, redirect the patient to the next step. If eligible, the patient responsibility estimate is at `patientResponsibility.estimate`. Use `providers` to filter your scheduling UX. If `INELIGIBLE`, display `ineligibilityReason.message` to the patient. --- #### [Existing Patients](../existing-patients) Hard check when the patient already has a Policy