The tile
Render the tile fromlisting on GET /plans. It carries everything the tile
shows except its state, so the copy and logo stay current without a release on
your side.
listing.card is the Diamond benefits card for your Benefits tab once the
employer enrolls: text-free art with its shape, the fixed labels, and which
GET /account value goes in each field. Draw the text
over the art in textColor.
GET /plans needs only your API key, not a group, so fetch it once and cache
it for a day.
Logo assets
The mark is a round purple orb, so it reads correctly inside a square
container with rounded corners and
object-fit: contain. Do not recolor it,
crop it, or place it on a purple background. Mirror both files in your CDN if
you prefer; they change rarely.
GET /plans returns the same two URLs as listing.markUrl and
listing.logoUrl (and as plans[].assets).
Copy
Use this description on the tile. It islisting.description on GET /plans,
word for word.
Offer premium health insurance benefits to your employees while saving compared to traditional carriers. Prescience designs a custom plan at no cost, will set up your company’s health benefits (white-glove support), and integrates directly into Bolto for HSA, premiums, and enrollment; no admin time.
Long description
For a detail page or the header above the iframe:Prescience runs health benefits for small and growing companies. Your company sponsors the plan; Prescience handles enrollment, claims, care navigation and compliance, and a licensed carrier provides stop-loss protection for eligible high-cost claims. How it worksYou choose how much of each premium the company covers, from 50% to 100%. Employees pay the rest through payroll. Pricing shown before setup is preliminary. Final pricing, eligibility and plan documents are confirmed during underwriting and onboarding.
- We model a plan from the employee census already in your payroll.
- You see the modeled monthly cost next to comparable plans in your area.
- Verify your work email to open your Prescience workspace, with your company and employees already loaded.
Copy rules
- Refer to the offering as Prescience or Prescience-managed health
benefits, and to the plan by the name the API returns (
plan.name). Do not turnplanTypeinto marketing copy, and do not describe Prescience as the insurance carrier. See Compliance. - Do not put prices or “from $X” amounts on the tile. Prices depend on the employer’s census and are shown inside the iframe with their disclaimer.
- Use the button labels from
listing.buttons: Set up, Continue, View plan.
Tile status
Store the PresciencegroupId against the employer in your platform. The
tile’s state comes from three reads and the webhooks that tell you when to
redo them.
enrolledmeans the employer verified their email in the iframe and a hosted enrollment was created. Prescience onboarding (KYB, banking, plan setup) is now under way.activemeans Prescience activated the company. Show the plan card below.GET /groups/{groupId}rechecks the company’s activation on every read, so it moves fromenrolledtoactivewithout waiting for the webhook.
GET /groups/{groupId}/enrollments returns the
enrollment with onboarding.percentComplete, onboarding.blockingRemaining
and nextSteps, recomputed on every read. Use them for a progress line under
the tile or on your detail page, for example “Setup 60% complete”. See
Enrollment.
Before enrollment, two events are useful but do not change the tile:
group.market_rates_ready: the market comparison finished, so the iframe opens straight to the plan instead of the modeling animation.quote.finalized: underwriting finalized a quote that was in review. Until then the iframe shows the monthly premium with no savings claim and, in place of the setup button, “Setup opens once Prescience confirms final pricing for your group.” See Quotes in review.
The refresh button
If your iframe page has an “I’m done” or “Refresh status” button, point it at your backend, which calls:GET /groups/{groupId}forstatusandcompanyState.GET /groups/{groupId}/enrollmentsfor onboarding progress, ifstatusisenrolledoractive.
What the button does
Set up: open the iframe
Set up opens your page that hosts the Prescience iframe. The full flow is in the iframe guide; in short:- Your backend calls
POST /groups/{groupId}/embed-sessionsand passesurlandexpiresAtto your frontend. The session lasts 30 minutes and is single-group. Mint a new one each time the page opens. - Your frontend renders
urlas the iframesrc. - The employer reviews the modeled plan, clicks Finish setup on Prescience, verifies a work email with a six-digit code, and clicks Open my workspace. Prescience opens their workspace in a new tab, already signed in, with their company and census loaded.
The iframe always appears in Prescience’s brand
(Look and feel). To size it to its
content instead of a fixed height, listen for its height messages:
Size the iframe to its content.
Every origin that frames the iframe must be on Prescience’s
framing allowlist. Live
embed sessions return
409 conflict until at least one origin is saved.
Continue: return to Prescience
Once a group is enrolled,POST /embed-sessions returns 409 conflict:
there is no plan left to review. Continue opens the employer portal in a
new tab instead, using employerPortal.signinUrl from the enrollment
(https://www.getprescience.com/signin). The employer signs in with their
work email and a six-digit code sent to that address.
View plan: your plan page
View plan opens a page in your product built from the fields below. Add a Manage in Prescience link to the same sign-in URL for anything the page does not cover.The plan card after enrollment
Your plan page can look like a native part of your product while keeping the Prescience name and mark. Everything comes from two endpoints that return404 not_found until the group is enrolled. The Account data
guide has the full payloads and a
card layout with an example.
From GET /groups/{groupId}/account
From GET /groups/{groupId}/members
null deduction amounts mean “not known yet”, never zero. See
Payroll deductions.
All money is integer cents. Cache these reads for minutes and refresh them
when the employer opens the page.
Gaps
What the integration does not support yet. Plan around these rather than inferring the missing values.- No “started but not finished” state before enrollment. The API cannot tell an employer who never opened the iframe from one who opened it and left. If you want an In progress pill for that, record the tile click on your side.
- No webhooks for onboarding progress or plan-terms approval. Read the
enrollment and
/accountwhen the employer opens your page, or from the refresh button.