Skip to content
Help Center

TEFCA Individual Access Services (IAS)

View Markdown Contact support Contact support 15 min read
On this page

Overview

The Trusted Exchange Framework and Common Agreement (TEFCA) is a nationwide framework for secure health information sharing in the United States. Persona functions as a Kantara-certified Credential Service Provider (CSP) for TEFCA Individual Access Service (IAS) providers. As the CSP, Persona performs NIST IAL2 identity proofing for patients and issues an ID Token to the IAS provider containing verified demographics. IAS Providers use the Persona-issued ID Token in TEFCA exchange requests.

TEFCA is one application of IAL2 identity proofing. If you need IAL2 for another purpose, such as workforce, education or healthcare provider onboarding, see IAL2 identity proofing with Persona and the IAL2 framework templates solution.

This guide outlines Persona’s IAS Provider integration for TEFCA, including the transition to the TEFCA IAS SOP 3.0 claim format.

Migrating to TEFCA IAS SOP 3.0

The TEFCA IAS SOP 3.0 compliance date is October 1, 2026. Choose the path that matches how you receive Persona ID Tokens today. For new implementations, use an OIDC Authentication Template in Authentications rather than the legacy Workflow integration. The claim comparison below shows what changes when your tokens move to 3.0.

Already in effect for both SOP versions: On OIDC tokens, aud is your HCID URI as a single string and azp carries the client ID. The tefca_ial2claims_version claim already appears on issued tokens, with "2.1" until that template’s cutover. OIDC discovery advertises the union of 2.1 and 3.0 claim names; it does not identify your template’s version. Read the version from an issued token instead. These are not changes scheduled for October 1 or your SOP cutover.

If you use the legacy Workflow integration (solution 1.0) and are staying on it

Your Workflow-generated tokens will automatically conform to SOP 3.0 on October 1, 2026. You do not need to change your Persona configuration, create an OIDC test template, or schedule a template cutover for this to happen.

  1. Review code that consumes the token against the SOP 3.0 demographic claims: handle omitted demographics instead of "Unknown", renamed or removed claims, and complete addresses with two-letter region and country codes. A required verified demographic or contact method that is missing prevents a 3.0 token from being issued.
  2. Before October 1, confirm with your QHIN that it can accept the SOP 3.0 claim format. Tell your Persona account team if it cannot.
  3. After the automatic switch, check a newly issued Workflow token for tefca_ial2claims_version: "3.0" and confirm your token consumer handles the changed claims. No OIDC authorization-code test or per-template cutover is required to stay on Workflow.

If you use the legacy Workflow integration (solution 1.0) and want to migrate to OIDC

Migrating to Authentications is recommended but optional; it is a separate integration change, not the automatic Workflow token update.

  1. Configure Persona Authentications with OIDC, including a TEFCA-enabled Authentication Template, your HCID, and an OIDC client for your relying party. Keep your Workflow integration running while you build and test the new path.
  2. Update your relying party for the SOP 3.0 claim format and test the new OIDC path end to end: complete identity proofing, exchange the authorization code for an ID Token, validate that token and its tefca_ial2claims_version, and test patient matching with your QHIN using synthetic test patients. Coordinate the new template’s SOP version with Persona; do not assume it switches automatically with Workflow.
  3. Once the OIDC path and your QHIN are ready, coordinate the migration to production with Persona. Route production traffic to the new OIDC integration and validate a newly issued production token before retiring the Workflow path.

If you already use an OIDC Authentication Template (solution 2.0)

Existing OIDC templates do not switch automatically on October 1. Each continues issuing its configured version until Persona coordinates its SOP 3.0 cutover with you. You do not need to change the Persona template configuration yourself.

  1. Ask Persona for a parallel SOP 3.0 test Authentication Template pointing to the same verification flow, but with its own OIDC client ID. Target that client ID in your test relying party; leave your production template and live traffic unchanged.
  2. Update your relying party for the SOP 3.0 demographic claims: require the mandatory fields and a verified contact method, handle absent optional fields instead of "Unknown", and stop depending on claims that 3.0 drops or renames. Handle invalid_grant at code exchange or access_denied at authorization if required verified demographics are unavailable.
  3. Run the OIDC authorization-code flow with the test template, from patient identity proofing and redirect through code exchange at Persona’s token endpoint. Confirm your application receives an ID Token when the required demographics are present.
  4. Validate the issued ID Token, including signature, issuer, HCID audience, and expiry. Check tefca_ial2claims_version in that token for "3.0", not in the OIDC discovery document.
  5. Pass the token through your QHIN patient-matching path with synthetic test patients. Confirm your relying party and QHIN accept the new claim names and absent optional demographics. Tell Persona if your QHIN is not yet accepting 3.0 tokens.
  6. After end-to-end testing, coordinate the production template’s per-template SOP 3.0 cutover with Persona. Validate a newly issued production token’s version and QHIN acceptance before treating the cutover as complete; repeat for each OIDC template you use.

