> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.usebridge.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.usebridge.com/_mcp/server.

Hard checks require patient and payer information. Bridge manages which fields apply for a given session.

## Field types

| Field         | Type          | Description                             |
| ------------- | ------------- | --------------------------------------- |
| `firstName`   | `string`      | Patient's first name                    |
| `lastName`    | `string`      | Patient's last name                     |
| `dateOfBirth` | `Date`        | Patient's date of birth                 |
| `memberId`    | `string`      | Patient's Member ID                     |
| `payer`       | `Payer`       | Payer object (*not* the Payer ID alone) |
| `state`       | `UsStateCode` | 2 letter US state code                  |

*State codes are exported as `UsStateCodes` and `UsStateMap`.*

## Member ID

Whether Member ID is required depends on the Payer.
Bridge handles the interaction between Payer selection and Member ID.
If the user selects a cardless Payer (eg, Aetna), the field may be hidden.

If certain error codes are returned from an eligibility request, Bridge may show or require Member ID for a second attempt.

> **Note**
>
> Bridge handles deciding whether it's best to show or require a Member ID, so you don't have to

## React

The `useEligibilityInputField` hook manages field state within an eligibility session:

```typescript
const {
  value: FieldType | null
  setValue: (value: FieldType) => void
  isVisible: boolean
  isRequired: boolean
  isDisabled: boolean
  isValid: boolean
} = useEligibilityInputField("firstName")
```

See [Building Forms](/documentation/getting-started/eligibility-sdk/react/building-forms) for hook usage and examples.

## TypeScript

Pass patient fields in the `patient` object when calling `hardEligibility`:

```typescript
await bridge.hardEligibility({
  serviceTypeIds: ["svt_xxx"],
  state: "CA",
  patient: {
    payerId: "pyr_xxx",
    firstName: "Jane",
    lastName: "Smith",
    dateOfBirth: new Date("2000-01-01"),
    memberId: "W123456789", // optional
  },
})
```

---

#### [Hard Check](./hard-check)

Full eligibility checks, cost estimates, and provider eligibility