The partner can implement an endpoint that Truemed calls when the HSA/FSA eligibility status of an item changes.
This webhook is triggered when:
ineligible to eligible_with_lmn)Authentication: Signed webhooks are HMAC-SHA256 signed. The x-truemed-signature header carries a
timestamp and the signature in the form t=<unix-timestamp>,v0=<hex-signature>. Compute HMAC-SHA256 over
<t>.<raw-request-body> with your webhook signing secret and compare the hex digest to v0. Sign the raw
body bytes exactly as received, since re-serializing the JSON changes the bytes and breaks the signature.
Unsigned (legacy) webhooks instead send the API key verbatim in the x-truemed-api-key header.
The signed body wraps an event envelope inside the delivery envelope, so the catalog item is at
data.data.object:
Fields:
webhook_delivery_id - Delivery id (dlv_…). Retries of the same event repeat the same value; use it to
deduplicate. Signed deliveries only.event_type - The event type identifier: product_catalog.item.eligibility_updated. Carried on both the
delivery envelope and the inner event envelope, with the same value.data.timestamp - ISO-8601 timestamp of when the event occurreddata.data.object - The item details including:
sku - The SKU of the itemname - The name of the itemeligibility - The HSA/FSA eligibility status:
eligible - Item is default eligible for HSA/FSAeligible_with_lmn - Item is eligible with a Letter of Medical Necessityineligible - Item is not eligible for HSA/FSAreviewed_at - ISO-8601 timestamp of when the item was last reviewedUnsigned (legacy) webhooks receive the inner event envelope as the top-level body — {event_type, timestamp, data: {object}} — with no webhook_delivery_id. The item is at data.object.
HTTP Status: 204
The partner does not need to include any content in the body.
Truemed will retry the requests to your backend with backoff for up to 7 days
The event envelope, carrying event_type and timestamp. The catalog item itself is at data.data.object.
The event type: product_catalog.item.eligibility_updated.
Deterministic idempotency key for this delivery (dlv_…); stable across retries.
Webhook received successfully (HTTP 204 No Content)