OIDC Configuration

Persona’s IAS integration uses the OpenID Connect (OIDC) authorization code flow. To configure this in Persona, see this guide.

OIDC Flow

At a high level, your OIDC integration will look like the following:

  1. Patient accesses your application.
  2. Your application redirects the patient to Persona for IAL2 identity proofing.
  3. Patient completes identity proofing and is redirected from Persona back to your application.
  4. Your application exchanges the authorization code at Persona’s token endpoint and receives the ID Token.
  5. Your application can use the ID Token in requests to the TEFCA network.

OIDC ID Token

After a patient successfully completes IAL2 identity proofing through a Persona inquiry, Persona generates a JWT-format OIDC ID Token signed by Persona’s private key. The token is returned to the IAS Provider (Relying Party) through the standard OIDC authorization code flow — the patient is redirected back to your configured redirect_uri, and your application exchanges the authorization code for the ID Token (and refresh token) at Persona’s OIDC token endpoint.

Persona’s ID Tokens follow the configured version of the TEFCA IAS SOP issued by the Sequoia Project (RCE).

Healthcare Common Identifier (HCID)

As the IAS Provider, you will need to supply your Healthcare Common Identifier (HCID) formatted as a URN per RFC 3001.

urn:oid:<hcid>

For example: urn:oid:1.2.3.4.5.6.7.8.9.10

The HCID audience value is configured on your Authentication Template in the Persona Dashboard. Note this control is only available if your Persona account is configured for TEFCA IAS Services. Contact Persona support if you do not have access. Persona automatically uses the configured value as the aud claim of every ID Token issued from that template.

The aud claim contains only your HCID URI. Your OIDC client ID is carried separately in the azp (Authorized Party) claim:

"aud": "urn:oid:<hcid>",
"azp": "env_<environment_id>.atoc_<auth_template_id>"

Persona’s OID

An Object Identifier (OID) is a globally unique, hierarchical identifier used to unambiguously identify organizations and systems across networks. OIDs are used in TEFCA to anchor a CSP’s identity within the trust chain.

Persona’s TEFCA CSP OID: 1.3.6.1.4.1.65312.2.10

If you are integrating with CommonWell, you may need to list Persona’s OID in your CommonWell dashboard.

Token Validation

ID Tokens are Base64URL-encoded and digitally signed by Persona. The cryptographic signature proves authenticity and makes tokens tamper-evident.

To validate a Persona-issued ID Token:

  1. Fetch the OIDC discovery document from the following endpoint depending on the environment from which the ID token was generated:

    Sandbox

    • https://authenticate.withpersona.com/authenticate/oidc-sandbox/.well-known/openid-configuration

    Production

    • https://authenticate.withpersona.com/authenticate/oidc/.well-known/openid-configuration
  2. Use the jwks_uri from the discovery document to retrieve Persona’s public key set (JWKS).

  3. Verify the token signature against the public key that matches the kid header in the JWT.

  4. Confirm the iss matches based upon environment:

    Sandbox

    • https://authenticate.withpersona.com/authenticate/oidc-sandbox

    Production

    • https://authenticate.withpersona.com/authenticate/oidc
  5. Confirm the aud contains your organization’s HCID URI.

  6. Confirm exp is in the future and nbf is in the past.

Tokens must be transmitted and stored securely. Per the TEFCA spec, data must be encrypted in transit (HTTPS/TLS) and at rest.


Refresh Tokens

Persona issues a refresh token alongside the ID Token. The refresh token can be used to generate a new ID Token without requiring the patient to complete a new inquiry.

PropertyDetails
Token lifetimeConfigurable to a max of 90 days
ConfigurationSet in the Authentication Template in the Persona Dashboard
After expiryThe patient must complete a new IAL2 inquiry to receive a new ID Token

The 90-day window reflects the period during which a patient’s verified identity can be considered current for the purposes of requesting medical records. See the section on Persona Wallet for more information on the re-verification experience for patients.


ID Token Claims

Standard Claims

These claims are included in TEFCA IAS ID Tokens, regardless of which demographics were verified. The tefca_ial2claims_version value identifies the claim format issued by the template.

