> 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/soft-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 [Soft Check](../soft-check) guide for what a soft check returns.
See the [Demo Project](https://github.com/use-bridge/sdk-typescript/blob/main/examples/react-demo/src/app/soft-eligibility/page.tsx) for a working example.
### Create a Session
Create the SoftEligibilitySession by calling `createSoftEligibilitySession` on the SDK, nested within your `BridgeSdkProvider`.
You must provide at least one ServiceType ID.
Render `SoftEligibilityProvider` with the session as a parent of your eligibility form.
```typescript
export const SessionContainer = ({ children }) => {
const { createSoftEligibilitySession } = useBridgeSdk();
const session = useMemo(() => {
return createSoftEligibilitySession({ serviceTypeIds: ["svt_xxx"] });
}, [createSoftEligibilitySession]);
return (
{children}
);
};
```
### Form Input
Soft checks require the `state` and `payer` fields, never any other information.
Use [Building Forms](./building-forms) for payer autocomplete and field hooks.
```typescript
const payer = useEligibilityInputField("payer");
const state = useEligibilityInputField("state");
```
### Submission
Bridge manages the loading state and validation of your inputs.
Use `useSoftEligibilitySubmit` for `isDisabled` and `submit`.
```typescript
export const SoftEligibilitySubmitButton = () => {
const { isDisabled, submit } = useSoftEligibilitySubmit();
return (
);
};
```
### Handle the result
Use `useSoftEligibilityState` to read `status` and `providers`.
See the [Soft Check](../soft-check) guide for status values.
---
#### [Hard Check](./hard-check)
Full eligibility checks, cost estimates, and provider eligibility