> ## Documentation Index
> Fetch the complete documentation index at: https://docs.withgale.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Check Eligibility

> Check if a product is HSA/FSA eligible before creating it

# Check Eligibility

Check if a product is HSA/FSA eligible using its UPC code or name, without creating a product. Useful for pre-validation during product import or catalog setup.

## Authentication

```bash theme={null}
Authorization: Bearer glm_test_YOUR_API_KEY
```

## Request Body

```json theme={null}
{
  "upc_code_or_gtin": "14567890123456",
  "product_name": "Digital Blood Pressure Monitor"
}
```

## Parameters

At least one parameter is required:

| Parameter          | Type   | Required | Description         |
| ------------------ | ------ | -------- | ------------------- |
| `upc_code_or_gtin` | string | No\*     | UPC or GTIN barcode |
| `product_name`     | string | No\*     | Product name        |

\*At least one of `upc_code_or_gtin` or `product_name` must be provided. UPC is more accurate.

## Request

```bash theme={null}
POST /api/v2/products/check-eligibility
```

## Response

```json theme={null}
{
  "hsa_fsa_eligible": true,
  "message": "SIGIS verified - Medical device",
  "checked_at": "2025-10-18T14:30:00Z",
  "upc_code_or_gtin": "14567890123456",
  "product_name": "Digital Blood Pressure Monitor"
}
```

## Response Fields

| Field              | Type      | Description                         |
| ------------------ | --------- | ----------------------------------- |
| `hsa_fsa_eligible` | boolean   | Whether product is HSA/FSA eligible |
| `message`          | string    | Explanation of eligibility status   |
| `checked_at`       | timestamp | When eligibility was checked        |

## Examples

```bash theme={null}
curl -X POST https://api.withgale.com/api/v2/products/check-eligibility \
  -H "Authorization: Bearer glm_test_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "upc_code_or_gtin": "14567890123456",
    "product_name": "Digital Blood Pressure Monitor"
  }'
```

## Not Eligible Response

```json theme={null}
{
  "hsa_fsa_eligible": false,
  "message": "Product not found in SIGIS database. May not be HSA/FSA eligible or requires manual review.",
  "checked_at": "2025-10-18T14:30:00Z",
  "upc_code_or_gtin": "99999999999999",
  "product_name": "Regular Consumer Product"
}
```

## Dual-Purpose Products

Some products require a Letter of Medical Necessity (LMN):

```json theme={null}
{
  "hsa_fsa_eligible": true,
  "message": "Eligible with Letter of Medical Necessity (LMN). Customer must provide doctor's note.",
  "checked_at": "2025-10-18T14:30:00Z",
  "product_name": "Vitamin D Supplements"
}
```

## Rate Limits

* **Test mode:** 100 requests/minute
* **Live mode:** 1000 requests/minute

For bulk checking, add 100ms delay between requests.

## Errors

| Status Code | Error Code            | Description                       |
| ----------- | --------------------- | --------------------------------- |
| 400         | `invalid_request`     | Missing both UPC and product name |
| 401         | `unauthorized`        | Invalid or missing API key        |
| 422         | `validation_error`    | Invalid UPC format                |
| 429         | `rate_limit_exceeded` | Too many requests                 |

Example error:

```json theme={null}
{
  "error": {
    "code": "invalid_request",
    "message": "Either upc_code_or_gtin or product_name must be provided"
  }
}
```

## Important Notes

<Info>
  **Eligibility can change.** SIGIS database updates monthly. Re-check eligibility periodically for existing products.
</Info>

<Warning>
  **Not a guarantee.** Eligibility check indicates SIGIS database status. Final determination depends on customer's HSA/FSA administrator.
</Warning>

## Related Endpoints

* [Create Product](/api-reference/endpoint/create-product-v2) - POST /api/v2/products
* [Get Product](/api-reference/endpoint/get-product-v2) - GET /api/v2/products/{id}
* [Update Product](/api-reference/endpoint/update-product-v2) - PUT /api/v2/products/{id}
* [List Products](/api-reference/endpoint/list-products-v2) - GET /api/v2/products

## Related Resources

* [Product Object](/api-reference/objects/product)