ClaimDescription
issToken issuer https://authenticate.withpersona.com/authenticate/oidc or https://authenticate.withpersona.com/authenticate/oidc-sandbox
subSubject. The Persona Account token associated with the patient (act_…)
audThe IAS Provider’s HCID URI (urn:oid:<hcid>). The client ID is carried separately in azp
expExpiration timestamp. Persona ID Tokens are valid for 1 hour from issuance
iatIssued-at timestamp
auth_timeTimestamp of inquiry completion
nbfNot-Before timestamp. The earliest time the token is valid
jtiUnique serial number for this token
nonceRandom value provided by the client, echoed back to prevent token replay
azpAuthorized Party. The client ID the token was issued to
inquiry_idThe Persona Inquiry token (inq_…) associated with this authentication
tefca_ial2claims_versionClaim format of this ID Token: "2.1" or "3.0"

Demographic Claims

Demographic claims depend on the SOP version configured on the Authentication Template and on what was verified during identity proofing. These changes take effect when a Workflow token switches automatically on October 1, 2026, or when Persona moves an OIDC template to 3.0 with you.

SOP 2.1 vs 3.0 claim changes

SOP 2.1SOP 3.0What your relying party should change
GendergenderRead the lowercase key; values remain M, F, or U.
SSN_Last_four_digitshttp://rce.sequoiaproject.org/OIDC/claim/ssn_last_four_digitsRead the namespaced key; the value is unchanged.
ZIP+4http://rce.sequoiaproject.org/OIDC/claim/zip_plus_fourRead the namespaced key; the value is unchanged.
nicknameNot issuedStop reading it; it only carried "Unknown".
SSN (full)Not issuedUse the last-four claim if needed; do not expect full SSN.
email_verified, phone_number_verifiedNot issuedTreat a present email or phone_number as verified; absent means not verified.
suffixNot issuedNo change in practice: it was advertised in discovery but never populated.
Unverified demographic: "Unknown"Optional claim omittedHandle absence instead of matching the string; missing required data prevents token issuance.
address may be partialComplete address requiredExpect street_address, locality, region, postal_code, and country; use two-letter region and country codes.
tefca_ial2claims_version: "2.1"tefca_ial2claims_version: "3.0"Read the issued token’s version claim to identify its format, not discovery.

The namespaced claim keys use literal http:// and capitalized OIDC; they are identifiers, not links to visit.

SOP 3.0 required demographics

A 3.0 token requires given_name, family_name, birthdate (ISO 8601 YYYY-MM-DD), and a complete address. The address must include street_address, locality, region, postal_code, and country. Use a two-letter subdivision code for region (such as CA) and a two-letter country code for country (such as US); formatted is optional. At least one verified contact method, email or phone_number, is also required. When present, the verified email address or phone number itself is the verification signal; 3.0 does not include email_verified or phone_number_verified boolean claims.

If any required demographic, required address field, or both contact methods are missing, Persona does not issue a 3.0 token. The token endpoint responds with HTTP 400 invalid_grant when the failure occurs during code exchange; if it occurs during authorization, the redirect returns access_denied.

Claims included when verified

SOP 3.0 claimNotes
historical_addressMay contain previously verified addresses, when available.
middle_name, middle_initialIncluded when verified.
email, phone_numberInclude verified values; at least one is required.
genderLowercase claim name in 3.0; SOP 2.1 uses Gender.
http://rce.sequoiaproject.org/OIDC/claim/ssn_last_four_digitsLast four SSN digits when verified; replaces the SOP 2.1 SSN_Last_four_digits key.
http://rce.sequoiaproject.org/OIDC/claim/zip_plus_fourZIP+4 when verified; replaces the SOP 2.1 ZIP+4 key.

Do not require claims removed in 3.0 in your relying-party integration; the comparison above lists them and their replacements.

Sample ID Token

This illustrative SOP 3.0 payload shows required demographics, a verified email address, and examples of optional verified claims. Values are placeholders, not real patient data or usable identifiers. Optional demographics are omitted when not verified.

