Skip to main content
POST
/
v2
/
products
/
check-eligibility

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

Authorization: Bearer glm_test_YOUR_API_KEY

Request Body

{
  "upc_code_or_gtin": "14567890123456",
  "product_name": "Digital Blood Pressure Monitor"
}

Parameters

At least one parameter is required:
ParameterTypeRequiredDescription
upc_code_or_gtinstringNo*UPC or GTIN barcode
product_namestringNo*Product name
*At least one of upc_code_or_gtin or product_name must be provided. UPC is more accurate.

Request

POST /v2/products/check-eligibility

Response

{
  "hsa_fsa_eligible": true,
  "eligibility_type": "auto_substantiation",
  "reason": "SIGIS verified - Medical device",
  "checked_at": "2025-10-18T14:30:00Z",
  "upc_code_or_gtin": "14567890123456",
  "product_name": "Digital Blood Pressure Monitor"
}

Response Fields

FieldTypeDescription
hsa_fsa_eligiblebooleanWhether product is HSA/FSA eligible
eligibility_typeenumType of eligibility (see below)
reasonstringExplanation of eligibility status
checked_attimestampWhen eligibility was checked

Eligibility Types

TypeDescriptionExample Products
auto_substantiationAutomatically eligible via SIGISThermometers, bandages, blood pressure monitors
dual_purposeEligible with LMN (Letter of Medical Necessity)Vitamins, supplements (requires doctor’s note)
visionVision care productsPrescription glasses, contact lenses
rxPrescription requiredPrescription medications and devices

Examples

Check by UPC

curl -X POST https://api.withgale.com/v2/products/check-eligibility \
  -H "Authorization: Bearer glm_test_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "upc_code_or_gtin": "14567890123456"
  }'

Check by Product Name

curl -X POST https://api.withgale.com/v2/products/check-eligibility \
  -H "Authorization: Bearer glm_test_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "product_name": "Digital Thermometer"
  }'

Check with Both

curl -X POST https://api.withgale.com/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"
  }'

With JavaScript

const checkEligibility = async (upc, productName) => {
  const response = await fetch(
    'https://api.withgale.com/v2/products/check-eligibility',
    {
      method: 'POST',
      headers: {
        'Authorization': `Bearer ${process.env.GALE_API_KEY}`,
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({
        upc_code_or_gtin: upc,
        product_name: productName
      })
    }
  );

  if (!response.ok) {
    throw new Error('Eligibility check failed');
  }

  const result = await response.json();

  console.log(`Product: ${productName}`);
  console.log(`Eligible: ${result.hsa_fsa_eligible}`);
  console.log(`Type: ${result.eligibility_type}`);
  console.log(`Reason: ${result.reason}`);

  return result;
};

// Usage
const result = await checkEligibility(
  '14567890123456',
  'Digital Blood Pressure Monitor'
);

Common Use Cases

  • Product Import Validation: Check eligibility before importing products to filter non-eligible items
  • Display Badges: Show HSA/FSA eligibility badges on product pages
  • Bulk Checking: Validate entire product catalogs (respect rate limits - add 100ms delay between requests)
  • Platform Integration: Tag Shopify/WooCommerce products with eligibility status

Not Eligible Response

{
  "hsa_fsa_eligible": false,
  "eligibility_type": null,
  "reason": "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):
{
  "hsa_fsa_eligible": true,
  "eligibility_type": "dual_purpose",
  "reason": "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 CodeError CodeDescription
400invalid_requestMissing both UPC and product name
401unauthorizedInvalid or missing API key
422validation_errorInvalid UPC format
429rate_limit_exceededToo many requests
Example error:
{
  "error": {
    "code": "invalid_request",
    "message": "Either upc_code_or_gtin or product_name must be provided"
  }
}

Best Practices

Prefer UPC Codes

UPC codes provide more accurate eligibility results

Cache Results

Cache eligibility results to avoid duplicate checks

Respect Rate Limits

Add delays when checking many products

Handle Both States

Plan for both eligible and ineligible products

Important Notes

Eligibility can change. SIGIS database updates monthly. Re-check eligibility periodically for existing products.
Not a guarantee. Eligibility check indicates SIGIS database status. Final determination depends on customer’s HSA/FSA administrator.