Skip to main content
This guide is for payroll and HR platforms that list partners in an integrations marketplace: a grid of tiles, each with a logo, name, category, short description, status and button. It covers everything around the iframe: what the tile says before the employer clicks, what the button does, how the tile’s status follows the employer from first click to an active plan, and what to show inside your product once they are enrolled.

The tile

Render the tile from listing 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 is listing.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 works
  1. We model a plan from the employee census already in your payroll.
  2. You see the modeled monthly cost next to comparable plans in your area.
  3. Verify your work email to open your Prescience workspace, with your company and employees already loaded.
You 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.

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 turn planType into 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 Prescience groupId against the employer in your platform. The tile’s state comes from three reads and the webhooks that tell you when to redo them.
  • enrolled means the employer verified their email in the iframe and a hosted enrollment was created. Prescience onboarding (KYB, banking, plan setup) is now under way.
  • active means Prescience activated the company. Show the plan card below.
  • GET /groups/{groupId} rechecks the company’s activation on every read, so it moves from enrolled to active without waiting for the webhook.
For the In progress state, 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:
  1. GET /groups/{groupId} for status and companyState.
  2. GET /groups/{groupId}/enrollments for onboarding progress, if status is enrolled or active.
Then re-render the tile from the table above. Both are reads, and both count toward the standard rate limit.

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:
  1. Your backend calls POST /groups/{groupId}/embed-sessions and passes url and expiresAt to your frontend. The session lasts 30 minutes and is single-group. Mint a new one each time the page opens.
  2. Your frontend renders url as the iframe src.
  3. 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 return 404 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 /account when the employer opens your page, or from the refresh button.