{
  "iss": "https://authenticate.withpersona.com/authenticate/oidc",
  "sub": "example-subject",
  "aud": "urn:oid:1.2.3.4",
  "exp": 1790892000,
  "iat": 1790888400,
  "auth_time": 1790888390,
  "nbf": 1790888400,
  "jti": "example-token-id",
  "nonce": "example-nonce",
  "azp": "example-client-id",
  "inquiry_id": "example-inquiry-id",
  "tefca_ial2claims_version": "3.0",
  "given_name": "Example",
  "family_name": "Patient",
  "birthdate": "1990-01-01",
  "address": {
    "street_address": "123 Example Street",
    "locality": "Example City",
    "region": "CA",
    "postal_code": "90210",
    "country": "US"
  },
  "email": "patient@example.com",
  "gender": "F",
  "http://rce.sequoiaproject.org/OIDC/claim/ssn_last_four_digits": "0000",
  "http://rce.sequoiaproject.org/OIDC/claim/zip_plus_four": "0000"
}

Flow Configuration Guidance

Persona has an IAL2 inquiry flow optimized for patient matching on the TEFCA network. There are a number of pathways by which an individual can verify their identity. Multiple evidence combinations that satisfy NIST IAL2 assurance are supported including but not limited to: REAL ID, passport NFC, DMV, and selfie verifications. The flow dynamically routes patients through the most appropriate pathway based on the documents they present.

Native Mobile Experience

TEFCA flows are configured to require the native mobile experience. Completion of the flow on web is not recommended because:

  • Barcode capture is significantly more difficult with webcams.
  • NFC chip reading is only available on mobile devices.

Persona Wallet

The Persona Wallet (Reusable Personas) can significantly improve the patient re-verification experience. Upon completion of an inquiry, patients will be prompted to store their government ID in their Persona Wallet; this is completely optional. Upon returning to subsequent inquiries, if a patient has stored their government ID with Persona Wallet, they can use their saved credentials to expedite the document verification steps.

Unique Patient Identifier

Accounts in Persona represent a single identity, consolidating all of an individual’s verification interactions and attempts over time. Using a consistent identifier allows Persona to link each inquiry to the same account and enables many fraud detection capabilities.

When integrating with Persona, associate an immutable unique identifier per patient as the login_hint in your authentication request. We map the value from the login_hint to the account reference_id in Persona and consolidate all inquiries to this same account.


Testing & Synthetic Patient Guide

Persona provides a sandbox environment for testing your TEFCA integration end-to-end before going live.

Sandbox Environment

You can use your sandbox environment to test your integration and the patient experience. Sandbox inquiries do not perform live data verification and allow for the simulation of passed or failed verifications.

Synthetic Test Patients

Qualified Health Information Networks (QHINs) have synthetic test patient data to facilitate testing IAS Provider to QHIN integrations. Persona supports the synthetic identities contained below.

To use the synthetic identities, create an inquiry in your sandbox environment. Enter either the phone number or email address of a synthetic patient in the inquiry. Ensure that the Pass verifications toggle is enabled and submit any phone or email confirmation code. Persona will update the inquiry and the account with the synthetic patient’s demographics and issue an ID Token with the corresponding demographics.

NamePhoneEmailDOBAddress
Allison Hackett608-555-1243ahackett@gmail.com01/15/19871325 Main St, Madison, WI, US 57303
Damon Mychart608-211-3314dmychart@gmail.com07/26/1979308 Oak St, Madison, WI, US 53711
Dog Beaker410-707-2690dogbeaker@aol.com11/24/1985124 Lake Street, Vernon, CT, US 06066
Barbara Testa831-600-3769btesta@hotmail.com05/24/19478855 Orchid Blvd, Reading, PA, US 19602
Tracy CraneTest222-360-1564tcranetest@gmail.com12/26/1936458 Streich Street Lunenburg, MA, US 01462
Camila Maria Lopez469-469-4321knixontestemail@epic.com09/12/19873268 West Johnson St. Apt 117 Garland, TX, US 75043
Derrick Lin785-785-4321knixontestemail2@epic.com06/3/19737324 Roosevelt Ave Indianapolis, IN, US 46201
Homer J Simpson217-123-3608hsimpson@gmail.com02/9/1975742 Evergreen Terrace Madison, WI, US 53711
Margaret Smith706-123-4567msmith60@gmail.com01/02/1960123 Peachtree Road Augusta, GA, US 30909
Ellen Doe401-555-1940ellen.doe4321@gmail.com03/07/1940110 Westminster St Providence, RI, US 02903

Plans Explained

TEFCA Individual Access Services by plan

Startup ProgramEssential PlanGrowth PlanEnterprise Plan
TEFCA Individual Access ServicesNot AvailableNot AvailableNot AvailableAvailable

Learn more about pricing and plans.

Last updated on .

Was this page helpful?If something is missing, let us know and we will take a look.
Thanks for the feedback. It helps us improve these docs.